emulator: Julius type: standalone core_classification: game_engine source: "https://github.com/bvschaik/julius" upstream: "https://github.com/bvschaik/julius" profiled_date: "2026-10-17" source_commit: "33c777019b2640b847b73815c3b4344cf7bd9576" core_version: "1.7.0" display_name: "Caesar III (Julius)" cores: - "julius" systems: - "caesar3" notes: | Open-source reimplementation of Impressions Games' Caesar III engine. It reads every graphic, text, sound and scenario from an installed copy of the game. Nothing is bundled. The data directory is the command-line argument. pre_init() makes it the base path and runs game_pre_init(). A missing directory shows "Julius requires the original files from Caesar 3" and exits (ref: src/platform/julius.c:488-501, 580-586). File lookups are case-corrected inside that directory. Startup loads, in order, the text and message files c3.eng and c3_mm.eng (c3.rus and c3_mm.rus as the alternative pair) (ref: src/game/game.c:48-63, src/core/lang.c:141-165), the central climate graphics c3.sg2 and c3.555, the barbarian enemy graphics goths.sg2 and goths.555, and c3_model.txt (ref: src/game/game.c:79-104). Any of them missing aborts init. The_empire.555 is loaded with the climate graphics. A wrong size is logged and the game continues (ref: src/core/image.c:283-293, 323). The other climates, enemies, sounds, videos and scenario maps are opened from the same directory on demand. Recalbox lists Caesar III under roms/ports/Caesar3 with c3.exe as the entry and patches config and save paths into /recalbox/share. files: - name: "caesar3/" type: directory path: "caesar3/" system: "caesar3" category: game_data required: true description: "Caesar III install directory" source_ref: "src/platform/julius.c:488-501" note: "Given on the command line. Every game file is opened by name inside it." - name: "c3.eng" path: "caesar3/c3.eng" system: "caesar3" category: game_data required: true description: "Caesar III interface text" source_ref: "src/core/lang.c:23, 74-80, 141-165" note: "Rejected when outside MIN_TEXT_SIZE..MAX_TEXT_SIZE. c3.rus replaces it on a Russian install." - name: "c3_mm.eng" path: "caesar3/c3_mm.eng" system: "caesar3" category: game_data required: true description: "Caesar III message text" source_ref: "src/core/lang.c:24, 129-150, 160-165" note: "Loaded as a pair with c3.eng, and c3_mm.rus replaces it on a Russian install." - name: "c3.sg2" path: "caesar3/c3.sg2" system: "caesar3" category: game_data required: true description: "Main graphics index, central climate" source_ref: "src/core/image.c:48-52, 295-306, src/game/game.c:83-86" - name: "c3.555" path: "caesar3/c3.555" system: "caesar3" category: game_data required: true description: "Main graphics bitmaps, central climate" source_ref: "src/core/image.c:53-57, 314-317, src/game/game.c:83-86" - name: "goths.sg2" path: "caesar3/goths.sg2" system: "caesar3" category: game_data required: true description: "Barbarian enemy graphics index" source_ref: "src/core/image.c:79, 667-675, src/game/game.c:87-90" - name: "goths.555" path: "caesar3/goths.555" system: "caesar3" category: game_data required: true description: "Barbarian enemy graphics bitmaps" source_ref: "src/core/image.c:101, 681-684, src/game/game.c:87-90" - name: "c3_model.txt" path: "caesar3/c3_model.txt" system: "caesar3" category: game_data required: true description: "Building cost and desirability model" source_ref: "src/building/model.c:83-88, src/game/game.c:101-104" - name: "The_empire.555" path: "caesar3/The_empire.555" system: "caesar3" category: game_data required: false description: "Empire map bitmap" source_ref: "src/core/image.c:68, 283-293" note: "A short read is logged and the empire map stays blank."