■エミュレータ■

このエントリーをはてなブックマークに追加
1ピグモン
エミュレータ作成に関する事

資料のありか、作成方法など、有益な情報に期待しつつ・・・・・開始ッ!
2!!!!!!!!!!!!!!!!!!!

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


終了!
5ピグモン:02/01/14 22:40
>>3
知ってはいましたけど、それは何も知らない初心者が作り方を
聞いているスレッドでしたので・・・・
ここではもう少し突っ込んだ話が出来ればと思います。
>>5
その口ぶりだと、あなたは初心者ではなさそうですね。
まずあなたの知る資料のありか、作成方法など、
有益な情報をまず提示してみてはどうですか。

それが出来なきゃ、そのスレとこのスレの違いはなんだよ!?
>>6
> そのスレとこのスレの違いはなんだよ!?

駄スレか、糞スレか。
8ピグモン:02/01/14 22:55
>>6
ようするに、スレッドのスタンスが違うということです。

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

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

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

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

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

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

なにが間違っていたのでしょうか・・
>>15
与えるものを持たないレベルの低い奴にチラシを配ったからだろ。
まぁ15はヘタレってことで(w
17デフォルトの名無しさん:02/01/15 10:38
15のポトラックを知らないのと、パーティー=チャーハンという、
痛々しさが目に付くスレだな。
ジサクジエン?
19ピグモン:02/01/15 17:17
マターリでお願いします。
20デフォルトの名無しさん:02/01/15 17:58
>>18>>15のだろ?(w
>>1
アセンブラのソースだとダメなの?
氏ね
24デフォルトの名無しさん:02/01/15 19:50
sage進行スレをageるのは1のジサクジエン。
これ定説。
どうみても自演でしょう。
26ピクミン:02/01/15 20:09
言い出しっぺのピグモンがリーダーシップ取ってくれなきゃ
どうすればいいのかわからないよー
せっかくのスレがこのまま煽られて終わったんじゃ
もったいないでしょ?
とりあえず何かひとつでも具体的な情報出してよ
エミュレータ作成に関する資料とか
作成方法などの有益な情報をさあ
それを元にあーでもないこーでもないって話しが進むじゃん?
> 15のポトラックを知らないのと、パーティー=チャーハンという、
> 痛々しさが目に付くスレだな。
ポトラックってそんな普及している単語ですか?
まぁこの辺は主観でしょうけど。
しかしポトラックってご近所の料理持ちよりパーティではなかったか?
そんなフランクな集まりを挙げておきながらパーティーの題材がチャーハンである事を嘲う
17の中途半端なひけらかしと痛々しさが目に付くスレということで。
28デフォルトの名無しさん:02/01/15 20:13
R3000のエミュレータ昔作ったよ。
ソースコードあるよ。要る?
      ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)<重複スレじゃなければ、
 UU ̄ ̄ U U |俺だってやさしいぞ、ゴルァ!
           \_____________
ひっこぬか〜れて♪
31ピグモン:02/01/16 08:07
いろいろ書き込んでいただいてますが、このスレの本題と関係無い事は
ご遠慮ください(基本ですよね・・・?)

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

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


ブラボー
39デフォルトの名無しさん:02/01/18 07:40
粘着age
40ピグモン:02/01/18 08:04
解決しました。ありがとうございました。

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

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

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

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

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

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

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

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

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

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

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


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


      ∧∧  ミ _ ドスッ
      (   ,,)┌─┴┴─┐
     /   つ 糸冬 了. |
   〜′ /´ └─┬┬─┘
    ∪ ∪     ││ _ε3
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____

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

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

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

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

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

ふぅ、お腹減った。。
>>1は、自分を初心者だと思ってない初心者。
煽ってる奴は厨房。
まともなプログラムが書ける人は一人もいませんでした。おわり
>>68は仕切りたいだけの厨房でした。おわり
7070 gET!:02/02/15 12:41
!⊥36 OL

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

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

ダイナミックリコンパイルでしょ?

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

漏れに分身をください。
148デフォルトの名無しさん:02/04/15 21:32
スーパーファミコンの本体の取れるサイト教えて!

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

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

風呂入ってから本格的にみるよ
170167:02/04/25 23:06
CPも間違ってるな
わりぃ疲れた、もう寝る
171114:02/04/26 17:09
>>169,170
乙です。
E=0xD8はそのとおりです。

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

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

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

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

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

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

>むしろreadの呼び出しで遅くなってると思うし。
正解
177114:02/04/27 13:38
>LY増えてんじゃねぇか
gb::execの
if(count%(70224 / 154)){

if(!(count%(70224 / 154))){
にしたつもりでした(多分)。
確か昔直したはずだったのに。鬱。

この辺はばっさり書き直したほうがいいかも。
178167:02/04/27 15:36
ふむふむ、これでLYは‥‥‥まだおかしいな
1スキャンあたりに実行される命令数が多すぎる
ん? 全ての命令が1クロックで実行!?
こんなのZ80じゃねぇよ、めっちゃ高性能やんけ
これから作るつもりだったのか?
まずは命令の実行にかかったクロックを正しく加算するように
どうなったんだろ?
どうなったあげ
>>114の復活マダー?
/
183デフォルトの名無しさん:02/06/09 06:46
i-アプリの走る携帯のエミュを作ろうと思ったよ!
>>183
とっくの昔に存在する。
なお、VMのサブセット実装する根性が必要。
185デフォルトの名無しさん:02/06/23 20:54
age
>>184
Javaで作るとか。