Jump to content
IGNORED

Activision PCB - Bank Switching and EEPROM


wavemotion

Recommended Posts

Hi folks!

I'm working on cleaning up an old Emulator for the DS/DSi for the Colecovision - ColecoDS.

I've got it running again and have added in some updates such as MegaCart bank switching and the Super Game Module ... both of which I was able to find excellent documentation on both from the publishers and here at Atariage.

But I've really struggled to find any solid information on the Activision 64K PCB by Team Pixelboy. I know it's 4 banks and it's similar to MegaCart but I'm not exactly sure how it's all mapped.

For example, I think bank 0 (rather than the highest bank) is in the fixed CV memory map of 0x8000-0xBFFF. 
I'm less sure of what goes in the next 16K bank... I put bank 1 in there to start and treated it exactly like MegaCart (0xFFC0 hotspot... so mostly expecting 0xFFFF=bank3, 0xFFFE=bank2, 0xFFFD=bank1 and 0xFFFC=bank0).  So far, I've only been able to get Black Onyx (minus EE support) to work with this... I'm sure something isn't quite right.

Also... I'm guessing the EEPROM support is simply using the 2 lines clocked to an old-school EEPROM... SDL (data) and SCL (clock) or similar?  Anyone know what ports those are accessed on?

If this is meant to be proprietary information, that's cool - just nudge me off the post :)

 

Thanks much in advance!

1636392804217.png

Edited by llabnip
  • Like 5
Link to comment
Share on other sites

To partially answer my own question... after digging around with a mini-debugger on my DSi plus more Google-fu, I managed to discover that not ALL 64K coleco games are Activision PCB. Some are Megacart. That was throwing me. After properly detecting the "Magic Number" of 0x55AA at the start of the last bank. 

 

Then with a bit of experimentation I discovered that the true Activision PCB games seem to access 0xFF80 and above as hotspots... with:

 

Write to 0xFF90 swapping in bank 1
Write to 0xFFA0 swapping in bank 2
Write to 0xFFB0 swapping in bank 3

 

I guess because bank 0 is always in the lower 16K of the ROM space there is never a need to pick it (MegaCart allows this... you can, if you so choose, duplicate the uppermost bank in both 16K ROM segments though there probably isn't a great reason to do so).

 

Still working out EE access.

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

Yes, I mostly reverse engineered it with some help from other emulators where the source was available. I've got all the "Activision" EE games running - though I haven't implemented emulation of the 24cXX serial EEPROMs. It's been low on my priority list as those games run fine without that - and the snapshot save-state ability of the emulator means I don't really care if the EE gets written or not. 
 

Link to comment
Share on other sites

RFF80 - returns data in bank 2 or 3 depending on if SDA is low or high, respectively (only at this address, see below)

WFF90 - select bank 1 @ C000

WFFA0 - select bank 2 @ C000

WFFB0 - select bank 3 @ C000

WFFC0 - clear SCL

WFFD0 - set SCL

WFFE0 - clear SDA

WFFF0 - set SDA

 

ROMs appear to return 00 and 01 at FF80 (BF80, FF80 in the 64K ROM itself) depending on the state of SDA.  I suspect, going by the contents, that the last 128 bytes of the cart is fixed to these two ranges (bank 2 or bank 3's last 128 bytes) depending on the state of SDA at all times, but didn't check.  The last 128 bytes of the three selectable banks are all FF's except the first byte at FF80 of bank 2 and 3 as specified.

 

Bank 0 is fixed to 8000-BFFF.

 

 

  • Like 6
Link to comment
Share on other sites

  • 1 month later...

Ok... I finally found some time today to add the "Activision PCB" EE support for ColecoDS.

 

I only have 2 of the games... it appears Black Onyx is using a very small 256B EE and Boxxle has a 32KB EE.  Both are now working fine and saving the EE data to a file. 

I don't have Acromage nor Jewel Panic... does anyone know what size EE those are using?   I have a config option to change the size but it's always nicer if it defaults properly for a given game.

 

Thanks!

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...