スーパーファミコンのEmulatorをC#で造ることはできる😏
SNES Development Manual
SnesDevManualCPU.pdf は、のCPU部分だけを抜き取ってpdfにしていて、
読みにくい点はありますが、w65c816s.pdf のほうが読みやすいです
SNESdev Wiki を閲覧しながらプログラムを作成するしかない……
C#でEmulatorを造れないかと探したときに参考になる
サンプルプログラムをみつけた❗❕❗❕😆

あとはどう造るかですが、まずはページが多い SNES Development Manual を読むより、WDC 65C816 CPU を読んだほうが早いと…
でも作成方法がわからない……🤔
やっと見つけた… サンプル👇
相当遅く FPS: 19 しか出ていない……
サウンドは出ている🔉🔊
どう勉強するかは、まずは
① Memory map
Overall(全体)・LoROM・HiROM・ExHiROM
② ROMヘッダー(ROM header)
ゲームデータにゲームカートリッジに搭載されているハードウェアを
記述するヘッダーを含めるよう要求しました。
これはスーパーファミコンのハードウェアには必要ありませんが、
ゲームソフトウェアはROMデータとしてアクセスできます。
ヘッダーはCPUアドレス範囲$00FFC0~$00FFDF、
割り込みベクターの直前に配置され、
オプションで2番目のヘッダーが $00FFB0~$00FFBF に配置されます。
つまり、実際のROMファイル内のヘッダーの位置は、カートリッジの
メモリマップモードによって異なります。
LoROMゲームでは $ 007Fxx、
HiROMゲームでは $00FFxx、
ExHiROMゲームでは $40FFxx に配置されます。
③ CPUベクトル(CPU vectors)
65C816 native mode vectors(65C816ネイティブモードベクトル)
6502 emulation mode vectors(6502エミュレーションモードベクトル)
SNES開発マニュアル
65C816 - SNESのメインCPU、S-CPUの一部
Registers(レジスター)・PPU・Sound の順の流れになる
一から造るとなると大変だが、ある程度のサンプルがあれば解り易い
ただプログラムをしてゆくなかで、実機並みに動けば万々歳です
C#だけでは限界があるのかもしれないけれど、
遅さでいえば、DirectX(Windows のコンポーネント)いずれ使う日が
来るかもです
あとは根気強く勉強しかないですし、バグを取り除くことが重要です
こんな感じにSNESマニュアルとサンプルを見つけたよで😁
では👋
いいなと思ったら応援しよう!
ご支援で集めたチップは、「ゲーム雑誌」や「気になるレトロゲーム互換機の購入」にあてて、レビューしてゆく所存でございます。
何卒ご支援のほどお願い申し上げます。