Infinite loop at sceGsSyncVCallback (0x006E5380) & MSVC LTO Linker hang on large projects

Abierto
#421 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 5 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
15/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cmake, cpp

Línea de trabajo

The hang is at PC 0x006E5380 (sceGsSyncVCallback), so start with how stubs in config.toml and ps2_game_overrides::bindAddressHandler in loi_override.cpp are consumed by the runtime, since both were tried and neither stopped the [run:tick] output. Separately, check whether INTERPROCEDURAL_OPTIMIZATION in CMakeLists.txt reaches the ps2EntryRunner target. Done means the tick loop stops at that address and the link finishes without /GL. This needs runtime and build-system knowledge, so it is not a good first task.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi! First of all, thank you for the incredible PS2Recomp framework.

I am trying to recompile Castlevania: Lament of Innocence (USA, SLUS-207.33). The recompilation itself was a massive success: ps2_recomp.exe generated 11,078 functions with 0 decode failures. The game successfully loads and initializes PS2 system modules (SDRDRV, LIBSD, SIO2MAN).

However, I am hitting two blockers. To save your time, I have prepared a clean repository with my configs, CMake, and the override file:
👉 https://github.com/Om3g4-Dev/Castlevania-LOI-Recomp

Here is a summary of the issues:

1. Infinite loop at 0x006E5380 (sceGsSyncVCallback)
The game gets stuck in an infinite loop at pc=0x006E5380. I tried two approaches:

  • Adding "ret0@0x006E5380" to stubs in config.toml.
  • Using ps2_game_overrides::bindAddressHandler(runtime, 0x006E5380, "sceGsSyncVCallback") in loi_override.cpp.
    Neither worked. The runtime continues to output [run:tick] pc=0x6e5380 indefinitely. Is this address a special callback that requires a different handling mechanism?

2. MSVC Linker Hang (LTO)
When building ps2EntryRunner with 11,000 generated .cpp files, link.exe consumes 4.4+ GB of RAM and hangs for hours due to the /GL (Whole Program Optimization) flag. I added INTERPROCEDURAL_OPTIMIZATION FALSE to CMakeLists.txt, but it didn't seem to take effect on the build time. Is there a recommended way to disable LTO for generated targets?

Any advice on these two issues would be greatly appreciated. Thank you!

Lenguaje dominante
C++
Estrellas
3.3k
Forks
149
Merge medio
8 h 46 min
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ran-j/PS2Recomp

Todos los issues de ran-j/PS2Recomp

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.