Skip to content

God of War crashes just after boot on Android (Adreno 740) #159

Description

@WizzardSK

Moved from WizzardSK/pcee2-libretro#30, where it was filed against the wrong core. Reported by @Bernstein94; the log there loads pcsx2_libretro_android.so and writes saves under RetroArch/saves/LRPS2/, so it belongs here.

Symptom

God of War (USA) boots and then crashes shortly after. The reporter also mentions GTA Vice City booting with uneven audio, which may or may not be the same underlying cause.

Environment

  • RetroArch 1.22.2, Android 16, arm64-v8a, sideload
  • Xiaomi 23113RKC6C, Adreno 740
  • Vulkan display driver, OpenSL audio
  • God of War (USA), SCUS-97399, ELF CRC D6385328
  • Fastmem enabled; GameDB applied alignSprite, roundSprite and autoFlush

What the log shows

retroarch.log from the original report.

Nothing about the crash itself. The log stops mid-sentence in the middle of repeated

microVU1: 2 cycle stall on branch instruction [03b0]
microVU1: 1 cycle stall on branch instruction [0538]
microVU1: 3 cycle stall on branch instruction [0588]

which is what a hard native crash looks like from RetroArch’s side: RetroArch cannot log a signal that kills the process, and until #158 the core installed no reporter of its own — the only sigaction in the tree is the fastmem page fault filter. So there is no fault address and no program counter to work from yet.

What can be said is that the last thing the core did before dying was microVU1 compiling VU1 programs.

Next steps

Waiting on the reporter for adb logcat or a tombstone, and for the result of three core option changes, each of which rules something in or out:

  • MTVU off. On arm64 this defaults to on whenever the native VU1 recompiler drives VU1. First suspect, and the most likely explanation for the Vice City audio too.
  • VU1 softfloat on. Takes the VU1 recompiler out of the picture; if the game then boots, this is VU1 codegen.
  • EE = Interpreter. Removes the EE recompiler entirely; a crash that survives it is not EE codegen.

#158 adds a crash handler that will answer the main question directly on the next report — whether the program counter was inside the core’s own text or inside generated code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions