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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。03/03/02 11:59ID:CduGclze
SSエミュは壊滅の危機に瀕している。
そこでだ、有能な2ちゃんねらーが協力して新たなエミュを作ろうじゃないか。
じゃあ後よろしく
0499PI.03/03/25 12:47ID:b8ZarZhy
AZUCOさん、BEROさん久し振りです。他の方は初めまして。XM6/XM7のPI.です。

サターンに限らずエミュレータを作るのは大変なことですが、それだけに
意義のあることです。参加される方は頑張ってください。

エミュレータを作る上で技術は大事ですが、それは後からついてきます。
大事なのはモチベーション(覚悟と言い換えてもいいでしょう)。これ
をしっかり持っておかないと、すぐ挫折するか飽きます。モチベーション
があれば、あとはひたすら勉強にしろ解析にしろデバッグにしろ、時間を
大量に投入するのみです。そうすると自ずと道は開けてきます。

私の経験では最低500時間!完成まで2000時間を見ておけばいいでしょう。
私はFM-7エミュレータXM7の開発開始以来、4年の歳月と3000時間を投入し
ています。これを参考に計画を立て、日々精進してください。
0500あぼーんNGNG
あぼーん
0501あぼーんNGNG
あぼーん
0502名前は開発中のものです。03/03/25 14:50ID:12upCSNk
ホントにすごいな、このスレ。
逃げたけど1は偉大だったのかもしれん
0503名前は開発中のものです。03/03/25 14:55ID:T8+r4FEC
トリップ無しでageで書かれるとホントに本人なのか疑わしく思うオレってば もう重症?
0504AZUCO03/03/25 15:12ID:62IxgmTV
風邪で死亡中です。

ソースキヴォンヌの声があるけど、今現在の話は(どういったアーキテクチャ、指向で組ん
でいくか)というのは、ソースとはまったく関係ないので、勘違いなきよう。

また、ASを土台に組むのも無しなんで(既に致命的な欠陥があるソースなんで)

あと、既存の物をいじるより、自分で1から組んだほうが早いよ。特にASみたいに本人すら
把握不可能になったものは。

なんつーか、絶対的に君らはスキルが欠乏している。結果を急いでも駄目です!
一つ一つ自分がわからない事を潰して行くしか道は無いと思う。

>>499は本人様ですね。神降臨!
0505あぼーんNGNG
あぼーん
0506あぼーんNGNG
あぼーん
0507名前は開発中のものです。03/03/25 18:14ID:lrr33XXm
AZUCOさん面倒見が良いなあ。

>>504
ソースが欲しいって言うのは、テーブル形の実装が
具体的にどういうものかを見て感覚的に理解したいという事では?
リスト形の方はMAMEでやってるんでしたよね。
0508名前は開発中のものです。03/03/25 18:32ID:23/ttQ3Q
もりさがりage
1はお勉強進んでるかい?
0509名前は開発中のものです。03/03/25 18:34ID:v85+ywzH
>507
そうそう、もう少し具体的な実感を得たいんだよね
特にソースにこだわってるわけじゃなく、プログラムの構成とかテーブルの形態とか
そういったものを知りたい

それに人のプログラムを読むのって勉強になるし、
エミュってこんな感じなんだっていう感覚をつかみたい。

話はそれるけどオープンソースってよく聞くけどオープンドキュメントってあるの?
0510あぼーんNGNG
あぼーん
0511名前は開発中のものです。03/03/25 20:46ID:OY0Ivw+V
PI.さんご本人登場記念カキコ(藁
XM6/XM7大変お世話になっております(特にXM7)
実装計画(?)の☆マークが大変判り易く、設計の確かさを感じます。
ここで作る場合でも、各デバイスの機能実装をあんな風にグラフ表示してみてはどうでしょうか?
何が必要か。また、何が足りないのか一目瞭然です。
0512名前は開発中のものです。03/03/25 21:10ID:82/Ohai+
なんだかとんでもなく難しい話になってるんだが・・・
俺が低脳なだけか・・・
0513shima03/03/25 21:17ID:Ebiwmc3q
SH1はCDブロックですね。
これはエミュレートしなくていいですよ。
CDブロックへのアクセスは提供ライブラリ必須だったので、
CDアクセスコマンド解析してCDブロックと同じような動きをする
プログラム書けば問題なしです。

ちょっと見にきただけですのでこの辺で…
みなさん頑張ってください。
0514くろりん03/03/25 22:16ID:GJIM7WlX
↑SHIMA様降臨!!
 すごい・・・ このスレ・・・
 SSF・Girigri・A-Saturnと3拍子そろったぞ・・・
0515あぼーんNGNG
あぼーん
0516名前は開発中のものです。03/03/26 00:37ID:UZfyW537
SH1て、インテリジェントCDとか言う奴の制御用すね
プログラマブルだったらエミュレートしなきゃいけない所だけど、ライブラリ必須だったのか…
非同期でCDが読めない(少なくとも読めたような気がしない)のはライブラリの出来が良くなかったからか?

サウンドも一応FM音源使えるみたいだけど、使ってるゲームって現実にあったかな?
無ければ実装しなくてもいいような気がする。

正直、メモリはSSの物を馬鹿正直に同スケールで実装するんだと思ってますた。
CDから読み出した物を動的に確保していけるならその方が効率よさそうですね。
0517AZUCO03/03/26 01:35ID:hfc0EyC9
>>507
>AZUCOさん面倒見が良いなあ。
少し理由があります。

今現在メインマシンがあぼーん中で実質ヒマな事
もともとやろうと思ってた事と、この件がかなりシンクロしてる部分がある事
お金が絡んでくる可能性がある事

最後のは不純ですまん!(w

テーブル型のは、AX68Kでまったく同じソースを使いまわしてるのでちょっとそっち見て
ください。
AS3タイプのアーキテクチャのソースはなんかの形で流すかもしれません。
Hornetをwinnyでとか。<こいつも遊びの一環で。

メインマシン死んでると、マジで通信しか出来ないなぁ(汗
0518あぼーんNGNG
あぼーん
0519AZUCO03/03/26 01:47ID:hfc0EyC9
プログラム担当者の書き込みが全く無くなったような・・・・・・・
1に続いて脱走か?!(汗
そんな事ないよなぁ(泣

かつては俺もゲーム作る!とかいってタイトル画面だけで終わるような企画厨の時代も
あった(w <F-BASICの頃ね
でも自分の力を疑った事は無かったぞ!(時間がかかるとは思ったが)

分からん事は聞いてこい!ただしSSアーキテクチャの話はまだまだ先だ!
今はジェネリックなエミュレーション技法の話とか、どういう指向でプログラムを組むかとか
土台の話。つまらんのはわかるけど、ここを通らないと、先も無いよ!

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

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

またこれらを降臨されてる神々が担当するのか、比較的ヒマとパワーのある
学生さんに任せて、神々はアドバイザーに徹するのか…
そのあたりはいかがです?
■ このスレッドは過去ログ倉庫に格納されています