Author Topic: Problem with Mapper 71 games? Codemasters, Micro Machines, Ultimate Stuntman...  (Read 339 times)

0 Members and 1 Guest are viewing this topic.

Offline rainwarrior

  • Newbie
  • *
  • Posts: 36
  • Karma: +6/-0
    • View Profile
Micro Machines and Ultimate Stuntman both have big problems with the racetrack getting corrupted on the Everdrive N8. Could be a problem with Camerica mapper 71 maybe?

Some pictures here:
http://forums.nesdev.com/viewtopic.php?p=188856#p188856

OS: 15
Bios: 5
CPLD: 2

Edit: as a test I changed the Ultimate Stuntman header to use mapper 2 (it seems UNROM compatible), and it appears to work correctly with that header change, so I suspect the mapper 71 implementation is the problem?

Edit 2: Seems like both games write $00 to $8000-BFFF at startup, and the mapper implementation must get confused by this, presuming it has mapper-controlled single screen mirroring instead of the fixed mirroring both of these games have. Only Fire Hawk should have single screen mirroring.

FCEUX seems to work around this by limiting the mirroring register to $9000-9FFF? (source) Apparently Fire Hawk only writes it as $9000, and the rest of the games that don't have mirroring control write it at $8000?
« Last Edit: February 09, 2017, 08:22 pm by rainwarrior »

Offline aloram

  • Full Member
  • ***
  • Posts: 246
  • Karma: +5/-0
    • View Profile

Offline rainwarrior

  • Newbie
  • *
  • Posts: 36
  • Karma: +6/-0
    • View Profile
I did search for old threads but I didn't want to bump them. I'm trying to explain here how to fix the mapper, not tell people how to work around it. You can edit the header to use UNROM mapper 2 for some of these games (it's "mostly" compatible) but the better solution is for Krikzz just to fix mapper 71, I think.

Offline aloram

  • Full Member
  • ***
  • Posts: 246
  • Karma: +5/-0
    • View Profile
I did search for old threads but I didn't want to bump them. I'm trying to explain here how to fix the mapper, not tell people how to work around it. You can edit the header to use UNROM mapper 2 for some of these games (it's "mostly" compatible) but the better solution is for Krikzz just to fix mapper 71, I think.
Yeah, I wasn't trying to be rude, I just wanted to show you that this had been discussed before. I, too, would like the issue resolved. :)

Offline Great Hierophant

  • Full Member
  • ***
  • Posts: 164
  • Karma: +13/-0
    • View Profile
I did search for old threads but I didn't want to bump them. I'm trying to explain here how to fix the mapper, not tell people how to work around it. You can edit the header to use UNROM mapper 2 for some of these games (it's "mostly" compatible) but the better solution is for Krikzz just to fix mapper 71, I think.

I have viewed all the Camerica games and have found no flaw in them when you change the mapper from 71 to 2.  Could you be specific as to which games are still working incorrectly after the change?
Check Out My Vintage Video Game & Computing Blog : http://nerdlypleasures.blogspot.com/

Offline rainwarrior

  • Newbie
  • *
  • Posts: 36
  • Karma: +6/-0
    • View Profile
The version of Micro Machines I have doesn't boot as mapper 2.

Writes to the "stun circuit" register erroneously bankswitch the ROM as mapper 2. These are not harmless, at least in that case. I haven't checked them all.

There is also the write of $00 to $8000 (which is why Everdrive N8's mapper 71 fails) that also causes a bad bankswitch in mapper 2, but it appears to overlap with use of bank 0 so that itself ends up being harmless?)

Fire Hawk obviously won't work as mapper 2 as well, but it's the reason we're here in the first place.

Offline Great Hierophant

  • Full Member
  • ***
  • Posts: 164
  • Karma: +13/-0
    • View Profile
The version of Micro Machines I have doesn't boot as mapper 2.

Writes to the "stun circuit" register erroneously bankswitch the ROM as mapper 2. These are not harmless, at least in that case. I haven't checked them all.

There is also the write of $00 to $8000 (which is why Everdrive N8's mapper 71 fails) that also causes a bad bankswitch in mapper 2, but it appears to overlap with use of bank 0 so that itself ends up being harmless?)

Fire Hawk obviously won't work as mapper 2 as well, but it's the reason we're here in the first place.

What is the CRC of your non-working Micro Machines?  Both the standalone U.S. ROM, 9235B57B and the Aladdin Deck Enhancer ROM, 24BA12DD, work fine for me in my EverDrive with the mapper set to 2.  The only other ROM I know of is the European ROM, DB1FD64E and it works fine for me as set to mapper 2.  Weirdly, the European ROM works at the proper NTSC speed in an NTSC console.
Check Out My Vintage Video Game & Computing Blog : http://nerdlypleasures.blogspot.com/

Offline rainwarrior

  • Newbie
  • *
  • Posts: 36
  • Karma: +6/-0
    • View Profile
My "Micro Machines (U).nes" has the following hashes:

CRC32: 0A9872D6
MD5: E739F61955C4793B74AC72A067219117
SHA-1: 799B685821C244ECC0BCEC02BC5F3BCA43E838CE

PRG-ROM: 256k, CRC: 0x6B523BD7

With the header changed to UNROM, writes to $FFF0 shortly after boot seem to switch to an invalid bank and crash.

Offline Great Hierophant

  • Full Member
  • ***
  • Posts: 164
  • Karma: +13/-0
    • View Profile
My "Micro Machines (U).nes" has the following hashes:

CRC32: 0A9872D6
MD5: E739F61955C4793B74AC72A067219117
SHA-1: 799B685821C244ECC0BCEC02BC5F3BCA43E838CE

PRG-ROM: 256k, CRC: 0x6B523BD7

With the header changed to UNROM, writes to $FFF0 shortly after boot seem to switch to an invalid bank and crash.

The PRG-ROM CRC you gave corresponds to the following GoodNES 3.14 ROMs :

Micro Machines (Camerica) [b1].nes
Micro Machines (Camerica) [b1][o1].nes

[b#] stands for bad and [o#] stands for overdump.  There are exactly two bytes (four bits really) which differ between the [b1] and the verified good standalone U.S. cartridge dump :

3B2B4 : E9 E5
3B2C4 : 26 2A
Check Out My Vintage Video Game & Computing Blog : http://nerdlypleasures.blogspot.com/

Offline rainwarrior

  • Newbie
  • *
  • Posts: 36
  • Karma: +6/-0
    • View Profile
Ah, okay, I didn't realize I had a bad dump. Dunno if those bad bits are relevant, though: trying again with "Micro Machines (Camerica) [!].nes" (PRG: 9235B57B) yields more or less the same result. As mapper 2 it doesn't run in either Nintendulator or FCEUX.

I don't think I'd even tried it on the Everdrive, since it was already failing on emulators I presumed it was a lost cause. (I might try later out of curiosity.)

"Micro Machines (Camerica) (Aladdin) [!].nes" also fails as mapper 2 in FCEUX but works in Nintendulator.
"Micro Machines (E) (Unl).nes" works as mapper 2 in both.