emulator: Hydra Castle Labyrinth type: standalone core_classification: game_engine source: "https://github.com/ptitSeb/hydracastlelabyrinth" upstream: "https://github.com/ptitSeb/hydracastlelabyrinth" profiled_date: "2026-10-04" source_commit: "e31648688434a789e3056e52cdf1b9a842eeed48" core_version: ~ display_name: "Hydra Castle Labyrinth (hcl)" cores: [hcl] systems: [] verification: existence notes: | Open-source port of E. Hashimoto's 2008 Japanese freeware Metroidvania Hydra Castle Labyrinth. ptitSeb's SDL/SDL2/SDL3 fork is used by batocera (the package batocera/ports/hcl pins HCL_VERSION to this commit). The SDL builds open every data file from a relative "data/" prefix hard-coded in the sources: - src/qda.c:19, strcpy(fullPath, "data/") before the archive name - src/sdl2/graphics.c:223, fopen("data/bmp.qda", "rb") - src/text.c:79, "data/" before en.dat or jp.dat - src/game.c:1195 and src/game.c:1290, "data/map/" and "data/obj/" - src/sdl2/audio.c:30 and src/sdl2/audio.c:40, "data/" before the music and sound names - src/game.h:184, savename macro = "data/save.tmp" Save files are rewritten in that same relative data/ tree, so the game must be launched from a working directory that contains data/. Paths below are written under hcl/, which stands for that working directory. The data/ tree is shipped in the source repository. files: - name: "bmp.qda" path: "hcl/data/bmp.qda" category: game_data description: "Packed graphics (QDA archive of all bitmaps)" required: true bundled: true source_ref: "src/qda.c:19-28, src/sdl2/graphics.c:223" - name: "en.dat" path: "hcl/data/en.dat" category: game_data description: "English localization" required: true bundled: true source_ref: "src/text.c:79-93" - name: "jp.dat" path: "hcl/data/jp.dat" category: game_data description: "Japanese localization" required: true bundled: true source_ref: "src/text.c:79-93" - name: "map/" type: directory path: "hcl/data/map/" category: game_data description: "Room tile maps, .map and the background layer a.map" required: true bundled: true source_ref: "src/game.c:1195-1209" - name: "obj/" type: directory path: "hcl/data/obj/" category: game_data description: "Per-room object definitions, .dat" required: true bundled: true source_ref: "src/game.c:1290-1306" - name: "midi/" type: directory path: "hcl/data/midi/" category: game_data description: "Music, each track as .mid and .ogg" required: false bundled: true source_ref: "src/sdl2/audio.c:25-34, src/game.c:48-56, src/game.c:473-474" note: > PHL_LoadMusic appends .ogg or .mid according to the music type option. A track that fails to load is not played. - name: "wav/" type: directory path: "hcl/data/wav/" category: game_data description: "Sound effect samples" required: false bundled: true source_ref: "src/sdl2/audio.c:37-42, src/game.c:428-470"