プログラミング

PoderosaをGB18030に対応させた

このところ、ずっとUbuntuのみで生活してたのですが、Windowsとのデュアルブートに変えました。で、久々にWindowsからターミナルエミュレータとか起動するのですが、そこでやはり直面するのは中国文字コードであるGB18030に対応したものがない問題。僕はずっ…

Rogue 3.6.3: 部屋の表示

do_roomsで呼び出されていた関数を読んでいく。まずはdraw_room。これは名前からすると、画面上に部屋を表示するものだと思われる。部屋情報を構造体として受け取っている。 draw_room(rp) register struct room *rp; { register int j, k; move(rp->r_pos.y…

ActivePerlのcpanコマンド

ActivePerlは、ただインストールするだけでcpanコマンドが使えるのだけれど、これがなかなか優れもので、もともと設定がされていて何も指定する必要がないし、基本的にはActiveStateのサイトにアクセスしてモジュールをとってくるのだけれど、nmakeが無かっ…

Rogue 3.6.3: 部屋の生成

データの初期化が終わると、続いて新たな階(レベル)が作られるためにnew_level(newlevel.c)が呼び出される。 new_level() { register int rm, i; register char ch; coord stairs; if (level > max_level) max_level = level; wclear(cw); wclear(mw); c…

Rogue 3.6.3: アイテムの初期化

今日は続いてアイテム類の初期化部分をみていく。init_playerの次に呼び出されるのはinit_things。これは以下の様になっている。 init_things() { register struct magic_item *mp; for (mp = &things[1]; mp <= &things[NUMTHINGS-1]; mp++) mp->mi_prob +=…

Rogue 3.6.3: プレイヤーのデータ構造

改めてRogueのコードを読み始めたのでメモ。読んでいるのはRoguelike Restoration ProjectでダウンロードしたRogue 3.6.3(r1043)。 プログラムが実行されると、画面サイズのチェックやら、OS依存のコードやらの後、まずinic.c内のinit_playerが呼び出される…

変愚蛮怒のソースで日本語化の苦労を感じる

僕は定期的にAngbandがやりたくなるという性格をしていて、またAngband熱が頭をもたげてきた。Angbandは、Rogueに端を発する由緒正しいRPG(Rogue-like)。Rogue-likeはかつてアスキーが発売していたPC-98向けのRogueを高校生くらいの時に渋谷の中古ソフト屋…

ファミコン戦士への道(まだ3日目)

ずいぶん間が空いたけど、ファミコン戦士への道をまた歩き出した。とりあえずこの前、NES研究室のサンプルを読んだので、今回もこれを改造していくことにした。とりあえずの目標としては、コントローラを操作すると、メッセージが切り替わるようにする、とい…

ファミコン戦士に向けて(2日目)

2日目といっても、一週間ぶりだけど。 とりあえず実行環境ができたっぽいので、サンプルを読みながら、その中身を理解していくことに。で、ここまで見た結果、cc65とNESASMでは、NES専用のNESASMのほうが、疑似命令がたくさんあって簡単にかけそうであること…

NESプログラミング事始め

ファミコン戦士になるべく、ファミコン(NES)のプログラミングを始めた。とりあえず、情報収集と環境設定をした。ので覚え書き。 まず一通り読んだのが以下の2サイト。 ギコ猫でもわかるファミコンプログラミング NES研究室 - from id:cojiさん で、漠然と…

タイムプロキシ

先日、会社でドラえもんの秘密道具か何かの話をしている声が聞こえてきて、ふと「タイムプロキシ」という言葉が浮かびました。浮かんだはいいけどなんなんだそれ、ということで考えると、ウェブページにアクセスすると時空を超えて過去のウェブページにアク…

以前書いたBrainF*ck解説記事を公開してたのをすっかり忘れてた

たけさこさんがBrainF*ckでプログラムを書いていました。 ということで、世界最小のコンパイラ/インタプリタと言われている Brainf*ckで1??100までの素数を列挙してみました。 反応してだんさんもPerlとJavaScriptでBrainF*ckの実装を書いています。 という…

シイラプロジェクト

シイラは、Web Kit をレンダリングエンジンとして用いた、Cocoa で組まれた Web ブラウザだっ! HAPPY Macintosh Developing Timeのmkinoさんが,ブラウザを作り始めていた.そのなもシイラ.四国で食べたなあ.しかし,オレブラウザを作る,というのはすご…