Kazzo USB rom dumper / dev cart programmer

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

lidnariq wrote: Mon Dec 21, 2020 12:19 pm At this point you may as well PM me all the problematic dumps and maybe I'll be able to figure out what is going wrong.
Your dump for Major League is interesting, because on the wiki we (Naruko) said that pin 25 disables the alternative memory layout. Yet here, your dump is somehow erroneously in that alternative memory layout (i.e. the lower 8KB of each 16KB dumped are the same incorrect page 30).

... Oh, I see, Naruko's dumping script requires that the board run in the alternative memory layout. Which doesn't work on Major League. That's silly.

At the top of Naruko's script, you'll see the line if(false){. Change that to if(true){


By default Kazzo tries to not spend time overdumping cartridges. Other than it's faster, I'm not clear why, because it will manually check for an overdump before it writes the result to disk, but that's stung you on Ganbare Goemon Gaiden - it's only loaded the first 120KB+last 8KB of PRG and first 128KB of CHR. Somewhere in the UI there should be a setting for "please dump more" - the CLI somehow involves the word "d22" but I don't know more. Your GGG dump should work fine after you get a 512KB result.


The same thing appears to have happened with Fudou Myouou Den: you only dumped 128KB of PRG but need to have dumped 256KB. Once you can figure out how to tell Anago/Unagi to download 256KB+128KB = 384KB you should have a good dump.
prfsnl_gmr
Posts: 21
Joined: Tue Dec 15, 2020 7:51 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by prfsnl_gmr »

YES!

I successfully dumped both Ganbare Goemon Gaiden and Major League. Fudo Myou Den is the final boss, though, and it's still giving me trouble. It dumps a bad ROM when I use my mapper 207 script (i.e., a mapper 88 script with a new header), but when I use the command to double the dump size, I get the following error message:
anago wrote:data range must be 0x000000 to 0x0000ff
AN ERROR HAS OCCURED [script logical error]

CALLSTACK
*FUNCTION [ppu_dump()] mapper80.ad line [29]
*FUNCTION [dump()] dumpcore.nut line [45]

LOCALS
[ar] ARRAY
256
[banksize] 1024
[pagesize] 512
[d] USERPOINTER
[this] TABLE
[ppu_dumpsize] 524288
[cpu_dumpsize] 262144
[ppuarea_memory] 0
[vram] 0
[increase_ppu] 2
[increase_cpu] 2
[mappernum] 80
[script] "mapper80.ad"
[d] USERPOINTER
[this] TABLE


Thoughts on what I should change in my mapper script? Thanks again for all of your help.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

... Is there a command to only double PRG and not CHR? Maybe "d21"??
prfsnl_gmr
Posts: 21
Joined: Tue Dec 15, 2020 7:51 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by prfsnl_gmr »

Yes. It works! :beer: :beer:

Thank you again for all of your help. With your guidance, I have successfully dumped every game in my Famicom collection. This is so awesome.

Now...I'll embark on my NES collection! (I'll mostly use my INLRetro for that, and I think it will be easier than the Famicom collection. I'm sure I'll run into a few problem carts, however, and need to break out my Kazzo and pin adapter to dump them. :D )
prfsnl_gmr
Posts: 21
Joined: Tue Dec 15, 2020 7:51 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by prfsnl_gmr »

NES collection dumping is going well so far. I’ve dumped several hundred games using both my INLRetro Dumper-Programmer and my Famicom Kazzo with a pin adapter. The Kazzo is a bit finicky with the pin adapter, however, and I anticipate wanting a 72-pin Kazzo at some point in the near future to spare me some frustration.

Accordingly, if anyone here has one for sale, please send me a PM. Thanks!
prfsnl_gmr
Posts: 21
Joined: Tue Dec 15, 2020 7:51 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by prfsnl_gmr »

Dear Diary....

I have mostly finished dumping my NES collection using my INLRetro and my Kazzo with a pin adapter. I dumped almost 700 carts, which, I think, is pretty good. I noticed that the INLRetro really struggled with 64K CNROM games, but the Kazzo dumped them easily. The INLRetro also struggled with a few others random games, but I didn’t really identify any other trends. The Kazzo with a pin adapter is more versatile, but it’s also really, really finicky. I would try a cart half a dozen times with no success, and it would dump on my first try when I randomly tried it a few days later....)

Still some games elude me. Specifically, I have not been able to dump any AVE (mapper 79) games; any of the Camerica “Quattro” (mapper 232) games; or most Tengen (mapper 64) games. (I was able to dump a few mapper 64 games using a MMC3 script.). Also, I was unable to dump exactly 20 licensed games:

Bad Street Brawler
Black Bass
Dr. Chaos
Dragon Power
Excitebike
Gauntlet
G.I. Joe
Gremlins 2
Gumshoe
Gyruss
Hudson Hawk
Hydlide
Karnov
Kid Niki
Legends of the Diamond
NES Play Action Football
Ring King
Star Trek: 25th Anniversary
Videomation
Wizards & Warriors III

I have given all of these a basic cleaning, and they all look good. Before I embark on an epic “disassemble, deep clean, reassemble, and test on original hardware” quest, does anyone have any tips on dumping any of these games?
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

prfsnl_gmr wrote: Sat Feb 06, 2021 12:02 pm Still some games elude me. Specifically, I have not been able to dump any AVE (mapper 79) games; any of the Camerica “Quattro” (mapper 232) games; or most Tengen (mapper 64) games. (I was able to dump a few mapper 64 games using a MMC3 script.). Also, I was unable to dump exactly 20 licensed games[...]
It'd help if you said a little more about each of these. What mapper are they? Is there a dumping script for that mapper? Did you get an error or just a bad dump? If a bad dump, how big is the bad dump relative to the nominal size?
Luminescence
Posts: 1
Joined: Sat Apr 02, 2022 9:44 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by Luminescence »

prfsnl_gmr wrote: Sat Feb 06, 2021 12:02 pm Still some games elude me...most Tengen (mapper 64) games

Gyruss

I have given all of these a basic cleaning, and they all look good. Before I embark on an epic “disassemble, deep clean, reassemble, and test on original hardware” quest, does anyone have any tips on dumping any of these games?
Gyruss should work with a CNROM script:

Code: Select all

board <- {
	mappernum = 3,
	cpu_romsize = 0x8000, cpu_banksize = 0x8000,
	ppu_romsize = 0x8000, ppu_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)
{
	for(local i = 0; i < pagesize; i++){
		cpu_write(d, 0x8000, i);
		ppu_read(d, 0, banksize);
	}
}
I keep getting an error whenever I try to use a script that has "dofile" in it. For example, I'm trying to dump two games: "Famicom Jump" and "Magical Taruruto-kun Fantastic World".

The Jump script is titled bandai_fcg1.ad and this is what it looks like:

Code: Select all

/*
BANDAI FCG-1, FCG-2
FCG-1 + Program ROM + Charcter ROM
	ドラゴンボール 大魔王復活
	西村京太郎ミステリー ブルートレイン殺人事件 (Irem)
FCG-2 + Program ROM + Charcter ROM
	ファミコンジャンプ
	魁!!男塾
	名門!第三野球部
	ドラゴンボール3
	悪魔くん
*/
board <- {
	mappernum = 16, 
	cpu_rom = {
		size_base = 2 * mega, size_max = 2 * mega,
		banksize = 0x4000
	}, 
	cpu_ram = {
		size_base = 0x0000, size_max = 0x0000,
		banksize = 0x2000
	},
	ppu_rom = {
		size_base = 2 * mega, size_max = 2 * mega,
		banksize = 0x0400
	},
	ppu_ramfind = false,
	vram_mirrorfind = false
};

const register_offset = 0x6000;
dofile("lz93d50.ai");
And the Taruruto scriptis called "bandai_lz93d50_x24c01.ag" and it looks like this:

Code: Select all

/*
BANDAI FCG-3 + X24C01 style cartridge

SDガンダム外伝 ナイトガンダム物語
	1990-08-11 B50EEP, LZ93D50+X24C01
ドラゴンボールZ 強襲!サイヤ人
	1990-10-27 DRAGON BALLZ, LZ93D50+X24C01
まじかる☆タルるートくん ファンタスティックワールド
	1991-03-21 DRAGON BALLZ-B, LZ93D50+X24C01
まじかる☆タルるートくん2
	1992-06-19 DRAGON BALLZ-B, LZ93D50+X24C01 ← 24C02 ではない
*/
board <- {
	mappernum = 16, 
	cpu_rom = {
		size_base = 2 * mega, size_max = 2 * mega,
		banksize = 0x4000
	}, 
	cpu_ram = {
		size_base = 0x0080, size_max = 0x0080,
		banksize = 0x0080
	},
	ppu_rom = {
		size_base = 1 * mega, size_max = 2 * mega,
		banksize = 0x0400
	},
	ppu_ramfind = false,
	vram_mirrorfind = false
};

const register_offset = 0x8000;
dofile("lz93d50.ai");

/*
=====================
X24C01 frame sequence
=====================
<START>[EEPROM address+RW]<A-ACK>[data]<D-ACK><STOP>

<> is 1bit, [] is 8bit, A-ACK is address acknowledge, 
D-ACK is data acknowledge, R is 1, W is 0

8bit data send MSB to LSB (bit7 to bit0)
Dragon Ball Z1's program send address LSB to MSB (bug).

slave address does not exist.

--current address read--
<START>[EEPROM address,R]<A-ACK>[EEPROM data]<D-ACK><STOP>

--sequenctial read--
<START>[EEPROM address,R]<A-ACK>|[EEPROM data]<D-ACK>|<STOP>
                                |<- loop any times ->|

--page write---
|<START>[EEPROM address,W]<A-ACK>|[EEPROM data]<D-ACK>|<STOP>
|<-     loop A-ACK is H        ->|<- loop 1to4times ->|
*/

function cpu_ram_access(d, pagesize, banksize)
{
	local I2C_WRITE = I2C_SEND_L;
	local I2C_READ = I2C_SEND_H;

	if(mode_is_read(d) == true){
		//sequential read
		i2c_address_set(d, 0, I2C_READ);
		for(local i = 0; i < pagesize * banksize; i++){
			for(local bit = 0; bit < 8; bit++){
				cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_H);
				cpu_write(d, 0x800d, I2C_DIR_READ | I2C_CLOCK_H | I2C_SEND_H);
				cpu_read_bit_msb(d, 0x6000, 4);
			}
			//send ack
			send_bit(d, I2C_SEND_L);
		}
		i2c_stop(d);
	}else{
		//page write (4byte)
		for(local i = 0; i < pagesize * banksize; i+=4){
			i2c_address_set(d, i, I2C_WRITE);
			for(local j = 0; j < 4; j++){
				for(local bit = 0; bit < 8; bit++){
					local n = I2C_SEND_L;
					if(cpu_fetch_bit_msb(d) != 0){
						n = I2C_SEND_H;
					}
					send_bit(d, n);
				}
				i2c_ack_wait(d);
			}
			i2c_stop(d);
		}
	}
}
It says in each

Code: Select all

dofile("lz93d50.ai");
and I have a file named lz93d50.ai with this in it in the same folder:

Code: Select all

//cpu_dump, ppu_dump 内で同名の関数を呼んではいけない
function cpu_dump(d, pagesize, banksize)
{
	
	for(local i = 0; i < pagesize - 1; i += 1){
		cpu_write(d, register_offset + 8, i);
		cpu_read(d, 0x8000, banksize);
	}
	cpu_read(d, 0xc000, banksize);
}

function ppu_dump(d, pagesize, banksize)
{
	for(local i = 0; i < pagesize; i += 8){
		for(local j = 0; j < 8; j += 1){
			cpu_write(d, register_offset + j, i + j);
			ppu_read(d, j * banksize, banksize);
		}
	}
}

function program_initalize(d, cpu_banksize, ppu_banksize)
{
	cpu_write(d, 0x8008, 0x00);
	cpu_command(d, 0x0000, 0x8000, cpu_banksize);
	cpu_command(d, 0x02aa, 0xc000, cpu_banksize);
	cpu_command(d, 0x0555, 0xc000, cpu_banksize);
	cpu_write(d, 0x8000, [0x0a, 0x15, 0]);
	ppu_command(d, 0x2aaa, 0, ppu_banksize);
	ppu_command(d, 0x5555, 0x0400, ppu_banksize);
	ppu_command(d, 0, 0x0800, ppu_banksize);
}

function cpu_transfer(d, start, end, cpu_banksize)
{
	for(local i = start; i < end - 1; i +=1){
		cpu_write(d, 0x8008, i);
		cpu_program(d, 0x8000, cpu_banksize);
	}
	cpu_program(d, 0xc000, cpu_banksize);
}

function ppu_transfer(d, start, end, ppu_banksize)
{
	for(local i = start; i < end; i +=4){
		cpu_write(d, 0x8004, [i, i+1, i+2, i+3]);
		ppu_program(d, 0x1000, ppu_banksize * 4);
	}
}
/*
$800d
7 data direction 0:FCG3->EEPROM (write), 1:EEPROM->FCG3 (read)
6 data, FCG3 -> EEPROM
5 clock

$6000-$7fff
4 data, EEPROM -> FCG3
*/
const I2C_READBIT = 4;
const I2C_DIRBIT = 7;
const I2C_WRITEBIT = 6;
const I2C_CLOCKBIT = 5;

I2C_DIR_READ <- 1 << I2C_DIRBIT;
I2C_DIR_WRITE <- 0 << I2C_DIRBIT;
I2C_SEND_H <- 1 << I2C_WRITEBIT;
I2C_SEND_L <- 0 << I2C_WRITEBIT;
I2C_CLOCK_H <- 1 << I2C_CLOCKBIT;
I2C_CLOCK_L <- 0 << I2C_CLOCKBIT;

function i2c_start(d)
{
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_L);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_H);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_H | I2C_SEND_H);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_H | I2C_SEND_L);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_L);
}

function i2c_stop(d)
{
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_L);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_H | I2C_SEND_L);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_H | I2C_SEND_H);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_H);
	cpu_write(d, 0x800d, I2C_DIR_READ | I2C_CLOCK_L | I2C_SEND_H);
}

function i2c_ack_wait(d)
{
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_H);
	cpu_write(d, 0x800d, I2C_DIR_READ | I2C_CLOCK_H | I2C_SEND_L);
	local n = cpu_read_register(d, 0x6000, 0);
	n = n & (1 << I2C_READBIT);
	return n == 0;
}


function send_bit(d, v)
{
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | I2C_SEND_L);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_L | v);
	cpu_write(d, 0x800d, I2C_DIR_WRITE | I2C_CLOCK_H | v);
}

function i2c_address_set(d, address, rw)
{
	do{
		local a = address;
		i2c_start(d);
		for(local i = 0; i < 7; i++){
			send_bit(d, a & I2C_SEND_H);
			a = a << 1;
		}
		send_bit(d, rw);
	}while(i2c_ack_wait(d) != true);
}

function eeprom_address_set(d, address)
{
	for(local i = 0; i < 8; i++){
		local n = I2C_SEND_L;
		if(address & 0x80){
			n = I2C_SEND_H;
		}
		send_bit(d, n);
		address = address << 1;
	}
	i2c_ack_wait(d);
}
However I always get this error whenever I run either of the scripts:

Code: Select all

AN ERROR HAS OCCURRED [the index 'dofile' does not exist]

CALLSTACK
*FUNCTION [main()] bandai_lz93d50_x24c01.ag line [32]

LOCALS
[vargv] ARRAY
[this] TABLE
bandai_lz93d50_x24c01.ag open error
Don't know if it makes any difference, but I'm running this via a port in Linux I found here. I haven't had any issues with some other scripts (CNROM, NROM, etc), though, so I don't think my OS is the problem. Any ideas?
Kruciatus
Posts: 2
Joined: Tue May 01, 2018 7:02 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by Kruciatus »

My dump is different from oficiall dump and bootleg rom. For confirmation, I made several attempts and each time I received the same discharge despite cleaning the cartridge. I attach a screenshot of hex editor, fceux of my copy and pcb photos.
double dribble.png
hex double dribble.png
Image
Image
User avatar
impetus_maximus
Posts: 2
Joined: Wed Dec 29, 2021 7:09 pm
Location: FFFFFFFF

Re: Kazzo USB rom dumper / dev cart programmer

Post by impetus_maximus »

Paul, you still with us? hope you and yours are OK.
bailing on collecting vintage for supporting indie/home brews:beer:
Zoldark
Posts: 72
Joined: Sat Oct 28, 2017 10:18 am
Contact:

Re: Kazzo USB rom dumper / dev cart programmer

Post by Zoldark »

Here are some pictures of my Pac-Man Multicart that I want to dump, I put them in a zip file because Nesdev Images aren't working for me and if you can't read what is on the chips I wrote it all down seems they were so cheap they got each chip from a different country or they were really expensive IDK.

The Small Chip on top Reads
El Salvador 3068
SN 74LS163AN

The First Big Chip Reads
MX 27C1000PC-15
M15214-A
TAIWAN
B9334 VPP = 12.5V

The Last Big Chip Reads
GOLDSTAR
GM76C88AL-15
9343 KOREA

it is likely a Pirate Game but it's a Dendy Cart, and on the back of board it Reads
J-0105-A

https://dl.dropboxusercontent.com/s/0h7 ... AN4IN1.zip

From my experiments with trying to dump it using the Kazzo Firmware an anago and the updated INLretro Firmware software I think it has CHR-RAM and not CHR-ROM. But I don't really know. All my dumps come out with 512kb PRG and no char using Anago and with the Updated software I can dump any size CHR using MMC3 but when I look at it with like yychr there is no graphic's in the resulting rom.. None of my dumps work or display anything in emulators. I tried dumping it as MMC3, MMC1 and some others but nothing seems to yield any result..

Anyway that is all I know about it there is a picture of the menu too, I thought I would post it here since I am trying to dump it with my Kazzo or INLretro Dumper-Programmer.

Edit I just found a link to apparently another version of my Cart it's not what my cart looks like exactly but it has the same things on the Front, and has Those Same Four Games, Super Pac-Man is a speed version hack of Pac-Man. My cart is green and has a bit different form factor.

https://familygameenargentina.blogspot. ... acman.html
Don't buy FamicomNes games WillyNilly Check the Mapper first
https://www.nesdev.org/wiki/Mapper
https://nescartdb.com/
I feel like I said something wrong even if I didn't I don't know for sure and I always feel bad about it.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

Zoldark wrote: Sat Sep 24, 2022 9:01 am From my experiments with trying to dump it using the Kazzo Firmware an anago and the updated INLretro Firmware software I think it has CHR-RAM and not CHR-ROM. But I don't really know.
Yes, it has CHR RAM - hence the part labelled GM76C88AL
All my dumps come out with 512kb PRG
Should have 128KiB - the "1000" in "MX 27C1000PC-15" means 1 mebibit, or 128 kibibytes.

Given the "SN 74LS163AN", this will be something like BNROM... given the picture of the back, specifically latching the "address" lines instead.

Unfortunately, I don't already see a mapper that's exactly this PCB, but I think it'd probably be compatible with mapper 61.

Try this:

Code: Select all

 // Mapper 61
 board <- {
   mappernum = 61,
   cpu_rom = {
      size_base = 1 * 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, i);
    cpu_read(d, 0x8000, 0x4000);
    cpu_read(d, 0xc000, 0x4000);
  }
}
Zoldark
Posts: 72
Joined: Sat Oct 28, 2017 10:18 am
Contact:

Re: Kazzo USB rom dumper / dev cart programmer

Post by Zoldark »

lidnariq wrote: Sat Sep 24, 2022 12:32 pm
Zoldark wrote: Sat Sep 24, 2022 9:01 am From my experiments with trying to dump it using the Kazzo Firmware an anago and the updated INLretro Firmware software I think it has CHR-RAM and not CHR-ROM. But I don't really know.
Yes, it has CHR RAM - hence the part labelled GM76C88AL
All my dumps come out with 512kb PRG
Should have 128KiB - the "1000" in "MX 27C1000PC-15" means 1 mebibit, or 128 kibibytes.

Given the "SN 74LS163AN", this will be something like BNROM... given the picture of the back, specifically latching the "address" lines instead.

Unfortunately, I don't already see a mapper that's exactly this PCB, but I think it'd probably be compatible with mapper 61.

Try this:

Code: Select all

 // Mapper 61
 board <- {
   mappernum = 61,
   cpu_rom = {
      size_base = 1 * 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, i);
    cpu_read(d, 0x8000, 0x4000);
    cpu_read(d, 0xc000, 0x4000);
  }
}
Awesome that dumped the Game with a 128kb PRG the games and Menu worked correctly except for Pacmania it loads fine but once it starts up it has garbled graphics but PacLand, Pac-Man, And Super Pac-Man all work fine. I tried it in FCEUX 2.3 I think that's what I have maybe I should try it in a newer Emulator. I don't know what the deal is with Pacmania but you are Awesome. Thank you.

I did try dumping it on all the known Multicart mappers using your script but the only other mapper that seemed to yield a working result was Mapper 62 but the menu is garbled it will load and play Pac-Man and Super Pac-Man fine, but the other two games are out of commission on the Mapper 62 dump. I didn't Modify anything except the Mapper Number.

I did try re-seating and dumping it a few times and as a last resort I even tried cleaning it but got the same result it seems even if I have the board slightly connected it still comes out with the same CRC32 every time for the PRG which is D55711E4.

I just noticed that there is something a little off in PacLand too at the top of the screen where the score is there is like this Dash _ that comes across the screen occasionally but other than that it is perfect.
Don't buy FamicomNes games WillyNilly Check the Mapper first
https://www.nesdev.org/wiki/Mapper
https://nescartdb.com/
I feel like I said something wrong even if I didn't I don't know for sure and I always feel bad about it.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

This board is likely not actually mapper 61 - mapper 61 can configure nametable arrangement at runtime, but here it's fixed. I didn't see anything that obviously was this board.

Depending on the exact addresses used by the game, it might work as mapper 34 or 241. It might also work as mapper 201, UNIF "EDU2000", or UNIF "NovelDiamond9999999in1"... maybe

The board is basically equivalent to BNROM (mapper 34) except it latches the address bus instead of the data bus.
Zoldark
Posts: 72
Joined: Sat Oct 28, 2017 10:18 am
Contact:

Re: Kazzo USB rom dumper / dev cart programmer

Post by Zoldark »

lidnariq wrote: Sun Sep 25, 2022 2:26 pm This board is likely not actually mapper 61 - mapper 61 can configure nametable arrangement at runtime, but here it's fixed. I didn't see anything that obviously was this board.

Depending on the exact addresses used by the game, it might work as mapper 34 or 241. It might also work as mapper 201, UNIF "EDU2000", or UNIF "NovelDiamond9999999in1"... maybe

The board is basically equivalent to BNROM (mapper 34) except it latches the address bus instead of the data bus.
Oh, that explains why it's not 100 percent on that Mapper. I have a _BNROM512.ad Script that came with anago.
Can I modify it somehow to dump 128kb PRG and then try using it to dump my Game too?

Here is the code I have.

Code: Select all

board <- {
  mappernum = 34,
  vram_mirrorfind = true,
  ppu_ramfind = false,
  cpu_rom = {
    size_base = 0x400000, /* 512 kilobits */
    size_max = 0x400000, /* 512 kilobits */
    banksize = 0x4000, /* 16 kilobytes */
  },
  cpu_ram = {
    size_base = 0,
    size_max = 0x8000, /* 8 kilobytes */
    bank_size = 0x1000,
  },
  ppu_rom = {
    size_base = 0,
    size_max = 0x8000, /* 8 kilobytes */
    banksize = 0x1000,
  }
};

function cpu_dump(d, banks, bank_size)
{
  for (local i=0; i < (banks/2); i++) {
    cpu_write(d, 0x8000, i);
    cpu_read(d, 0x8000, bank_size);
    cpu_read(d, 0xC000, bank_size);
  }
}

function ppu_dump(d, banks, bank_size)
{
  for (local i=0; i < banks; ++i)
  {
    ppu_read(d, 0x0000, bank_size);
  }
}
Whenever I dump my game using it the resulting dump only comes out with 32kb of PRG.

it seems I skipped a few Multicart Mappers for the Normal iNES 1.0 Mappers, Mapper 225 and 228 have the same result as Mapper 62, but Mapper 235 loads the Menu and PacLand, Pac-Man, Super Pac-Man Perfect but Pacmania is totally unrecognizable all though it does load it the Graphics are all garbled even the loading screen it looks better on Mapper 61. Mapper 201 that you suggested works but has the same result as Mapper 61. It wouldn't work on Mappers 241 or 34.

I switched to hex editing the Mapper Numbers, was a lot easier but I don't quite know how to set my rom to use iNES 2.0 Mappers to try Mapper 329, Mapper 54 that was Suggested for the NovelDiamond9999999in1 didn't work either. I am going try going through every iNES 1.0 Mapper or the rest I haven't tried yet and maybe I'll get lucky an find one that works Perfect, at least until I learn about how to assign iNES 2.0 Mappers, but I think only modern Emulators use those. FCEUX supports a few I probably need to download Mesen or something better.

https://www.nesdev.org/wiki/INES_Mapper_054

I guess that game has either been re mapped to Mapper 201 or was made as a UNIF Dump.

Can I change my rom to the UNIF format?

Thanks for the help, you are the best.

I forgot the dump comes out with Vertical Mirroring and has SRAM if that means anything.
Don't buy FamicomNes games WillyNilly Check the Mapper first
https://www.nesdev.org/wiki/Mapper
https://nescartdb.com/
I feel like I said something wrong even if I didn't I don't know for sure and I always feel bad about it.
Post Reply