RAMBO-1 Mapper Investigation
Posted: Tue Dec 03, 2019 3:14 pm
I have finally started looking at the RAMBO-1 mapper chip suggested by newrisingsun, to try to figure out the scanline counter's mysterious 'extra kick' that is necessary for some games to run properly. I got the chip from a Klax cart. I have this hooked up to my old MMC5 tester and having some unexpected things already.
I haven't gotten any life out of the scanline counter yet, but I do have the CPU cycle counter working mostly as expected. I think it is a good starting point and when I start to understand it better, I think it will make it easier to transition to the scanline counter.
Interesting, I find that writing to $E001 (IRQ acknowledge / enable) does NOT clear the IRQ; it stays low forever when I do that. I find that I have to write to $E000 (IRQ acknowledge / DISable) first, then write to $E001 in order to clear the IRQ. Does anyone have any idea why this would be? Am I doing something wrong? Pretty sure there is only 1 source of IRQ in this chip -- I don't really get how it can stay low when writing to $E001. Writing to $C000 does change the reload value similar to what is stated in the wiki, and that much functionality gives me more confidence in the setup.
Just wondering if that is a bad sign that I have to disable the IRQ in order to acknowledge it before getting in too deep with an obvious error.
I haven't gotten any life out of the scanline counter yet, but I do have the CPU cycle counter working mostly as expected. I think it is a good starting point and when I start to understand it better, I think it will make it easier to transition to the scanline counter.
Interesting, I find that writing to $E001 (IRQ acknowledge / enable) does NOT clear the IRQ; it stays low forever when I do that. I find that I have to write to $E000 (IRQ acknowledge / DISable) first, then write to $E001 in order to clear the IRQ. Does anyone have any idea why this would be? Am I doing something wrong? Pretty sure there is only 1 source of IRQ in this chip -- I don't really get how it can stay low when writing to $E001. Writing to $C000 does change the reload value similar to what is stated in the wiki, and that much functionality gives me more confidence in the setup.
Just wondering if that is a bad sign that I have to disable the IRQ in order to acknowledge it before getting in too deep with an obvious error.