OSDN Git Service

ram dump 対応
authornaruko <naruko@24ea1065-a21e-4ca1-99c9-f5125deb0858>
Thu, 30 May 2013 06:19:50 +0000 (06:19 +0000)
committernaruko <naruko@24ea1065-a21e-4ca1-99c9-f5125deb0858>
Thu, 30 May 2013 06:19:50 +0000 (06:19 +0000)
git-svn-id: svn+ssh://svn.osdn.net/svnroot/unagi@411 24ea1065-a21e-4ca1-99c9-f5125deb0858

client/trunk/anago/mmc4_fkrom.ad [deleted file]
client/trunk/anago/mmc4_fkrom.ae [new file with mode: 0644]

diff --git a/client/trunk/anago/mmc4_fkrom.ad b/client/trunk/anago/mmc4_fkrom.ad
deleted file mode 100644 (file)
index c29cb1a..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-board <- {\r
-       mappernum = 10, vram_mirrorfind = false, ppu_ramfind = true,\r
-       cpu_rom = {\r
-               size_base = 1 * mega, size_max = 2 * mega,\r
-               banksize = 0x4000,\r
-       }, \r
-       cpu_ram = {\r
-               size_base = 0x2000, size_max = 0x2000,\r
-               banksize = 0x2000,\r
-       },\r
-       ppu_rom = {\r
-               size_base = 0x10000, size_max = 1 * mega,\r
-               banksize = 0x1000\r
-       }\r
-};\r
-\r
-function cpu_dump(d, pagesize, banksize)\r
-{\r
-       for(local i = 0; i < pagesize - 1; i += 1){\r
-               cpu_write(d, 0xa000, i);\r
-               cpu_read(d, 0x8000, banksize);\r
-       }\r
-       cpu_read(d, 0xc000, banksize);\r
-}\r
-\r
-function ppu_dump(d, pagesize, banksize)\r
-{\r
-       for(local i = 0; i < pagesize; i += 2){\r
-               ppu_read(d, 0x0fd0, 0);\r
-               cpu_write(d, 0xb000, i);\r
-               ppu_read(d, 0x0fe0, 0);\r
-               cpu_write(d, 0xc000, i);\r
-\r
-               ppu_read(d, 0x1fd0, 0);\r
-               cpu_write(d, 0xd000, i + 1);\r
-               ppu_read(d, 0x1fe0, 0);\r
-               cpu_write(d, 0xe000, i + 1);\r
-\r
-               ppu_read(d, 0, banksize * 2);\r
-       }\r
-}\r
diff --git a/client/trunk/anago/mmc4_fkrom.ae b/client/trunk/anago/mmc4_fkrom.ae
new file mode 100644 (file)
index 0000000..723daed
--- /dev/null
@@ -0,0 +1,81 @@
+/*\r
+HVC-2I Fireemblem Gaiden\r
+*/\r
+board <- {\r
+       mappernum = 10, vram_mirrorfind = false, ppu_ramfind = true,\r
+       cpu_rom = {\r
+               size_base = 1 * mega, size_max = 2 * mega,\r
+               banksize = 0x4000,\r
+       }, \r
+       cpu_ram = {\r
+               size_base = 0x2000, size_max = 0x2000,\r
+               banksize = 0x2000,\r
+       },\r
+       ppu_rom = {\r
+               size_base = 0x10000, size_max = 1 * mega,\r
+               banksize = 0x1000\r
+       }\r
+};\r
+\r
+/*\r
+[cpu memmorymap - read]\r
+$6000-$7fff SRAM (battery backup, optional)\r
+$8000-$bfff program ROM bank #1\r
+$c000-$ffff program ROM bank #2 (fixed)\r
+\r
+[cpu memmorymap - write]\r
+$a000-$afff program ROM bank register #1\r
+$b000-$bfff charcter ROM bank register #0\r
+$c000-$cfff charcter ROM bank register #1\r
+$d000-$dfff charcter ROM bank register #2\r
+$d000-$dfff charcter ROM bank register #3\r
+\r
+[ppu memorymap - read]\r
+0x0000-0x0fff charcter ROM bank #A (#0 or #1)\r
+0x0fd0-0x0fdf charcter ROM bank register switch to #0\r
+0x0fe0-0x0fef charcter ROM bank register switch to #1\r
+0x1000-0x1fff charcter ROM bank #B (#2 or #3)\r
+0x1fd0-0x1fdf charcter ROM bank register switch to #2\r
+0x1fe0-0x1fef charcter ROM bank register switch to #3\r
+*/\r
+function cpu_dump(d, pagesize, banksize)\r
+{\r
+       for(local i = 0; i < pagesize - 1; i += 1){\r
+               cpu_write(d, 0xa000, i);\r
+               cpu_read(d, 0x8000, banksize);\r
+       }\r
+       cpu_read(d, 0xc000, banksize);\r
+}\r
+\r
+/*\r
+PPU の read 途中にバンクレジスタが切り替わるらしいので下記の処理で\r
+同じデータを得るようにする。\r
+PPU address      register\r
+0x0000-0x0fdf -> #0\r
+0x0fe0-0x0fff -> #1\r
+0x1000-0x1fdf -> #2\r
+0x1fe0-0x1fff -> #3\r
+\r
+ppu_read 前に #0 + #1 , #2 + #3 の内容は同じにしておく。\r
+*/\r
+function ppu_dump(d, pagesize, banksize)\r
+{\r
+       for(local i = 0; i < pagesize; i += 2){\r
+               ppu_read(d, 0x0fd0, 0);\r
+               cpu_write(d, 0xb000, i);\r
+               ppu_read(d, 0x0fe0, 0);\r
+               cpu_write(d, 0xc000, i);\r
+\r
+               ppu_read(d, 0x1fd0, 0);\r
+               cpu_write(d, 0xd000, i + 1);\r
+               ppu_read(d, 0x1fe0, 0);\r
+               cpu_write(d, 0xe000, i + 1);\r
+\r
+               ppu_read(d, 0, banksize * 2);\r
+       }\r
+}\r
+\r
+function cpu_ram_access(d, pagesize, banksize)\r
+{\r
+       cpu_ramrw(d, 0x6000, banksize);\r
+}\r