Mapper for Romstar Thunder and Lightning

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

rowejere
Posts: 20
Joined: Fri Sep 08, 2017 7:19 am

Re: Mapper for Romstar Thunder and Lightning

Post by rowejere »

Perfect- thanks! Seems obvious now. I'll try this script later tonight.
rowejere
Posts: 20
Joined: Fri Sep 08, 2017 7:19 am

Re: Mapper for Romstar Thunder and Lightning

Post by rowejere »

Bummer- the older GNROM script still resulted in a bad dump of 49KB for Romstar Thunder and Lightning (instead of around 161KB). I was hoping I was on to something and I'm really not sure what may be the problem. I suppose it's back to square one. Is it possible to troubleshoot what may be the issue using a hex editor on the bad dump? I have a screenshot of the top lines and can adjust the screenshot if I know where to look. As a sidenote, I'm pretty sure it's not the game as it works fine in a legitimate NES and a Retron 5 as well.
Attachments
hex partial screen.JPG
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Mapper for Romstar Thunder and Lightning

Post by lidnariq »

What you've shown a picture of shows the second PRG bank out of 4, when you're trying to dump it.

I have no idea what's going wrong.

You could try changing cpu_rom { size_base to 0x20000 and ppu_rom { size_base to 0x8000

Beyond that ... dunno.
rowejere
Posts: 20
Joined: Fri Sep 08, 2017 7:19 am

Re: Mapper for Romstar Thunder and Lightning

Post by rowejere »

HOLY COW!!!!! IT WORKED!!!!!!!!!!!

Thank you a thousand times over! In case anyone ever needs to dump this game, the script that finally worked is below. I'm not sure if there are certain variations required for GNROM Mapper 66 dumps. But, I can say that at the very least- this one works for Romstar Thunder and Lightning.

board <- {
mappernum = 66,
cpu_rom = {
size_base = 0x20000, size_max = 2 * mega, banksize = 0x8000
},
ppu_rom = {
size_base = 0x8000, size_max = 0x8000, banksize = 0x2000
},
cpu_romsize = 2 * mega, cpu_banksize = 0x8000,
ppu_romsize = 2 * mega, ppu_banksize = 0x2000,
ppu_ramfind = false, vram_mirrorfind = true
};

function cpu_dump(d, pagesize, banksize) {
for (local i = 0; i < pagesize; i += 1) {
cpu_write(d, 0x8000, i << 4);
cpu_read(d, 0x8000, 0x4000);
cpu_read(d, 0xc000, 0x4000);
}
}

function ppu_dump(d, pagesize, banksize) {
for (local i = 0; i < pagesize; i += 1) {
cpu_write(d, 0x8000, i);
ppu_read(d, 0, 0x2000);
}
}
Post Reply