PlayLoud!!

Since1997

雷電解析のつづき

眠くて倒れてしまったので、入力関係でわかったことのメモだけ。
MAMEのドライバソース、コメント欄から引用。

   19      Coin inputs are handled by the sound CPU, so they don't work with sound
   20      disabled. Just put the game in Free Play mode.

雷電の基板はサウンドCPUであるZ80側でコインシュートの入力を受け取っている様子。
ちょっと実験。
MAMEのデバッガでZ80のスタートアドレスをのぞきます。

先頭部分を76Hに書き換えましょう。

これでZ80側のプログラムのスタートがHALT命令になります。
Z80の命令は結構覚えてますねw

Z80がHALT命令で停止している状態で雷電を起動します。
ゲームは動作するのですが、Z80が止まっているので音もしませんし、上のコメント文に書かれているとおり、クレジットが入りません。

なるほどですねー。
試しにクレジット数を格納してある0404Hに直接値を書きこんでみますね。

おー、その場でクレジット投入画面に移行しました。

これはメインCPU側で0404Hを見張っていて、クレジットが入ったらこの画面に移行するプログラムってことなんでしょうか。
ゲームは普通に始まります。もちろん音はしません。

Z80を止めておいても、コインシュート以外の入力(ゲームスタートなども含めて)は問題なく動作するので、それについてはメインCPUやサブCPU(もうひとつ搭載されているV30)で読み取っていることがわかります。
それじゃあ、次はZ80のどこでコインシュート入力を受け取っているのか探してみます。
 
……といった辺りで眠くて倒れてましたw
つづきはまた。
 
ちなみに、MAMEのドライバソースは興味深いコメントが書いてあったりして、読んでいるだけでも面白いです。

   10      The alternate hardware version is probably earlier than the main set.
   11      It looks closer to Dynamite Duke (1989 game), while the main set looks
   12      closer to the newer 68000 games in terms of graphics registers used, etc.
   13
   14      As well as different graphics registers the alternate set has a
   15      different memory map, and different fix char layer memory layout!

うーん、雷電がよく売れたので先に出ていたダイナマイトデュークの基板が改造されて雷電になったりしてたのでしょうか……?
そんな推測もできて楽しいです。