Thanks to lidnariq, I was able to dump GeGeGe no Kitarou 2 with the following script:
Code: Select all
board <- {
mappernum = 152,
cpu_rom = {
size_base = 0x20000, size_max = 0x20000, banksize = 0x4000
},
ppu_rom = {
size_base = 0x20000, size_max = 0x20000, banksize = 0x2000
},
cpu_romsize = 2 * mega, cpu_banksize = 0x4000,
ppu_romsize = 2 * mega, ppu_banksize = 0x2000,
ppu_ramfind = false, vram_mirrorfind = false
};
function cpu_dump(d, pagesize, banksize) {
for (local i = 0; i < pagesize - 1; i += 1) {
cpu_write(d, 0x8000, i<<4);
cpu_read(d, 0x8000, banksize);
}
cpu_read(d, 0xc000, banksize);
}
function ppu_dump(d, pagesize, banksize) {
for (local i = 0; i < pagesize; i += 1) {
cpu_write(d, 0x8000, i);
ppu_read(d, 0, 0x2000);
}
}
If I understand bootgod's database correctly, this script might also work with
Arkanoid II,
Pocket Zaurus: Juu Ouken no Nazo, and
Saint Seiya: Ougon Densetsu.
EDIT: I also modified the script for Quinty on Arantius's GitHub. It didn't work for me: it gave an incorrect CPU dump and my faulty script gave an incorrect PPU dump, so I combined the working parts of each and got a successful script. The following can be used to dump Quinty:
Code: Select all
/*
Namcot 118/119 chip with Charcter ROM A16 wired PPU A12
Quinty
*/
board <- {
mappernum = 88, vram_mirrorfind = true, ppu_ramfind = false,
cpu_rom = {
size_base = 0x20000, size_max = 1*mega,
banksize = 0x2000
},
cpu_ram = {
size_base = 0, size_max = 0, banksize = 0
}
ppu_rom = {
size_base = 0x20000, size_max = 0x20000,
banksize = 0x0400
}
};
function cpu_dump(d, pagesize, banksize)
{
for(local i = 0; i < pagesize - 2; i += 2){
cpu_write(d, 0x8000, [6, i, 7, i+1]);
cpu_read(d, 0x8000, banksize * 2);
}
cpu_read(d, 0xc000, banksize * 2);
}
function ppu_dump(d, pagesize, banksize)
{
local i;
//ROM offset 0x00000-0x0ffff can access from PPU address 0x0000-0x0fff
for(i = 0; i < (pagesize >> 1); i += 4){
cpu_write(d, 0x8000, [0, i, 1, i+2]);
ppu_read(d, 0x0000, banksize * 4);
}
//ROM offset 0x10000-0x1ffff can access from PPU address 0x1000-0x1fff
for(; i < pagesize; i += 4){
cpu_write(d, 0x8000, [2, i, 3, i+1, 4, i+2, 5, i+3]);
ppu_read(d, 0x1000, banksize * 4);
}
}