05-01-2014, 06:18 AM
08c668b4: 0a6bc17f: CMD CALL - 08c668b4 to 096bc17f, ret=08c668b8
Hmm, that won't work correctly. That's where the wheels fall off the bus.
Does it help anything to change this, GPUCommon.cpp:
void GPUCommon::Execute_Call(u32 op, u32 diff) {
easy_guard guard(listLock);
// Saint Seiya needs correct support for relative calls.
const u32 retval = currentList->pc + 4;
const u32 data = op & 0x00FFFFFF;
const u32 target = gstate_c.getRelativeAddress(data);
To:
void GPUCommon::Execute_Call(u32 op, u32 diff) {
easy_guard guard(listLock);
// Saint Seiya needs correct support for relative calls.
const u32 retval = currentList->pc + 4;
const u32 data = op & 0x00FFFFFF;
const u32 target = gstate_c.getRelativeAddress(data) & ~3;
But, not sure. Seems like that command is wrong.
-[Unknown]
Hmm, that won't work correctly. That's where the wheels fall off the bus.
Does it help anything to change this, GPUCommon.cpp:
void GPUCommon::Execute_Call(u32 op, u32 diff) {
easy_guard guard(listLock);
// Saint Seiya needs correct support for relative calls.
const u32 retval = currentList->pc + 4;
const u32 data = op & 0x00FFFFFF;
const u32 target = gstate_c.getRelativeAddress(data);
To:
void GPUCommon::Execute_Call(u32 op, u32 diff) {
easy_guard guard(listLock);
// Saint Seiya needs correct support for relative calls.
const u32 retval = currentList->pc + 4;
const u32 data = op & 0x00FFFFFF;
const u32 target = gstate_c.getRelativeAddress(data) & ~3;
But, not sure. Seems like that command is wrong.
-[Unknown]

