1.3.1 Loading programs into the emulators
The two (main) types of available media also means vastly different methods of loading them.
22.214.171.124 Snapshot files
First, with "snapshot" files (files that, effectively, contain a full print of the memory & full state of a computer), you just click them and they're immediately (without having to wait anything) loaded.
The advantage of this approach is immediate loading. The disadvantage is the lack of boot screens (which you may want to see - at least once. Some of them, for example, that of Rainbow Islands, is pretty cool) and the comparatively big size (as the entire RAM is saved - even with programs that are way smaller in size).
You can recognize a snapshot file by its extension: SLT, SP, SNA or Z80; the latter two being the most common.
126.96.36.199.1 Snapshot file loading in UnrealSpeccyPPC
To load a snapshot file in UnrealSpeccyPPC (the recommended emulator for the Pocket PC), after starting the emulator, click the large Open File button at the top (screenshot here; note that, as with all my all screenshots, I traverse the focus to the button / GUI item you need to activate so that it is easily recognizable). Note that, after loading something, its label will change to the full path + file name of the currently attached file as can also be seen in HERE. After this, click the file to load and, then, click Start at the bottom left (later, when you exit back to this screen to, say, make some changes in the settings, this button will be renamed to Resume). The execution will immediately be transferred to the given title.
188.8.131.52.2 Snapshot file loading in FuseSP
Conversely, to do the same in FuseSP (the recommended emulator for the MS Smartphone), after loading the emulator, go to Menu (right softkey) / 1 Load Snapshot; in the Select Snapshot GUI list control, select the one you'd like to load (pressing Action will result in being presented a full, vertical list of all the available ones to greatly speed up the selection; just press the Action button again to select a title from this view.). Then, just press Done (left softkey); you'll be taken right into the emulator, running the just-loaded title.
184.108.40.206 Tape files
Loading tape files are a bit different because they, by default, aren't auto-started in the Pocket PC emulators (including UnrealSpeccyPPC); it's only on the MS Smartphone where they are auto-loaded by default (which can be disabled).
Tape files have the file extension TAP, TZX (and CSW with UnrealSpeccyPPC). Compared to snapshot images, they are, in cases, MUCH slower to load but more closely mimic the actual tape loading experience, with some emulators (UnrealSpeccyPPCis one of theml FuseSP isn't), even exactly the same visual (border coloring) and audio (beeps) effects. In addition, you'll always see the infamous loader (title) screens not possible with snapshot-based games.
220.127.116.11.1 Tape file loading in UnrealSpeccyPPC
To load a tape file in UnrealSpeccyPPC, do exactly the same as you did with loading the snapshot file: that is, click the large Open File button and select the file. Now, however, before clicking Start, make sure you set the drop-down menu between the Open File and the "Reset" button to BASIC 48 (if it's a program compatible with the 48k Spectrum and not requiring a Spectrum 128). After this, instead of the Start (Resume) button you used with the snapshot images, you will need to press Reset (so that the previous program, if present, is removed from the emulator).
Now, you'll be taken to the BASIC prompt of the emulator, which resets itself. After bringing up the on-screen keyboard (click the keyboard icon at the bottom right corner), just click "J". This will result in "LOAD" to be inserted in the command row. Now, press the somewhat smaller "S" in the lower right area of the on-screen keyboard (it, then, becomes red showing it’s in effect) and press " (Symbol Shifted character of the P key). Repeat the same so that you see the command
on the screen. Now, press the Enter key - it's just under the already-used P key; it's denoted by a ^ character. The tape loading process will start.
Should you make an error during this, just click the small "c" in the lower left corner of the keyboard and, then, click '0' (zero). This will delete a character (or a full command) backwards. Remember to click "c" again if you want to delete more than one character.
18.104.22.168.1.1 Disk file loading in UnrealSpeccyPPC
Finally, loading disk files (in UnrealSpeccyPPC only) is even more different. Start with the usual Open File / selection screen and press Reset. (You will, as opposed to the Tape loading screen, NOT need to set the operating system to something else than TR-DOS!)
You'll be presented a directory list on a green background. Using the 6/7/8/9 buttons on the on-screen keyboard, position the mouse cursor on top of the item you'd like to load so that it is highlighted. (With most, say, Virtual TR-DOS or contemporary, post-Soviet disk images / demos / games, there's only programs in the image and, therefore, you'll only see one image in there.) After this, click 0 (fire) - the given program will be loaded and started.
22.214.171.124.2 Tape file loading in FuseSP
To load a tape file in FuseSP, in the “UI mode”, select Menu / 2 Load Tape and do the same as previously, with snapshot images – that is, select the file to load. Note that you should NOT untick the “Auto load” checkbox. Should you untick it, you would need to, after manually resetting the emulator (Menu / 6 Reset), manually enter LOAD””. This would be pretty problematic – if you don’t have a built-in full thumbboard, the only way of doing this is assigning all the used letters and signs (L, O, A, D, “) to a hardware / phonepad button, one by one and, then, pressing them. As is also pointed out elsewhere in this roundup, this is what makes it (almost) impossible to issue any long(er) custom commands in FuseSP.
1.3.2 Other features / settings
126.96.36.199 Turbo mode
UnrealSpeccyPPC allows for a "turbo" mode in addition to the "100% speed" one. The former will allow for, on current, fast Windows Mobile devices, much (in cases even 1500% of the original Spectrum speed) faster program execution.
Enabling turbo mode also greatly speeds up tape loading. However, it, as with the C64 emulator PocketHobbit, it also results in most importantly character input problems: with enabled turbo mode, you won't even be able to enter almost anything because of the doubled characters. Also, games will be unnecessarily fast.
This means you will only want to enable turbo mode during, say, lengthy tape loading sessions. To do this, just press Application button 4 on your Pocket PC. You will also see the FPS value, continuously displayed in the lower left corner of the screen, to be increased (and the sound muted).
Better emulators also let for redefining buttons. This is essential when dealing with non-Kempston joystick emulation and on the MS Smartphone platform, where you need to assign original alphanumeric letters to the phonepad / control buttons of the device so that you can use the given letters / numbers at all (assuming your Smartphone doesn't have a built-in keyboard).
188.8.131.52.1 Buttons in UnrealSpeccyPPC
To make any (additional) button assignments in UnrealSpeccyPPC, as is also pointed out in the "Joystick: supported keyboard layouts " row of the Chart, you'll need to click Advanced Settings, tap-and-hold the functionality you’d like to assign and select Assign. (If you no longer need the previous assignment(s) of a button, just select Empty in the same menu.)
You can also manually edit the action_map.ini file in the home directory of the emulator. Make sure you convert the file back to the LF-only (Unix-style) format from the DOS/Windows-specific, CR+LF format, should you use a Windows-based editor also putting CR's at the end of each line. Note that it's quite unlikely you'll need to modify existing button assignments as the built-in, pre-defined ones cover most games.
184.108.40.206.2 Buttons in FuseSP
With the MS Smartphone-based FuseSP, the situation is wildly different. This emulator, unlike PocketHobbitSP2003 (the C64 emulator for the MS Smartphone), doesn't let for arbitrary character input. That is, unfortunately, unlike with PocketHobbitSP2003, you can't just use the phonepad in the traditional text input way.
While the default character mapping, that is, numerals (and the most widely used other control characters: Enter (Talk), Space (hang up)) are assigned to the phone buttons (including the volume up/down keys, the Power button and the two softbuttons), and these assignments generally work great in most games (where you need to use the numerals 1, 2, 3 etc. to select at least a joystick mode), you may need to assign other characters to a specific button so that you can enter other types of characters.
If you encounter situations like this, go to the main screen (by pressing the Back or the Home key while in the main emulation window; this is what the README.txt coming with the emulator calls "UI Mode", as opposed to the in-emulation "Spectrum mode"), invoke the main menu (right soft key), select "5 Define Keys", select a hardware button (for example, Left Softkey) to assign the given original key to, press the Action button to quickly bring up the selection list, select the new assigned key (for example, in here, “A”) and press Done (left softkey). The assignment will change.
Incidentally, this menu can seem a bit complicated at first because, in addition to the plain character assignment operations, it's also here that you can en/disable Kempston emulation (enabled by default) and mirror the D-pad directions to the phone keys so that you can not only control the game via the D-pad, but also with the phonepad buttons 2/8/4/6 for down / up / left / right. If you don't need the latter functionality (because you exclusively use the D-pad to control your player) but would prefer to be able to assign more functionalities / more original keys to the available (few) hardware buttons, you can safely untick the "Mirror Joystick on Keys" checkbox in here, which is enabled by default.)
Also, again, note that it's in here, at the top (with the "Kempston Joystick" checkbox, that you can disable the Kempston emulation. Should a given game not support Kempston, you'll need to untick this checkbox and, right below the checkbox, make sure you correctly assign the four directions (and the Action button) to real, original keys. These assignments, naturally, aren't editable while Kempston emulation is enabled (after all, Kempston isn't character input emulation-based). However, after disabling Kempston, you can freely edit them, should their default value (the traditional Sinclair interface) be useless.
Note that, fortunately, the key binding / assignment settings are separately saved for each game. This is highly useful because games tend to use different button assignments and continuously redefining them can prove really annoying.
Finally, note that, in FuseSP, you can explicitly (it’s disabled by default) enable the use of external, built-in key/thumbboard, as is the case with UnrealSpeccyPPC, where, in order to make built-in keyboards work, you must select the “Keyboard + cursor” control scheme in BUTTONS. To do this, go to Menu / 4 Options and tick “Device has full keyboard”. Note that it will NOT work correctly with the HTC Vox / S710 slide-out keyboard – the numerals will be used instead of the alphabetic keys, only letting some keys to be accessed. Users of non-sliding, Landscape keyboards, on the other hand, reported success with their keyboards.
Traditionally, the Spectrum had a wildly different approach to controlling games than the Commodore 64 or most other home computers designed & manufactured after 1982. The Spectrum not having a built-in joystick port, the user needs to use the keyboard for control. By default, the keys 5 (left), 6 (down),7 (up) and 8 (right) are used to direction control in many games (and, of course, in the BASIC too) and, in general, 0 to fire. You can control a lot of games with this scheme; for example, Harrier Attack! and Pssst, just to name a few.
However, this keyboard-based control was really awkward, which were helped in two ways.
First, other blocks of buttons, more closely representing the four directions and separated to the left and right sides of the keyboard, have been used by some games. The most important of these assignment is the QAOPM scheme, where Q is used for left, O for down, P for up, A for right. For firing, traditionally, two keys were used: either M or the space. Should you encounter a game supporting these buttons instead of the standard 5/6/7/8 ones, you will want to reassign the D-pad directions to use these buttons. Note that, with UnrealSpeccyPPC, where there are several pre-defined control schemes (and you can also create your own ones), you will only need to select the one you need in the BUTTONS tab in Advanced Options. If there's no pre-defined schema for a given game, you'll want to edit action_map.ini by conveniently copying an already-defined block of button assignments, giving it a meaningful name (in the first, preset= attribute) and make the necessary changes. After storing the file and restarting the emulator, the new schema will be visible and selectable. Alternatively, you can also do the same from inside the emulator – with somewhat more effort & clicks.
It's also very important to notice action_map.ini assigns the <AutoFire> functionality to the TSOFT1 button; that is, the left WM5+ softkey. As this button may be missing on some upgraded / native WM5 devices (for example, the Dell Axim x50/x51 series and the non-phone HP iPAQ's) and, of course, ALL devices prior to WM5, you will want to redefine it to use, say, the second application button (APP2).
The second, additional hardware-based approach, was adding joystick interfaces in the extension (interface) ports. These interfaces allowed for plugging in the, then, already (except for the IBM PC, which went its own, analogue controller way) industry-standard 9-pin digital joysticks pioneered by the hugely successful Atari 2600 gaming console.
Two main standards (meaning to different hardware joystick interfaces) exists: that of Kempston and Sinclair. The former doesn't map any keyboard buttons but use its own; the latter does button mapping (which is exactly the same as with the traditional key-based buttons, except for the direction "left", which is, instead of key 5, is mapped to key 9.
In general, hardware joystick-aware games support both joystick interfaces, except for the earliest ones, which may only support Kempston only (the earliest interface to hit the market – it was only later that Sinclair released a joystick-enabled interface, ZX Interface II, to the public). Make sure you look for joystick setup questions at the beginning of games so that you can select the most optimal solution not resulting in your having to switch joystick assignment schemes.
220.127.116.11 Changing screen orientation; image downscaling issues
As opposed to C64 emulators, all Pocket PC emulators have one wired-in (either Landscape or Portrait, but not both) screen orientation. It's only the Smartphone-based FuseSP that supports switching between the two orientations using either the # button (in "Spectrum" mode) or Menu / Options / Screen orientation.
In addition, as opposed to the Smartphone C64 emulator PocketHobbitSP2003, FuseSP supports full-screen stretching on QVGA devices in Portrait mode, which is really-really useful in making use of the entire screen estate. Make sure you look for the option "Stretched Portrait" in Menu / Options / Screen orientation (or, while pressing # to switch screen orientations / modes, select the one that fully stretches the image vertically).
Note that, in the default Portrait mode, as the width of the physical Pocket PC (or QVGA MS Smartphone) screen is 240 (with low-res MS Smartphone screens, 176) pixels, while the original screen width of the Spectrum is 256 pixels, shrinking (read: dropping some pixel columns) must be done to fit the original screen into the available screen estate. It's worth pointing out that PocketClive, the only Pocket PC-based emulator (not counting in the not recommended, Russian, TRD-only, GUI-less PocketSpeccy) to use the Portrait emulation, not only supports shrinking, but also, to avoid the (ugly) consequences of it (completely dropped columns)
Finally, it's worth pointing out that FuseSP applies a VERY clever method at dropping lines as it uses some interpolation to render the missing info of the dropped columns in the neighboring columns. This results in the vastly enhanced and eye-friendlies, albeit a bit blurry representation in QVGA mode. On 176*220 screens, of course, this can't really help the situation.
Now that we've quickly reviewed the issues common to Spectrum emulation on Windows Mobile, let's see what emulators there are and how they compare to each other. In the following two chapters, I introduce Pocket PC and MS Smartphone emulators.