セガサターンのエミュをみんなで作るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
03/03/02 11:59ID:CduGclzeそこでだ、有能な2ちゃんねらーが協力して新たなエミュを作ろうじゃないか。
じゃあ後よろしく
0410hrk_hys
03/03/19 11:51ID:RBfHgnJnフロントエンドとかどうします?
出来ればプロジェクトファイル作って管理できる物がいいと思うんですが。
たとえばBCC DeveloperとかCBarとか
0411AZUCO
03/03/19 12:51ID:2WEDWI8nすいません・・・・・素人なもんで・・・・・・
フロントエンドってなんですか?
ソースから、コンパイルして実行ファイル作る部分ですか?
だとするなら、makeでええんちゃいます?
0412hrk_hys
03/03/19 13:19ID:RBfHgnJn>【コンピュータ】フロント・エンド
> ((プログラムやネットワークの中でユーザーが直接向かい合う部分)).
言い方悪かったです、まあ総合開発環境です
とりあえずみんなC/C++覚えなきゃいけないから
make覚えるよりは早いかと
0413北の国から ◆KI8qrx8iDI
03/03/19 15:45ID:V6mKQNZqある程度まとまった金ができたら7買いたいですが、。
まぁ最初のうちはこれでも十分のような気もしますが(GDIも使えるし
DirectXになると話は変わってきますねぇ・・・
0414あぼーん
NGNG0415濁流水
03/03/19 21:20ID:0769DFTX初めて触った時は、コンポーネントの考え方とか目から鱗がボロボロ落ちたもんです
関係ないけどC#がまんまパクリみたいな事やってたんで、いろんな意味で衝撃を受けたと言うのは余談すぎますな。
ただ、前にも言ったけど、結局DirectX使うのに苦労するので、長い目で見るとVisualStdioの方が早道かもしれない。
お金もかからず、一通りなんでも出来るのがBCC
すぐに勉強始められるし、やる気になりゃ何処までもいけるんで、ある意味最強かも
BCC Developer使えばリソース管理も出来る。
DirectXも普通に使えるんで、ノーマルなC++環境で総合的に見ると最強かも。
とりあえず、BCBとVC++は「混ぜるな危険」なんで、それだけは避けた方が良いかと。
個人的には、スキル習得にBCC、そこそこ出来るようになればVCと言ったながれが一番良いと思う。
0416あぼーん
NGNG0417AZUCO
03/03/20 10:31ID:PgWcsZ8Oまーちょっと俺もBCB入れて、いじってみるわー。
んじゃぁ、ちょっと各自、BCBさわれる程度にしておいてちょ。
次の議題は、メモリのエミュレーションをどういうやり方でやるかって事を決めましょ。
メモリのエミュレーションは、x86とSH2ではエンディアンが違うので、絶対になんらかの
中間処理がいるのと、
広大なアドレスをどう実際のマシンに割り当てるか?って部分が問題になってくると思う。
後者はAS1では、32bitのアドレスのうち、上位16bitをインデックスとして使い、実際のメモリ
に振り分けている。具体的にはメモリアロケーションテーブルとかいう(安直な名前だな:w)
配列に、メモリのポインタをぶっこんで、メモリを読みに逝くようにしている。
もしこのとき、ポインタがあるマジックだった場合には、メモリは割り当てられてないと判断し
デバイスの振り分けルーチンに飛んでいる。
他にはMAMEのようなリスト型振り分け(ソース見た限りではそうだと思うけど・・・・・)という
のがある。この方式は、振り分け区画が自由に決めれて(1バイト単位でもOK)振り分け
先が少ない場合は、テーブル方式よりも、高いキャッシュヒット率が望める。
また、より先進的な方法を取るなら、アクセス頻度によって、リストの順番を入れ替える等も
可能だろう(より速度が上がると思う)
ちなみにAS3ではダイナミックキャストを使って、メモリとデバイスを同じレベルのクラスと
して扱って、一発でアドレス振り分けが可能なようにしている。
ただしこのやり方は、Vtableを使うので、本当に速いのかは疑問。つーか遅いと思う。
という論点で、各自最適と思われる方法を提示せよ。締め切りは23日中まで。
0418あぼーん
NGNG0419mq5
03/03/20 15:54ID:DeelhAmI自分もマターリ作ってみようかなと思います。
Cは旧2種の問題程度はわかります。
DirectXはわからなくもない程度、
っていってもDirectDrawオンリーですが。
アセンブラも見ればなんとなく・・・という感じです。
C++はやってなくもないですが理解してるかどうか危うい。
これから時々書き込ませてもらいます。
0420あぼーん
NGNG0421名前は開発中のものです。
03/03/20 19:59ID:LD6ElUJB隊長!難しすぎてチンプンカンプンです!
0422濁流水
03/03/20 20:50ID:kXnLklg8しかし、いきなりアセンブラ(もしくはハードウェア動作)レベルで判らないとさっぱりな話になったような…
…サターンに幾らメモリを積まれているか知らないし、メモリアクセスの方法も知らないんで、いまいち現実的な手段が思いつかない…
話から察するに、メモリマップドI/Oマップになっているのかな?
エンディアンがMSBとLSB入れ替えれば良いだけの話なら、エンディアン変換したアドレスをオフセット値として、
サターンに積んでるメモリ分、最初に連続したアドレスとしてPC上に確保しておいて、さっきのオフセットで扱えばいいような気がした。
幾ら広大とは言え、今時のPCで確保できないほどのメモリではないと仮定してだけど。
…正直、書いていて見当違いな事を言っている様な気がしてならない…
余談だけど、Super32Xに対応しているGensはどういう処理をしてるんだろうか?
あれも一応SH2を二つ積んでいた様な気がする。
0423濁流水
03/03/20 20:56ID:kXnLklg8恥ずかしすぎ。
逝ってきます
|| ⊂⊃
|| ∧ ∧
|| ( ⌒ ヽ
∧||∧ ∪ ノ
( ⌒ ヽ 彡 V
∪ ノ
∪∪
0424あぼーん
NGNG0425名前は開発中のものです。
03/03/20 21:35ID:RP9Chf+Sすごいなぁ、と2chで正直に思ってしまいました。
>>1のスキル向上を願いつつ、漏れはマターリとヲチさせてもらいまつ。
とにかく、がんがれ!!
0426あぼーん
NGNG0427名前は開発中のものです。
03/03/21 00:04ID:EDaxE0sOみんなでがんばってそれで何か学べりゃいいんでないの?
完成しようがしまいが
0428名前は開発中のものです。
03/03/21 00:20ID:HTZ7InZ80429あぼーん
NGNG0430AZUCO
03/03/21 01:16ID:/udupV1oわからないというのは、やっぱきつい。
ただ、知らない事は別に悪いことではない。学べば良いだけの話。
単語がわからなきゃ調べれば良いし、言い回しがわからなければ聞けばいい。
どんどん打ち込んで来い!(謎
0431あぼーん
NGNG0432名前は開発中のものです。
03/03/21 03:48ID:n6ZL9r6K基礎知識は基本情報技術者の参考書とか読めばいいかな。
試験は受けなくても良いとして。
で、C++勉強しつつ低水準の知識も得る為に「はじめて読む486」とか。
「はじめて読む8086」とかでも良いな。
とにかくどれかアセンブラ関係の奴を一冊流し読み。
一旦その程度の基礎をつけると、知らない事を調べるのも楽な筈。
0433あぼーん
NGNG0434名前は開発中のものです。
03/03/21 10:28ID:KP2CCILp上位16ビットでテーブル組んで大体のアタリを付けて、その後、もっと細かいレベル(下位16bit)のアドレスを読みに行くって事ですか?
んで、リスト型振り分けってのは、どういう基準かは判らないけどとにかくメモリを何個かのリストに分割して、
その分割したリスト単位で大まかなアタリを付けるってことで良いですか?
AS3は、(SSの)メモリをクラス化して、そのクラス内部で(PCの)メモリ確保して、その(PCの)メモリをダイナミックキャストして、SSのメモリと同じように見えるようにした物?つまりアタリ付けずにダイレクトにジャンプ。
ややこしいでつな。
この辺の考え方によって速度が大きく違うのは理解できるけど、とりあえず動く物。という程度のレベルでは考えるのは難しいかと。
0435AZUCO
03/03/21 13:37ID:/udupV1oリスト形振り分けの利点は、テーブル形だと、広大なメモリ空間をわざわざ分割して判定し
なければならないが、リスト形振り分けだと、広大なメモリ空間がリニアであれば一回の
判定でさばける。
また、テーブルと違い、飛び先の予測がつきにくい訳ではないので、キャッシュがヒットする
可能性が大きくなる。
結果的に、デバイスが少ない、メモリ空間がリニアに繋がっている場合において、速度を
稼ぐ事が可能になる。ということ。
AS3のダイナミックキャストは、AS1でメモリじゃない事が分かってから、初めてデバイスの
振り分けに逝ってたんだけど、それをメモリと同じレベルで、テーブルの時点で振り分け
られるようにしてる。
これをするには、クラスインターフェースを共通化して、その共通化した部分を基底クラス
としてもち(device class)各クラスに派生する・・・という形を取る。
その別クラスを、基底クラスを介してポインタアクセスする事をダイナミックキャストという
のですわ。
まぁ後者の方法がわけわからん♪というのであれば、前者を選択すればよい。
要するに、俺は、選択のきっかけを与えて、自分たちで選択して欲しいと思ってるわけで。
0436デブおた山崎渉
03/03/21 13:57ID:zeqkoie9ピュ.ー ( ^^ ) <これからも僕を殺してして下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ デブおた山崎渉
0437あぼーん
NGNG0438名前は開発中のものです。
03/03/21 15:33ID:mA8DTlxFなんでこんな長期にわたって粘着してんの?
0439あぼーん
NGNG0440あぼーん
NGNG0441あぼーん
NGNG0442名前は開発中のものです。
03/03/21 17:04ID:iwNdYf4y0443あぼーん
NGNG0444名前は開発中のものです。
03/03/21 21:34ID:MwmV6uSG0445あぼーん
NGNG0446名前は開発中のものです。
03/03/21 22:15ID:DXPJH8J/0447名前は開発中のものです。
03/03/21 22:45ID:hWN+5bZy気にすると新参者ということがばれるぞ(w
0448あぼーん
NGNG0449くろりん
03/03/22 00:56ID:D0JQF0FB0450名前は開発中のものです。
03/03/22 02:15ID:4GzZ1Zlo0451あぼーん
NGNG0452名前は開発中のものです。
03/03/22 04:33ID:Fcl3U/Gm例外ハンドラでハンドリングする。
WinだとMapViewOfFileとSEH(とあとなんかアクセス許可設定するヤシ)。しかしMapViewOfFileは64k単位でしかアドレス設定できない罠。
そっから先はDDKに手を出すことになるだろーな。
0453AZUCO
03/03/22 06:38ID:Ye4/wswSそれも考えたんだけど、例外が呼び出されるコストはかなり高いはずなんだよねぇ・・・
0454あぼーん
NGNG0455あぼーん
NGNG0456名前は開発中のものです。
03/03/22 10:44ID:iIp8OV9Qいちお日立の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:jTdST1dQmameで採用しているリスト形式を利用するのが良いと思うんだけど、どうだろう。
というか、メモリマップドI/Oもあるようなので、
アロケーションマップの方式だと、
アロケーションユニット(ページ)単位でデバイスを割り当てる物では無いようなので
アドレスを見て振り分けないとならず、パフォーマンスに深刻な影響が出そう。
#テーブルのルックアップ>アドレス照合 してから、メモリかデバイスか決定になるのかな
0460あぼーん
NGNG0461名前は開発中のものです。
03/03/22 20:34ID:R3CwUYLnむう。
0462名前は開発中のものです。
03/03/22 22:15ID:VomvBiVp「レンタル」じゃなけりゃ大歓迎なんだがね
値段の問題じゃない。精神衛生の問題。
早解きしても誰にも自慢できないのに、何で急いであそばにゃならんのよ
もっとマターリしたい。いつでも思いついた時に遊びたい。
みんなそうだろ?
0463名前は開発中のものです。
03/03/22 23:09ID:x5o5vdzv100%後者
0464名前は開発中のものです。
03/03/22 23:33ID:oEjKOWBf0465あぼーん
NGNG0466名前は開発中のものです。
03/03/22 23:45ID:ydasZUGA0467名前は開発中のものです。
03/03/22 23:49ID:x5o5vdzv ̄ ̄ ̄ ̄
0468あぼーん
NGNG0469名前は開発中のものです。
03/03/23 00:45ID:ql32Vcv8 ̄ ̄
0470くろりん
03/03/23 18:11ID:IxdBVaFGもっと人が来たらいいスレになるんじゃん?
0471名前は開発中のものです。
03/03/23 19:01ID:EvHsC1NS俺はお気に入りに入れてるんだけどね。
0472あぼーん
NGNG0473名前は開発中のものです。
03/03/24 03:34ID:AFFfQ5RO0474名前は開発中のものです。
03/03/24 14:30ID:mahzEysc0475AZUCO
03/03/24 14:57ID:v4oLpJhMそうそう、言い忘れたけど、有用な意見だと思うけど、レベル高い意見出されても、参加して
実際に手を動かしてくれなかったら、他の人は実装できないと思うんだよね〜
つっことで、コテハンつけて参加して下さい。
そうじゃない場合は、すまんけど、雑談と断って下さい。俺もそういう雑談は嫌いじゃないんで。
0476AZUCO
03/03/24 15:03ID:v4oLpJhM自分でも開発してみりゃわかるけど、エミュ開発にはとにかく時間が必要。
そういう部分で、俺は数年前からもうほとんど開発に回せるほどの時間は無くなってしまっ
たので、相当進捗が悪い(専業でやれば絶対逝けるんだが・・・・・・くぅ〜)
特にヨーロッパ方面の奴は、そういう意味で余暇のたっぷりあるライフスタイルなので、ヒマ
と技量ときっかけがうまくめぐり合うから、エミュ開発が盛んなのだと思う。
あと大概どんなエミュでもチームを作ってやってる場合が多い(コード書き&デバッガーと
か)そういった部分でも作業速度を稼ぐ大きな要因になってると思う。
技量の差は特に無いと思う。
ドキュメントも極論すりゃ英語のを読めば条件は同じ。
0477AZUCO
03/03/24 15:09ID:v4oLpJhMつっか忙しいんだよ〜
まぁ打って響かなくなれば、自動的に終了だけど。
>>474
わかんないなら、わかんないなりに、何がどうわからないのか位は報告してくれよ〜
俺ってば、もう判っている事前提でガンガン話しちゃう方だから、噛み砕いて説明なんか
しないからねー(わざわざ最初から噛み砕くのは時間の無駄だと思ってるので)
さぁ!どう思うね?アドレスデコーディングの捌き方は!
0478名前は開発中のものです。
03/03/24 17:40ID:qZgMN/tJ0479名前は開発中のものです。
03/03/24 17:48ID:9M2saKvw・・・・。
いや、気のせいか・・・。
0480AZUCO
03/03/24 17:50ID:v4oLpJhM奴?ヤツ?
肩にちょうちょのあざのある男・・・・・・か?
いや、気のせいか・・・・。
0481あぼーん
NGNG0482あぼーん
NGNG0483名前は開発中のものです。
03/03/24 18:41ID:HcLOlBjt20日にアソビソに行ってナイツをやってきたよ。きっちり動いててなつかしかったな。
このスレは初期からROMってたけどおいらは元アセンブラ組み込み系ヲヤジなので
C++なんかはぜんぜんわからんが、なんか勝手にこっそり期待しております。
ところで>>417のリスト形振り分けっていうのは、メモリを伸縮自在(にまでしなくてもいいんかな)の
セグメントとして管理して、SS上の先頭アドレス、セグメントの長さ、確保済みの実メモリのポインタを
どんどんぶら下げていくって感じのイメージなのかな?
MAMEソースとか見てないのであてずっぽな発言なんで雑談扱いでお願いです。
0484あぼーん
NGNG0485名前は開発中のものです。
03/03/24 21:46ID:AFFfQ5ROホストじゃなくて、ターゲット(SS)のメモリコントローラの機能をそのまま実装するんじゃダメですか?
x86だとCPUが論理アドレス->リニアアドレスの変換をサポートする機能持ってるんだけど・・・
というか、x86しか知らないのでさっぱり見当付きません。
sh2のプログラミングマニュアル読んでも、
メモリについてはさっぱり言及されてなかったし
まだハードマニュアル読んでみてる途中なんですが・・・
もしかして、SSとは関係無しにアドレス変換の技術があるか見ているのでしょうか?
0486あぼーん
NGNG0487名前は開発中のものです。
03/03/24 22:22ID:sFSFl16bふく
0488AZUCO
03/03/24 23:48ID:6ukb+9+DSH2をx86に実装するにしても、わざわざ同スケールで1対1に実装する必要は無いのです
(SH3あたりからそういう思考もいりますが・・・・・)
エミュレータは如何にごまかして(?)実装するかで速度がかなり違いますから、正直に
全てを実装する必要は無いのです。
今回のレベルで言えば、SH2の動作から見たエミュレーションを行えは十分なのであって
メモリのタイミングとかそういう部分までは求められてないわけです。
あと、言い忘れましたが、組み込み系プロセッサではシャドウィングに対する処理もスマート
に行う必要があります(ダブルマップとかいう言い方もします>PPCとかー)
また、この議題はかなり普遍的な議題です(SSに限らない)
0489AZUCO
03/03/25 00:42ID:62IxgmTV0490名前は開発中のものです。
03/03/25 01:38ID:JK8UpuDDhttp://tmp.2ch.net/test/read.cgi/download/1048497322/
各地でエミュ厨大あばれ(w
0491名前は開発中のものです。
03/03/25 02:17ID:BC4S1x3/ん!?もう終わちゃったの?
かなり難しい話になってきたので、着いて行ける人が少なくなってきたんじゃないかなぁ
とりあえず、もう一度ソースUPしてくれません?
手伝えそうならがんばってみるので
0492名前は開発中のものです。
03/03/25 02:29ID:3/ddN1KI0493あぼーん
NGNG0494名前は開発中のものです。
03/03/25 02:45ID:OY0Ivw+Vビルド出来ないとか、スパゲッティだとか言ってたのを、何とか整理して見通しよくして
ビルドできるようにしたい所存。
ネット上に転がってるソースを切り貼りして形に出来ない物かねぇ?
SSに積んでるX68kのエミュレートはMAMEコア使うとか。
んで、どうしても足りない物だけ作って形に出来れば良いとおもうんだけど。
無論、アーキテクチャの違いなんかは上手く誤魔化さないといけないと思うんだけど。
以上、詳しくない人の戯言です。アフォな事言ってると聞き流してください。
メモリに関しては、速度面、実装面からリスト式が良いと思われます。
デバイスの判定は、デバイスだけ纏めたリスト作る事で判定できないですかね?
0495名前は開発中のものです。
03/03/25 02:56ID:3/ddN1KI0496名前は開発中のものです。
03/03/25 03:09ID:12upCSNkSH1 x1
SH2 x2
VDP1
VDP2
FH1 DSP
68EC000
だけ積んでるんじゃなかったっけ?
0497あぼーん
NGNG0498あぼーん
NGNG0499PI.
03/03/25 12:47ID:b8ZarZhyサターンに限らずエミュレータを作るのは大変なことですが、それだけに
意義のあることです。参加される方は頑張ってください。
エミュレータを作る上で技術は大事ですが、それは後からついてきます。
大事なのはモチベーション(覚悟と言い換えてもいいでしょう)。これ
をしっかり持っておかないと、すぐ挫折するか飽きます。モチベーション
があれば、あとはひたすら勉強にしろ解析にしろデバッグにしろ、時間を
大量に投入するのみです。そうすると自ずと道は開けてきます。
私の経験では最低500時間!完成まで2000時間を見ておけばいいでしょう。
私はFM-7エミュレータXM7の開発開始以来、4年の歳月と3000時間を投入し
ています。これを参考に計画を立て、日々精進してください。
0500あぼーん
NGNG0501あぼーん
NGNG0502名前は開発中のものです。
03/03/25 14:50ID:12upCSNk逃げたけど1は偉大だったのかもしれん
0503名前は開発中のものです。
03/03/25 14:55ID:T8+r4FEC0504AZUCO
03/03/25 15:12ID:62IxgmTVソースキヴォンヌの声があるけど、今現在の話は(どういったアーキテクチャ、指向で組ん
でいくか)というのは、ソースとはまったく関係ないので、勘違いなきよう。
また、ASを土台に組むのも無しなんで(既に致命的な欠陥があるソースなんで)
あと、既存の物をいじるより、自分で1から組んだほうが早いよ。特にASみたいに本人すら
把握不可能になったものは。
なんつーか、絶対的に君らはスキルが欠乏している。結果を急いでも駄目です!
一つ一つ自分がわからない事を潰して行くしか道は無いと思う。
>>499は本人様ですね。神降臨!
0505あぼーん
NGNG0506あぼーん
NGNG0507名前は開発中のものです。
03/03/25 18:14ID:lrr33XXm>>504
ソースが欲しいって言うのは、テーブル形の実装が
具体的にどういうものかを見て感覚的に理解したいという事では?
リスト形の方はMAMEでやってるんでしたよね。
0508名前は開発中のものです。
03/03/25 18:32ID:23/ttQ3Q1はお勉強進んでるかい?
■ このスレッドは過去ログ倉庫に格納されています