Files
libretro/emulators/cdogs.yml
T

240 lines
7.9 KiB
YAML

emulator: C-Dogs SDL
type: standalone
core_classification: game_engine
source: "https://github.com/cxong/cdogs-sdl"
upstream: "https://github.com/cxong/cdogs-sdl"
profiled_date: "2026-10-04"
source_commit: "57782a74ae245d868487094d201d0e56e94a9390"
core_version: "2.4.0"
display_name: "C-Dogs"
cores: [cdogs, cdogs-sdl]
systems: []
verification: existence
notes: |
Top-down shooter engine, open-source remake of the DOS C-Dogs by Ronny Wester.
The repository ships every asset the engine reads: data/, graphics/,
missions/, dogfights/, music/, sounds/ and doc/.
The data root is baked into the binary through -DCDOGS_DATA_DIR. The
source default is "../" ("./" on GCW0), CMakeLists.txt:141-147; Batocera
sets it to /userdata/roms/cdogs/. GetDataFilePath(), src/cdogs/utils.c:392,
returns an absolute request as it is, and otherwise joins CDOGS_DATA_DIR
(under the working directory when it is relative) with the requested path.
Paths below are written under cdogs/, which stands for that data root.
What the engine reads there:
data/: the JSON class definitions and name lists loaded by main(),
src/cdogs.c:226-245, and the two controller databases,
src/cdogs/joystick.c:43-54
data/.wolf3d/: campaign templates used when a Wolfenstein 3D, Spear of
Destiny or Super 3D Noah's Ark installation is found,
src/cdogs/map_wolf.c:50
graphics/: every .png, walked by PicManagerLoad,
src/cdogs/pic_manager.c:247-254, plus the font and the window icon
missions/ and dogfights/: campaigns, src/cdogs/campaigns.c:203-211
music/: six track directories, src/cdogs/music.c:45-50
sounds/: samples, src/cdogs.c:213
doc/CREDITS: src/credits.c:47
files:
- name: "ammo.json"
path: "cdogs/data/ammo.json"
category: game_data
description: "Ammo type definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:228, src/cdogs/ammo.c:77-84"
- name: "bullets.json"
path: "cdogs/data/bullets.json"
category: game_data
description: "Bullet behaviour definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:230-232, src/cdogs/weapon_class.c:739-746"
- name: "guns.json"
path: "cdogs/data/guns.json"
category: game_data
description: "Weapon definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:230-232, src/cdogs/weapon_class.c:757-763"
- name: "character_classes.json"
path: "cdogs/data/character_classes.json"
category: game_data
description: "Character class definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:234-235, src/cdogs/character_class.c:353-360"
- name: "map_objects.json"
path: "cdogs/data/map_objects.json"
category: game_data
description: "Interactive map object definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:244-245, src/cdogs/map_object.c:231-238"
- name: "particles.json"
path: "cdogs/data/particles.json"
category: game_data
description: "Particle effect definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:226, src/cdogs/particle.c:61-64"
- name: "pickups.json"
path: "cdogs/data/pickups.json"
category: game_data
description: "Pickup item definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:241-242, src/cdogs/pickup_class.c:246-252"
- name: "prefixes.txt"
path: "cdogs/data/prefixes.txt"
category: game_data
description: "Random name generation prefixes"
required: true
bundled: true
source_ref: "src/prep.c:324-327, src/namegen.c:44-59"
note: "LoadFile reads the stream without checking that fopen succeeded."
- name: "suffixes.txt"
path: "cdogs/data/suffixes.txt"
category: game_data
description: "Random name generation suffixes"
required: true
bundled: true
source_ref: "src/prep.c:325-327, src/namegen.c:44-59"
note: "LoadFile reads the stream without checking that fopen succeeded."
- name: "suffixnames.txt"
path: "cdogs/data/suffixnames.txt"
category: game_data
description: "Random name generation name suffixes"
required: true
bundled: true
source_ref: "src/prep.c:326-327, src/namegen.c:44-59"
note: "LoadFile reads the stream without checking that fopen succeeded."
- name: "gamecontrollerdb.txt"
path: "cdogs/data/gamecontrollerdb.txt"
category: game_data
description: "SDL gamecontroller mapping database"
required: false
bundled: true
source_ref: "src/cdogs/joystick.c:43-48"
note: "A load failure is logged and the built-in SDL mappings stay in use."
- name: "gamecontrollerbuttondb.txt"
path: "cdogs/data/gamecontrollerbuttondb.txt"
category: game_data
description: "Controller button names and colours"
required: false
bundled: true
source_ref: "src/cdogs/joystick.c:49-54"
note: "A load failure is logged."
- name: ".wolf3d/"
type: directory
path: "cdogs/data/.wolf3d/"
category: game_data
description: "Campaign templates for Wolfenstein 3D, Spear of Destiny and Super 3D Noah's Ark"
required: false
bundled: true
source_ref: "src/cdogs/map_wolf.c:50, src/cdogs/map_wolf.c:110-134, src/cdogs/map_wolf.c:781-793"
note: >
Read only when the game data of one of these titles is found in a
Steam or GOG installation.
- name: "graphics/"
type: directory
path: "cdogs/graphics/"
category: game_data
description: "Sprites, tiles, HUD and character body definitions"
required: true
bundled: true
source_ref: "src/cdogs.c:189, src/cdogs/pic_manager.c:181-254, src/cdogs/draw/char_sprites.c:55-115"
note: >
PicManagerLoad walks the directory and loads every .png.
CharSpriteClassesLoadDir reads data.json from each directory of
graphics/chars/bodies/.
- name: "font.png"
path: "cdogs/graphics/font.png"
category: game_data
description: "Main bitmap font"
required: true
bundled: true
source_ref: "src/cdogs.c:186, src/cdogs/grafx.c:156, src/cdogs/font.c:54-60"
- name: "font.json"
path: "cdogs/graphics/font.json"
category: game_data
description: "Main bitmap font layout"
required: true
bundled: true
source_ref: "src/cdogs.c:186, src/cdogs/grafx.c:156, src/cdogs/font_utils.c:35-41"
- name: "cdogs_icon.bmp"
path: "cdogs/graphics/cdogs_icon.bmp"
category: game_data
description: "Window icon"
required: false
bundled: true
source_ref: "src/cdogs/grafx.c:92-93"
- name: "missions/"
type: directory
path: "cdogs/missions/"
category: game_data
description: "Campaigns"
required: false
bundled: true
source_ref: "src/cdogs/sys_config.h.cmake:38, src/cdogs/campaigns.c:203-206, src/cdogs/campaigns.c:257-298"
note: >
Every entry of the directory is tried as a campaign and subdirectories
are walked. Quick play needs none.
- name: "dogfights/"
type: directory
path: "cdogs/dogfights/"
category: game_data
description: "Dogfight arenas"
required: false
bundled: true
source_ref: "src/cdogs/sys_config.h.cmake:39, src/cdogs/campaigns.c:208-211"
- name: "music/"
type: directory
path: "cdogs/music/"
category: game_data
description: "Music tracks: menu, briefing, game, end, lose, victory"
required: false
bundled: true
source_ref: "src/cdogs/music.c:45-50, src/cdogs/music.c:52-64"
note: "Every file of each of the six directories is loaded as a track."
- name: "sounds/"
type: directory
path: "cdogs/sounds/"
category: game_data
description: "Sound effects"
required: false
bundled: true
source_ref: "src/cdogs.c:213, src/cdogs/sounds.c:187-198, src/cdogs/sounds.c:199-244"
note: "SoundLoadDir walks the directory and loads every .ogg, .wav and .mp3."
- name: "CREDITS"
path: "cdogs/doc/CREDITS"
category: game_data
description: "Credits shown in the main menu"
required: false
bundled: true
source_ref: "src/credits.c:47-53"