Reflashing NP carts - dkidd928/cartreader GitHub Wiki
To read/write Nintendo Power SF Memory cartridges you need the Adafruit Clock Generator installed and have the configuration switches set like so:
Dumping single games
After selecting the "NPower SF Memory" option found in the "Super Nintendo" sub-menu open the "Game Menu" and select the game you want to save to the SD card. Sometimes you might have to power-cycle the cart reader before it works. Also on occasion the NP cartridge gets so confused that you need to boot it up on a real SNES first before it will work in the cart reader again. You can also read/write the save game in this menu.
Reflashing the whole cartridge
To flash something new you need to go to the "Flash Menu" under "NPower SF Memory". Here you should make a backup of your existing mapping.map and flash.bin files and then write new bin/map files to the cart. You can get the bin/map files either from another NP cart or you can create those files with the SF Memory Binary Maker: https://github.com/moldov/SF-Memory-Binary-Maker
SF Memory Binary Maker needs the first 512KB of your original 4MB NP flash dump in a file named menu.sfc that needs to be copied next its .exe. In SF Memory Binary Maker you got two options: either create a standalone map file from a single rom up to 4MB or you can add multiple roms and create a combined .bin and .map file. The sum of all the roms together can't exceed 3.5MB however since you still need 512KB for the menu. Roms need to be unheadered and have a valid checksum.
If you don't want to use the Binary Maker you can also just flash the hi/lorom map from here and then just directly flash one single rom (up to 4MB).
There is a bug with hirom games where the Binary Maker can't find the header data. You can circumvent this by adding a message box to manually select the initial value of Data.Position in Processing.cs and recompiling the exe.
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SF_Memory
{
public static class Processing
{
public static ROM ParseROM(MemoryStream Data, String File = null)
{
ROM Output = new ROM();
Output.ROMFileSize = Data.Length;
DialogResult dialogResult = MessageBox.Show("Press yes for hiROM and no for loROM", "Select ROM type", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
Data.Position = 0xFFD5;
}
else if (dialogResult == DialogResult.No)
{
Data.Position = 0x7FD5;
}
Output.CartridgeType = (byte)Data.ReadByte();
In any case you should end up with a 512B map and 4MB bin file, rename both so their filenames are very short and without any special characters and copy them to the SD card. Then write the new flash and mapping files.
In case you can't unlock your NP cart or do not have the clock generator installed you can try this stand-alone NP sketch for troubleshooting. You can also install a 470uF capacitor to improve the Cart Readers supply power and calibrate the Clock Generator like shown here.