nesdev.com
http://forums.nesdev.com/

MyKazzo: Famicom cartridge dumping hardware on Atmega32
http://forums.nesdev.com/viewtopic.php?f=9&t=11038
Page 1 of 2

Author:  krzysiobal [ Sat Feb 22, 2014 5:24 am ]
Post subject:  MyKazzo: Famicom cartridge dumping hardware on Atmega32

I would like to present my latest device I made - it's called MyKazzo and it allows dumping cartridges. I called it that because it offers similar functionality to Kazzo but I think it has some advantages over it:
* it uses ONLY one chp - Atmera32 microcontroller,
* it protects cpu & ppu data lines with 1k resistors to avoid short circuits (when you dump it bad way, for example when you forget about bus conflicts or you enable prg & chr roms at the same time).

Image Image Image Image Image

The communication between PC is over USB (the Atmega32 implements V-USB library) and it basically can do 4 kinds of commands, that can be initiated from PC:
* simulate CPU read cycle: read from given PRG address range,
* simulate CPU write cycle: write given bytes at given PRG address,
* simulate PPU read cycle: read from given CHR address range,
* simulate PPU write cycle: write given bytes at given CHR address.

I wrote a piece of software on PC in C# (with GUI) that is a kind of server.
Image Image Image

It allows user clicking what addresses should be read/written at and finally generate & save NES file. Of course dumping more complicated carts like MMC1 needs a lot of clicking, so the app can load a so called dumping script file, which is just a plain text file with command for dumper, for example dumping Flipull game (CNROM)
Code:
#flipull (cnrom - mapper 3)
CPU R 8000 FFFF

CPU W 00 8234
PPU R 0000 1FFF

CPU W 01 8235
PPU R 0000 1FFF

CPU W 02 8236
PPU R 0000 1FFF

CPU W 03 8237
PPU R 0000 1FFF


You might act why CPU is writing to such strange addresses like 8234, 8235. Thats because this CNROM cart has bus conflicts and there is a lookup table in the ROM at 8234-8237 which contains bytes: 0, 1, 2, 3.
If you write a byte at random address, the mapper (latch in CNROM) will see a byte stored at ROM in that address (because latch & ROM is at the same side of resistors), but nothing will be shortcircuited!

I have succesfully dumped lot of my famiclone cartridges. I just failed dumping one - 168 in 1, which is Ines mapper 015 and has 1 MB PRG ROM & CHR-RAM. I think the problem is that this cart has some kind of reset-detection circuit and it needs M2 clock all the time.

Author:  infiniteneslives [ Sat Feb 22, 2014 5:30 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Looks great! Nice work.

Author:  naruko [ Sat Feb 22, 2014 6:06 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

すばらしい!

C# で作ると Windows Vista/7/8 でも問題なく動きそうですね。
本日、解析材料を借りれたのに anago が Windows 7 で動かず作者の私が困ってます。
Linux 使おう...

Author:  krzysiobal [ Sat Feb 22, 2014 6:16 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

If you prefer Linux, there is a project called mono that lets linux users execute C# applications.

Author:  FARID [ Sat Feb 22, 2014 6:16 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Well Done!
Why people from Poland are so brainy?!
Have you tried to dump any mapper 52 cartridge?

Author:  tepples [ Sat Feb 22, 2014 10:09 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

krzysiobal wrote:
If you prefer Linux, there is a project called mono that lets linux users execute C# applications.

Provided that Mono supports the libraries that a particular application uses. I tried to run the .NET version of YY-CHR on Mono, and all I got was error messages. GUI libraries and hardware communication libraries tend to be most affected.

Author:  krzysiobal [ Sat Feb 22, 2014 10:17 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

I know. The best way is to write core app as console version (which mono emulates very well) and the gui should be written independelly for each platform.
I just love C#, it has everything that 99% programmers need, libraries for graphics, PDFs, very easy to use gui components..

Author:  krzysiobal [ Sat Feb 22, 2014 10:26 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

FARID wrote:
Have you tried to dump any mapper 52 cartridge?

I think I dont have any.
But I have such a fancy cartridge:
Image
There is CHR-RAM, PRG-ROM (as EEPROM), some 74xx logic, PAL and this chip in bottom left corner I cannot identify. I will try to work with it, as it contans 2500 games (but about 10-15 unique, including Contra).

Author:  GameMachineJames [ Sat Feb 22, 2014 7:41 pm ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Officer job, krzysiobal.

I have a question about that cartridge, however. Is it this one?

http://www.youtube.com/watch?v=BGm4zDNceaQ

The Cotnra Function 16 carts are hard to find for Americans like me. I am especailly trying to find this one:

http://www.youtube.com/watch?v=pnljqjHyqEg

Author:  krzysiobal [ Sat Feb 22, 2014 8:41 pm ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Nope, it's not that. Just a simple menu, without music. It contains a lot of simple nrom games & conta, but some of them are that I newer saw before.

The 168 in 1 cart is the one at my first screenshoot, inserted to romduper. It was probably released only for famiclone. Its PCB looks like that.

The `100 in 1` I have never saw before but I think it was released for nes.

Attachments:
168in1_LS.JPG
168in1_LS.JPG [ 72.17 KiB | Viewed 5214 times ]

Author:  jpx72 [ Sun Feb 23, 2014 2:23 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

krzysiobal wrote:
But I have such a fancy cartridge .....
it contans 2500 games (but about 10-15 unique, including Contra).

I have such a cart too, dumped it by removing roms, pm me if interested.
http://jpx72.detailne.sk/stuff_files/fc ... /front.jpg

Author:  krzysiobal [ Sun Feb 23, 2014 6:21 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

I will try on my own, but what's the CT-119 chip?

Author:  FARID [ Sun Feb 23, 2014 7:35 am ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

krzysiobal wrote:
I will try on my own, but what's the CT-119 chip?


It should be as large as the sum of the games
Also you should check the high address lines of the chip
Depending on the total games size, it is one of these chips : 27C080, 27C040, 27C020, 27C010

Author:  krzysiobal [ Sun Feb 23, 2014 12:45 pm ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

I succesfully dumped 168 in 1. As I thought, it needed to have constant clock signal on M2 line (2 MHz worked). Luckily this line is connected to timer 2 output in Atmega on my device, so I could enable this timeat which generated 2 MHz by hardware.

Author:  krzysiobal [ Sun Feb 23, 2014 1:21 pm ]
Post subject:  Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Here's a list of UNIQUE games from the 2500 in 1 cart and how the menu looks like:

Image

It must be complicate, because it contains BNROM games (contra), CNROM (tetris2, road fighter)
1. contra
2. tetris 2
3. tank
4. b-wings
5. super mario 1
6. 1942
7. ninja III
8. dig dug II
9. binary land
10. bomber man
11. ice climber
12. galaxian
13. road fighter
14. hogans alley
15. wild gunman
16. duck shoot
17. antarctic adventure
18. dig dug
19. urban champion
20. baloon fight
21. clu clu clan jss
22. sky destroyer
23. popeye
24. wrecking crew
25. raid on bay her
26. milk nuts
27. devil world
28. chack pop
29. macross
30. mario bros

Page 1 of 2 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/