3

I have an INLRetro cart dumper. The software for the device is incomplete and in beta form. I've been able to dump Tetris and it works (because it's ROM fits into bank 0). When I attempt to dump a larger cart it appears that the second bank is just repeated every 16kb for any bank past bank 1.

The particular cart that I'm testing with is F1-Race. The header for the game states the following:

0x147 06 = "ROM+MBC2+BATTERY"

0x148 02 = 1Mbit = 128KByte = 8 banks

0x149 00 = No ram

The docs say: Writing a value (XXXXBBBB - X = Don't cares, B = bank select bits) into 2000-3FFF area will select an appropriate ROM bank at 4000-7FFF.

I have attempted to switch to bank 3, I've written 0x03 to location 0x2000. But when I read 16k starting at 0x40000 the data that comes back is the same as the data I read from bank 0 at 0x00

Could my failure to see any other banks be due to me not initializing the cart properly with some sequence of writes?

| improve this question | | | | |
  • Isn't this a question that the vendor of the dumper should be able to answer? – another-dave Mar 22 at 17:23
  • I am asking about the initialization of gameboy carts and asking for specific guidance on how to access memory banks. – deanhuff Mar 22 at 17:42
  • @another-dave As the initial post says "The software for the device is incomplete and in beta form." It looks like deanhuff is trying to contribute support for a new mapper to it. (And, as a fellow INLRetro dumper owner, I applaud that. As-is, I only use it for NES/Famicom dumping and rely on my more expensive Retrode2 for everything else. Even then, I'm considering learning to SMT solder so I can build a Sanni dumper and get more NES mappers supported.) – ssokolow Mar 23 at 20:59
  • Sorry if it looked like criticism - not being familiar with the thing, it looked like it was a question specifically about how the dumper worked. We can delete this comment sequence if you wish. – another-dave Mar 24 at 0:00
  • @ssokolow is right on target. @PaulHK’s answer got me working. The docs I was using had the info there about the MBC2 , I just missed it. Anyway, I should have a lua script with full Gameboy and Gameboy color ROM and SRAM dump support (MBC1, MBC2, MBC3, MBC5) shortly. – deanhuff Mar 24 at 3:23
2

https://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers#MBC2_.28max_256KByte_ROM_and_512x4_bits_RAM.29

According to that there is a bit in the address you're using that is also relevant.

"The least significant bit of the upper address byte must be one to select a ROM bank." - The address needs OR'ing with 0x0100.

Try writing to 0x2100->0x21ff as suggested in the link.

My memory is very foggy on the details of MBC2.

| improve this answer | | | | |
  • YES!!!! thank you that did it. – deanhuff Mar 23 at 15:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.