Files

97 lines
3.0 KiB
YAML

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, <nnn>.map and the background layer <nnn>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, <nnn>.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"