何かデバッグが上手くいかないと思って元データを調べたら、ドラクエ 3 の店屋構造体のレイアウトが 1 バイト余計 だった。つまり、間違いを含んでいたのは自作ツールではなく『ドラクエ命』の記述のほうだった。これは修正するのが厄介だ。

あと hexdump の練習をしたほうがいい。今からでも遅くない。

2:25 消灯。就寝。

7:05 起床。納豆、梅粥、バナナ。歯を磨く。出勤。

7:45 現場。久々の不燃ゴミの日。それよりも通常ゴミの処理のほうが面倒だ。プラスチックを洗うのがきつい季節になりつつある。

残りの階の掃除機回し。外はほうき。

10:10 撤収。

10:20 ビッグエー墨田京島店。749 円。

  • ざるそば
  • 和風そば (150)
  • オニオンとレタスのミックスサラダ
  • 大根と水菜のミックスサラダ
  • バナナ (3)
  • 絹豆腐 (3)
  • 梅粥

曳舟の部屋。PC を開く。

ドラクエ 3 の店屋ダンプデータを修正する。CSV の最後の列が要らない。Stack Exchange にいいのがあった:

text processing - Is there a command line spell to drop a column in a CSV-file?

11:15 ローカルでの修正を完了。他にもこういうのがありそうで怖い。ダンプツールの対応と並行して調べるのが良い。

11:30 足立区やよい図書館逃避行のビデオを Twitter に予約投稿。昼休み明け一発。

ダンプツールの説明文を考える。文章になるとツールの使い勝手の悪さをごまかせない。 複雑なテキスト入力が必要なのがおかしいのか。

12:00 豆腐、カットサラダ、ベビーチーズ二かけら、ざるそば、バナナ二本、砕け散った黒胡椒せん。

12:55 歯を磨く。

【B級順位戦1組】降級ルートからの脱出に成功! 羽生善治九段VS高見泰地七段【将棋ファン反応集】: 会長は降格待ったなしだと思っていたのがついこの間。

UNIX hexdump ツールの解説を読む: Making Sense of Hexdump | SUSE Communities : この記述で十分だ。

  • オプション -s, --skip <offset> で先頭指定バイトを飛ばす。
  • オプション -e, --format <format> を使いこなしたい。
    • M/N 表記は「オブジェクトサイズ」「個数」の意。M を段階的に「細分」して書式を定める。
    • ドラクエ解析の場合には %d を使いたい物に対しては %u を使うことになる。
    • 文字列系書式 %s, %c, %_p, %_u, etc. も使わない。
    • %_a は使う場合がある。
  • ビットマスク指定機能はない。
  • オプション -n, --length <length> でダンプ部分の長さをバイト数で指定する。

14:20 排便。

14:55 だいだい習得した。

# 習作
DQ3=/path/to/dq3.smc
size=8
num=0x33
hd -v -s 0x030900 -n $(($size * $num)) -e '1/1 "%06_ax: Type|Flag=%3u; Inventory=(" 6/1 "%02X," 1/1 "%02X" ")\n"' $DQ3

18:10 昼寝。

19:50 起床。外出。冬のように寒い。

20:15 コモディイイダ東向島店。2226 円。靴を一足調達しておく。

  • 油淋鶏弁当
  • メロンパン
  • メンズスニーカー

曳舟の部屋。入浴。

風呂から出る。PC を開く。豆腐、カットサラダ、油淋鶏弁当、割れていないせんべい二枚、メロンパン。せんべいがけっこう手に入ったので、当分は無駄におかずを衝動買いしなくて済むだろう。

22:00 歯を磨く。排便。

『ドラクエ命』に対する昼間の修正ブランチを GitHub にプッシュ。バグ修正が他にもあるだろうから今月を目処にプールしておく。

ダンプツール関連の作業。README 更新など。

引き続き逆アセンブルツールへ。WDM 命令で AssertionError が送出するくらいでまあまあ動作するようだが、何かがおかしい。

23:15 CLI を作っていなかったことが判明。作りかけで放置していたのか? これは次回バージョンで実装しよう。WDM 命令の件もそのときに解決する。ひとまずは応急処置とテスト追加を施す。