Changes

no edit summary
Line 115: Line 115:  
| 0x96C || 0x4 || Array count for the the following array.
 
| 0x96C || 0x4 || Array count for the the following array.
 
|-
 
|-
| 0x970 || 0x280 (0x20*0x14) || Array data with the above count, each entry is 0x14-bytes. The emulator loads this from config array "SpecialInst". +0 = u32 emu_pc_addr (config "Addr"), +4 = u32 instruction_value (config "Inst"), +8 = u32 flags. The emulator sets the flags to 0 by default, then compares config "Type" with various strings to determine the value. Flags: bit0 = Type "BreakLoop", bit5 = Type "LoadFrameBuffer", bit6 = Type "Lua_BeforeInst", bit7 = Type "Lua_AfterInst".
+
| 0x970 || 0x280 (0x20*0x14) || Array data with the above count, each entry is 0x14-bytes. The emulator loads this from config array "SpecialInst". +0 = u32 emu_pc_addr (config "Addr"), +4 = u32 instruction_value (config "Inst"), +8 = u32 flags. The emulator sets the flags to 0 by default, then compares config "Type" with various strings to determine the value. Flags: bit0 = Type "BreakLoop", bit5 = Type "LoadFrameBuffer", bit6 = Type "Lua_BeforeInst", bit7 = Type "Lua_AfterInst", bit9 (v2.9.0+) = unknown.
    
When the config for {any of the previously mentioned Type strings} is set to value 1, the emulator will also enable the corresponding flags bit mentioned above. Likewise with config "Return", which sets flags bit8.
 
When the config for {any of the previously mentioned Type strings} is set to value 1, the emulator will also enable the corresponding flags bit mentioned above. Likewise with config "Return", which sets flags bit8.
Line 134: Line 134:  
|-
 
|-
 
| 0xDFC || 0x4 || Set to 0 by default by the emulator. With config <code>"Cmp", "CodeMultiAddr"</code> this is set to 1. Config <code>"Cmp", "BlockDynamicPC"</code> from [[Super_Mario_3D_All-Stars|SM3DAS]] is not supported. The plugin doesn't use this field, since support for "BlockDynamicPC" was removed. All code which used to use this now assumes val!=2, with code for ==2 being removed.
 
| 0xDFC || 0x4 || Set to 0 by default by the emulator. With config <code>"Cmp", "CodeMultiAddr"</code> this is set to 1. Config <code>"Cmp", "BlockDynamicPC"</code> from [[Super_Mario_3D_All-Stars|SM3DAS]] is not supported. The plugin doesn't use this field, since support for "BlockDynamicPC" was removed. All code which used to use this now assumes val!=2, with code for ==2 being removed.
 +
|-
 +
| 0xE00 || 0x4 || Added with v2.9.0, see below.
 
|}
 
|}
   Line 518: Line 520:  
*** .pcb and .nro were updated.
 
*** .pcb and .nro were updated.
 
** "N-4631_e" added (GoldenEye 007)
 
** "N-4631_e" added (GoldenEye 007)
 +
 +
libHovercraftJITPlugin updated two funcs:
 +
* L_1060, prev ver at L_1060: calling L_4990 (codegen func) is now skipped if u32 controldata+0xE00 is non-zero (this applies to 2 of the 3 calls to L_4990 in this func).
 +
* L_1d90, prev ver at L_1d80:
 +
** The code at 0x1ebc no longer calls L_910 from prev ver. Code was also added for handling bit9 in the array at controldata+0x970.