もはや化石でも変換でもない - 5かいで化石変換

拡張化石変換を5かいプログラムで行います。

原理

化石を預けたフラグであるD722の最下位bitと化石番号のD68Fをダイレクトに書き換えます。 もはや化石を用意する必要も経験値を調整する必要もありません。 復活させる化石のIDはニックネームによって決定します。 ハードコードなのでプログラム的には汚いコードとなってしまいますが、 道具の個数を使用する場合コード0x63で上限となるためイーブイが出せません

コード

ボックス送りにして連続で受け取ることを想定し、コードは手持ちの6匹を使って書きます。 2匹目の名前の2文字目から4文字目を引いた値が復活する種族になります。 ダイレクトに入力できない文字も引き算でうまく作ってください。

; 1匹目 ヅタよギよ
11 8f d6; ld de, D68F
06 d6; ld b, d6
50; ld d, b

; 2匹目 ぼチよごデ
3e 90; ld a, 90 ここと
d6 2a; sub 2a ここの2行で復活する種族を制御 0x90 - 0x2a = 0x66
12; ld (de),a
50; ld d, b

; 3匹目 ヅがらギら
11 26 d7; ld de, D726
06 d7; ld b, d7
50; ld d, b

; 4匹目 ブブブブビ
1b; dec de
1b; dec de
1b; dec de
1b; dec de
1a; ld a, (de)
50; ld d, b

; 5匹目 ゾガゼゼゼ
0e 05; ld c, 05
0d; dec c
0d; dec c
0d; dec c
50; ld d, b

; 6匹目 ゼあデの
0d; dec c
b1; or c
12; ld (de),a
c9; ret
50; ld d,b

評価

実用上は1匹目が飛べるようにしておくとよいでしょう。 シオンで名前を変えて即グレンへ飛んで受け取って飛んでシオンで名前を変える、というループがやりやすくなります。

追記

CB xxのSET命令を使うとまるまる1匹分コード減らせるかもしれません、と書きましたが嘘です。まるまる2匹分コードを減らせます。


; 1匹目 ヅづらギら
11 32 d7; ld de, d732
06 d7; ld b, d7
50; ld d, b

; 2匹目 ひユビひぬ
cb a3; res 4,e (de: d732 → d722)
1a; ld a, (de)
cb c7; set 0,a
50; ld d, b

; 3匹目 デぼメよシ
12; ld (de),a
3e 90; ld a, 90 ここと
d6 2a; sub 2a ここを変えて復活する種族を変更
50; ld d, b

; 4匹目 ヅタよデの
11 8f d6; ld de, d68f
12; ld (de),a 
c9; ret
50; ld d, b

動画

詳細な解説はこちらに入れてあります。
戻る
connecting: rikako.2rnd.msmrrenda.net