This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Low G Man "plays nice with emulators" patch

Low G Man "plays nice with emulators" patch
by on (#152619)
The other day I felt like seeing what the infamous Low G Man compatibility problem was all about. I ended up making a simple patch for it so that it would function correctly on most emulators and flashcarts like the Everdrive N8 and PowerPak.

http://www.romhacking.net/hacks/2512/

Basically the problem is that it's supposed to run on an MMC3 board with either no WRAM, or disabled WRAM, but the iNES format can't specify no WRAM and many emulators don't implement WRAM disable. There are some latent bugs in its code that can manifest as a crash a few seconds into a boss fight, or graphical problems when using the boomerang weapon. These bugs would end up accidentally reading values from the WRAM region, which if properly disabled would result in "open bus" values read that by lucky co-incidence don't cause problems in the game. Very often emulators or flash carts end up supplying zeroes instead of an open bus, causing these latent bugs to activate.

Anyhow, the patch is pretty simple. Treat it as regular MMC3 with WRAM and no expectation that the WRAM disable will work. Initialize the entire WRAM to $FF and never disable it. Seems to take care of all the problems, and it appears to play just fine on both my PowerPak and Everdrive N8.

(I should probably offer thanks to tepples for pointing out and describing this game's problem several times in the past. I wouldn't have done this without that.)
Re: Low G Man "plays nice with emulators" patch
by on (#152622)
How do you have all the free time to fix old games and program original homebrews and write NES cover version of classic rock songs...

https://www.youtube.com/watch?v=NNPr9DoKL04

Nice work, btw. :)
Re: Low G Man "plays nice with emulators" patch
by on (#152743)
I was about to download this the other day, but I thought about it and I might actually own the cart...
Re: Low G Man "plays nice with emulators" patch
by on (#152764)
Just wondering, with pull-up resistors resolving to a '1' on the bus rather than the common pull-down situation present on these RAM carts, will the original title function as intended?
Re: Low G Man "plays nice with emulators" patch
by on (#152768)
My solution was to fill RAM with $FF, and yes that seems to run the game fine (a few people have been playing it, and I haven't beaten it but I've played a ways into it at this point and haven't noticed problems yet).
Re: Low G Man "plays nice with emulators" patch
by on (#152772)
It is possible with NES 2.0 header to specify no WRAM. If you want a legitimate dump, I would prefer to add the NES 2.0 header to specify such things.
Re: Low G Man "plays nice with emulators" patch
by on (#152773)
My only goal with this patch is so that people could play this game today on emulators and flash carts that exist now.

If you want to put an NES 2.0 header on it, I'm not standing in your way at all. Please go right ahead. It's just not very effective right now for getting it to run anywhere.
Re: Low G Man "plays nice with emulators" patch
by on (#152774)
rainwarrior wrote:
My solution was to fill RAM with $FF, and yes that seems to run the game fine (a few people have been playing it, and I haven't beaten it but I've played a ways into it at this point and haven't noticed problems yet).


I should elaborat more: the only errant reads I've discovered are within the WRAM region. It doesn't appear to read anywhere else outside traditional ROM/RAM/register locations. It never appears to make any writes to the WRAM region either, so the patch is also germane to implementations that do not have a write protect implementation. (I do set write protect after filling WRAM, but it seems to be unneeded.)