セガサターンのエミュをみんなで作るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
03/03/02 11:59ID:CduGclzeそこでだ、有能な2ちゃんねらーが協力して新たなエミュを作ろうじゃないか。
じゃあ後よろしく
0507名前は開発中のものです。
03/03/25 18:14ID:lrr33XXm>>504
ソースが欲しいって言うのは、テーブル形の実装が
具体的にどういうものかを見て感覚的に理解したいという事では?
リスト形の方はMAMEでやってるんでしたよね。
0508名前は開発中のものです。
03/03/25 18:32ID:23/ttQ3Q1はお勉強進んでるかい?
0509名前は開発中のものです。
03/03/25 18:34ID:v85+ywzHそうそう、もう少し具体的な実感を得たいんだよね
特にソースにこだわってるわけじゃなく、プログラムの構成とかテーブルの形態とか
そういったものを知りたい
それに人のプログラムを読むのって勉強になるし、
エミュってこんな感じなんだっていう感覚をつかみたい。
話はそれるけどオープンソースってよく聞くけどオープンドキュメントってあるの?
0510あぼーん
NGNG0511名前は開発中のものです。
03/03/25 20:46ID:OY0Ivw+VXM6/XM7大変お世話になっております(特にXM7)
実装計画(?)の☆マークが大変判り易く、設計の確かさを感じます。
ここで作る場合でも、各デバイスの機能実装をあんな風にグラフ表示してみてはどうでしょうか?
何が必要か。また、何が足りないのか一目瞭然です。
0512名前は開発中のものです。
03/03/25 21:10ID:82/Ohai+俺が低脳なだけか・・・
0513shima
03/03/25 21:17ID:Ebiwmc3qこれはエミュレートしなくていいですよ。
CDブロックへのアクセスは提供ライブラリ必須だったので、
CDアクセスコマンド解析してCDブロックと同じような動きをする
プログラム書けば問題なしです。
ちょっと見にきただけですのでこの辺で…
みなさん頑張ってください。
0514くろりん
03/03/25 22:16ID:GJIM7WlXすごい・・・ このスレ・・・
SSF・Girigri・A-Saturnと3拍子そろったぞ・・・
0515あぼーん
NGNG0516名前は開発中のものです。
03/03/26 00:37ID:UZfyW537プログラマブルだったらエミュレートしなきゃいけない所だけど、ライブラリ必須だったのか…
非同期でCDが読めない(少なくとも読めたような気がしない)のはライブラリの出来が良くなかったからか?
サウンドも一応FM音源使えるみたいだけど、使ってるゲームって現実にあったかな?
無ければ実装しなくてもいいような気がする。
正直、メモリはSSの物を馬鹿正直に同スケールで実装するんだと思ってますた。
CDから読み出した物を動的に確保していけるならその方が効率よさそうですね。
0517AZUCO
03/03/26 01:35ID:hfc0EyC9>AZUCOさん面倒見が良いなあ。
少し理由があります。
今現在メインマシンがあぼーん中で実質ヒマな事
もともとやろうと思ってた事と、この件がかなりシンクロしてる部分がある事
お金が絡んでくる可能性がある事
最後のは不純ですまん!(w
テーブル型のは、AX68Kでまったく同じソースを使いまわしてるのでちょっとそっち見て
ください。
AS3タイプのアーキテクチャのソースはなんかの形で流すかもしれません。
Hornetをwinnyでとか。<こいつも遊びの一環で。
メインマシン死んでると、マジで通信しか出来ないなぁ(汗
0518あぼーん
NGNG0519AZUCO
03/03/26 01:47ID:hfc0EyC91に続いて脱走か?!(汗
そんな事ないよなぁ(泣
かつては俺もゲーム作る!とかいってタイトル画面だけで終わるような企画厨の時代も
あった(w <F-BASICの頃ね
でも自分の力を疑った事は無かったぞ!(時間がかかるとは思ったが)
分からん事は聞いてこい!ただしSSアーキテクチャの話はまだまだ先だ!
今はジェネリックなエミュレーション技法の話とか、どういう指向でプログラムを組むかとか
土台の話。つまらんのはわかるけど、ここを通らないと、先も無いよ!
頼むぜ!藻前ら!
0520あぼーん
NGNG0521名前は開発中のものです。
03/03/26 04:40ID:DZgqcbE/パワードリフトのオリジナル音源風のBGMのとき
FM音源を使用してた(ような気がします)
ただ、ゲーセンで聴いたときとずいぶん変わってたような。
あれを家でやれる日が来るとは思ってなかったなあ。。。
最終面の急カーブでわざと赤白の鉄柱にぶつかって復帰する
裏技がうまくできん、、、よって隠し面のハリヤーもみてまへん。
0522あぼーん
NGNG0523名前は開発中のものです。
03/03/26 04:44ID:DZgqcbE/それを利用するとしましょう。
0524あぼーん
NGNG0525名前は開発中のものです。
03/03/26 04:51ID:DZgqcbE/ソースがどうしようもなくぐちゃぐちゃになってしまって、
わけわかんないとこでエラーで落ちてもどこを修正してよいか
手の施しようがないというのは、まさに身に覚えがあります。
それはエラー処理を考慮してない場合です。
今作りかけのゲームがまさにその状態。。。ブルーバックが怖くて
自分の作ったゲームで遊べない!!三年かかって完成しない!
・エラーログをとる
・エラーメッセージダイアログを表示する
ことを必ずすべきです。
0526AZUCO
03/03/26 04:52ID:hfc0EyC9アウトランやスペハリでもそうなのですが、純粋にあの頃のSystem16派生のマザーだと
PCM音源部分が足らないので、FMx7+PCMx4という構成で組みなおしてるかもしれません
サターンのFM音源はレートもCDと同じだし、多分最強のFM音源だと思います。
しかし普通に考えれば、PCMx32の方が使い勝手も良いのでわざわざ音色をつくらにゃ
ならんFM音源は使われないと思いますが・・・・・・
昔は音を聞いてパラメータが脳内で作れたものだが、今は無理だろうなぁ・・・・・
ちなみに好きなアルゴリズムは0と5です(w
FM音源の話題はやばいね。ある年齢にはめちゃくちゃストライクゾーンの話題だから(w
0527あぼーん
NGNG0528AZUCO
03/03/26 04:57ID:hfc0EyC9駄目です。理由は>>526参照。
>>525
基本的にこのあたりは、アサートを積極的に利用すべきですね。
ただ、マルチスレッドとか、デストラクタで処理が入ってる場合は、致命的エラー>即終了
とはなかなか逝きませんが。
ちなみにAS1がぐちゃぐちゃやーいうとんのは、デバッグコードと、リリースコードの分離が
出来ない部分についてです(直すのもダルイ:汗)
0529あぼーん
NGNG0530名前は開発中のものです。
03/03/26 07:18ID:UZfyW537サンダーフォースの移植でも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あぼーん
NGNG0533AZUCO
03/03/26 09:12ID:RyFlh54sそうです。だいたいそういう想定で設問してます。
まぁぶっちゃけ言っちゃうと、シャドウィングが増える時点でリスト方式はかなり効率が
悪くなると思いますし、実装する人によって実装コストは大きく変わってきます。
(そういう意味で言うと、パクリも現実的な手法の一つにはなってくるかもしれません)
がー、要するに、自分で考える事に大きい意味があるのであって、はっきりいってベターな
方法は俺が提示した物で良いと思います(流石にbestとは思ってないが)
その考える過程で、自分が何を知らないのか、何を学ぶべきなのか、その辺もOJTで
やるのがわかりやすいやり方なのかなと(いきなり本を読めというよりは目的意識が
はっきりするかなと)
第三者がいきなりプログラム出しちゃっていいのかーという部分は、今回のアドレス
デコーディングの部分については、手法についての議論がメインですので、ちょっと違う
かなと思います。
個人的な想定では(これは忘れていたので、本来は最初に決めるべきですが)デバッグ
関連のUIをどういう形式で持つかという部分を検討しようかと。
んで、CPUエミュレーションの部分をとりあえずやりますか、という段になって初めて、
コードを書き始めるわけで、それまでは設計レベルの話かと思います。
(この辺はかなり俺の脳内で決めてた話なんで、わかりにくくてすいません)
0534AZUCO
03/03/26 09:28ID:RyFlh54sFM音源が載ってる意義は、やっぱり開発コストの少なさじゃないですかね?
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あぼーん
NGNG0536hrk_hys
03/03/26 10:48ID:s7BnZW27すんませんちょっと忙しくて
あんまし勉強も出来てません
やめるつもりは無いんでまあテキトーに見守っててください
後メモリのことは調べてみても何がなんだか…
何か簡単なものから理解してか無いとつらそうです。
0537あぼーん
NGNG0538あぼーん
NGNG0539あぼーん
NGNG0540名前は開発中のものです。
03/03/26 11:41ID:mjxveOs+http://game2.2ch.net/test/read.cgi/gameover/1048645945/l50
0541あぼーん
NGNG0542名前は開発中のものです。
03/03/26 13:05ID:Ema51F+GメインマシンがP3だった頃、アムノークが処理落ちするので、直線補間LSI部分の
コードがどうなってるのかな、って覗いただけなんですが・・・。
エミュレーションっていうのはもっと泥臭いことをやってるんでは、という
先入観があったので、シンプルで忠実なエミュレーションのコードにびっくりしました。
そしてたがが数MHzで動く8ビット機とはいえ、平行して動作する専用チップの動作速度に
あなどれないな、と思いました。
0543あぼーん
NGNG0544あぼーん
NGNG0545名前は開発中のものです。
03/03/26 20:05ID:eTEDj41C了解しました、ROMに徹することにします
エミュレータ制作は興味あるところですが、
複数で進めるプロジェクトの場合、
参加してしまうと途中で投げ出すわけにも行かないんで。
>>536
>やめるつもりは無いんでまあテキトーに見守っててください
これは流石に失礼何じゃないかと思ったよ。
0546あぼーん
NGNG0547AZUCO
03/03/26 23:33ID:hfc0EyC9あー、ソース出すのが「違う」かな?というのは、今回の話であって、
まぁそれも、俺の判断としてはどちらなのか、といえば、ってことですから、
話の途中でメタ的な感じでアップされるとかいうのは全然あると思いますし、
仮に本格的なのがアップされても「それは違うだろう」とかいうことにはならないです。
っつーか、リソース的に贅沢な状況ではないので、どんどん参加できる所はして欲しいです
ややこしい事逝ってすいません。
っつーか、ある程度スキルあるが故に、こういう話聞いてて圧倒的な量の工数が見えちゃっ
て「こりゃー本格的に首突っ込むと恐ろしい事になるな」と、分かるからあえて発言してない
人がいると思うんですけど、そういう人にも恐れずに参加して欲しいです(w
0548PI.
03/03/26 23:56ID:rgyxhDcM処理するチップが載っていた場合はやはり速度的に面倒になります。
そのハードウェアが高速で動作しているように仮想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:gXSO4Hx40550あぼーん
NGNG0551名前は開発中のものです。
03/03/27 00:39ID:xecT1eEvメモリとI/Oの関係って不動なんだろうか?それとも何かしたらアドレッシングがコロっと変わるんだろうか?
厨な質問&横槍スマソ
教えてアルゴマ〜ン
0552AZUCO
03/03/27 01:06ID:ZxU9kh5/あー俺も似たような実装です。
ただ、C++初心者なので、基底クラスDeviceから一気に最終のデバイスのクラスに
逝きますが・・・・・
メソッドは、R/Wがそれぞれ1・2・4byteですね
PI.さん的には、VMという概念を入れた所にブレイクスルーがあるとページに書いてありまし
たけど、実際にはどういう役割を持たせてるんでしょうか?(VMクラスに)
0553AZUCO
03/03/27 01:09ID:ZxU9kh5/基本的にデバイスのアドレスは変わりませんが、シャドウィング等で表現方法は変わります
サターンでは符号拡張を使って省略して(?)アドレスを表現してます。
0554あぼーん
NGNG0555PI.
03/03/27 01:29ID:9pBceUaI・状態セーブロード・設定変更などです。外部から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シャドウはタダのエイリアスでいいんですよね。
それから、SSにはcachedのアドレスと、キャッシュスルーするアドレスが有りますが、
エミュレータの場合はキャッシュ無視していいんですか?
0557あぼーん
NGNG0558名前は開発中のものです。
03/03/27 02:33ID:qZ2fF5UKといいつつAZUCOさん自身が急ぎすぎてるように見えます。
ほかの人がそれほど実機を理解してるわけでもないし、資料関連に目を通す
だけでも結構かかるし。
興味はあるけどスキルがないからうちこみどころもまだわからんって感じ
の人が多いんじゃないかなぁと。
0559あぼーん
NGNG0560名前は開発中のものです。
03/03/27 03:20ID:AzFHpq88コンピューターとプログラミングに関する基礎体力が問われていたと思われる。
下手をすると、メンバーはまだ資料に目を通す段階ではないのかもしれん。
悪い事は言わねえからまずアセンブラやっとけって。
コードはちょっと書くだけで良いから。
読んだり書いたりまでしない分には三日で大体把握できる。
0561あぼーん
NGNG0562AZUCO
03/03/27 07:36ID:ZxU9kh5/そりゃそうです。こっちの時間も延々空いてる訳じゃないです。メインマシン死亡も長期に
渡る事が確定しましたし(一月)ロースペックながら、本格的に大替マシンを整備してます
から、終了次第、こっちも自分の作業にかかります。
>>560
全部仰る通りです。
正直言えば、アセンブラやってないとかなり苦しいです。
けど「やってないからダメ」とは言いたくない。
しかし俺も無言のうちに、わからんならわからんなりの身の振り方を要求してました
まぁ俺は職業プログラマで無いので、チームでコーディングはした事無いので、正直
粒度の揃ってないスキルに対してどう対処して良いか分からず、とりあえずハードルを
超えてみろ的な乱暴なやり方だったのかもしれません。反省。
まぁ今後は空いた時間で適当に見守る事にしますかね。
0563名前は開発中のものです。
03/03/27 10:15ID:xGLWTR3JMLのメッセージも全部読んだけど、動こうとする気配も無かったよね。
前の課題についてだけど、
アドレスのエミュレーション実装方法についての議論なんて、
経験のない人間にとっては、動いてる物を見るか実際に作ってみないと
善し悪しの判断が出来ないと思うんだよ。
AZUCOさんが方向性を全部決定して、
引っ張っていくしか進行のしようが無い気がする。
初期のうちからプロジェクトページにWikiでも設置して、
参加者同士で色々考える土台をる作るべきだったんだろうなぁ
0564AZUCO
03/03/27 10:22ID:KSzMQP3/それをやると、俺のプライベートなプロジェクトとじゃぁ何が違うのかってのが
今度は出てくるわけで・・・・・・・・
そんなわけで、方向性を決定するという主体性だけは、持って欲しかったんですよね
wikiにしても、wikiって何よ?って部分が発生しそうな気がするし(w
まぁ時間は無限にあるわけで、まったりやって行くしかないかなと。
まぁお気に入りには入れとくので、質問があれば書いて下さい。なるべく答えます。
0565あぼーん
NGNG0566あぼーん
NGNG0567名前は開発中のものです。
03/03/28 01:20ID:08npfp/D>これは流石に失礼何じゃないかと思ったよ。
確かに態度が良いとは言い難いけど、俺は>>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さん?ですか?
0570567
03/03/28 01:50ID:08npfp/D近くの図書館とかに無いかな?
金無いなら無理して手元に置く必要は無いよ。
ハードに関する理解が必要なだけで、
アセンブラをばりばり書く必要は殆ど無いし、
x86の特殊事情にいちいち付き合う必要も無いから。
一度通して読めばあとはネットの資料でどうにでも補強出来る。
0571567
03/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:CbH5xGfa0573名前は開発中のものです。
03/03/28 07:10ID:edbSnlLPhttp://hp.vector.co.jp/authors/VA000124/
0574名前は開発中のものです。
03/03/28 10:24ID:15AcszXt(,,゚Д゚) < なんだ、このスレもう終りか
/ つつ∬ \___________
〜(,,_,,)旦 【THE END】
0575名前は開発中のものです。
03/03/29 00:37ID:ZoebuWxW0576名前は開発中のものです。
03/03/29 01:29ID:+a1RiwQO0577あぼーん
NGNG0578名前は開発中のものです。
03/03/29 03:16ID:GUOOm+O5Winnyの掲示板からやってきました。
制御系の職業プログラマーですが、ゲーム系は初心者です。
何か手伝えそうでしょうか?
一つ提案なのですが、せめてCPUエミュだけでもアセンブラに
した方が良いのでは?効率が全然違うと思います。
0579GNO
03/03/29 03:22ID:GUOOm+O5名前がとんでもた。
なんか終了AAが出てるけど、ほんとに終わり?(^o^A
0580あぼーん
NGNG0581名前は開発中のものです。
03/03/29 05:12ID:e7sjQQwKまずは資料を整理してセガサターンというハードを理解するところから始めよう。
0582あぼーん
NGNG0583542
03/03/29 10:19ID:5VWwqs7J先を急ぐ必要がないんならいきなりセガサターンエミュを作るというよりは、なんでも
いいからプログラムを作ったり、コンピュータの仕組みを理解したりしたほうが
いいんじゃないかな?
まずは、コンソールアプリでイスカンダルの豆腐屋ゲームあたりを目指すとか?
0584名前は開発中のものです。
03/03/29 10:39ID:/PZHMdjYAAはこの板に常駐している荒しなので、相手にする必要はないです
0585あぼーん
NGNG0586くろりん
03/03/29 11:26ID:GM7RP8fQ>>571さん
最終的にC++で書くならそっちの方が効率いいですよね。
そっちの言語の方が速度的にも上なんですか?
近くに図書館あるからそっちでいろいろ借りてきます。
0587GNO
03/03/29 12:52ID:GUOOm+O5速度はやっぱりアセンブラが一番。
その次がCで、C++はCよりも遅いと思っていいと思います。
人間にとって便利で分かりやすい言語ほど、コンピュータに
無駄な処理をさせてるって事ですね。
私の場合、基本はCで、必要に応じてアセンブラとC++をミックス
させてます。
0588あぼーん
NGNG0589名前は開発中のものです。
03/03/29 13:06ID:z6tUVI8L保守性を考えると高級言語で書くべきじゃねーのか?
0590あぼーん
NGNG0591GNO
03/03/29 15:44ID:GUOOm+O5>動いても居ない時点から速度を気にしてもしょうがないし、
そりゃそうですね。(^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あぼーん
NGNG0595GNO
03/03/29 18:50ID:GUOOm+O5PI.さんがうまくまとめて下さいました。
スレ立て人はいなくなってしまいましたけど、ハイレベルな方を
多数召喚してきたのは功績大ですね。
0596あぼーん
NGNG0597AZUCO
03/03/29 21:57ID:RJe3Mobf>>568
俺もお金ない人は、図書館で技術書借りるってのは大いに有効だと思います。
初期の段階は、入門的な本が役に立つかもしれませんが、結局はリファレンス的な本を
所蔵したいと思うので、入門的な本は図書館で良いんですよね(w
ま、でも長期にわたる場合は、他の利用者もいるかもしれませんから、ちゃんと返しましょう(w
>>578
俺はもともとアセンブラ信者なのですが、それでもCで書いたほうが良いと思います。
理由は常に最適なコードを書くだけの気合が全オペコードで保てるとは思えないからです
(SH2だけでなくMC68Kもありますし)
あと、別に自分でthisポインタを実装すれば良いんですけど、SH2の実装がクラスを使うと
激しく楽なので、それもあります。
>>592
流石神のお言葉は俺のそれとは重みが違うな(汗
言い忘れてましたが、マジでエミュを作るとなると「ソフトを作る力」とは別に「ソフトを解析
する力」というのが要求されます。こればかりは、アセンブラをやった事のある奴じゃないと
恐らくそのコードの妥当性を検証できないので、やるには相当な経験を要求します。
(だから最初にCPUエミュレーション出来れば上等といってたのは、その為)
割とまとまってきた感はありますが、議論の目的である、プログラム担当者さんたちの意見
感想等が見えてこないのがちょっと苦しいかなと(話してる方は自分の物差しでベストと
思われる選択をする事になるので)
また活発に議論されてる方自体が、プログラム担当になっても良いと思います。
0598GNO
03/03/29 23:33ID:GUOOm+O5借りないように。CもC++も仕様が随分変わりましたので。
昔は「K&Rぐらいは買え!」なんて言いましたけど、最近はネット上の
入門サイトに素晴らしいのがあるので、そっちの方もオススメです。
>>597
>言い忘れてましたが、マジでエミュを作るとなると「ソフトを作る力」とは別に「ソフトを解析
>する力」というのが要求されます。
私は仕事上データコンバータを作ることが多いんですけど、ターゲットの
解析が終わればソフトはできたようなもの、っていう感があります。
コーディングそのものは、プロジェクト全体から言えば「手術後の縫合」
みたいなものかもしれません。(おいおい…)
ところで、カオス状態では開発は進まないので少なくとも、
・プロジェクトリーダー:メンバーアサイン、進捗管理、オフ会の幹事(?!)をする人
・チーフプログラマー:全ソースに目を通してプログラム全体を掌握する人
・データベース管理者:集まった情報を誰もが閲覧できる様にアップする人
を決める必要があると思います。
またこれらを降臨されてる神々が担当するのか、比較的ヒマとパワーのある
学生さんに任せて、神々はアドバイザーに徹するのか…
そのあたりはいかがです?
0599名前は開発中のものです。
03/03/30 12:16ID:utTeDNKb徹底した管理でプロジェクトを進めるのも良いけど、
堅苦しくてモチベーションが持続しなくなるだろ。
チーフになりうる実力を持った人が抜けるだけで
プロジェクト崩壊してしまうし、チーフの負担が尋常じゃない。
というか、そもそもチーフ一人でコーディングした方がマシって状況になりそうだ。
管理者は置かない方が良いと思う、
特に小規模で、開発者同士が疎遠で有る場合は。
0600あぼーん
NGNG0601AZUCO
03/03/30 19:52ID:QJXbsAhF>あんまり古い本は借りないように。CもC++も仕様が随分変わりましたので。
すいません、そこまでCPP使い込んでません(汗
>ところで、カオス状態では開発は進まないので少なくとも、
プロジェクトリーダーというか、方向性を指し示す事をやろうかな、と思ってましたが、
そもそも方向性を示して、ついて来るのか?というのが問題になってしまいました。
>>599
>堅苦しくてモチベーションが持続しなくなるだろ。
これは599の感性の話なので、全ての人がそうだとは思いませんけど(つうか大まかなスケ
ジュールすらないと、全然だらだらになるし、まぁいいかーの連続になる可能性が高い)
>チーフになりうる実力を持った人が抜けるだけで
>プロジェクト崩壊してしまうし、チーフの負担が尋常じゃない。
これはあたりだと思います。
しかし結局その後、一人で組んだほうがマシっていう話なら、全然ここに来なくても良いの
であって、やはりチームという縛りは最低必要だろうとは思います。
ま、結局の所は、誰もが他人任せになってる状態では全然動かないなぁって事ですね。
割かしスキルとやる気のあるGNOさんにちょっと悪いのですが。
しかしエミュ以前の話だなぁ。
0602BERO
03/03/30 23:31ID:1e5aLg5Zあぼーんされまくって鬱。
0603名前は開発中のものです。
03/03/31 01:23ID:RAmIXtVwまあ完成させるのに相当なスキルが必要ってのは
勿論その通りだと思うのですが、今このプロジェクトは
製作に殆ど取り掛かってもいない段階な訳で。
やりながら勉強していく、って発想では駄目なんですか?
0604PI.
03/03/31 03:49ID:6rVpBAhpいや、もちろん製作を進めながら勉強する、という形になるとは思いますが
私が言いたいのは、とにかく時間がかかるよ、すぐ結果は出ないよという事です。
私が最初に書いた、最低500時間、完成まで2000時間という目安からも、どの
くらいのものか分かるかと思います。そしてこれだけの時間をかけるためには、
かなりのモチベーションが必要です。「とりあえず始めてみるか」ではかなりの
高率で挫折すること間違いなしです。
そういう意味からも、私としてはチーム制ではうまくいかないと思います。
チームでやるにしても、中心になる人が1人だけいて他の人はサポート・支援
にまわる形しかあり得ないのではないでしょうか。
例えばの話、私が中心となって製作を進める場合(あり得ませんが)でも
他の人の協力を得てチームで進めようとは思いません。私以外の人にそんな
辛い作業を長期間に渡って強いることはできないと考えるからです。
否定的な話になって申し訳ありませんが、ある現役エミュレータ作者の本音
ととらえて頂ければ幸いです。
0605名無し
03/03/31 04:58ID:Pagi4tmDモジュール仕様書と変数名だけあれば出来るのではないでしょうか。
そういえば制御系の人いましたね。
0606AZUCO
03/03/31 07:07ID:Jyx6sbosおっとー!チーム性に疑問提示キター!
でも俺も現実的にはそう思います。実際俺もスキルの粒度の揃わない事に関しては、
ハードルを用意して「越えてみなさい」的な乱暴な解決しか思い浮かびませんし。
多分一般の人はちょっとエミュに対して幻想抱きすぎなんだと思いますね。
オープンソースにしろ、チーム性にしろ「MAMEでやってんじゃん!」って感じで同様の
効果を期待するのでしょうが、MAMEは神ぞろいなんですわ(w
しかし・・・・・そう言い切るのもあんまり夢がないしねぇ。
まぁ俺がいえるのは、
>>605の「コーディングとかテストとかを代わりにやってもらうのはどうですか 」
ではなく「コーディングとかテストとかなら、俺でも出来ます」っていう風にならなきゃ
全員企画厨房から脱却は出来ないって事だけなんですけど・・・・・・・
やばいなーなんか否定的雰囲気全開だなー
あー今ごろ1は「だからいったじゃんよー」って思ってるな(w
■ このスレッドは過去ログ倉庫に格納されています