I'm looking for a way to finish dumping my NES/FamiCom collection and am having trouble with two particularly difficult sets of games.
The first set consists of two Codemasters games, Big Nose the Caveman and Big Nose Freaks Out. I've not seen anything like them and have yet to find a script for them.
The second set of games consists of the two FamiCom Fire Emblem games. With the help of the people on this thread, I managed to tweak this script found on Arantius' GitHub to get the following script:
Code: Select all
/*
HVC-2I Fire Emblem Gaiden
command line option
./anago d22 mmc4_fkrom.ae hvc_2i.nes b
*/
board <- {
mappernum = 10, vram_mirrorfind = false, ppu_ramfind = false, cpu_romsize=0x40000, ppu_romsize=0x02000, cpu_banksize=0x2000, ppu_banksize=0x1000
cpu_rom = {
size_base = 1 * mega, size_max = 2 * mega,
banksize = 0x4000,
},
cpu_ram = {
size_base = 0x2000, size_max = 0x2000,
banksize = 0x2000,
},
ppu_rom = {
size_base = 0x10000, size_max = 1 * mega,
banksize = 0x1000
}
};
/*
[cpu memmorymap - read]
$6000-$7fff SRAM (battery backuped, optional)
$8000-$bfff program ROM bank #0
$c000-$ffff program ROM bank #1 (fixed)
[cpu memmorymap - write]
$a000-$afff program ROM bank register #0
$b000-$bfff charcter ROM bank register #0
$c000-$cfff charcter ROM bank register #1
$d000-$dfff charcter ROM bank register #2
$d000-$dfff charcter ROM bank register #3
[ppu memorymap - read]
0x0000-0x0fff charcter ROM bank #A (#0 or #1)
0x0fd0-0x0fdf charcter ROM bank register switch to #0
0x0fe0-0x0fef charcter ROM bank register switch to #1
0x1000-0x1fff charcter ROM bank #B (#2 or #3)
0x1fd0-0x1fdf charcter ROM bank register switch to #2
0x1fe0-0x1fef charcter ROM bank register switch to #3
*/
function cpu_dump(d, pagesize, banksize)
{
for(local i = 0; i < pagesize-1; i += 1){
cpu_write(d, 0xa000, i);
cpu_read(d, 0x8000, banksize);
}
cpu_read(d, 0xc000, banksize);
}
/*
PPU ? read ???????????????????????????
??????????????
PPU address register
0x0000-0x0fdf -> #0
0x0fe0-0x0fff -> #1
0x1000-0x1fdf -> #2
0x1fe0-0x1fff -> #3
ppu_read ?? #0 + #1 , #2 + #3 ????????????
*/
function ppu_dump(d, pagesize, banksize)
{
for(local i = 0; i < pagesize-1; i+=2){
//just set both banks so we don't have to worry about auto-switching
cpu_write(d, 0xB000, i); //4KB bank @ $0000
cpu_write(d, 0xC000, i); //4KB bank @ $0000
cpu_write(d, 0xD000, i | 1); //4KB bank @ $1000
cpu_write(d, 0xE000, i | 1); //4KB bank @ $1000
ppu_read(d, 0x0000, banksize * 2); //Read 8KB (entire CHR space $0000-1FFF
}
}
function cpu_ram_access(d, pagesize, banksize)
{
cpu_ramrw(d, 0x6000, banksize);
}
program ROM: size 0x020000, crc32 0xc6916a25
charcter ROM: size 0x004000, crc32 0xd74b3527
Would anyone be able to help with these two things?