mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 10:23:16 -05:00
100 emulator names the two platforms run had no profile, so their packs carried nothing for them. Each was read from the platform's own launcher or scriptmodule: the same program as an existing profile takes the name in cores:, a different build gets its own profile read from that version, a launcher or self-contained game goes to remove_cores, and the rest are new profiles written from their source or shipped binary. The files they need that the collection lacked are collected from the upstream distributions. Bungie and splitwolf trees are read by path and stay out of dedup.
84 lines
4.1 KiB
YAML
84 lines
4.1 KiB
YAML
emulator: Basilisk II
|
|
type: standalone
|
|
source: "https://github.com/cebix/macemu"
|
|
upstream: "https://github.com/cebix/macemu"
|
|
profiled_date: "2026-08-08"
|
|
source_commit: "96e512bd6376e78a2869f16dcc8a9028bce5ee72"
|
|
core_version: "1.0"
|
|
display_name: "Apple - Macintosh 68k (Basilisk II)"
|
|
cores:
|
|
- basiliskii
|
|
- basilisk
|
|
systems:
|
|
- apple-macintosh
|
|
- macintosh-ii
|
|
mode: standalone
|
|
|
|
notes: |
|
|
68k Macintosh emulator living in the macemu tree alongside SheepShaver.
|
|
Emulates a Mac Classic or a Mac II series machine depending on the ROM
|
|
supplied. Default model ID is 5 (Mac IIci) on a 68030
|
|
(prefs_items.cpp:88-89).
|
|
|
|
ROM loading (main_unix.cpp:681-702, main_windows.cpp:367,
|
|
main_macosx.mm:431): the path comes from the "rom" prefs item
|
|
(prefs_items.cpp:51) and falls back to a file named ROM in the working
|
|
directory (main_unix.cpp:109). A missing or unreadable file raises
|
|
STR_NO_ROM_FILE_ERR and calls QuitEmulator.
|
|
|
|
Two gates run on the image. main_unix.cpp:692 accepts only sizes of 64K,
|
|
128K, 256K, 512K or 1024K. CheckROM (rom_patches.cpp:830-842), called from
|
|
InitAll at main.cpp:67, then reads the version word at ROM offset 8 and
|
|
accepts 0x067c (32-bit clean Mac II, 512K/1MB) under real and direct
|
|
addressing, adding 0x0276 (SE/Classic, 256K/512K) under banks addressing.
|
|
configure.ac:61-68,1440-1477 defaults --enable-addressing to fastest,
|
|
which resolves to real or direct, so a stock build takes 32-bit clean ROMs
|
|
only. 0x0000 (Mac 128K), 0x0075 (Mac Plus) and 0x0178 (non 32-bit clean
|
|
Mac II) are refused by every addressing mode. PatchROM
|
|
(rom_patches.cpp:1834-1852) then rewrites the image in memory, injecting
|
|
replacement .Sony, .Disk, .AppleCD and serial drivers. Nothing is
|
|
checksummed: print_rom_info (rom_patches.cpp:298-310) prints the ROM header
|
|
checksum without comparing it against anything.
|
|
|
|
Mac OS itself and the games live in disk images referenced by the disk,
|
|
floppy and cdrom prefs items, supplied by the user.
|
|
|
|
Four files are installed by the emulator's own Makefile into
|
|
$(datadir)/BasiliskII (Makefile.in:25,155-157) and read from there:
|
|
keycodes X keycode to Mac keycode table, read only when the
|
|
keycodes prefs item is true, which defaults to false
|
|
(prefs_unix.cpp:119). Overridable with keycodefile.
|
|
video_sdl2.cpp:94-97,1231, video_x.cpp:1492
|
|
BasiliskII_keycodes tried when keycodes is absent (video_sdl2.cpp:98,
|
|
1232), shipped in src/MacOSX/
|
|
fbdevices frame buffer device table, read by the X11 backend
|
|
built with --enable-fbdev-dga. Overridable with
|
|
fbdevicefile. video_x.cpp:1152,1186
|
|
tunconfig script run to configure the tunN interface for
|
|
ethernet. Overridable with etherconfig.
|
|
ether_unix.cpp:108,381
|
|
|
|
The preferences file (.basilisk_ii_prefs, prefs_unix.cpp:50) and the PRAM
|
|
file (.basilisk_ii_xpram on Unix, BasiliskII_xpram.dat on Windows,
|
|
xpram_unix.cpp:32, xpram_windows.cpp:33) are written by the emulator when
|
|
absent.
|
|
|
|
files:
|
|
- name: ROM
|
|
aliases: [mac.rom]
|
|
required: true
|
|
min_size: 524288
|
|
max_size: 1048576
|
|
validation: [size]
|
|
description: "Macintosh ROM image, 512 KB SE/Classic or 512 KB / 1 MB 32-bit clean Mac II"
|
|
source_ref: "BasiliskII/src/Unix/main_unix.cpp:109,685,692, BasiliskII/src/rom_patches.cpp:830-842, BasiliskII/src/main.cpp:67,190, BasiliskII/src/rom_patches.cpp:1187-1832"
|
|
note: >-
|
|
Opened under the name the rom prefs item gives, ROM when it is unset.
|
|
The code accepts 64 KB to 1 MB, and the 512 KB floor here is the
|
|
smallest image with a version word CheckROM takes on a stock build. The
|
|
version word is not the last gate. patch_rom_32 searches the image for
|
|
the code it patches (UniversalInfo, InitMMU, ClkNoMem, the SCC and VIA2
|
|
setup, the interrupt enables, the PACK 4 resource) and returns false
|
|
when one is missing, which InitAll at main.cpp:190 turns into a failed
|
|
start. No hash is involved in either gate.
|