fix: profile stella from stella-emu/stella

The buildbot builds the stella core from stella-emu/stella master
(src/os/libretro), not from stella2014 code, and stella2023 claimed the
stella name. stella.yml now documents that tree at 2c3d7023: the KidVid
tapes are read from a stella folder under the save directory, loose or
in KidVidAudio.zip, and played. stella2023 keeps its own name only.
This commit is contained in:
Abdessamad Derraz committed 2026-10-21 10:02:32 +02:00
1 parent 0f45cbc97d
commit 99c9993c17
3 files changed
+84 -15

No files matched your search

+80 -11
View File
@@ -1,18 +1,87 @@
emulator: Stella
type: alias
alias_of: stella2014
source: "https://github.com/libretro/stella-libretro"
profiled_date: "2026-03-25"
core_version: "3.9.3"
type: standalone + libretro
core_classification: official_port
source: "https://github.com/stella-emu/stella"
profiled_date: "2026-10-21"
source_commit: "2c3d7023e9136f75c789803b44f119d8749dc104"
core_version: "8.0_pre"
display_name: "Atari - 2600 (Stella)"
cores:
- stella
systems:
- atari-2600
note: |
Identical codebase to stella2014-libretro. Both repos share the same HEAD
commit and produce a binary reporting library_name "Stella 2014". The
stella_libretro.info lists display_version "6.6", and the binary reports
3.9.3. See stella2014.yml for firmware requirements
and KidVid audio files.
notes: |
The libretro core is built from stella-emu/stella, the tree of the
standalone emulator, with its wrapper in src/os/libretro. The binary
reports library_name "Stella" (src/os/libretro/StellaLIBRETRO.hxx:59)
and the version of src/common/Version.hxx:35. The stella_libretro.info
lists display_version "6.6".
The Atari 2600 has no BIOS ROM: TIA, RIOT and 6507 CPU are emulated in
software. The SuperCharger (Starpath) BIOS is replaced by built-in code
(ourDummyROMCode in src/emucore/CartAR.cxx:635).
The libretro core reads the system directory (src/os/libretro/libretro.cxx:1716-1724)
but nothing reads the path it stores. Its base directory is a stella
folder under the save directory, or ./ without one
(src/os/libretro/OSystemLIBRETRO.hxx:71-79). The standalone base
directory is the configuration directory, $XDG_CONFIG_HOME/stella on
Linux and the application data folder on Windows
(src/os/unix/OSystemUNIX.cxx:79, src/os/windows/OSystemWINDOWS.cxx:32).
KidVid Voice Module tapes: the tape the game selects and KVSHARED.WAV are
looked up in KidVidAudio.zip in the base directory, then loose in the
base directory, and both must be present (src/emucore/KidVid.cxx:255-268).
The archive holds the same seven files listed below.
The libretro build compiles with SOUND_SUPPORT and ZIP_SUPPORT
(src/os/libretro/Makefile:599) and plays them (src/os/libretro/SoundLIBRETRO.hxx:127-133).
Without them the game runs on a timing-based fallback with a beep
(src/emucore/KidVid.cxx:343-348).
EEPROM save data for AtariVox and SaveKey peripherals is managed as
NVRAM, not user-supplied.
files:
- name: KVS1.WAV
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVS2.WAV
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVS3.WAV
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVB1.WAV
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVB2.WAV
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVB3.WAV
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:246-248, src/emucore/KidVid.cxx:255-268"
- name: KVSHARED.WAV
description: "KidVid Voice Module shared audio samples"
required: false
load_from: {libretro: save_dir, standalone: config_dir}
category: game_data
source_ref: "src/emucore/KidVid.cxx:255-268, src/emucore/KidVid.cxx:329-331"
-1
View File
@@ -9,7 +9,6 @@ core_version: "7.0_pre"
display_name: "Atari - 2600 (Stella 2023)"
cores:
- stella2023
- stella
systems:
- atari_2600
+4 -3
View File
@@ -3138,15 +3138,16 @@ class TheDatabaseCacheIsWrittenWhole(unittest.TestCase):
class KidVidTapesStayWithTheContent(unittest.TestCase):
"""Stella opens its KidVid tapes by bare name (stella2014, from the
working directory) or from its base directory (stella2023, the content
folder): never the system directory. Without load_from every Linux pack
put about 68 MB of WAVs at the BIOS root, in two cases."""
folder, and stella, a folder under the save directory): never the system
directory. Without load_from every Linux pack put about 68 MB of WAVs at
the BIOS root, in two cases."""
def test_no_pack_places_them_in_the_system_directory(self):
from scripts.common import load_emulator_profiles
from scripts.validation import outside_gap_scope
profiles = load_emulator_profiles(str(ROOT / "emulators"))
for name in ("stella2014", "stella2023"):
for name in ("stella", "stella2014", "stella2023"):
tapes = [f for f in profiles[name]["files"]
if f["name"].lower().endswith(".wav")]
with self.subTest(profile=name):