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

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.

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 8234PPU R 0000 1FFF

CPU W 01 8235PPU R 0000 1FFF

CPU W 02 8236PPU R 0000 1FFF

CPU W 03 8237PPU 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.

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.

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

I think I dont have any.But I have such a fancy cartridge: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).

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.

Who is online

Users browsing this forum: No registered users and 6 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum