トップページgamedev
1001コメント382KB

セガサターンのエミュをみんなで作るスレ

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。03/03/02 11:59ID:CduGclze
SSエミュは壊滅の危機に瀕している。
そこでだ、有能な2ちゃんねらーが協力して新たなエミュを作ろうじゃないか。
じゃあ後よろしく
0521名前は開発中のものです。03/03/26 04:40ID:DZgqcbE/
>516
パワードリフトのオリジナル音源風のBGMのとき
FM音源を使用してた(ような気がします)
ただ、ゲーセンで聴いたときとずいぶん変わってたような。

あれを家でやれる日が来るとは思ってなかったなあ。。。
最終面の急カーブでわざと赤白の鉄柱にぶつかって復帰する
裏技がうまくできん、、、よって隠し面のハリヤーもみてまへん。
0522あぼーんNGNG
あぼーん
0523名前は開発中のものです。03/03/26 04:44ID:DZgqcbE/
FM音源は68K用のをwinに移植したx68sound.dllがあります。
それを利用するとしましょう。
0524あぼーんNGNG
あぼーん
0525名前は開発中のものです。03/03/26 04:51ID:DZgqcbE/
もひとつ。
ソースがどうしようもなくぐちゃぐちゃになってしまって、
わけわかんないとこでエラーで落ちてもどこを修正してよいか
手の施しようがないというのは、まさに身に覚えがあります。
それはエラー処理を考慮してない場合です。
今作りかけのゲームがまさにその状態。。。ブルーバックが怖くて
自分の作ったゲームで遊べない!!三年かかって完成しない!

・エラーログをとる
・エラーメッセージダイアログを表示する

ことを必ずすべきです。
0526AZUCO03/03/26 04:52ID:hfc0EyC9
>>521
アウトランやスペハリでもそうなのですが、純粋にあの頃のSystem16派生のマザーだと
PCM音源部分が足らないので、FMx7+PCMx4という構成で組みなおしてるかもしれません

サターンのFM音源はレートもCDと同じだし、多分最強のFM音源だと思います。
しかし普通に考えれば、PCMx32の方が使い勝手も良いのでわざわざ音色をつくらにゃ
ならんFM音源は使われないと思いますが・・・・・・

昔は音を聞いてパラメータが脳内で作れたものだが、今は無理だろうなぁ・・・・・
ちなみに好きなアルゴリズムは0と5です(w
FM音源の話題はやばいね。ある年齢にはめちゃくちゃストライクゾーンの話題だから(w
0527あぼーんNGNG
あぼーん
0528AZUCO03/03/26 04:57ID:hfc0EyC9
>>523
駄目です。理由は>>526参照。

>>525
基本的にこのあたりは、アサートを積極的に利用すべきですね。

ただ、マルチスレッドとか、デストラクタで処理が入ってる場合は、致命的エラー>即終了
とはなかなか逝きませんが。

ちなみにAS1がぐちゃぐちゃやーいうとんのは、デバッグコードと、リリースコードの分離が
出来ない部分についてです(直すのもダルイ:汗)
0529あぼーんNGNG
あぼーん
0530名前は開発中のものです。03/03/26 07:18ID:UZfyW537
雑談モードのスイッチ入りますなぁ>FM音源

サンダーフォースの移植でもFM音源使われてなかったんだよね。
CDDAだった。
しかもステージの途中でぷっつり途切れてループするの。禿しく萎えたなぁ…

当時、あまりFM音源使ったのにお目にかかれなかったのは事実ですね
移植物なら当時のパラメータ持って来れば良いような気もしてたんだけどねぇ…

>>AZUCO氏
アルゴリズム0と5って……(藁

今更ここで語らなくてもみな承知してますが、FM音源にはFM音源のよさがある。
PCMが究極ではなかったはずで、だからこそセガはわざわざFM音源使えるようにしてたはずなのに…
ま、なんにせよ、今FM音源がつかえないのは寂しい限りですね。

FM音源エミュをMIDIに対応させたいと思ってた事も有るんだけどねぇ。
エミュをデバイスとして登録し、プレイヤー側でそれを使うようにするの。
まぁ、エクスクルーシブの嵐になるのは目に見えていたわけだが。
MMLじゃ若者にアピールできねぇよなぁ…

プリセットの音色をとりあえず入れておいて(GM程度)、プログラムチェンジで一通り使えるようにして…
とかいろいろ考えてたんだけど。

スレとは全然関係ない上に取り留めの無い話スマソ。
0531名前は開発中のものです。03/03/26 08:13ID:eTEDj41C
激しく質問。
・・・あ、俺は第三者ね。

>という論点で、各自最適と思われる方法を提示せよ。締め切りは23日中まで。

SSのアーキテクチャを勉強して、メモリの使われ型も吟味した上で
アロケーションテーブル、リスト、またはそれに変わる第三の方法の
パフォーマンス、実装コストなどを考慮した上で、
最適な方法を挙げろ、、、って事じゃないんですか。

mame見てリストパクって実装するとか、そう言うレベルだったのでしょうか?

あと、もう一つ。
第三者がプログラムを書いて、いきなり出しちゃっても良いんでしょうか
実装の提出が求められているのか判断付かないし、プログラマが既に居るようなので
第三者が出すのは控えた方がいいのかな、って思ってたので。
0532あぼーんNGNG
あぼーん
0533AZUCO03/03/26 09:12ID:RyFlh54s
>>531
そうです。だいたいそういう想定で設問してます。

まぁぶっちゃけ言っちゃうと、シャドウィングが増える時点でリスト方式はかなり効率が
悪くなると思いますし、実装する人によって実装コストは大きく変わってきます。
(そういう意味で言うと、パクリも現実的な手法の一つにはなってくるかもしれません)

がー、要するに、自分で考える事に大きい意味があるのであって、はっきりいってベターな
方法は俺が提示した物で良いと思います(流石にbestとは思ってないが)
その考える過程で、自分が何を知らないのか、何を学ぶべきなのか、その辺もOJTで
やるのがわかりやすいやり方なのかなと(いきなり本を読めというよりは目的意識が
はっきりするかなと)

第三者がいきなりプログラム出しちゃっていいのかーという部分は、今回のアドレス
デコーディングの部分については、手法についての議論がメインですので、ちょっと違う
かなと思います。

個人的な想定では(これは忘れていたので、本来は最初に決めるべきですが)デバッグ
関連のUIをどういう形式で持つかという部分を検討しようかと。
んで、CPUエミュレーションの部分をとりあえずやりますか、という段になって初めて、
コードを書き始めるわけで、それまでは設計レベルの話かと思います。
(この辺はかなり俺の脳内で決めてた話なんで、わかりにくくてすいません)
0534AZUCO03/03/26 09:28ID:RyFlh54s
>>530
FM音源が載ってる意義は、やっぱり開発コストの少なさじゃないですかね?
wave tableのコストが結構馬鹿にならないと思うので・・・・・・
恐らく世の中の流れ的にはNamco System2あたりから完全にMIDIで音楽作ってるのでは?
グラディウス4なんかスタンダードMIDIファイルがROMに埋まってますし(汗

0はともかく5は珍しいのでは?(w
多分大概みんな4でデチューンでうはははーって感じでしょうが、そうなると、音が全部似て
くるんですよね(ってベースがどんな曲でも必ずチョッパーくさいアタックガキガキの音色
を使ってた俺が言うのもなんですが)
PSGのデチューンのかけ方知ってたらまた違ってたかもしれませんが・・・・・・・・(w

あと、FM音源のMIDIは俺も考えましたね(w
サウンドブラスター+PCで外部MIDI機器としてコントロールできるんじゃないかーとか(w
音色セットはやっぱエクスクルーシブかなーとか。

MIDIといえば、学生の頃、EMS or XMS を使ってDOS上でバックグラウンドで演奏するソフト
作ってたなぁ・・・・・・・・全部アセンブラで(w 激しくだるくなってやめましたが(w
スレとは全然関係ない上に取り留めの無い話スマソ。
0535あぼーんNGNG
あぼーん
0536hrk_hys03/03/26 10:48ID:s7BnZW27
>>519
すんませんちょっと忙しくて
あんまし勉強も出来てません
やめるつもりは無いんでまあテキトーに見守っててください


後メモリのことは調べてみても何がなんだか…
何か簡単なものから理解してか無いとつらそうです。
0537あぼーんNGNG
あぼーん
0538あぼーんNGNG
あぼーん
0539あぼーんNGNG
あぼーん
0540名前は開発中のものです。03/03/26 11:41ID:mjxveOs+
【技術】★DOAX改造専用スレ★【結集】
http://game2.2ch.net/test/read.cgi/gameover/1048645945/l50

0541あぼーんNGNG
あぼーん
0542名前は開発中のものです。03/03/26 13:05ID:Ema51F+G
XM7のソースは一部ですが読んだことがあります。参考になりました。
メインマシンがP3だった頃、アムノークが処理落ちするので、直線補間LSI部分の
コードがどうなってるのかな、って覗いただけなんですが・・・。
エミュレーションっていうのはもっと泥臭いことをやってるんでは、という
先入観があったので、シンプルで忠実なエミュレーションのコードにびっくりしました。
そしてたがが数MHzで動く8ビット機とはいえ、平行して動作する専用チップの動作速度に
あなどれないな、と思いました。
0543あぼーんNGNG
あぼーん
0544あぼーんNGNG
あぼーん
0545名前は開発中のものです。03/03/26 20:05ID:eTEDj41C
>>533
了解しました、ROMに徹することにします
エミュレータ制作は興味あるところですが、
複数で進めるプロジェクトの場合、
参加してしまうと途中で投げ出すわけにも行かないんで。

>>536
>やめるつもりは無いんでまあテキトーに見守っててください

これは流石に失礼何じゃないかと思ったよ。
0546あぼーんNGNG
あぼーん
0547AZUCO03/03/26 23:33ID:hfc0EyC9
>>545
あー、ソース出すのが「違う」かな?というのは、今回の話であって、
まぁそれも、俺の判断としてはどちらなのか、といえば、ってことですから、
話の途中でメタ的な感じでアップされるとかいうのは全然あると思いますし、
仮に本格的なのがアップされても「それは違うだろう」とかいうことにはならないです。

っつーか、リソース的に贅沢な状況ではないので、どんどん参加できる所はして欲しいです
ややこしい事逝ってすいません。

っつーか、ある程度スキルあるが故に、こういう話聞いてて圧倒的な量の工数が見えちゃっ
て「こりゃー本格的に首突っ込むと恐ろしい事になるな」と、分かるからあえて発言してない
人がいると思うんですけど、そういう人にも恐れずに参加して欲しいです(w
0548PI.03/03/26 23:56ID:rgyxhDcM
XM7のソースの話が出たついでに。542さんが書いたようにハードウェアで
処理するチップが載っていた場合はやはり速度的に面倒になります。
そのハードウェアが高速で動作しているように仮想CPUに見せかける必要
があるため、ハードウェアエミュレーションを一気にやって、仮想CPUに
割り当てるサイクル数は逆に少なくするといった感じです。ただ全体の
進行を考えるとCPUを遅くするわけにはいかないので、結局エミュレータ
の負荷が急に増えることになります。

X68000エミュレータXM6のソースもいずれ公開します。こちらはMFCを使い
C++に依存したコードになっています。ベースクラスとしてクラスDevice、
その派生としてクラスMemDeviceを定義し、すべてのメモリマップドデバ
イスはMemDeviceの派生クラスとして表現しています。MemDeviceは仮想関数
ReadByte/ReadWord/WriteByte/WriteWordを持ち、派生クラスでI/O処理を
記述する構造です。親クラスとしてVM(Virtual Machine)クラスがあり、
全てのデバイスクラスを単方向リンクで所有しています。
0549名前は開発中のものです。03/03/27 00:08ID:gXSO4Hx4
なんだAZUCOがいるじゃねえか・・・本家サイトのリンク切れの嵐は直りました?
0550あぼーんNGNG
あぼーん
0551名前は開発中のものです。03/03/27 00:39ID:xecT1eEv
メモリマップドI/Oマップって、メモリに書き込んだらその数値(やフラグ)がデバイスに逝くって事?
メモリとI/Oの関係って不動なんだろうか?それとも何かしたらアドレッシングがコロっと変わるんだろうか?

厨な質問&横槍スマソ
教えてアルゴマ〜ン

0552AZUCO03/03/27 01:06ID:ZxU9kh5/
>>548
あー俺も似たような実装です。

ただ、C++初心者なので、基底クラスDeviceから一気に最終のデバイスのクラスに
逝きますが・・・・・
メソッドは、R/Wがそれぞれ1・2・4byteですね

PI.さん的には、VMという概念を入れた所にブレイクスルーがあるとページに書いてありまし
たけど、実際にはどういう役割を持たせてるんでしょうか?(VMクラスに)
0553AZUCO03/03/27 01:09ID:ZxU9kh5/
>>551
基本的にデバイスのアドレスは変わりませんが、シャドウィング等で表現方法は変わります
サターンでは符号拡張を使って省略して(?)アドレスを表現してます。
0554あぼーんNGNG
あぼーん
0555PI.03/03/27 01:29ID:9pBceUaI
VMの役割としては、まず全デバイスに対する一括処理、初期化・リセット
・状態セーブロード・設定変更などです。外部からVMに対してリセットを
指示するとVMが全デバイスにリセットを行わせるといった感じです。

それとデバイスの検索機能、つまりあるデバイスが別のデバイスのポイン
タを欲しい、と思ったときにVMが調べてくれる機能。XM6では4バイトのID
で表現していますので、例えばDMACが取りたかったら次のように書けます。
DMAC *pDMAC = (DMAC*)vm->SearchDevice(MAKEID('D', 'M', 'A', 'C'));

最後にX68k特有の機能、電源スイッチの状態や電源の状態、ブートデバイ
スなどを管理しています。(X68kでは電源スイッチ状態!=電源状態です)

サターンの話題とは離れてきたのでこのへんで。
0556名前は開発中のものです。03/03/27 01:41ID:sEamF0VK
>>553
シャドウはタダのエイリアスでいいんですよね。

それから、SSにはcachedのアドレスと、キャッシュスルーするアドレスが有りますが、
エミュレータの場合はキャッシュ無視していいんですか?
0557あぼーんNGNG
あぼーん
0558名前は開発中のものです。03/03/27 02:33ID:qZ2fF5UK
>絶対的に君らはスキルが欠乏している。結果を急いでも駄目です!
といいつつAZUCOさん自身が急ぎすぎてるように見えます。
ほかの人がそれほど実機を理解してるわけでもないし、資料関連に目を通す
だけでも結構かかるし。
興味はあるけどスキルがないからうちこみどころもまだわからんって感じ
の人が多いんじゃないかなぁと。
0559あぼーんNGNG
あぼーん
0560名前は開発中のものです。03/03/27 03:20ID:AzFHpq88
あの課題では実機への理解よりも、
コンピューターとプログラミングに関する基礎体力が問われていたと思われる。
下手をすると、メンバーはまだ資料に目を通す段階ではないのかもしれん。

悪い事は言わねえからまずアセンブラやっとけって。
コードはちょっと書くだけで良いから。
読んだり書いたりまでしない分には三日で大体把握できる。
0561あぼーんNGNG
あぼーん
0562AZUCO03/03/27 07:36ID:ZxU9kh5/
>>558
そりゃそうです。こっちの時間も延々空いてる訳じゃないです。メインマシン死亡も長期に
渡る事が確定しましたし(一月)ロースペックながら、本格的に大替マシンを整備してます
から、終了次第、こっちも自分の作業にかかります。

>>560
全部仰る通りです。

正直言えば、アセンブラやってないとかなり苦しいです。
けど「やってないからダメ」とは言いたくない。
しかし俺も無言のうちに、わからんならわからんなりの身の振り方を要求してました

まぁ俺は職業プログラマで無いので、チームでコーディングはした事無いので、正直
粒度の揃ってないスキルに対してどう対処して良いか分からず、とりあえずハードルを
超えてみろ的な乱暴なやり方だったのかもしれません。反省。



まぁ今後は空いた時間で適当に見守る事にしますかね。
0563名前は開発中のものです。03/03/27 10:15ID:xGLWTR3J
勿体ないな、時間はたっぷりあったのに。
MLのメッセージも全部読んだけど、動こうとする気配も無かったよね。

前の課題についてだけど、
アドレスのエミュレーション実装方法についての議論なんて、
経験のない人間にとっては、動いてる物を見るか実際に作ってみないと
善し悪しの判断が出来ないと思うんだよ。
AZUCOさんが方向性を全部決定して、
引っ張っていくしか進行のしようが無い気がする。

初期のうちからプロジェクトページにWikiでも設置して、
参加者同士で色々考える土台をる作るべきだったんだろうなぁ
0564AZUCO03/03/27 10:22ID:KSzMQP3/
>>563
それをやると、俺のプライベートなプロジェクトとじゃぁ何が違うのかってのが
今度は出てくるわけで・・・・・・・・
そんなわけで、方向性を決定するという主体性だけは、持って欲しかったんですよね

wikiにしても、wikiって何よ?って部分が発生しそうな気がするし(w

まぁ時間は無限にあるわけで、まったりやって行くしかないかなと。
まぁお気に入りには入れとくので、質問があれば書いて下さい。なるべく答えます。
0565あぼーんNGNG
あぼーん
0566あぼーんNGNG
あぼーん
0567名前は開発中のものです。03/03/28 01:20ID:08npfp/D
>>545
>これは流石に失礼何じゃないかと思ったよ。
確かに態度が良いとは言い難いけど、俺は>>536を評価する。
締め切り後初めての結果報告をした訳だから。
分からない事を分からないと言うのは重要な事。
その点でhrk_hysさんは自信を持って良い。
頑張って。

>>メンバー
製作の前の段階で勉強しなきゃいけない事は確かにあるけど、
そんなに多い訳じゃない。
むしろ時間がかかるのはそこからの実作業で。
(まあ、その段階まで来れば楽しい部分も出てくるからね)

とにかく、今やっているのはそんなに複雑な事じゃない。
たった数日の勉強で、これまでさっぱり分からなかった事が
嘘みたいに簡単な事と思えるようになる。
どういう勉強をすれば良いかって点はメンバーの程度が分からないので
簡単には言えないけど、例えば>>432にあるような事は有効だと思う。

>>all
他にもっと有効な勉強法があるなら言ってやって。
0568くろりん03/03/28 01:40ID:D8lSAuu+
今は
ttp://black.sakura.ne.jp/~third/programming/c/c.html
の基礎編1をプリントして勉強しています。
変数とかが少しわかった程度です。
あと今度「はじめて読む486」を買いたいです。
リア房なのでお金ないですがお年玉引っ張り出して買います。
いい勉強法があるならおしえてください。
>>567 AZUCOさん?ですか?
056956703/03/28 01:43ID:08npfp/D
>>568
ちゃうちゃう。
あの人が名無しで書き込む意味が無いでしょ。
057056703/03/28 01:50ID:08npfp/D
>>568
近くの図書館とかに無いかな?
金無いなら無理して手元に置く必要は無いよ。
ハードに関する理解が必要なだけで、
アセンブラをばりばり書く必要は殆ど無いし、
x86の特殊事情にいちいち付き合う必要も無いから。
一度通して読めばあとはネットの資料でどうにでも補強出来る。
057156703/03/28 03:04ID:08npfp/D
ああ、そうそう。

>>くろりんさん
C++はCが分からなくても出来るので、
最終的にC++へ手を出す気なら
最初からCをすっ飛ばすのも一つの手。
その場合はAcceralated C++って本が分かりやすかった筈。
俺は馬鹿だから
http://www.asahi-net.or.jp/~yf8k-kbys/
で入門してから「プログラミング言語C++」へ直行したけど、
あんまし効率の良い方法じゃないと思う。
C++はCを便利にした奴なので、
後でCをやるにもC++をショボくした奴と思えば理解は楽。

プログラミングの本は結構高いので、
お金はよく考えて使うようにね。
0572名前は開発中のものです。03/03/28 07:08ID:CbH5xGfa
obakaなオイラはC++はキャストが面倒なのでキライれす
0573名前は開発中のものです。03/03/28 07:10ID:edbSnlLP
んじゃー、オススメURLでもだしておくかね。
http://hp.vector.co.jp/authors/VA000124/
0574名前は開発中のものです。03/03/28 10:24ID:15AcszXt
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (,,゚Д゚) < なんだ、このスレもう終りか
  / つつ∬ \___________
〜(,,_,,)旦                     【THE END】
0575名前は開発中のものです。03/03/29 00:37ID:ZoebuWxW
まず専門用語が理解できないと思われ。
0576名前は開発中のものです。03/03/29 01:29ID:+a1RiwQO
まずここに出てきた専門用語を解説したHPをつくる所からはじめる。
0577あぼーんNGNG
あぼーん
0578名前は開発中のものです。03/03/29 03:16ID:GUOOm+O5
皆さん、はじめまして。
Winnyの掲示板からやってきました。
制御系の職業プログラマーですが、ゲーム系は初心者です。
何か手伝えそうでしょうか?

一つ提案なのですが、せめてCPUエミュだけでもアセンブラに
した方が良いのでは?効率が全然違うと思います。
0579GNO03/03/29 03:22ID:GUOOm+O5
578です。
名前がとんでもた。

なんか終了AAが出てるけど、ほんとに終わり?(^o^A
0580あぼーんNGNG
あぼーん
0581名前は開発中のものです。03/03/29 05:12ID:e7sjQQwK
まあさ、いきなりメモリの扱いをどうするかなんて聞かれてもさっぱりなんでね、
まずは資料を整理してセガサターンというハードを理解するところから始めよう。
0582あぼーんNGNG
あぼーん
058354203/03/29 10:19ID:5VWwqs7J
うーん、その前にプログラムを作ったことが無い、あるいはこれから始めるとなると、
先を急ぐ必要がないんならいきなりセガサターンエミュを作るというよりは、なんでも
いいからプログラムを作ったり、コンピュータの仕組みを理解したりしたほうが
いいんじゃないかな?
まずは、コンソールアプリでイスカンダルの豆腐屋ゲームあたりを目指すとか?
0584名前は開発中のものです。03/03/29 10:39ID:/PZHMdjY
>579
AAはこの板に常駐している荒しなので、相手にする必要はないです
0585あぼーんNGNG
あぼーん
0586くろりん03/03/29 11:26ID:GM7RP8fQ
どうなんでしょう・・・
>>571さん
最終的にC++で書くならそっちの方が効率いいですよね。
そっちの言語の方が速度的にも上なんですか?
近くに図書館あるからそっちでいろいろ借りてきます。
0587GNO03/03/29 12:52ID:GUOOm+O5
>>586
速度はやっぱりアセンブラが一番。
その次がCで、C++はCよりも遅いと思っていいと思います。
人間にとって便利で分かりやすい言語ほど、コンピュータに
無駄な処理をさせてるって事ですね。

私の場合、基本はCで、必要に応じてアセンブラとC++をミックス
させてます。
0588あぼーんNGNG
あぼーん
0589名前は開発中のものです。03/03/29 13:06ID:z6tUVI8L
動いても居ない時点から速度を気にしてもしょうがないし、
保守性を考えると高級言語で書くべきじゃねーのか?


0590あぼーんNGNG
あぼーん
0591GNO03/03/29 15:44ID:GUOOm+O5
>>589
>動いても居ない時点から速度を気にしてもしょうがないし、
そりゃそうですね。(^o^A

今回はbccでやろうとのことですから、これから勉強なさる方は
C/C++を覚えましょう。

CとC++は、どちらから勉強を始めてもいいのですが、どちらかだけでは
コーディングできませんので結局両方覚えることになると思います。
0592PI.03/03/29 16:21ID:Dqdnbbsz
ちょっと落ち着いてきた感じですね。

エミュレータ開発を前提とすると、エミュレータ本体の言語はC/C++のどちら
でもよいと思います。ただC++を覚えてCを使わない(?)というのは無いので
C++までやるか、Cで止めるかの違いになります。DirectXを使うときはC++の
知識が少しだけ要ると思いますが、それ以外は100% Cで書くことも十分でき
るはずです。

エミュレータ本体の作成以外で、アセンブラの知識は100%必須です。サターン
をターゲットにする場合、SH1/SH2のソフトウェアから見たアーキテクチャを
ほぼ完全に理解する必要があるでしょう。幸いSHプロセッサは日本生まれです
ので、日立のサイトに行けば和文マニュアルを入手できます。プログラマー
ズマニュアルとハードウェアマニュアルの両方を精読してください。

ただし、エミュレータ開発において言語の習得は単なる出発点に過ぎません。
単語を沢山暗記しても英語をスラスラ話すことが難しいことと同様、表面
的な文法理解だけでは、バグのない大規模なプログラムを記述することは
できないでしょう。またエミュレータの開発ではプログラム解析により
実機とエミュレータとの挙動の違いを弾き出し、修正を重ねていくことが
要求されますが、プログラム解析はプログラム開発以上に粘り強い作業と
大量の経験に頼る分野です。生半可な取り組みでは逆アセンブラの出力
する大量のリストの前にして、何がどうなっているかさっぱりわからない
という事になると思います。

結局のところ、前にAZUCOさんが書かれていたようにスキルは高度なもの
が要求されます。それは一朝一夕に身に付くものではなく、大量の時間と
試行錯誤、研究が必要です。「今は無理だけど、今日から毎日頑張って
石にかじりついても完成させてみせる」という気合と覚悟が、不可能を
可能にするのです。
0593名前は開発中のものです。03/03/29 17:41ID:fpkDCTdr
今日、図書館でセガアーケードヒストリーとセガコンシューマーヒストリーを借りてきたよ
まずここからはじめるね。
0594あぼーんNGNG
あぼーん
0595GNO03/03/29 18:50ID:GUOOm+O5
>>592
PI.さんがうまくまとめて下さいました。

スレ立て人はいなくなってしまいましたけど、ハイレベルな方を
多数召喚してきたのは功績大ですね。
0596あぼーんNGNG
あぼーん
0597AZUCO03/03/29 21:57ID:RJe3Mobf
ちょっと忙しくて見れませんでした。

>>568
俺もお金ない人は、図書館で技術書借りるってのは大いに有効だと思います。
初期の段階は、入門的な本が役に立つかもしれませんが、結局はリファレンス的な本を
所蔵したいと思うので、入門的な本は図書館で良いんですよね(w
ま、でも長期にわたる場合は、他の利用者もいるかもしれませんから、ちゃんと返しましょう(w

>>578
俺はもともとアセンブラ信者なのですが、それでもCで書いたほうが良いと思います。
理由は常に最適なコードを書くだけの気合が全オペコードで保てるとは思えないからです
(SH2だけでなくMC68Kもありますし)
あと、別に自分でthisポインタを実装すれば良いんですけど、SH2の実装がクラスを使うと
激しく楽なので、それもあります。

>>592
流石神のお言葉は俺のそれとは重みが違うな(汗

言い忘れてましたが、マジでエミュを作るとなると「ソフトを作る力」とは別に「ソフトを解析
する力」というのが要求されます。こればかりは、アセンブラをやった事のある奴じゃないと
恐らくそのコードの妥当性を検証できないので、やるには相当な経験を要求します。
(だから最初にCPUエミュレーション出来れば上等といってたのは、その為)



割とまとまってきた感はありますが、議論の目的である、プログラム担当者さんたちの意見
感想等が見えてこないのがちょっと苦しいかなと(話してる方は自分の物差しでベストと
思われる選択をする事になるので)
また活発に議論されてる方自体が、プログラム担当になっても良いと思います。
0598GNO03/03/29 23:33ID:GUOOm+O5
図書館の利用はひじょうにいいと思いますけど、あんまり古い本は
借りないように。CもC++も仕様が随分変わりましたので。
昔は「K&Rぐらいは買え!」なんて言いましたけど、最近はネット上の
入門サイトに素晴らしいのがあるので、そっちの方もオススメです。

>>597
>言い忘れてましたが、マジでエミュを作るとなると「ソフトを作る力」とは別に「ソフトを解析
>する力」というのが要求されます。
私は仕事上データコンバータを作ることが多いんですけど、ターゲットの
解析が終わればソフトはできたようなもの、っていう感があります。
コーディングそのものは、プロジェクト全体から言えば「手術後の縫合」
みたいなものかもしれません。(おいおい…)

ところで、カオス状態では開発は進まないので少なくとも、
・プロジェクトリーダー:メンバーアサイン、進捗管理、オフ会の幹事(?!)をする人
・チーフプログラマー:全ソースに目を通してプログラム全体を掌握する人
・データベース管理者:集まった情報を誰もが閲覧できる様にアップする人
を決める必要があると思います。

またこれらを降臨されてる神々が担当するのか、比較的ヒマとパワーのある
学生さんに任せて、神々はアドバイザーに徹するのか…
そのあたりはいかがです?
0599名前は開発中のものです。03/03/30 12:16ID:utTeDNKb
>>598
徹底した管理でプロジェクトを進めるのも良いけど、
堅苦しくてモチベーションが持続しなくなるだろ。
チーフになりうる実力を持った人が抜けるだけで
プロジェクト崩壊してしまうし、チーフの負担が尋常じゃない。
というか、そもそもチーフ一人でコーディングした方がマシって状況になりそうだ。

管理者は置かない方が良いと思う、
特に小規模で、開発者同士が疎遠で有る場合は。
0600あぼーんNGNG
あぼーん
0601AZUCO03/03/30 19:52ID:QJXbsAhF
>>598
>あんまり古い本は借りないように。CもC++も仕様が随分変わりましたので。
すいません、そこまでCPP使い込んでません(汗

>ところで、カオス状態では開発は進まないので少なくとも、
プロジェクトリーダーというか、方向性を指し示す事をやろうかな、と思ってましたが、
そもそも方向性を示して、ついて来るのか?というのが問題になってしまいました。

>>599
>堅苦しくてモチベーションが持続しなくなるだろ。
これは599の感性の話なので、全ての人がそうだとは思いませんけど(つうか大まかなスケ
ジュールすらないと、全然だらだらになるし、まぁいいかーの連続になる可能性が高い)

>チーフになりうる実力を持った人が抜けるだけで
>プロジェクト崩壊してしまうし、チーフの負担が尋常じゃない。
これはあたりだと思います。

しかし結局その後、一人で組んだほうがマシっていう話なら、全然ここに来なくても良いの
であって、やはりチームという縛りは最低必要だろうとは思います。



ま、結局の所は、誰もが他人任せになってる状態では全然動かないなぁって事ですね。
割かしスキルとやる気のあるGNOさんにちょっと悪いのですが。
しかしエミュ以前の話だなぁ。
0602BERO03/03/30 23:31ID:1e5aLg5Z
今出てる提案なり疑問なりに対するいくつかの(俺なりの)回答ってのはとうのむかしに書いてたりするわけだが
あぼーんされまくって鬱。
0603名前は開発中のものです。03/03/31 01:23ID:RAmIXtVw
>>592
まあ完成させるのに相当なスキルが必要ってのは
勿論その通りだと思うのですが、今このプロジェクトは
製作に殆ど取り掛かってもいない段階な訳で。
やりながら勉強していく、って発想では駄目なんですか?
0604PI.03/03/31 03:49ID:6rVpBAhp
>>603
いや、もちろん製作を進めながら勉強する、という形になるとは思いますが
私が言いたいのは、とにかく時間がかかるよ、すぐ結果は出ないよという事です。
私が最初に書いた、最低500時間、完成まで2000時間という目安からも、どの
くらいのものか分かるかと思います。そしてこれだけの時間をかけるためには、
かなりのモチベーションが必要です。「とりあえず始めてみるか」ではかなりの
高率で挫折すること間違いなしです。

そういう意味からも、私としてはチーム制ではうまくいかないと思います。
チームでやるにしても、中心になる人が1人だけいて他の人はサポート・支援
にまわる形しかあり得ないのではないでしょうか。

例えばの話、私が中心となって製作を進める場合(あり得ませんが)でも
他の人の協力を得てチームで進めようとは思いません。私以外の人にそんな
辛い作業を長期間に渡って強いることはできないと考えるからです。

否定的な話になって申し訳ありませんが、ある現役エミュレータ作者の本音
ととらえて頂ければ幸いです。
0605名無し03/03/31 04:58ID:Pagi4tmD
コーディングとかテストとかを代わりにやってもらうのはどうですか
モジュール仕様書と変数名だけあれば出来るのではないでしょうか。
そういえば制御系の人いましたね。
0606AZUCO03/03/31 07:07ID:Jyx6sbos
>>604
おっとー!チーム性に疑問提示キター!
でも俺も現実的にはそう思います。実際俺もスキルの粒度の揃わない事に関しては、
ハードルを用意して「越えてみなさい」的な乱暴な解決しか思い浮かびませんし。

多分一般の人はちょっとエミュに対して幻想抱きすぎなんだと思いますね。
オープンソースにしろ、チーム性にしろ「MAMEでやってんじゃん!」って感じで同様の
効果を期待するのでしょうが、MAMEは神ぞろいなんですわ(w

しかし・・・・・そう言い切るのもあんまり夢がないしねぇ。

まぁ俺がいえるのは、
>>605の「コーディングとかテストとかを代わりにやってもらうのはどうですか 」
ではなく「コーディングとかテストとかなら、俺でも出来ます」っていう風にならなきゃ
全員企画厨房から脱却は出来ないって事だけなんですけど・・・・・・・

やばいなーなんか否定的雰囲気全開だなー
あー今ごろ1は「だからいったじゃんよー」って思ってるな(w
0607名前は開発中のものです。03/03/31 08:36ID:PaosuQ+z
取りあえず漏れは、見守るだけの立場として
今のメンバーには頑張って貰いたいと思ってる。
プログラマが数人いるのかな?
ここに一人出来る人間が入ってしまうと、
現在居るプログラマは爪弾きになってしまう。
0608AZUCO03/03/31 09:32ID:ViuB3c4K
>>607
あまりモラルのある発言ではないのですが、それって似非平等みたいなものですよ。

出来る人間と、出来ない人間にははっきりとした差があるんです。それを他の人が爪弾きに
なるからとか、論理的でない理由でプロジェクトの方向性を左右するのは、日本人の良くな
い癖(まぁある意味美徳だとは思うが)ですよ。

自分が出来ないことを出来る人に、仕事は渡せば良いではないですかね?
自分は自分が出来る事をどんどん見つけていけば良いだけで。
そういうのが嫌であれば、自分が力を付けるしかないと俺は思います。
0609名前は開発中のものです。03/03/31 12:46ID:dcVLwn/K
┌──┐
│終..了|
└┬─┘
  │∩∩
  d(゚ー゚*) 。
   (___')′
   ~  ~
0610名前は開発中のものです。03/03/31 16:00ID:g8lmE8Sa
とりあえずセガサターンがどういうハード構成なのか解説してくれよ。
0611名前は開発中のものです。03/03/31 17:15ID:/pmX88dt
>>610
自分で調べれ

つーか再取得ウゼー
いちいち削除依頼出すなっつーの、小心者が
0612AZUCO03/03/31 17:30ID:ViuB3c4K
>>610
過去ログ嫁
0613名前は開発中のものです。03/03/31 18:35ID:aIobajEx
2chでエミュ作ろう!winnyみたいに。
http://tmp.2ch.net/test/read.cgi/download/1048497322/
0614あぼーんNGNG
あぼーん
0615GNO03/04/01 00:17ID:U7XuSMvJ
>>599
>そもそもチーフ一人でコーディングした方がマシって状況になりそうだ。
それは仕事ではよくある話ですけど、ここでそのパターンにしてしまうと
つまらないですよね。だからといって、皆さん、初心者に手取り足取り指導する気もない
はず。

「俺は初心者だけどCPUエミュをやらせろ!」「作ってきたぞ、どうだ!」
「こんなへっぽこプログラム、不採用ぢゃ!」
「なんだと!何が悪いのか教えろ!」「作り直すからちょっと待っとれ!」

技量はなくてもいいから、こういう威勢のいいヤシが多く集まらないと、ほんとに
そういう状況になってしまいます。

>管理者は置かない方が良いと思う、
ある程度以上の技量を持った人の集団なら、期待する(あるいはそれ以上の)品質のものが
上がってくるので問題ないのですが、技量が揃わない場合はこの「不採用ぢゃ!」と
言う人がどうしても必要になると思います。
0616GNO03/04/01 00:18ID:U7XuSMvJ
>>601
>大まかなスケジュールすらないと、全然だらだらになるし、まぁいいかーの連続になる可能性が高い
立候補はしないけど指名されて期限を切られると頑張る、というのは、大抵の人に言えることだと
思います。

>>603
>やりながら勉強していく、って発想では駄目なんですか?
それでいいと思います。私も勉強させてもらいます。(^o^)

>>604
>私が言いたいのは、とにかく時間がかかるよ、すぐ結果は出ないよという事です。
大きなシステムになると、何ヶ月も何も動かない状態でコーディングを続けることって
ありますよね。そこで興味を失ってしまう人がいるかもしれません。
ですからパフォーマンスは後回しで、早い時期に絵だけでも出る様なスケジュールにする
等の工夫はしてもいいと思います。

>>606
>ハードルを用意して「越えてみなさい」的な乱暴な解決しか思い浮かびませんし。
私もそれしか思い浮かびません。
しかしそれって、お金を出しても無理なぐらいの物凄い修行になりそうで、私なら
ぜひお願いしたいところです。一流の講師陣が無料で指導してくれるなんて夢のよう、
だと思いません?
0617AZUCO03/04/01 00:35ID:5yy3k8Dd
あーもぅ俺サターンは飽きたなぁ。

前からやってるドリキャスのエミュでも作るか。
しかしサウンドが鳴ると、40fps程度しか出ないなぁ・・・・・
ADXが重いのかなぁ・・・・・・・

まぁデドアラ程度ならわりかし遊べるけど・・・・・・
0618名前は開発中のものです。03/04/01 00:40ID:CXP3VQDf
>>616
AZUCOさんから見てDCエミュ「イカルス」はどのような感じですか?
0619あぼーんNGNG
あぼーん
0620AZUCO03/04/01 00:51ID:5yy3k8Dd
>>618
うーん。もぅ敵じゃないね。
そんなに大したもんじゃないなぁ
0621名前は開発中のものです。03/04/01 01:01ID:VgMtKI13
実機か、実機の開発環境持ってないと
undocumentedな部分がどうしても作れないんだけど、
こういうのってどうしたらいいんですか?

資料のあるハード単体のシミュレータだったら、
パフォーマンスは別にして俺でも作れる気がするんだけど、
寄せ集めて実機の通りに見える物なのか激しく不安。
■ このスレッドは過去ログ倉庫に格納されています