{
  "commit": "fbe5ba4e3e790ab07eddc5b57e0f45a02cbcd60e",
  "count": 1,
  "generated_at": "2026-10-24T00:06:47Z",
  "items": [
    {
      "id": "xm7",
      "profile": {
        "core_classification": "other",
        "core_version": "V3.4 L61a SDL/Agar 0.3.2pre2",
        "cores": [
          "xm7"
        ],
        "display_name": "Fujitsu - FM-7 (XM7/SDL)",
        "emulator": "XM7",
        "files": [
          {
            "description": "F-BASIC V3.0 ROM",
            "min_size": 31744,
            "name": "FBASIC30.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:240, linux-sdl/vm/mainmem.c:211-217",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77AV initiator ROM",
            "min_size": 8192,
            "name": "INITIATE.ROM",
            "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).",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:241, linux-sdl/vm/mainmem.c:225-227",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM-77 MMR boot ROM",
            "min_size": 512,
            "name": "BOOT_MMR.ROM",
            "note": "Without it the hidden boot area of the extended ROM is filled from INITIATE.ROM offset 0x1a00.",
            "required": false,
            "source_ref": "linux-sdl/vm/xm7.h:246, linux-sdl/vm/mainmem.c:287-290, linux-sdl/vm/jcard.c:100-108",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM-7 sub system ROM",
            "min_size": 10240,
            "name": "SUBSYS_C.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:252, linux-sdl/vm/submem.c:212-218",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77AV type A sub system ROM",
            "min_size": 8192,
            "name": "SUBSYS_A.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:255, linux-sdl/vm/submem.c:220-222",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77AV type B sub system ROM",
            "min_size": 8192,
            "name": "SUBSYS_B.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:256, linux-sdl/vm/submem.c:223-225",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77AV character generator and sub system ROM",
            "min_size": 8192,
            "name": "SUBSYSCG.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:257, linux-sdl/vm/submem.c:226-228",
            "validation": [
              "size"
            ]
          },
          {
            "description": "JIS83 first standard kanji ROM",
            "min_size": 131072,
            "name": "KANJI1.ROM",
            "required": true,
            "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.",
            "validation": [
              "size"
            ]
          },
          {
            "description": "JIS83 second standard kanji ROM",
            "min_size": 131072,
            "name": "KANJI2.ROM",
            "required": true,
            "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.",
            "validation": [
              "size"
            ]
          },
          {
            "description": "JIS78 first standard kanji ROM",
            "min_size": 131072,
            "name": "KANJI.ROM",
            "note": "Without it a JIS78 table is generated from KANJI1.ROM.",
            "required": false,
            "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.",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77-101/FM77-211 dictionary ROM",
            "min_size": 262144,
            "name": "DICROM.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:264, linux-sdl/vm/jcard.c:66-68",
            "validation": [
              "size"
            ]
          },
          {
            "description": "FM77AV40EX/SX extended sub system ROM",
            "min_size": 49152,
            "name": "EXTSUB.ROM",
            "required": true,
            "source_ref": "linux-sdl/vm/xm7.h:266, linux-sdl/vm/jcard.c:92-94",
            "validation": [
              "size"
            ]
          },
          {
            "description": "Cassette relay on sound",
            "name": "relay_on.wav",
            "required": false,
            "source_ref": "linux-sdl/sdl/api_snd2.cpp:155-157, 213-267, 660"
          },
          {
            "description": "Cassette relay off sound",
            "name": "relayoff.wav",
            "required": false,
            "source_ref": "linux-sdl/sdl/api_snd2.cpp:155-158, 213-267, 660"
          },
          {
            "description": "Floppy drive seek sound",
            "name": "fddseek.wav",
            "required": false,
            "source_ref": "linux-sdl/sdl/api_snd2.cpp:155-159, 213-267, 660"
          }
        ],
        "mode": "standalone",
        "notes": "K.Ohta's SDL and Agar port of PI.'s XM7, an FM-7, FM-77 and FM77AV series\nemulator. The CMake build sets XM7_VERSION 3 (linux-sdl/CMakeLists.txt:23,\nlinux-sdl/cmake/config_xm7.cmake:20), the FM77AV40EX/SX level, so every ROM\npath below is the XM7_VER >= 3 branch. RetroPie builds this repository with\nOpenGL and OpenCL off.\n\nROMs are read by file_load (linux-sdl/sdl/sdl_file.c:21-59), which prepends\nModuleDir and reads a fixed byte count. A file shorter than that count is\nrefused and anything past it is ignored. main sets ModuleDir to $HOME/.xm7/,\nor ./.xm7/ when HOME is unset (linux-sdl/sdl/windows_main.cpp:79-94). No hash\nor checksum of any ROM is computed.\n\nsystem_init stops at the first device whose init returns FALSE\n(linux-sdl/vm/system.c:124-127, 171, 203). MainLoop then sets error code 1\nand shows \"Error init VM. Please check ROMS and system-memory.\"\n(linux-sdl/ui-agar/agar_main.cpp:166-168, 546-548), and no machine runs. A\nROM whose absence makes its init return FALSE is required below.\n\nThe three drive sound effects are read with SDL_LoadWAV from RSSDIR, which\ndefaults to SHAREDIR, /usr/local/share/xm7/ (linux-sdl/sdl/build_config.h:76-86,\nlinux-sdl/sdl/api_snd2.cpp:660). The name is appended to that directory\nwithout a separator, and each name is tried in lower case, upper case,\ncapitalized and as written (linux-sdl/sdl/api_snd2.cpp:213-267). A missing\nWAV leaves its slot silent. HEADUP.WAV and HEADDOWN.WAV are compiled out\n(linux-sdl/sdl/api_snd2.cpp:160-163).\n\nUSERDIC.DAT is the FM77-211 learning RAM. It is filled with 0xFF when absent\nand written back by the emulator (linux-sdl/vm/jcard.c:77-82), so it is not\nlisted. JSUBMON.ROM, SUBSYS_8.ROM, SUBSYSL4.ROM, ANKCG16.ROM, the FM-8 and\nFM-7 boot ROMs and FBASIC10.ROM are only read when XM7_VER is 1.\n",
        "profiled_date": "2026-10-20",
        "source": "https://github.com/nakatamaho/XM7-for-SDL",
        "source_commit": "2a48dceaf8a3a0de92cf369b039ac5fab2bb351a",
        "systems": [
          "fm7",
          "fm77av"
        ],
        "type": "standalone",
        "upstream": "http://retropc.net/ryu/xm7/"
      }
    }
  ],
  "kind": "emulators",
  "schema_version": 1
}
