Skip to content

Instantly share code, notes, and snippets.

@absindx
Last active February 18, 2023 22:18
Show Gist options
  • Save absindx/00bf75b52b37aedacc9acf1586defb7a to your computer and use it in GitHub Desktop.
Save absindx/00bf75b52b37aedacc9acf1586defb7a to your computer and use it in GitHub Desktop.
sd2snesimg 対応ファームウェア追加

sd2snesimg add define

使い方

  1. sd2snesimgのページをhtml形式で保存する
  2. 保存したhtmlファイルをテキストエディタで開く
  3. 追加したいファームウェアのバージョン定義をコピーする
  4. 22行目から始まる offsets バージョン定義リストの末尾にコピーしたバージョン定義を貼りつけて保存する
  5. htmlをブラウザで開き、ファームウェアをUploadして認識することを確認
  6. 以降は普通に操作してファームウェアを生成する

定義用アドレスの作り方

  1. offsets のキーになっているのはファームウェア内のチェックサム($FFDE-FFDF)
    SNESのROMデータなので、SNESカートリッジ情報内のチェックサム方式(ROM全体のバイト毎加算)となる
  2. 既存定義と並べて同じ値になってる箇所を頑張って探す

v1.11.0 より各種GFX関連のポインタが追加されました。
_GFXPTR_ に続く内容が対応します。

https://github.com/mrehkopf/sd2snes/blob/7ced9c153056d872cf0c361f9cf15d034c3ba581/snes/const.a65#L410-L419

小ネタ

  • 更新された menu.bin のSNESチェックサムは更新されていないためBADROM判定になる
0x0969 : {
"name" : "v1.11.0 beta 1",
"font" : 0x09E1,
"logo" : 0x2D0A,
"logospr" : 0x650A,
"hdma_math_src" : 0x1D46,
"hdma_bar_color_src" : 0x1D59,
"hdma_pal_src" : 0x1C05,
"oam_data_l" : 0x1D61,
"oam_data_h" : 0x1DC1,
"palette" : 0x19E1
},
0x0F3C : {
"name" : "v1.11.0",
"font" : 0x09E1,
"logo" : 0x2D24,
"logospr" : 0x6524,
"hdma_math_src" : 0x1D46,
"hdma_bar_color_src" : 0x1D59,
"hdma_pal_src" : 0x1C05,
"oam_data_l" : 0x1D61,
"oam_data_h" : 0x1DC1,
"palette" : 0x19E1
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment