It is currently Fri Oct 20, 2017 9:11 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Tue Apr 04, 2017 2:33 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 19
Hello, all!

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:
/*
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);
}


It dumps successfully (i.e. without errors), but, even when doubling or quadrupling the size of the dump, it consistently yields a program ROM and charcter ROM that don't work in FCEUX and which are, according to BootGod's database, too small:

program ROM: size 0x020000, crc32 0xc6916a25
charcter ROM: size 0x004000, crc32 0xd74b3527

Would anyone be able to help with these two things?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group