ウチツクシ

ゲームをしたり作ったり

とどけ蟻 スタンドアロン版(+ソースコード) とaxダイエット

HSPコンテストの季節がやってきた。今年で14年目、長寿なコンテストだなあと思う。作品応募者としては目標ができるし、ユーザーとしてはいろんな作品見られるし、今後もどんどん続いて欲しいな。
で、前回自分が応募したページ見ていてソース公開してなかったのに気づいて、せっかくなんでexeも作って公開しました。以下URLより。
https://1drv.ms/f/s!Ar6lqe2DjQo0gif3iUp0It6oqEC7

久々にスクリプト見て、ちょっとやり忘れ?な部分と memfile+picload で気づいたことを以下書く。

HSPTV部門は指定された外部ファイル以外は読み込めないルールなので、オリジナルな画像を出したい場合は、スクリプトでなんとか生成するか画像ファイルをバイナリでスクリプトに埋め込む必要がある。

とどけ蟻の蟻と四葉(のつもり!)の画像は後者の方法でやっているのだけど、画像ファイルの形式が BMP だった。bpp は 1bit だったけどなんで GIFとか PNG じゃないんだろ、コメント残しとけー昔の自分!

試しに GIF に変換してax作ったら 64byte も縮んだぞ!画像もちゃんと読み込めてる。

ちなみに PNG はサイズ大きくなった上にエラー13で読み込めなかった。変換ソフトとかパラメータ変えたらいけるかもしれないけど、1bppのPNGに対応してない可能性もあり。リファレンス上だとBMPも1bpp非対応だけど読めてる…

あと、memfile でストリーム設定したメモリを picload で読むとき指定する第1パラメータ、通常は「picload "MEM:a.jpg"」のようにダミーのファイル名を指定するのだけど、上で試した BMP や GIF だと両方とも「picload "MEM:"」だけで読み込めた。リファレンスには「拡張子をファイル種別として判断している場合には、ダミーのファイル名を指定する必要がある」と書かれているので、BMP や GIF はヘッダ情報で判断しているのかもしれない。PNG は拡張子入れないとダメだった。

よって画像読み込み部分だけで計 69byte 省サイズ可能だったのだ。ツメが甘いぞ!