RPS13のエンジンはSR20DET(最近SR20DEモデルも出たけど)。一応カタログには205PSとなっています。でもブーストアップしてもうちょっと速くしたい、フィーリングを良くしたいと考えROMチューンをやることにしました。
しかし、エアクリ変えてブーストアップするだけでは、高ブーストで燃料が薄くなってエンジンが危険ということで、ブーストアップに合わせて燃料も増やしてあげないといけません。そこでROMを書き換えるという方法があるということで勉強して自分でやってみることにしました。
ショップからコンピュータを発売していますが、これは高くて買う気になりませんでした。
ROMチューンを自分でやるにもROMを書き換えるわけですからそれなりの設備が必要です。その投資がありますから簡単には.....というところです。
で、必要なものと言えば.....、
秋月電子のキットを購入し、せっせと工作して作りました。キットは9,000円でした。このキットはDOS/VでもPC98でも使えるものです。キットでなければ3万くらいから数10万でいろいろあります。
ROMの消去は殺菌灯で出来ます。ROMイレーサは、ハンディライトと4Wの殺菌灯で代用できます。殺菌灯と似た物で殺虫灯がありますので注意が必要です。
自宅のDOS/V機でROMライタを制御してROMを焼きます。このROMライタの場合、DOS/V機でもPC-98でもOKです。ROMライタキットに付いてくるソフトで書き込みが出来ます。付属ソフトはMS-DOS5.0対応とか書いてありますが、windows95のDOS窓でも動かすことが出来ます(当たり前か)。操作しやすいソフトです。
これがコンピュータです。助手席の足元の左にあります。ネジ2本で止まっているので、まずこれを外します。手前に見えている青いでっかいコネクタも外して、コンピュータを取り出します。
コンピュータのふたを外すとこんな感じになっています。これは既に追加基盤が付いています。右下の基盤がそれです。追加基盤上に2個同じチップがありますがこれがROMです。この追加基盤はROMを2個載せるタイプです。
追加基盤上のROMをアクセスさせるための細工ですが、本体基盤ウラの'CJ1'と書かれたところに0Ωのチップ抵抗がありますので、その抵抗を外して'CJ2'というところに付け替えます。
ジャンパー線を付け替えるということですね。
これでハード的にはOK。追加基盤上のROMは取り外し可能なので、このROMを書き換えて交換していくということです。
これがコンピュータの青いでっかいコネクタです。ROMを載せ換えたときにはこのコネクタをしっかりつけないと調子がわるくなることがありますので注意です。
私の場合こんなやりかたです。
まずROM(27C256)のデータをHEXでパソコンに転送します。Intel HEXフォーマットなのでここから空燃比補正マップと点火時期マップを抜き出します。この抜き出したマップが16×16の良く見る?マップになります。縦軸が回転数、横軸が負荷というイメージのしやすい形にしてこのマップの値を編集していきます。Intel HEXフォーマットのままでは編集しづらいです。
ROMライタ付属のソフトはバイナリエディタが付いていますのでこちらでも16×16のマップイメージで編集することができますが、いざこれで編集しようとするとちと困ったことになります。空燃比補正マップと点火時期マップは(ガソリンの)レギュラ用とハイオク用で2つずつありますから、編集が大変。
そこで空燃比補正マップと点火時期マップを別データで持っておき、そのデータを編集してIntel HEXにするときにハイオク、レギュラのマップを両方変更するという方法にしました。
編集後の空燃比補正マップと点火時期マップをIntel HEXに変更するのは、C言語で簡単なプログラムを作りました。コマンド一発でROMに焼けるデータができるのでこちらの方が簡単にできます。
さて肝心のROMデータの変更です。以下のデータを変更することでセッティングしていきます。
私が変更しているデータは、空燃比補正マップ、点火時期マップ、TP格子(エアフロースケールマップ)、スピードリミッタです。基本的なことしかやってません。
左上を原点に右に行くほど負荷が大きい、下に行くほどエンジン回転数が高いとなっています。値が大きいほど、燃料が多いということです。
変更した燃料マップは、中負荷以上、中回転以上の範囲で燃料増量しています。
| ノーマル | 0100 | C2 C2 C2 C2 C2 C2 C2 C2 04 04 04 04 04 04 04 04 |
| 0110 | C0 C2 C2 C2 C2 C2 C2 C2 04 04 04 04 04 04 06 06 | |
| 0120 | C0 C2 C3 C3 C3 C3 C2 C2 C2 0A 0C 0D 0D 0D 0D 0F | |
| 0130 | C1 C3 C3 C3 C3 C3 C4 C4 C4 0C 10 11 11 11 12 12 | |
| 0140 | C2 C3 C3 C3 C3 C5 C5 C5 C6 11 16 18 18 18 19 19 | |
| 0150 | C2 C3 C2 C2 C3 C4 C4 C5 C6 12 14 19 22 22 23 23 | |
| 0160 | C2 C2 C2 C2 C3 C4 C4 C5 C6 12 15 22 2E 2E 2E 2F | |
| 0170 | C2 C2 C3 C3 C4 C5 C5 C6 C7 15 1F 2B 35 36 37 37 | |
| 0180 | C2 C2 C3 C3 C4 C5 05 13 15 1D 22 2E 3C 3C 3C 3E | |
| 0190 | C2 C2 C2 C2 C4 C5 0B 16 1B 22 27 37 43 46 47 47 | |
| 01A0 | C2 C2 C3 C3 C2 C3 15 1D 26 2C 34 3C 46 4B 4B 4B | |
| 01B0 | C4 C4 C4 06 12 15 20 26 2E 2F 3B 48 4E 4F 50 50 | |
| 01C0 | C4 C4 03 08 14 1A 26 2B 30 38 40 44 51 51 52 52 | |
| 01D0 | 03 03 07 0D 1A 26 2B 30 38 3F 42 4A 51 51 52 52 | |
| 01E0 | 03 03 0A 1A 27 2B 2E 33 3A 3F 48 50 51 51 52 52 | |
| 01F0 | 03 03 0A 1A 27 2B 2E 33 3A 41 48 50 51 51 52 52 |


左上を原点に右に行くほど負荷が大きい、下に行くほどエンジン回転数が高いとなっています。値が大きいほど点火時期が早いということです。
変更した点火時期マップは、全体的に進角させています。
| ノーマル | 0800 | 14 14 14 14 14 14 12 10 8E 8E 8E 8E 8E 8E 8E 8E |
| 0810 | 1A 1A 18 18 18 18 14 10 8E 8E 8E 8E 8E 8E 8E 8E | |
| 0820 | 24 24 1C 1C 1C 1A 1A 18 16 92 90 90 90 90 90 90 | |
| 0830 | 24 24 20 1E 1C 1C 1C 1A 1A 98 8E 8E 8E 8E 8E 8E | |
| 0840 | 24 24 20 1E 1C 1C 1A 1A 18 98 90 90 90 90 90 90 | |
| 0850 | 20 20 1C 1C 1C 1A 1A 18 18 96 96 8C 8C 8B 8B 8B | |
| 0860 | 20 1E 1E 1C 1A 18 18 18 16 94 94 8C 8C 8B 8B 8A | |
| 0870 | 20 1E 1E 1C 1A 18 16 14 14 14 11 0E 08 08 08 07 | |
| 0880 | 20 1E 1E 1C 1A 18 16 14 14 12 12 0E 08 08 08 07 | |
| 0890 | 20 1E 1E 1C 1A 18 18 18 16 16 12 0F 0D 0D 0B 0A | |
| 08A0 | 20 1E 1E 1C 1A 18 16 16 16 12 12 10 0D 0D 0B 0A | |
| 08B0 | 20 1E 1E 1E 1C 18 18 18 18 16 14 13 11 11 0F 0E | |
| 08C0 | 20 1F 1F 1E 1C 1C 1A 18 18 18 14 13 11 11 0F 0E | |
| 08D0 | 20 20 20 20 20 1E 1C 1A 1A 1A 16 15 13 13 11 10 | |
| 08E0 | 20 20 20 20 20 1E 1C 1A 1A 1A 18 15 15 14 13 12 | |
| 08F0 | 20 20 20 20 20 1E 1C 1A 1A 1A 18 15 15 15 15 14 |


| ノーマル | 00F0 | 0A 10 14 18 1C 20 24 28 2C 30 38 40 48 50 5C 68 |
| 0490 | 0A 10 14 18 1C 20 24 28 2C 30 38 40 48 50 5C 68 | |
| 変更後 | 00F0 | 0A 10 14 18 1C 20 24 28 2C 30 38 40 48 50 5C 90 |
| 0490 | 0A 10 14 18 1C 20 24 28 2C 30 38 40 48 50 5C 90 |

| ノーマル | 0031 | ? |
|---|---|---|
| 05C9 | ? | |
| 変更後 | 0031 | B0 |
| 05C9 | B0 |
| ノーマル | 000A | 53 |
| 000B | E3 |
| ノーマル | 02F0 | 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 |
| 03A0 | 58 58 58 5C 61 61 61 61 68 68 6C 6C 6C 6C 6C 68 |
| ノーマル | 005C | 02 60 | (&h0260 -> 600 , 600*12.5=7600rpm) |
| 05C0 | 02 58 | (&h0258 -> 600 , 600*12.5=7500rpm) |
| ノーマル | 0610 | FF F1 C8 AE A0 95 8D 86 80 7A 76 71 6D 69 65 61 |
| 0620 | 5D 5A 56 52 4E 4A 46 42 3D 39 33 2D 26 1B 08 00 |
| 0012 | 全データのバイト単位での合計の最下位バイト |
| 0013 | 全データのバイト単位でのエクスクルーシブオアをとった下位バイト |
ノウハウが溜まったら、またレポートしたいと思います。
おしまい。