+wavemotion Posted November 11, 2021 Share Posted November 11, 2021 (edited) 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! Edited November 11, 2021 by llabnip 5 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted November 14, 2021 Author Share Posted November 14, 2021 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. 1 Quote Link to comment Share on other sites More sharing options...
pedalpowered Posted March 7, 2022 Share Posted March 7, 2022 Did you ever get the EE access figured out? I'm surprised no one here commented. Obviously, the information is out there somewhere, as Team Pixelboy have created their own PCB and released games using it--and including EE support. Quote Link to comment Share on other sites More sharing options...
+5-11under Posted March 7, 2022 Share Posted March 7, 2022 The "Activision" EEPROM games include Boxxle, Arcomage, Jewel Panic, and The Black Onyx. Send a PM to Pixelboy... he should have the details... or at least he can point you in the right direction. Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted March 7, 2022 Author Share Posted March 7, 2022 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. Quote Link to comment Share on other sites More sharing options...
kevtris Posted March 10, 2022 Share Posted March 10, 2022 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. 6 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted April 24, 2022 Author Share Posted April 24, 2022 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! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.