It is currently Mon Sep 24, 2018 11:53 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 624 posts ]  Go to page Previous  1 ... 38, 39, 40, 41, 42
Author Message
PostPosted: Wed Jun 27, 2018 6:16 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 29
lidnariq wrote:
Mapper 101 is an erroneously-assigned duplicate of Mapper 87.
That's the mapper 87 definition. If it's working correctly in your emulator, either your emulator has a patch list that's fixing the header for you, or you haven't gotten to any part of the game that requires that banks 1 or 2 be shown.


Shoot. Turns out that the third stage does, in fact, have some scrambled sprites. Any ideas on how to get them unscrambled?

Also, I have a copy of GeGeGe no Kitarou 2 for which I have no leads for a script. Are there any scripts out there for dumping Bandai carts with mapper 152?


Top
 Profile  
 
PostPosted: Wed Jun 27, 2018 6:30 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7552
Location: Seattle
Just change the header to mapper 87, instead of mapper 101. (What emulator are you using?)

Basically:
mappernum = 87 [...] cpu_write(d, 0x6000, ((i & 2) >> 1) | ((i & 1) << 1));
mappernum = 101 [...] cpu_write(d, 0x6000, i);




Mappers 152 and 70 are basically hybrids of GNROM with UNROM. Try this:
Code:
board <- {
  mappernum = 152,
  cpu_rom = {
    size_base = 0x10000, size_max = 0x20000, banksize = 0x4000
  },
  ppu_rom = {
    size_base = 0x4000, 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);
  }
}



(edit: For mapper 70, change "mappernum" to 70, increase cpu_rom's size_max to 0x40000, and change vram_mirrorfind to true)


Top
 Profile  
 
PostPosted: Thu Jun 28, 2018 9:06 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 29
Thanks so much for your help, lidnariq!

Unfortunately, the script for mapper 152 didn't yield a working ROM. Here are the results:

Code:
Program ROM: size 0x010000, crc32 0x4377a06f
Character ROM: size 0x0040000, crc32 0x4f46913b



As for fixing the script for Lum...

edit: ...maybe I should try actually reading your post. Doy. Jussasec...



...

Bingo! That did it. Wow. Silly me. lidnariq, you lidnaroq.


Top
 Profile  
 
PostPosted: Thu Jun 28, 2018 10:38 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7552
Location: Seattle
werewolfslayr925 wrote:
Program ROM: size 0x010000, crc32 0x4377a06f
That's half the PRG you should have gotten...
Quote:
Character ROM: size 0x0040000, crc32 0x4f46913b
That's twice as big as the CHR you should have gotten... How did that even happen? The script I provided shouldn't have been able to make a dump that big.

Quote:
you lidnaroq.
<guffaw> That's a new one on me.


Top
 Profile  
 
PostPosted: Fri Jun 29, 2018 3:16 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 29
lidnariq wrote:
werewolfslayr925 wrote:
Program ROM: size 0x010000, crc32 0x4377a06f
That's half the PRG you should have gotten...
Quote:
Character ROM: size 0x0040000, crc32 0x4f46913b
That's twice as big as the CHR you should have gotten... How did that even happen? The script I provided shouldn't have been able to make a dump that big.


I retried it just now to test and make sure I used the right script and everything. I did use your script and got the same results. Then I tried a "d22" command to see if doubling the PRG dump would make a difference (and threw in doubling the CHR just for kicks/out of habit). I got a PRG that matches bootgod's database, but the CHR is still off:

Code:
Program ROM: size 0x020000, crc32 0x48f8d55e
Character ROM: size 0x008000, crc32 0x6853bd7c


The ROM doesn't work in FCEUX either :?

Quote:
Quote:
you lidnaroq.
<guffaw> That's a new one on me.


I'm simultaneously glad and surprised that nobody's used that before :P


Top
 Profile  
 
PostPosted: Fri Jun 29, 2018 4:47 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7552
Location: Seattle
werewolfslayr925 wrote:
Then I tried a "d22" command to see if doubling the PRG dump would make a difference (and threw in doubling the CHR just for kicks/out of habit). I got a PRG that matches bootgod's database
That doesn't seem right. The dump in GoodNES has 128KiB PRG but this same CRC32, and it's not a duplicate in the first and second halves.
While it's possible to get an accidental collision with CRC32s —it's 1 in 2**16 odds, per the birthday paradox—I'd be surprised every time it does happen.

Quote:
Character ROM: size 0x008000, crc32 0x6853bd7c
Uh. Why don't you PM me your smaller dump and I'll see if I can figure out what's going on.


Top
 Profile  
 
PostPosted: Mon Jul 02, 2018 12:15 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 29
Thanks to lidnariq, I was able to dump GeGeGe no Kitarou 2 with the following script:


Code:
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:
/*

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);

   }

}


Top
 Profile  
 
PostPosted: Fri Sep 14, 2018 3:17 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 29
Apologies to the mods for the double post. lidnariq managed to craft another script, this time for Ninja JaJamaru: Ginga Daisakusen (i.e. JF-25 and/or iNES mapper 18). We thought it should go here. If an edit is preferable, please let me know.

Code:
board <- {
   mappernum = 18, vram_mirrorfind = false, ppu_ramfind = false,
   cpu_rom = {
      size_base = 1 * mega, size_max = 2 * mega,
      banksize = 0x2000
   },
   ppu_rom = {
      size_base = 1 * mega, size_max = 2 * mega,
      banksize = 0x2000 / 8
   }
};

function cpu_dump(d, pagesize, banksize)
{
   for(local i = 0; i < pagesize - 2; i += 2){
      cpu_write(d, 0x8000, i);
      cpu_write(d, 0x8001, i >> 4);
      cpu_write(d, 0x8002, i | 1);
      cpu_write(d, 0x8003, i >> 4);
      cpu_read(d, 0x8000, banksize * 2);
   }
   cpu_write(d, 0x9000, 0xE);
   cpu_write(d, 0x9001, 0xF);
   cpu_read(d, 0xc000, banksize * 2);
}

function ppu_dump(d, pagesize, banksize)
{
   for(local i = 0; i < pagesize; i += 8) {
      cpu_write(d, 0xa000, i);
      cpu_write(d, 0xa001, i >> 4);
      cpu_write(d, 0xa002, i|1);
      cpu_write(d, 0xa003, i >> 4);
      cpu_write(d, 0xb000, i|2);
      cpu_write(d, 0xb001, i >> 4);
      cpu_write(d, 0xb002, i|3);
      cpu_write(d, 0xb003, i >> 4);
      cpu_write(d, 0xc000, i|4);
      cpu_write(d, 0xc001, i >> 4);
      cpu_write(d, 0xc002, i|5);
      cpu_write(d, 0xc003, i >> 4);
      cpu_write(d, 0xd000, i|6);
      cpu_write(d, 0xd001, i >> 4);
      cpu_write(d, 0xd002, i|7);
      cpu_write(d, 0xd003, i >> 4);
      ppu_read(d, 0x0000, banksize * 8);
   }
}


Top
 Profile  
 
PostPosted: Wed Sep 19, 2018 9:57 pm 
Offline

Joined: Sat Oct 28, 2017 10:18 am
Posts: 28
lidnariq wrote:
Just change the header to mapper 87, instead of mapper 101. (What emulator are you using?)

Basically:
mappernum = 87 [...] cpu_write(d, 0x6000, ((i & 2) >> 1) | ((i & 1) << 1));
mappernum = 101 [...] cpu_write(d, 0x6000, i);




Thank You.. I Couldn't figure out how to Dump my Mapper 87 games til I saw this dumped all 3 my games Argus, Jajamaru no Daibouken, and Ninja Jajamaru-kun, just by changing the CNROM Script.

I do have a question I was thinking of buying some more Programmable Flash Boards, One particular Board or the Other, I think what I need is a MMC1 Flash Board that has 512kb Program and No Char Rom, So was looking at MMC1 SUROM or MMC1 SXROM. Except I don't know which one I need, I want it to program my own Multi-Carts on it that I made or well put together on to a Rom using the Code by Mottzilla that uses MMC1 and only has 512KB of Program https://thegaminguniverse.org/ninjagaiden4/mottzilla/homebrew.html Does anyone Know if either of those Boards can be Programed with a Code By Mottzilla Rom? Then does anyone know if it would work?

I have about 3 or 4 Multi-Carts I put together for my own use and I hope to play and test them on real Hardware if possible.

Edit: Looking at Bootgods database I am thinking of going with SXROM as there are not many games that used it so it will be fun to try, and is a combination of SOROM and SUROM so probably would be best. Then I have to have that New Mapper 30 UNROM512 Board too. The Best..

_________________
Don't buy FamicomNes games WillyNilly Check the Mapper first
https://wiki.nesdev.com/w/index.php/Category:Discrete_logic_mappers
https://wiki.nesdev.com/w/index.php/Category:INES_Mappers
https://wiki.nesdev.com/w/index.php/Category:Bad_iNES_Mappers


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

All times are UTC - 7 hours


Who is online

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