MyKazzo: Famicom cartridge dumping hardware on Atmega32

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

Moderator: Moderators

User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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: Select all

#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.
User avatar
infiniteneslives
Posts: 2104
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by infiniteneslives »

Looks great! Nice work.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
User avatar
naruko
Posts: 66
Joined: Mon Feb 09, 2009 9:10 am
Location: リムルダール Rimuldar
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by naruko »

すばらしい!

C# で作ると Windows Vista/7/8 でも問題なく動きそうですね。
本日、解析材料を借りれたのに anago が Windows 7 で動かず作者の私が困ってます。
Linux 使おう...
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

If you prefer Linux, there is a project called mono that lets linux users execute C# applications.
User avatar
FARID
Posts: 499
Joined: Wed Apr 07, 2010 1:14 am
Location: Iran
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by FARID »

Well Done!
Why people from Poland are so brainy?!
Have you tried to dump any mapper 52 cartridge?
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by tepples »

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.
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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..
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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).
GameMachineJames
Posts: 45
Joined: Mon Feb 04, 2013 8:48 am

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by GameMachineJames »

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
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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
User avatar
jpx72
Posts: 178
Joined: Tue Sep 28, 2010 3:27 am
Location: Slovakia
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by jpx72 »

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
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

I will try on my own, but what's the CT-119 chip?
User avatar
FARID
Posts: 499
Joined: Wed Apr 07, 2010 1:14 am
Location: Iran
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by FARID »

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
Last edited by FARID on Sun Feb 23, 2014 1:12 pm, edited 1 time in total.
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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.
User avatar
krzysiobal
Posts: 1037
Joined: Sun Jun 12, 2011 12:06 pm
Location: Poland
Contact:

Re: MyKazzo: Famicom cartridge dumping hardware on Atmega32

Post by krzysiobal »

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
Post Reply