▲T o p |
日経MACレポート |
ホット・ニュース
Nikkei MAC CD目次 |
自己書き換えコードが大きな難関だった [Wednesday, November 19, 1997 シリコンバレー・オフィス発、山田 剛良=日経MAC] Self modifying code was the big challenge for both of us.(Chad) ●開発中で一番大変だったことは何ですか? Chad 浮動小数点演算と自己書き換えコードのエミュレーションだね。 僕らの目標は「Quake」や「DOOM」*8といったPCのゲームをマック上で動かすことだった。なんと言っても僕はゲームが大好きなんだ。僕のコンピューター・ライフの半分はゲームとともに過ごしたからね。自分で作ったエミュレーターでゲームが動かないなんて満足できないよ。 ゲームを快適に動かすにはいろいろ難しい問題がある。1つは浮動小数点演算のエミュレーション。ゲームの多くは浮動小数点演算を多用するから,効率よく動くようにと,この部分は何度も書き直した。 もう1つは自己書き換えコード(Self Modifying Code)の問題*9。自己書き換えコードは実行中に自分自身を書き換える(アルゴリズムを変更する)。だから,DREととても相性が悪いんだ。この問題の解決は僕らにとって大きなチャレンジだった。 DREはある程度まとめてコードを変換することで効率を上げる。その後にコードが書き換わると,せっかく変換したコードを捨てて改めてコードを生成し直さないといけなくなる。これが頻繁に起こるとパフォーマンスがとても下がってしまう。 悪いことに自己書き換えコードの手法はパフォーマンスを稼ぐためにゲームでよく使われる。だから,うまく対処しないとゲームがちゃんと動かなくなるんだ。 あとEricはハードウエアのリバース・エンジニアリングで苦労してたよね? Eric PCで使われているチップはドキュメントがしっかりしてないんだ。仕様書の内容と実際の動作が全然違うなんてことはざら。だから結局,実際のハードウエアで動作を確認し,エミュレーターを作っていくしかなかった。対象のハードウエアはなるべくスタンダードなものを選んだ。なかには,仕様書がしっかり出来ているという理由で選んだものもあるけどね,その方が作りやすいからさ。
*8 Quake,DOOMのいずれも米id Software社が開発した非常に人気のある3Dアドベンチャー&シューティング・ゲーム。QuakeはまだPC版しかない。 *9 自己書き換えコードはソフトウエア実行中の条件分岐で,自分自身を書き換えてアルゴリズムをダイナミックに変更する。と書くとかっこいいが,実は「行儀が悪い」と言われるプログラムの典型。Cなどの高級言語で開発されたプログラムではあまり見られない。 記事目次/前のページ/次のページ この記事は、日経MAC97年12月号(97年11月18日発行)掲載記事の抄録です。 |
Copyright 1993-1998 Nikkei Business Publications, Inc. All Rights Reserved. This page was last updated on Wed, Apr 15, 1998 at 11:19:51 PM. Site Developed by Rei Watanabe |