KAN NAITO Channelのメモ 2021

2021

16歳の時に作ったゲーム公開! - YouTube

  • カーレース(MSX 1983, アンプルソフト)

17歳の時に作ったゲーム公開!ドット絵担当はなんと有名なTさんだった! - YouTube

  • MIDNIGHT BROTHERS (MSX, 1986, ZAP, SONY)

18歳の時に作ったゲーム公開! - YouTube

ドラクエ4逃げ8バグについて、あの人を直撃! - YouTube

  • 山名学さんに電話。逃げた回数カウンタと改心フラグが同じバイトで、8回逃げると改心フラグが1に

ドラクエプログラマー謝罪合戦2021夏の陣 - YouTube

  • スーパードリンカー(MSX)

ドラクエ3のバージョン違いの謎に迫る! - YouTube

  • 全6回
  • FC DQ3 Aバージョン、Bバージョンの違い(6か所)の分析

(1) 2コンのAボタンを押していたらエンカウントをスキップする

Bバージョン
8211: LDA $15
8213: LSR A
8214: BCS $822E

(2) 戦闘で逃げたとき、次のレベルまでの経験値の再計算を追加 (バシルーラで仲間が飛ばれるとメモリ上のデータ位置が変わるので再計算が必要)

A46C: 00 BRK
A46D: AA TAX
A46E: 07 DB
A46F: 00 BRK
  • BRK命令による別バンクにあるサブルーチン呼び出しを追加。
  • BANK0のA33Eを呼ぶ

(3) 終了時の「りせっとぼたんをおさずにでんげんをきると…」と表示されるときの無限ループの部分。バックアップメモリのクローズ処理を変更

A version          B version
BBC7: LDA #$10     BBC7: LDA $06D5
BBC9: STA $06C8    BBCA: ORA #$10
BBCC: JMP $BBCC    BBCC: JSR $FFBD
                   BBCF: JMP $BBCF

(4) ランシールバグ対策

Bバージョン
CBA5: LDA $60BA
CBA8: AND $#01
CBAA: BNE $CBAF

(5) ランシールバグ対策

D0E6: LDA $60BA
D0E9: AND #$FC
D0EB: STA $60BA

(6) ウィンドウの色を白に固定する処理のタイミングの変更。バックアップRAMのOPEN処理が変わったことへの対応

version A          version B
EEAF: LDX #$FF     EEBE: LDX #$FF
EEB1: TXS          EEC0: TXS
EEB2: INX          EEC1: INX
EEB3: STX $6A58
EEB6: LDA #$0E     EEC2: LDA #$0E
:
EED6: STA $2006    EEE2: STA $2006
                   EEE5: STA $6A58
EED9: LDX #$10     EEE8: LDX #$10
  • 6A58Hに0を書くタイミングの変更が変わった

DQ3開発時の痕跡を辿る - YouTube

  • D778h~D782h にあるNOPは、主人公の移動できるかどうかを返す処理
  • NOPは製品化時にデバグコードをつぶしたため
  • もともとのコードは
D778: JSR $CB2C    // キースキャンを呼ぶ
D77B: LDA $14
D77D: AND #02
D77F: BEQ $D783
D781: CLC
D782: RTS

DQ3開発時の痕跡を辿る その2 大想定外祭の巻 - YouTube

  • Bバージョンの2コンAボタンで「敵にエンカウントしない」処理は、プレイヤーキャラの X座標もしくはY座標が 0 か 0xff のときもエンカウントしないようになっていた。
8211 LDA $15
8213 LSR A
8214 BCS $822E
8216 LDA $06E1
8219 BNE $822E
821B LDX $2A      // X座標
821D DEX
821E CPX #$FE
8220 BCS $822E
8222 LDY $2B     //  Y座標
8224 DEY
8225 CPY #$FE
8227 BCS $822E
8229 LDA $60C5
822C BPL $822F
822E RTS            //エンカウントせずリターン