エミュレータで動くゲーム制作

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
エミ太

エミュレータで動くゲーム制作

#1

投稿記事 by エミ太 » 10年前

失礼します。
プログラムを熟知されている方々にいくつかお尋ねしたいことがございます。
もちろん自分で検索してネットを漁ってはみたものの、
ただでさえ未熟者な自分なので明確な情報を得られませんでしたので
どうか教えて頂けないでしょうか?

1、巷でもいくつか配布されていますNESエミュレータを
  自分で作るとすれば、どんな知識が必要でしょうか?
  必要な技術力、また、その難易度を知りたいです
  存在する種類が数少ないので相当な手練じゃないと制作出来ないものですか?
  ここの方々でも根を上げるレベルでしょうか?

2、稀にそれらNESエミュレータで、ファミコンROMでは無く、
  自分で作ったゲームを実行させている人がいます。
  そのファイルの拡張子はnesでした。
  自分で作ったゲームを、NESエミュレータで実行させるまでの工程を教えて頂きたいです。
  1からアセンブラで制作し〜とは思えないのですが
  例えばC言語なりで作ったレトロ風の自作ゲームを
  NESエミュで実行出来るように変換?するようなものがあるということですか?
  無いならば、それを自作出来るということでしょうか?

3、これこそが本題なのですが、
  自分の作ったゲームたちを実行出来るエミュレータを制作する、
  なんてことは可能ですか?
  また、そういうのってよく行われているのでしょうか?
  ほとんど見た事ないのですが。
  例えば、自分はC++とDXライブラリで数本ゲームを作りました。
  それは、ダイレクトXをインストールしたwin上で実行出来ますよね。
  そのゲームらを実行出来るエミュレータを作れば、
  os関係無く、そのエミュレータの中で遊べるんじゃないかと思うんですが。
  、、あれ?それって結局Windowsエミュレータ作れってこと?、、あれ?
  なんか自分でもよくわからなくなりましたが、
  要は、DXライブラリで制作した自作ゲームが立ち上がる
  エミュレータが欲しいと考えているのです。
  これって言ってること、めちゃくちゃでしょうか?
  

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: エミュレータで動くゲーム制作

#2

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

1、
ここの回答者でも実装したこと有る人は殆どいないと思います。
手間が大変かかり、時間を膨大に必要とするのとハードウェアの知識も豊富に必要です。
出来る人は何人かいると思いますけど。

>必要な技術力、また、その難易度を知りたいです

そうですね。アセンブラが最低限の知識で、それにNESのハードウェアの知識がないと作れません。
オープンソースのNESエミュがあるので参考にして下さい。
「FCEUX」
http://www.fceux.com/web/home.html
これを解析できるか、サンプルがなくても作り方がわかる人にしか作れないでしょう。
まずは、6502CPUのエミュから始めましょう。

2、
NESでしたら性能的にアセンブラです。
C言語だと簡単なのなら出来るけど実用にならないでしょう。
「NES研究室」 アセンブラから、C言語の環境まで紹介されています。
http://hp.vector.co.jp/authors/VA042397/nes/

>例えばC言語なりで作ったレトロ風の自作ゲームを
>NESエミュで実行出来るように変換?するようなものがあるということですか?

ないです。
PSのゲームをファミコンにはコンバートできませんよね。
0からコードを書いての移植も困難です。
つまり、望まれているのはそんなレベルです。

>  無いならば、それを自作出来るということでしょうか?

NESのゲームを自作している人はZEROから書いています。


3、
はい。むちゃくちゃです。
DirectXをLinuxやMacに移植する強者が現れないのは難易度が超絶レベルかつ作業量が数百人で何年ものレベルだからです。
ましてや、それをエミュレートするなど不可能と言って良いと思います。
既に存在する多くのOSで動くエミュ上で動くゲームを作るほうが現実的です。
なのでアセンブラならSFC=SNESぐらいか、C言語だとGBAやPS1エミュ用のゲームを作ったほうが良いです。
なお、全部ハードウェアの知識がないとゲームは作れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: エミュレータで動くゲーム制作

#3

投稿記事 by ISLe » 10年前

1.
エミュレータは仕事関係でもいろいろ作ったことがあります。

エミュレートしたい対象のハードとそこで動くソフトを自作できるレベルの知識は最低限必要です。

エミュレータを作って動かす対象のプラットフォームについても特殊な知識が必要です。
再現度によってピンキリの部分もありますが、ふつうのゲーム制作ではほとんど使わないような技術を使います。
なので資料はリファレンスマニュアルだけを読み込んで自力で実装できるくらいの能力も必要ですね。

2.は既にsoftyaさんが書いているので略。

3.
上に書いたようにエミュレータはプラットフォームごとに作らなければいけません。
しかもふつうにゲームを作るよりもはるかに難易度が高いです。
それでいてその上で動くソフトの動作速度はネイティブよりもずっと遅くなります。

LinuxならWineを使えば、まったく同じではないですが、動くかもしれません。
Wineはウィンドウズの仕組みを逆手に取ってAPIをすげ替えてウィンドウズの実行形式をLinuxで動かすソフトです。
NESとかのゲーム機エミュレータとは性格が違います。


わざわざエミュレータを利用するよりもJavaやFlashでゲームを作るほうが良いのではないでしょうかね。
移植を前提にソースコードを工夫するほうが汎用性の高い技術を伸ばせると思いますけど。

閉鎖

“C言語何でも質問掲示板” へ戻る