Okay so I've got a bit of an update on this thing.
First off our "final commercial" of the thing for to finish off the school project is
here
Now I know there is at least one person who's been waiting patiently for this thing for a few years now. I want to make my plans public as for the release and my current status. My goal is to have it released before the end of the year, ideally it'll be ready by the end of summer. But mass production availability kind of depends on demand. I haven't concluded on price yet, and won't really until I consider my manufacturing options once it's complete. I expect it will be in the $100 range we'll see.
So right now I'm working on the second more final revision of the PCB. There were a few minor errors and mostly I had some things I wanted to clean up. Also I decided to step up to one of the larger members of the Mach XO2 family for the CPLD. It's only a few dollars more and has 3-4x the capability. One small improvement that has a large effect is 8 more IO. With those I can do away with the annoying solder jumpers that traded minimum bankswitching size for lower address inputs. So the final spec will be:
*All PRG and CHR addressing available. This was really required to support some of my dual ported memory goals and other trickery to come.
*Smallest PRG banks 2KB to support sound needs
*Smallest CHR banks 128bytes. Hooray animations.
Current mapper support:
* most discrete mappers (all possible)
*MMC1
*MMC3
Planned mappers before release:
*FME7
*RAMBO-1
*MMC2/4 are likely in the near future but not necessarily before release.
The main thing I need to complete before release is the ability to configure the mcu and CPLD via USB. Currently they require external programmers and the CPLD programmer happens to be $200. Luckily the CPLD is easily configurable via SPI bus which should make it fairly simple for me to configure with the mcu and will be just as easy as loading new games, just slow though. Keep in mind that's if you create or modify a mapper, not for switching between preconfigured mappers that are already on there. Also I need to get the bootloader working for the mcu.
I also want to experiment around with boosting the upload speed on this thing. NROM is done in a few seconds but something the size of SMB3 takes around 15-20 sec. One easy way I imagine is taylored for development. Basically it assumes when you make sucessive builds the entire ROM isn't modified. One easy one is you usually wouldn't modify the CHR and PRG at the same time. So basically only the modified code would be uploaded. But this would be done by the app and unseen by the user. I've got some other optimizations in the programming sequence that should allow for decent speed ups as well.
The last thing I would to implement is a test rom of sorts. Basically do a quick check of cartridge connectivity and a simple splash screen or something. The idea would be that this would be stored on the FLASH memory. So if you just booted up the cart without loading if via USB you'd have the test run by default. This could easily be removed by the user if desired especially if you wanted to use the flash for something else. But it would provide some verification that everything is working properly and any bugs found in your build wouldn't be as easily blamed on connection and such.
Once I've got all that done it's pretty much ready for the public as far as I'm concerned. I'll also have the bear of writing up all the documentation including the source files and schematics for everything. I don't want anything about this thing to be secret.
After I release it I'll still be working on improvements such as crazy mappers that will create much controversy I'm guessing. I also want to test out some sound features with the 8910 and such. At that point I'd also like to work on creating some simple tutorials on how to create and modify mappers and the mcu code and everything. Basically much more to come if I can help it.