2016/11/13 更新


デタラメなデータを書き込んで中古市場に流さぬようご注意ください。

ニンテンドウパワーのSFメモリカセットを書き換えるプログラムです
Superufo pro 8で動きます。
任天堂純正のフラッシュカートリッジなので書き込めばほぼ全てのSFCゲームが動作可能と思われます。
吸い出したフラッシュROMイメージと保存した起動情報を書き込めばSFメモリカセットのクローンも作れます。
NP FLASH SFメモリカセット書き換えプログラム

基本的な使い方はプログラム本体の後ろに書き込むデータ(サイズ8Mbit 1Mバイト)
を連結し、それをSFメモリカセットを差し込んだSuperufo pro 8に読み込ませて書き込み処理を行う
ということになります。
書き込み前のフラッシュメモリの初期化処理、起動情報(ブートセクタ)の書き換え処理もメニューから行えます。

8Mbit 1Mバイト(全体の4分の1)づつ書き込み処理を行う都合でプログラム本体は
npflashC.smc、npflashD.smc、npflashE.smc、npflashF.smc(下位からC、D、E、F)
と4つに分かれています。

SFメモリカセットには2つのフラッシュChipが載っています
それぞれがサイズ16Mbit(2Mバイト)合計32Mbit(4Mバイト)ニンテンドウパワー8ブロックです。
それらをマップされるアドレス下位からC0チップ、E0チップと命名します。
それぞれのChipには隠しセクタ256バイトがあります
C0チップの隠しセクタにはゲームの起動情報(ブートセクタ)E0チップの隠しセクタは使いません。
npflashC.smcプログラム本体のオフセットFF00hに起動情報を書き込んでおいて
それを上書き処理で起動情報を書き込みできます。
npflashE.smcプログラム本体のオフセット17F00hでE0チップの隠しセクタを上書き処理もできます。

フラッシュChipを初期化してからでないと正常に書き込み出来ません
初期化しないで書き込むとバイナリヒカクでエラーが出ます。
npflashC.smcでC0チップの初期化、npflashE.smcでE0チップの初期化が行なえます。

書き込んだデータのCRC16算出機能もあります
HashSumで連結前の書き込みデータのCRC16-IBM-R:4算出して控えておけば良いです。

起動情報(隠しセクタ、ブートセクタ)に関する詳細はここに書かれています
参照する部分は"Hidden Mapping Info Example"、"Nintendo Power I/O Map"です
2404hが1バイト目、2405h 2406hが3 5バイト目、2407hが7バイト目の情報に対応します
そういう情報が1つ目のメニューかゲーム2つ目のゲーム3つ目…と、8バイトづつ並んでいるということです。

メニューを入れず1つだけゲームを書き込んで1つ目の起動情報を書き換えるのが一番簡単ですが
ニンテンドウパワーメニューを書き換えて複数ゲームin1にしたい場合はここ
"SNES Cart Nintendo Power - Directory"を参照してください。結構手間だと思います。

メニューの文字列Bitmapを生成する簡易プログラムを置いておきます
Satellaview BS-XのROMからフォントを抜き出してSJIS文字列をメニューのBitmapに変換します。






























おまけ

BS-X FLASH サテラビューメモリーパック書き換えプログラム

メモリーパックを差し込んだSatellaview BS-XをSuperufo pro 8に差し込んで使用してください。
基本的な使い方はNP FLASHと同じくプログラム本体の後ろに書き込むデータ(サイズ8Mbit 1Mバイト)
を連結し、それをSuperufo pro 8に読み込ませて書き込み処理を行う
ということになります。


[戻る]