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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。03/03/02 11:59ID:CduGclze
SSエミュは壊滅の危機に瀕している。
そこでだ、有能な2ちゃんねらーが協力して新たなエミュを作ろうじゃないか。
じゃあ後よろしく
0423濁流水03/03/20 20:56ID:kXnLklg8
う、今サターンのハード図見てきたら、思った通り全然見当違いな事書いてた。
恥ずかしすぎ。
逝ってきます
   ||     ⊂⊃
   ||    ∧ ∧
   ||   (  ⌒ ヽ
 ∧||∧   ∪  ノ
(  ⌒ ヽ 彡  V
 ∪  ノ  
  ∪∪

0424あぼーんNGNG
あぼーん
0425名前は開発中のものです。03/03/20 21:35ID:RP9Chf+S
荒らしが多いようですが、やっているコト、それに対する熱意、
すごいなぁ、と2chで正直に思ってしまいました。
>>1のスキル向上を願いつつ、漏れはマターリとヲチさせてもらいまつ。
とにかく、がんがれ!!
0426あぼーんNGNG
あぼーん
0427名前は開発中のものです。03/03/21 00:04ID:EDaxE0sO
んま〜
みんなでがんばってそれで何か学べりゃいいんでないの?

完成しようがしまいが
0428名前は開発中のものです。03/03/21 00:20ID:HTZ7InZ8
プログラムとか全然わかんないけど、なんか、がんばれみんな。
0429あぼーんNGNG
あぼーん
0430AZUCO03/03/21 01:16ID:/udupV1o
ちょっときつい事を言うようだが、417の書き込みが何について話しているのかが
わからないというのは、やっぱきつい。

ただ、知らない事は別に悪いことではない。学べば良いだけの話。

単語がわからなきゃ調べれば良いし、言い回しがわからなければ聞けばいい。

どんどん打ち込んで来い!(謎
0431あぼーんNGNG
あぼーん
0432名前は開発中のものです。03/03/21 03:48ID:n6ZL9r6K
全くの素人だとどうなんだろ。
基礎知識は基本情報技術者の参考書とか読めばいいかな。
試験は受けなくても良いとして。
で、C++勉強しつつ低水準の知識も得る為に「はじめて読む486」とか。
「はじめて読む8086」とかでも良いな。
とにかくどれかアセンブラ関係の奴を一冊流し読み。
一旦その程度の基礎をつけると、知らない事を調べるのも楽な筈。
0433あぼーんNGNG
あぼーん
0434名前は開発中のものです。03/03/21 10:28ID:KP2CCILp
417のAS1の動作を判りやすく言うと
上位16ビットでテーブル組んで大体のアタリを付けて、その後、もっと細かいレベル(下位16bit)のアドレスを読みに行くって事ですか?

んで、リスト型振り分けってのは、どういう基準かは判らないけどとにかくメモリを何個かのリストに分割して、
その分割したリスト単位で大まかなアタリを付けるってことで良いですか?

AS3は、(SSの)メモリをクラス化して、そのクラス内部で(PCの)メモリ確保して、その(PCの)メモリをダイナミックキャストして、SSのメモリと同じように見えるようにした物?つまりアタリ付けずにダイレクトにジャンプ。
ややこしいでつな。

この辺の考え方によって速度が大きく違うのは理解できるけど、とりあえず動く物。という程度のレベルでは考えるのは難しいかと。
0435AZUCO03/03/21 13:37ID:/udupV1o
>>434
リスト形振り分けの利点は、テーブル形だと、広大なメモリ空間をわざわざ分割して判定し
なければならないが、リスト形振り分けだと、広大なメモリ空間がリニアであれば一回の
判定でさばける。

また、テーブルと違い、飛び先の予測がつきにくい訳ではないので、キャッシュがヒットする
可能性が大きくなる。

結果的に、デバイスが少ない、メモリ空間がリニアに繋がっている場合において、速度を
稼ぐ事が可能になる。ということ。



AS3のダイナミックキャストは、AS1でメモリじゃない事が分かってから、初めてデバイスの
振り分けに逝ってたんだけど、それをメモリと同じレベルで、テーブルの時点で振り分け
られるようにしてる。

これをするには、クラスインターフェースを共通化して、その共通化した部分を基底クラス
としてもち(device class)各クラスに派生する・・・という形を取る。

その別クラスを、基底クラスを介してポインタアクセスする事をダイナミックキャストという
のですわ。



まぁ後者の方法がわけわからん♪というのであれば、前者を選択すればよい。
要するに、俺は、選択のきっかけを与えて、自分たちで選択して欲しいと思ってるわけで。
0436デブおた山崎渉 03/03/21 13:57ID:zeqkoie9
    ∧_∧
ピュ.ー (  ^^ ) <これからも僕を殺してして下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      デブおた山崎渉 
0437あぼーんNGNG
あぼーん
0438名前は開発中のものです。03/03/21 15:33ID:mA8DTlxF
この板の荒らし君
なんでこんな長期にわたって粘着してんの?
0439あぼーんNGNG
あぼーん
0440あぼーんNGNG
あぼーん
0441あぼーんNGNG
あぼーん
0442名前は開発中のものです。03/03/21 17:04ID:iwNdYf4y
がんばれ
0443あぼーんNGNG
あぼーん
0444名前は開発中のものです。03/03/21 21:34ID:MwmV6uSG
がんばれ!応援してるぞ!
0445あぼーんNGNG
あぼーん
0446名前は開発中のものです。03/03/21 22:15ID:DXPJH8J/
ttp://www.watch.impress.co.jp/game/docs/20030321/sega.htm
0447名前は開発中のものです。03/03/21 22:45ID:hWN+5bZy
>>438
気にすると新参者ということがばれるぞ(w
0448あぼーんNGNG
あぼーん
0449くろりん03/03/22 00:56ID:D0JQF0FB
ROMってるうちにマジでやりたくなってきた・・・。
0450名前は開発中のものです。03/03/22 02:15ID:4GzZ1Zlo
マジレスすると終了のAAで保守してくれるのでマターリ進行でも落ちません
0451あぼーんNGNG
あぼーん
0452名前は開発中のものです。03/03/22 04:33ID:Fcl3U/Gm
ホストのMMUをつかう。memory mapped IO/ROMはrw禁止/w禁止にしておき、
例外ハンドラでハンドリングする。
WinだとMapViewOfFileとSEH(とあとなんかアクセス許可設定するヤシ)。しかしMapViewOfFileは64k単位でしかアドレス設定できない罠。
そっから先はDDKに手を出すことになるだろーな。
0453AZUCO03/03/22 06:38ID:Ye4/wswS
>>452
それも考えたんだけど、例外が呼び出されるコストはかなり高いはずなんだよねぇ・・・
0454あぼーんNGNG
あぼーん
0455あぼーんNGNG
あぼーん
0456名前は開発中のものです。03/03/22 10:44ID:iIp8OV9Q
自分はDCのほうに興味があるんだが、、、
いちお日立のSHリンク
http://www.hitachisemiconductor.com/sic/jsp/japan/jpn/index.html
http://www.super-h.com/contents/theme/index.html
http://www.sh-linux.org/
http://www.hitachisemiconductor.com/sic/jsp/japan/jpn/PRODUCTS/MPUMCU/32BIT/sh_manual.html#

思うんだけど海外のほうがエミュ開発が得意ってのは
単にメリケンの方が日本人より頭がいいから?
それとも勝手に日本ゲームハードの仕様をメリケン開発者が外部に
流してるのかな?
0457デブおた山崎渉 03/03/22 10:59ID:GQlwLgRk
  ∧_∧
  ( ´;^;ё;^;)<これからも僕を殺して下さいね( ´;^;ё;^;)。
=〔~∪ ̄ ̄〕
= ◎――◎                     デブおた山崎渉
0458名前は開発中のものです。03/03/22 11:09ID:aFwU7WJg
たしかに日本の業界は閉鎖的ね
あっちではオープンソースと称して技術情報流出!(・∀・)イイ!
0459名前は開発中のものです。03/03/22 12:14ID:jTdST1dQ
メモリは基本的にリニアアクセスが最も多いんだから、
mameで採用しているリスト形式を利用するのが良いと思うんだけど、どうだろう。

というか、メモリマップドI/Oもあるようなので、
アロケーションマップの方式だと、
アロケーションユニット(ページ)単位でデバイスを割り当てる物では無いようなので
アドレスを見て振り分けないとならず、パフォーマンスに深刻な影響が出そう。
#テーブルのルックアップ>アドレス照合 してから、メモリかデバイスか決定になるのかな
0460あぼーんNGNG
あぼーん
0461名前は開発中のものです。03/03/22 20:34ID:R3CwUYLn
ttp://www.watch.impress.co.jp/game/docs/20030321/sega.htm

むう。
0462名前は開発中のものです。03/03/22 22:15ID:VomvBiVp

「レンタル」じゃなけりゃ大歓迎なんだがね
値段の問題じゃない。精神衛生の問題。
早解きしても誰にも自慢できないのに、何で急いであそばにゃならんのよ
もっとマターリしたい。いつでも思いついた時に遊びたい。
みんなそうだろ?
0463名前は開発中のものです。03/03/22 23:09ID:x5o5vdzv
>>456
100%後者
0464名前は開発中のものです。03/03/22 23:33ID:oEjKOWBf
GBAなんか発売前からEMUできてたしな。
0465あぼーんNGNG
あぼーん
0466名前は開発中のものです。03/03/22 23:45ID:ydasZUGA
"ゲーム"製作技術
0467名前は開発中のものです。03/03/22 23:49ID:x5o5vdzv
"ゲーム"製作技術
       ̄ ̄ ̄ ̄
0468あぼーんNGNG
あぼーん
0469名前は開発中のものです。03/03/23 00:45ID:ql32Vcv8
"ゲーム"製作技術
          ̄ ̄
0470くろりん03/03/23 18:11ID:IxdBVaFG
何故このスレに荒らしが駐在してんだ?
もっと人が来たらいいスレになるんじゃん?
0471名前は開発中のものです。03/03/23 19:01ID:EvHsC1NS
ドゥーイドゥーイ。
俺はお気に入りに入れてるんだけどね。
0472あぼーんNGNG
あぼーん
0473名前は開発中のものです。03/03/24 03:34ID:AFFfQ5RO
もしかしてAZUCO氏にすら見捨てられてるスレ?
0474名前は開発中のものです。03/03/24 14:30ID:mahzEysc
そう言えば、宿題の〆切は昨日までだったな。
0475AZUCO03/03/24 14:57ID:v4oLpJhM
>>452
そうそう、言い忘れたけど、有用な意見だと思うけど、レベル高い意見出されても、参加して
実際に手を動かしてくれなかったら、他の人は実装できないと思うんだよね〜

つっことで、コテハンつけて参加して下さい。

そうじゃない場合は、すまんけど、雑談と断って下さい。俺もそういう雑談は嫌いじゃないんで。
0476AZUCO03/03/24 15:03ID:v4oLpJhM
>>456
自分でも開発してみりゃわかるけど、エミュ開発にはとにかく時間が必要。
そういう部分で、俺は数年前からもうほとんど開発に回せるほどの時間は無くなってしまっ
たので、相当進捗が悪い(専業でやれば絶対逝けるんだが・・・・・・くぅ〜)

特にヨーロッパ方面の奴は、そういう意味で余暇のたっぷりあるライフスタイルなので、ヒマ
と技量ときっかけがうまくめぐり合うから、エミュ開発が盛んなのだと思う。
あと大概どんなエミュでもチームを作ってやってる場合が多い(コード書き&デバッガーと
か)そういった部分でも作業速度を稼ぐ大きな要因になってると思う。

技量の差は特に無いと思う。
ドキュメントも極論すりゃ英語のを読めば条件は同じ。
0477AZUCO03/03/24 15:09ID:v4oLpJhM
>>473
つっか忙しいんだよ〜
まぁ打って響かなくなれば、自動的に終了だけど。

>>474
わかんないなら、わかんないなりに、何がどうわからないのか位は報告してくれよ〜
俺ってば、もう判っている事前提でガンガン話しちゃう方だから、噛み砕いて説明なんか
しないからねー(わざわざ最初から噛み砕くのは時間の無駄だと思ってるので)

さぁ!どう思うね?アドレスデコーディングの捌き方は!
0478名前は開発中のものです。03/03/24 17:40ID:qZgMN/tJ
最高だと思いますっ!
0479名前は開発中のものです。03/03/24 17:48ID:9M2saKvw
AZUCOもしかしておまえ「ヤツ」なのか?

・・・・。

いや、気のせいか・・・。
0480AZUCO03/03/24 17:50ID:v4oLpJhM
>>479
奴?ヤツ?

肩にちょうちょのあざのある男・・・・・・か?

いや、気のせいか・・・・。
0481あぼーんNGNG
あぼーん
0482あぼーんNGNG
あぼーん
0483名前は開発中のものです。03/03/24 18:41ID:HcLOlBjt
>>461
20日にアソビソに行ってナイツをやってきたよ。きっちり動いててなつかしかったな。
このスレは初期からROMってたけどおいらは元アセンブラ組み込み系ヲヤジなので
C++なんかはぜんぜんわからんが、なんか勝手にこっそり期待しております。

ところで>>417のリスト形振り分けっていうのは、メモリを伸縮自在(にまでしなくてもいいんかな)の
セグメントとして管理して、SS上の先頭アドレス、セグメントの長さ、確保済みの実メモリのポインタを
どんどんぶら下げていくって感じのイメージなのかな?
MAMEソースとか見てないのであてずっぽな発言なんで雑談扱いでお願いです。
0484あぼーんNGNG
あぼーん
0485名前は開発中のものです。03/03/24 21:46ID:AFFfQ5RO
>さぁ!どう思うね?アドレスデコーディングの捌き方は!
ホストじゃなくて、ターゲット(SS)のメモリコントローラの機能をそのまま実装するんじゃダメですか?
x86だとCPUが論理アドレス->リニアアドレスの変換をサポートする機能持ってるんだけど・・・
というか、x86しか知らないのでさっぱり見当付きません。

sh2のプログラミングマニュアル読んでも、
メモリについてはさっぱり言及されてなかったし
まだハードマニュアル読んでみてる途中なんですが・・・

もしかして、SSとは関係無しにアドレス変換の技術があるか見ているのでしょうか?
0486あぼーんNGNG
あぼーん
0487名前は開発中のものです。03/03/24 22:22ID:sFSFl16b
とる
ふく
0488AZUCO03/03/24 23:48ID:6ukb+9+D
>>485
SH2をx86に実装するにしても、わざわざ同スケールで1対1に実装する必要は無いのです
(SH3あたりからそういう思考もいりますが・・・・・)

エミュレータは如何にごまかして(?)実装するかで速度がかなり違いますから、正直に
全てを実装する必要は無いのです。

今回のレベルで言えば、SH2の動作から見たエミュレーションを行えは十分なのであって
メモリのタイミングとかそういう部分までは求められてないわけです。

あと、言い忘れましたが、組み込み系プロセッサではシャドウィングに対する処理もスマート
に行う必要があります(ダブルマップとかいう言い方もします>PPCとかー)

また、この議題はかなり普遍的な議題です(SSに限らない)
0489AZUCO03/03/25 00:42ID:62IxgmTV
みなさんそろそろ終了ですか?!
0490名前は開発中のものです。03/03/25 01:38ID:JK8UpuDD
2chでエミュ作ろう!winnyみたいに。
http://tmp.2ch.net/test/read.cgi/download/1048497322/

各地でエミュ厨大あばれ(w
0491名前は開発中のものです。03/03/25 02:17ID:BC4S1x3/
>>489
ん!?もう終わちゃったの?
かなり難しい話になってきたので、着いて行ける人が少なくなってきたんじゃないかなぁ

とりあえず、もう一度ソースUPしてくれません?
手伝えそうならがんばってみるので
0492名前は開発中のものです。03/03/25 02:29ID:3/ddN1KI
来年以降なら俺も暇になるのにな。。
0493あぼーんNGNG
あぼーん
0494名前は開発中のものです。03/03/25 02:45ID:OY0Ivw+V
漏れもソースキボン
ビルド出来ないとか、スパゲッティだとか言ってたのを、何とか整理して見通しよくして
ビルドできるようにしたい所存。

ネット上に転がってるソースを切り貼りして形に出来ない物かねぇ?
SSに積んでるX68kのエミュレートはMAMEコア使うとか。
んで、どうしても足りない物だけ作って形に出来れば良いとおもうんだけど。
無論、アーキテクチャの違いなんかは上手く誤魔化さないといけないと思うんだけど。
以上、詳しくない人の戯言です。アフォな事言ってると聞き流してください。

メモリに関しては、速度面、実装面からリスト式が良いと思われます。
デバイスの判定は、デバイスだけ纏めたリスト作る事で判定できないですかね?
0495名前は開発中のものです。03/03/25 02:56ID:3/ddN1KI
SSはSHじゃあ。。
0496名前は開発中のものです。03/03/25 03:09ID:12upCSNk
プロセッサは

SH1 x1
SH2 x2
VDP1
VDP2
FH1 DSP
68EC000

だけ積んでるんじゃなかったっけ?
0497あぼーんNGNG
あぼーん
0498あぼーんNGNG
あぼーん
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があります。
それを利用するとしましょう。
■ このスレッドは過去ログ倉庫に格納されています