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
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
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!
posted by taizou @ 2017-08-19 22:38:38 Dumps
About a week ago I released released hhugboy v1.2 with support for some new mappers and stuff which literally no dumped games used. SO that probably meant I had some new dumps in the pipeline? Yeah? Maybe? OF COURSE-
True Color 25 in 1 (with Rockman 8)
So first up: here's a multicart!
I picked this cartridge up recently, mostly because it bore several hallmarks of notorious bootleg cart makers 'Ka Sheng' (卡聖), also known as 'NT'. The 'NT-xxxx' ID, the 'New Game 2000' text, '(capacity) TRUE' in terrible WordArt; all of these are common features of NT carts on either the Famicom or Mega Drive. Not only that, the artwork used for Wario Land - with Bunny Mario edited in - is the same one employed for their release of "Wario Land 7" for Famicom.
Now, although this is one of only a few Game Boy carts with explicitly NT-style IDs and text on it, MANY more were released in its wake featuring similar idiosyncratic design sensibilities to those employed on NT's Famicom labels, not to mention similar PCB codes, menus, and mappers. This line of carts also happens to encompass almost all games by the infamous developer Makon, from Rockman 8 onwards.
So does this mean NT was Makon's publisher? Probably! Which would make sense, since it's known Makon contained at least one ex-Sachen staff member, while NT itself had published games by ex-Sachen devs for the Famicom.
Here's the menu - as the label suggested, this multicart contains Makon's monochrome GB 'classic', Rockman 8, plus a bunch of regular GB/C stuff.
So let's start up Rockman 8, in all its colourless gl..
This is extremely my aesthetic
And also at least, like, 5 more colourful than regular Rockman 8
So what's going on - did Makon colourise this game? NOPE the multicart did! Unlike most Game Boy Color multicarts, which reset the system when booting a mono Game Boy game, this does not. Instead it loads its own set of default palettes into memory, then boots the game directly in GBC mode, giving each game a preset background and sprite palette.
Wario Land shares Rockman's EXCELLENT neon-tastic palette:
Other games mostly have an ugly red/green palette like Final Fantasy 4 here (a Chinese translation of SaGa 3), although Dr. Mario has a pretty neat blue/yellow one. Pocket Bomberman is the sole actually colour game here.
Both Wario Land and Final Fantasy 4 can save data, but the cart has no kind of save banking support, so if you play one of those games it'll wipe out your save in the other. A similar issue can be seen in modern Famicom/NES multis.
Anyway, here's the ROM! You'll need hhugboy v1.2 to run it.
True Color 25 in 1 (NT-9920) (Unl).zip
I also extracted Rockman 8 itself, which sadly runs in boring ol' monochrome. This game has been dumped already, but the existing dump is marked as 'bad' and I'm not entirely sure where it came from.
The raw version again will only run in hhugboy v1.2, but I was also able to hack it to run under regular MBC1, which will work in any emulator or flashcart or whatever you care to mention.
Raw dump: Rockman 8 (Unl) (Multicart Rip).zip
MBC1 hack: Rockman 8 (Unl) (Multicart Rip) [MBC1 Hack].zip
23 in 1 (with Super Mario Special 3)
This one RUMBLES! Just like Pokemon Pinball and like 8 other games no one remembers! For a while Makon and NT leaned super heavily into this gimmick, with a string of multi- and single carts coming an in oversized, rumble-motor-packing design copied directly from Nintendo's own rumble carts, right down to its requirement for an additional AAA battery.
The headline game here is everyone's least-favourite bad five levels of sorta-Mario, Super Mario Special 3:
The rumble motor in my cart is broken, but if it's anything like other Makon games it only uses the feature at the start of each stage and when you get hit by an enemy.
This is possibly the first time this game has been completely emulated? Again there's another dump marked as 'bad' which possibly contains all the data but is smaller than the real thing; the complete dump is 512kb but it actually has less than 256kb of unique data.
As for the other games, we have another bunch of mono stuff, colourised with a slightly different palette to the last cart:
And here's the ROM! This uses a slight variation on the mapper used by the previous cart; this one is based on MBC3 while the 25 in 1 was based on MBC1.
23 in 1 (CR2011) (Unl).zip
And here's Super Mario Special 3 extracted. Unfortunately I couldn't hack this one to a common mapper so easily, so it'll only work in hhugboy v1.2 for now.
Super Mario Special 3 (Unl) (Multicart Rip).zip
Super Donkey Kong 5
Finally, here's one more rumble cart, a single game this time:
It's Super Donkey Kong 5! A colourised, rearranged version of Makon's mono game Super Donkey Kong 3.
All of Makon's mono games (that I know of) would receive this treatment, and all of the colourisations were pretty shoddily done. They almost resemble the palettes found on the two previous multicarts, but at least there's some variation.
My cart does at least have a still-functioning rumble motor, and it's utilised a bit more creatively than the usual Makon fare, adding in a rumble when you bounce off an enemy.
With this one I was once again able to mapper hack it, so you can enjoy(?) Super Donkey Kong 5 on any emulator your heart desires.
UPDATE 2017-08-31 - I'm marking these dumps as 'alt' for now because I have a different dump from a couple different sources (which I'll be releasing later)- this was verified multiple times from the same cart so does not appear to be a bad dump, but if nothing else it's not the commonest version
Raw dump: Super Donkey Kong 5 (Unl) (Alt).zip
MBC5 hack: Super Donkey Kong 5 (Unl) (Alt) [MBC5 Hack].zip