Project

General

Profile

Actions

Emulator Issues #13974

open

HLE_OSPanic emulates returning in a noreturn function

Emulator Issues #13974: HLE_OSPanic emulates returning in a noreturn function

Added by vabold 3 months ago. Updated 3 months ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

This issue is game-agnostic, hardware-agnostic, and is present in Dolphin versions spanning back 18 years. Here is the current implementation at the time of writing: https://github.com/dolphin-emu/dolphin/blob/a8fbe8f28f622851333538ee0a2899bc159161ba/Source/Core/Core/HLE/HLE_OS.cpp#L36

Expected behavior from OSPanic is to call PPCHalt as it's a noreturn function, but HLE instead unconditionally returns from the function after the panic alert. This leads to issues with code that uses OSPanic as assert functionality (ex: the Wii SDK's "ARCInitHandle").

Suggested solution would be to match the PPC state of PPCHalt: heavyweight sync before infinite loop.

Updated by JosJuice 3 months ago Actions #1

Do you have reproduction steps for this? I don't recall ever seeing that OSPanic dialog.

Updated by vabold 3 months ago Actions #2

Load an ELF or something similar with OSPanic in the symbol map.

Actions

Also available in: PDF Atom