From 294e665b119a87a95707710552de3256c45c9cfc Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Wed, 15 Apr 2026 23:52:52 +0200 Subject: [PATCH] fix emscripten --- CMakeLists.txt | 8 ++++++-- source/director.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec9277d..3744404 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,9 +87,13 @@ elseif(APPLE) endif() elseif(EMSCRIPTEN) target_compile_definitions(${PROJECT_NAME} PRIVATE EMSCRIPTEN_BUILD) + # En wasm NO empaquetamos un resources.pack: el propio --preload-file de + # emscripten ya hace el mismo trabajo (bundle del directorio en un .data), + # así que metemos directamente 'data' y dejamos que el Resource lea por + # filesystem (MEMFS). Evita doble empaquetado y el uso de memoria extra. target_link_options(${PROJECT_NAME} PRIVATE - --preload-file ${CMAKE_SOURCE_DIR}/resources.pack@/resources.pack - --preload-file ${CMAKE_SOURCE_DIR}/gamecontrollerdb.txt@/gamecontrollerdb.txt + "SHELL:--preload-file ${CMAKE_SOURCE_DIR}/data@/data" + "SHELL:--preload-file ${CMAKE_SOURCE_DIR}/gamecontrollerdb.txt@/gamecontrollerdb.txt" -sALLOW_MEMORY_GROWTH=1 -sMAX_WEBGL_VERSION=2 ) diff --git a/source/director.cpp b/source/director.cpp index a537f3d..c09f13b 100644 --- a/source/director.cpp +++ b/source/director.cpp @@ -58,9 +58,13 @@ Director::Director(int argc, const char *argv[]) { createSystemFolder("jailgames/coffee_crisis_debug"); #endif - // Inicializa el sistema de recursos (pack + fallback) + // Inicializa el sistema de recursos (pack + fallback). + // En wasm siempre se usa filesystem (MEMFS) porque el propio --preload-file + // de emscripten ya empaqueta data/ — no hay resources.pack. { - #ifdef RELEASE_BUILD + #if defined(__EMSCRIPTEN__) + const bool enable_fallback = true; + #elif defined(RELEASE_BUILD) const bool enable_fallback = false; #else const bool enable_fallback = true;