Project

General

Profile

Actions

Emulator Issues #13589

open

Active Life: Magical Carnival throws MMU error and soft-locks during startup

Added by flacs 2 months ago. Updated about 1 month ago.

Status:
Accepted
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

Game Name?

"Active Life: Magical Carnival" aka "Family Trainer: Magical Carnival" aka "Issho ni Asobu! Dream Theme Park"

Game ID? (right click the game in the game list, Properties, Info tab)

SFDEAF

MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)

2d3307c0e6745db28b0a5787490d20fa

What's the problem? Describe what went wrong.

The game's sound thread is supposed to load Sound/FT4_SOUND_EN.brsar and then construct a nw4r::snd::detail::FrameHeap for it, all before the wrist strap warning screen shows up. Another thread later calls nw4r::snd::detail::FrameHeap::LoadState() on the same heap variable during the "NOW LOADING" screen. Without underclocking, the sound thread gets stuck (no idea why), never loads the file, and never constructs the heap. The LoadState() call then dereferences a null 'this' pointer after which the game soft-locks. The sound thread uses three semaphores and I've not yet understood what the error condition is exactly. It would be nice to make the game not rely on cycle accuracy.

What steps will reproduce the problem?

Start the game without underclocking.

Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.

Yes, 2407-150.

Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.

Yes, 2407.

If the issue isn't present in the latest release, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)

Probably always been broken.

Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)

Unfortunately the game doesn't have symbols. Some relevant ones:
8026bc90 OSInitSemaphore
8026bdb0 OSSignalSemaphore
8026bd60 OSTryWaitSemaphore
8026bcf0 OSWaitSemaphore

Sound related initialization code starts at 800125c4.
The sound thread function starts at 802249d8.

Actions #1

Updated by flacs about 1 month ago

Possible fix:

[OnFrame]
$Fix sound thread priority
0x8002DB9F:byte:0x0000000F

Actions

Also available in: Atom PDF