SYSTEM16版ファンタジーゾーン2開発の思い出話

「SYSTEM16版ファンタジーゾーン2」とは、弊社が開発を担当したセガさんのPS2用ソフト「ファンタジーゾーンコンプリートコレクション」に収録されているソフト。 当時、マスターシステムに近いスペックのSYSTEM-E基盤で開発された「ファンタジーゾーン2」を、初代ファンタジーゾーンが動いていたのと同じSYSTEM16基盤の上で、新たにリメイクしようと言う酔狂極まりないプロジェクトでした。
64
ゆんゆん探偵 @yunyundetective

おおむね同意するところだが「こうすればいい!」と言い続けた結果現実がそちらに引き寄せられるという呪術的効果もまた馬鹿にならないのであった。 RT @iina_kobe: こうすればいい!って言うのは簡単。それができるかどうかはまた別問題。実現可能じゃないと意味ない。

2012-04-25 18:48:00
ゆんゆん探偵 @yunyundetective

実例としてはSYSTEM16で動作するファンタジーゾーン2とかがそうだった。弊社堀井が言い出した時は現実性を考えてとまじめに取り合う社員はいなかったのだが、堀井がひたすらこだわり続けた結果結局実現してしまった。5年越しかそれ以上だったかな。

2012-04-25 18:50:03
ゆんゆん探偵 @yunyundetective

SYSTEM16版FZ2の開発ではいくつかの「ズル」がある。その1つが、SYSTEM16Bの4倍のRAMを積んだ(自称)SYSTEM16C基板というハードの存在だが、実はWINのC言語クロス環境で開発を行っているというソフト的な「ズル」の方がズルさの度合いは大きいかも知れない。

2012-04-25 19:06:09
ゆんゆん探偵 @yunyundetective

そう、SYSTEM16のFZ2、メインはC言語で開発されているのです。もちろんクリティカルなI/Oドライバ部はマシン語ですが。これは、初代FZが開発された当時は考えられなかった贅沢な作り方。

2012-04-25 19:09:12
ゆんゆん探偵 @yunyundetective

また、スプライトアニメーションの作成にも、当時GBAのスプライトアニメーションを作るために使っていた内製のアニメーションエディタを改造して、SYSTEM16用のスプライトアニメーションを作れるようにした。(余談だけど、この時作ったUI部品がkwidegetsの前身)。

2012-04-25 19:10:18
ゆんゆん探偵 @yunyundetective

SYSTEM16版FZ2は、ゲームとしても初代FZを念頭に置きつつ、最新のゲームのトレンドをしっかり踏まえた作りになっていて、開発体制としてもゲーム内容としても、やはり「あの時代だからこそ出来たゲーム」ではあったというお話でした。てなとこで締め。

2012-04-25 19:11:32
ゆんゆん探偵 @yunyundetective

ちなみに「SYSTEM16C」基板は、実際のSYSTEM16B基板にRAMを増設して、信号線を追加して実装しています。1986年当時でも実装は可能だったはずの構成ですが、当時はSRAMがとにかく高価だったので、コスト面で折り合いがつかなかっただろうことは想像に難くありません。

2012-04-25 19:13:15
ほりい なおき @hor11

RT続)当時、作ってたアニメーションツールでSYS16のデータを吐く事になろうとは、つゆほども思って無かった…というのは参加者全員の感想だよなあ。そもそもSYS16で作る事になるってのも思ってなかったろうけど(ボク以外w)

2012-04-25 19:14:40
ほりい なおき @hor11

RT続)そーいやスプライトツールは、Winアプリ書けないハズのゆんゆんがWin上で動くツール書いてて驚いたんだった。夢(と書いて妄想とルビ)の実現の為に吉里吉里にはお世話になっているなあ。kwidegetsで恩返し出来ていれば本望。

2012-04-25 19:17:11
ほりい なおき @hor11

で、結構な部分はCで書いてあるんだけど、クリティカルな部分は全部ASMに開いてる。細かい所までASMで書くメリットは既になかった。当たり判定Cで書いてました…とかなら驚いていいんだけどw

2012-04-25 19:19:01
ほりい なおき @hor11

超連射68Kとかも、そんな感じですよね多分。あれ、凄いよなー、今も遊びたいシューティングの一つっす。

2012-04-25 19:19:39
ほりい なおき @hor11

で、別にCで書いてあるのはめずらしくなくて、ATARI GAMESのゲームとか、80年代後半にはかなりの部分がCで書いてあったと思われ…。開発効率は重要ですよ。

2012-04-25 19:20:26
ほりい なおき @hor11

前にも書いたけどクロック削りの前に、アルゴリズムで早くした方がよっぽど効率いい。そこを突き詰めたら初めてASM化じゃないかな?メンテの手間からいっても。

2012-04-25 19:21:26
ほりい なおき @hor11

スプライトドライバとか当たり判定とかは当然の様にASMで書きますよね。何度もよばれるし、実行時間に占める割合も多いし。

2012-04-25 19:22:31
ほりい なおき @hor11

実際のところ、プログラマの皆さんを説き伏せてお話を進める為にも、開発環境というか、効率は重要な訳っす。そこをメモリの増設をなんとかしたからこそのプロジェクトであり。C言語での開発だった訳です。本来だれも本気でやるとは思ってなかった訳で(やー、ほんとに

2012-04-25 19:26:30
ほりい なおき @hor11

誰ひとり、メモリの増設≒Cで書ける環境…が実現できると思ってなかったので、それが出来たらやりますよって言質がとれただ訳で、そこにハードウェアが出来る(社外の)伏兵がいるとは思ってなかったろーな…なんたる飛び道具

2012-04-25 19:29:02
ほりい なおき @hor11

そこからはイケイケで(?)開発した訳ですけど、きちんと世に出たのは多分に運の要素が多いなあ。話の分かる(と書いて物好きとルビ)プロデューサーさんとか。

2012-04-25 19:31:30
ゆんゆん探偵 @yunyundetective

堀井社長のツイート補足。「今さらフルアセンブラでは無理です」→「かと言ってC言語で書くとメモリがしんどいです」→「よし、じゃあSYSTEM16のメモリ増やすか!」。こういう流れ。

2012-04-25 19:31:45
ゆんゆん探偵 @yunyundetective

大事な話忘れてた。SYSTEM16版FZ2、ビルドだけでなく、動作確認も基本的にはWINで動くエミュでやって、実機での動作確認はたまにROM焼いてた。おおむねそれで問題なく動いたんだけど、実は実機でI/Oのタイミング関連か、ちょっとだけ画面が乱れる問題が取れなかったんだよねえ。

2012-04-25 19:52:21