Line 138: |
Line 138: |
| | 0x798 || 0x4 || Array count for the the following array. | | | 0x798 || 0x4 || Array count for the the following array. |
| |- | | |- |
− | | 0x79C || 0x180 || Array data with the above count, each entry is 0xC-bytes. The emulator loads this from config array "Idle". +0 = u32 emu_pc_addr (config "JmpAddr"), +4 = u32 instruction_value (config "JmpInst"), +8 = u32 is_idle (config "IsIdle", 0x1 = enabled). | + | | 0x79C || 0x180 (0x20*0xC) || Array data with the above count, each entry is 0xC-bytes. The emulator loads this from config array "Idle". +0 = u32 emu_pc_addr (config "JmpAddr"), +4 = u32 instruction_value (config "JmpInst"), +8 = u32 is_idle (config "IsIdle", 0x1 = enabled). |
| |- | | |- |
| | 0x91C || 0x4 || Array count for the the following array. | | | 0x91C || 0x4 || Array count for the the following array. |
| |- | | |- |
− | | 0x920 || 0x500 || Array data with the above count, each entry is 0x14-bytes. +0 = u32 emu_pc_addr, +4 = u32 instruction_value, +8 = u8 flags. Flags: bit5 = read-Special, bit6 = n64CPU_CallLuaBeforeInst, bit7 = n64CPU_CallLuaAfterInst. | + | | 0x920 || 0x500 (0x40*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". |
− | When loading a funcptr from +0x740, it will load a funcptr from +0x700 instead if there's a matching entry here which has bit5 set. | + | |
| + | 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 plugin loads a funcptr from +0x740, it will load a funcptr from +0x700 instead if there's a matching entry here which has bit5 set. |
| |- | | |- |
| | 0xE20 || 0x4 || Array count for the the following array. | | | 0xE20 || 0x4 || Array count for the the following array. |
| |- | | |- |
− | | 0xE24 || 0x8 || Array data with the above count, each entry is 0x8-bytes. | + | | 0xE24 || 0x80 (0x10*0x8) || Array data with the above count, each entry is 0x8-bytes. |
| |- | | |- |
| | 0xEA4 || 0x4 || Set to 0 by default, then if available the emulator sets bit flags here depending on the content of the config for <code>"Cmp", "g_nN64CpuCmpTLBCheckLevel"</code>. | | | 0xEA4 || 0x4 || Set to 0 by default, then if available the emulator sets bit flags here depending on the content of the config for <code>"Cmp", "g_nN64CpuCmpTLBCheckLevel"</code>. |