昔のゲームはアセンブラで出来ていたとか・・??

ぼずお
記事: 1
登録日時: 13年前
住所: 中部地方

昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by ぼずお » 11年前

現在、見下ろし視点型のARPGを開発をしています。

参考のため、SFCの代表的作品のプレイ動画なんかを眺めてました。
(聖剣伝説、ゼルダ、イースシリーズなど)
[youtube][/youtube]
[youtube][/youtube]

見ていて思ったのは、20年も前によくこんな作品を作れたなということです。
ゲームシステムもグラフィックも十分に高度(モノによっては現在の作品よりも)です。
現在の開発環境でもって開発しても、相当大きなコード・アセット規模になるでしょう。

それを高級言語もIDEもない時代にアセンブラで開発したというのだから、どんなに大変なことか想像が出来ません。
昔のプログラマはすごく優秀だったのでしょうか・・
当時はPCも大したものは無かったと思うのですが、どんな開発環境だったのかとか色々興味が尽きません。
最後に編集したユーザー ぼずお on 2014年1月25日(土) 17:33 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by softya(ソフト屋) » 11年前

> PC-8001(mkII)やFM-8/7やMZシリーズやX1シリーズにBASICコンパイラありましたよ。

MSXにもありましたね。MSXべーしっ君と言うアスキーらしい名前のやつが。

> 市販ゲームに使っているというのをけっこう大きく宣伝してました。

思い当たる会社が2から3社あります。ロードが多いことで有名でした。

市販マイコン・ゲームが全盛期になるとPC98でクロスアセンブラで開発してました。
PC-8801やFM-77やX1シリーズ、MSX2まで全部PC98でアセンブルしてます。

>逆にPC-9801やX68000、FM-TOWNSはアセンブラをよく使いました。

描画モジュールはアセンブラで、その他の部分をC言語とかですね。
MS-CのC言語とアセンブラをPC98の開発で使ってましたよ。
X68000やTOWNSは開発に参加しなかったので何を使っていたかよく知りませんが。

>特にX68000のアセンブラはCPUのアーキテクチャも相まってC言語よりも使いやすいなんて言われてました。

コンパイラ指向のCPUのアーキテクチャですからね。
結構とんでも無い命令があった記憶が・・・。

ISLe
記事: 2650
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by ISLe » 11年前

ロードが長いのは当たり前の時代でしたけどね。
移動するたびに画面に表示する画像をロードし直すアドベンチャーゲームとか。
カセットテープ版だとそのたびに何分も待たされて。

softya(ソフト屋) さんが書きました:結構とんでも無い命令があった記憶が・・・。
68000は、命令が特殊なのではなくて、レジスタが特殊でした。
むしろ特殊とは逆で、データレジスタ8個アドレスレジスタ8個をどんな組み合わせでも自由に使えるというものです。
8個目のアドレスレジスタはスタックポインタとして使われますが。
ポートI/Oではなくてメモリマップトでしたし非常にシンプルで分かりやすいものでした。

あとは、いまはインテルのCPUにもあるスタックフレームを一括で確保・解放する命令とかが前からあったってくらいですかね。
最後に編集したユーザー ISLe on 2014年1月26日(日) 19:00 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by softya(ソフト屋) » 11年前

思い出しました。ビット列をあつかう命令がありませんでしたっけ。

ISLe
記事: 2650
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by ISLe » 11年前

ビット演算命令に関してはインテル系と変わりないように思います。
アドレッシングにポストインクリメントとかプリデクリメントがあるので多バイトデータを扱うコードはシンプルに書けますね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by softya(ソフト屋) » 11年前

あっと、これですね。これを記憶していたようです。失礼しました68020以降です。
「M68000ファミリのビットフィールド命令」
http://homepage2.nifty.com/m_kamada/docs/bitfield.htm
と言うことは純正X68000では出来ませんね。

アバター
へにっくす
記事: 634
登録日時: 13年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by へにっくす » 11年前

何だかsoftyaさんとISLeさんでマニアックな会話が・・・(^^;
スレ主がついていけてるのかなと心配です 笑

私はPC9801FAが最初です
N88-BASIC、Turbo-C、Quick-C、MS-Cと使ってx86のアセンブラにうつりMASMも経験した後、ゲーム業界に入りました。
そのころはSEGA SATURN/PlayStationがゲーム花盛りだった記憶が。
SEGA SATURNもPlayStationもちゃんとしたデバッガの環境がありました。言語はどちらもCだったと思います。
その環境はとっっっってもお値段が高く、個人として購入は不可能だった記憶が・・・

そこ考えると今はホントお手軽かもしれませんね~

またSEGA SATURNのCPU(SH2)がRISCなのでx86(CISC)との勝手が違って戸惑ったことがありますね。今ではなつかしい。あっとPlayStationのR3000もRISCの一つか・・・
softya さんが書きました:セガのSATURNのVF/VF2は速度が出なかったので描画エンジン部分はフルアセンブラと聞いたことがあります。
私が入った会社では、速度が必要なゲームではなかったのでセガ提供のライブラリを使ってましたよ(そのライブラリがフルアセンブラなのかもしれませんが)。
最後に編集したユーザー へにっくす on 2014年1月26日(日) 23:08 [ 編集 3 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by softya(ソフト屋) » 11年前

SATURNのICE他開発キットがべらぼーに高かったので、PlayStationの開発キットが安く見えました。
あと途中で出た開発キットは、どちらも安くなってましたよ。それでも高いですけどね(^_^;)

業界人が語る開発ツール事情になってますね。

> 私が入った会社では、速度が必要なゲームではなかったのでセガ提供のライブラリを使ってましたよ(そのライブラリがフルアセンブラなのかもしれませんが)。

前期のは別で後期に出たのがVFで開発したライブラリだったような。結局私は使うチャンスが無かったんですが。
最後に編集したユーザー softya(ソフト屋) on 2014年1月26日(日) 23:03 [ 編集 2 回目 ]

ぼずお
記事: 1
登録日時: 13年前
住所: 中部地方

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by ぼずお » 11年前

>浮動小数点が扱えないマシンで開発されたゲームのソースを見せてもらったりすることがあるのですが

PS1では頂点計算に整数(固定小数点数)を使っていたので、ポリゴンに継ぎ目が出来たりしたらしいですね。

今では浮動小数点を当たり前のように意識せず使えますし、ポリゴン描画パイプラインすらライブラリやハードが面倒を見てくれるのでとっても楽ですよね。
色々お膳立てされても当時のゲームのレベルになかなか追いつけないのが悔しいです(笑)

> ISLe さん
> softya(ソフト屋)さん

そういう昔のハードのコアな話、とっても興味深いです。
今よりもずっと環境の進化が早かった時代なので、日々が楽しかっただろうなと想像します。


>描画モジュールはアセンブラで、その他の部分をC言語とかですね。
>MS-CのC言語とアセンブラをPC98の開発で使ってましたよ。

アセンブラは、ほとんど見かけたことがないのですが、算術ライブラリの実装にインラインアセンブラが埋まっているのを見たことがあります。
呼び出し回数が多く、速度が求められるところに使われるという感じでしょうか。
現在でいうと、コアなライブラリ部分はC言語で、上位レベルのコードはLuaで書くというような使い分けに通ずるものがありそうです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by softya(ソフト屋) » 11年前

> PS1では頂点計算に整数(固定小数点数)を使っていたので、ポリゴンに継ぎ目が出来たりしたらしいですね。

そもそもPS1とサターンはポリゴンのテクスチャがパースペクティブ変形しないので、継ぎ目が変になりやすいです。
特に三角ポリゴンしかないPS1は顕著に目立つ場合があります。サターンはスプライトの拡張なので四角形です。
※ 過去の記憶を頼りに書いているので嘘があったらごめんなさい。

アバター
へにっくす
記事: 634
登録日時: 13年前

Re: 昔のゲームはアセンブラで出来ていたとか・・??

投稿記事 by へにっくす » 11年前

> ※ 過去の記憶を頼りに書いているので嘘があったらごめんなさい。
いやそれで合ってると思います。
当時入っていた会社では初めは、PlayStationとSEGA SATURN用と同時開発してましたが、そのせいでよくPlayStationとSEGA SATURNで見た目が違ってしまうことがあり、のちにSEGA SATURNを切る羽目になりましたねえ・・・(-_-
※なぜPlayStationかというと、全て三角形でいた方が実は柔軟的だったからという記憶があります。見ようによっては確かに継ぎ目が目立ちましたけど、明暗とか細かい表現がしやすかったからと思っていますが。
最後に編集したユーザー へにっくす on 2014年1月26日(日) 23:31 [ 編集 2 回目 ]