Are cheat hacks allowed if no emulator for the platform supports cheats?

Started by rari_teh, November 26, 2021, 01:03:23 AM

Previous topic - Next topic

rari_teh

Quick question: I've made a hack for a Mega Duck game that disables the timer (which is arguably needed to complete the game as at least one level does not seem to be completable in 300 seconds even if played optimally). The problem with the Mega Duck is that it's only emulated by MAME, which doesn't seem to support cheats for the platform, and as far as it is known there has never been a cheat device released for the physical system either. With this in mind, would this hack be allowed on the site?

On that note, how can I submit a hack for a game whose platform isn't listed?

mkwong98

If you look at the improvement hack on this site, many of them reduce the difficulty of the game, so I think you can categorise yours as one of them.

goldenband

Quote from: rari_teh on November 26, 2021, 01:03:23 AMQuick question: I've made a hack for a Mega Duck game that disables the timer (which is arguably needed to complete the game as at least one level does not seem to be completable in 300 seconds even if played optimally).

Very interesting! Would you mind providing more details?

I find it fascinating when games literally can't be completed (see also: Flipull for Game Boy, Stage 49). It ought to be documented so future generations don't bang their head against the wall, even a wall as wonderfully obscure as the Mega Duck.

Jorpho

Quote from: goldenband on November 26, 2021, 10:12:32 AMsee also: Flipull for Game Boy, Stage 49
Gee, I hadn't heard of that before. Do you have more information? I found this Japanese article with accompanying Youtube video, though it's not entirely clear and I'm wondering if it got fixed in international versions.

Guru Larry has a few neat examples, as in https://www.youtube.com/watch?v=0mn-4y8YrU4 .
This signature is an illusion and is a trap devisut by Satan. Go ahead dauntlessly! Make rapid progres!

FAST6191

Stock MAME might not do cheats (and even sometimes struggles with modified images) but there are forks, and while I can't speak to MAME then for many other emulators (and PC games in general) external cheat programs are a popular thing with a long history here. Emuhaste, artmoney, cheat engine being the more noted of these but many hex editors will attach to memory, and Scanmem, GameConqueror, Bit Slicer, iHaxGamez and Squalr form many others. You could even program your own fairly easily (it is arguably what many PC trainers are).
Can get tricky when MAME updates versions and because compilers the location of the emulated system's memory changes but they are usually easy enough to find (assuming there are no simple tells then a savestate to compare to a hex editor memory dump of the whole program will usually do the job) so in turn you can define an offset instead (and maybe a pointer read in case it is one of those weird emulators that dynamically assigns memory locations).

goldenband

Quote from: Jorpho on November 26, 2021, 10:53:30 AMGee, I hadn't heard of that before. Do you have more information? I found this Japanese article with accompanying Youtube video, though it's not entirely clear and I'm wondering if it got fixed in international versions.

The bug is definitely present in North American versions too (can't speak to any other regions). A couple people or websites trying to "beat every Game Boy game" have run into it, e.g. a brief discussion in the 2020 Game Boy thread at Video Game Sage.

There's also another Flipull playthrough on YouTube that appears to use the NA version (notice "TAITO" vs. "TAITO CORP" on the title screen -- the Japanese ROM has the latter), and runs into the same issue at Stage 49.

As for the underlying cause, I don't know and wish I did. I'm sort of surprised that the US and Japanese ROMs are different, but beyond the title screen modification, apparently there are a lot of little 1-byte changes throughout the whole thing, as well as conversions of large swathes of $FF to $00 (or vice versa). It'd be interesting to find out what the differences are but there's nothing on TCRF about it, sadly.

I'd have to imagine the fix is fairly simple, but will the Game Boy port then end at Stage 50, with a proper ending like the Famicom version has? Or did they pull the kind of move Guru Larry talks about, and leave Stage 49 bugged out to avoid implementing the ending? :D

rari_teh

Quote from: goldenband on November 26, 2021, 10:12:32 AM
Very interesting! Would you mind providing more details?

I find it fascinating when games literally can't be completed (see also: Flipull for Game Boy, Stage 49). It ought to be documented so future generations don't bang their head against the wall, even a wall as wonderfully obscure as the Mega Duck.

Sure! It's a game called Dice Block, which has only been released as part of a multicart called Mega Duck 4-in-1 (sold just as Four in One in the regions where the console was called Cougar Boy, yet the ROM was exactly the same). Sachen later ported it to the Game Boy together with all their other Mega Duck games, since both consoles had very similar architecture – while I know for a fact that they altered some games for the DMG release, Dice Block still has the impossible level. I'm actually thinking of writing a blogpost about this game, not only to point this out but also to explain how the game works since it's not very intuitive, there are no scans of the manual available and all gameplay videos I've been able to find consisted of people trodding about the first level without knowing what to do. Once you get the hang of it and disable the bloody timer, it's actually quite fun.

goldenband

Quote from: rari_teh on November 26, 2021, 01:34:19 PM
Sure! It's a game called Dice Block, which has only been released as part of a multicart called Mega Duck 4-in-1 (sold just as Four in One in the regions where the console was called Cougar Boy, yet the ROM was exactly the same). Sachen later ported it to the Game Boy together with all their other Mega Duck games, since both consoles had very similar architecture – while I know for a fact that they altered some games for the DMG release, Dice Block still has the impossible level. I'm actually thinking of writing a blogpost about this game, not only to point this out but also to explain how the game works since it's not very intuitive, there are no scans of the manual available and all gameplay videos I've been able to find consisted of people trodding about the first level without knowing what to do. Once you get the hang of it and disable the bloody timer, it's actually quite fun.

Thanks for this! The fact that it's available on the Game Boy (and/or Game Boy Color), still with the same bug/issue, adds a layer of interest since a lot more people play GB/GBC. If you do write a blog post I'd be pleased to read it. :)

rari_teh

Quote from: goldenband on November 26, 2021, 03:59:57 PMThanks for this! The fact that it's available on the Game Boy (and/or Game Boy Color), still with the same bug/issue, adds a layer of interest since a lot more people play GB/GBC. If you do write a blog post I'd be pleased to read it. :)

Sorry for bumping this ancient post, but I finally managed to write that blogpost, if you're still interested lol. Apologies in advance for the length, but I couldn't get it any shorter haha

goldenband

Quote from: rari_teh on February 06, 2023, 07:08:54 AMSorry for bumping this ancient post, but I finally managed to write that blogpost, if you're still interested lol. Apologies in advance for the length, but I couldn't get it any shorter haha
Awesome! That's really interesting stuff, and I'm definitely still interested. Thanks for writing that up, and for circling back to share it here.  :)

tobiasvl

Quote from: goldenband on November 26, 2021, 12:33:45 PMThe bug is definitely present in North American versions too (can't speak to any other regions). A couple people or websites trying to "beat every Game Boy game" have run into it, e.g. a brief discussion in the 2020 Game Boy thread at Video Game Sage.
Since this thread has been bumped already, I'll chime in about Flipull since I'm working on a patch for this. I can also add the info to TCRF.

The Game Boy version of Flipull simply contains 48 levels. The manual claims there are 50 levels, as the Japanese article alludes to, but the ROM only has 48 (and not all of those are unique, as the article also says). So when the game tries to load level 49, it loads some unrelated data and interprets it as level data, causing the bugged "remaining blocks" count which is displayed as a non-number tile, which internally has a higher ID number than the actual remaning blocks on the board, making it impossible to beat.

Quote from: goldenband on November 26, 2021, 12:33:45 PMI'd have to imagine the fix is fairly simple, but will the Game Boy port then end at Stage 50, with a proper ending like the Famicom version has? Or did they pull the kind of move Guru Larry talks about, and leave Stage 49 bugged out to avoid implementing the ending? :D

Yes, the fix is fairly simple, and I'll upload a patch for it. The game doesn't contain an ending animation like the Famicom version does. However, it does contain other animations that were supposed to appear after every 10th level, but they're skipped over in the final product and seem a bit unfinished. I'll also upload a patch that reinstates them.

Quote from: goldenband on November 26, 2021, 12:33:45 PMAs for the underlying cause, I don't know and wish I did. I'm sort of surprised that the US and Japanese ROMs are different, but beyond the title screen modification, apparently there are a lot of little 1-byte changes throughout the whole thing, as well as conversions of large swathes of $FF to $00 (or vice versa). It'd be interesting to find out what the differences are but there's nothing on TCRF about it, sadly.

I can add that to TCRF too. The differences are small; you already mentioned the title screen (TAITO vs TAITO CORP.). Apart from that, the US version also adds a small block of code to clear some data at some point. This code block causes a lot of addresses after it to be offset, which is what causes the little 1-byte changes you mention. The large swathes of $FF and $00 are likely because the ROM chip in the Japanese version uses $FF as the empty value (ie. after the actual mask ROM image of the game) while the US ROM chip uses $00, so that's not a difference in the actual game. The US version also adjusts the position of "MISS!" text (that appears when you miss a shot) to be 8 pixels more to the right than the Japanese version. Those are the only differences between the two versions!

goldenband

This is awesome stuff, Tobias. How fascinating, in particular, that the game only has 48 levels! Almost makes you wonder if the manual's 50-level claim is a conscious lie, as opposed to an honest mistake.

Thank you for the contribution, for your additions to TCRF, and your upcoming patches to restore the animations in the Game Boy version!