Source code of Ensata (A Nintendo DS emulator made by Nintendo).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Bryan Kirk 8052d93daa Added the leaked source code of Ensata 2 月之前
HelpProject Added the leaked source code of Ensata 2 月之前
PluginSDK Added the leaked source code of Ensata 2 月之前
WIN Added the leaked source code of Ensata 2 月之前
ext_control Added the leaked source code of Ensata 2 月之前
ini_edit Added the leaked source code of Ensata 2 月之前
materials Added the leaked source code of Ensata 2 月之前
rc_edit Added the leaked source code of Ensata 2 月之前
tools Added the leaked source code of Ensata 2 月之前
unreg Added the leaked source code of Ensata 2 月之前
.gitignore Added the leaked source code of Ensata 2 月之前
ObjectPath.txt Added the leaked source code of Ensata 2 月之前
make_release.bat Added the leaked source code of Ensata 2 月之前
readme.txt Added the leaked source code of Ensata 2 月之前

readme.txt

2003.06.13
------------------------------------------------------------
------------------------------------------------------------
AGB エミュレータ ソースコード
企画開発部 吉崎


------------------------------------------------------------
-- フォルダ構成 --------------------------------------------

フォルダの構成内容は以下の通りです。


+--WIN
| | Windows 上で動作する簡易ソフトデバッガの
| | Visual C++ プロジェクトファイル一式.
| |
| +--agbdeb
| | | 簡易ソフトデバッガのプロジェクト.
| | |
| | +--agb
| | AGB エミュレータライブラリのコア部分ソースコード.
| | Windows / GameCube 上で動作を確認.
| |
| +--enlib
| +--mfclib
| Windows アプリ用の雑多ユーティリティ.
|
+--DOL
| GameCube 用のライブラリ gbelib.a を生成する make 設定と
| それを用いた簡易アプリケーションサンプル.
|
+--build
| | /DolphinSDK*.*/build/samplebuild/ 以下に配置して
| | gbelib.a を生成するための make.
| | ※ここへ, 上記 WIN/agbdeb/agb フォルダ一式を
| | src と名前変更してコピーしてから使用する.
| |
| +--agb
| AGB エミュレータライブラリのコア部分.
| Windows / GameCube 上で動作を確認.
|
+--gbe_test
ライブラリとして使用した場合の一例を示す
CodeWarrior for GameCube 用プロジェクト一式.




------------------------------------------------------------
-- AGB エミュレータ コア部分概略 ---------------------------

おおよその依存関係は以下の通りです。

gbelib.h/cpp のコードを見るとわかりますが
GBE_LIB_RELEASE が定義されていると
gbelib.h で公開されているインタフェース以外は
全て内部リンケージになるように作られています。
(情開へポケモンボックス用ライブラリを
提供する際に使用していたモードです)

デバッガ用途などで内部を直接アクセスするには
GBE_LIB_RELEASE を定義しないでビルドしてください。


_Langdef.h
_Typedef.h
| 文字コードや型定義などのインクルード.
|
+--define.h
| GBE ライブラリコンパイルオプション,
| 共通定数, 特殊マクロの定義.
| ※シンボルを内部に隠すためのマクロは
| GBE_LIB_RELEASE で切り替え.
|
+--platform.h/c
| プラットフォーム依存のハードウェア機能.
| GBE ライブラリ内のメモリ管理.
| 各種デバッグ機能.
|
+--memory.h/cpp
| リニアなメモリ空間全般を管理.
|
+--arm.h/cpp
| ARM CPU 構造体とマクロの定義.
|
+--ipt.h/cpp
| キー入力の制御.
|
+--rtc.h/cpp
| RTC デバイスのエミュレーション.
|
+--gpio.h/c
| GPIO デバイスのエミュレーション.
| (RTC が接続されている)
|
+--flash.h/cpp
| FLASH / SRAM / EEPROM の制御.
|
+--eep.h/cpp
| EEPROM の制御.
|
+--lcd.h/cpp
| 描画機能全般.
| |
| +--lcd_inline_bg.h
| +--lcd_inline_obj.h
| マクロ展開された描画処理.
| |
| +--lcd_macro_bg.h
| +--lcd_macro_obj.h
| マクロで記述された描画処理.
| ※展開には mkinl.bat を使用.
|
+--sio.h/cpp
| SIO 通信機能の制御.
| ※GBS 拡張機能で使用する 32bit ノーマル通信のみ対応.
|
+--gbs.h/cpp
| ゲームボーイプレーヤーのエミュレーション.
| ※GBS 拡張機能であるコントローラ振動に対応.
|
+--sound.h/cpp
| サウンド機能.
|
+--agb.h/cpp
| 各デバイスのメモリマップをはじめとする複合処理全般.
|
+--swi.h/cpp
| ・本来AGBが行うソフトウェア割り込み処理を
| エミュレータの環境から直接実行.
| ・ブート処理のうち特に頻度が大きい箇所を
| SWI として代替して高速動作.
| ・処理落ちが問題になるソフトへ対応するために
| 部分的に SWI として代替して高速動作.
| ※高速化が不要なら省略可能.
|
+--CpuLoop.h/cpp
| 1フレーム実行するためのループ処理.
| |
| +--arm_op.h
| 1 命令実行部分のコア.
| |
| +--op_a_cube.h
| | ARM の 1 命令実行コア(分岐ネスト).
| |
| +--op_a_win.h
| | ARM の 1 命令実行コア(switch テーブル).
| |
| +--op_t.h
| THUMB の 1 命令実行コア.
|
+--debug.h/cpp
| デバッグ用の逆アセンブル文字列処理.
|
+--------------------------------------------------------
gbelib.h/cpp
AGBエミュレータのモジュール.
※基本的には gbelib.h のインタフェースだけで
エミュレータとして制御可能.
GBE_LIB_RELEASE オプションでビルドすると
それ以外のシンボルは全て static になる.


------------------------------------------------------------
-- AGB 簡易デバッガ GUI 部分概略 ---------------------------

おおよその機能分担は以下の通りです。

作りかけや意味のないコマンドは今回すべて
削除しましたが, 残っているものも基本的には
特定の作業のみを目的にしたものばかりです。
特に, ポケモンデータの編集に関わる部分は
ネットで検索して見つけた資料に基づいていて
「任意のポケモンと任意の技の確認」ができる以外は
あまりあてになりません。

あと, ジョイスティックには対応していませんが
特に無理というわけではありません。


enlib.dsw
mfclib.dsw
| Windows アプリ用の雑多なユーティリティ.
|
+--BmpOutDialog.h/cpp
| VRAM 画像出力用のダイアログ.
|
+--DisasmDialog.h/cpp
| 逆アセンブル範囲指定用のダイアログ.
|
+--DumpAddrDialog.h/cpp
| ダンプアドレス検索用のダイアログ.
|
+--DumpDialog.h/cpp
| ダンプダイアログ.
|
+--IoDialog.h/cpp
| IO レジスタ簡易設定用のプロパティシート.
|
+--KeySetDialog.h/cpp
| キー配置設定用のダイアログ.
|
+--LcdDialog.h/cpp
| 液晶表示ダイアログ.
|
+--PokeEditDialog.h/cpp
| ボックス内ポケモンデータ編集用のダイアログ.
|
+--PokeInfo.h/cpp
| ポケモンデータ編集用クラス.
|
+--PokeStackDialog.h/cpp
| ボックス内ポケモンの個別抽出/復元用のダイアログ.
|
+--draw_engine.h/cpp
| VRAM 画像の出力ルーチン.
|
+--TraceList.h
| 逆アセンブルトレースのリストクラス.
|
+--------------------------------------------------------
agbdebDlg.h/cpp
簡易デバッガのメインダイアログ.



------------------------------------------------------------
------------------------------------------------------------