RAMBO-1

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
RAMBO-1
by on (#19274)
Been putting off working on this mapper for quite a while... now I'm remembering why.


I can't seem to find any comprehensive documentation on this mapper. I've searched the forums as well and haven't come up with anything. The only info I have about it is what I picked up from Nintendulator source.. and that even has my scratching my head with a 'wtf' slapped all over my face.

I *think* I get the PRG swap setup... and I *think* I get the CHR setup. But IRQs are still throwing me for a loop.

I can get Klax and Shinobi working, although Klax shakes around like IRQs are off. Skull and Crossbones flies ALL around and eventually crashes when I try to start... I don't know if that's a PRG problem or an IRQ problem or what.


Can anyone give me a breakdown of how IRQs on this mapper work? Or better yet, give me a breakdown of the whole mapper? Or link to some kind of comprehensive doc?

by on (#19284)
a link to some kind of comprehensive doc ;) : http://www.tripoint.org/kevtris/mappers ... 00032.html

by on (#19285)
...

by on (#19286)
hap wrote:
a link to some kind of comprehensive doc ;) : http://www.tripoint.org/kevtris/mappers ... 00032.html


*smacks forehead*

Why didn't I find that

Thanks



EDIT --

There was one thing I was hoping the doc would clarify that it doesn't... so as long as I'm here...

I tried subbing in typical MMC3 IRQs for RAMBO-1 already, and Klax shook around like the timing was off. After examining Nintendulator's source, it moved the "sweet spot" from 260 to 264... after doing the same with my MMC3 IRQ code for RAMBO-1, Klax looked much better.

Could RAMBO-1 be watching the falling edge of A12 rather than the rising edge? Or could there be some other explaination?

by on (#19337)
The MMC3 and RAMBO-1 (minus M2 type) IRQ handlers are not exactly the same, so just subbing typical MMC3 IRQs for RAMBO-1 won't work. Did you take this into account when reloading?
Quote:
One thing of note, after writing, the IRQ counter will expire after a count of N+2 instead of N+1.

by on (#19338)
Not in my MMC3 tests, no.

But that wouldn't affect the timing of the IRQ, it would just make the IRQ trip one scanline later than normal. The time within the scanline that the IRQ occurs would still be unaffected. Yet the time seems to be different on RAMBO-1 than it is on MMC3 (?264? vs. 260).

Kevtris' page doesn't get into specifics on timing, he just says it's triggered by the rising edge (same as MMC3). Though that would imply it happens at the same time as MMC3 -- hence my confusion.

by on (#19347)
Ah, I see what you mean. I had a look at my implementation, I'm delaying the RAMBO-1 MMC3 type IRQ trigger by 1 CPU cycle to prevent a Klaxshake.