diff --git a/src/xenia/gpu/gl4/command_processor.cc b/src/xenia/gpu/gl4/command_processor.cc index c2717bafe..2dd6b7b44 100644 --- a/src/xenia/gpu/gl4/command_processor.cc +++ b/src/xenia/gpu/gl4/command_processor.cc @@ -746,6 +746,7 @@ bool CommandProcessor::ExecutePacketType3(RingbufferReader* reader, // Ignored packets - useful if breaking on the default handler below. case 0x50: // 0xC0015000 usually 2 words, 0xFFFFFFFF / 0x00000000 + case 0x51: // 0xC0015100 usually 2 words, 0xFFFFFFFF / 0xFFFFFFFF XETRACECP("[%.8X] Packet(%.8X): unknown!", packet_ptr, packet); reader->TraceData(count); reader->Skip(count); diff --git a/src/xenia/kernel/xboxkrnl_video.cc b/src/xenia/kernel/xboxkrnl_video.cc index 36bc76069..e15489aa7 100644 --- a/src/xenia/kernel/xboxkrnl_video.cc +++ b/src/xenia/kernel/xboxkrnl_video.cc @@ -97,8 +97,10 @@ void xeVdQueryVideoMode(X_VIDEO_MODE* video_mode) { video_mode->is_hi_def = 1; video_mode->refresh_rate = 60.0f; video_mode->video_standard = 1; // NTSC - video_mode->unknown_0x8a = 0x8A; + video_mode->unknown_0x8a = 0x94; // 0x8A; video_mode->unknown_0x01 = 0x01; + video_mode->reserved[0] = video_mode->reserved[1] = video_mode->reserved[2] = + 0; } SHIM_CALL VdQueryVideoMode_shim(PPCContext* ppc_state, KernelState* state) { @@ -158,6 +160,13 @@ SHIM_CALL VdShutdownEngines_shim(PPCContext* ppc_state, KernelState* state) { // re-initialize. } +SHIM_CALL VdGetGraphicsAsicID_shim(PPCContext* ppc_state, KernelState* state) { + XELOGD("VdGetGraphicsAsicID()"); + + // Games compare for < 0x10 and do VdInitializeEDRAM, else other (retrain/etc). + SHIM_SET_RETURN_64(0x11); +} + SHIM_CALL VdEnableDisableClockGating_shim(PPCContext* ppc_state, KernelState* state) { uint32_t enabled = SHIM_GET_ARG_32(0); @@ -397,6 +406,7 @@ SHIM_CALL VdSwap_shim(PPCContext* ppc_state, KernelState* state) { } // namespace kernel } // namespace xe + void xe::kernel::xboxkrnl::RegisterVideoExports(ExportResolver* export_resolver, KernelState* state) { SHIM_SET_MAPPING("xboxkrnl.exe", VdGetCurrentDisplayGamma, state); @@ -407,6 +417,7 @@ void xe::kernel::xboxkrnl::RegisterVideoExports(ExportResolver* export_resolver, SHIM_SET_MAPPING("xboxkrnl.exe", VdSetDisplayModeOverride, state); SHIM_SET_MAPPING("xboxkrnl.exe", VdInitializeEngines, state); SHIM_SET_MAPPING("xboxkrnl.exe", VdShutdownEngines, state); + SHIM_SET_MAPPING("xboxkrnl.exe", VdGetGraphicsAsicID, state); SHIM_SET_MAPPING("xboxkrnl.exe", VdEnableDisableClockGating, state); SHIM_SET_MAPPING("xboxkrnl.exe", VdSetGraphicsInterruptCallback, state); SHIM_SET_MAPPING("xboxkrnl.exe", VdInitializeRingBuffer, state);