Kazzo USB rom dumper / dev cart programmer
Moderator: Moderators
-
- Posts: 6
- Joined: Wed Sep 26, 2018 8:03 am
Re: Kazzo USB rom dumper / dev cart programmer
I'll to compare it in the next days
thanks for helping me though
thanks for helping me though
-
- Posts: 44
- Joined: Sun Aug 31, 2014 9:55 am
Re: Kazzo USB rom dumper / dev cart programmer
I checked the supported mapper list on gitlab for the new Kazzo device and it seems to support fewer mappers than I recall the older one did. Can any of the old scripts be brought over for use with the new device, or would they have to be re-written?
-
- Posts: 6
- Joined: Wed Sep 26, 2018 8:03 am
Re: Kazzo USB rom dumper / dev cart programmer
Little Holy Diver Update:
Thanks to the german shop Dragonbox, I can finally (at least) play the game on my original NES. Have to reset the game until the region switches to PAL.
The PRG-Rom,CHR-Rom & the mapper are the same, as a japanesese version. Maybe some of you guys could look into the rom itself. I have no clue, maybe it has to do with my wrong dumping,the pal ntsc changing etc
[I'd prefer not sharing full ROMs in public. Please send PM to Germansnake if you are interested in troubleshooting this. --MOD]
Thanks to the german shop Dragonbox, I can finally (at least) play the game on my original NES. Have to reset the game until the region switches to PAL.
The PRG-Rom,CHR-Rom & the mapper are the same, as a japanesese version. Maybe some of you guys could look into the rom itself. I have no clue, maybe it has to do with my wrong dumping,the pal ntsc changing etc
[I'd prefer not sharing full ROMs in public. Please send PM to Germansnake if you are interested in troubleshooting this. --MOD]
Re: Kazzo USB rom dumper / dev cart programmer
Hello everyone! Recently I'm trying to make a mapper3 flashcart using HVC-CNROM-256 board as a donor.
But I don't know how to wire the pins after I removed both ROM chips. So I'm here to see if you guys have ever made such a flashcart and are willing to give me some hints. Here are photos of my donor cart, both sides, with ROM chips and anti-piracy diodes removed, and H/V mirroring pads rewired to an external switch.
Donor cart originally Dragon Quest. And the Flash chip I'm planning to use is AM29F040B.
But I don't know how to wire the pins after I removed both ROM chips. So I'm here to see if you guys have ever made such a flashcart and are willing to give me some hints. Here are photos of my donor cart, both sides, with ROM chips and anti-piracy diodes removed, and H/V mirroring pads rewired to an external switch.
Donor cart originally Dragon Quest. And the Flash chip I'm planning to use is AM29F040B.
-
- Posts: 6
- Joined: Wed Sep 26, 2018 8:03 am
Re: Kazzo USB rom dumper / dev cart programmer
Found someone on youtube, that opened the holy diver cartridge
https://www.youtube.com/watch?v=R57EPBW385Q
maybe with that, we could find a working script for the kazzo
https://www.youtube.com/watch?v=R57EPBW385Q
maybe with that, we could find a working script for the kazzo
Re: Kazzo USB rom dumper / dev cart programmer
I think that's a COOLBOY board. Try using an MMC3 dumping script.
For reference, in the video:
RETRO-BIT-V5S PCB
edit: definitely coolboy. compare pictures here
For reference, in the video:
RETRO-BIT-V5S PCB
- U1: CMD133- 2018.01.20
- U2: [Fujitsu] MALAYSIA 29F016A-90PFTN 0309 F85S
- U8: 8SOP ...ATtiny ?
- U9: 14SOP ... 74HC00Q ??
- on back, U5?: [MOSEL] 0032D V62C5181024L-35W
- unpopulated U3, 70-pin something (alternative PRG ROM?)
- unpopulated U4, on back, 28SOP (PRG RAM?)
- unpopulated IC6, 32TSSOP / 48TSSOP (CHR ROM?)
- unpopulated U7: voltage regulator, fortunately absent
- unpopulated: U10, 16SOP
edit: definitely coolboy. compare pictures here
- infiniteneslives
- Posts: 2104
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
Re: Kazzo USB rom dumper / dev cart programmer
That is correct. The original kazzo is AVR based. Technically there is no "new kazzo". There's my old INLretro programmer dumper v1.x which was kazzo compatible. Then there's the lastest INLretro v2.x which is ARM cortex M0 based which IS NOT kazzo compatible meaning it won't run original kazzo firmware nor interface with kazzo softwares anago/unagi.prototector wrote:I checked the supported mapper list on gitlab for the new Kazzo device and it seems to support fewer mappers than I recall the older one did. Can any of the old scripts be brought over for use with the new device, or would they have to be re-written?
My latest software release is compatible with all versions of the INLretro programmer/dumper we've ever sold. There are separate firmware builds for v1.x AVR, and v2.x ARM hardware versions. Some features may not be supported on v1.x hardware due to lack of cartridge connections to things like the CIC pins, unidirectional EXP1-8 pins, or low level assembly functions ARM functions which haven't been translated to AVR yet.
To answer your question, No. The old kazzo scripts can't be directly brought over to my new inlretro software. The new software almost entirely uses lua (scripts) for the host application. I've still got a lot of work to do on the software and firmware to catch the new hardware up to the list of mappers supported by the original kazzo with anago/unagi.
My hope is this thread will remain focused on the original kazzo and scripts for anago/unagi even though we've discontinued production and sales of the device. There's quite a few of them out in the wild, we weren't the only hardware manufacturers and being open source, people can always make them their selves. Perhaps someone else will be motivated to keep manufacturing the decrepit V-USB based AVR hardware, but we stopped doing so in early 2018. Once I've got things better polished and some explanation of how to write/translate scripts for the latest inlretro software I'll start a separate dedicated thread.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
-
- Posts: 44
- Joined: Sun Aug 31, 2014 9:55 am
Re: Kazzo USB rom dumper / dev cart programmer
I see. Thank you for the detailed response, it's really appreciated. It's because we're looking to get a sample game dumped and the Kazzo was the only reliable one do to it in terms of cost, simple setup, etc. I'll keep an eye out for the original device.
-
- Posts: 40
- Joined: Sat Oct 02, 2010 5:49 pm
Re: Kazzo USB rom dumper / dev cart programmer
So, this is somewhat related to this thread and, since it involves the Kazzo, I thought it should go here. I got a copy of Nakayoshi to Issho and dumped it. However, because the game is not in bootgod's database, I'm unable to confirm the CRC32s. Here's what I got using an MMC3 script and a d22 command (same I used for Kirby's Adventure):
That was on a second attempt. First attempt the cartridge apparently still had a bit of gunge on it, because there were vertical lines through the sprites/backgrounds.
Can anyone confirm these hashes? And how would I go about submitting photos, board info, etc. to bootgod's database? I've noticed he hasn't updated it in years.
EDIT: I also got a copy of Madara that's giving me problems. I noticed someone else was having similar issues with another VRC6 board a few pages back. Here's the script I'm using:
And here's the error it's giving:
After reading what lidnariq wrote about it, I tried swapping out the line
for something like
or
but to no avail. I'm guessing I'm quite off...
Also, a question that's been bugging me the past few times I used the kazzo: does the file extension on the scripts matter? I've noticed that some are ".ad", some are ".ag", and some are ".af" (which I always read in my head as ".asf**k"). Does this matter at all when using particular scripts?
Code: Select all
Program ROM: size 0x020000, crc32 0x8ab9e1ea
Charcter ROM: size 0x040000, crc32 0x8a86b158
Can anyone confirm these hashes? And how would I go about submitting photos, board info, etc. to bootgod's database? I've noticed he hasn't updated it in years.
EDIT: I also got a copy of Madara that's giving me problems. I noticed someone else was having similar issues with another VRC6 board a few pages back. Here's the script I'm using:
Code: Select all
/*VRC6 type B/351949A/address bus A0=R1, A1=R0
CPU memory bank
cpu address|rom address |page|task
$8000-$bfff|n * 0x4000 |even|write area + write 0x2aaa
$c000-$dfff|0x04000-0x05fff|2 |write 0x5555
-------------------------------------
$8000-$bfff|n * 0x4000 |odd |write area + write 0x5555
$c000-$dfff|0x02000-0x03fff|1 |write 0x2aaa
$e000-$efff|末尾 |fix |boot area, 未使用
PPU memory bank
ppu address|rom address |page|task
$0000-$03ff|0x02800-0x02bff|0x0a|write (0x2aaa & 0x03ff) + 0
$0400-$07ff|0x05400-0x057ff|0x15|write (0x5555 & 0x03ff) + 0x400
$1000-$1fff|n * 0x1000 |n |write area*/
board <- {
mappernum = 26, vram_mirrorfind = false,
cpu = {banksize = 0x4000, maxsize = 2 * mega},
ppu = {banksize = 0x4000, maxsize = 2 * mega},
}
function cpubank_even_set(d, bank, cpu_banksize)
{
cpu_command(d, 0x2aaa, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0xc000, 0x2000);
cpu_write(d, 0x8000, bank)
cpu_write(d, 0xc000, 2)
}
function initalize(d, cpu_banksize, ppu_banksize)
{
cpubank_even_set(d, 0, cpu_banksize);
cpu_command(d, 0, 0x8000, cpu_banksize);
ppu_command(d, 0x2aaa, 0, ppu_banksize);
ppu_command(d, 0x5555, 0x0400, ppu_banksize);
ppu_command(d, 0, 0x0800, ppu_banksize);
cpu_write(d, 0xb003, 0); //work ram disable
cpu_write(d, 0xd000, 0x0a);
cpu_write(d, 0xd002, 0x15);
cpu_write(d, 0xd001, 0x00);
cpu_write(d, 0xd003, 0x00);
}
function cpu_transfer(d, start, end, cpu_banksize)
{
local i;
for(i = start; i < end - 2; i += 2){
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
function ppu_transfer(d, start, end, ppu_banksize)
{
for(local i = start; i < end; i += 4){
cpu_write(d, 0xe000, i | 0);
cpu_write(d, 0xe002, i | 1);
cpu_write(d, 0xe001, i | 2);
cpu_write(d, 0xe003, i | 3);
ppu_program(d, 0x1000, ppu_banksize * 4);
}
}
Code: Select all
AN ERROR HAS OCCURED [the index 'ppu_rom' does not exist]
CALLSTACK
[ppuarea_memory] NULL
[vram] 0
[increase_ppu] 1
[increase_cpu] 11
[mappernum] 26
[script] "vrc6.af"
[d] USERPOINTER
[this] TABLE
Code: Select all
ppu = {banksize = 0x4000, maxsize = 2 * mega},
Code: Select all
ppu = {banksize = 0x8000, maxsize = 2 * mega},
Code: Select all
ppu = {banksize = 0x2000, maxsize = 2 * mega},
Also, a question that's been bugging me the past few times I used the kazzo: does the file extension on the scripts matter? I've noticed that some are ".ad", some are ".ag", and some are ".af" (which I always read in my head as ".asf**k"). Does this matter at all when using particular scripts?
Re: Kazzo USB rom dumper / dev cart programmer
Naruko changed the syntax at some point: "ppu" is wrong and it should be "ppu_rom", as the error says.
Compare the syntax from (e.g.) nintendo_mmc3_tkrom.ag
Compare the syntax from (e.g.) nintendo_mmc3_tkrom.ag
-
- Posts: 40
- Joined: Sat Oct 02, 2010 5:49 pm
Re: Kazzo USB rom dumper / dev cart programmer
Great! That fixed the problem.lidnariq wrote:Naruko changed the syntax at some point: "ppu" is wrong and it should be "ppu_rom", as the error says.
Compare the syntax from (e.g.) nintendo_mmc3_tkrom.ag
Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist. Here's the current script:
Code: Select all
/*VRC6 type B/351949A/address bus A0=R1, A1=R0
CPU memory bank
cpu address|rom address |page|task
$8000-$bfff|n * 0x4000 |even|write area + write 0x2aaa
$c000-$dfff|0x04000-0x05fff|2 |write 0x5555
-------------------------------------
$8000-$bfff|n * 0x4000 |odd |write area + write 0x5555
$c000-$dfff|0x02000-0x03fff|1 |write 0x2aaa
$e000-$efff|末尾 |fix |boot area, 未使用
PPU memory bank
ppu address|rom address |page|task
$0000-$03ff|0x02800-0x02bff|0x0a|write (0x2aaa & 0x03ff) + 0
$0400-$07ff|0x05400-0x057ff|0x15|write (0x5555 & 0x03ff) + 0x400
$1000-$1fff|n * 0x1000 |n |write area*/
board <- {
mappernum = 26, vram_mirrorfind = false,
cpu_rom = {banksize = 0x4000, maxsize = 2 * mega},
ppu_rom = {banksize = 0x4000, maxsize = 2 * mega},
}
function cpubank_even_set(d, bank, cpu_banksize)
{
cpu_command(d, 0x2aaa, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0xc000, 0x2000);
cpu_write(d, 0x8000, bank)
cpu_write(d, 0xc000, 2)
}
function initalize(d, cpu_banksize, ppu_banksize)
{
cpubank_even_set(d, 0, cpu_banksize);
cpu_command(d, 0, 0x8000, cpu_banksize);
ppu_command(d, 0x2aaa, 0, ppu_banksize);
ppu_command(d, 0x5555, 0x0400, ppu_banksize);
ppu_command(d, 0, 0x0800, ppu_banksize);
cpu_write(d, 0xb003, 0); //work ram disable
cpu_write(d, 0xd000, 0x0a);
cpu_write(d, 0xd002, 0x15);
cpu_write(d, 0xd001, 0x00);
cpu_write(d, 0xd003, 0x00);
}
function cpu_transfer(d, start, end, cpu_banksize)
{
local i;
for(i = start; i < end - 2; i += 2){
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
function ppu_transfer(d, start, end, ppu_banksize)
{
for(local i = start; i < end; i += 4){
cpu_write(d, 0xe000, i | 0);
cpu_write(d, 0xe002, i | 1);
cpu_write(d, 0xe001, i | 2);
cpu_write(d, 0xe003, i | 3);
ppu_program(d, 0x1000, ppu_banksize * 4);
}
}
Re: Kazzo USB rom dumper / dev cart programmer
Compare the entire line from the mmc3 script, not just that single wordwerewolfslayr925 wrote:Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist.
-
- Posts: 40
- Joined: Sat Oct 02, 2010 5:49 pm
Re: Kazzo USB rom dumper / dev cart programmer
Okay, so I got a script that works. I basically just copied the beginnings of the MMC3 script, which I figured would be wrong (it is). I got a (very incorrect) dump of the game:lidnariq wrote:Compare the entire line from the mmc3 script, not just that single wordwerewolfslayr925 wrote:Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist.
Code: Select all
Program ROM: 0x059dcdf0
Charcter ROM: 17257ddc
But at least the script doesn't give an error. Here it is:
Code: Select all
/*VRC6 type B/351949A/address bus A0=R1, A1=R0
CPU memory bank
cpu address|rom address |page|task
$8000-$bfff|n * 0x4000 |even|write area + write 0x2aaa
$c000-$dfff|0x04000-0x05fff|2 |write 0x5555
-------------------------------------
$8000-$bfff|n * 0x4000 |odd |write area + write 0x5555
$c000-$dfff|0x02000-0x03fff|1 |write 0x2aaa
$e000-$efff|末尾 |fix |boot area, 未使用
PPU memory bank
ppu address|rom address |page|task
$0000-$03ff|0x02800-0x02bff|0x0a|write (0x2aaa & 0x03ff) + 0
$0400-$07ff|0x05400-0x057ff|0x15|write (0x5555 & 0x03ff) + 0x400
$1000-$1fff|n * 0x1000 |n |write area*/
board <- {
mappernum = 26, vram_mirrorfind = false, ppu_ramfind = true
cpu_rom = {size_base = 2 * mega, size_max = 4 * mega, banksize = 0x2000},
ppu_rom = {size_base = 2 * mega, size_max = 2 * mega,
banksize = 0x0400
},
}
function cpu_dump(d, pagesize, banksize)
{
cpu_write(d, 0xa001, 0); //disable W-RAM
for(local i = 0; i < pagesize - 2; i += 2)
{
cpu_write(d, 0x8000, 6);
cpu_write(d, 0x8001, i);
cpu_write(d, 0x8000, 7);
cpu_write(d, 0x8001, i | 1);
cpu_read(d, 0x8000, banksize * 2);
}
cpu_read(d, 0xc000, banksize * 2);
}
function ppu_dump(d, pagesize, banksize)
{
for(local i = 0; i < pagesize; i+=4)
{
cpu_write(d, 0x8000, 2);
cpu_write(d, 0x8001, i);
cpu_write(d, 0x8000, 3);
cpu_write(d, 0x8001, i | 1);
cpu_write(d, 0x8000, 4);
cpu_write(d, 0x8001, i | 2);
cpu_write(d, 0x8000, 5);
cpu_write(d, 0x8001, i | 3);
ppu_read(d, 0x1000, banksize * 4);
}
}
function cpubank_even_set(d, bank, cpu_banksize)
{
cpu_command(d, 0x2aaa, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0xc000, 0x2000);
cpu_write(d, 0x8000, bank)
cpu_write(d, 0xc000, 2)
}
function initalize(d, cpu_banksize, ppu_banksize)
{
cpubank_even_set(d, 0, cpu_banksize);
cpu_command(d, 0, 0x8000, cpu_banksize);
ppu_command(d, 0x2aaa, 0, ppu_banksize);
ppu_command(d, 0x5555, 0x0400, ppu_banksize);
ppu_command(d, 0, 0x0800, ppu_banksize);
cpu_write(d, 0xb003, 0); //work ram disable
cpu_write(d, 0xd000, 0x0a);
cpu_write(d, 0xd002, 0x15);
cpu_write(d, 0xd001, 0x00);
cpu_write(d, 0xd003, 0x00);
}
function cpu_transfer(d, start, end, cpu_banksize)
{
local i;
for(i = start; i < end - 2; i += 2){
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
cpubank_even_set(d, i, cpu_banksize);
cpu_program(d, 0x8000, cpu_banksize);
cpu_command(d, 0x5555, 0x8000, cpu_banksize);
cpu_command(d, 0x2aaa, 0xc000, 0x2000);
cpu_write(d, 0x8000, i | 1)
cpu_write(d, 0xc000, 1)
cpu_program(d, 0x8000, cpu_banksize);
}
function ppu_transfer(d, start, end, ppu_banksize)
{
for(local i = start; i < end; i += 4){
cpu_write(d, 0xe000, i | 0);
cpu_write(d, 0xe002, i | 1);
cpu_write(d, 0xe001, i | 2);
cpu_write(d, 0xe003, i | 3);
ppu_program(d, 0x1000, ppu_banksize * 4);
}
}
Re: Kazzo USB rom dumper / dev cart programmer
Surely you've done enough of these by now to get a feeling for what these words and numbers mean? That they're just not just random gibberish?werewolfslayr925 wrote:Okay, so I got a script that works. I basically just copied the beginnings of the MMC3 script, which I figured would be wrong (it is). I got a (very incorrect) dump of the game:
-
- Posts: 40
- Joined: Sat Oct 02, 2010 5:49 pm
Re: Kazzo USB rom dumper / dev cart programmer
Unfortunately, they're gibberish to me, though not quite random. I get a couple of the ideas behind the numbers (0x4000 = the size of a ROM(?)), and some of the words (e.g. I know "ppu_dump" means to dump the chip that contains the graphics).lidnariq wrote:Surely you've done enough of these by now to get a feeling for what these words and numbers mean? That they're just not just random gibberish?werewolfslayr925 wrote:
However, I really suck at programming and nobody ever explains things relating to it in a way I can understand. I would love for someone to explain what the words and numbers mean and how it relates to the way each board is built. I really don't understand any of this. Is the commentary at the beginning of the script a blueprint for how the script is supposed to work?