« December 2003 | Main | February 2004 »

エクステント アロケーション重複

備忘録--MacOS X

ディスクユーティリティで「エクステント アロケーション重複 XXXXd」、またはfsckで
Overwrapped extent allocation XXXXd
みたいになると、修復しても重複は解決されていなかったりする。

リストアップされたinode番号をメモ
find / -inum XXXX
(XXXX)はinode番号
で該当ファイルを見つけて削除。
でとりあえず解決。
このあと、ボリュームビットマップが不正になっていたりする事もあるみたいなので、もういちど修復をかけておく。

ただし、間違って重大なファイルを消さないように注意。ホントはDiskWarriorなどを使った方がいい。

| | Comments (0) | TrackBack (0)

jrogueバージョンアップ

ふと思い立って、jrogueにアイテム一覧ウィンドウ(引き出し)を表示する機能を組み込みました。
スクリーンショット
リストからアイテムを選んで使う(読む、飲む、装備するなど)事ができます。

| | Comments (0) | TrackBack (0)

jrogue for MacOS X 公開

jrogue for Mac 2.2を公開しました。
今回のバージョンから、MacOS X専用になります。それも、10.2.8以降でないと動かないと思います。
また、旧バージョンのセーブファイルは使えません。

jrogueでは、セーブファイルは読み込んだら消える仕様のため、常に一つしか使えません。従来のMac版では、コピーしたセーブファイルが使えましたが、今回UNIX版と同様にファイルIDをチェックするようにしたので、コピーしたファイルでは遊べません。また、リンクカウントをチェックしているので、ハードリンクしたセーブファイルも使えません。

旧Carbon版では、MacOS Xのログイン名が取得されず、プレイヤー名が「戦士」になっていましたが、今回のバージョンでは、ただしいアカウント名が使われます。それも「長い名前」が使われるので、日本語のアカウントを使っている場合は日本語の名前で表示されます。

旧Carbon版では、移動中のキャラクタ表示が行われませんでしたが、この問題は解決しました。

等幅以外のフォントを使っても等幅で表示されます。ただ、フォントやサイズによっては、メッセージ行に少しゴミが残ることがあります。ヒラギノも使えますが、このフォントではちと行間が空きすぎて、見た目はいまいちかもしれません。
日本語フォントの場合、半角部分は日本語文字の半分の幅に圧縮して表示します。もともと日本語文字の半分におさまる文字はそのまま表示されます。つまり、普通のフォントであれば'I'はそのまま、'W'は圧縮されるということです。

| | Comments (5) | TrackBack (0)

MacOS X Carbonでの 画面描画

昔のQuickDrawだったら、Windowに何かを描画すれば、ただちに画面に反映される。しかし、MacOS Xでは、Windowへの描画は常にバッファリングされており、OSが適切に画面にその内容をフラッシュする。つまりいつでも勝手にオフスクリーンに描かれているような物だ。このため、Windowが他のWindowの陰になったり、スクリーンからはみ出しても、欠けた部分の内容は保持されており、旧来の意味でのアップデート処理は必要ない。

ところで、実際にバッファから画面に書き出されるのはいつか。通常適当に描画を行って、放っておけば、確かにきちんと描画される。しかし、一つの関数の中でループを回し、連続的に描画した場合、その過程は画面に反映されず、最後に描いた内容が表示される事になる。

Carbon版jrogueで、キャラクターの連続移動が描画されない理由はこのあたりにあるらしい。最初、理由がわからず、描画の度にQDFlushPortBuffer()を呼び出していたが、連続移動のアニメーション処理は、キャラクターの移動だけではなく、飛び道具を使うとか、ドラゴンが炎を吐くとか、バラバラな場所で様々に使われているため、いちいちそれらの関数を探してループに手を加えるのも巧くない。というわけで、cursesの画面リフレッシュ関数の中で、メインイベントループ呼び出してやる事にした。前に書いたように、今回のjrogueでは、もともとのjrogueのメインプログラムと、GUIに関わるメインイベントループを切り離して、それぞれ別スレッドにしてあるため、YieldToAnyThread()を挟むだけで済んだ。従来型のプログラムだったら、WaitNextEvent()なり、EventAvail()なりを入れてやれば描画のアップデートはそのときに行われるのではないかしらん。

| | Comments (0) | TrackBack (0)

MacOS X Carbonでの getlogin()

jrogueの移植で、従来Mac独自の処理を行っていた機種依存関数の多くを、UNIXの場合と同様の処理に変更してみたのだけど。なぜか getlogin() が間違ったアカウント名を返す。これは家族用に複数のアカウントを作っているので発覚したのだけど、複数の人間がログインして、ユーザーを切り替えて使っている場合、他人のアカウント名が帰ってくる場合があるのだ。というか、僕の場合ほぼかならず妻のlogin名が帰ってくる。

環境変数USERは正しい名前を返すようだ。なんだろう。ファスト・ユーザースイッチのバグだろうか??

環境変数を読むようにしてもいいのだけど、どうせならということで、このあたりの処理は独自仕様ということで、CSCopyUserName()を使って長いユーザー名を取得するようにした。これだと、日本語のアカウント名を得ることができる……っていうか、ひょっとして日本語アカウントとの相性問題か?子供が使うことも考えて、うちの家族全員日本語アカウント作っちゃったしなあ。

| | Comments (0) | TrackBack (0)

jrogueのスクリーンショット

rogue_mach_o
こんな感じ

| | Comments (0) | TrackBack (0)

jrogue for MacOS X

jrogueのMach-O Carbonへの移植をちまちま行っている。

リソースをnibに置き換えてビルドしてみたが、それだけだとメニューのハンドリングがうまくいかず、結局Carebon Eventモデルに変更することに。しかし、本来独立したメインループで動いているjrogueを、完全なイベントドリブンに書き換えるのは大事、というか、別物になってしまう。いままでの構造は

main();
 ↓
Mac用のToolbox初期化ルーチン
 ↓
roguemain(); ←もともとのmain()
 ↓
キー入力待ち
 ↓↑
WaitNextEvent(); イベント取得とcpuタイムの振り分け

ってな構造だったのだけど、RunApplicationEventLoop()を使う形に変更するにはどうするか。

と考え、 結局roguemain()を、メニューやウインドウ操作から分離し、別スレッドにして、タイマーでYieldすることにした。結局大きく構造が変わってしまうことになる。いままでのCFM形式でもまあちゃんと動くし、Mach-Oにしても、WaitNextEvent()使う形は残せるはずだけど、ついついおかしな方向に進めてしまった。まだ動作に問題点があるので公開はしないけど、そのうち出します。

| | Comments (0) | TrackBack (0)

同人誌をpdfにしてみる

同人誌のデータは、おおむね1ファイル/1ページのPhotoshopデータで作成している。これをPDFにして、ページを追って読めるようにするにはどうするか。

まあ簡単な方法としては、ワープロに貼付けて、Acrobatで出力。MacOS Xなら印刷ダイアログにもれなく「PDFで保存」というボタンがあるので、それを使えばいい。

問題は、Acrobatは結構高いということ。それ以外の選択肢でとなると、なにかと不便だ。まず、マンガは縦書き右綴じである。普通にページ単位で出力したPDFは、横書き左綴じという前提になっている。Adbe Readerで見開き表示にすると、ページ方向が逆になってしまい、とても読みにくい。

色々考えるうちに、TeXで画像をページに貼り込んで、dvipdfmでpdfにすればいいのではないかという構想になった。TeXは遠い昔にちょっとだけ手を出したことがあるが、さっぱり身に付かなかったし、身に付いた部分もそっくり忘れているのでネットでお勉強してみた……が、日本語のTeX関連情報は、ほとんどが日本語の表示や組版についてのことばかり。ページいっぱいいっぱいに画像を貼り込み、右綴じで出力する方法がストレートにわかるようなものはなかった。

それでも調べているうちにいろいろなことがわかったのでコーディング、画像をおさめたディレクトリを指定してやればその中の画像ファイルをインクルードした.texファイルを出力するスクリプトを書いてみる。こいつで書き出した.texファイルはこんな感じ

¥documentclass[b5paper]{jbook}
¥AtBeginDvi{¥special{pdf:tounicode 90ms-RKSJ-UCS2}}
¥special{pdf: docinfo << /Author (後藤寿庵)
												/Title (民主帝国6) 
												/Subject (オーバーマン・キングゲイナー) >>}
¥special{pdf: docview << /ViewerPreferences << /PageDirection /R2L  >> >> }
¥pagestyle{empty}
¥topmargin=-1in
¥headheight=0mm
¥headsep=0mm
¥oddsidemargin=-1.1in
¥evensidemargin=-1.1in
¥textwidth=¥paperwidth
¥textheight=¥paperheight
¥marginparwidth=0mm
¥marginparsep=0mm
¥footskip=0mm
¥linewidth=¥paperwidth
¥columnseprule=0mm
¥usepackage{graphicx}
¥begin{document}
¥includegraphics[bb=0mm 0mm ¥paperwidth+0mm ¥paperheight+0mm]{img/01.jpg}
¥newpage
:
:
¥end{document}

画像ファイルは、あらかじめB5/150dpiに変換し、jpeg形式で保存してある。文書の幅や、画像のバウンディングボッックスはすべて¥paperwidthと¥paperheightにあわせてしまう。あと、右綴じの設定が必要なので、¥specialで埋め込み。

とりあえずうまくいったみたい。40pの同人誌が9.1MBのPDFファイルになった。
pdftest

| | Comments (18) | TrackBack (1)

すごいカウンター

いろいろ: すごいカウンターなんかダメ
まったくだ(T_T)

| | Comments (13) | TrackBack (2)

モノクロ表紙か多色刷りか

いまどきの同人誌は、当たり前のようにフルカラー表紙だ。昔に比べれば相当安くはなっているが、やはり結構な値段なのだ、これが。

いつも利用している共信印刷の場合、B5 40Pの本を200部作ると、基本料金が30,360円。モノクロの表紙なら、この料金でできる。これがカラー表紙にすると、この基本料金+33,500円。一気に倍以上である。まあ、これが1,000部刷る場合だと、基本料金97,680円の、表紙代が53,000となり、割合は下がるし、単価が安くなるのでカラーでもまあいいかってなもんだが、小部数でカラー表紙は厳しい。

ところで、これとは別に、多色刷りというものもある。要するに色インクごとの版下を作って、それを重ね刷りするものだが、これは結構安い。部数に関係なく、共信印刷の指定した基本色なら、一色あたり1,500円、その他の特色なら2,500円追加するだけでいい。三色重ねても基本色なら4,500円の追加ということになる。これは十分リーズナブルな値段だといえよう。四色刷りができるなら、単にフルカラー原稿を四色分解して多色刷りとして入稿すれば、フルカラーなみの表紙が仕上がることになるが、これはできないのかな?共信の申込書では、多色刷りの選択肢は1~3色となっているが。今度聞いてみよう。

| | Comments (0) | TrackBack (0)

春レヴォ申し込み

Revo35cut コミックレヴォリューション35の申し込み期限が迫っているのであわてて手続き。前回の受付番号を記入しなければいけなかったのだが、封筒なくしてどうしましょ。まあ、これは無記入でも不備にはならないはずだけど、忘れた人は前回のスペース番号をできるだけ、とか書いてある。えーと、スペース番号もどっかいっちゃったんですけど。と思ったらレヴォの公式サイトの参加サークル一覧にスペース番号が載っていたのを発見。事なきを得る。次回はなくさないようにしよう。

で、サークルカットは次回のレヴォに出そう出そうと思ってる男性向けショタ本のイメージイラスト。ショタとはいっても、男の子同士というネタではない。考えてるのは、年上のお姉さんに教えてもらうってパターン。同級生の女の子とってのも考えてる。どっちにしろ、主人公は内気で自分から手を出すタイプではない。

っていうのは、自分的にはツボなんだけど、みんなはどうかなあ。あんまし売れるとは思わないので、小部数で白黒表紙の本になると思うけど。100部位刷って、30部位売れるかな?とらのあなに引き取ってもらえればそれでもまあなんとかなると思うけど、趣味とはいえ、まるっきりの赤字では次が出せなくなるからなあ。っていう考えは甘いですか?


追記

結局300部刷りました。表紙はモノクロはやっぱりさびしいので、フルカラーよりは安い多色刷り(同人情報ページ)。

| | Comments (0) | TrackBack (0)

コミケ報告

ちょっと遅くなったけどコミケの事。

今回は、きちんと睡眠をとり、朝の5:00に目覚ましをセットした。が、目が覚めたら6:30だった。朝食も取らず、妻は化粧もせずに出発、とはいえ、以前遅刻したときに比べれば余裕はあるし、経験も積んで多少は道も覚えた。加えて今回は新車である。CIMG0329ホンダのLife。軽ではあるが、以前のTodayに比べれば排気量もアップしてるし、オートマも四速なので高速で余裕があるらしい。運転するのは妻なので私は知らんが。

ってなわけで、7:30には駐車場に入れた。OK、OK。

事前にカタログなどをチェックしていなかったのだが、スペースに入ると、左隣が内山亜紀先生。右隣が堀田恵先生だった。うーむ濃ゆい配置だ。っていうか、なつかし島である。このあたり一体、ちょっと時空的に特殊なゆがみが感じられる。昔読んだ「うる星セブン・美しき侵略者」の復刻版とか買ってしまった。あと「新・戦え筋肉番長」の4,5,6。さて、後藤寿庵CG集「SENDOUYA CD SPECIAL 増補改訂版PLUS」。これは夏コミで出した「SENDOUYA CD SPECIAL 増補改訂版」に、ムービーを一つ追加し、以前収録したムービーのサイズを上げたもので、秋レヴォで発行した物。レヴォの後、メッセサンオーから注文を受け、数回に分けて100枚ずつ出荷した。ということは、秋レヴォからこっちすでに数百枚売っているのであり、今回の冬コミでも新作を出せなかったので、これを再版して持って行ったわけだが、なにしろそのような事情であるから、もう買う人はおおむね買ってしまっただろうと思い、60枚ほど焼いて、それでも売れ残るだろうと思いながら持っていったのが……ありがたいことに完売した。のみならず、コミケ終了後、年明け早々メッセサンオーから200枚の追加発注が入った。これについてはコミケで替えなかった人がメッセで見かけて買ったりしたので発注に結びついたのであろうと思う。さらにありがたいことである。200枚CD-Rを焼くのはかなりしんどい作業であるが、がんばるぞー。

さくらやで買った20枚入りCD-R、10パックは重かったです。最近はソニーの700MBのやつに決めてたのだけど、店に10パック同じ銘柄がそろっていなかったので、4パックは同じソニーの、インクジェット印刷用白レーベルのものになってます。ケースは同じなので、開けないと区別つきませんが、白レーベルのを買った人は当たりということにします。賞品はありませんけどね。白の方が通常のものより20枚あたり100円高いのよ。


| | Comments (2) | TrackBack (0)

あけましておめでとうございます

nenga2004 年賀状です。

| | Comments (0) | TrackBack (0)

« December 2003 | Main | February 2004 »