x128 Instructions
02/10/2024
Menus:
F1 Help F2 NMI F3 Hardware options F4 Control options F5 Load snapshot F6 Save options F7 Load tape F8 Tape options F9 Save screenshot F10 Quit F11 Sound options F12 Disk select
Alt-F1 POKEs/Trainers Alt-F2 Alternate NMI Alt-F7 Tape browser Alt-F8 Pause/Unpause tape
File Formats INI/command line DOS Windows
Video Mode
In the Windows version, you may select from a Window with the ZX Spectrum border (which will be a multiple of 320x240), or from a borderless window, which will be a multiple of 256x192.
Additionally, you have the option of a number of full-screen modes. The emulator will make a best-guess attempt at scaling the image to whichever format you choose. Some resolutions and colour depths may not be enough for what is currently being displayed, in which case the output will look a little odd.
If you want to switch to full-screen mode without changing your desktop resolution or colour-depth (to keep your desktop as unmodified as possible when you get back, or to avoid the monitor switching modes), then don't use this menu. Use Alt-Return to switch to and from windowed and full-screen mode instead.
The screenshot below shows the modes that DirectX has enumerated.
I hope you installed DirectX...
The DOS Video Mode menu is a little more interesting...
The first 7 modes are the default VGA/EGA modes. (It is possible to run x128 on an EGA system by typing (for example) "x128 /vmode 2" on the command line, but the palette will be wrong and I doubt that any EGA-equipped system would ever be powerful enough to run this emulator at a usable speed).
VGA Text Mode is the fastest emulation option, but it can only handle 16 colours (and only 2 colours within an 8x1 block) and only the default ZX Spectrum video mode has a "native" driver for it. Everything else will look quite strange.
For the bitplane (16-colour) modes, none of the systems have a native driver for them (yet), so it will always use a 256-colour back buffer and (slowly) convert it to bitplane format every frame. Consequently, the EGA colour modes are a fair bit slower.
If "VESA = YES" is in the INI file, then an attempt will be made to detect the available VESA modes and add them to the list. While this is intended for VESA 2.0 and above, I have tested this on a Tseng ET4000 that only had a VESA 1.1 driver and it worked! (See the DOS page for more information about VESA options).
Any mode that can be selected will be shown in the normal colours and will have a (Y) next to it. The majority of modes should be useable. Any planar (16-colour bitplane), packed (256-colour indexed), or RGB (15, 16, 24, or 32-bits) mode should be ok.
Again, the emulator will make a best guess attempt at scaling the image to whichever mode you choose. However, unlike the Windows version it will just keep adding "scanlines", by which I mean it will leave gaps between the lines to save on the time required writing to these often quite slow video cards. On a CRT these look fine, but on an LCD it will be apparent that the gaps keep on getting bigger and bigger as you choose higher and higher resolutions.
Note, however, that there are circumstances where an 8-bit back buffer will need to be allocated in system memory (for example, the "4-bit" modes seen below) and these can be quite large (1600 * 1200 = 1,920,000) and you might run out of memory on an old DOS machine. To be honest, my error-handling is not very good here, so it will probably crash.
Another thing to note, in these modern times, is that a later CRT or LCD screen may not be able to display some of these modes. I find on my 486 with Tseng ET4000, that none of my newer monitors (meaning anything from the mid-90s onwards) can display some of these video modes because their refresh rate is too low for the monitor to display.
In those circumstances, the monitor will likely drop to something like a "no-signal" mode, and you will have to press Shift-F11, fumble around, and hopefully find a compatible mode. Alternatively, you could press F10, then Y, to drop back to the command line. I really should add a "revert" key in there...
In other (rare) circumstances, you might find that you've selected a mode that is beyond the capabilities of your old monitor and you may hear a rather high-pitched noise. It is probably better to get out of that video mode as quickly as possible.
Another interesting historical quirk of that era was "banked video modes". A video card might only put a 64K window (or less) of video memory into the CPU address space, and a banking routine had to be called to see the page of memory you wanted to access. This could be quite slow and the boundaries could fall in the middle of a line.
So, to make things quicker and simpler for myself, I altered the width of the virtual screen so that I would never have to swap banks in the middle of a line. Now, this works on whatever I've tried it on, and not a single person has ever sent me a bug report. (Which, of course, is because no-one ever used it). But there are plenty of ways that it might not work (video card doesn't support it, not enough video memory, etc) and I'm not entirely sure what will happen then. The universe may explode. You have been warned.
Yes, I know, 640x480x16 is not a standard EGA mode
Some VESA video modes are not usable. For example, text modes, YUV modes, or anything else. They will be displayed in inverse colours, with an (N) next to them, and cannot be selected.
But aren't you a little curious, looking at this screenshot? Thinking... "I wonder if it would be possible to set up a 264x200 or 264x240 packed 16-colour mode by redefining the font". Hmm...
Forbidden modes
(C) Jane McKay, 2024.