It is currently Thu Dec 13, 2018 9:54 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 660 posts ]  Go to page Previous  1 ... 40, 41, 42, 43, 44  Next
Author Message
PostPosted: Wed Sep 26, 2018 4:05 pm 
Offline

Joined: Wed Sep 26, 2018 8:03 am
Posts: 6
I'll to compare it in the next days :)
thanks for helping me though :)


Top
 Profile  
 
PostPosted: Fri Sep 28, 2018 8:32 pm 
Offline

Joined: Sun Aug 31, 2014 9:55 am
Posts: 39
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?


Top
 Profile  
 
PostPosted: Sun Sep 30, 2018 9:43 am 
Offline

Joined: Wed Sep 26, 2018 8:03 am
Posts: 6
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]


Top
 Profile  
 
PostPosted: Tue Oct 02, 2018 5:48 am 
Offline

Joined: Fri Mar 23, 2018 8:58 pm
Posts: 16
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.


Attachments:
IMG_20180925_081313.jpg
IMG_20180925_081313.jpg [ 3.24 MiB | Viewed 2857 times ]
IMG_20180925_081332.jpg
IMG_20180925_081332.jpg [ 3.18 MiB | Viewed 2857 times ]
Top
 Profile  
 
PostPosted: Thu Oct 04, 2018 6:18 pm 
Offline

Joined: Wed Sep 26, 2018 8:03 am
Posts: 6
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 :)


Top
 Profile  
 
PostPosted: Thu Oct 04, 2018 6:38 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7821
Location: Seattle
I think that's a COOLBOY board. Try using an MMC3 dumping script.

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


Top
 Profile  
 
PostPosted: Sun Oct 07, 2018 1:14 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 2097
Location: WhereverIparkIt, USA
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?


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.

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


Top
 Profile  
 
PostPosted: Wed Oct 10, 2018 3:07 pm 
Offline

Joined: Sun Aug 31, 2014 9:55 am
Posts: 39
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.


Top
 Profile  
 
PostPosted: Wed Oct 10, 2018 6:22 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 38
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):

Code:
Program ROM: size 0x020000, crc32 0x8ab9e1ea
Charcter ROM: size 0x040000, crc32 0x8a86b158


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:

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

   }

}


And here's the error it's giving:

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


After reading what lidnariq wrote about it, I tried swapping out the line

Code:
   ppu = {banksize = 0x4000, maxsize = 2 * mega},


for something like

Code:
   ppu = {banksize = 0x8000, maxsize = 2 * mega},


or

Code:
   ppu = {banksize = 0x2000, maxsize = 2 * mega},


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?


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 11:37 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7821
Location: Seattle
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


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 12:07 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 38
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


Great! That fixed the problem.

Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist. Here's the current script:

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

   }

}


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 12:13 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7821
Location: Seattle
werewolfslayr925 wrote:
Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist.
Compare the entire line from the mmc3 script, not just that single word :P


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 7:23 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 38
lidnariq wrote:
werewolfslayr925 wrote:
Unfortunately, there's another syntax error. It now says that 'size_base' doesn't exist.
Compare the entire line from the mmc3 script, not just that single word :P


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:

Code:
Program ROM: 0x059dcdf0
Charcter ROM: 17257ddc



But at least the script doesn't give an error. Here it is:

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

   }

}


Any idea how to fix this?


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 7:46 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7821
Location: Seattle
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:
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?


Top
 Profile  
 
PostPosted: Fri Oct 12, 2018 8:20 pm 
Offline

Joined: Sat Oct 02, 2010 5:49 pm
Posts: 38
lidnariq wrote:
werewolfslayr925 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?


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

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?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 660 posts ]  Go to page Previous  1 ... 40, 41, 42, 43, 44  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: Majestic-12 [Bot] and 3 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