XM7
XM7 emulates Fujitsu FM-7 and Fujitsu FM77AV. It reads 15 files, 10 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.
About this profile
Technical 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/), 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/). 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/, 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/,
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/). A missing
WAV leaves its slot silent. HEADUP.WAV and HEADDOWN.WAV are compiled out
(linux-sdl/).
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.
15 files: 10 required, 5 optional.
| File | Required |
|---|---|
FBASIC30.ROM |
yes |
INITIATE.ROM |
yes |
SUBSYS_C.ROM |
yes |
SUBSYS_A.ROM |
yes |
SUBSYS_B.ROM |
yes |
SUBSYSCG.ROM |
yes |
KANJI1.ROM |
yes |
KANJI2.ROM |
yes |
DICROM.ROM |
yes |
EXTSUB.ROM |
yes |
BOOT_MMR.ROM |
no |
KANJI.ROM |
no |
relay_on.wav |
no |
relayoff.wav |
no |
fddseek.wav |
no |
In this collection: 6 in repo, 6 missing and 3 unsourceable.
Required
Section titled “Required”FBASIC30.ROM required in repo
F-BASIC V3.0 ROM
- Size: min 31.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:240,linux-sdl/vm/mainmem.c:211-217 - Collection copy: member
fbasic30.romofbios/Fujitsu/ FM Towns/ fm77av.zip
INITIATE.ROM required in repo
FM77AV initiator ROM
- Size: min 8.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:241,linux-sdl/vm/mainmem.c:225-227 - Collection copy: member
initiate.romofbios/Fujitsu/ FM Towns/ fm77av.zip
- Patched in memory after loading to skip the boot delay of the old and new boot sequences (
linux-sdl/vm/mainmem.c:229-262).
SUBSYS_C.ROM required in repo
FM-7 sub system ROM
- Size: min 10.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:252,linux-sdl/vm/submem.c:212-218 - Collection copy: member
subsys_c.romofbios/Fujitsu/FM-7/fm7.zip
SUBSYS_A.ROM required in repo
FM77AV type A sub system ROM
- Size: min 8.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:255,linux-sdl/vm/submem.c:220-222 - Collection copy: member
subsys_a.romofbios/Fujitsu/ FM Towns/ fm77av.zip
SUBSYS_B.ROM required in repo
FM77AV type B sub system ROM
- Size: min 8.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:256,linux-sdl/vm/submem.c:223-225 - Collection copy: member
subsys_b.romofbios/Fujitsu/ FM Towns/ fm77av.zip
SUBSYSCG.ROM required in repo
FM77AV character generator and sub system ROM
- Size: min 8.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:257,linux-sdl/vm/submem.c:226-228 - Collection copy: member
subsyscg.romofbios/Fujitsu/ FM Towns/ fm77av.zip
KANJI1.ROM required unsourceable
JIS83 first standard kanji ROM
- Size: min 128.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:259,linux-sdl/vm/kanji.c:85-87
- Not collectable: 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. (acknowledged gaps)
KANJI2.ROM required unsourceable
JIS83 second standard kanji ROM
- Size: min 128.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:263,linux-sdl/vm/kanji.c:98-102
- Not collectable: 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. (acknowledged gaps)
DICROM.ROM required missing
FM77-101/FM77-211 dictionary ROM
- Size: min 256.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:264,linux-sdl/vm/jcard.c:66-68
EXTSUB.ROM required missing
FM77AV40EX/SX extended sub system ROM
- Size: min 48.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:266,linux-sdl/vm/jcard.c:92-94
Optional
Section titled “Optional”5 files
BOOT_MMR.ROM optional missing
FM-77 MMR boot ROM
- Size: min 512 B
- Validation: size
- Source:
linux-sdl/vm/xm7.h:246,linux-sdl/vm/mainmem.c:287-290,linux-sdl/vm/jcard.c:100-108
- Without it the hidden boot area of the extended ROM is filled from INITIATE.ROM offset 0x1a00.
KANJI.ROM optional unsourceable
JIS78 first standard kanji ROM
- Size: min 128.0 KB
- Validation: size
- Source:
linux-sdl/vm/xm7.h:260,linux-sdl/vm/kanji.c:71-81,linux-sdl/vm/kanji.c:128-133
- Without it a JIS78 table is generated from KANJI1.ROM.
- Not collectable: 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. (acknowledged gaps)
relay_on.wav optional missing
Cassette relay on sound
relayoff.wav optional missing
Cassette relay off sound
fddseek.wav optional missing
Floppy drive seek sound
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start