2013-01-01から1年間の記事一覧

input replay / record を実装できるか考えてみる

40H368 は 74HC368 になってることもあるが、40Hのほうで統一する(機能差はないはず)。音声アンプとしての用途はここでは言及しない。 input device の仕組み RDP0 が $4016, RDP1 が $4017 の address decode で 40H368 の dataoutput control につながる。…

state save を実装できるか考えてみる

state save はゲーム機エミュレータによく実装されているやつで、その瞬間を再開できるのでインチキセーブ機能と呼ぶこともある。インチキセーブはゲーム機に関わる変数つまり、レジスタとRAMを全部保存してしまう必要がある。RAM のほうは外部インタフェー…

Nintendo VS. Dualsystem (MDS-02-CPU) の回路図を見た

家庭用と違うところを回路図を見ただけで言う。 CPU $6000-$7fff に RAM があり、 battery backup で片方の CPU と共有している 優先順位は 2J の CPU > 8J の CPU. 8J の CPU が使える状態は 8J の IRQ が L のときのみ。 $4016.write での bit2:0 の割り当…

hackrom (ガチャポン戦士3と4)

3は幼少の頃にはまってたが、4の戦闘システムの変更や複雑化は小学生にはちょっと無理だった。戦闘シーンに攻撃すると背景色が黒→赤→白となって、目に悪くて不快。今回は簡単なので mess の使い方も兼ねる。 パレットを探る PPU の VRAM (sprite じゃないほ…

Wiki を更新してます

G-101 の仕様を書きました。あまり重要じゃないのでみなくてもいいです。ファミコンで簡単に調査できることは終わったので、次からは FME-7 の調査をします。

hackrom 失敗作

ファミコン向けの RPG の hackrom で自分がやることはだいたい移動スピードを早くすることとエンカウントを減らすこと。先月ぐらいにキングオブキングスのカーソルの移動速度が遅いことが時間の無駄と感じてちょっとやってみたんだが、プログラムがうんこで…

新電子立国を図書館で読んだ

貴重な本でもないし、入手は容易だと思うので詳細は各自調べてください。著者は NHK のドキュメント番組のディレクターであってビデオゲームの専門かではないこと、コンピュータの発展について広く取材したうちの1/5がゲームだったことも加味して補正するこ…

IREM G-101 カートリッジの flash 化につまる

久しぶりにkazzoとロジアナにつないで計測した。 CPU READ,WRITE まず重要なのが kazzo から供給するROMSEL と G-101 から供給する Program ROM EN での read と write の挙動。READ では ROMSEL と EN が同時に L になっているので、問題なし。 WRITE では …

新電子立国を youtube でみた

新電子立国は放送した以外にも書籍があるので前回はそっちを指していたが、youtube に放送した方があったのでいくつか気になったところをピックアップ。 業務用のドンキーコングの説明 ROM だけ交換すれば別のゲームになるという説明で業務用のゲーム基板を…

MMC3 系

逸れる前の話題を別の方向にそらしてみる。こいつらは謎で系列を並べてみる。 最初に出てきた製品が Namco の 108 シリーズ その次が Nintendo MMC3? 次に出てきたのが Tengen の RAMBO-1 108 と MMC3 は ROM 関連の内部/外部アドレスとレジスタの並びがそっ…

カートリッジの端子名として M2 という言葉は正しいのかその4

MMC3 もどきのメモリコントローラ RAMBO-1 (Tengen製, Nintendo からは unofficial) は IRQ を起こすきっかけとしてφ2カウンタとscanlineカウンタ(PPU A12? を監視, MMC3 と同じらしい)のどちらかをソフトウェアから選ぶことが出来る。 そのカウントの詳細な…

シルヴァ・サーガのセーブデータ

移動速度が速いゲームとしてこれを思い出した。これをエミュレータで起動したところ、セーブデータ欄が名前が空欄でレベル1となっていて、これを再開すると船に乗っていて変。 対処方法は異常なセーブデータを消すと、ゲームが最初から開始できる。 ROM の r…

ドラクエ4の移動速度をなおしたい(その2)

とりあえず2章だけ。 1章はおもしろくないのでカット。 3章は狐の村がちょっとおもしろいかもしれないがほかがつまらなくて長い。 4章は乗船券を持っているだけで終わる。 5章は nestopia だと RAM をみれなくて気球の場所がわからんので未収録。

ドラクエ4の移動速度をなおしたい

このころの RPG の移動速度は 1 pixel相当/frame で遅いものが大半でいまやるとかったるい(ナイトガンダム物語2はなぜか早いので例外)。今回はドラクエ4をやりかけ中。 CAEA: lda $0584 CAED: cmp #$01 CAEF: beq $cb17 CAF1: lda #$01 CAF3: sta $0584 $cae…

nesdev の forum の区分けに議論が起きている

SNESdev というカテゴリの subject が基本的に ROM の配線方法の議論ばかりになっている。スーファミの構造は知らないので中身は見ていないけど、中身は bakutendo のコメント欄みたいになってると思われる。http://forums.nesdev.com/viewforum.php?f=12要…

FF2 の解析をあきらめた

ldy abs,x と ldx abs,y が存在するのを知らなかったのは前回書いたが、それと対になるであろう sty abs,x と sty abs,x は存在してないから気づかなかった(言い訳)。後継の互換CPUはあるかもね。魔法の本を装備して攻撃するやつで、フリーズをするやつをみ…

名前欄に6502プログラムを書きたいその3

先日のやつはループカウンタの挙動でセーブデータをもう1つ使用せねばならないということで、ボツ。普通に考えれば3byte書くだけなので手の込んだ index addressing とかいらん。 org $6142 ldy xxxx ;contains data 1, vaild address bne $6102 org $6102 s…

FF3 の TAS が投稿された

http://tasvideos.org/forum/viewtopic.php?t=14333説明を見るに私の書いたことが入ってる気がするので、ご参考になったみたい。($7af0) = 0 は装備を替えたときに更新されてしまうので、町の一歩手前でメニューを開くのはなにか別の理由がある気がする。い…

名前欄に6502プログラムを書きたいその2

さくじつ書いたプログラムをアセンブルして、バイナリが出てくるので cheat として名前欄に手打ちする。 制御文字が入っていていくつかのバイナリを直接名前欄に書くことが出来ない。 ここまでは想定内で、0x00-0x3f, 0xc0-0xff あたりが使えない。 リストア…

名前欄に6502プログラムを書きたい

FF3 はピアノ演奏を回避する以外にプレイ時間を縮められないので、FF2 で indirect jump (下記みたいの)を調べてみたら、 address としては $6300 台の候補がでてきた。でてきたが、上の処理をたどるとその変数はでないことが判明。ユーザーデータなら、PC …

FF1 の話

勢いで動画を作ったものの、実機動作として貼ったURLの動画を転用しているので承認待ちの状態です。wiki にも詳細を書いておいたので承認が得られればそちらに貼ります。が、ちょっとだけお見せします。まずかったらそのうち消します。 比較して並べてみると…

FF3 の RAM 破壊の話

不正なジョブ番号のコマンド実行から、 $6000-$6fff 付近へ indirect jump して、名前欄に書いた 6502 プログラムを実行しようと思ったが、そんなジャンプ先はなかった。index register の範囲が 256 byte だったため。惜しい。動画の RAM 破壊の解析をやっ…

FF2 も調べた

zeropage のほうのメモリアドレスが全く同じだった。 $006c script execute flag (0:停止, 1:実行, その他:何かしらイベント) $0072 $script execute pointer (little endian 16bit) FF3 と異なる部分はスクリプトの実行フラグは $006c は 1 だけ。戦闘開始…

FF3 でバグを使って最速クリアする方法その3 (おまけ)

正常な利用での script execute pointer を調べた。 0xaf3b くらやみのくもの戦闘の直後。($0078) = 3 にする必要がある。これをやらないとイベントはある程度すすむものの、セリフなどの文字列がおかしくなる。$0078 は間接的な意味で bank とも言える。 0x…

FF3 でバグを使って最速クリアする方法その2

メモリアドレスの絞り込みが出来た。 イベントフラグ $74d0 -> $0050 に書き込まれた値で例外的なイベントが発生する。値は下記のようである。 0x00: なにもおきない 0x01-0x7f: お店 0x80: opening 0x81-0xff:「さいしょは なにもない むのせかいだった...…

FF3 でバグを使って最速クリアする方法

FF4 の 64 階層バグの動画をみていたく感動した。動画投稿者の方の web サイトを見たらいろいろ書いてあったので、ファミコンの FF3 のバグを起こしてエンディングへ行く方法を mess のデバッガで調べた。http://www.nicovideo.jp/watch/sm16743542この動画…

難しい日本語は書かない方がいいかも

前日の「51pin の出力が PPU A10 or A11 までは読めるが」という分の「読める」は推測可能という意味で、 readable ではなくて guess-able (こんな単語があるかしらん)ということである。 国語辞典で読むを調べると、この文面では3番目か7番目の意味に準ずる…

Irem G-101 その2

パーマン part2 が届いたので分解→配線確認→ flash 化の3つ。 配線と $9000 への write register G-101 の 25pin がメジャーリーグの基板では GND, パーマンpart2の基板では +5V. VRAM A10 は 51pin から出ているものの、この出力端子と +5V が選べるような…

Irem G-101

mapper #32 と定義されているものの、メジャーリーグは VRAM mirroring が1画面固定でエミュレータは CRC などのチェックサムで個別対応をいれてごまかしているらしい。ということで調べてみた。 0x9000-0x9fff が VRAM mirroring と可変バンク設定。 メジャ…

ファミカセ分解

Sunsoft 5系は停滞してますが(機材借りてる人すいません)、配線を調べるだけの Bandai 系の方をやってみました。 nescartdb には4件とも FCG-1 だったドラゴンボール大魔王復活を分解したら、中身に FCG-2 が入っていてちょっとやる気ダウン。とりあえず配線…