It is currently Tue Jun 19, 2018 7:20 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 607 posts ]  Go to page Previous  1 ... 37, 38, 39, 40, 41
Author Message
PostPosted: Sun May 13, 2018 2:10 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7214
Location: Seattle
It means that the Kazzo's AVR's pins are just directly controlled by the native instructions for doing so, and the pin M2 is modified in software whenever it wants to read or write from memory below $8000. (Probably also for above $8000, too, since e.g. N108 seems to rely on M2 as its clock instead of /ROMSEL)

The distinction I'm making is that M2 isn't continuously running, as it does in the actual NES/Famicom; reads and writes are effectively asynchronous in the Kazzo but synchronous in the NES.


Top
 Profile  
 
PostPosted: Sun May 13, 2018 9:00 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 527
That means that multicarts with M2-based reset detection cannot be dumped fully, then, at least unless somebody modifys the Kazzo firmware to allow "reading synchronously".


Top
 Profile  
 
PostPosted: Sun May 13, 2018 9:08 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7214
Location: Seattle
Correct. This has come up in several threads here (e.g.); people have disabled the reset detector in order to get a dump.


Top
 Profile  
 
PostPosted: Sun May 13, 2018 10:04 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 527
I suppose the CopyNES drives the M2 signal normally, given that it's a modified NES, and thus can be used for dumping such multicarts?


Top
 Profile  
 
PostPosted: Sun May 13, 2018 11:13 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7214
Location: Seattle
Yeah, the CopyNES doesn't modify M2. I believe all the internal operations cycles on the copyNES look like access to $4800-$4FFF. This is fine with most carts, although is a problem for the N163.

When BootGod asked, I suggested that he change the corresponding control line to A10 instead of A11, moving the copyNES's active range to $4400-$47FF and $4C00-$4FFF. (Rewiring and re-building the firmware was necessary). No mappers that we yet knew of wholly collide with that functional range, so...


Top
 Profile  
 
PostPosted: Wed May 16, 2018 3:45 pm 
Offline

Joined: Thu May 19, 2005 11:30 am
Posts: 527
Just reporting that the multicart in question has been successfully dumped on the first try using a CopyNES.


Top
 Profile  
 
PostPosted: Tue Jun 19, 2018 7:06 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 21
Sorry for the sudden change of subject. I'm trying to figure out a proper script for dumping Urusei Yatsura - Lum no Wedding Bell. From what I've gathered snooping around the wiki and the forums, it's unique in its design but similar to a CNROM cart. I've tried both CNROM and GNROM to little avail: the PRG dumps correctly according to bootgod's database, but the CHR gives a bad checksum. Perhaps it's possible to use Arantius' CNROM script as a base for making a working JF-10/mapper 101 script?

Code:
board <- {
   mappernum = 3,
   cpu_rom = {
      size_base = 0x8000, size_max = 0x8000
      banksize = 0x8000
   },
   ppu_rom= {
      size_base = 0x8000, size_max = 0x8000,
      banksize = 0x2000
   },
   ppu_ramfind = false, vram_mirrorfind = true
};

function cpu_dump(d, pagesize, banksize)

{
   cpu_read(d, 0x8000, 0x4000);
   cpu_read(d, 0xc000, 0x4000);
}

function ppu_dump(d, pagesize, banksize)
{
   local security = 0; //0,1,2,3 or don't care
   security = security << 4;
   for(local i = 0; i < pagesize; i++)
       {
      cpu_write(d, 0x8000, security | i);
      ppu_read(d, 0, banksize);
   }
}

function program_initalize(d, cpu_banksize, ppu_banksize)
{
   cpu_write(d, 0x8000, 0x30);
   cpu_command(d, 0, 0x8000, cpu_banksize);
   cpu_command(d, 0x02aa, 0xc000, cpu_banksize);
   cpu_command(d, 0x0555, 0xc000, cpu_banksize);
   ppu_command(d, 0, 0x0000, ppu_banksize);
   ppu_command(d, 0x02aa, 0x0000, ppu_banksize);
   ppu_command(d, 0x0555, 0x0000, ppu_banksize);
}

function cpu_transfer(d, start, end, cpu_banksize)
   {
   if (cpu_banksize == 0x8000)
                {
              cpu_program(d, 0x8000, 0x4000);
           }
   cpu_program(d, 0xc000, 0x4000);
}

function ppu_transfer(d, start, end, ppu_banksize)

        {
   for(local i = start; i < end; i++)
        {
      cpu_write(d, 0x8000, 0xf0 | i);
      ppu_program(d, 0x0000, ppu_banksize);
   }
}


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 607 posts ]  Go to page Previous  1 ... 37, 38, 39, 40, 41

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 9 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