MSX2版 雀ボーグすずめを再入手したので、1ChipMSXやBlueMSXでプレイしてみました。
その際の注意点と、対戦改造パッチをメモしておきます。
ゲーム紹介や攻略については
http://www.8-bits.info/gamelist/PC88/info/info_00HbqmQGnJiZ7pfE.php
や、
http://www013.upp.so-net.ne.jp/ymurakami/guide/ponytail.htm#SUZUME
消えてたのでwebarchive→
を参考にしてください。
■はじめに
・1ドライブでCTRLを押しながら起動する必要がある
・FDD書き込み禁止だとフリーズする
・プロテクトは特にかかっていない
ディスクイメージ化すれば仮想FDやBlueMSXでプレイできました。
1ChipMSXについている、FDSAVEでイメージ化が可能です。
手元のはディスク2の最終セクタが読み出すたびに違う値になりますが
これは経年劣化かな?(データ的には空の領域なので問題はありませんでした)
原画についてはポッキー麻雀側のぴろしきさんについては書いてますが、
すずめパートの原画家さんの名前は公表されてない気配?
■ トレーナーの使い方(チートの作り方)
いかさま麻雀に対する攻略は、
プログラムの改造だと決めているおじさんなので、
早速チートを作ってみようと思います。
(麻雀しらないし)
BlueMSXにはデバッガとトレーナーがついています。
ツールメニューから起動できます。
■ トレーナー起動画面
■ 自分の点数でSeachしたアドレスを、実際に加算しているコードをディスアセンブラで探す。
■ 相手の点数でSeachしたアドレスを、実際に加算しているコードをディスアセンブラで探す。
結果的に調べた結果。
--work
#9323,2byte : 自分の点数
#9325,2byte : 相手の点数
#9327,1byte : 勝敗(1=自分/2=相手)
#9581,1byte : 自分の勝ち数 1:なし、2~3:勝ち数1~3
#9582,1byte : 相手の勝ち数 1:なし、2~3:勝ち数1~3
となりました。
■トレーナーで試す。
トレーナーは指定アドレスに常に値を書き込む機能です。
アドレス0x9327 : 勝敗に1=自分を書き込んでみると、
相手がアガったときに自分が勝ったことになりました。
とりあえず、ここが勝敗決定結果で間違いないようです。
ただし、
常にそのアドレスが、同じ用途とは限りません。
じっさい、これは対戦画面でのみ有効で、
イベントやマップでは別の用途に使われいているため、
対戦画面以外でチートを有効にすると結構バグります。
そこで、
アドレス0x9327に2(=相手)を書き込んでいるコードを書き換えます。
その場合、メモリ上を書き換えただけでは、プログラムのロードで元に戻りますので、
ディスクイメージ側を書き換える必要があります。
とりあえず、メモリ上での該当プログラムコードを探します。
BlueMSXには逆アセンブラ+ファイル出力がありますので、それで書き出します。
■0x9327(勝敗結果)をみて、自分か敵の点数を加算している箇所
■0x9327に2(=相手)をセットしている箇所
ファイルイメージをバイナリ検索するために、ニーモニックの隣にオペコード値をメモしてあります。
ld a,#02を ld a,#01にすれば、敵が上がった時も自分が勝ったことになります。
#D192,1:2→1 ...常に勝ち(実行時)
で、実際にメモリ上で書き換えてこの改造であっていることを確認しました。
■ ディスクパッチ
(quickbeeというバイナリエディタ向けのパッチファイル)
(アドレス、元の値、書き換え後の値)
*== TARGET_FILE ================
FILENAME JAMBOG-1.DSK
* FileSize: 737280 bytes
* LastMod.: 2019/12/10 10:34:09
*===============================
0001EF43: 02 01
00020D92: 02 01
00025D92: 02 01
実際に書き換えたディスクイメージで起動してみると、常に自分が勝ったことになってしました。
この改造をしても
チョンボした場合(アガれないのにSHIFT+F5てツモするなど)では
自分が負けるので、ちゃんとすずめを脱がすこともできます。
点数の関係で途中の脱ぎシーンをすっとばして勝つことがありますが、
エンディング後のギャラリーですべてのCGが見られますので、
気にせず進めてください。
点数を固定すれば、必ず1枚ずつ脱ぐようにできるとは思いますが、
めんどくさいので各自でやってみてください。