資料室 / アーケード版LRで自作面を作る方法

アーケード仕様は業務用なので、他のゲーム機のLRみたいに自作面ができません。よって、ROMイメージのデータを直接書き換える作業が必要なのです。まずはその資料を載せておきます。具体的な書き換え方法は今のところ更新する予定はありません。(汗

ファイルは解凍後、バイナリエディタで開いて確認・書き換えが出来ます。マップを変更するレベルなら、管理人のようにプログラムの知識は必要としませんが、その下準備や座標チェック・書き換え〜テストプレイなど、完成までの道のりは、ハッキリ言って長いです・・・・・。

  1. 各ラウンドのアドレス
  2. マップ上のキャラクター指定要素一覧
  3. 参考マップ(LR2-R01)
  4. 初期タイムの変更(LR 4)

各ラウンドのアドレス

  • file : ステージデータの書いてあるファイル名。
  • address : ファイル内の各ステージデータを書いてある場所。ラウンド順に最終面まで指定している。
  • addressの値と実際の場所の値が全て異なるので、その変換方法はその下を参照。
  • ちなみに、ファイル内に空き(00 00 00 00 ・・・・・)があれば、その分だけマップデータのサイズがオリジナルよりオーバーしても動かせるが、ファイル全体のサイズは変更不可。

Lode Runner 1 (ldrun.zip)

file : ldrun \ LR-A-4D
address : 00001402 ~ 00001430 = Round 01 ~ 24

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
1400 | -- -- 32 34 01 35 72 35 4B 3C 62 36 CE 36 45 37
1410 | 89 34 CA 3C A8 3B 04 3E E2 35 59 3D 8C 3F 9B 39
1420 | A9 3E F9 38 CC 3A 1E 3F 2F 3A C5 37 71 38 7D 40
1430 | F7 3F -- -- -- -- -- -- -- -- -- -- -- -- -- --

最初の1面の指定番地は 32 34(003234)となっているが、
実際のラウンドの番地は14 32(001432)となっており、
なぜか右側の32を-20(=14)としてから左右を交換した番地に変っている。
その法則で2面の指定アドレスは 01 35、3面は 72 35・・・と続いている。


Lode Runner 2 (ldrun2.zip)

file : ldrun2 \ LR2-A-4A , LR2-H-1C , LR2-H-1D
address : 00001454 ~ 0000148F = Round 01 ~ 30(LR2-A-4A 内)

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
1450 | -- -- -- -- 31 89 5D 8A D9 92 ED 8A D9 8F 6C 8D
1460 | 2D 95 08 88 4A 8C AA 89 89 90 E6 92 08 94 C2 89
1470 | 80 88 79 8A 64 8F 27 92 90 8B 80 8D 2B 93 4F 93
1480 | 1F 8E 0E 8B CF 8E 0B 92 E7 8B 5F 8F 59 95 6A 90

最初の1面の指定番地は 31 89(003189)となっているが、
実際のラウンドの番地は09 31(000931)となっており、
なぜか右側の89を-80(=09)として左右を交換した番地に変っている。


Lode Runner 3 (ldrun3jp.zip , ldrun3.zip)

file : ldrun3jp(ldrun3) \ LR3-A-4D
address : 00000D05 ~ 00000D40 = Round 01 ~ 30

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
0D00 | -- -- -- -- -- 83 6D 0C 68 48 71 CD 70 AE 61 50
0D10 | 70 82 6F C6 5E 54 69 C7 65 FE 6E AD 68 00 6B AC
0D20 | 63 00 60 F3 69 6E 62 5E 64 36 63 04 5E 1D 65 59
0D30 | 72 2E 67 D1 6B 86 66 DB 60 1F 73 4D 5F BE 71 F0
0D40 | 6D -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

最初の1面の指定番地は 83 6D(00836D)となっているが、
実際のラウンドの番地は2D 83(002D83)となっており、
なぜか右側の6Dに-40(=2D)として左右を交換した番地に変っている。


Lode Runner 4 (ldrun4.zip)

file : ldrun4 \ LR4-V-4K
address : 1P Player 00000052 ~ 0000008D = Round 01 ~ 30

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
0050 | -- -- 38 92 E5 8D 72 8E D3 93 D9 8B 7E 94 8F 81
0060 | A4 87 03 95 CD 86 D0 83 94 89 04 8A 72 84 16 85
0070 | AF 91 75 90 B4 80 1A 91 20 8F AC 8F 77 95 C3 8A
0080 | 42 82 92 8C 23 83 E8 85 6A 88 4F 8D B5 -- -- --

address : 2P Pair 00000090 ~ 000000B3 = Round 01 ~ 18

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
0090 | 1D 9F 64 98 96 9F 2D 9B 2D 96 80 9A B9 99 92 A1
00A0 | B4 97 18 A0 5C 9E E2 96 D1 A0 F0 98 D8 9B 9D 9C
00B0 | 96 9D 5D A2 -- -- -- -- -- -- -- -- -- -- -- --

シングルゲームの1面の指定番地は38 92(003892)となっているが、
実際のラウンドの番地は12 38(001238)。
なぜか右側の92を-80(=12)として左右を交換した番地に変っている。

マップ上のキャラクター指定要素一覧

マップ上のキャラクターを配置する為に、それぞれを意味する要素が割り当てられてます。
データを書く際、この要素を先頭に置き、続いて配置させる座標を書く、この繰り返しで一つの面データが完成されます。

要素 名称 補足 LR1 LR2 LR3 LR4
00 開始位置 01にすると2本以上の脱出ハシゴが利用できる。
01 レンガ 高さ1/2指定可能。
02 コンクリート 高さ1/2指定可能。
03 ハシゴ 高さ1/2指定可能。
04 バー 高さ1/2指定可能。
05 トラップ 高さ1/2指定可能。 ?
06 脱出ハシゴ 高さ1/2指定可能。他のキャラに重ねて配置可。
07 金塊 32個まで配置可能。
08 5匹まで配置出来る。
09 コマンダー 必ず配置させる。
0A 隠れキャラ 3ヶ所まで配置可。必ずレンガに重ねて置く。なくても良い。
0B 光る金塊 3ヶ所まで配置可。なくても良い。 ×
0C 隠れてる敵 LR2-19面のように、通常の敵を最初からレンガ内に隠しておく事が出来る。(OA隠れキャラではない) × × ×
0D シールドエリア 敵を嵌ると点が付く場所に指定。
0E Bound to Die エリア コマンダーが嵌ると1ミス。
0F シールド&Bound to Die エリア 0Dと0Eを合わせた要素。
12 可動ブロック 10個まで配置できる。ハシゴやバーに重ねての配置可。 × × ×
15 乗ると現れるブロック 真下に金塊を置くとバグが起こるので注意。 × × ×
18 2P(ペアゲーム)の敵 5匹まで配置出来る。シングルゲームにも登場させる事が出来る。 × × ×
19 2Pのコマンダー ペアゲームでは必ず配置。 × × ×
1E 他のブロックの敵を配置 LR2の25面・LR3の13面等。先頭に敵キャラの08を指定後、他ブロックの番号(01~10)→座標を指定する。
08 1E 01 A5 D1 1E 02 B7 CC・・・etc
1F 終了 これを入れないと永遠に読み込ませる事に。

○×についてはちょっと自信がありません。
0DのLR1は、全ての敵を閉じ込めた時点でボーナスが加算される。

参考マップ

適当なグラフィックソフトやエクセルなどで描き、MAME画像から切り貼りしたキャラクターを置いてステージを作り、その座標(16進数)を書き出した後にデータに落とすと言う作業を経てテストプレイになります。

loderunner2


Lode Rnner2 バンゲリング帝国の逆襲 ROUND 01
file : LR2-H-1C

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
0930 | 80 00 01 A5 C0 E4 D2 F6 AA C1 F0 AF C1 F6 B4 C1
0940 | E2 C8 EA D1 F6 B6 C2 E4 CA EC B8 C4 E7 CC EE D4
0950 | F7 BD C0 F7 02 9F C0 F7 04 A3 C5 F0 B2 CB EF 03
0960 | A5 8B D1 AA 8E C4 CB AF 9C C0 AF 93 D3 B4 97 C7
0970 | B4 9C D0 B8 9C D3 85 97 D7 07 A3 D4 A8 CF B4 CB
0980 | B6 D3 BB C2 D6 0B A3 C2 AD C6 B4 C4 08 A2 D6 AC
0990 | C9 A9 C1 0A AA C1 B6 C4 BD D7 09 BA C9 06 A1 84
09A0 | D1 1F 80 80 80 80 80 80 80 80 00 01 A5 C2 E7 CA

開始番地:000931 =00(01でも可。次に配置するキャラを指定)
終了番地:0009A1 =1F
赤字がキャラクター要素。その後に配置座標を指定する。

座標の読み込みは左上(80 C0)が開始点で、そこから右端(A0 D7)へ進んで左端へ戻る、の繰り返しです。

実際にマップを書いてみる

Excel LR-Map

Office2003のExcelで作った空マップを作りました。セルを着色すれば正確な座標が一応読めると思います。ダウンロードしてご使用下さい。
Excel Round Map.zip

初期タイムの変更(LR 4)

プログラムファイル lr4-a-4d.c をバイナリエディタで開き、アドレス1DBB以降に注目。
ステージの昇順に設定値が書かれています。10や12と書かれていますが、それぞれ10,000と12,000を表しています。(** × 1,000)
ここを書き換えることにより、任意のステージのタイムが変更でき、単位は1,000で最大99、つまり99,000まで増やせます。


file : lr4-a-4d.c

---- | +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
---- | -----------------------------------------------
1DB0 | 0E 00 0C D6 06 30 FB 0D C6 C6 C9 10 10 10 12 12
1DC0 | 12 12 12 12 14 14 14 14 14 14 16 16 16 16 16 16
1DD0 | 18 18 18 18 18 18 20 20 20 08 08 08 10 10 10 10
1DE0 | 10 10 12 12 12 12 12 12 12 12 12 3A 58 E8 A7 28

1DBB - 1DD8 : 1p Player(全30面)の設定タイム。
1DD9 - 1DEA : 2p Pair(全18面)の設定タイム。

そもそも、このゲームは大昔とは言え著作権が発生していると思われます。そのデータを改ざんする行為については、各自のモラルにおまかせするとともに、書き換えによるROMファイルの破損等については、自己責任でお願いします。