プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

v0.5


GBAファイラーをアップデートしました。


http://www.geocities.jp/yasuho68k/


今回のアップデートでは、主に以下の修正をしています。

ナガ10フォントの追加


ぞろよしさんナガ10フォントというものを教えていただいたので、さっそくGBAファイラーに追加してみた。



フォントの高さは漢字12x10ドットフォントと同じなので、好みで使い分けるといいかな。
ぞろよしさんのフォントと区別するため、フォントファイルにフォント名を追加したので、v0.4までのフォントファイルとは互換性がなくなってます。(特に問題はないと思うけど)
フォントについてはそのうちBDFやBMPからフォントファイルに変換するツールをリリースする予定。

一部のフォントで半角カナが出ない


東雲(しののめ)フォント等のように半角カナをフォントファイルに持っていない場合、全角カナに変換されるようにした。
インターネットの世界ではもう絶滅の危機にある半角カナだけど、以外に使っている場合がある。
全角になるけど、違和感はないはず。

しおり位置検索の高速化


以前のバージョンでは、しおり位置を常にファイルの先頭から検索していたのだけど、しおり位置をページ番号とファイルオフセットで記録するようにした。
これにより、前回のしおり位置からの表示が瞬時にされるようになった。
(しおり位置->ファイル終わり->ファイル先頭->しおり位置、の順にページ位置を設定する)
しおり記憶用のフォーマットを変更したため、以前のしおりは全てリセットされるので注意。

これから


文庫本ビュワーとしては、ほぼ満足するものになったので、しばらくバグ修正をした後、version1.0にする予定です。
1.0以降は、以前考えていた簡易メモ帳としての機能がつけられるといいなあ、なんて思ってます。
引き続き要望やバグ報告等受け付けますので、今後ともよろしくです。

フォントサポート


先月このようなことを書いてから、すでにひと月以上が経過。

先日hamytethさんよりGBAファイラーに「フォントのサイズ変更があるとよい」というリクエストがあったので、フォントを探す旅に出ることにした。


hamytethさん、大変お待たせしました。
GBAファイラーで、フォントサイズの変更が可能になりました。
いつものGeocitiesでダウンロードできますので、よかったら使ってみてください。


http://www.geocities.jp/yasuho68k/


いやあ、フォントを探す旅は、思ったより長かったぞ。^^;
BDF形式をBMP形式に変換したのち、それをファイラー独自のフォントファイル形式に変換するプログラムを書く。
元の恵梨沙フォントもプログラムに直に置いていたので、それもフォントファイルに変換。
さらにそれをファイルシステムから読み込むルーチンを書いて、フォント選択ルーチンを実装する。
それぞれの作業量は小さいが、細かい作業が多く、時間がかかってしまった。
仕事トロすぎ>自分


8ドットに加えて、12から16ドットのフォントが使えるようになったのだが、実際に見てもらうと分かるように、GBAの解像度では12ドットでもかなり大きく見える。
さらにフォントを探す旅を続けると、ぞろよしさんのページで10ドットフォントを発見!
「自由に使ってください」とのことだったので、さっそく使わせていただく。
おお、GBAだと、なかなかいい漢字じゃなくて感じだ!
文庫本ビュワーとして使うには、一番いい感じなので、自分でも気に入って使っています。
ぞろよしさん、とてもGoodなフォントを提供していただき、ありがとうございます。


フォント選択画面と、以前の恵梨沙フォントでの表示はこんな感じ。

これがぞろよしさん作成のおすすめフォント。

16ドットも使えるけど、GBAではちょっと大きいかな。

残りの画像はフォトライフにあるので、興味のある方はどうぞ。


さて、READMEにも書いてますが、現在のバージョンには以下の問題があります。

  • フォントサイズを変更すると、しおりが無効になる
  • 12ドット以上のフォントで、半角カタカナが正しく表示されない

しおりはページ番号を記録しているだけなので、フォントサイズが変わった時に対応できません。
あと、東雲フォントには半角カナが含まれていないので、これも全角カナにマップする予定。
フォントを作ることができない根性なしなので。^^;;
ま、このへんはおいおい直していく予定です。


全ての要望に応えられるとは限りませんが、どうかバグレポート・要望等はお気軽にお寄せくださいね。:)


最後にこのような有用なフォントやツール等を無償で提供していただいた作者及び関係者の方々に、この場を借りてお礼申し上げます。
また、GBAの開発環境を整えていただいた、全ての関係者に感謝。

漢字フォントの研究


先日hamytethさんよりGBAファイラーに「フォントのサイズ変更があるとよい」というリクエストがあったので、フォントを探す旅に出ることにした。
恵梨沙フォントは、通常の文章であれば読むのにほとんど支障はないのだが、画数の多い文字(例えば憂鬱とか薔薇とかね)はさすがにつらい場合がある。
いろいろなサイズで読めた方が便利な場合もあるだろう。


フリーで使えそうなフォントがないかどうか探していたところ、なかなかよさげなフォントが見つかった。
古川泰之さんが作られた、東雲(しののめ)フォントというフォントである。


http://openlab.ring.gr.jp/efont/shinonome/


ライセンスフリーで、12/14/16ドットといろいろなサイズのフォントが揃っている。
BDFのファイル形式はどんなものなのか調べていたら、itouhさんのページに、bdf2bmpがあった。
便利なツールを提供していただき、ありがとうございます。>itouh様 (_O_)


さっそくビットマップに落として見てみたら、漢字についてはJISコードがそのまま展開されているようだ。
これなら恵梨沙フォントの漢字コード->フォントオフセットルーチンがそのまま流用できる。
思ったより簡単にファイラーで扱うことができそうだ。


フォントを探していて思ったのは、フォントを作っている人がとても多いということだ。
フォントのデザイン、特に少ないドット数で文字を表現するのは、それだけでもかなり楽しい。
さすがに漢字全てのデザインを作る根性はぼくにはないけど、ファイラー用の可変ピッチ英数字を作るのは、なかなか楽しかった。
絵を描くように、デッサンする楽しさがそこにあるのだろう。


先人が苦労して作られたフォントを、幸いにしてフリーで利用できるぼくは、とても幸せである。
(作者の方々、ありがとうございます)
加えて、それらを簡単に取得できてしまうという、インターネットとブロードバンドが普及した時代にコンピュータが使えることに感謝したいと思う。
偉大な先人のようにはいかないけれど、使った人が、それを使えてよかったなぁと感じる。そんなソフトを作りたいと思っている。
「便利に使っています」そんな風に言ってもらえたら、すごく嬉しいよ。


さて、まずはBDFファイルをファイラーで扱えるように、バイナリイメージに展開するプログラムから書き始めよう。
フォントが出来たら、それを表示するルーチンを作って、ファイラーとテキストビュワーを改造して、文字サイズ選択オプションを付けて。。。
一つ一つの作業量は多くないが、いろいろやることがありそうだ。


hamytethさん、どうか気長に待っててくださいね。^^;;

GBAファイラー ver 0.3


Version0.2を公開してからまだ日もたたないですが、GBAファイラーをアップデートしました。


http://www.geocities.jp/yasuho68k/


前のバージョンとあまり違いはないのだけど、ちょっと気になることがあってリリースすることにした。


いや、実はファイラーをずっとデバッグ用にコンパイルしてて、全く最適化されていないことに気が付いたのだよね。^^;;
以前のバージョンに比べて、動作速度が飛躍的に上がっていることが分かると思う。
今までは表示も「パラパラ」って感じだったのが、サクサク表示されるようになった。
ページの移動もカーソルキーでスムーズな感じだ。


最近のPCだと命令数が多少増えたぐらいじゃ目に見えるほどの違いは出ないけど、動作クロック16MhzのGBAでは違いが出まくりである。
以前「性能を考慮した努力を怠ってはいかん」と言ってたのに、いかんいかん。
特にこういうマシンでは、もっと気を引き締めて作らなくては。


これはアプリケーションを使うユーザから直接フィードバックをもらう機会が少ないことの弊害かもしれない。
ぼくは仕事でも趣味でも、どちらかというとOSに近いシステムプログラムを作ることが多い。
GUIのプログラミングは苦手なので、コンソールアプリケーションに走ることもしばしば。
ユーザの要望を聞き、プログラムのインタフェースや構造を変更することはあまり経験していない。


だが、キーの少ないGBAのようなデバイスでは、ユーザインタフェースは特に重要なものであると考える。
例えばAボタンがキャンセル、Bボタンが決定だったりすると、使いづらくて仕方ないだろう。
キーが少ないからこそ、何かをする時に必要なアクションボタンを押す数は少なくし、ボタンの割り当てもユーザが想像したものでなくてはいけない。


操作が感覚的に自然に行えるインタフェースは使っていて気持ちよい。
ある場面においてこういうことをしたいとユーザが思うとき、それをユーザが期待した通りに動くプログラム、それがよいインタフェースであると思う。
(インタフェースはUIだけとは限らない。APIのデザインとか、そういうのもインタフェースだよね)


いうまでもなく一番のユーザは自分自身であり、自分が使いたいと思う物を作る、というのが大前提であるが、アプリケーションに期待することは人によって異なる。
ユーザの要望を聞いてひたすら機能アップしていくと、だんだん使いづらいものになることもある。
シンプルなインタフェースは使いやすいが、いわゆる「かゆいところに手が届かない」ことにもなりやすい。
このへんをどうデザインするかはなかなか難しい。


なんか当たり前のことを言っているようだが、ぼくはその「当たり前」のところに達していないと思う。
どんなにコードの構造が美しくて、プログラム的に優秀だとしても、それを使う人が「使いづらい」「なんか面倒」と思わせてしまったら、それは優秀なプログラムではないのだ。
特にプログラマは自分のコードに酔いしれてしまう傾向が強いので、気をつけていかないといけないね。


さて、これだけのアップデートだとつまらないので、おまけにビットマップビュワーも付けました。
WindowsのBMP形式のファイルをGBAで見ることができます。
BMP形式、それもフルカラーのみ対応で、JPGもサポートしてないですが、ま、そこはおいおい直していきます。


バグ情報・コメント等お待ちしています。

GBAファイラー ver 0.2


先日公開したGBAファイラーをアップデートしました。
いつものサイトからダウンロードできます。


http://www.geocities.jp/yasuho68k/


フォルダやしおりにアイコンが表示されるようになったので、前の味気ない画面よりはましになったかな。
今回はいろいろ変更したのだけど、一番の変更はファイルシステムを再構築しても、しおりが消えなくなったこと。
これでファイラーがバージョンアップしても、しおりは消えません。
いや、正確にはバージョン0.1のしおりは消えてしまうのだけど、まだベータということで許してください。^^;;
しおりも63ファイルまで設定できるので、けっこう使えるかな?


あとオートリピートとか、半角カタカナ対応(実は半角カタカナのサポートを忘れていた)とか、細かいところをいじってます。
前より使い勝手はよくなったかな。
詳しいことはreadme.txtを見てくださいね。


もともとベーマガスレを電車内で読むために作ったものだが、ウェブの記事や昨日言った青空文庫を読むのも、なかなかいい感じだ。
さっそく青空文庫から太宰治宮沢賢治などをダウンロードしてROMに格納した。
前読んだけど忘れてしまったのとか、読みたかったものを読み始めようかな。


ダウンロードした中に太宰治の「人間失格」がある。
この小説を最初に読んだのは社会人になってからだったが、とても衝撃を受けたことを覚えている。
主人公の少年時代は、まさにぼくの少年時代そのものだったからだ。


現実に立ち向かおうとせず、道化師を装うことで本当を弱い自分を守る主人公。
まるっきり同じではなくて、女の子にももてないけれど、その姿は少年時代の自分(今もそうかもしれないけれど)に似ているところが多く、恥ずかしさすら覚えた。
少年時代いじめられっ子だったぼくは、自分はどうしてこんなにいじめられるんだろうと悩んだ。
でもこの小説を読むことで、それはぼくの弱さそのものであったことに気づくことができたのだ。


もうだいぶ前に読んだ小説なので、ストーリーはちょっと違っているかもしれない。
今読んだら、ちょっと印象も違うかな。
ベーマガスレ以外に楽しみが増えました。


しかし、久々に週末プログラミングに集中できて、楽しかったな。
プログラミングしない時間が長いと無性にコードを書きたくなるのだ。
完全にプログラミング中毒だね。:)


いつものように、バグ情報・コメント等ありましたら、お気軽にどうぞ。

GBAファイラーを作ろう


以前ベーマガのスレを読もうとファイラーを作り始めて、はや半月余り。。
ようやくファイラープログラムが実用的になってきたので公開します。
まだまだ機能やインタフェースにイマイチな部分はあるけど、とりあえず使えるってかな。
少なくとも電車の中でベーマガスレをじっくり読むには実用十分な感じだ。


プログラムはいつものようにジオシティーズに置いておきます。


http://www.geocities.jp/yasuho68k/


いや、実は作ってる最中にこんないいものを見つけてしまったんだけどね。^^;;
しかもPogoShellの方がゲームも動くし、様々なプラグインもあるし、なかなかいいじゃん。
ちゃんと日本語のテキストビュワーまであるじゃないすか。
PogoShellには全然及ばないけど、ま、こんなのもあるってことで。^^


見ると分かるけど、ファイラーというより、エクスプローラ付きのテキストビュワーという感じです。
現在テキストを見るだけだから、ま、当然かな。
将来的にはPogoShellみたいにプラグインで拡張を、なんて思ってるけど、どうなるかは分かりません。
ま、気まぐれで飽きっぽいyasuhoゆえ、そのへんは、ね。


さて、これはテキストビュワーということであるが、現在テキストというと、ほぼウェブ上のテキストのことを指すと言っても過言ではない。
そもそもこのビュワーを作るきっかけも、2ちゃんねるのスレッドを見ようとしたことだったしね。
ウェブのテキストというと、HTMLやXMLをベースとしたものだ。
タグの変換をしたとしても、UTF-8EUCといったコード変換をしなくてはならない。


このへんをGBAでやるのは面倒だなあ、と思っていたら、いいソフトが見つかった。


http://www.vector.co.jp/soft/win95/net/se157673.html


このソフト、HTMLをテキストファイルに落としてくれる。
成形などもできて、優れものだ。
作者の方、このような便利なソフトを作っていただき、ありがとうございます。(_O_)


さらにウェブをさまよっていると、こんなものがあることも発見。


http://www.aozora.gr.jp/


GBAを文庫本にするにはいいページです。


そういうわけで、ようやくベーマガスレを電車で読むことができた。
たしかに作ってる時間で全部読めたかもしれないけどね。
でもいいのです。


意見・要望・バグ情報等お待ちしています。