Handheld Underground

hhugboy v1.4.0 release & status update

posted by taizou @ 2022-03-21 23:44:52 hhugboy

This was never supposed to happen! The hhugboy project was never supposed to go on this long. I never wanted to be an emu dev at all; this little fork was a means to an end, a way to get these games playable somehow at a time when Game Boy emulation had stagnated. Of course, Game Boy emulation has long since un-stagnated, hhugboy's limitations and inaccuracies only became more apparent with the passing years, and the idea of knocking it on the head and contributing future mappers elsewhere has been floating around my useless brain for a fair while. But, well, I'm a creature of habit, it's easier to just shove more mappers into the framework I've created to keep getting these things supported, and so it has persisted.

Meanwhile. An experimental idea I had a few years ago, of bolting gblinkdx to hhugboy, in order to proxy mapper/protection-related reads and writes through to an actual cartridge, actually worked and I did indeed get a few unemulated games running using this technique. For gameplay this is pretty useless; not only is it dog slow, but its requirement of a very rare game cartridge plus a specific combination of obsolete, modern and custom hardware renders it inaccessible for most. Its true value is as a reverse engineering technique - by observing the reads and writes done to the mapper as the game runs, it becomes much easier to figure out the logic behind what is happening, and then in theory you can proxy less and less through to the real cartridge, replacing it with emulation, until eventually the cartridge is not required at all.

That unholy fusion leaves hhugboy now in the position of being one of my key reverse engineering tools as well as a functional emulator, so it's gained a new lease of life that way and become a little bit harder to shake off once again. Sorry about that.

And, naturally, all of this means I'm releasing a new version today, version 1.4.0.

This includes hooks for the gblink integration, but I haven't directly embedded the whole thing into the emulator for various reasons (mostly licensing), instead hiving it off to a library called libgblink. I've also overhauled the visual rumble feature, fixed some issues around saving (notably in MBC2 games) and made a bunch more behind-the-scenes changes mostly to clean up mapper-related code a bit.

But, don't worry, this isn't only a bugfix and self-indulgent fuckaround release. There is one new mapper supported in this version, the first I was able to implement using the gblink technique. And it's a big one. This is the one I've been waiting for for YEARS. I won't name names until the ROM releases though. I mean obviously you can find out if you want to, but it won't be written upon the official HHUG Blog Scrolls until Next Time...

4 Comments

hhugboy v1.3.2 release & ROM update

posted by taizou @ 2022-02-22 12:49:45 hhugboy

Yesterday I found a couple of issues related to the games I released in my last post. Basically: If you use a bootstrap ROM with hhugboy, it (should) emulate the custom boot logo (replacing Nintendo's) for games that use one. However, that behaviour was broken for the mapper used by those games due to an error in my implementation of it, meaning the logos would appear inconsistently or not at all. Additionally, some PCB variants for this mapper (relevantly, the one used by Digimon Sapphire) do not actually display a custom logo at all, which I hadn't accounted for.

So I've done the following:

If you're not using the bootstrap ROM this isn't too relevant, but I'd still recommend redownloading the updated Digimon Sapphire GBX file for the sake of propagating the more accurate version.

1 Comments

Oppan Gangfeng style

posted by taizou @ 2022-02-20 02:09:39 Dumps

Vast Fame published games fairly directly in its native Taiwan, and so those releases can be seen as most closely reflecting what they wanted to put out into the world, with a string of (mostly) original titles issued for GBC under their own name, as well as a few more-infringing games released anonymously. However, although Taiwan certainly had a well-developed local game scene, the biggest market for Chinese-language releases was, of course, mainland China, and Vast Fame had to rely on local publishers and distributors to get their games out there.

While some of these distributors are not named, we know that by 2001 or earlier they had hooked up with Kong Feng Industries Limited (also known as Gangfeng, but the Kong Feng romanisation seems to be used most commonly by the company, so I'm going with that). This is a company probably best known for producing the "GB Boy" Game Boy clone systems, which they still make to this day, although they have long since exited the game-publishing business.

A magazine ad from 电子游戏软件 2001 issue 8 reveals that Kong Feng released Vast Fame's Shui Hu Shen Shou and Digimon Pocket in that year. Subsequent ads from 2002 issue 1 and 2002 issue 2 list further Vast Fame titles, alongside some Chinese translations of licensed games. Most of these releases used "Game GB Color" or simply "GB Color" branding.

Later releases came with "GB全彩中文" branding, later additionally identifying themselves with the Siddham script character 𑖦 (I bet your device can't display that). Although I don't believe these were openly credited to Kong Feng, they used the same PCBs, the same "SEA" back sticker, and the patent on their later shell design was registered to the same address that Kong Feng occupied at the time, so... you can draw your own conclusions there. However, under this line they seemed to move away from distributing Vast Fame games under their original titles, instead often rebranding them to latch onto big-name franchises, even when this was fairly incongrous with the game itself. (Eventually, they stopped publishing Vast Fame titles altogether and put out a string of low-quality RPGs developed by "Tian Cai Xiao Zi" using a hacked up version of VF's San Guo Zhi engine).

Now, while these cartridges were copy-protected, it turns out most of them didn't use the same protection found on Vast Fame's Taiwanese releases, but rather another variant on the well-understood type used by BBD and Hitek. So, after figuring that out I was able to emulate it pretty easily. It's supported in hhugboy 1.3.1+, named "Vast Fame secondary releases" in the "unlicensed compatibility mode" menu. In all cases I'm providing GBX and raw dumps, no deprotection hacks because they use the protection features in a non-trivial way.

(Incidentally the carts all have 32KB SRAM onboard and addressable, so I've specified that much in the GBX files, even though the games only seem to use 8)

Shu Ma Bao Long - Kou Dai Ban (數碼暴龍-口袋版)

Thanks to RocknRami for lending me this cart a long long time ago! The pic above is taken from her blog, because... if I ever took a picture when I borrowed it I sure as hell can't find it.

This is one of the earlier "Game GB Color" releases as seen in those magazine ads, released in 2001. The title translates to "Digimon Pocket Edition", although in English it's widely just known as "Digimon Pocket". Previously I dumped the same game via a Vast Fame multicart, but this version differs in a number of ways, which I'll get into later.

So this is an RPG based on Digimon, as you probably guessed. I believe this was Vast Fame's first RPG, with its Taiwanese release probably landing around 1999-2000. This was when Digimon was really hitting its stride as a multimedia phenomenon, with the Digimon Adventure anime starting its run worldwide and video games hitting various non-Nintendo platforms, of course leaving a Game Boy-sized open goal for unlicensed developers. I didn't play much of it when I dumped the multicart version previously, but since I was curious about the differences and have been getting into some bits of Digimon lately I decided to give it a bit more attention this time around and see what's what.

You start the game with a full team of 6 baby Digimon. Although they have levels, they don't gain experience by fighting; instead you earn crests through battle, which allow you to evolve one Digimon to any other Digimon of the next evolutionary stage, with each one having a fixed set of stats and moves. There are 134 total Digimon across all stages, with sprites which seem to be based on the designs used in "Digital Monster Ver. WonderSwan", which was released in March 1999, around the same time Digimon Adventure premiered in Japan. Characters from that anime appear as "gym leaders" (for want of a better term), but the setting and story doesn't seem to be based on it otherwise.

Progression is pretty simple. You travel from town to town fighting random inhabitants, gaining an evolution crest every 4 battles. Townspeople seem to cycle through a shared set of teams, and the later ones can totally wipe you out early in the game, but you can reset the cycle by leaving town. After evolving a couple of Digimon you'll be ready to take on the "gym leader" who will grant you access to the next town plus another crest for your trouble.

And that's really all there is to it; a number of other elements seem to be notably missing or unfinished. Even though there's no experience system, Digimon have a "0000/0000" meter in the stat screen, which seems to do nothing. There is a "monsters" count on the save screen, but it always remains at 000, and in any case there are no "wild" encounters nor any other way to obtain additional Digimon aside from evolving your starting six. There are also no items aside from the evolutionary crests. It's all pretty barebones and rough around the edges. It certainly shows that it was Vast Fame's first RPG, and I wouldn't be surprised if development had been rushed to catch the Digimon wave as early as possible, but at least it presumably provided some foundation for their later high-quality original works.

As for the differences to the multicart version: this release has a whole different (better) soundtrack, a few bugs are fixed, and its player character sprite is changed from Taichi to a generic cap-wearing kid. However, in both versions, Taichi appears on the title screen and Cap Kid appears as the player character's portrait. Apparently the Taiwanese single-cart release is identical to this one, in spite of its manual showing a Taichi sprite like the multicart version; this probably indicates the multicart version is an earlier build, similar to some of the other games on those carts. I'm still open to the possibility of an earlier Taiwanese print having a different revision, though; it has been sighted in the same "New GB Color" cart shells used for Vast Fame's very early releases (as well as certain hacks) and I don't think the contents of that particular version have been documented. There's also at least one English version, maybe two, but those have eluded me for a long-ass while.

Surprisingly, the ROM dump 1:1 matched a ROM that had been sitting under everyone's noses for years, inexplicably misnamed "Zelda Shi Kong Zhi Zhang (Encrypted) (Unl) [C]" in GoodGBX. So if you have that ROM, you can select the "Vast Fame secondary releases" mode in hhugboy and it will run just fine. But nevertheless I'm giving it a proper release with its proper name here.

Shu Ma Bao Long - Kou Dai Ban (Unl) (Chn) [C] [GBX].zip
Shu Ma Bao Long - Kou Dai Ban (Unl) (Chn) [C] [Raw].zip

(This cart has a DSHGGB-81 PCB and boots with a "DIGI." boot logo.)

Mo Jie Chuan Shuo (魔戒傳說)

Now we're getting into the GB全彩中文 releases, this presumably being one of the earlier ones, from 2002. Hey is this one of those Lords of the Rings I've heard so much about

Well... not really? It's actually E Mo Dao / E Mo Cheng 2, the Getsufuumaden/Castlevania hybrid, with the only apparent change being the title screen, plus the graphics for one of the intro scenes being corrupt (verified on real hardware). However in spite of that bug, the redone title screen is decent enough that I think the rework was done by Vast Fame themselves rather than being a post-hoc hack by someone else.

Vast Fame would revisit this theme later with a more comprehensive overhaul, currently dumped via a Li Cheng release, which adds a new properly LOTR-based opening cutscene, removes the map screen and makes the game totally linear instead.

Mo Jie Chuan Shuo (Unl) (Chn) [C] [GBX].zip
Mo Jie Chuan Shuo (Unl) (Chn) [C] [Raw].zip

(This cart has a DSHGGB-81 PCB and boots with a "TD-SOFT" boot logo, a strange one since that logo has also been seen in non-Vast Fame games.)

Mu Chang Wu Yu GB 6 (牧場物語GB6)

Another GB全彩中文 release. Unfortunately my copy has a low-quality reproduction label for some reason, but the original came with a gold seal that was applied to some of the mid-era carts under this line (they seemed to drop it when adopting a custom shell design for the Tian Cai Xiao Zi games).

Now we're REALLY in weird-rebrand territory. This game starts up with a series of nicely-drawn static graphics of Harvest Moon characters, and a new title screen to get you ready to enter a world of farming fun. Again, all of this appears to have been done by Vast Fame themselves; I don't know if it was their idea or done at Kong Feng's request, though.

But... Vast Fame never really made a Harvest Moon game, nor anything that would really fit the "agricultural RPG" theme at all. So what's the underlying game here? Why, sci-fi monster-collecting RPG, Shi Kong Xing Shou, of course! Yeah, why not! Maybe they were trying to do Innocent Life before Innocent Life. (does anyone even remember Innocent Life anymore? it just got left to die on the PSP while Rune Factory got 50 sequels and even outlasted its developer smh)

Mu Chang Wu Yu GB 6 (Unl) (Chn) [C] [GBX].zip
Mu Chang Wu Yu GB 6 (Unl) (Chn) [C] [Raw].zip

(This cart also has a DSHGGB-81 PCB and boots with a "DIGI." boot logo)

Digimon Sapphire

And finally! This is NOT a mainland release, but rather one of the rare few international English versions of Vast Fame games. It happens to use the same mapper as the above carts, despite having a totally different PCB and having been published by the "New Game Color Advance" company.

And this is not a rebrand either - it's basically an original Digimon strategy RPG, albeit based heavily on Vast Fame's previous original game Sheng Shou Wu Yu. It also received a rare Taiwanese release plus a mainland one under the GB全彩中文 line, which probably explains it using the same mapper here.

As usual for Vast Fame English games, the text is extremely badly translated, but just about comprehensible if you pay attention. Also the music is surprisingly messy here, with some tracks having channels out of sync, and music playing in weird locations like the Sheng Shou Wu Yu title theme playing in battle. Clearly it didn't have the same care and attention put into it that Sheng Shou itself did. But at least that solid foundation means it's got more going on than Digimon Pocket did.

You've probably noticed the cart calls this one "Digimon Saphire", but since the title screen has the correct spelling I'm going to be generous and not preserve their mistake in a ROM filename forever. You're welcome, label designer from 20 years ago.

Digimon Sapphire (Unl) (Eng) [C] [GBX].zip (GBX footer updated 22/02/2022 - new file CRC32 11B4BDE1)
Digimon Sapphire (Unl) (Eng) [C] [Raw].zip

(This cart has a BC-R1616T3P PCB and does not boot with a custom logo, despite having a "DIGI." logo at the usual spot in ROM)

16 Comments

Pikachu's Buffet

posted by taizou @ 2022-01-22 19:51:51 Dumps

Last time I dumped a multicart containing a game called Kou Dai Guai Shou - Dong Zuo Pian (or Pokemon Action Chapter), which was something like a remake of the well-known older hack "Monster Go! Go! Go!!". But did you know that hack didn't just have a remake, it had a sequel? Maybe if you read that wiki page I just linked to, you knew that. But who has time to read things any more?! You're not even reading this, right?

First, let's backtrack a little bit. The reason I'm able to bring you the sequel today is because I dumped that multicart previously. The original cartridge of Action Chapter was copy protected - so I hadn't done much with it despite owning it for A While - but the multicart was unprotected and used a known mapper, hence I was able to dump the entire multicart and extract that one game. Now, unprotected multicart rips don't always help with reverse engineering original cartridge copy protection, since they're often different recompiled builds of the game, and (at least with my limited skillset and the more complex protection systems) don't necessarily shed any light on how the original protection functioned.

But Action Chapter was different: it had clearly been hacked from the original version, redirecting certain reads to another ROM bank, where a pattern of bytes had been added. This revealed the protection on the original cart was pretty simple; all it was really doing was returning values based on a transformation of the address when ROM banks 80-FF were selected, and if those values were incorrect, the game wouldn't work. (This meant it would've been obvious if I overdumped the game when originally dumping it, which I always now do by habit, but... it was a long time ago). It actually resembles a simplified version of the runtime protection from Vast Fame GBA games, perhaps not coincidentally.

With that knowledge, I was then able to emulate the protection and get a dump from the original Action Chapter cart working. Which is cool! I always prefer to emulate the original protected versions of these games where I can - deprotected hacks can often have unforeseen bugs, even when they originate from "official"(?) sources. But what would be even more cool would be if some other game used this protection, wouldn't it? And so I trawled through a few likely candidates, turning up a lot of misses, until I found... you probably guessed already, Monster Go! Go! II! Of course it stands to reason that another Pokemon hack by the same publishers and (presumably) developers would work the same way, and it totally does. So let's get into it!

Guai Shou Go! Go! II (怪獸 GO! GO! II)

So, you're the developer of that hit Smurfs' Nightmare hack Monster Go! Go! Go!!, in which an obscure Game Boy title was taken, graphically overhauled, colourised, and passed off as an entirely new and halfway-convincing Pokemon platformer for the Game Boy Color. Naturally, your thoughts turn to a sequel. Which little-known game from the depths of the Game Boy's library could serve as the basis for this one? Well, nobody has heard of this "Kirby", right?

Yep: this game is a hack of none other than Kirby's Dream Land 2, the massively-expanded followup to the original round boy's debut outing, bringing his trademark copy powers to the Game Boy for the first time, plus three new animal friends. So maybe they didn't choose an obscure game, but they did choose a very good one.

Unfortunately, this isn't nearly as comprehensive an overhaul as the original Go! Go!, with only the title screen and main Kirby sprite being changed (and even some Kirby sprites remain unaltered, notably when being carried by the owl or fish). You won't find any enemies being replaced by Pokemon here, sadly. In fact, the scope of this hack is much closer to the remade Action Chapter than the original Go! Go!. Perhaps this points to reduced budgets or increased time pressure coming from the "New GB Color" publisher, or maybe the developers just didn't think it was worthwhile drawing a bunch of new graphics for a game that already has a pretty serviceable Pokemon-like vibe. The colourisation is also fairly scant, with most of the game having just one sprite palette and one background palette.

The new Pikachu sprites are still fairly well-done, albeit mostly limited by Kirby's diminutive dimensions, which can't help but feel like a downgrade from the adorably chunky Smurf-sized guy seen in the previous game. But there's obviously something missing from the screenshots so far, isn't there? This is a Kirby game. Kirby has the power to inhale things, hold them in his mouth, spit or swallow, and float through the air. Pikachu can't (usually) do any of those things! So I KNOW you all you freaks out there want to know how they handled that. (don't worry i'm freaks too)

As for how the copy powers look, you can find out for yourself, but they generally range from "fine" to "unchanged if they could get away with it".

And now to the dirty business of ROMs. There are 3 versions; the GBX will work in hhugboy 1.3.1 or later with no extra configuration, the raw will work in the same versions if you set "Unlicensed compatibility mode" to "New GB Color Pokémon hacks", and the MBC5 hack should work in anything. I made the latter the cheap (but safe) way of expanding it to 4MB with the protection pattern hardcoded in the ROM at the address it's read from.

GBX: Guai Shou Go! Go! II (Unl) [C] [GBX].zip
Raw: Guai Shou Go! Go! II (Unl) [C] [Raw].zip
MBC5 hack: Guai Shou Go! Go! II (Unl) [C] [MBC5 hack].zip

Kou Dai Guai Shou - Dong Zuo Pian (口袋怪獸-動作篇)

And of course, for completeness' sake, now I need to bring you the original dump of Pokemon Action Chapter! It's exactly the same game as on the multicart, but with copy protection this time. So I'll reuse the same screenshots too.

I noted when dumping the multicart version that half of the ROM was taken up with some random DOS program that may have been in memory on the PC when the game was compiled (since it's really a 512KB game but using a 1MB ROM, a trait inherited from the original Smurfs game), and that's still here in the single cart ROM too.

I actually have two carts of this game, with slightly different labels; the one pictured above, and another which is almost identical with an extra bit of text reading 彩色中文版 (meaning "Colour Chinese Version", pretty misleading since nothing is in Chinese aside from the title screen). The ROMs are ALMOST identical between the two, except for one byte in the unused random-DOS-data portion. So I'm only posting the dump where that byte matches the multicart, since it seems to be the good one, and it doesn't actually matter anyway. If you want to reconstruct the other one, change the 0A at A3B86 to 2A.

The GBX and raw dumps work in hhugboy the same as Go! Go! 2. I'm not posting any deprotection hack of this version since the existing multicart rip already serves that purpose.

GBX: Kou Dai Guai Shou - Dong Zuo Pian (Unl) [C] [GBX].zip
Raw: Kou Dai Guai Shou - Dong Zuo Pian (Unl) [C] [Raw].zip

18 Comments

hhugboy v1.3.1 release

posted by taizou @ 2021-12-06 17:21:55 hhugboy

Just a quick emulator update post (yeah this thing is still going! for now!)

It adds support for 2 semi-obscure mappers covering dumps which will be released sometime soon, and also tweaks save file loading to allow undersized files to be loaded (since switching between unlicensed compatibility modes can change the RAM size & the previous behaviour would cause your save file to be overwritten).

Get it here!

9 Comments