It's 2024, shouldn't your NES game be updatable? 🤔
Designed by t1lt in United States of America
Buy with confidence.
Our Tindie Guarantee protects your purchase from fraud. Learn More
What is it? This cartridge aims to be a simple way to develop and distribute updatable Mapper 30 aka UNROM-512 homebrew NES games. Features No Driver / No App - CartNESs shows up as a USB flash dri…
Read More…This cartridge aims to be a simple way to develop and distribute updatable Mapper 30 aka UNROM-512 homebrew NES games.
No Driver / No App - CartNESs shows up as a USB flash drive when plugged into your PC -- just copy your 512K ROM .bin
or .nes
file over to it and it writes the ROM automatically.
Fast Program Time - Bypasses the ROM mapping circuitry during programming, giving a worst-case programming time of just 14s for a fully stuffed 512K ROM. But small games that pack their unused space with 0xff
's can write in 5s or less. See the below section How do I make my game flash faster? for more info.
Developer Mode - Supports reflash with the cartridge in the NES - copy your game over and then just hold Reset to pause the NES while the ROM is rewritten. When the LEDs stop flashin', it's time for some button mashin' 😎
Updates for Everyone - Imagine a world where you can fix bugs, add translations, and push new content for your NES game AFTER the cartridges have been made? CartNESs was designed to be both a handy developer tool and a production hardware platform.
Snazzy CNC-cut Housing - Well, style counts too doesn't it? 😅 I knew I'd need to precision-mill the USB connector cutout, so why not add a bit of pizazz to the "label" as well? 🎩🪄
This project began with the goal of releasing my own homebrew NES game on an updatable platform. I knew I needed a dead-simple way for anyone to update their game, so I came up with the faux-flash-drive loading method to make the update process easy without requiring any custom apps or drivers.
Along the way, I realized this cartridge could also be a useful developer tool for folks as well. In homebrew development you learn quickly that "works in the emulator" is NOT the same as "works on the NES" 😭. I had issues with Memory initialization, controller DPCM conflicts, mapper register state, and just general PPU nonsense -- I had to slay a bunch of hardware-specific bugs that drove me nuts trying to fix. 🐿️
On top of this, the external cartridge programmer I used had the truly painful iteration loop of pulling the cartridge, 30 seconds of programming time, and then hoping the NES didn't glitch when I put the cart back in. So I always kind of dreaded when it came time to test the game on hardware, which meant I didn't do it enough ... and ended up with more bugs. 🪳🦗🐛
Definitely looking forward to making my 2nd NES game with a CartNESs in the console this time around! 😅
Long story short, if you are developing a Mapper 30 NES game, this can be a great tool in your toolbox -- as a development cart, a way to distribute builds to testers, and even as your final production cartridge hardware if you want customers to have the ability to update.
Just a pre-assembled CartNESs Everdream ready to ROMble.
No USB cable is included -- you'll need a USB A-to-C type cord to make the connection (aka the Android one).
NO. This will only play NES games with Mapper 30 hardware. For all your general purpose retro-gaming needs, I highly suggest the amazing Everdrive instead, which does everything CartNESs does and a lot more... the only version of The Legend of Zelda that CartNESs can muster is this strange one.
I'm not a NESMaker power user myself per se, but seems by default the app is set up to use the standard Infinite NES Lives (aka inl-retro)-style programmer. The programming command that gets hit when you click Make Cart
is stored in copyAndFlashCart.bat
. NESMaker is quite flexible and lets you overwrite this with whatever you want, which is handy. 👋
Here's a new copyAndFlashCart.bat
that works with CartNESs instead:
set CARTNESS="e:\game.nes"
if exist %CARTNESS% del %CARTNESS%
copy GameEngineData\game.nes %CARTNESS%
pause
Be sure to replace the contents of the CARTNESS
variable with whatever path your CartNESs
shows up as on your PC. Mine shows up on drive E:
but yours may be different depending on what all you've got connected to your PC.
When flash memory is erased, it defaults to 0xff
(i.e. all 1's). CartNESs takes advantage of this and skips any 0xff
bytes in the programming process to speed things up. So if you can instruct your compiler to make any unused bytes 0xff
then this speeds things up a lot.
For example, I use ca65 and do this in my .cfg
file using the fillval
command, like:
BANK_00: start = $8000, size = $4000, type = ro, fill = yes, fillval = $ff, file = "bin/bank00.bin";
If you are using asm6 instead the command is actually the assembly directive FILLVALUE $FF
.
As mentioned I'm by no means an NesMaker wiz, but I was able to 0xff
out a small bit of the 13 Days of October example project memory by adding this line at line 2 of GameEngineData\MainASM.asm
:
FILLVALUE $FF
On CartNESs it improved the download time from 14s to 11s, so there is probably more work to be done there! I'm sure someone who knows that system better than me can come up with a way to squash all dem 0x00
's.
The ROM file can be read back until the power is cut to the cartridge. After this, the ROM will be saved to the cartridge flash but cannot be read back by the PC.
In theory, yes? But these are all untested at the moment. If you try a platform and it works let me know or post a comment! And if it doesn't let me know and I'll happily refund you.
Being able to flash the cartridge in the console requires the hardware to release the cartridge address and data lines during reset. This allows CartNESs to do its thing uninterrupted. With the myriad of clones out there, can't make any promises here, but again if you find one that works, post it here, and if it doesn't work and that's a dealbreaker for you, just let me know and you can return it no problem.
No country selected, please select your country to see shipping options.
No rates are available for shipping to .
Enter your email address if you'd like to be notified when "CartNESs Everdream" - USB Homebrew NES Cartridge can be shipped to you:
Thanks! We'll let you know when the seller adds shipping rates for your country.
Shipping Rate | Tracked | Ships From | First Item | Additional Items |
---|---|---|---|---|
:
|
Buy with confidence.
Our Tindie Guarantee protects your purchase from fraud. Learn More
$30.00
Free Shipping!
$49.99
Free Shipping!
$35.00
Free Shipping!
$49.95
Free Shipping!
By clicking Register, you confirm that you accept our Terms & Conditions
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!