現状で必要な部分の解釈は完了?

AVG32からnvnsのスクリプトに変換する上で,現状の絵も音楽も用意されてない場合に最低限必要な部分の解釈は済んだかなぁ…と.テキスト表示とか選択肢とか条件分岐とかね.
今のところSEEN170,SEEN180,SEEN190,SEEN200,SEEN700,SEEN701,SEEN702,SEEN703あたりはエラー出ずに解釈できたっぽい.まあまだ変換までは至ってないのですが.
で,気になってるのが下に貼ったみたいなやたらと長い制御部分…ここ解釈間違ってないよね….背景画像を切り替えるだけでなんでこんな大事になってるの?っていう気がしてるんですが…

0x0000061e IF (FLAG[0x0] <= 0x0) GOTO 0x0000077b

ここが真ならこの長い制御部分が全部飛ばされてるんだよなぁ.FLAG[0x0]ってデバッグモードだったりしないかな….だとすればここ全部省略可能なんだけど….
っていうか,途中まではAVG32の命令リストみたいなの見れば変換できてたんですが,詳細になると結局くろこげ(わっふる)のソースを読まざるを得なくなっている….はじめからくろこげのソースを使ってC++で書いていればよかったんじゃないかっていう気がしてきた….なんかすげー無駄なことをしている気分….
まあいいや,rubyの勉強ってことで.

0x000005b3 0x00000021 【*A】「ああ」
0x000005c9 改ページ
0x000005ca 0x00000022 包みを受け取り、その場を後にした。
0x000005f2 改ページ
0x000005f3 LET FLAG[0x0] <- 0x0
0x000005f6 テキスト表示と別ウィンドウで選択肢を選ぶ 0x0:BG003 ???
0x000005ff LET FLAG[0x8] <- 0x10
0x00000603 LET FLAG[0x9] <- 0x10
0x00000607 IF (FLAG_BIT[1] != FLAG_BIT[1998]) GOTO 0x0000061e
0x00000612 LET FLAG[0x0] <- 0x0
0x00000615 LET FLAG_BIT[1] <- FLAG_BIT[1998]
0x00000619 GOTO 0x0000061e
0x0000061e IF (FLAG[0x0] <= 0x0) GOTO 0x0000077b
0x00000628 IF (FLAG_BIT[2] != 0x0) GOTO 0x0000063b
0x00000632 LET FLAG[0x9] += 0x32
0x00000636 GOTO 0x0000063b
0x0000063b IF ((FLAG[0x2] != 0x0)&&(FLAG_BIT[1998] != 0x0)) GOTO 0x0000073a
0x0000064e LET FLAG[0xe] = FLAG[0x3]
0x00000651 IF (FLAG[0x4] == 0x0) GOTO 0x0000066d
0x0000065b テキスト表示と別ウィンドウで選択肢を選ぶ 0x1:DAYS_7 ???
0x00000665 LET FLAG[0xe] += 0x5
0x00000668 GOTO 0x0000067f
0x0000066d テキスト表示と別ウィンドウで選択肢を選ぶ 0x1:DAYS_8 ???
0x00000677 LET FLAG[0xe] += 0x1
0x0000067a GOTO 0x0000067f
0x0000067f LET FLAG[0xe] %= 0x7
0x00000682 IF ((FLAG[0x4] == 0x0)&&(FLAG[0x3] == 0x14)) GOTO 0x0000069d
0x00000695 LET FLAG[0xe] <- 0x7
0x00000698 GOTO 0x0000069d
0x0000069d LET FLAG[0xf] = FLAG[0xe]
0x000006a0 LET FLAG[0xe] %= 0x4
0x000006a3 LET FLAG[0xe] *= 0x3a
0x000006a7 LET FLAG[0xe] += 0x96
0x000006ab LET FLAG[0xf] /= 0x4
0x000006ae LET FLAG[0xf] *= 0x19
0x000006b2 LET FLAG[0xf] += 0xc4
0x000006b6 LET FLAG[0x10] = FLAG[0xe]
0x000006ba LET FLAG[0x10] += 0x39
0x000006bf LET FLAG[0x11] = FLAG[0xf]
0x000006c3 LET FLAG[0x11] += 0x18
0x000006c8 LET FLAG[0x5] = FLAG[0x3]
0x000006cb LET FLAG[0x5] -= 0x1
0x000006ce LET FLAG[0x6] = FLAG[0x5]
0x000006d1 LET FLAG[0x5] %= 0x8
0x000006d4 LET FLAG[0x5] *= 0x4b
0x000006d8 LET FLAG[0x6] /= 0x8
0x000006db LET FLAG[0x6] *= 0x31
0x000006df LET FLAG[0x12] = FLAG[0x5]
0x000006e3 LET FLAG[0x12] += 0x4a
0x000006e8 LET FLAG[0x13] = FLAG[0x6]
0x000006ec LET FLAG[0x13] += 0x30
0x000006f1 LET FLAG[0xa] = FLAG[0x8]
0x000006f4 LET FLAG[0xb] = FLAG[0x9]
0x000006f7 LET FLAG[0xa] += 0x25
0x000006fb LET FLAG[0xb] += 0x34
0x000006ff LET FLAG[0xc] = FLAG[0x8]
0x00000702 LET FLAG[0xd] = FLAG[0x9]
0x00000705 LET FLAG[0xc] += 0x59
0x00000709 LET FLAG[0xd] += 0x67
0x0000070d STR[0x0].PDTを表示 効果番号0x2 重ね枚数3 重ね0x3:STR[0x1].PDT src1(x,y)=(0,196) src2(x,y)=(149,349) dst1(x,y)=(FLAG[0x8],FLAG[0x9]) 重ね0x3:STR[0x1].PDT src1(x,y)=(FLAG[0x5],FLAG[0x6]) src2(x,y)=(FLAG[0x12],FLAG[0x13]) dst1(x,y)=(FLAG[0xa],FLAG[0xb]) 重ね0x3:STR[0x1].PDT src1(x,y)=(FLAG[0xe],FLAG[0xf]) src2(x,y)=(FLAG[0x10],FLAG[0x11]) dst1(x,y)=(FLAG[0xc],FLAG[0xd])
0x00000735 GOTO 0x00000745
0x0000073a STR[0x0].PDTを表示 効果番号0x2 重ね枚数0
0x00000740 GOTO 0x00000745
0x00000745 IF (FLAG_BIT[2] != 0x0) GOTO 0x00000769
0x0000074f 画像消去 dstpdt:2 R:0 G:0 B:0
0x00000755 画像のコピー srcpdt:1(0,50 - 639,429) -> dstpdt:2(0,50) flag=0
0x00000764 GOTO 0x00000773
0x00000769 全画面コピー srcpdt:1 -> dstpdt:2 flag=0
0x0000076e GOTO 0x00000773
0x00000773 画像セーブバッファ? FLAG[0] <- マクロ番号???
0x00000776 GOTO 0x0000078b
0x0000077b アニメーション停止
0x0000077d 画像セーブバッファ? FLAG[1] <- マクロ番号???
0x00000780 LET FLAG[0x1] -= FLAG[0x0]
0x00000783 画像セーブバッファ? マクロ番号[FLAG[0x1]]消去 ???
0x00000786 GOTO 0x0000078b
0x0000078b PDT[2].PDTを表示 効果番号0x30 重ね枚数0
0x00000791 0x00000023 【*A】「さて…」
0x000007a9 改ページ
0x000007aa 0x00000024 昼までの食料は確保した。