Skip to content

Commit

Permalink
Implement sync signal in display lists.
Browse files Browse the repository at this point in the history
Makes dialogs show up in 3rd Birthday.
  • Loading branch information
unknownbrackets committed Apr 6, 2013
1 parent dac448d commit 376ad80
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
4 changes: 3 additions & 1 deletion Core/HLE/sceGe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ class GeIntrHandler : public IntrHandler
int subintr = -1;
if (dl->subIntrBase >= 0)
{
if (cmd == GE_CMD_FINISH && dl->signal == PSP_GE_SIGNAL_HANDLER_PAUSE)
if (dl->signal == PSP_GE_SIGNAL_SYNC)
subintr = -1;
else if (cmd == GE_CMD_FINISH && dl->signal == PSP_GE_SIGNAL_HANDLER_PAUSE)
subintr = dl->subIntrBase | PSP_GE_SUBINTR_SIGNAL;
else if (cmd == GE_CMD_SIGNAL && dl->signal != PSP_GE_SIGNAL_HANDLER_PAUSE)
subintr = dl->subIntrBase | PSP_GE_SUBINTR_SIGNAL;
Expand Down
8 changes: 7 additions & 1 deletion GPU/GPUCommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,8 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
ERROR_LOG_REPORT(G3D, "Signal with Pause UNIMPLEMENTED! signal/end: %04x %04x", signal, enddata);
break;
case PSP_GE_SIGNAL_SYNC:
ERROR_LOG_REPORT(G3D, "Signal with Sync UNIMPLEMENTED! signal/end: %04x %04x", signal, enddata);
currentList->signal = behaviour;
DEBUG_LOG(G3D, "Signal with Sync. signal/end: %04x %04x", signal, enddata);
break;
case PSP_GE_SIGNAL_JUMP:
ERROR_LOG_REPORT(G3D, "Signal with Jump UNIMPLEMENTED! signal/end: %04x %04x", signal, enddata);
Expand Down Expand Up @@ -597,6 +598,11 @@ void GPUCommon::ExecuteOp(u32 op, u32 diff) {
}
break;

case PSP_GE_SIGNAL_SYNC:
currentList->signal = PSP_GE_SIGNAL_NONE;
// TODO: Technically this should still cause an interrupt. Probably for memory sync.
break;

default:
currentList->subIntrToken = prev & 0xFFFF;
currentList->state = PSP_GE_DL_STATE_COMPLETED;
Expand Down

0 comments on commit 376ad80

Please sign in to comment.