トップページ⇒tech
186コメント56KB

■エミュレータ■

■ このスレッドは過去ログ倉庫に格納されています
0001ピグモンNGNG
エミュレータ作成に関する事

資料のありか、作成方法など、有益な情報に期待しつつ・・・・・開始ッ!
0002デフォルトの名無しさんNGNG
2!!!!!!!!!!!!!!!!!!!
0003デフォルトの名無しさんNGNG

エミュを作りたいのですが
http://pc.2ch.net/test/read.cgi/tech/1008334719/


終了!
0004デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1008334719/l50
0005ピグモンNGNG
>>3
知ってはいましたけど、それは何も知らない初心者が作り方を
聞いているスレッドでしたので・・・・
ここではもう少し突っ込んだ話が出来ればと思います。
0006デフォルトの名無しさんNGNG
>>5
その口ぶりだと、あなたは初心者ではなさそうですね。
まずあなたの知る資料のありか、作成方法など、
有益な情報をまず提示してみてはどうですか。

それが出来なきゃ、そのスレとこのスレの違いはなんだよ!?
0007デフォルトの名無しさんNGNG
>>6
> そのスレとこのスレの違いはなんだよ!?

駄スレか、糞スレか。
0008ピグモンNGNG
>>6
ようするに、スレッドのスタンスが違うということです。

前者は「まったく何も知らない初心者がエミュレータを作りたい」という
ことから、基本的な質問(ひょっとするとコンパイラの使い方とか)を
されるスレッドだと思うんです。

このスレは、自分のターゲットとするマシンのCPUのオペコードくらいの
資料は既に入手ずみで「さぁどうやって実装しようか?」というような
そういった技術を話し合えれば、と思います。

>有益な情報をまず提示してみてはどうですか
私にとって有益でも、あなたにとって有益でないかもしれませんし。
誰かが欲しい情報を提示できれば良いとは思いますが・・・・・
不特定多数に提示するには掲示板は向いてないと思いますが・・・
0009デフォルトの名無しさんNGNG
>>8
あのね…、ネタケテーイかな。

> >有益な情報をまず提示してみてはどうですか
> 私にとって有益でも、あなたにとって有益でないかもしれませんし。
> 誰かが欲しい情報を提示できれば良いとは思いますが・・・・・
> 不特定多数に提示するには掲示板は向いてないと思いますが・・・
じゃあ、てめぇが>>1で書いた
> 資料のありか、作成方法など、有益な情報に期待しつつ・・・・・開始ッ!
は何?
つーか、俺のカキコは1を改変しただけの物なんだがね。
0010ピグモンNGNG
>>9
どういう意図で、あなたがこのスレに書いてるのかはわかりませんが、
暇を潰すつもりなのでしたら、他をあたってください。

要するに「聞かれた事に対する答えを提示できたら一番良いが、
自分の持ってるネタを無造作に出しても、それが誰かの聞きたかった
こととは限らない(つまり無意味)」という事です。
0011デフォルトの名無しさんNGNG
>>10
つまり、このスレは糞スレだってことだろ?
0012デフォルトの名無しさんNGNG
・既に似たスレがあるのに何故そちらを使わない?
・別スレ立てる理由と違いは何?
と言いたいだけさ。
1さんとしてはどちらにも理由があるようなので、私は消えます。

一言追加すれば、他人から資料のありか、作成方法の提供を待つばかりでは、
DQNにしか見えない、という意味も含めたんだが。
伝わらないなら結構です。
0013デフォルトの名無しさんNGNG
1 がコテハン
∴ クソスレ
Q.E.D
0014デフォルトの名無しさんNGNG
あーあ、粘着どものいい餌食になってるなぁ
ま、スキル無い奴らにかまわずマターリやってくれ>1
0015デフォルトの名無しさんNGNG
”チャーハンの作り方”という趣旨のパーティを企画した。
会場だけ用意してチラシに「美味いレシピの発掘に期待っ。テーブルも椅子も飯も自分の好みのものを持参してね」
と書いたら誰もこなかった。

なにが間違っていたのでしょうか・・
0016デフォルトの名無しさんNGNG
>>15
与えるものを持たないレベルの低い奴にチラシを配ったからだろ。
まぁ15はヘタレってことで(w
0017デフォルトの名無しさんNGNG
15のポトラックを知らないのと、パーティー=チャーハンという、
痛々しさが目に付くスレだな。
0018デフォルトの名無しさんNGNG
ジサクジエン?
0019ピグモンNGNG
マターリでお願いします。
0020デフォルトの名無しさんNGNG
>>18が>>15のだろ?(w
0021デフォルトの名無しさんNGNG
一応検索してみた
http://www.google.com/search?num=100&hl=ja&q=%83G%83%7E%83%85%83%8C%81%5B%83%5E%8D%EC%90%AC+%8E%91%97%BF%82%CC%82%A0%82%E8%82%A9+%8D%EC%90%AC%95%FB%96@+%97L%89v%82%C8%8F%EE%95%F1&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
あとはピグモンに任せた
よろしこ
0022デフォルトの名無しさんNGNG
>>1
アセンブラのソースだとダメなの?
0023デフォルトの名無しさんNGNG
氏ね
0024デフォルトの名無しさんNGNG
sage進行スレをageるのは1のジサクジエン。
これ定説。
0025デフォルトの名無しさんNGNG
どうみても自演でしょう。
0026ピクミンNGNG
言い出しっぺのピグモンがリーダーシップ取ってくれなきゃ
どうすればいいのかわからないよー
せっかくのスレがこのまま煽られて終わったんじゃ
もったいないでしょ?
とりあえず何かひとつでも具体的な情報出してよ
エミュレータ作成に関する資料とか
作成方法などの有益な情報をさあ
それを元にあーでもないこーでもないって話しが進むじゃん?
0027デフォルトの名無しさんNGNG
> 15のポトラックを知らないのと、パーティー=チャーハンという、
> 痛々しさが目に付くスレだな。
ポトラックってそんな普及している単語ですか?
まぁこの辺は主観でしょうけど。
しかしポトラックってご近所の料理持ちよりパーティではなかったか?
そんなフランクな集まりを挙げておきながらパーティーの題材がチャーハンである事を嘲う
17の中途半端なひけらかしと痛々しさが目に付くスレということで。
0028デフォルトの名無しさんNGNG
R3000のエミュレータ昔作ったよ。
ソースコードあるよ。要る?
0029デフォルトの名無しさんNGNG
      ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)<重複スレじゃなければ、
 UU ̄ ̄ U U |俺だってやさしいぞ、ゴルァ!
           \_____________
0030デフォルトの名無しさんNGNG
ひっこぬか〜れて♪
0031ピグモンNGNG
いろいろ書き込んでいただいてますが、このスレの本題と関係無い事は
ご遠慮ください(基本ですよね・・・?)

26で突っ込みが入ったので、とりあえずのお題としては、
お勧めの開発環境について(フリー、パッケージといません)

ちなみに私はVC++です。
理由はウィンドウズに一番なじんでるからでしょうか?
0032デフォルトの名無しさんNGNG
>>31
そのレスは本題と関係あるのか?
そういうどうでもいいことを書くのは止めて
もっと具体的に 「自分はこういうアプローチでエミュレータを作ってる」
などを書かないとスレは回転しないな。
0033デフォルトの名無しさんNGNG
>>31
通知表に「人の意見を聞かない」とか書かれたことはありませんか?
0034ピグモンNGNG
>>32
>もっと具体的に 「自分はこういうアプローチでエミュレータを作ってる」
>などを書かないとスレは回転しないな。
あなたがそれを知りたいのでしたら話はわかりますが・・・・・・
スレはまだ短いので、ログは読んでくださいね。
0035( ゚д゚)ポカーンNGNG
( ゚д゚)
0036デフォルトの名無しさんNGNG
              ∩
             | |
             | |
             | |
             | |
       ∧_∧  | |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ( ´Д`)//  < 先生! 何時までたっても有益な情報が出ません!!
      /     /    \___________
     / /|    /
  __| | .|    | __
  \   ̄ ̄ ̄ ̄ ̄   \
  ||\            \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0037ピグモンNGNG
>>28
公開されてるものでしたら、アドレスを教えてください。
0038デフォルトの名無しさんNGNG
「〜して下さい。」
あのスレとは違うという発言にもある通り、端端に見下した印象を与えつつも
言ってることはこれだけ。


ブラボー
0039デフォルトの名無しさんNGNG
粘着age
0040ピグモンNGNG
解決しました。ありがとうございました。

------------終了-------------------
0041ピグモンNGNG
>>38-40
このスレに書き込む内容は、質問、それに対する回答、それから
派生する事柄のみにして下さい。

暇なのはわかりますが、荒らすのなら他を当たって下さい。
0042デフォルトの名無しさんNGNG
>41 スレを引っ張ってゆきたかったら  最後の1行のような内容はイランこと

それから、そういう書き込みは1度だけにしろ、そういうのを書くのも他人から見たら荒らしと同じ

基本的に荒らしは無視して スレに添った話題をふるべし

0043デフォルトの名無しさんNGNG
>>42
お前も荒らしと同じだろ(w
0044デフォルトの名無しさんNGNG
>>43 オマエモナー
0045デフォルトの名無しさんNGNG
エミュときくと必ず荒らすアホばっか。
0046デフォルトの名無しさんNGNG
>45
別にエミュだから荒らしてるわけじゃないような…
0047デフォルトの名無しさんNGNG
荒らしてる奴は、エミュになんかトラウマでもあるんじゃねーの?
作ろうと思って挫折したとかさ。

がんばってる人を邪魔するようなことは止めたほうがいいんじゃねーの?
0048デフォルトの名無しさんNGNG
ところでエミュレータってそんなにメンドイ処理ある?

相手の機械語を自分の機械語に翻訳しながら処理させるとかならメンドクサイかもしれんけど
それやると動かんコード多くなるし
単純に読んで分岐するだけじゃない

ゲーム機とかならハードのエミュレートが大変ってのはわかるけどさ
0049デフォルトの名無しさんNGNG
>>47
>がんばってる人を邪魔するようなことは止めたほうがいいんじゃねーの?
がんばっている人はこのスレには居ないようだが(藁
0050デフォルトの名無しさんNGNG
>>49
つうかさ、わかったからもう消えな?粘着入ってるぞ。
見ててなんつーか哀れだよな。あんた。
0051GC房NGNG
GCのエミュレーターを製作中です。
ハードウェア的な部分は問題ないのですが、
BIOSの情報があまりありません。
詳しい情報を教えてください。
0052デフォルトの名無しさんNGNG
ジサクジエーン!!
0053暇人NGNG
問1。
>1は何故、重複スレと半ば自覚しつつスレを立てたのか?
今現在まで>1が提示した情報はいっさい中身が無く、既存のスレで話題を展開した後
盛り上がったところで新スレを立てればよかったのではないか?

問2。
そもそも>1はエミュレータ制作に関する内容のある話題を1つでも提供したか?
言っていることはワナビー厨同然、自身の制作環境も「Windowsに慣れてるからVC」としか伝えてない。
それのどこがエミュレータ制作の話題なのか?

問3。
そもそも>1にやる気が見えないのは何故か?
提示しているのは「情報を出せ」、「話題を出して語れ」のみであり、
自身から能動的に話題を振ることがない。
しかもそれを指摘されると「荒らすな」と見当違いな返事をしている。

問4。
>1がコテハン=糞スレの法則を知っていて敢えて釣っていますか?
0054パチモンNGNG
>>53
> >1は何故、重複スレと半ば自覚しつつスレを立てたのか?
> そもそも>1はエミュレータ制作に関する内容のある話題を1つでも提供したか?
> そもそも>1にやる気が見えないのは何故か?
> >1がコテハン=糞スレの法則を知っていて敢えて釣っていますか?
あなたがそれを知りたいのでしたら話はわかりますが(w
スレはまだ短いので、ログは読んでくださいね(w


だいぶ下がっているけど…
http://pc.2ch.net/test/read.cgi/tech/1008334719/l50


      ∧∧  ミ _ ドスッ
      (   ,,)┌─┴┴─┐
     /   つ 糸冬 了. |
   〜′ /´ └─┬┬─┘
    ∪ ∪     ││ _ε3
0055デフォルトの名無しさんNGNG
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____

0056デフォルトの名無しさんNGNG
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  有益な情報、まだ?
             \_/⊂ ⊂_ )   \_________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | . ピグモン.   |/
0057デフォルトの名無しさんNGNG
ちょっと オモロイ > 56
0058デフォルトの名無しさんNGNG
一つ思うのは、やっぱここはゴミためだったって事。
中にはすばらしい人もいると思うが、その人に出会うためには
自分がゴミにまみれる覚悟もいる。

自分はそのゴミにまみれる(自分が、他人が)苦労を減らそうと
思ったのだが・・・・・・ま、ゴミはゴミと。

多分君らから見たら、俺もゴミなんだろうけどね(w
0059デフォルトの名無しさんNGNG
         ☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  有益な情報、まだ?
             \_/⊂ ⊂_ )   \_________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
        | .   58  .   |/

0060デフォルトの名無しさんNGNG
>>51
GCってGameCubeのことかい?
アレってたしかPowerPCだからBIOSじゃなくて
OpenFirmwareになんのかな?わっかんね。
でもBIOSじゃないことは確か。すまんね。
0061ゴミNGNG
> 自分がゴミにまみれる覚悟もいる。
ゴミにまみれる覚悟があるならsageでこそこそ書かずにageろや
と思ったけど、
> 自分はそのゴミにまみれる(自分が、他人が)苦労を減らそうと
> 思ったのだが・・・・・・ま、ゴミはゴミと。
なんだそりゃ。

そんなに“ゴミ”を排除して“有益な情報”だけ集めたかったら
2chでスレなんか立てずに自前でサイトでも立ち上げろよ
と思う今日この頃。
0062デフォルトの名無しさんNGNG
なんでエミュスレって荒れるの?
0063デフォルトの名無しさんNGNG
たのむから、だれかサターンのエミュレーター作ってくれ
まじで、
0064デフォルトの名無しさんNGNG
サターンってでてるっしょ!?
SSFとか…マシンパワー結構いるけどね。
0065デフォルトの名無しさんNGNG
SSF.. Pen4 2GHzでも実機の半分以下のスピードなんですけど...
PCMとFM音源のエミュレートもないのが痛すぎる。
0066デフォルトの名無しさんNGNG
WSCの絵みゅがまだぜんぜん出来が悪いよ?
チャレンジャー求む。
0067デフォルトの名無しさんNGNG
そうそうそう、オレ探してるんだよ、サターンの音源の資料・・
サターンBASICは手にはいらねーし 前途多難なんだけど惹かれるんだよね・・蛍タンの声。
音源だけ作ってどうする? って気もするけど(笑)

ふぅ、お腹減った。。
0068デフォルトの名無しさんNGNG
>>1は、自分を初心者だと思ってない初心者。
煽ってる奴は厨房。
まともなプログラムが書ける人は一人もいませんでした。おわり
0069デフォルトの名無しさんNGNG
>>68は仕切りたいだけの厨房でした。おわり
007070 gET!NGNG
!⊥36 OL

さかさまバージョン。チト苦しい
007170 gET!NGNG
ああああ間違えた!!
!じゃなくてiだった
0072デフォルトの名無しさんNGNG
58==68とみた。
0073デフォルトの名無しさんNGNG
ソフト版より
>まえから思ってたんだけど、ROMデータをいっかいコンパイルする方式にしたら
>エミュレートによるCPU負荷が押さえられそう。

これは果たして実現可能?
0074デフォルトの名無しさんNGNG
前にもどこぞに書いたけど それ、68k-macエミュでやってるよね。
実際負荷として問題になるのは メモリアクセス周りが多いと思われ。
0075デフォルトの名無しさんNGNG
>>73
その場合どうやってCPUの速度制御するのかな。やっぱ一命令ごとに
waitかますんだろうか?

0076デフォルトの名無しさんNGNG
ダイナミックリコンパイルでしょ?

今のエミュレータは大半がそうだよ。
PS、N64、インタプリタで動いてるのは少ない。

>>75
jmpとかcallでプログラムカウンタが飛んだり
biosがコールされたりしたら
エミュレータ本体に処理が戻るようにしとくわけ。
んで、戻ってきたらハードのエミュレートして
時間調整してもっかいコンパイル&実行

FPSEのソースが参考になるよ
0077デフォルトの名無しさんNGNG
>>76
ふーん。なんか素早く走るところともっさり動くところと
2つに分かれそうだな。問題ないのかな。
0078デフォルトの名無しさんNGNG
ハードウェアの負荷でタイミングをとってるようなゲームだと問題あるだろうね。
今時のゲームはたいていタイマーで動いてるんじゃないの?
0079デフォルトの名無しさんNGNG
WSCの資料出せ!俺が作ってやるから。
WWと実機は持ってない、以上。
0080デフォルトの名無しさんNGNG
>>79
おれも作りたくって調べてるけど
CPUはx86系だっつーことはわかった(w

Cygneっつーエミュにデバッガがついててステップ実行とかできる。
これとワンダーウィッチを買えばなんとか調べられるんでは?
0081デフォルトの名無しさんNGNG
>>80
>>1を皮肉っただけだろ
0082デフォルトの名無しさんNGNG
XBOXのエミュレータは無いですか
0083デフォルトの名無しさんNGNG
C言語で作ったNESエミュを高速化する方法を教えてください。
0084デフォルトの名無しさんNGNG
>>83
CPUクロックを上げろ。
0085デフォルトの名無しさんNGNG
>>83
プロファイラ使え。
あ、マジレスしたらまずかった?
008683NGNG
>>84 上がりません。
>>85 使ってます。
重い部分が分かってもこれ以上軽くする方法が分かりません。
0087デフォルトの名無しさんNGNG
VectorCというコンパイラを買ってきてナムナムする。
0088デフォルトの名無しさんNGNG
NESエミュでどんな糞コード書いても実機の速度が出ないってことはないだろ・・・
0089デフォルトの名無しさんNGNG
マシンにもよるでそ。
0090デフォルトの名無しさんNGNG
一般的に実際の時間と仮想マシンの時間はどう同期を取ったらいいのでしょうか?

V-Blank-Out(30KHz)では大雑把すぎるのかなぁ。
0091デフォルトの名無しさんNGNG
豆では速度はVSYNCで調節してるよ。
VSYNCの周波数とCPUの周波数から、1周期中に処理できるクロック数を予め計算
しておいて、そのクロック数だけ処理を進めて画面描画。簡単に言うとそんな感じ。
走査線割り込みなんかも同じような感じで、その走査線までの時間からクロック数
を計算して、そこまで処理して割り込み発生させてる。
だから、割り込みをかけずに走査線単位で画面を弄ってるようなゲームは豆だと
うまく再現できないの。
あと実際には、実機ではバスの衝突なんかでクロック通りの性能がでてなかったり
するから、理論値で処理してる豆は実機よりも少し速かったりする。大抵のゲーム
はVSYNC待ちするから影響無いんだけど、一部のゲームは非同期で動くから問題に
なったり。
0092質問太郎NGNG
時間の計算については、CPUの1命令が1クロックっていうことでいいんですかね。

11MHzのCPUで60Hzだとすると
11,000,000 / 60 = 183333命令
1000msec / 60 = 16.6msec
となるから

183333命令実行したあとに、16.6msec以下の実行時間であった場合
その差分Sleepするっていう処理にすればいいのかな?

あまりハードのこととか詳しくないのですが、どんなものでも1命令1クロックで
計算することには、ちょっと違和感がありますけど。


0093デフォルトの名無しさんNGNG
>>92
1命令のクロック数は命令により異なります。
ジャンプ命令の場合はジャンプ先アドレスによりクロックが増えることがあります(6502の場合)。
0094質問太郎NGNG
>>93
ふーん最低1クロックっていうイメージでよさそうですね。
ゲーム機のエミュレーションっていう観点で見れば、
VSyncで同期していれば言い訳だし...

ところでエミュレーションのプログラミングについて
体系的に書いているサイトでよいところありますか?
0095デフォルトの名無しさんNGNG
>>94
何のゲーム機か分かりませんが、えみゅ作るんなら各命令ごとのクロック数はちゃんと調べましょう。

サイトは
http://game.2ch.net/test/read.cgi/retro/1011118456/
ここの最初の方にあります。
あとはp://www.geocities.co.jp/Playtown/2004/
009691NGNG
>>94
見たところアセンブラ未経験っぽいけど、それだとちょっと厳しいかと。
0097質問太郎NGNG
>>96
うーん、やっぱりそうなんですねー
CPUのドキュメント読んでいても、「キャリーってなに?」って感じだし。
「立ち上がりで同期する」とか...

そこら辺の勉強から逝って来ます。
0098デフォルトの名無しさんNGNG
キャリーについては下記を参照
http://game.2ch.net/test/read.cgi/retro/998378344/273
0099デフォルトの名無しさんNGNG
保守揚げ 
0100100NGNG
100GET!!
0101デフォルトの名無しさんNGNG
豆32のソース読んでるけど、全然分からないYO
解説ページキボリ
0102デフォルトの名無しさんNGNG
オドレータ
0103デフォルトの名無しさんNGNG
>>101
あれは読めない人は手を出しちゃ駄目なんだよ。
っていうか、なんで32?GUI周りを参考にしたいのか?
0104デフォルトの名無しさんNGNG
2ちゃんで初めて真性基地外(=ここの1)を発見した。
010591NGNG
正直、なんでこのスレがいまだに残ってるのかが不思議。
とっくにDAT落ちしてるもんだと思ってた。
0106デフォルトの名無しさんNGNG
豆32わかんNEEEEE

例えば画面への表示はどうやっているんですか?
サウンドはどうやってんですか?
もちろんDirectSoundを使ってるのは分かるんですが、
難しすぎ。
0107デフォルトの名無しさんNGNG
>>106
難しすぎとか言ってるようじゃ、まだ手を出せるレベルじゃないかと。
DirectDrawやDirectSoundくらいは知ってる?
0108デフォルトの名無しさんNGNG
それは知ってるんだけど、もともとのゲームプログラムから
どうやって画面やスピーカに出力してるのかが分からないーー
0109デフォルトの名無しさんNGNG
>>108
Z80でもなんでもいいけど
アセンブラできないとつらいよ。
0110デフォルトの名無しさんNGNG
>>108
その部分を知りたいならMAME32は適切ではない。
CPS2MAMEのDOS版あたりがいいかと。
って、今はオフィシャルに統合されちゃってるんだっけ?

MAMEはマルチプラットフォーム向けになってて冗長な部分が多いから、
FinalBurnとかの方がいいかも。
0111デフォルトの名無しさんNGNG
Kawaksのソースを解析したいんだけど、いいディスアセンブルないかな?
できればWindows用でGUIインターフェースが凄いので、日本語化対応したやつが。
タダだともっといい。
0112デフォルトの名無しさんNGNG
エミュレータ作るつもりなら勉強がてら 逆アセくらい作れよ >>111
0113デフォルトの名無しさんNGNG
>>112
ネタは放置しよう。
0114デフォルトの名無しさんNGNG
いまGBエミュでも作ったれ!
つーことでCPUをカリカリ書いたんだけど(ただし命令の実行とレジスタのみ)、
この次にやるべきことは何?
割り込みの制御?
0115デフォルトの名無しさんNGNG
>114ハードウエアエミュレータ 最低画面回り作らないとさ
0116デフォルトの名無しさんNGNG
>>114
それが出来たらZIPファイル対応してね
あとネット通信
0117デフォルトの名無しさんNGNG
>>114 まずはソースの公開 あるいはDelphiのコンポーネントにして公開したら? 
例えば、メモリアクセスを
OnGetMem(adr:Integer,var dt:Integer);
みたいなイベントにしておいて
Execute;みたいなメソッドで1ステック実行出来るようにしとけば 皆が弄ってくれると思うよ
0118114NGNG
http://www.pureweb.jp/~akimasa/up/img/dat002.lzh
一応VC++です。
かなりおかしいので、がんがん指摘されたし。
万理尾が動くぐらいまでは逃げないつもり。
0119114NGNG
できそうなこと
ロムは無理やり先頭から32kぐらいをCPUちゃんのmemにロードして、
cpuのexecをひたすら実行してやる。
画面は知らん。一応DIBを使うつもりで準備はしてある。
あと糞(コメントアウト)がいっぱいついてるから触るときは気をつけて(藁
0120デフォルトの名無しさんNGNG
classにしたんだったら read()/write()を仮想にするか、
メンバに関数ポインタかくラスを付けといてハードウエア
とのインターフェース取れるようにした方がいいよ

たとえば IOクラスとか作って IO_ROM IO_RAM IO_VIDEO てな感じで
追加出来るようにしたら少し面白いかもね
0121デフォルトの名無しさんNGNG
>>114 Delphiに移植していい?
0122デフォルトの名無しさんNGNG
>>114
取りあえずTGBのソースでも見て考えようや。
0123114NGNG
>>120
アドヴァイスありがとう。
インターフェイスを確保するってのはよく分かるけど、
read()write()を仮想にするってのはなぜ?
gameboy本体のクラスに継承するってこと?

>>121
やめたほうが無難かと(^^;
汚いし遅いし、バグてんこもりだし。
やりたいなら止めないけど。

>>122
うむ。少し見てたりする。
GB仕様もわからんままコーディングはまずい?



0124デフォルトの名無しさんNGNG
>>123
まずいというかそれで完成したら神!
あなたCPUのオペコードも目を瞑って感で作ったんですか?
0125114NGNG
>>124
さすがに資料は見てるけど、全貌はまったく。
霊感コーダーなので分からなくてもまずやるだけやってみる癖がある。
0126デフォルトの名無しさんNGNG
>>114=仏
0127114NGNG
くそっレンダリングがうまくいかん。
丸一日がんばろうとひたすら2ch読みまくってたのに(w
マターリやりますんで気長によろしく。
0128デフォルトの名無しさんNGNG
WM_PAINTが発生するたびにレンダリングしちゃだめです。
0129114NGNG
>>128
スマソ
マップチップすら表示されなくて鬱なもんで気にしないといて。
元のコードが七行スレの砂嵐なもんでWM_PAINTどうのこうのに残骸が残っとるのよ。
それよりもっと根本的なことがおかしいっぽい。

どうでもいいけど、マリオめ!
L019B:  LDH A,[IFF44]
       CP 94H
       JR NZ,L019B
割り込みがないからここで無限ループするじゃねえか!
何で画面描画の94ライン目の描画をまってんだよ!
0130128NGNG
エミュレータは作ったことある。んが、GBは知らん。
割り込みを先に実装した方がよいし、
各種デバイスのスケジューリングをすべき。

>>129
に関しては、勘違いハケーン。
94Hは16進数なので10進数に直すと148、
GBの画面サイズは144Lineらしいので(さっき調べた)
たぶん、画面の最下段あたりで割り込みが発生して、
それをトリガーにして、画面更新するんじゃないの?とか
想像で書き込んでみたり。
0131114NGNG
>>130=神

>割り込みを先に実装した方がよいし、
>各種デバイスのスケジューリングをすべき。

んじゃ割り込みまわりを先にぱーぺきにしよう。
こんな調子で本当にできるのか(藁

>>>129
>に関しては、勘違いハケーン。
>94Hは16進数なので10進数に直すと148、
>GBの画面サイズは144Lineらしいので(さっき調べた)
>たぶん、画面の最下段あたりで割り込みが発生して、
>それをトリガーにして、画面更新するんじゃないの?とか
>想像で書き込んでみたり。

確かに94は16進数だった。鬱死
それでも垂直同期割り込みは別にあったはず。
GBのマリオはafo。
0132128=130NGNG
>>131
なるほど、I/Oがメモリにマッピングされてるんだ、
Z80モドキのクセにステキ。
資料をみるとFF44Hは“現在描いてるY座標”らしいから、
ビデオコントローラが最下段まで描画するのを待ってから、
V-RAMを書き換えているんじゃないでしょうか。
画面描画中にV-RAMを更新するわけにいかないし。
これを使えばラスタースクロールとかできるなぁ。
ところでLCDの更新期間って何秒なんだろ。

・・・とか、114さんの趣味を横取りしちゃなんだから、
これくらいにしときます。
0133114NGNG
>>132
いえどんどん横取りしてください(藁
そのほうがこっちの勉強にもなるし。

えっとLCDは70224クロックに1回更新するらしいので、
70224 / 4.194304MHz ≒ 16.7ms
かな?

最近寝不足で頭が回らん。
ウイルスメールもくるし。

はぁ。寝よう。
0134デフォルトの名無しさんNGNG
>131
>GBのマリオはafo。
それくらいでめげちゃイカン!
エミュ作り出すと�dでもないコードがイパーイ出現して楽しくなるよw
0135デフォルトの名無しさんNGNG
>>132
>なるほど、I/Oがメモリにマッピングされてるんだ、
>Z80モドキのクセにステキ。

メモリマップドI/OってZ80でも普通に使われるよ。
っていうか、Z80だとI/Oポートが256個しかないから、ちょっと規模が大きく
なるとメモリマップドI/Oにしないと厳しいよ。
UARTとかSCSIだと1チップで4個とか8個とかポートが必要になるから、Z80には
厳しい。

ROMをバンクメモリにするときは、メモリマップドI/Oが普通かも。
ROMに対してwriteアクセスするとバンクが切り替わる感じ。
0136128NGNG
>>135
恩師の教えがアーキテクチャを理解しろ!
Z80はI/OマプドだからI/Oにつなげろ!だったので。
オレは68000から入った派だったからメモリマプドの方が好きなんだけど。

I/Oポートの個数は、OUT(C),r を使えば65535個まで
拡張できるからそっちを使ってた。当時は256個でも充分でしたけど。
0137114NGNG
チップを全部レンダリングしようとしてみた
Dr.万理尾
http://www.pureweb.jp/~akimasa/up/img/dat006.png
やったぜ!明らかにチップだ
と思ったが、次の瞬間にはきえてしまう。
さらにほかのやつではまったくでない。

この画面だけ見るといけそうに見えるが…
0138114NGNG
少しオペコードのバグを見つけて修正。
少し割り込みもどきをつけた。
http://www.pureweb.jp/~akimasa/up/img/dat007.lzh
キャプチャ(Dr.マリオしかできない)
http://www.pureweb.jp/~akimasa/up/img/dat008.png

なぜかDr.マリオしかできないんですが。
あとはテトリスとマリオランドを使ってますが、Dr.マリオしかレンダリングできません。
しかしこれすら完璧にできてない。
0139114NGNG
>>138はうそ
オペコードを修正してたらバグが取れたのに、
マリオのタイトルが出なくなった。
カプセルだけ出てバグって終了。
なぜバグありで近いところまでいってバグ無しで遠のくのかなぁ
(バグ取り疲れた)
0140デフォルトの名無しさんNGNG
>139
ガンバレ
動くまで大変かも知れんが,動いたら嬉しいぞ。
0141デフォルトの名無しさんNGNG
BasiliskのPPCエミュレータどこまで開発進んだ?
0142デフォルトの名無しさんNGNG
>>141
PPCのbcのオペレーションって意味不明だよな
だれか解説してくれ。おれ今そこでつまってる。
0143114NGNG
http://www.pureweb.jp/~akimasa/up/img/dat010.lzh
http://www.pureweb.jp/~akimasa/up/img/dat011.png
レンダラとか割り込みとか見直した結果。
スプライトとかあればいいのかな?
でもやっぱりDr.マリオしかタイトルが出ない。
0144デフォルトの名無しさんNGNG
どうせだしあげとく
0145114NGNG
ボタンの入力の割り込みがうまくいかない。
鬱だ。
0146デフォルトの名無しさんNGNG
がんばれ114!!
0147114NGNG
近況報告
新天地へ移動した結果、疲れています。
Dr.マリオのタイトルなんですが、本当は背景だけレンダリングすれば、
Dr.MARIOとでかでかと出るはずなんで、まだオペコードにバグでもあるのかなと。
オペコード見直すのは手間なので、かなり時間がかかります。ご容赦を。

漏れに分身をください。
0148デフォルトの名無しさんNGNG
スーパーファミコンの本体の取れるサイト教えて!

0149デフォルトの名無しさんNGNG
>>148
意味和からねぇ。
本体は買いましょう
0150デフォルトの名無しさんNGNG
エミュレーターです
0151デフォルトの名無しさんNGNG
>>150
ダウソ板へ逝ってください。
ってかそんなのスグ見つかります。
人間初心者板にでも逝くのがいいかもしれません
0152デフォルトの名無しさんNGNG
おしえてよ〜
0153デフォルトの名無しさんNGNG
>>152
ダウソ板へ逝ってください。
板違いです。
ってかスレと違う内容でアゲないでください
0154デフォルトの名無しさんNGNG
エミュレーターつながりじゃん
0155デフォルトの名無しさんNGNG
>>154
まじかるバナナではありません
0156デフォルトの名無しさんNGNG
教えてください!お願いします
0157デフォルトの名無しさんNGNG
>>156
あなたはスレ違い板違い基地外です。

ココにあると思います。
ttp://www.google.com/
0158デフォルトの名無しさんNGNG
今まで探したけどどこにもないよ!
俺の睡眠時間を返せよ
0159デフォルトの名無しさんNGNG
そう。スーファミのエミュなんて実はこの世に存在しません。
音楽がタダでダウンできるとかエミュレータでゲームが遊び放題
なんていうのはインターネットを無理矢理普及させようと目論んでいる
政府が流したデマです。
0160デフォルトの名無しさんNGNG
>>158
もしそれがネタじゃないならネットやめろ。
0161デフォルトの名無しさんNGNG
うんうん、ネットって大変だぞ。水着ギャルの肌も真っ赤だぞ。
それにお前が何秒耐えた所で、テレビ使って宣伝するような事あるのか?
0162114NGNG
オペコードは見直して、バグは消したつもりなのに、まったく動作に変化がない。
やっぱり周りをつく欄とだめきゃ。
0163114NGNG
テトリスのよく分からないもじ(クレジット?)がちょろっとでた気分。
何度オペコードを見直したことか。バグはこれでないと思うこと32回。
しかしフラッシュするから、どこかにバグがあるということだろう。
0164デフォルトの名無しさんNGNG
>>163
遠回りに思えるかもしれないけど、ちょっとわき道に
入ってテストツール作ってみたら?
0165デフォルトの名無しさんNGNG
>>162
signed ,unsigned は大丈夫か?
0166114NGNG
オペコードを見直してもバグが見つかりません。
選択肢
1.あきらめてしまう。
2.作り直す。
3.後釜を見つける。
さあどれ?
0167デフォルトの名無しさんNGNG
んじゃ、一番新しいソースアップしといてくれんか
暇があったらみといたる
0168114NGNG
http://www.pureweb.jp/~akimasa/up/img/dat012.lzh
スマソ
とりあえず最新版あげときます。バグが3,4個は取れてるはず。
ソースは見るに耐えないかも知れません。
これをどうこうしても何も文句は言えません。
0169デフォルトの名無しさんNGNG
ざっと眺めてみた
とりあえずDECとかのHフラグがおかしくないか?
あとcpu::resetの E = 0x08; は E = 0xD8;
って書きたかったんじゃないのか?

風呂入ってから本格的にみるよ
0170167NGNG
CPも間違ってるな
わりぃ疲れた、もう寝る
0171114NGNG
>>169,170
乙です。
E=0xD8はそのとおりです。

あとHフラグは
ttp://sz.redbit.ne.jp/~q-_-p/gb_lab/index.html
をみたらそんな感じになってたんですが・・・
すいませんどこだか分かりません。
見てたら教えてほしいです。

(そういえば画面描画を戻すの忘れてた)
0172167NGNG
春だしな、エミュ開発界も新人教育の季節か?
いいよ、114の面倒見てやるよ
ただ漏れは自分で作ったことないから実績は114の方が上だがな

Hフラグ自体はあってるんだが演算子の優先順位は論理演算の&より==の方が上だろ?
if(REG8 & 0x0F == 0)\ を if((REG8 & 0x0F) == 0)\
にするだけでDECのHフラグは直る

変数を使わないように努力したのは評価するんだが時には変数使った方がいいぞ
例えば
case  0xfe: //CP  $xx
  CP(A,read(PC));
  PC++;
  break;
の部分とかだな。何がまずいか分かるよな?
分からんかったら宿題だ
0173167NGNG
わりぃ、CPは間違ってない気がしてきた
その前に実行される0xf0 (LD A,($xx))の結果がおかしいみたいだ
ただこれも間違ってないような気はするんだが、正しい結果がでてない
ちなみに今、Drマリオのトレース中
0174167NGNG
クソッ! そうゆうことか>>129の内容でハマッた
とりあえずCPとLDの事は忘れてくれ
もう寝る
0175114NGNG
>if(REG8 & 0x0F == 0)\ を if((REG8 & 0x0F) == 0)
ぐはっ。こんな初歩ミスを!

あと一時変数は使ってもいい気がしてきました。
むしろreadの呼び出しで遅くなってると思うし。

(それにしてもカキコ時間帯がすげーずれてるな)
0176167NGNG
今日は休日
先に>>129をなんとかしないといかんようだな
どれどれ‥‥‥‥おい、ちょっと待て!
gb::execだがCPU1命令実行するたびにLY増えてんじゃねぇか
1スキャンラインあたり1命令ってどんなマシンだよ
も少しなんとかならねぇか?

>むしろreadの呼び出しで遅くなってると思うし。
正解
0177114NGNG
>LY増えてんじゃねぇか
gb::execの
if(count%(70224 / 154)){
を
if(!(count%(70224 / 154))){
にしたつもりでした(多分)。
確か昔直したはずだったのに。鬱。

この辺はばっさり書き直したほうがいいかも。
0178167NGNG
ふむふむ、これでLYは‥‥‥まだおかしいな
1スキャンあたりに実行される命令数が多すぎる
ん? 全ての命令が1クロックで実行!?
こんなのZ80じゃねぇよ、めっちゃ高性能やんけ
これから作るつもりだったのか?
まずは命令の実行にかかったクロックを正しく加算するように
0179デフォルトの名無しさんNGNG
どうなったんだろ?
0180デフォルトの名無しさんNGNG
どうなったあげ
0181デフォルトの名無しさんNGNG
>>114の復活マダー?
0182デフォルトの名無しさんNGNG
/
0183デフォルトの名無しさんNGNG
i-アプリの走る携帯のエミュを作ろうと思ったよ!
0184デフォルトの名無しさんNGNG
>>183
とっくの昔に存在する。
なお、VMのサブセット実装する根性が必要。
0185デフォルトの名無しさんNGNG
age
0186デフォルトの名無しさんNGNG
>>184
Javaで作るとか。
■ このスレッドは過去ログ倉庫に格納されています