A while ago i held a talk at the ccc in cologne about my favorite game console the Super Nintendo. This talk covers the Super Nintendo technology in detail. Starting with the CPU and PPU, covering the cartridge memory maps and showing most of the custom chips which where used on cartridges. I also show development hardware, copier stations and the current available flashcarts. The topic emulation is also covered . The second part of the talk is about the quickdev16 project, which i did with my friend max in 2009. We built a flashcart for the SNES which is useful for developing homebrew software. The talk sums up all the details i learned during the research i made to built this kind of cartridge. I uploaded the slides, maybe someone find this useful to dive into the SNES world.
We got a new loader for the Quickdev16 firmware. The loader will replace the current dummy loader and has a few new advantages:
- Faster upload because of IRQ driven communication between SNES and AVR
- Progressbar while uploading
- Display Rom infos
- ASCII and Katakana font support
- Eyecandy: new logo design with sine wave effect and bassdrum synced background effects..
Due to these features the loader blew up to more than 55kb, too much for our limited space in the AVR progmem (64kb – 4kb bootloader). Our main firmware is between 8kb and 24kb, depends on the debug-features that you compile in. So the recent task is to either reduce the loader size by skipping eyecandy, finding a better compression routine to compress it in the progmem or build a minimal firmware and put parts of the loader into the surplus 4kb eeprom on the AVR. Probably we will have to combine the different approaches.
One reason why the firmware is that big these days is the new “minimal debug terminal”, a serial command line where you can maintain the Quickdev system status. You can dump memory regions from sram, switch between the busses, write to the shared memory section, show the status of the hardware ports and use several other usefull commands. Check the project page for more details on the commands.
Last week we shipped the first batch of Quickdevs. The Software is feature ready, but we wanted to do some eye candy on the SNES software side, which didn’t work out yet. So software updates are coming within the next weeks.
Feel free to order at david @ optixx.org.
I start taking inoffical pre-orders for the Quickdev16 now. Just send me an email to david at optixx.org with your name and email address. In order of arrival i will put you on the pre-order list. Right now we plan to sell around 35 cartridges.
Why inoffical pre-orders list? A fews points are unclear right now. I don’t know the final price since this will depend on the assembling costs which are not setteld yet. I can’t say if the the new PCB are working 100% since we didn’t test it yet. Also we didn’t figured out if we gonna ship the cartidge with a CIC chip or not. The client software is tested and developed under Linux and OS X. Can’t say much about windows. But if you can compile ucon64 with libusb support in windows you should be fine. I will give this a shot soon.
These points will clear up within the next 2-3 weeks. But expect an sale price around 100 USD or 80 Euros. I gonna use paypal for international shipping and direct debit in Germany and even Europe. Will provide an an IBAN and paypal account later.
I don’t take any money before everything has clear up. So the pre-order is not binding as long as you are not happy with the final outcome of the project. I just started this pre-order list, since a few people start asking for it and they don’t want to miss the opportunity to get one.
Just a quick preview of up coming features.
- up to 16Mbit Roms supported
- Ucon64 upload via USB
- Lo/Hi Rom
- Serial Debug Console
- SNES Boot Loader
- SDcard Daughter Board planed
Finally we found a better name for the snesram and renamed it to ‘QuickDev16 USB’. Final PCB layouts are ready and will be send to china soon. So in about 2 weeks we will have our first PCBs.
- 16 MBit Sram for Rom storage
- ATmega644 MCU for housekeeping
- USB connection for ROM upload
- ucon64 software compatibel
- PAL/NTSC CICs are supported
- Lo/Hirom support
- Reset trigger from cartridge possible
- AVR USB Bootloader for quick firmware uploads
- Snes bootloader intro
- Snes powered, no power source needed
Stay tuned for more features, especially debugging helpers
Things are going well. Have added some features to the software side and also got some stuff working hardware wise.
Can confirm that US/JAP roms are working.Only tested EU roms before. Used my japanese Nintendo junior and a japanese CIC to confirm that the snesram is working with that setup too.
Max and i added an bootloader to the AVR software toolchain. Now its possible to flash the AVR firmware via the same USB cable as for the normal bulk transfer. So no extra ISP programmer is needed to change the AVR firmware. This is super fast, can flash the 16kb client side firmware in like 3 secs.
Added a reset line trigger to the snes bus. Now the client software can reset the snes after uploading the software. So its possbile to push a rom via ucon64 from the pc and then reset is done by ucon64 and the firmware. No interaction needed from there.
Max is refactoring the schematics so that we can send them over to the pcb fab soon. Stay tuned.