正直日記



2009/03/08

_ coroutine for arm
自覚がどうのと言った舌の根も乾かぬうちからコルーチンライブラリを更新しま
した。今までは入れ子できませんでしたが、8段まで入れ子出来るように改良。
段数は簡単な変更で増やせます。それと、co_resume_to() を co_goto() に変更。

http://www.liarsoft.org/soft/coroutine_gba_1_0_2.zip

--

最初は libpcl の関数名をパクってたはずが、名前も挙動も大分俺々実装になっ
てきた……。
_ 読まなくていいよ
今回の件は対岸の火事だと思っているので特に書く事も無いかと思うんだけど、
なんだか一部の人に期待されてるようなのでなんか書こうと思ったけど、やっぱ
特に書くこと無いなぁ。

というのは GBA も同じ道を一度歩んでいるからなんだよな。(そのときの事由は
意匠権の侵害による輸入・販売の差し止めなので、事情が違うという話はあるん
だけど)

まあ、本来踏むべき手順をすっ飛ばして手を出しているという自覚はどこかで持っ
ていた方がよいと思うなあ。自分もたまに忘れるんだけど。ちなみに、その点で
homebrew という言葉は語感が良すぎてどうかと思ったりもする。自分でもたま
に使うけど。

--

それはそうと、折角なので枯れたハードの非公式開発環境を適当に列挙し、雑感
でも述べてみようかと。

ファミコン : nesasm / cc65
古くはトンカチエディタや、FAMILY BASIC の RAM 増設・ディスク化といった所
までさかのぼれる。現在は nesasm ほぼ一択。C コンパイラもあるにはあるけど。

拡張チップの力でなんでも出来そーな気がするけど、気がしただけ。知らんよ。

PCエンジン : PCEAS / HuC
なんと C で開発出来る。HuC は #incbin などの拡張がされてて(恐らくアセン
ブラにそのまま渡されるだけだと思うが)素晴らしい、けど知らん。

メガドライブ : SGCC
m68k 好きで Z80 好きで、あと FM 音源も好きな人、つまりはオッサン御用達。
C もあればアセンブラもあるし全部ある。

Z80 アセンブラは各自ご自由にといったところだが、最近 GNU binutils が対応
したので、それを使うのが今は一番いいんじゃないかと思う。当サイトで Windows
用にコンパイルしたものを配布している。

PCG が BG とスプライトで共有とか、パレットが16色4本分しか無い(しかも、
これも同様に共有)とか、大胆な制約はあるけど、逆に挑戦のし甲斐もあるかも
しれない。

crt0.S が LGPL(実質 GPL)なので、自前で用意したい。

スーパーファミコン : Tricks Assembler / A816 / kasm
PPU は強力になったけど CPU が貧弱なので、やっぱりフルアセンブリ。
SPC700 までやるなら WLA DX もあったほうがいいかも。

ぶっちゃけ解像度以外は劣化 GBA なので、GBA から入った身としては触る気が
しない。

ゲームボーイ : GBDK
自分で作ったゲームが携帯できるとはすごい時代になったもんだ。でも知らん。

ゲームボーイアドバンス : DevkitAdvance / devkitARM
開発資料が流出してしまい、本体発売前から非公式開発が盛んだったらしい曰く
つきのマシン。

DevkitAdvance がメンテナンスされなくなったので、一部を引き継ぎかつ最新の
GNU toolchain を使えるようにしたものが devkitARM。1から作るならどちらを
利用しても大差は無い。(でも gcc が 4.3 から目に見えて良質なコードを吐く
ようになったみたいなので、最新を選んだ方がお得かも)

非常に素直な構造をしているので、お勉強にはいいんじゃないかと思う。
BG と フレームバッファを選択出来、二昔前のマイコン感覚でも使える。
libgba とか使わんほうが面白いと思うよ。

WonderSwan : LSI-C86 or TurboC or DigitalMarsC + exe2wsx
どーしても Witch が手に入らんけど、どーしても Swan でやってみたいという
人向け。そんな奴はおらんと思うが。

キャラジェネやらなんやらが RAM 領域にマップされており、操作は割りと楽。
逆に言うとその分ユーザメモリが圧迫されてる。SRAM 領域でカバー出来るらし
いが、8086 のセグメント周りの作法が分からず自分にはどうにも出来なかった。

PS1 : gcc mips ports
もうネットやろうぜは入手できないけど、でもプレステって凄かったよな、とい
う(以下略)

DMA が賢い。ゲーム機のあるべき進化形だと思った。
Caetla とか揃えたけど、揃えただけで放置したよ。

SS : gcc sh ports
知らんけど、SH-2 を二つも積んでるのに片方のコードが NOP だらけとは何事だ
ろうとは思った。マゾい。逆に考えると設計者はサドい。

PS2 : ps2toolchain + ps2sdk
基本的にフレームバッファ。GS が触りたい人は gsKit をお好みで。
EE/VU/IOP と三つの環境を押さえる必要があるのでめんどくさい。

VU は 1clk 削るごとにポリゴンが 2000 個増やせるとかゆー世界なので素晴ら
しくマゾい。仕事でやる人は大変だな。

DC : gcc sh ports + KOS
SDL に OpenGL ラッパーまである。もはや PC と変わらん気も。

--

○○'を'作りたいって目的と、△△'で'作りたいって手段があると思うんだけど、
非公式開発はどちらかというと手段の方に入ると思う。最初は手探りなのが、全
体像を徐々に把握しあれもこれも出来るようになって、コンピュータを自分の手
で征服していく感覚が得られるのが面白いと思うんだ。(ハッカーが整備した道
を後から歩いているだけだとしてもね)

この感覚は組み込みをやっても得られるんだろうとは思うけど、ミーハーでワナ
ビーな僕ちゃんは、ゲーム機'で'やってるわけだ。

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12