Files
libretro/emulators/x1.yml
T
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +02:00

94 lines
3.6 KiB
YAML

emulator: "X Millennium"
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/xmil-libretro"
upstream: "http://amethyst.yui.ne.jp/svn/x1/xmil/trunk/"
profiled_date: "2026-03-25"
source_commit: "3106aa54ffb244cca4019a6e95dacaa698781bc3"
core_version: "0.60a"
display_name: "Sharp X1 (X Millennium)"
cores:
- x1
systems:
- sharp-x1
# X Millennium (XMIL) is a Sharp X1 series emulator by yui, ported to libretro
# by r-type. Supports X1, X1 Turbo, and X1 TurboZ models via the "X1_ROMTYPE"
# core option (X1 = ROM_TYPE 1, TURBO = 2, TURBOZ = 3).
#
# SUPPORT_TURBOZ is not compiled in the libretro build (compiler.h), so TurboZ
# extended color modes are unavailable. ROM_TYPE 3 still selects IPLROM.X1T.
#
# All system files go under: <system_dir>/xmil/
# retro_init() builds: retro_system_conf = "<system_dir>/xmil" (libretro.c:597)
#
# IPL ROM loading (memio.c:87-121):
# biosmem is initialized with defaultiplrom (575-byte boot stub from defipl.res).
# ROM_TYPE >= 1: loads external IPL ROM into biosmem, overwriting the stub.
# ROM_TYPE 1 (X1): xmil/IPLROM.X1
# ROM_TYPE >= 2 (Turbo/TurboZ): xmil/IPLROM.X1T
# Path built explicitly: sprintf(rtmp, "%s%c%s", retro_system_conf, slash, iplfile)
# If file missing, the 575-byte stub remains (limited boot capability).
#
# Font loading (fontx1.c:69-122, font.c:89-127):
# font_load(NULL, TRUE) called from pccore_initialize() (pccore.c:67).
# Built-in defaults (defrom_ank, defrom_txt from fontdata.c) provide basic ASCII.
# x1fontread() tries to load external font files via fontopen().
# Font path resolution uses file_getcd() which defaults to "./" in the libretro
# port (file_setcd() is never called). Upstream win9x/sdl2 calls file_setcd()
# to set the working dir. Fonts may not be found from xmil/ in practice.
#
# .info declares firmware_count=2 (IPL ROMs only). Font files are not declared.
# .info firmware1_desc incorrectly says "8x8 Font ROM" (actually Turbo IPL ROM).
notes: |
Place all files in: <system_dir>/xmil/
The core selects between IPLROM.X1 and IPLROM.X1T based on the "X1_ROMTYPE"
core option. A 575-byte built-in IPL stub provides limited boot without the
real ROMs. Font files add Japanese character support; the libretro port has a
path resolution quirk where fonts are searched in "./" instead of "xmil/"
(missing file_setcd call).
files:
- name: IPLROM.X1
path: xmil/IPLROM.X1
size: 32768
required: false
hle_fallback: true
description: "X1 IPL ROM. Loaded when ROM_TYPE=1 (X1 model)."
source_ref: "io/memio.c:82,96-108"
- name: IPLROM.X1T
path: xmil/IPLROM.X1T
size: 32768
required: false
hle_fallback: true
description: "X1 Turbo/TurboZ IPL ROM. Loaded when ROM_TYPE=2 or 3."
source_ref: "io/memio.c:83,97-108"
- name: FNT0808.X1
path: xmil/FNT0808.X1
size: 2048
validation: [size]
required: false
hle_fallback: true
description: "8x8 ANK font ROM. Built-in defrom_ank fallback provides basic ASCII."
source_ref: "font/fontdata.c:6, font/fontx1.c:79-87"
- name: FNT0816.X1
path: xmil/FNT0816.X1
size: 4096
validation: [size]
required: false
hle_fallback: true
description: "8x16 ANK font ROM. Built-in fallback derived from defrom_ank/defrom_txt."
source_ref: "font/fontdata.c:7, font/fontx1.c:89-103"
- name: FNT1616.X1
path: xmil/FNT1616.X1
size: 306176
validation: [size]
required: false
description: "16x16 Kanji font ROM. No built-in kanji data (zeroed). Required for Japanese text."
source_ref: "font/fontdata.c:8, font/fontx1.c:105-120"