/**
* Many games including:
* Super Mario 64, Diddy Kong Racing, BlastCorp, GoldenEye, ... (most common)
**/
/**
* Many games including:
* Super Mario 64, Diddy Kong Racing, BlastCorp, GoldenEye, ... (most common)
**/
/**
* Musyx ucode found in following games:
* RogueSquadron, ResidentEvil2, SnowCrossPolaris, TheWorldIsNotEnough,
/**
* Musyx ucode found in following games:
* RogueSquadron, ResidentEvil2, SnowCrossPolaris, TheWorldIsNotEnough,
/**
* Many games including:
* Pokemon Stadium, Banjo Kazooie, Donkey Kong, Banjo Tooie, Jet Force Gemini,
* Mickey SpeedWay USA, Perfect Dark, Conker Bad Fur Day ...
**/
/**
* Many games including:
* Pokemon Stadium, Banjo Kazooie, Donkey Kong, Banjo Tooie, Jet Force Gemini,
* Mickey SpeedWay USA, Perfect Dark, Conker Bad Fur Day ...
**/
- switch(sum)
- {
- /* CIC x105 ucode (used during boot of CIC x105 games) */
- case 0x9e2: /* CIC 6105 */
- case 0x9f2: /* CIC 7105 */
- cicx105_ucode(); return;
+ switch (sum) {
+ /* CIC x105 ucode (used during boot of CIC x105 games) */
+ case 0x9e2: /* CIC 6105 */
+ case 0x9f2: /* CIC 7105 */
+ cicx105_ucode();
+ return;
DebugMessage(M64MSG_WARNING, "unknown OSTask: sum %x PC:%x", sum, *rsp.SP_PC_REG);
sprintf(&filename[0], "task_%x.log", sum);
dump_task(filename, task);
DebugMessage(M64MSG_WARNING, "unknown OSTask: sum %x PC:%x", sum, *rsp.SP_PC_REG);
sprintf(&filename[0], "task_%x.log", sum);
dump_task(filename, task);
sprintf(&filename[0], "ucode_boot_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode_boot & 0x7fffff), task->ucode_boot_size);
sprintf(&filename[0], "ucode_boot_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode_boot & 0x7fffff), task->ucode_boot_size);
sprintf(&filename[0], "ucode_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode & 0x7fffff), 0xf80);
}
sprintf(&filename[0], "ucode_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode & 0x7fffff), 0xf80);
}
sprintf(&filename[0], "ucode_data_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode_data & 0x7fffff), task->ucode_data_size);
}
sprintf(&filename[0], "ucode_data_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->ucode_data & 0x7fffff), task->ucode_data_size);
}
sprintf(&filename[0], "data_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->data_ptr & 0x7fffff), task->data_size);
}
sprintf(&filename[0], "data_%x.bin", sum);
dump_binary(filename, rsp.RDRAM + (task->data_ptr & 0x7fffff), task->data_size);
}
sprintf(&filename[0], "imem_%x.bin", sum);
dump_binary(filename, rsp.IMEM, 0x1000);
sprintf(&filename[0], "imem_%x.bin", sum);
dump_binary(filename, rsp.IMEM, 0x1000);
/* DLL-exported functions */
EXPORT m64p_error CALL PluginStartup(m64p_dynlib_handle CoreLibHandle, void *Context,
/* DLL-exported functions */
EXPORT m64p_error CALL PluginStartup(m64p_dynlib_handle CoreLibHandle, void *Context,
if (PluginNamePtr != NULL)
*PluginNamePtr = "Hacktarux/Azimer High-Level Emulation RSP Plugin";
if (Capabilities != NULL)
if (PluginNamePtr != NULL)
*PluginNamePtr = "Hacktarux/Azimer High-Level Emulation RSP Plugin";
if (Capabilities != NULL)
- "type = %d\n"
- "flags = %d\n"
- "ucode_boot = %#08x size = %#x\n"
- "ucode = %#08x size = %#x\n"
- "ucode_data = %#08x size = %#x\n"
- "dram_stack = %#08x size = %#x\n"
- "output_buff = %#08x *size = %#x\n"
- "data = %#08x size = %#x\n"
- "yield_data = %#08x size = %#x\n",
- task->type, task->flags,
- task->ucode_boot, task->ucode_boot_size,
- task->ucode, task->ucode_size,
- task->ucode_data, task->ucode_data_size,
- task->dram_stack, task->dram_stack_size,
- task->output_buff, task->output_buff_size,
- task->data_ptr, task->data_size,
- task->yield_data_ptr, task->yield_data_size);
+ "type = %d\n"
+ "flags = %d\n"
+ "ucode_boot = %#08x size = %#x\n"
+ "ucode = %#08x size = %#x\n"
+ "ucode_data = %#08x size = %#x\n"
+ "dram_stack = %#08x size = %#x\n"
+ "output_buff = %#08x *size = %#x\n"
+ "data = %#08x size = %#x\n"
+ "yield_data = %#08x size = %#x\n",
+ task->type, task->flags,
+ task->ucode_boot, task->ucode_boot_size,
+ task->ucode, task->ucode_size,
+ task->ucode_data, task->ucode_data_size,
+ task->dram_stack, task->dram_stack_size,
+ task->output_buff, task->output_buff_size,
+ task->data_ptr, task->data_size,
+ task->yield_data_ptr, task->yield_data_size);