OSDN Git Service

libusb-win32 のヘッダファイルを変更
[unagi/old-svn-converted.git] / client / trunk / anago / nintendo_mmc4_fkrom.ae
1 /*\r
2 HVC-2I Fire Emblem Gaiden\r
3 command line option\r
4 ./anago d22 mmc4_fkrom.ae hvc_2i.nes b\r
5 */\r
6 board <- {\r
7         mappernum = 10, vram_mirrorfind = false, ppu_ramfind = false,\r
8         cpu_rom = {\r
9                 size_base = 1 * mega, size_max = 2 * mega,\r
10                 banksize = 0x4000,\r
11         }, \r
12         cpu_ram = {\r
13                 size_base = 0x2000, size_max = 0x2000,\r
14                 banksize = 0x2000,\r
15         },\r
16         ppu_rom = {\r
17                 size_base = 0x10000, size_max = 1 * mega,\r
18                 banksize = 0x1000\r
19         }\r
20 };\r
21 \r
22 /*\r
23 [cpu memmorymap - read]\r
24 $6000-$7fff SRAM (battery backuped, optional)\r
25 $8000-$bfff program ROM bank #0\r
26 $c000-$ffff program ROM bank #1 (fixed)\r
27 \r
28 [cpu memmorymap - write]\r
29 $a000-$afff program ROM bank register #0\r
30 $b000-$bfff charcter ROM bank register #0\r
31 $c000-$cfff charcter ROM bank register #1\r
32 $d000-$dfff charcter ROM bank register #2\r
33 $d000-$dfff charcter ROM bank register #3\r
34 \r
35 [ppu memorymap - read]\r
36 0x0000-0x0fff charcter ROM bank #A (#0 or #1)\r
37 0x0fd0-0x0fdf charcter ROM bank register switch to #0\r
38 0x0fe0-0x0fef charcter ROM bank register switch to #1\r
39 0x1000-0x1fff charcter ROM bank #B (#2 or #3)\r
40 0x1fd0-0x1fdf charcter ROM bank register switch to #2\r
41 0x1fe0-0x1fef charcter ROM bank register switch to #3\r
42 */\r
43 function cpu_dump(d, pagesize, banksize)\r
44 {\r
45         for(local i = 0; i < pagesize - 1; i += 1){\r
46                 cpu_write(d, 0xa000, i);\r
47                 cpu_read(d, 0x8000, banksize);\r
48         }\r
49         cpu_read(d, 0xc000, banksize);\r
50 }\r
51 \r
52 /*\r
53 PPU の read 途中にバンクレジスタが切り替わるらしいので下記の処理で\r
54 同じデータを得るようにする。\r
55 PPU address      register\r
56 0x0000-0x0fdf -> #0\r
57 0x0fe0-0x0fff -> #1\r
58 0x1000-0x1fdf -> #2\r
59 0x1fe0-0x1fff -> #3\r
60 \r
61 ppu_read 前に #0 + #1 , #2 + #3 の内容は同じにしておく。\r
62 */\r
63 function ppu_dump(d, pagesize, banksize)\r
64 {\r
65         for(local i = 0; i < pagesize; i += 2){\r
66                 ppu_read(d, 0x0fd0, 0);\r
67                 cpu_write(d, 0xb000, i);\r
68                 ppu_read(d, 0x0fe0, 0);\r
69                 cpu_write(d, 0xc000, i);\r
70 \r
71                 ppu_read(d, 0x1fd0, 0);\r
72                 cpu_write(d, 0xd000, i + 1);\r
73                 ppu_read(d, 0x1fe0, 0);\r
74                 cpu_write(d, 0xe000, i + 1);\r
75 \r
76                 ppu_read(d, 0, banksize * 2);\r
77         }\r
78 }\r
79 \r
80 function cpu_ram_access(d, pagesize, banksize)\r
81 {\r
82         cpu_ramrw(d, 0x6000, banksize);\r
83 }\r