mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 05:53:23 -05:00
392 lines
15 KiB
YAML
392 lines
15 KiB
YAML
emulator: Jazz² Resurrection
|
|
type: standalone + libretro
|
|
core_classification: game_engine
|
|
source: "https://github.com/deathkiller/jazz2-native"
|
|
upstream: "https://github.com/deathkiller/jazz2-native"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "1e20466795d5074570fb057b41f56baefd24c629"
|
|
core_version: "3.8.0"
|
|
display_name: "Jazz Jackrabbit 2 (Jazz² Resurrection)"
|
|
cores: [jazz2]
|
|
systems: [jazz-jackrabbit-2]
|
|
|
|
notes: |
|
|
Open-source reimplementation of Jazz Jackrabbit 2 by Dan R. The engine
|
|
ships its own Content/ tree (animations, metadata, translations) that
|
|
sits next to the executable in a portable copy, or under
|
|
<prefix>/share/<package>/ once installed.
|
|
ref: Sources/Jazz2/ContentResolver.cpp:191-243 (GetContentPath per
|
|
platform), Sources/Jazz2/ContentResolver.cpp:415-491 (Unix layouts)
|
|
|
|
Original Jazz Jackrabbit 2 data is read from Source/ and converted
|
|
on first launch into the engine's own formats under Cache/: Anims.j2a
|
|
and Data.j2d into a package, then every .j2e, .j2l and the tilesets
|
|
the levels name. Music and cinematics are read from Source/ as they
|
|
are.
|
|
ref: Sources/Jazz2/ContentResolver.cpp:285-314 (GetSourcePath),
|
|
Sources/Main.cpp:2226-2290 (RefreshCache),
|
|
Sources/Jazz2/Compatibility/AssetConverter.cpp:152-168,
|
|
Sources/Jazz2/Compatibility/AssetConverter.cpp:400-520
|
|
|
|
Content/ is the engine runtime, shipped with the release package.
|
|
Source/ holds the user's own copy of the 1998 game data. Without
|
|
Anims.j2a (or the shareware AnimsSw.j2a) and without an existing
|
|
cache the engine starts but is not playable.
|
|
|
|
The libretro build looks for Content/ next to the loaded file, in the
|
|
core assets directory or in <system>/jazz2/, and for the original
|
|
files in Source/ beside it, in the system directory itself or in
|
|
<system>/jazz2/Source/.
|
|
ref: Sources/Main.cpp:267-355
|
|
|
|
files:
|
|
# ================================================================
|
|
# Content/ (bundled runtime data, shipped with each release)
|
|
# ================================================================
|
|
|
|
- name: "Animations/"
|
|
type: directory
|
|
category: game_data
|
|
path: "jazz2/Content/Animations/"
|
|
standalone_path: "Content/Animations/"
|
|
bundled: true
|
|
required: true
|
|
source_ref: "Sources/Jazz2/ContentResolver.cpp:1164, 1294, 2837-2838"
|
|
note: "Native graphics, sounds and the UI fonts, opened through OpenContentFile."
|
|
|
|
- name: "Metadata/"
|
|
type: directory
|
|
category: game_data
|
|
path: "jazz2/Content/Metadata/"
|
|
standalone_path: "Content/Metadata/"
|
|
bundled: true
|
|
required: true
|
|
source_ref: "Sources/Jazz2/ContentResolver.cpp:910"
|
|
note: "Actor .res descriptors (Common, Enemy, Player, UI, Boss, ...)."
|
|
|
|
- name: "Translations/"
|
|
type: directory
|
|
category: game_data
|
|
path: "jazz2/Content/Translations/"
|
|
standalone_path: "Content/Translations/"
|
|
bundled: true
|
|
required: false
|
|
source_ref: "Sources/Main.cpp:2021-2027, Sources/Jazz2/UI/Menu/LanguageSelectSection.cpp:82-88"
|
|
note: "Language .mo bundles, searched in Cache/Translations/ first. Built-in English is used when none is loaded."
|
|
|
|
# ================================================================
|
|
# Source/ (original Jazz Jackrabbit 2 data, user-supplied)
|
|
# Converted into Cache/ on first launch.
|
|
# ================================================================
|
|
|
|
- name: "Anims.j2a"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/Anims.j2a"
|
|
standalone_path: "Source/Anims.j2a"
|
|
required: true
|
|
source_ref: "Sources/Main.cpp:2226-2242, Sources/Jazz2/Compatibility/AssetConverter.cpp:156-159"
|
|
note: "Main animation archive. The cache cannot be created without it and the game is not flagged playable."
|
|
|
|
- name: "AnimsSw.j2a"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/AnimsSw.j2a"
|
|
standalone_path: "Source/AnimsSw.j2a"
|
|
required: false
|
|
source_ref: "Sources/Main.cpp:2229-2231"
|
|
note: "Animation archive of the shareware demo, read when Anims.j2a is absent."
|
|
|
|
- name: "Data.j2d"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/Data.j2d"
|
|
standalone_path: "Source/Data.j2d"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:161-164"
|
|
note: "Converted into the cache package when present."
|
|
|
|
# Episode descriptors (.j2e) and level files (.j2l) are optional per
|
|
# episode. Every one present in Source/ is converted.
|
|
# ref: Sources/Jazz2/Compatibility/AssetConverter.cpp:400-520
|
|
|
|
- name: "prince.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/prince.j2e"
|
|
standalone_path: "Source/prince.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:184-191, 310-312, 407-436"
|
|
note: "First episode of the chain prince, rescue, flash, monk."
|
|
|
|
- name: "rescue.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/rescue.j2e"
|
|
standalone_path: "Source/rescue.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:193-199, 313-314, 407-436"
|
|
note: "Second episode of the chain."
|
|
|
|
- name: "flash.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/flash.j2e"
|
|
standalone_path: "Source/flash.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:201-208, 315-316, 407-436"
|
|
note: "Third episode of the chain."
|
|
|
|
- name: "monk.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/monk.j2e"
|
|
standalone_path: "Source/monk.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:210-215, 317-318, 407-436"
|
|
note: "Fourth episode of the chain."
|
|
|
|
- name: "share.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/share.j2e"
|
|
standalone_path: "Source/share.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:217-219, 290-291, 407-436"
|
|
note: "Shareware Demo episode."
|
|
|
|
- name: "xmas98.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/xmas98.j2e"
|
|
standalone_path: "Source/xmas98.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:292-293, 412, 420-421, 434"
|
|
note: "Holiday Hare '98. Stored under the name xmas99 and skipped when xmas99.j2e is present."
|
|
|
|
- name: "xmas99.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/xmas99.j2e"
|
|
standalone_path: "Source/xmas99.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:182, 221-223, 294-295"
|
|
note: "The Christmas Chronicles."
|
|
|
|
- name: "secretf.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/secretf.j2e"
|
|
standalone_path: "Source/secretf.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:225-233, 296-297, 407-436"
|
|
note: "The Secret Files episode."
|
|
|
|
- name: "home.j2e"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/home.j2e"
|
|
standalone_path: "Source/home.j2e"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:423-429"
|
|
note: "Entry that lists custom levels."
|
|
|
|
# Levels of the Shareware Demo. Every .j2l present in Source/ is
|
|
# converted, whatever its name.
|
|
# ref: Sources/Jazz2/Compatibility/AssetConverter.cpp:437-516
|
|
|
|
- name: "share1.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/share1.j2l"
|
|
standalone_path: "Source/share1.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:217, 437-499"
|
|
note: "First level of share.j2e, stored as share/01_share1. Its exit names share2."
|
|
|
|
- name: "share2.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/share2.j2l"
|
|
standalone_path: "Source/share2.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:218, 437-499"
|
|
note: "Second level of the Shareware Demo episode. Its exit names share3."
|
|
|
|
- name: "share3.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/share3.j2l"
|
|
standalone_path: "Source/share3.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:219, 437-499"
|
|
note: "Third level of the Shareware Demo episode. Its exit ends the episode."
|
|
|
|
- name: "sharectf.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/sharectf.j2l"
|
|
standalone_path: "Source/sharectf.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:54, 437-499"
|
|
note: "Capture the flag level of the Shareware Demo, stored under unknown/."
|
|
|
|
- name: "sharect2.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/sharect2.j2l"
|
|
standalone_path: "Source/sharect2.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:54, 437-499"
|
|
note: "Capture the flag level of the Shareware Demo, stored under unknown/."
|
|
|
|
- name: "sharetrs.j2l"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/sharetrs.j2l"
|
|
standalone_path: "Source/sharetrs.j2l"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/AssetConverter.cpp:54, 437-499"
|
|
note: "Treasure hunt level of the Shareware Demo, stored under unknown/."
|
|
|
|
# Tilesets. Only those a converted level names are converted. The name
|
|
# is read from the level, lowercased and looked up in Source/ without
|
|
# regard to case.
|
|
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775,
|
|
# Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600
|
|
|
|
- name: "labrat1n.j2t"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/labrat1n.j2t"
|
|
standalone_path: "Source/labrat1n.j2t"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
|
note: "Tileset named by share1.j2l, sharect2.j2l and sharetrs.j2l."
|
|
|
|
- name: "psych2.j2t"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/psych2.j2t"
|
|
standalone_path: "Source/psych2.j2t"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
|
note: "Tileset named by share2.j2l."
|
|
|
|
- name: "diam2.j2t"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/diam2.j2t"
|
|
standalone_path: "Source/diam2.j2t"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:124, 772-775, Sources/Jazz2/Compatibility/AssetConverter.cpp:492, 579-600"
|
|
note: "Tileset named by share3.j2l and sharectf.j2l."
|
|
|
|
# Music, read from Content/Music/ then from Source/
|
|
# ref: Sources/Jazz2/ContentResolver.cpp:2784-2794
|
|
|
|
- name: "menu.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/menu.j2b"
|
|
standalone_path: "Source/menu.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:509-511, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
|
note: "Main menu music."
|
|
|
|
- name: "bonus2.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/bonus2.j2b"
|
|
standalone_path: "Source/bonus2.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
|
note: "Menu music of the reforged main menu, picked at random with bonus3.j2b."
|
|
|
|
- name: "bonus3.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/bonus3.j2b"
|
|
standalone_path: "Source/bonus3.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Menu/MainMenu.cpp:503-504, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
|
note: "Menu music of the reforged main menu, picked at random with bonus2.j2b."
|
|
|
|
- name: "intro.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/intro.j2b"
|
|
standalone_path: "Source/intro.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:558, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
|
note: "Music of the intro cinematic."
|
|
|
|
- name: "ending.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/ending.j2b"
|
|
standalone_path: "Source/ending.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:255, Sources/Main.cpp:964, Sources/Jazz2/Compatibility/AssetConverter.cpp:539-542"
|
|
note: "Music of the ending cinematic."
|
|
|
|
# Level music. The name is read from the level, lowercased and given
|
|
# the .j2b extension when it has none.
|
|
# ref: Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789
|
|
|
|
- name: "labrat.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/labrat.j2b"
|
|
standalone_path: "Source/labrat.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
|
note: "Music named by share1.j2l, sharect2.j2l and sharetrs.j2l."
|
|
|
|
- name: "funkyg.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/funkyg.j2b"
|
|
standalone_path: "Source/funkyg.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
|
note: "Music named by share2.j2l."
|
|
|
|
- name: "diamond.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/diamond.j2b"
|
|
standalone_path: "Source/diamond.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/JJ2Level.cpp:128, 784-789, Sources/Jazz2/LevelHandler.cpp:629-635, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
|
note: "Music named by share3.j2l and sharectf.j2l."
|
|
|
|
- name: "boss2.j2b"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/boss2.j2b"
|
|
standalone_path: "Source/boss2.j2b"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/Compatibility/EventConverter.cpp:360-370, Sources/Jazz2/Compatibility/AssetConverter.cpp:505-508, Sources/Jazz2/LevelHandler.cpp:1397-1400, Sources/Jazz2/ContentResolver.cpp:2784-2788"
|
|
note: "Boss music. The boss activation event carries a music index that is converted to boss1.j2b or boss2.j2b and recorded as music the level uses; share3.j2l carries index 1."
|
|
|
|
# Cinematics, read from Content/Cinematics/ then from Source/
|
|
|
|
- name: "intro.j2v"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/intro.j2v"
|
|
standalone_path: "Source/intro.j2v"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:267-281, Sources/Main.cpp:558"
|
|
note: "Intro cinematic. Skipped when absent."
|
|
|
|
- name: "ending.j2v"
|
|
category: game_data
|
|
system: jazz-jackrabbit-2
|
|
path: "jazz2/Source/ending.j2v"
|
|
standalone_path: "Source/ending.j2v"
|
|
required: false
|
|
source_ref: "Sources/Jazz2/UI/Cinematics.cpp:267-281, Sources/Main.cpp:964"
|
|
note: "Ending cinematic. Skipped when absent."
|