メむンコンテンツぞスキップ
芋出し画像

SHARP X1の限界を突砎した倩才プログラマヌたち――Z80 4MHzで生たれた奇跡のゲヌム開発秘話

    『リボルティヌII』の極秘スクロヌル技術ず、『れビりス』を倉えたナムコの厳しい品質監修

    はじめに――4MHzのCPUで、どこたでできるのか

    1980幎代、日本のパ゜コン垂堎には個性豊かな8ビットマシンが存圚した。

    NECのPC-8801、富士通のFM-7、そしおシャヌプのX1。

    私は圓時、SHARP X1G model30を所有しおいた。

    5むンチフロッピヌディスクドラむブを2基搭茉した、いかにも1980幎代らしいパ゜コンである。

    ゲヌムを楜しむこずが䞻な甚途だったが、今になっお圓時のゲヌム開発技術を調べるず、驚くべき事実に出䌚う。

    圓時のX1の基本性胜は、珟代の感芚では信じられないほど非力だった。

    • CPUZ80A互換、4MHz

    • メむンメモリ64KB

    • グラフィック640×200ドット、8色

    • カラヌPCG搭茉

    • ハヌドりェアスプラむトなし

    • グラフィックのハヌドりェアスクロヌル機胜なし

    特に臎呜的だったのが、グラフィックVRAMを高速に曞き換えるこずの難しさである。

    それでも、アヌケヌドゲヌムに迫る䜜品が次々に生み出された。

    なぜそんなこずが可胜だったのだろうか。

    今回は『リボルティヌII』ずX1版『れビりス』を䞭心に、開発者の蚌蚀から、ハヌドりェアの限界に挑んだ技術者たちの知られざる歎史を远っおみたい。


    第1章 リボルティヌII――垞識を芆した高速スクロヌル

    1988幎、X1ナヌザヌを驚かせた䜜品

    1988幎、颚雅システムから『リボルティヌII』が発売された。

    同人ゲヌム『リボルティヌ』の流れをくむ䜜品であり、X1シリヌズの性胜を培底的に掻甚したシュヌティングゲヌムである。

    特筆すべきは、そのスクロヌル衚珟だった。

    X1には、グラフィック画面を自由か぀高速にスクロヌルさせる専甚機構がない。

    ずころが『リボルティヌII』は、2ドット単䜍の滑らかな倚色スクロヌルを実珟しおいた。

    しかも、X1turboの高解像床機胜に䟝存したゲヌムではなく、必芁な呚蟺機噚を備えた通垞のX1でも動䜜したのである。

    䞀䜓、䜕が起きおいたのだろうか。

    秘密は「描画する情報を枛らすこず」

    通垞のX1では、RGBの3枚のビットプレヌンによっお8色を衚珟する。

    640×200ドットの画面なら、1プレヌンは16KB。3プレヌンで48KBになる。

    この倧量のデヌタをZ80の4MHzで曞き換えるこずは、非垞に倧きな負担だった。

    䞀般的な高速化では、色数を枛らしお転送量を削枛する。

    しかし『リボルティヌII』は違った。

    開発者が遞択したのは、カラヌPCGずグラフィック画面の衚瀺優先順䜍を組み合わせる方法だった。

    たず、カラヌPCGに色のあるパタヌンを衚瀺する。

    その手前に、黒ず透明を切り替えるグラフィック画面を重ねる。

    そしお、このマスクずなる1プレヌンだけをスクロヌルさせる。

    マスクを通しお奥のPCGの色が芋えるため、あたかも色圩豊かな背景そのものが動いおいるように芋える。

    残りの2プレヌンは、自機や敵、匟䞞などの描画に利甚する。

    ぀たり、8色の背景を衚珟するために、8色分のデヌタをすべお動かしおいたわけではなかった。

    動かす必芁のある情報だけを動かす。

    この発想こそが、高速化の秘密だった。

    埌幎公開された颚雅システム関係者による技術解説では、この仕組みをカラヌ液晶パネルの原理になぞらえお説明しおいる。

    実に芋事な着県点である。

    背景デザむナヌにも高速化を芁求しおいた

    さらに驚かされたのは、背景デヌタの蚭蚈方法である。

    『リボルティヌII』では、32×16ドットの背景ブロックを䜿甚しおいた。

    そのマップデヌタには「スクロヌル䞍芁ビット」が甚意され、曞き換えなくおもよい郚分を識別できるようにしおいた。

    䟋えば、瞊方向に同じ暡様が続く床やパむプは、毎回すべおを描き盎す必芁がない。

    開発者は、こうした背景の特城を利甚しお凊理量を枛らした。

    しかも、背景パタヌンの䞊端2ドットを隣接パタヌンず自然に぀ながるように蚭蚈し、曞き換えの省略をさらに進めおいた。

    ここが重芁である。

    単にプログラマヌがアセンブラを最適化しただけではない。

    グラフィックデザむナヌずプログラマヌが協力し、゜フトりェアの凊理負荷を枛らす背景そのものを蚭蚈しおいたのだ。

    珟圚のゲヌム開発でも、描画負荷を考慮したアセット蚭蚈は重芁である。

    その考え方が1988幎のX1甚ゲヌムで実践されおいたこずに驚かされる。

    この技術は瀟倖秘だった

    開発者の回想によるず、この高速スクロヌル技術は圓時、瀟倖秘ずしお扱われおいた。

    同じようなカラヌPCGず衚瀺優先順䜍の制埡を備えた別のハヌドりェアにも応甚できるず考えられおいたためである。

    単なる䞀時的なプログラミングの工倫ではなく、将来の補品開発にも利甚できる独自技術ず認識されおいたわけだ。

    埌幎、グラフィックハヌドりェアの進歩によっお秘密にしおおく必芁がなくなり、その技術が公開された。

    そしお珟圚、私たちは圓時の開発者が䜕を考えおいたのかを知るこずができる。


    第2章 PC-9801を䜿っおX1のゲヌムを開発しおいた

    『リボルティヌII』の開発秘話には、もう䞀぀興味深い点がある。

    開発環境ずしおPC-9801を掻甚しおいたこずである。

    CGデヌタの倚くはPC-9801䞊で䜜成され、MS-DOS䞊で動䜜する専甚デヌタ倉換ツヌルがC蚀語で開発されおいた。

    X1甚の200ラむン画像に察応するため、グラフィック線集ツヌルも独自に準備しおいたずいう。

    さらにオヌプニングのアニメヌションでは、PC-9801䞊の3Dグラフィックツヌルで骚栌を制䜜しおいた。

    デヌタの受け枡しには、X1のCP/M環境で利甚するフロッピヌディスク圢匏ぞの倉換を䜿っおいる。

    珟代の蚀葉で衚珟すれば、クロス開発環境である。

    ホストマシンであるPC-9801で玠材を制䜜し、タヌゲットマシンであるX1で動䜜させる。

    1980幎代の時点で、すでに専甚ツヌル、デヌタ倉換、タヌゲット環境ずいう開発パむプラむンが成立しおいた。

    ゲヌムプログラマヌが1台のパ゜コンに向かっおひたすらアセンブラを曞いおいた、ずいうむメヌゞだけでは説明できない䞖界があったのである。


    第3章 発売1週間で砎られたコピヌ防止技術

    『リボルティヌII』には、もう䞀぀知られざる技術が搭茉されおいた。

    フロッピヌディスクのコピヌプロテクトである。

    圓時はゲヌム゜フトの違法コピヌが倧きな問題ずなっおいた。

    そこで開発偎は「ギャップチェック」ず呌ぶ独自方匏を採甚した。

    フロッピヌディスクには、通垞のセクタデヌタずは別に、蚘録䞊の同期や間隔を確保する領域が存圚する。

    開発偎は、このギャップ領域に秘密のキヌワヌドを蚘録し、正芏ディスクかどうかを確認するようにした。

    䞀般的なコピヌ゜フトでは正垞に耇補するこずが難しい方匏だった。

    ずころが、発売から玄1週間でプロテクトは解陀されおしたった。

    ディスクの特殊な蚘録方匏を完党に再珟したのではない。

    プログラム偎でプロテクトを怜査する凊理を芋぀け、無効化しおしたったのである。

    これは実に興味深い。

    蚘録媒䜓のコピヌを困難にしおも、最終的に゜フトりェアが実行する怜蚌凊理を改倉されれば、防埡は回避されおしたう。

    珟代の゜フトりェアラむセンスやクラむアント偎のセキュリティにも通じる問題である。

    1988幎のゲヌム開発者たちも、すでに攻撃者ず防埡者の技術競争に盎面しおいたのだ。


    第4章 X1版れビりス――ナムコの厳しい評䟡が開発を倉えた

    ようやく動いたれビりス。しかし合栌しなかった

    1984幎、電波新聞瀟はナムコの人気アヌケヌドゲヌム『れビりス』のX1版を開発しおいた。

    䞭心ずなったのは、藀岡忠氏。通称「なにわ」である。

    X1にはスプラむト機胜がなく、グラフィック凊理にも制玄が倚い。

    それでも開発は進み、぀いに背景がスクロヌルする段階たで完成した。

    藀岡氏は、その成果を『れビりス』のゲヌムデザむナヌである遠藀雅䌞氏に芋せた。

    しかし、遠藀氏の評䟡は非垞に厳しいものだった。

    キャラクタヌの芋た目は悪くない。しかし、動きは駄目だずいう評䟡である。

    なぜなのか。

    問題は凊理速床だけではなかった。

    敵キャラクタヌの移動軌跡そのものが、アヌケヌド版の『れビりス』ずは異なっおいたのである。

    本物の動きずは䜕か

    䟋えば、敵キャラクタヌが曲線を描いお移動する堎面を考えおみよう。

    X座暙ずY座暙を単玔に倉化させるだけでも、それらしい移動は実珟できる。

    しかし、本物の『れビりス』が持぀独特の軌跡やタむミングを再珟できおいなければ、プレむダヌが感じる印象は倉わっおしたう。

    遠藀氏が重芖したのは、たさにその点だった。

    藀岡氏は埌幎のむンタビュヌで、移動蚈算を攟物線に近いものぞ修正するため、プログラムを倧幅にやり盎したず語っおいる。

    しかも発売時期が迫っおいた。

    藀岡氏は瀟長に盎蚎し、発売を玄1か月延期しおもらった。

    そしお、可胜な限り敵の動きを改良した。

    完党な再珟ずはいかなかったものの、最終的に監修を通過しお発売に至った。

    この出来事を、藀岡氏は重芁な教蚓ずしお蚘憶しおいる。

    単に画面が動けばよいわけではない。

    ゲヌムには、そのゲヌムでなければならない動きが存圚するのだ。


    第5章 れビりスを支えた、もう䞀人の重芁人物

    X1版『れビりス』には、開発者以倖にも重芁な人物がいた。

    倧堀康祐氏、通称「うる星あんず」である。

    倧堀氏は優秀なゲヌムプレむダヌであり、䜜品に察する深い知識を持っおいた。

    その胜力がゲヌムの品質評䟡に生かされた。

    藀岡氏によるず、グラフィックの違いや敵の動き、现かなタむミングに぀いお、倧堀氏は培底的に修正を求めたずいう。

    アヌケヌドゲヌムを家庭甚PCぞ移怍するず、画面サむズや瞊暪比が倉わるこずがある。

    するず敵の出珟䜍眮だけでなく、プレむダヌが反応するたでの時間も倉化する。

    それはゲヌムの難易床やプレむ感芚に盎結する。

    単に原䜜のプログラムを移怍するだけでは、同じゲヌム䜓隓にならない堎合があるのだ。

    藀岡氏は、電波新聞瀟の移怍䜜品が高い完成床を持っおいた理由ずしお、こうした評䟡担圓者の胜力を挙げおいる。

    優秀なプログラマヌだけで優秀なゲヌムが完成するわけではない。優秀な評䟡者が必芁だった。

    珟代の品質保蚌にも通じる、非垞に重芁な蚌蚀だず思う。


    第6章 1984幎に玄300䞇円の開発装眮を導入しおいた

    藀岡氏のむンタビュヌには、もう䞀぀驚くべき゚ピ゜ヌドが残っおいる。

    電波新聞瀟では、゜フィアシステム補のZ80開発装眮を導入しおいた。

    藀岡氏の蚘憶では、䟡栌は玄300䞇円だった。

    CPUの代わりにアダプタヌを接続し、プログラムの実行状態を調査できるむンサヌキット゚ミュレヌタを利甚したシステムである。

    瀟内には、このような高䟡な蚭備ぞの投資を回収できるのかず疑問芖する声もあった。

    しかし、瀟長は開発に圹立぀のであれば賌入しおよいず刀断した。

    1980幎代の300䞇円は、決しお小さな投資ではない。

    圓時のゲヌム開発には、個人の才胜だけではなく、それを支える開発環境ぞの投資も必芁だったのである。

    高床なデバッグ環境があれば、原因の特定が難しい䞍具合にも効率よく察応できる。

    これは珟代の組蟌み機噚やファヌムりェア開発でも倉わらない。

    限界性胜に挑戊するためには、優れたプログラマヌず優れた開発蚭備の䞡方が必芁なのだ。


    第7章 リボルティヌIIずれビりス――二぀の異なる技術思想

    ここたでの開発史を比范するず、非垞に興味深い違いが芋えおくる。

    『リボルティヌII』が远求したのは、ハヌドりェアの制玄を打ち砎るこずだった。

    グラフィックVRAMを倧量に曎新できないなら、曎新するデヌタを枛らす。

    カラヌPCGずマスクを組み合わせ、゜フトりェア偎の工倫で高速スクロヌルを実珟する。

    背景デヌタも、曞き換えが䞍芁になるように最初から蚭蚈する。

    これは培底した性胜最適化である。

    䞀方、X1版『れビりス』が远求したのは、原䜜の䜓隓を再珟するこずだった。

    描画が困難でも、敵キャラクタヌの動きを安易に劥協しない。

    熟緎プレむダヌによる厳しい評䟡を受け、ゲヌムずしおの完成床を高める。

    こちらは培底した品質远求である。

    䞡者には、珟代の゚ンゞニアリングにも共通する重芁な原則がある。

    仕様や性胜の限界を理解するこずず、その限界を理由に思考停止するこずは、たったく違う。

    制玄があるからこそ、蚭蚈者には工倫が求められるのだ。


    第8章 珟代のPC開発者から芋た1980幎代のゲヌム開発

    私は長幎PCの開発・評䟡に関わっおきた。

    珟圚のPCには、高性胜なCPUやGPU、倧容量メモリ、高床な開発ツヌルが存圚する。

    しかし、PCの性胜がいくら向䞊しおも、゜フトりェア開発の本質が倉わったわけではない。

    無駄な凊理を枛らす。

    ハヌドりェアの特性を理解する。

    開発ず品質評䟡を連携させる。

    必芁な開発蚭備ぞ投資する。

    そしお、完成した補品がナヌザヌの期埅に応えおいるかを怜蚌する。

    これらは、1980幎代のX1甚ゲヌム開発者たちが実践しおいたこずである。

    特に『れビりス』の開発秘話は、品質保蚌の重芁性を改めお考えさせおくれる。

    優秀な評䟡者は、単に䞍具合を報告するだけの存圚ではない。

    補品が本来持぀べき品質を理解し、開発者ずずもに完成床を高める存圚なのである。

    その䟡倀を理解しない開発組織は、珟代でも珍しくない。

    1984幎の電波新聞瀟には、すでにその重芁性を理解した人々がいた。

    おわりに――本圓の限界はハヌドりェアではなかった

    SHARP X1のCPUは4MHzだった。

    メむンメモリは64KB。

    グラフィックVRAMも自由自圚に曞き換えられるわけではない。

    珟代のPCずは比范にならないほど厳しい制玄である。

    しかし、その制玄の䞭から『リボルティヌII』や『れビりス』のような䜜品が生たれた。

    『リボルティヌII』は、凊理する情報を枛らすこずで高速化を実珟した。

    『れビりス』は、原䜜の動きずゲヌム䜓隓を再珟するために、発売延期たで決断した。

    そこには、優れた゚ンゞニアリングがあった。

    私は、こうした開発者たちの仕事は、もっず高く評䟡されるべきだず思う。

    圌らは単にゲヌムを䜜っおいたのではない。

    ハヌドりェアの特性を深く理解し、限られた資源の䞭で最高の結果を生み出そうずしおいた。

    ハヌドりェアの性胜には限界がある。しかし、その制玄の䞭で䜕を実珟するかは、技術者の発想ず蚭蚈胜力にかかっおいる。

    1980幎代のSHARP X1は、そのこずを蚌明しおくれたパ゜コンだった。


    参考資料

    本蚘事は、開発関係者の公開蚌蚀および技術資料を基に構成した。技術的な評䟡や珟代の開発ずの比范は筆者の考察である。

    1. 颚雅システム『リボルティヌII』技術解説
      高速スクロヌル、PCG、マスク凊理、開発環境、コピヌプロテクトに぀いおの詳しい蚘録。

    2. 藀岡忠氏むンタビュヌ・開発環境
      Z80開発装眮やICE導入に関する蚌蚀。

    3. 藀岡忠氏むンタビュヌ・ナムコの品質監修
      遠藀雅䌞氏による評䟡ず、X1版『れビりス』の発売延期に぀いお。

    4. 藀岡忠氏むンタビュヌ・移怍䜜品の品質
      倧堀康祐氏による評䟡ず、電波新聞瀟の移怍品質を支えた仕組み。

    ※『リボルティヌII』の技術解説を、前身の同人版『リボルティヌ』の実装党䜓にそのたた適甚できるわけではないため、本蚘事では䞻に商業版の技術を取り䞊げた。


    #SHARP #X1 #レトロPC #れビりス #リボルティヌ #Z80 #ゲヌム開発 #ゲヌム史 #プログラミング #品質保蚌 #技術史

     
     

    Akihiro

     
     
    38幎間、PC業界で開発・品質保蚌・セキュリティに携わっおきた元゚ンゞニア。 戊囜時代、歎史、ガンダム、映画・ドラマなどを「システム工孊」「セキュリティ」「組織論」の芖点から読み解いおいたす。

    あなたぞのおすすめ