Jump to content
IGNORED

Bankswitched bankswitch games? Yes!


CPUWIZ

Recommended Posts

The MESS debugger was invaluable for this tracking down all of the bank switch hits.

 

Thanks to the debugger, I found an off-by-1 bug in its initialization code, which caused an indirect address write to try and write to this odd location.

 

Anyway, I'm hoping you guys enjoy this collection. We hand-picked the games to try and included some of the rarer 128k games, based on the feedback from the 1st collection. :)

 

I'm sure I will enjoy #2 as much as #1...Looking forward to both in-hand :-D

 

Glad to see some very nice dividends being paid from all the MESS work...Very cool :)

  • Like 1
Link to comment
Share on other sites

RevEng and me have done it, it was pretty tricky and I'll let Rev chime in on some of the work he had to go through. But the result is that there is a new bankswitching scheme on this planet. I think we'll call it SC1024, it works by banking in and out entire 128K bankswitched games (bank 0-5 @ $8000, bank 6 @ $4000 and bank 7 @ $C000). :cool:

Is the shooting game Sentinal on this cart?

Link to comment
Share on other sites

Is the shooting game Sentinal on this cart?

From the screen capture provided in the OP, the games included are:

 

Basketbrawl

Ikari Warriors

Mean 18

Midnight Mutants

Ninja Golf

Scrapyward Dog

TM Wrestling

Water Ski

 

As mentioned earlier there are 8 games which are 128kB each.

128kB x 8 = 1024KB = 1MB - The largest cart currently available (Thanks to CPUWIZ) for the 7800.

  • Like 1
Link to comment
Share on other sites

The original bug? Not at all. It triggers a false bankswitch with certain hardware, but it seems they worked around it one way or another. In our case we fixed the bug, so the end result is the same.

 

If I were to put the BIN file on an EPROM on a normal super cart would I trip the bug?

Meaning if the super cart is configured to do the usual page 6 @ 4000-7fff then page X @ 8000-bfff then page 7 @ b000-ffff, would I require the fix?

 

Thanks, I am attempting to do the same thing but with a simple dip switch bank, no fancy selection menu, no game patching to bank on 6 bits, simply sharing a 1MByte EPROM with 8 128K games in the crudest of ways.

Edited by phoenixdownita
Link to comment
Share on other sites

If I were to put the BIN file on an EPROM on a normal super cart would I trip the bug?

Meaning if the super cart is configured to do the usual page 6 @ 4000-7fff then page X @ 8000-bfff then page 7 @ b000-ffff, would I require the fix?

I don't know for sure, since I didn't dig any more deeply into it once I fixed the source of the spurious bankswitch and confirmed the game was working. It could just be coincidence, but to me the usage of the 9000 hotspot infers they knew about the spurious bankswitch. The question is, did they work around it in hardware or software?

 

Since the game works in emulation, the workaround could well be in software, and our meta bankswitching scheme doesn't work with their work-around. If the workaround is hardware, then the emulation of Atari bankswitching may not be 100% accurate.

 

I'll be interested to hear how Ninja Golf works once you get your cart running. If you do need to patch it to get it to work, just search for "A9 16 85 7E" in a hex editor, and change the $16 to $15. You'll also need to re-sign the binary.

Edited by RevEng
  • Like 2
Link to comment
Share on other sites

I don't know for sure, since I didn't dig any more deeply into it once I fixed the source of the spurious bankswitch and confirmed the game was working. It could just be coincidence, but to me the usage of the 9000 hotspot infers they knew about the spurious bankswitch. The question is, did they work around it in hardware or software?

 

Since the game works in emulation, the workaround could well be in software, and our meta bankswitching scheme doesn't work with their work-around. If the workaround is hardware, then the emulation of Atari bankswitching may not be 100% accurate.

 

I'll be interested to hear how Ninja Golf works once you get your cart running. If you do need to patch it to get it to work, just search for "A9 16 85 7E" in a hex editor, and change the $16 to $15. You'll also need to re-sign the binary.

Thanks a bunch, will keep you posted once I got all the needed hardware, still waiting for the inverters.

 

Not even sure if only the 32K games need the inverters or also 48K and 128K, I will find out I guess once I attempt.

Those supercarts do have other hardware to do the bank selection, not sure if they control OE or /OE.

 

I took a look at the source code of the signer tool, nice little thing, and I discovered that for 144K games the first 32K in the a78 files are the extra 32K (at 0x4000 instead of page6), somehow I would have expected them to be at the back .... always learning something new.

Also learnt that in absence of anything else the tool for 128K banked games assumes that page 0 is mapped at 0x8000 at startup (during signature verification) and signature only covers the 48K spanning page 6 [at 0x4000], page 0 [at 0x8000] and page 7 [at 0xc000], for the rest anything goes.

Edited by phoenixdownita
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...