px68k (SDL)
px68k (SDL) emulates Sharp X68000. It reads 10 files, 2 of them required: without a required file it does not start games.
About this profile
Install this emulator's files
With RetroPie: the installer finds RetroPie and its BIOS folder, then downloads only the files px68k (SDL) reads there and checks each one.
Open a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator px68k-sdlTechnical notes
SDL build of Kenjo's WinX68k (Keropi) by TurtleBazooka, forked from
kenyahiro/px68k and hissorii/px68k. The Makefile builds the SDL3 front end by
default and the SDL2 one with SDL2=1 (Makefile:21-24,236-243). Both read the
same files: the SDL3 lists are at SDL/SDL3/winx68k.cpp:189-190,273-278.
Every file is opened by name inside one folder. set_modulepath builds it as
$HOME/.keropi, or ./.keropi when HOME is unset, and creates it when missing
(SDL/prop.c:172-194). WinMain hands it to File_Setcd
(SDL/SDL2/winx68k.cpp:713-717), and File_OpenCurDir joins each name to it
(win32api/dosio.c:170-194). The same folder holds the config file
(SDL/prop.c:196). Android uses /sdcard/px68k or the folder named in dir.txt,
iOS /var/mobile/px68k (SDL/prop.c:112-170). Paths below are relative to that
folder.
When no IPL or no font loads, WinX68k_LoadROMs returns false and WinMain
shows an error and never starts the CPU loop
(SDL/SDL2/winx68k.cpp:798-800,811,866-868).
sram.dat is the 16 KB battery backed SRAM. It is read when present and
written back on exit (x68k/sram.c:25,151-201), so the emulator creates it.
keyconf.dat is an optional key table read on start (SDL/keyboard.c:49,85-114),
and the repository ships a US layout as "keyconf.dat(us)". The printer output
goes to a file in the same folder (x68k/ioc.c:33-35).
With FLUID=1 MIDI goes through FluidSynth, which loads the SoundFont named by
SoundFontFile in the config, else /usr/local/share/soundfonts/default.sf2
(x68k/midi_fluid.c:27,52-66, SDL/prop.c:358-362, Makefile:165-195). Any
General MIDI SoundFont works. The Mercury unit is compiled out
(Makefile:120-123).
10 files: 2 required, 8 optional. 1 has an HLE fallback.
| File | Required |
|---|---|
iplrom.dat |
yes |
cgrom.dat |
yes |
iplromxv.dat |
no |
iplromco.dat |
no |
iplrom30.dat |
no |
cgrom30.dat |
no |
cgrom30.tmp |
no |
cgrom.tmp |
no |
scsiinrom.dat |
no |
scsiexrom.dat |
no |
In this collection: 8 in repo and 2 missing.
Required
Section titled “Required”iplrom.dat required in repo
- System: Sharp X68000
- Size: 128.0 KB
- Priority: 1
- Source:
SDL/SDL2/winx68k.cpp:277-279,SDL/SDL2/winx68k.cpp:288-307 - Collection copy:
bios/Sharp/X68000/iplrom.dat - Platforms: AmberELEC:
bios/keropi/iplrom.dat, Batocera:keropi/iplrom.dat, EmuELEC:bios/keropi/iplrom.dat, KNULLI:keropi/iplrom.dat, Lakka:keropi/iplrom.dat, Recalbox:keropi/iplrom.dat, RetroArch:keropi/iplrom.dat, RetroBat:keropi/iplrom.dat, RetroDECK:bios/iplrom.dat, RetroPie:keropi/iplrom.dat, RomM:sharp-x68000/iplrom.dat
- X68000 IPL ROM. The four IPL names are tried in the order iplrom.dat, iplromxv.dat, iplromco.dat, iplrom30.dat and the first that opens is read, 0x20000 bytes into the upper half of the IPL area. The name sets the window title and iplrom30.dat marks the X68030.
cgrom.dat required in repo
- System: Sharp X68000
- Size: 768.0 KB
- Priority: 3
- Source:
SDL/SDL2/winx68k.cpp:280-282,SDL/SDL2/winx68k.cpp:317-331 - Collection copy:
bios/Sharp/X68000/cgrom.dat - Platforms: AmberELEC:
bios/keropi/cgrom.dat, Batocera:keropi/cgrom.dat, EmuELEC:bios/keropi/cgrom.dat, KNULLI:keropi/cgrom.dat, Lakka:keropi/cgrom.dat, Recalbox:keropi/cgrom.dat, RetroArch:keropi/cgrom.dat, RetroBat:keropi/cgrom.dat, RetroDECK:bios/cgrom.dat, RetroPie:keropi/cgrom.dat, RomM:sharp-x68000/cgrom.dat
- X68000 character generator ROM, read when neither X68030 font is present.
Optional
Section titled “Optional”8 files
iplromxv.dat optional in repo
- System: Sharp X68000
- Size: 128.0 KB
- Priority: 2
- Source:
SDL/SDL2/winx68k.cpp:277-279,SDL/SDL2/winx68k.cpp:288-307 - Collection copy:
bios/Sharp/X68000/iplromxv.dat - Platforms: AmberELEC:
bios/keropi/iplromxv.dat, EmuELEC:bios/keropi/iplromxv.dat, Lakka:keropi/iplromxv.dat, Recalbox:keropi/iplromxv.dat, RetroArch:keropi/iplromxv.dat, RetroDECK:bios/iplromxv.dat, RetroPie:keropi/iplromxv.dat, RomM:sharp-x68000/iplromxv.dat
- X68000 XVI IPL ROM, read when iplrom.dat is absent.
iplromco.dat optional in repo
- System: Sharp X68000
- Size: 128.0 KB
- Priority: 3
- Source:
SDL/SDL2/winx68k.cpp:277-279,SDL/SDL2/winx68k.cpp:288-307 - Collection copy:
bios/Sharp/X68000/iplromco.dat - Platforms: AmberELEC:
bios/keropi/iplromco.dat, EmuELEC:bios/keropi/iplromco.dat, Lakka:keropi/iplromco.dat, Recalbox:keropi/iplromco.dat, RetroArch:keropi/iplromco.dat, RetroDECK:bios/iplromcdc_flash.bino.dat,bios/iplromco.dat, RetroPie:keropi/iplromco.dat, RomM:sharp-x68000/iplromco.dat
- X68000 Compact IPL ROM, read when the first two names are absent.
iplrom30.dat optional in repo
- System: Sharp X68000
- Size: 128.0 KB
- Priority: 4
- Source:
SDL/SDL2/winx68k.cpp:277-279,SDL/SDL2/winx68k.cpp:288-307 - Collection copy:
bios/Sharp/X68000/iplrom30.dat - Platforms: AmberELEC:
bios/keropi/iplrom30.dat, EmuELEC:bios/keropi/iplrom30.dat, Lakka:keropi/iplrom30.dat, Recalbox:keropi/iplrom30.dat, RetroArch:keropi/iplrom30.dat, RetroDECK:bios/iplrom30.dat, RetroPie:keropi/iplrom30.dat, RomM:sharp-x68000/iplrom30.dat
- X68030 IPL ROM, read when the three other names are absent.
cgrom30.dat optional in repo
- System: Sharp X68000
- Size: 768.0 KB
- Priority: 1
- Source:
SDL/SDL2/winx68k.cpp:280-282,SDL/SDL2/winx68k.cpp:317-331 - Collection copy:
bios/Sharp/X68000/cgrom30.dat
- X68030 character generator ROM. The font names are tried in the order cgrom30.dat, cgrom30.tmp, cgrom.dat, cgrom.tmp whatever IPL was loaded, and the first that opens is read, 0xC0000 bytes.
cgrom30.tmp optional missing
- System: Sharp X68000
- Size: 768.0 KB
- Priority: 2
- Source:
SDL/SDL2/winx68k.cpp:280-282,SDL/SDL2/winx68k.cpp:317-331
- Substitute X68030 font, read when cgrom30.dat is absent.
cgrom.tmp optional missing
- System: Sharp X68000
- Size: 768.0 KB
- Priority: 4
- Source:
SDL/SDL2/winx68k.cpp:280-282,SDL/SDL2/winx68k.cpp:317-331,SDL/tool/create_cgrom.c:20
- Substitute font, read last. The separate mkcgrom tool (make cgrom) renders it from TrueType fonts.
scsiinrom.dat optional in repo HLE fallback
- System: Sharp X68000
- Size: 8.0 KB
- Source:
SDL/SDL2/winx68k.cpp:140-271 - Collection copy:
bios/Sharp/ X68000/ scsiinrom.dat
- Built-in SCSI IPL of the XVI, Compact and X68030. It is read only when the loaded IPL points at the built-in SCSI ROM at 0xFC0000, 0x2000 bytes, and its IOCS entry is patched. Absent, a stub carrying the Human68k signature is placed there instead.
scsiexrom.dat optional in repo
- System: Sharp X68000
- Size: 8.0 KB
- Source:
SDL/SDL2/winx68k.cpp:140-271 - Collection copy:
bios/Sharp/ X68000/ scsiexrom.dat
- CZ-6BS1 external SCSI board IPL, mapped at 0xEA0000 with any IPL. The code reads 0x1FD0 bytes and accepts a dump taken from 0xEA0020 or from 0xEA0000, located by the SCSIEX signature, then patches the IOCS entry after the NuSCSI tag. Absent, the board ROM area is left empty and no external SCSI drive boots.
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