posted by taizou @ 2018-03-05 01:08:57
hhugboy
hey I released a new version of this damn emulator again
Most importantly it now supports the GBX format! AND adds support for some terrible video games! as per usual, the ROMs that would take advantage of that support have not been released yet! but they will be!
get it here!!
posted by taizou @ 2018-02-22 22:47:44
Other Stuff
The GBX ROM format v1.0 is now finalised!
The spec can be found here.
Thanks to everyone who gave feedback! Although v1.0 is final, any comments and suggestions for future versions are still welcome!
Now to the business of actually implementing emulator support, releasing ROMs in the format, making a tool to edit/add/remove GBX footers...
🦁💤
posted by taizou @ 2018-02-19 02:44:54
Other Stuff
SO A LITTLE BACKGROUND HERE.
Currently, the common format for Game Boy and Game Boy Color ROMs (usually given the .gb/.gbc file extension) is just a raw binary dump of the ROM data from the cartridge. Unlike the NES, where some extra data must be tacked on to tell an emulator crucial details such as which of the hundreds of different mappers is used by the game, Nintendo's requirements for Game Boy developers specified an internal ROM header that must be populated with this information. So that's fine right? Emulators can just read the internal header! Nintendo, unintentionally, solved the problem and made emulation easier for everyone! Right??
NOT SO FAST BUBSY HERE COME UNLICENSED GAMES TO FUCK EVERYTHING UP
For, you see, the header being populated correctly is a Nintendo requirement, not a hardware one. A real Game Boy requires a few things to be correct - the header checksum, the Nintendo logo, GBC/SGB flags to enable enhancements for those systems - but doesn't care about things like cartridge type and ROM size. So if you're an unlicensed dev, you can put any old shit in there. You might even intentionally set incorrect values to fool copiers and emulators. And if your game uses some kind of custom unlicensed mapper or copy protection, it's probably not even possible to represent it within the specs of Nintendo's header format!
Until now, most Game Boy emulators have relied on heuristic auto-detection for these games, checking for certain signifiers present in the ROM that can somewhat-reliably identify a given type of non-standard cartridge. hhugboy also allows you to select a cartridge type manually, to run games that are not correctly auto-detected. So far, this has sort of been okay - hhugboy's auto-detection works correctly for the most part, with only a handful of dumps needing manual selection.
But the new unlicensed dumps just keep coming, and the heuristic approach is getting increasingly unwieldy. I've recently dumped a bunch of games from a Certain Developer, and while it's possible to reliably identify their games, I haven't found a way to distinguish between the ones that run on their publisher's custom mapper and the ones that don't, meaning at least one set of those would end up only working via manual selection. There are a bunch of other carts I haven't yet tackled that I foresee causing similar problems.
So what I've been thinking is: why not create a new Game Boy ROM format, allowing all this information to be specified outside of the internal header? Admittedly the use cases for such a format at this point are fairly niche, so it would have to be low-overhead, backwards-compatible if possible and unintrusive. But hopefully it would be a step towards making emulation of unlicensed Game Boy games (and a handful of licensed ones too!) a much nicer thing to deal with and much less of a mess of heuristics and hacked dumps.
Here's my proposal for the format, which I'm tentatively calling GBX. Any and all feedback would be greatly appreciated, just leave a comment below! Even if you just want to call me a big dumbass or something!
(UPDATED 21/02/2018 current version 0.3)
When it's finalised, the next version of hhugboy will support it, and I'll probably make some kind of tool to allow for conversion to and from the new format, hashing, editing and other such stuff.
posted by taizou @ 2017-09-12 00:55:09
Dumps
When I dumped & emulated the last set of Makon/NT stuff, there were 2 remaining games that I knew to be both on this mapper and undumped, and at the time I didn't have access to either of them. But thanks to the generosity of 2 people plus a fortuitous eBay find, I ended up getting hold of them 3 different ways. which was very cool!
(Note that you'll probably need hhugboy v1.2.1 to play the raw dumps of any of these carts, but they will work in v1.2 if you manually set 'unlicensed compatibility mode' to 'NT KL type 2')
So first off, I'll start with the single carts. These came complete with box and manual from an eBay seller called beauauto, who amazingly got hold of a big ass box of brand new carts from a warehouse - currently they're selling them off for $30 each if you want to get a piece of this action.
They're all functional rumble carts, and accordingly all of these games support rumble, albeit in the half-hearted sort of way you usually see from Makon games.
Megaman X4 / Rockman X4
So, first game! Megaman X4! What could this be?
If your answer was "Rockman 8, badly colourised, with a different intro and the levels rearranged" .. you've probably played a Makon "update" before.
This version of course does not fix the bug from Rockman 8 where essential moving platforms disappear partway through the level if you kill too many enemies.
But hey, good news, at least I was able to hack this to MBC5 so you can play it on anything.
Rockman X4 (Megaman X4) (Unl).zip - raw dump, hhugboy only
Rockman X4 (Megaman X4) (Unl) [MBC5 Hack].zip - MBC5 hack for anything
Sonic Adventure 8
Coming hot on the heels of Sonic 3D Blast 5 and Sonic Adventure 7, it is of course..
Another rearrangement with bad colours! Literally not much more to say than that!
(Update: you might need to turn off "halt on invalid opcode" in hhugboy since there seems to be a certain enemy in one of the stages that can trigger one)
Sonic Adventure 8 (Unl).zip - raw dump, hhugboy only
Sonic Adventure 8 (Unl) [MBC5 Hack].zip - MBC5 hack for anything
Donkey Kong 5 (again)
I already dumped this one previously, but since it came in a set with the other two games, I took the opportunity to redump it, on the off-chance it was a different variant or something. And it turned out it was different by a few bytes; not sure what the differences are, if anything significant at all.
But having also extracted the game from one of the below multicarts and found it to match this version, I've reclassified the other as an 'alternate' dump; I did redump the other cart multiple times to confirm I was getting a good read, and the dumps were always consistent, but it's possible there's something wrong with the cart and that the other dump is therefore bad. So for now I'd say you can consider this new dump to be the 'canonical' dump of this fine game.
Super Donkey Kong 5 (Unl).zip - raw dump, hhugboy only
Super Donkey Kong 5 (Unl) [MBC5 Hack].zip - MBC5 hack for anything
Multicarts
As standard for Makon/NT releases, several multicarts were issued containing these games. These first two were lent to me by max6464646464 - thanks!
They're titled 彩色格鬥24in1電腦畫面選GAME and 彩色格鬥29in1電腦畫面選GAME in Chinese, which translates roughly to "Colour Fighting X in 1 Computer Screen Selection Game". Seems a little bit weird since these carts have no fighting games, but hey.
(Also you can tell NT is from the old school of multicart makers because they're still treating an on-screen menu like a futuristic novelty to be boasted about and not something everyone had been doing for about 8 years already)
The 24 in 1 has Donkey Kong 5 and Sonic 8, the 29 in 1 has Rockman X4 and Sonic 8. Both carts then also have a set of minimally-colourised regular GB games, in the style of the previously-dumped multis.
Also, both say "NEW GB RUMBLE" on the menu, and have "Rumble" in Chinese by the Makon games' names... almost as if these are non-rumble versions of carts designed with rumble functionality WELL
Thanks to Pepper9801 for lending this one! This is exactly the same as the 29 in 1 above, but with rumble in place.
Here are the multicart ROMs, all work in hhugboy only:
Caise Gedou 24 in 1 Diannao Huamian Xuan Game (CY2060) (Unl).zip
Caise Gedou 29 in 1 Diannao Huamian Xuan Game (CY2061) (Unl).zip
29 in 1 (CR2020) (Unl).zip
Both 29 in 1s are straight up identical BUT I've put them up here as separately named ROMs because of reasons
Enjoy!
posted by taizou @ 2017-08-24 00:54:23
hhugboy
New update to hhugboy!
This builds on the compatibility for NT carts from v1.2, plus improvements to the visual rumble feature for both Makon and official games.
Thanks to KingPepe for beta testing this one!
Get it here!