It is currently Tue Dec 12, 2017 9:13 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 13 posts ] 
Author Message
PostPosted: Fri Aug 26, 2016 9:20 am 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
I recently acquired a Kazzo and have been using it and Anago to dump my NES carts. For the most part, they've all gone well. I am having difficulty with Super Mario Bros. / Duck Hunt, Indiana Jones and the Last Crusade, and Wizards and Warriors II. I've been referencing this: http://tuxnes.sourceforge.net/nesmapper.txt.

Super Mario Bros. / Duck Hunt says to use "74161/32", this does not exist in Anago's script list.
Indiana Jones says to use "MMC1", this does exist in Anago's script list, but it doesn't work, I get a gray screen when trying to play the ROM.
Wizards and Warriors says to use "AOROM", this does not exist in Anago's script list.

Has anyone had any of these issues? Is there another dumping tool I can use that is compatible with the Kazzo and has the appropriate scripts?

Thank you,
MP


Last edited by MechanicalPirate on Wed Aug 31, 2016 6:20 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Fri Aug 26, 2016 9:34 am 
Online

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19334
Location: NE Indiana, USA (NTSC)
Are you referring to these scripts? If so:

  • MHROM (Super Mario Bros./Duck Hunt) is a functional subset of GNROM. Use that script.
  • To make a script for AOROM, start with the mapper 11 (Color Dreams) script, strip out anything PPU-related, then change the mapper to 7. (Color Dreams with CHR RAM would is equivalent to BNROM, and BNROM and AOROM differ only in their mirroring.) To dump larger games, such as Battletoads, you'll also need to change the maximum PRG ROM size to 2 Mbit: size_max = 2 * mega.
  • It appears that for MMC1, the SUROM script is for CHR RAM games and SKROM is for CHR ROM games. The NesCartDB entry for Indiana Jones and the Last Crusade says the Taito version (NES-J5-USA) uses SGROM, a CHR RAM board. But the Ubisoft version (NES-LR-USA) is instead UNROM.


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sat Aug 27, 2016 3:45 pm 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
Got Indiana Jones to dump successfully, thank you :mrgreen: .

Super Mario Bros / Duck Hunt seems to dump, but I'm still presented with a gray screen when trying to run in my emulator.

For Wizards and Warriors II, I removed all PPU and changed the mapper:
Code:
board <- {
  mappernum = 7,
  cpu_rom = {
    size_base = 0x10000, size_max = 1 * mega, banksize = 0x8000
  }
};

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

Now I'm receiving this (regardless if I use size_max = 1 * mega or size_max = 2 * mega):

AN ERROR HAS OCCURED [the index 'vram_mirrorfind' does not exist]

CALLSTACK
*FUNCTION [dump()] dumpcore.nut line [17]

LOCALS
[increase_ppu] 1
[increase_cpu] 11
[mappernum] -1
[script] "aorom.ad"
[d] USERPOINTER
[this] TABLE

Any suggestions?


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sat Aug 27, 2016 10:44 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6509
Location: Seattle
It appears that Kazzo dumper scripts always have to include a "ppu_rom" section.

Compare the UNROM dumper script, where it has ppu_rom = { size_base = 0, size_max = 0,


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sun Aug 28, 2016 9:01 am 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
So would I include that block of PPU code in the AOROM script?


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sun Aug 28, 2016 11:14 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6509
Location: Seattle
I don't actually have one, but I'd assume that that's it. i.e. you should just need to include the ppu_rom=... fragment in the board section of your dumper script.


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sun Aug 28, 2016 4:13 pm 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
I'm not sure myself.

Here's the updated script:
Code:
board <- {
   mappernum = 7,
   cpu_rom = {
      size_base = 0x10000, size_max = 2 * mega, banksize = 0x8000
   },
   ppu_rom = {
      size_base = 0, size_max = 0
   }
};

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

Still receiving:

AN ERROR HAS OCCURED [the index 'vram_mirrorfind' does not exist]

CALLSTACK
*FUNCTION [dump()] dumpcore.nut line [17]

LOCALS
[increase_ppu] 1
[increase_cpu] 11
[mappernum] 7
[script] "aorom.ad"
[d] USERPOINTER
[this] TABLE


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Sun Aug 28, 2016 6:15 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6509
Location: Seattle
... y'know, it'd help if I actually read the error message. ( "vram_mirrorfind" )

You should be able to use the UNROM dumper script's "board" section almost verbatim, just change the mapper number from 2 (UNROM) to 7 (ANROM)


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Mon Aug 29, 2016 3:41 pm 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
My bad :oops: . I don't know anything about how these scripts work, mostly because I don't have an understanding of the banks, mappers, ROM/RAM types, etc. But maybe there's some progress? I changed the AOROM script to mirror the UNROM script, just changed the mappernum:
Code:
board <- {
   mappernum = 7, vram_mirrorfind = true, ppu_ramfind = false,
   cpu_rom = {
      size_base = 1 * mega, size_max = 2 * mega,
      banksize = 0x4000
   },
   ppu_rom = {
      size_base = 0, size_max = 0,
      banksize = 0x2000
   }
};

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

Now there's no error when dumping, but when I try to run in my emulator, I end up with a gray screen (regardless whether size_max = 2 * mega or size_max = 1 * mega is used).


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Mon Aug 29, 2016 4:07 pm 
Online

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19334
Location: NE Indiana, USA (NTSC)
Use the CPU stuff from Color Dreams and everything else from UNROM.


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Tue Aug 30, 2016 4:39 pm 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
Using CPU from mapper_11 script and PPU from unrom script:
Code:
board <- {
   mappernum = 7,
   cpu_rom = {
      size_base = 0x10000, size_max = 1 * mega, banksize = 0x8000
   },
   ppu_rom = {
      size_base = 0, size_max = 0, banksize = 0
   },
   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);
    cpu_read(d, 0x8000, 0x4000);
    cpu_read(d, 0xc000, 0x4000);
  }
}

When launching in emulator it flashes the gray screen that was seen before and just goes to a black screen. Here's Anago's output:
S:\NES Games\Wizards & Warriors II.nes, mapper 7
Program ROM: size 0x010000, crc32 0xacd39ff7
Charcter RAM

When I look the game up (http://bootgod.dyndns.org:7777/profile.php?id=25 and http://nintendoage.com/index.cfm?FuseAction=Element.View&egID=1131&lgID=498&sID=498), the crc32 is reported as 2328046E, not what I'm getting; I don't know if this can help with the troubleshooting.


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Tue Aug 30, 2016 5:38 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6509
Location: Seattle
Ironsword is 2 mebibit, not 1...

I guess size_base should be 0x8000 and size_max should be ... uh, maybe 4 * mega ? The largest licensed AxROM game is 2 mebibit, and the largest possible game (a few unlicensed games exist) is 4 mebibit.


Top
 Profile  
 
 Post subject: Re: Kazzo/Anago dumping
PostPosted: Wed Aug 31, 2016 6:19 pm 
Offline

Joined: Fri Aug 26, 2016 9:01 am
Posts: 11
OMG IT WORKED!!!

Launches right up with this:
Code:
board <- {
   mappernum = 7,
   cpu_rom = {
      size_base = 2 * mega, size_max = 4 * mega, banksize = 0x8000
   },
   ppu_rom = {
      size_base = 0, size_max = 0, banksize = 0
   },
   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);
    cpu_read(d, 0x8000, 0x4000);
    cpu_read(d, 0xc000, 0x4000);
  }
}

Thanks everybody for your help! I'm saving this one for sure as my AOROM script.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: Bing [Bot] and 5 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