NA8CのROMのSUMについて


NA8CのROMをいじる上で避けて通れないのがチェックSUMの問題です。ROMの中身を1バイト書き換えただけでフェイルセイフに入ってしまう為ROMの書換えが出来ないのです。CDRSのS田さんの協力によってこの問題の解決策が発見されました。NA8CのCPUは奇数列の総計と隅数列の総計を計算してチェックしているらしいのです。

仮にROMの中が以下のようになっているとします。


---- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0001 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0002 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0003 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0004 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0005 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0007 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0008 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0009 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
000B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


この場合赤い列が奇数列、白い列が隅数列です。赤い部分を1増やしたなら赤い部分で1減らしてやる必要があります。ROMの中には意味の無い「FF」とか「3F」といった数字で埋め尽くされている領域が有りますのでそこを利用してSUMを合わせてやれば良いのです。点火時期や燃料のマップをいじると数百くらいSUMが変化してしまいますので無意味な領域でそれを補正してやる訳ですがこれは今の所チクチクと手作業で書き込むしかないです。一応、EXCEL97のマクロを使ってマップを編集すると連動してSUMの計算を自動的にやってくれるようなワークシートを作成しましたが最終的にROMにSUM修正分を書き込むのはBINエディッタを使っての手作業になります。B6の場合はすべてEXCEL上の編集作業だけでROMが作れますからそれに慣れた私にとってはちょっとめんどくさいですね(^^;。


某チューンドショップのNA8C用チューンドROMの中身を見てみましたがマップ部分だけでSUMが合うようにしていじってありました。進角量はプラスマイナス1度前後、A/Fはプラスマイナス1前後になってました。これくらいのいじり方だとノーマルROMとチューンドROMで試乗してみても多分違いが解からんでしょうね(笑)。またしてもショップチューンが信用できない事が暴かれました。

注: 現在ではチェックサムそのものを停止させるようにROMを書き換えています


ROMチューンに戻る

トップページに戻る