@@ -66,17 +66,18 @@ class BlockInfo
6666 ArrayList <BlockInfo > initSections = new ArrayList <N64LoaderWVLoader .BlockInfo >()
6767 {
6868 {
69- add (new BlockInfo (0x00000000 , 0x03EFFFFF , "RDRAM Memory" ,".rdram" ));
70- add (new BlockInfo (0x03F00000 , 0x03FFFFFF , "RDRAM Registers" ,".rdreg" ));
71- add (new BlockInfo (0x04000000 , 0x040FFFFF , "SP Registers" ,".spreg" ));
72- add (new BlockInfo (0x04100000 , 0x041FFFFF , "DP Command Registers" ,".dpcreg" ));
73- add (new BlockInfo (0x04200000 , 0x042FFFFF , "DP Span Registers" ,".dpsreg" ));
74- add (new BlockInfo (0x04300000 , 0x043FFFFF , "MIPS Interface (MI) Registers" ,".mireg" ));
75- add (new BlockInfo (0x04400000 , 0x044FFFFF , "Video Interface (VI) Registers" ,".vireg" ));
76- add (new BlockInfo (0x04500000 , 0x045FFFFF , "Audio Interface (AI) Registers" ,".aireg" ));
77- add (new BlockInfo (0x04600000 , 0x046FFFFF , "Peripheral Interface (PI) Registers" ,".pireg" ));
78- add (new BlockInfo (0x04700000 , 0x047FFFFF , "RDRAM Interface (RI) Registers" ,".rireg" ));
79- add (new BlockInfo (0x04800000 , 0x048FFFFF , "Serial Interface (SI) Registers" ,".sireg" ));
69+ //add(new BlockInfo(0x00000000, 0x03EFFFFF, "RDRAM Memory",".rdram"));
70+ add (new BlockInfo (0xA3F00000 , 0xA3F00027 , "RDRAM Registers" ,".rdreg" ));
71+ add (new BlockInfo (0xa4040000 , 0xa404001f , "SP Registers" ,".spreg" ));
72+ add (new BlockInfo (0xa4080000 , 0xa4080003 , "SP_PC_Reg" ,".spcreg" ));
73+ add (new BlockInfo (0xA4100000 , 0xA410001F , "DP Command Registers" ,".dpcreg" ));
74+ add (new BlockInfo (0xA4200000 , 0xa420000F , "DP Span Registers" ,".dpsreg" ));
75+ add (new BlockInfo (0xa4300000 , 0xa430000F , "MIPS Interface (MI) Registers" ,".mireg" ));
76+ add (new BlockInfo (0xa4400000 , 0xa4400037 , "Video Interface (VI) Registers" ,".vireg" ));
77+ add (new BlockInfo (0xa4500000 , 0xa4500017 , "Audio Interface (AI) Registers" ,".aireg" ));
78+ add (new BlockInfo (0xa4600000 , 0xa4600034 , "Peripheral Interface (PI) Registers" ,".pireg" ));
79+ add (new BlockInfo (0xa4700000 , 0xa470001F , "RDRAM Interface (RI) Registers" ,".rireg" ));
80+ add (new BlockInfo (0xa4800000 , 0xa480001b , "Serial Interface (SI) Registers" ,".sireg" ));
8081 add (new BlockInfo (0x1FC00000 , 0x1FC007BF , "PIF Boot ROM" ,".pifrom" ));
8182 add (new BlockInfo (0x1FC007C0 , 0x1FC007FF , "PIF RAM" ,".pifram" ));
8283 add (new BlockInfo (0x80000000 , 0x800003FF , "Interrupt Vector Table" ,".ivt" ));
@@ -163,7 +164,7 @@ protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> optio
163164
164165 Log .info ("N64 Loader: Creating segment ROM" );
165166 Structure header_struct = N64Header .getDataStructure ();
166- MakeBlock (program , ".rom" , "ROM image" , 0xB4000000 , bapROM .getInputStream (0 ), (int )bapROM .length (), "101 " , header_struct , log , monitor );
167+ MakeBlock (program , ".rom" , "ROM image" , 0xB0000000 , bapROM .getInputStream (0 ), (int )bapROM .length (), "100 " , header_struct , log , monitor );
167168
168169 Log .info ("N64 Loader: Creating segment BOOT" );
169170 MakeBlock (program , ".boot" , "ROM bootloader" , 0xA4000040 , bapROM .getInputStream (0x40 ), 0xFC0 , "111" , null , log , monitor );
@@ -196,6 +197,90 @@ protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> optio
196197 program .getSymbolTable ().addExternalEntryPoint (addr );
197198 program .getSymbolTable ().createLabel (addr , "romMain" , SourceType .ANALYSIS );
198199 }
200+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00000L ), "RDRAM_CONFIG" , SourceType .ANALYSIS );
201+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00004L ), "RDRAM_DEVICE_ID" , SourceType .ANALYSIS );
202+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00008L ), "RDRAM_DELAY" , SourceType .ANALYSIS );
203+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f0000CL ), "RDRAM_MODE" , SourceType .ANALYSIS );
204+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00010L ), "RDRAM_REF_INTERVAL" , SourceType .ANALYSIS );
205+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00014L ), "RDRAM_REF_ROW" , SourceType .ANALYSIS );
206+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00018L ), "RDRAM_RAS_INTERVAL" , SourceType .ANALYSIS );
207+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f0001CL ), "RDRAM_MIN_INTERVAL" , SourceType .ANALYSIS );
208+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00020L ), "RDRAM_ADDR_SELECT" , SourceType .ANALYSIS );
209+ program .getSymbolTable ().createLabel (MakeAddress (0xA3f00024L ), "RDRAM_DEVICE_MANUF" , SourceType .ANALYSIS );
210+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040000L ), "SP_MEM_ADDR" , SourceType .ANALYSIS );
211+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040004L ), "SP_DRAM_ADDR" , SourceType .ANALYSIS );
212+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040008L ), "SP_RD_LEN" , SourceType .ANALYSIS );
213+ program .getSymbolTable ().createLabel (MakeAddress (0xA404000CL ), "SP_WR_LEN" , SourceType .ANALYSIS );
214+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040010L ), "SP_STATUS" , SourceType .ANALYSIS );
215+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040014L ), "SP_DMA_FULL" , SourceType .ANALYSIS );
216+ program .getSymbolTable ().createLabel (MakeAddress (0xA4040018L ), "SP_DMA_BUSY" , SourceType .ANALYSIS );
217+ program .getSymbolTable ().createLabel (MakeAddress (0xA404001CL ), "SP_SEMAPHORE" , SourceType .ANALYSIS );
218+ program .getSymbolTable ().createLabel (MakeAddress (0xA408000CL ), "SP_PC" , SourceType .ANALYSIS );
219+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100000L ), "DCP_START" , SourceType .ANALYSIS );
220+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100004L ), "DCP_END" , SourceType .ANALYSIS );
221+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100008L ), "DCP_CURRENT" , SourceType .ANALYSIS );
222+ program .getSymbolTable ().createLabel (MakeAddress (0xA410000cL ), "DCP_STATUS" , SourceType .ANALYSIS );
223+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100010L ), "DCP_CLOCK" , SourceType .ANALYSIS );
224+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100014L ), "DCP_BUFBUSY" , SourceType .ANALYSIS );
225+ program .getSymbolTable ().createLabel (MakeAddress (0xA4100018L ), "DCP_PIPEBUSY" , SourceType .ANALYSIS );
226+ program .getSymbolTable ().createLabel (MakeAddress (0xA410001cL ), "DCP_START" , SourceType .ANALYSIS );
227+ program .getSymbolTable ().createLabel (MakeAddress (0xA4300000L ), "MI_INIT_MODE" , SourceType .ANALYSIS );
228+ program .getSymbolTable ().createLabel (MakeAddress (0xA4300004L ), "MI_VERSION" , SourceType .ANALYSIS );
229+ program .getSymbolTable ().createLabel (MakeAddress (0xA4300008L ), "MI_INTR" , SourceType .ANALYSIS );
230+ program .getSymbolTable ().createLabel (MakeAddress (0xA430000CL ), "MI_INTR_MASK" , SourceType .ANALYSIS );
231+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400000L ), "VI_STATUS" , SourceType .ANALYSIS );
232+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400004L ), "VI_ORIGIN" , SourceType .ANALYSIS );
233+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400008L ), "VI_WIDTH" , SourceType .ANALYSIS );
234+ program .getSymbolTable ().createLabel (MakeAddress (0xA440000CL ), "VI_INTR" , SourceType .ANALYSIS );
235+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400010L ), "VI_CURRENT" , SourceType .ANALYSIS );
236+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400014L ), "VI_BURST" , SourceType .ANALYSIS );
237+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400018L ), "VI_V_SYNC" , SourceType .ANALYSIS );
238+ program .getSymbolTable ().createLabel (MakeAddress (0xA440001CL ), "VI_H_SYNC" , SourceType .ANALYSIS );
239+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400020L ), "VI_LEAP" , SourceType .ANALYSIS );
240+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400024L ), "VI_H_START" , SourceType .ANALYSIS );
241+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400028L ), "VI_V_START" , SourceType .ANALYSIS );
242+ program .getSymbolTable ().createLabel (MakeAddress (0xA440002CL ), "VI_V_BURST" , SourceType .ANALYSIS );
243+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400030L ), "VI_X_SCALE" , SourceType .ANALYSIS );
244+ program .getSymbolTable ().createLabel (MakeAddress (0xA4400034L ), "VI_Y_SCALE" , SourceType .ANALYSIS );
245+ program .getSymbolTable ().createLabel (MakeAddress (0xA4500000L ), "AI_DRAM_ADDR" , SourceType .ANALYSIS );
246+ program .getSymbolTable ().createLabel (MakeAddress (0xA4500004L ), "AI_LEN" , SourceType .ANALYSIS );
247+ program .getSymbolTable ().createLabel (MakeAddress (0xA4500008L ), "AI_CONTROL" , SourceType .ANALYSIS );
248+ program .getSymbolTable ().createLabel (MakeAddress (0xA450000CL ), "AI_STATUS" , SourceType .ANALYSIS );
249+ program .getSymbolTable ().createLabel (MakeAddress (0xA4500010L ), "AI_DACRATE" , SourceType .ANALYSIS );
250+ program .getSymbolTable ().createLabel (MakeAddress (0xA4500014L ), "AI_BITRATE" , SourceType .ANALYSIS );
251+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600000L ), "PI_DRAM_ADDR" , SourceType .ANALYSIS );
252+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600004L ), "PI_CART_ADDR" , SourceType .ANALYSIS );
253+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600008L ), "PI_RD_LEN" , SourceType .ANALYSIS );
254+ program .getSymbolTable ().createLabel (MakeAddress (0xA460000CL ), "PI_WR_LEN" , SourceType .ANALYSIS );
255+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600010L ), "PI_STATUS" , SourceType .ANALYSIS );
256+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600014L ), "PI_BSD_DOM1_LAT" , SourceType .ANALYSIS );
257+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600018L ), "PI_BSD_DOM1_PWD" , SourceType .ANALYSIS );
258+ program .getSymbolTable ().createLabel (MakeAddress (0xA460001CL ), "PI_BSD_DOM1_PGS" , SourceType .ANALYSIS );
259+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600020L ), "PI_BSD_DOM1_RLS" , SourceType .ANALYSIS );
260+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600024L ), "PI_BSD_DOM2_LAT" , SourceType .ANALYSIS );
261+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600028L ), "PI_BSD_DOM2_PWD" , SourceType .ANALYSIS );
262+ program .getSymbolTable ().createLabel (MakeAddress (0xA460002CL ), "PI_BSD_DOM2_PGS" , SourceType .ANALYSIS );
263+ program .getSymbolTable ().createLabel (MakeAddress (0xA4600030L ), "PI_BSD_DOM2_RLS" , SourceType .ANALYSIS );
264+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700000L ), "RI_MODE" , SourceType .ANALYSIS );
265+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700004L ), "RI_CONFIG" , SourceType .ANALYSIS );
266+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700008L ), "RI_CURRENT_LOAD" , SourceType .ANALYSIS );
267+ program .getSymbolTable ().createLabel (MakeAddress (0xA470000CL ), "RI_SELECT" , SourceType .ANALYSIS );
268+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700010L ), "RI_REFRESH" , SourceType .ANALYSIS );
269+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700014L ), "RI_LATENCY" , SourceType .ANALYSIS );
270+ program .getSymbolTable ().createLabel (MakeAddress (0xA4700018L ), "RI_RERROR" , SourceType .ANALYSIS );
271+ program .getSymbolTable ().createLabel (MakeAddress (0xA470001CL ), "RI_WERROR" , SourceType .ANALYSIS );
272+ program .getSymbolTable ().createLabel (MakeAddress (0xA4800000L ), "SI_DRAM_ADDR" , SourceType .ANALYSIS );
273+ program .getSymbolTable ().createLabel (MakeAddress (0xA4800004L ), "SI_PIF_ADDR_RD64B_REG" , SourceType .ANALYSIS );
274+ program .getSymbolTable ().createLabel (MakeAddress (0xA4800010L ), "SI_PIF_ADDR_WR64B_REG" , SourceType .ANALYSIS );
275+ program .getSymbolTable ().createLabel (MakeAddress (0xA4800018L ), "SI_STATUS" , SourceType .ANALYSIS );
276+ program .getSymbolTable ().createLabel (MakeAddress (0x80000300L ), "NTSC_PAL" , SourceType .ANALYSIS );
277+ program .getSymbolTable ().createLabel (MakeAddress (0x80000304L ), "CART_DD" , SourceType .ANALYSIS );
278+ program .getSymbolTable ().createLabel (MakeAddress (0x80000308L ), "ROM_BASE" , SourceType .ANALYSIS );
279+ program .getSymbolTable ().createLabel (MakeAddress (0x8000030cL ), "RESET" , SourceType .ANALYSIS );
280+ program .getSymbolTable ().createLabel (MakeAddress (0x80000310L ), "CIC_ID" , SourceType .ANALYSIS );
281+ program .getSymbolTable ().createLabel (MakeAddress (0x80000314L ), "VERSION" , SourceType .ANALYSIS );
282+ program .getSymbolTable ().createLabel (MakeAddress (0x80000318L ), "RDRAM_SIZE" , SourceType .ANALYSIS );
283+ program .getSymbolTable ().createLabel (MakeAddress (0x8000031cL ), "NMI_BUFFER" , SourceType .ANALYSIS );
199284 }catch (Exception ex ) {}
200285
201286 Log .info ("N64 Loader: Done Loading" );
0 commit comments