Files
libretro/emulators/xm7.yml
T
Abdessamad Derraz bb19a6d5cf feat: profile what RetroBat and RetroPie run
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.
2026-10-20 06:14:10 +02:00

154 lines
5.9 KiB
YAML

emulator: XM7
display_name: "Fujitsu - FM-7 (XM7/SDL)"
type: standalone
core_classification: other
source: "https://github.com/nakatamaho/XM7-for-SDL"
upstream: "http://retropc.net/ryu/xm7/"
profiled_date: "2026-10-20"
source_commit: "2a48dceaf8a3a0de92cf369b039ac5fab2bb351a"
core_version: "V3.4 L61a SDL/Agar 0.3.2pre2"
cores:
- xm7
systems:
- fm7
- fm77av
mode: standalone
notes: |
K.Ohta's SDL and Agar port of PI.'s XM7, an FM-7, FM-77 and FM77AV series
emulator. The CMake build sets XM7_VERSION 3 (linux-sdl/CMakeLists.txt:23,
linux-sdl/cmake/config_xm7.cmake:20), the FM77AV40EX/SX level, so every ROM
path below is the XM7_VER >= 3 branch. RetroPie builds this repository with
OpenGL and OpenCL off.
ROMs are read by file_load (linux-sdl/sdl/sdl_file.c:21-59), which prepends
ModuleDir and reads a fixed byte count. A file shorter than that count is
refused and anything past it is ignored. main sets ModuleDir to $HOME/.xm7/,
or ./.xm7/ when HOME is unset (linux-sdl/sdl/windows_main.cpp:79-94). No hash
or checksum of any ROM is computed.
system_init stops at the first device whose init returns FALSE
(linux-sdl/vm/system.c:124-127, 171, 203). MainLoop then sets error code 1
and shows "Error init VM. Please check ROMS and system-memory."
(linux-sdl/ui-agar/agar_main.cpp:166-168, 546-548), and no machine runs. A
ROM whose absence makes its init return FALSE is required below.
The three drive sound effects are read with SDL_LoadWAV from RSSDIR, which
defaults to SHAREDIR, /usr/local/share/xm7/ (linux-sdl/sdl/build_config.h:76-86,
linux-sdl/sdl/api_snd2.cpp:660). The name is appended to that directory
without a separator, and each name is tried in lower case, upper case,
capitalized and as written (linux-sdl/sdl/api_snd2.cpp:213-267). A missing
WAV leaves its slot silent. HEADUP.WAV and HEADDOWN.WAV are compiled out
(linux-sdl/sdl/api_snd2.cpp:160-163).
USERDIC.DAT is the FM77-211 learning RAM. It is filled with 0xFF when absent
and written back by the emulator (linux-sdl/vm/jcard.c:77-82), so it is not
listed. JSUBMON.ROM, SUBSYS_8.ROM, SUBSYSL4.ROM, ANKCG16.ROM, the FM-8 and
FM-7 boot ROMs and FBASIC10.ROM are only read when XM7_VER is 1.
files:
- name: FBASIC30.ROM
description: "F-BASIC V3.0 ROM"
required: true
min_size: 31744
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:240, linux-sdl/vm/mainmem.c:211-217"
- name: INITIATE.ROM
description: "FM77AV initiator ROM"
required: true
min_size: 8192
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:241, linux-sdl/vm/mainmem.c:225-227"
note: "Patched in memory after loading to skip the boot delay of the old and new boot sequences (linux-sdl/vm/mainmem.c:229-262)."
- name: BOOT_MMR.ROM
description: "FM-77 MMR boot ROM"
required: false
min_size: 512
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:246, linux-sdl/vm/mainmem.c:287-290, linux-sdl/vm/jcard.c:100-108"
note: "Without it the hidden boot area of the extended ROM is filled from INITIATE.ROM offset 0x1a00."
- name: SUBSYS_C.ROM
description: "FM-7 sub system ROM"
required: true
min_size: 10240
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:252, linux-sdl/vm/submem.c:212-218"
- name: SUBSYS_A.ROM
description: "FM77AV type A sub system ROM"
required: true
min_size: 8192
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:255, linux-sdl/vm/submem.c:220-222"
- name: SUBSYS_B.ROM
description: "FM77AV type B sub system ROM"
required: true
min_size: 8192
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:256, linux-sdl/vm/submem.c:223-225"
- name: SUBSYSCG.ROM
description: "FM77AV character generator and sub system ROM"
required: true
min_size: 8192
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:257, linux-sdl/vm/submem.c:226-228"
- name: KANJI1.ROM
description: "JIS83 first standard kanji ROM"
required: true
min_size: 131072
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:259, linux-sdl/vm/kanji.c:85-87"
unsourceable: "XM7 checks no hash and its upstream distributes no dump. The KANJI1.ROM the collection holds is the PC-88 kanji ROM, another machine's font."
- name: KANJI2.ROM
description: "JIS83 second standard kanji ROM"
required: true
min_size: 131072
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:263, linux-sdl/vm/kanji.c:98-102"
unsourceable: "XM7 checks no hash and its upstream distributes no dump. The KANJI2.ROM the collection holds is the PC-88 second level kanji ROM, another machine's font."
- name: KANJI.ROM
description: "JIS78 first standard kanji ROM"
required: false
min_size: 131072
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:260, linux-sdl/vm/kanji.c:71-81, 128-133"
unsourceable: "XM7 checks no hash and its upstream distributes no dump. The KANJI.ROM files the collection holds are MSX and FPseNG fonts, not the Fujitsu ROM."
note: "Without it a JIS78 table is generated from KANJI1.ROM."
- name: DICROM.ROM
description: "FM77-101/FM77-211 dictionary ROM"
required: true
min_size: 262144
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:264, linux-sdl/vm/jcard.c:66-68"
- name: EXTSUB.ROM
description: "FM77AV40EX/SX extended sub system ROM"
required: true
min_size: 49152
validation: [size]
source_ref: "linux-sdl/vm/xm7.h:266, linux-sdl/vm/jcard.c:92-94"
- name: relay_on.wav
description: "Cassette relay on sound"
required: false
source_ref: "linux-sdl/sdl/api_snd2.cpp:155-157, 213-267, 660"
- name: relayoff.wav
description: "Cassette relay off sound"
required: false
source_ref: "linux-sdl/sdl/api_snd2.cpp:155-158, 213-267, 660"
- name: fddseek.wav
description: "Floppy drive seek sound"
required: false
source_ref: "linux-sdl/sdl/api_snd2.cpp:155-159, 213-267, 660"