====== Nintendo Entertainment System / Famicom ====== {{wst>see_hardware_page}} **Warning: The Nt Mini Noir Jailbreak v6.5 (Dec. 15, 2020) [[https://github.com/SmokeMonsterPacks/Nt-Mini-Noir-Jailbreak/issues/85|produced corrupted dumps of some Famicom carts]] and v6.6 (Feb 23, 2021) [and maybe earlier] [[https://github.com/SmokeMonsterPacks/Nt-Mini-Noir-Jailbreak/issues/155|produces corrupted dumps of SXROM and HKROM carts]].** {{wst>vgpc_help}} ===== Introduction ===== There are many tools available to dump NES / Famicom carts, not all of them are simple to use though. To ensure successful dumps, we won't be listing beta/in progress methods or tools below. {{wst>carts_important_notes}} ===== Methods ===== - [[#Open Source Cartridge Reader]] - [[#RetroBlaster 2.0]] - [[#RetroFreak]] - [[#INLretro]] ==== Open Source Cartridge Reader ==== To read Nintendo/Famicom cartridges you need the [[https://github.com/sanni/cartreader/tree/master/pcb/adapters|NES(or Famicom) to SNES adapter PCB]] and have the configuration switches set like so: {{:carts:nintendo:sanni-switches-nes-dumping.jpeg?400}} Then you need to find the mapper and size information of the cartridge you want to dump in one of these databases: * [[http://nes.dnsabr.com/|http://nes.dnsabr.com/]] * [[http://bootgod.dyndns.org:7777|http://bootgod.dyndns.org:7777]] * [[https://nescartdb.com/|https://nescartdb.com/]] * [[http://tuxnes.sourceforge.net/nesmapper.txt|http://tuxnes.sourceforge.net/nesmapper.txt]] The Cart Reader uses a database to build the iNES header, however the database might not be complete. In the latter case you have to manually add an iNES header using a program on your PC. [[https://github.com/dsedivec/inestool]]\\ [[https://greg-kennedy.com/wordpress/2012/05/30/ines-header-fixer/]] A video of how this works can be found here: https://www.youtube.com/watch?v=7PWq-x4hxgM //Methodology captured from [[https://github.com/sanni/cartreader/wiki/Dumping-NES-Games]]// ==== RetroBlaster 2.0 ==== {{wst>community_equipment}} Dumping Famicom games with a RetroBlaster 2.0 requires a 60 pin (Famicom) to 72 pin (NES) cartridge adapter (sold separately), in addition to the NES adapter. The RetroBlaster software currently only supports Windows and is available on the [[https://github.com/retrostage/RetroBlaster|RetroBlaster github]]. {{:carts:sega:rertoblaster_5v.jpg|}} Make sure the RetroBlaster voltage switch is set to 5V (not the 3V setting). Connect the NES adapter to the RetroBlaster. To seat the adapter, firmly but gently push the adapter in until the pins are no longer showing. {{:carts:nintendo:nes:nes_retroblaster.png|}} Insert the cartridge or PCB into the adapter, with the cartridge label facing the activity LED. Open the RetroBlaster software (click Run if you see a security warning about the publisher not being verified) and navigate to the NES tab. First, you'll need to know which mapper type the game uses. You can consult a NES game database such as [[https://nescartdb.com|nescartdb.com]] or [[http://nes.dnsabr.com|nes.dnsabr.com]] for the mapper info and the size of the PRG and CHR chips. {{:carts:nintendo:nes:retroblaster_nes_mapper.png|}} After selecting the mapper type from the drop-down menu, enter the PRG size. {{:carts:nintendo:nes:retroblaster_nes_chr.png|}} Next, enter the CHR chip size. {{:carts:nintendo:nes:retroblaster_nes_sram.png|}} Finally, select whether the game uses SRAM for save data. {{:carts:nintendo:nes:retroblaster_nes_software.png|}} Click "Dump ROM." Choose the location and filename for your ROM. The activity LED will turn on on the RetroBlaster board. A progress bar will indicate the status of the dump, and information will be displayed on the 'status' log when the dump is complete. If applicable, you can also dump the SRAM save data from this same tab, by clicking the Dump SRAM button. When swapping adapters, the official recommendation from RetroBlaster is to use the non-writing end of a pen or marker to slowly push the adapter out from either side, using the board for leverage, in order to avoid bending the pins. ==== RetroFreak ==== The RetroFreak is a great little emulation machine that uses physical carts similar to the Retron5. Under standard conditions it is possible to let the RetroFreak copy the cart contents to an SD card, but they're always encrypted. However, by using custom firmware and a few configurations to two files, you can get unencrypted dumps of your carts onto your SD card. **WARNING 1** Will this brick your system? Hopefully not. Proceed on your own risk. **Get the binaries** Start by downloading the release of [[https://github.com/hissorii/retrofd/releases/tag/v1.0|hissori's retrofd project]]. Make sure you get the release that's _smaller_ than your SD card. If your SD card is 16GB you should get the 8GB release, etc. **WARNING 2** This will overwrite your SD card, so make sure you make backups of anything important before proceeding. Unpack the retrofd zip file, and then use something like [[https://www.balena.io/etcher/|balenaEtcher]] to transfer the contests onto an empty SD card. **Config** There are two small file edits that you need to do. To make it simple, you can replace the existing files on your SD card with the ones attached. Here are the changed files: retrofd.cfg # clear micro SD partition 2/3 RF_CLR_SDP23=no # FACTORY TEST MODE RF_FTM=no # Log copy daemon RF_LOGCD=yes rfd_logcd.sh #!/sbin/busybox sh while ! busybox grep "/mnt/external_sd" /proc/mounts > /dev/null do busybox sleep 1 done # copy log files(/mnt/ram/log/*) to SD(/retrofd/log) if new ones exist srcd=/mnt/ram/ dstd=/mnt/external_sd/retrofd/log while : ; do busybox find $srcd -maxdepth 1 -type f | busybox sed -e 's/.*\///' | while read logfile do [ -f "$dstd/$logfile" ] || busybox sleep 5 && busybox cp "$srcd/$logfile" $dstd/ done busybox sleep 1 done **Usage** Boot up the RetroFreak with the new SD card inserted, you should be able to use and play your carts like normal. Once you insert a cart, let RetroFreak install it to the SD card. Now start the game for a few seconds. After you've started a game, the unencrypted dump will be copied onto your SD card under `/retrofd/log`. You can now exit the game and continue with the next cart. Once you've turned off the RetroFreak, you can take out the SD card and look the contents and verify your unencrypted dumps. They should have names such as `homebrewgame-decrypted.NES` or `awesomehomebrew-decrypted.SFC`. //**Needs verification** You might also be able to use the above method to dump an unencrypted BIOS of your Famicom Disk System. Plug in the RAM adapter and follow the instructions above to save the encrypted BIOS on your SD card. Then start an FDS game that you have loaded onto the SD card and the BIOS should be dumped into the same location as mentioned above.// ==== INLretro ==== todo: look at [[https://arekuse.net/blog/tech-guides/rom-dumping-and-hacking/rom-dumping-nes/|this guide]] and [[https://gitlab.com/InfiniteNesLives/INL-retro-progdump/-/blob/master/docs/EasyRippingGuide.md|this guide]] xxxx ==== Opening carts ==== === NES=== NES games produced after 1987 use 3.8mm Gamebit screws, but earlier cartridges use common slotted screws. After removing the screws, lift the back off and remove the PCB. ===Famicom=== todo: another method https://www.youtube.com/watch?v=rHyE7VMM58Y Famicom carts don't use screws and require carefully squeezing one half of the shell so the plastic flexes and unclips itself. Gently apply pressure until you hear a pop or if the cartridge is bent a little, try pulling on one half of it to open it. If you don't hear a pop or see it bend after applying a generous amount of pressure untighten and check the cartridge positioning. If you are using a vice, double check that the line separating both halves of the cartridge is not covered by the clamps, this will ensure that only one half of the cartridge is tightened and that the plastic tabs can be correctly released. So you can get an idea of how much pressure should be applied, you may want to try it out with an inexpensive game. ===== For Reference: Identifying Game Versions ===== todo: add info on cart/box serials (and non-standard carts if relevant) {{:carts:nintendo:nes:identifying_game_versions.png?500}} SSS-GG-V CCC\\ S = System/Region (HVC = Famicom/World, NES = USA NES, PAL = Europe NES)\\ G = Game code (e.g. SM = Super Mario Bros.)\\ V = Version (starts at 0)\\ C = Chip (PRG = Program, CHR = Character i.e. Graphics) Most of the time, only one of the chips will have an incremented version number. There's not necessarily a direct link between the version number on the chips and the "cannonical" revision of the combined (PRG+CHR) ROM, but it can generally be worked out by looking at other information. And sometimes the chipped are bonded/globbed, so you can't see what is written on them (if anything). Some carts only have a PRG chip. ===== Gathering and Submitting Dump Info ===== {{wst>see_submission_page}}