2019/10/21(月) [n年前の日記]
#1 [python][pyxel] Pyxelをアップデートしてハマったり
Windows10 x64 1903上で、Python 2.7.15 を 2.7.17 に、3.7.1 を 3.7.5 に更新したついでに、Python でファミコンライクな2Dゲームが作れる pyxel というモジュールも 1.0.1 から 1.2.8 に更新したのだけど。
pyxel を使って以前作成した、画像やサウンド等を含んだリソースファイル (.pyxel) が開けなくなってしまった。pyxeleditor hoge.pyxel としても、何も出てこない。
_Pyxel 1.0 から 1.1 への移行方法 - kitao's blog
上記の記事によると、リソースファイルの拡張子が .pyxel から .pyxres に変更されたようで。pyxeleditor で旧フォーマットも開ける、と書いてあるように見受けられるのだけどな…。
拡張子を .pyxel から .pyxres に変更すれば読めるようになるのかなと試してみたけれど、
すると当時は、一体どういう仕様・フォーマットで、内容を保存していたのだろうか…。どこかに資料でもあるんだろうか。コンバータ・変換ツールの類を書く必要があるのでは。
そもそも本当に昔のバージョンなら開けるのだろうか。pyxel 1.0.2 に戻してみる。
以下の記事を目にして謎(?)が解けた。
_Pyxel 1.2.0 の紹介 - Qiita
_ひさびさにpyxelで遊ぼうと思ったら詰まった。|こいでみず|note
pyxel 1.1.x までは pyxeleditor で旧フォーマットも開けたけれど、pyxel 1.2.x からは旧フォーマットを切り捨てることにしたらしい…。現行フォーマットに変換したい場合は pyxel 1.1.8 を一旦インストールして、その版の pyxeleditor で開いて保存せよ、とのこと。
pyxel を使って以前作成した、画像やサウンド等を含んだリソースファイル (.pyxel) が開けなくなってしまった。pyxeleditor hoge.pyxel としても、何も出てこない。
_Pyxel 1.0 から 1.1 への移行方法 - kitao's blog
上記の記事によると、リソースファイルの拡張子が .pyxel から .pyxres に変更されたようで。pyxeleditor で旧フォーマットも開ける、と書いてあるように見受けられるのだけどな…。
拡張子を .pyxel から .pyxres に変更すれば読めるようになるのかなと試してみたけれど、
terminate called after throwing an instance of 'std::runtime_error' what(): bad zipと表示されて強制終了してしまう。おそらく、今現在の .pyxres は実態が zip だけど、当時の .pyxel はそうではないので、zipファイルだろうと思い込んで開こうとしてなんだコレzipじゃねえぞと文句を言って終了しちゃうのかなと。
すると当時は、一体どういう仕様・フォーマットで、内容を保存していたのだろうか…。どこかに資料でもあるんだろうか。コンバータ・変換ツールの類を書く必要があるのでは。
そもそも本当に昔のバージョンなら開けるのだろうか。pyxel 1.0.2 に戻してみる。
pip uninstall pyxel pip install pyxel==1.0.2この状態で pyxeleditor hoge.pyxel をしてみたら、ちゃんと開けた。うーん。
以下の記事を目にして謎(?)が解けた。
_Pyxel 1.2.0 の紹介 - Qiita
_ひさびさにpyxelで遊ぼうと思ったら詰まった。|こいでみず|note
pyxel 1.1.x までは pyxeleditor で旧フォーマットも開けたけれど、pyxel 1.2.x からは旧フォーマットを切り捨てることにしたらしい…。現行フォーマットに変換したい場合は pyxel 1.1.8 を一旦インストールして、その版の pyxeleditor で開いて保存せよ、とのこと。
pip uninstall pyxel pip install pyxel==1.1.8 pyxeleditor hoge.pyxel
[ ツッコむ ]
以上です。