Sharp X1 emulators
|Predecessor||Sharp MZ series|
The X1 (エックスワン Ekkusu Wan) is a Japan-only line of home computers created by Sharp’s television division. The first model, simply named Sharp X1, was released in November 1982. These computers doubled as TV sets and included many functionalities that made use of this combination, such as the ability to superimpose text to the TV image and, in later models, even to digitally record live television, albeit in a compressed 8-colour video format. Despite being powerful for its time, the NEC PC-8800 series outsold it. The last additions to the X1 line, the X1 Twin, also included a built-in NEC PC Engine.
At the time, Sharp was following a Clean Computer philosophy: this means that, in order to leave the user in control of the RAM, the computer shipped only with an IPL and BIOS. When necessary, operating systems must be loaded using external storage devices, such as cassettes and, in all but the first model, floppy disks.
The whole X1 line runs on a Sharp Z80 A CPU at 4 MHz and 64 kB of RAM. The X1 Turbo, released in October 1984, featured higher resolution and more VRAM. The X1 Turbo Z featured a 4096-colour mode, built-in FM synthesizer, video capturing/editing capabilities and (in the Turbo ZII and Turbo ZIII models) 128 kB of RAM. Needless to say, the X1 Twin also featured a HuCard slot.
|PC / x86|
|MAME||git artifacts[N 1]
libretro core[N 2]
|libretro core (WIP)
T-tune + ikaTune fork
17/08/18 (fmgen fork)
X1EMx fork (macOS)
|✓||✓||~[N 3]||✗||✓||✓||~[N 4]||~|
|X1 Emulator for X68000||1.00 rel3||✓||✓||✗||✗||✗||✗||✗||✗|
|libretro core (WIP)
|X millennium for Dreamcast||0.13.05.12||✓||✓||✗||✗||✗||✓||✗||✗|
|X millennium Advance||ver0.20||✗||✓||✗||✗||✗||✗||✗||✗|
- A very recent emulator that progressed very fast. It was the first emulator to support the X1 Twin, and is currently the best one at it. It is the only emulator to receive frequent updates up to this day, and also the only one (besides MAME) to have documentation in English. The X1 Twin core used to have an official Windows CE port, which was discontinued in early 2010. Despite referencing X millennium T-tune code, it does not seem to be a fork. The PC Engine section of its X1 Twin core is based off Ootake.
- Inherited X1 support from MESS. Its X1 Turbo Z and X1 Twin cores are listed as not working as of November 2019. Despite this, the X1 Turbo core is quite decent.
- The mother of all Sharp X1 emulators. First released in January 1999 and last updated in July 1999, X1EMU is designed to be compatible both with IBM-PCs and PC-98s running MS-DOS. The emulator runs in DOS protected mode, as such, it needs a copy of DOS4GW.EXE to sit in the same folder as it. Unlike most of its offspring, it is entirely in Japanese. In late-1990s machines, it might not exhibit this issue, yet in modern computers, its emulation is ridiculously fast, as there seems to be no programmed limitation on the clock speed.
- X millennium
- Born in the late 1990s as X1R, a real-time mode fork of X1EMU, X millennium was the first Sharp X1 emulator for Windows, and unarguably the most influential to date. It was updated until version 0.26d’s release in 2005, when development halted for no apparent reason. Suddenly, in December 2015, a little over ten years of silence, version 0.60a was released, bringing emulation enhancements ported over from Neko Project II among other small compatibility improvements. The gap between the last two releases was so wide, however, that version 0.60a all but flew under the radar, impacting the existing forks by little to nothing. In early 2019, the developer’s domain name expired and was not renewed, making a new release highly unlikely − at least before 2025, that is.
- In what is likely a problem inherited from X1EMU, X millennium suffers from ridiculously fast unbridled clockspeed. This is a problem that hasn’t been solved even in 0.60a.
- X millenniumOne
- A port of X millennium to PalmOS 5. Apparently, it can only emulate the X1 Turbo. It has been confirmed to work on the T|T3, Zire72, T|T5 and Treo65 PDAs.
- X millennium for Dreamcast
- An independent little-known fork of X millennium that sees no updates since 2013. Offers options both for burning to a CD-R and loading from an SD card.
- X millennium Advance
- An official port of X millennium to the Game Boy Advance, of all platforms, first published in 2004. In regards of quality, it is as good as X millennium goes, yet it is understandably very stripped down: there is no keyboard support, meaning that only games that are controlled with a joystick will work, and it emulates the X1 Turbo only. Oddly, the font ROM files must be named in the format fontxxxx.x1 instead of the usual FNTxxxx.X1 in order for it to work.
- One of the numerous forks of X millennium 0.26 t-tune step 1.43, Xmilx’s main selling points are Direct3D support, better window scaling capabilities and added compatibility with Kega Fusion RPI screen filters. As of version 3, the timing issues seem to be resolved, making it at the very least a decent emulator.
- X millennium ikaTune
- A fork of plain X millennium with exactly the same changes to the original as T-tune + ikaTune, made by the same person. Savestates are compatible across all three ika forks. Fortunately, this one added a working adjustable throttle to the clock speed that works properly, which means the emulation speed is accurate.
- X millennium fmgen
- A fork of X millennium version 05/02/14 test that uses fmgen to emulate audio. By far, the worst documented emulator in this page. In order for its very gimmick to work, the fmgen DLL set must be placed together with the emulator. fmgen options are controlled through the .ini file, in a very poorly documented manner available in the skimpy Japanese-language readme that comes with the emulator. At one point, the same dev also offered a fork of eX1 named eX1 System Revision, which naturally also required their fmgen DLL set, among other files. Unlike the original eX1, it did not support X1 Twin. Despite there being no trace of it left on their website, Emu-France dutifully archived a copy of the last release, dated January 1st, 2018.
- A rather unusual port of X millennium for macOS from when it was still named Mac OS X. It is forked from the original X millennium, most likely the beta macOS version; it uses fmgen and includes code from the last version of T-tune, among other assorted sources. Curiously, it also referenced the original X1EMU code and T-tune + ikaTune release 2’s functions. Unfortunately for Mac users, it’s been dead for quite some time.
- X millennium T-tune
- In the beginning of the 10-year span during which X millennium stopped being updated, this fork was the one being most updated and, as a result, the fork with best compatibility. Because of this, it spawned lots of forks when the developer announced that there would be no more updates. Despite many improvements to sound and FM synthesizer emulation, as well as added compatibility with X1 Turbo Z, this fork suffers of terrible slowdown, at least under Windows 10. Even if the emulation is cranked to 12 MHz − threefold overclocked −, it still runs much slower than it should. If No Wait is enabled, however, it flies to the opposite direction and runs humorously fast.
- X millennium T-tune (STC 256-colour mod)
- This is a one-off mod of the last version of X millennium T-tune made exclusively to enhance the experience of playing Star Cruiser. This role-playing first-person space shooter uses polygonal 3D graphics similar to Star Fox, and handles colour in a peculiar way: it calculates internally 256-colour graphics and outputs them in 8-colour with dithering. This mod adds a Star Cruiser 256-colour video mode that bypasses the dithering calculation and shows the game’s graphics in all its 8-bit glory. It also adds some other enhancements, such as mapping Star Cruiser cheats to unused keys. The full documentation of the changes can be found on its original website, while the binary has been kindly archived by the developer of the original X millennium T-tune when the mod’s dev’s website went down − it can be found here.
- X millennium T-tune + ikaTune
- The most widely known and used fork of T-tune after its demise. It received many important and useful new features and improvements, such as bugfixes regarding keyboard and CPU emulation, savestates, better memory handling, a revamped configuration screen and many changes to the sound emulation: to name a few, the use of NRTDRV for sound handling and the ability of saving sound output to a WAV file. For some of the new sound capabilities to work, it is necessary to put two files together with the emulator to enable ROMEO support: pcidebug.dll and either pcidebug.sys (if running on Windows NT) or pcidbg95.vxd (if running on DOS-based Windows). These files can be found here. Sadly, this fork did not fix the slowdown issue present in T-tune. This fork was last updated in 2009 and pulled from the website in 2013, together with the other two ika forks. However, in October 2019, they were put back online, which might mean a possible revival of the ikaTune family and new updates under the horizon. It might also mean that the dev had a nostalgia trip and decided to put all back online with no intention of touching it again, too.
- A rather excellent fork of the last version of T-tune that manages to not only resolve the timing issues, but also add a lot of improvements and new stuff, such as savestates, integration with the host OS’s clipboard and the ability to create new disk images. Like the above fork, it uses fmgen as the sound engine, yet it is contained in the executable, no extra DLLs or external config files needed. The default configuration may cause the sound to be delayed; if that’s the case, change the sound buffer to 100 ms in Emulate > Configure. All of its changes are documented in the rather lengthy included readme. This fork stopped being updated in 2012, yet it still stands as one of the best Sharp X1 emulators. The last version ever released can be downloaded here.
- An independent emulator, born in 1999 and defunct in 2000. Differently from most other emulators, it is entirely in Japanese. Despite apparently not being a fork of anything, the author did refer to the source codes of X1EMU, X1R/X millennium and MAME. Rumours around the existence of versions 0.09 and 0.10 do float, as WinX1 ~ikafumi~ is said to be based off WinX1 0.10, yet those seem to be vaporware.
- WinX1 ~ikafumi~
- The only known fork of WinX1 includes some changes present in the ikaTune releases − not all, hence the ikafumi (ika-flavoured). This one also includes savestates and ROMEO support, but can’t export the sound output to WAV, for example. It also doesn’t fix the hideously fast emulation speed present in the original WinX1. However, it is, according to the author, useful to emulate Lagrange L-2, as that game doesn’t play well with X millennium.
- X1 Emulator for X68000
- Probably the first truly functional Sharp X1 emulator to ever be coded, and the first to be open-source. It was first released through a BBS in 1993, when the Sharp X68000 was still on shelves all around Japan. In the readme, the original coder mentions an earlier payware he used as a reference simply named “X1 Emulator”, which was barely usable and doesn’t seem to be archived online. X1 Emulator for X68000 is only able to run at a maximum of 31 kHZ, and is incompatible with the D88 image format, accepting only 2D files. It is hideously outdated and pretty much useless nowadays for anyone who doesn’t own a Sharp X68000, yet it is an important footnote on Sharp X1 emulation history. After its initial release, it was picked up by another developer and received small updates until 1999 (!). Curiously, it has some functions that other emulators wouldn’t pick up on until over one decade later, such as having four emulated floppy drives, the option to change clock speed and not requiring ROM dumps to work. Its configurations are stored in the CONFIG.X1 file; for usage help, use the -? switch on the command line.
Most Sharp X1 emulators require ROM dumps to work. If the emulator you’ve chosen either returns an error at start or fails to boot, place the ROM files present in this archive in the emulator’s folder. For xmil_libretro: bios load from retroarch system directory in a folder named xmil: ("IPLROM.X1" "IPLROM.X1T")