Back to Home
T o p
日経MACレポート
日経MACレポート

ホット・ニュース
ホット・ニュース

バイヤーズ・ガイド
バイヤーズ・ガイド

インターネット広場
インターネット広場

日経MACレポート
日経MACレポート

記者の目
記者の目

日経MACから
日経MACから


Nikkei MAC CD目次
Nikkei MAC CD目次

NIKKEIMAC.COM
NIKKEIMAC.COM

日経BP社 BizTech
日経BP社 BizTech

自己書き換えコードが大きな難関だった
[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日発行)掲載記事の抄録です。

■

日経BP社 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