C-Dogs SDL - RetroBIOS¶
Technical 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
22 files | 13 required, 9 optional | 21 in repo, 1 missing Categories: 22 game data
ammo.json required in repo game_data bundled
Ammo type definitions
- Path:
cdogs/data/ammo.json - Source:
src/cdogs.c:228,src/cdogs/ammo.c:77-84
bullets.json required in repo game_data bundled
Bullet behaviour definitions
- Path:
cdogs/data/bullets.json - Source:
src/cdogs.c:230-232,src/cdogs/weapon_class.c:739-746
guns.json required in repo game_data bundled
Weapon definitions
- Path:
cdogs/data/guns.json - Source:
src/cdogs.c:230-232,src/cdogs/weapon_class.c:757-763
character_classes.json required in repo game_data bundled
Character class definitions
- Path:
cdogs/data/character_classes.json - Source:
src/cdogs.c:234-235,src/cdogs/character_class.c:353-360
map_objects.json required in repo game_data bundled
Interactive map object definitions
- Path:
cdogs/data/map_objects.json - Source:
src/cdogs.c:244-245,src/cdogs/map_object.c:231-238
particles.json required in repo game_data bundled
Particle effect definitions
- Path:
cdogs/data/particles.json - Source:
src/cdogs.c:226,src/cdogs/particle.c:61-64
pickups.json required in repo game_data bundled
Pickup item definitions
- Path:
cdogs/data/pickups.json - Source:
src/cdogs.c:241-242,src/cdogs/pickup_class.c:246-252
prefixes.txt required in repo game_data bundled
Random name generation prefixes
- Path:
cdogs/data/prefixes.txt - Source:
src/prep.c:324-327,src/namegen.c:44-59 - LoadFile reads the stream without checking that fopen succeeded.
suffixes.txt required in repo game_data bundled
Random name generation suffixes
- Path:
cdogs/data/suffixes.txt - Source:
src/prep.c:325-327,src/namegen.c:44-59 - LoadFile reads the stream without checking that fopen succeeded.
suffixnames.txt required in repo game_data bundled
Random name generation name suffixes
- Path:
cdogs/data/suffixnames.txt - Source:
src/prep.c:326-327,src/namegen.c:44-59 - LoadFile reads the stream without checking that fopen succeeded.
gamecontrollerdb.txt optional in repo game_data bundled
SDL gamecontroller mapping database
- Path:
cdogs/data/gamecontrollerdb.txt - Source:
src/cdogs/joystick.c:43-48 - A load failure is logged and the built-in SDL mappings stay in use.
gamecontrollerbuttondb.txt optional in repo game_data bundled
Controller button names and colours
- Path:
cdogs/data/gamecontrollerbuttondb.txt - Source:
src/cdogs/joystick.c:49-54 - A load failure is logged.
.wolf3d/ optional missing game_data bundled directory
Campaign templates for Wolfenstein 3D, Spear of Destiny and Super 3D Noah's Ark
- Path:
cdogs/data/.wolf3d/ - Source:
src/cdogs/map_wolf.c:50,src/cdogs/map_wolf.c:110-134,src/cdogs/map_wolf.c:781-793 - Read only when the game data of one of these titles is found in a Steam or GOG installation.
graphics/ required in repo game_data bundled directory
Sprites, tiles, HUD and character body definitions
- Path:
cdogs/graphics/ - Source:
src/cdogs.c:189,src/cdogs/pic_manager.c:181-254,src/cdogs/draw/char_sprites.c:55-115 - PicManagerLoad walks the directory and loads every .png. CharSpriteClassesLoadDir reads data.json from each directory of graphics/chars/bodies/.
font.png required in repo game_data bundled
Main bitmap font
- Path:
cdogs/graphics/font.png - Source:
src/cdogs.c:186,src/cdogs/grafx.c:156,src/cdogs/font.c:54-60
font.json required in repo game_data bundled
Main bitmap font layout
- Path:
cdogs/graphics/font.json - Source:
src/cdogs.c:186,src/cdogs/grafx.c:156,src/cdogs/font_utils.c:35-41
cdogs_icon.bmp optional in repo game_data bundled
Window icon
- Path:
cdogs/graphics/cdogs_icon.bmp - Source:
src/cdogs/grafx.c:92-93
missions/ optional in repo game_data bundled directory
Campaigns
- Path:
cdogs/missions/ - Source:
src/cdogs/sys_config.h.cmake:38,src/cdogs/campaigns.c:203-206,src/cdogs/campaigns.c:257-298 - Every entry of the directory is tried as a campaign and subdirectories are walked. Quick play needs none.
dogfights/ optional in repo game_data bundled directory
Dogfight arenas
- Path:
cdogs/dogfights/ - Source:
src/cdogs/sys_config.h.cmake:39,src/cdogs/campaigns.c:208-211
music/ optional in repo game_data bundled directory
Music tracks: menu, briefing, game, end, lose, victory
- Path:
cdogs/music/ - Source:
src/cdogs/music.c:45-50,src/cdogs/music.c:52-64 - Every file of each of the six directories is loaded as a track.
sounds/ optional in repo game_data bundled directory
Sound effects
- Path:
cdogs/sounds/ - Source:
src/cdogs.c:213,src/cdogs/sounds.c:187-198,src/cdogs/sounds.c:199-244 - SoundLoadDir walks the directory and loads every .ogg, .wav and .mp3.
CREDITS optional in repo game_data bundled
Credits shown in the main menu
- Path:
cdogs/doc/CREDITS - Source:
src/credits.c:47-53
Generated on 2026-10-10T11:26:01Z