Log in

View Full Version : Emulating home computers on Windows Mobile Part V - Sinclair ZX Spectrum


Menneisyys
06-17-2007, 01:57 PM
The Sinclair ZX Spectrum (http://en.wikipedia.org/wiki/ZX_Spectrum) was a very popular home computer system in the eighties.

The history of the Spectrum didn't end at the official, 1990 discontinuation of the series. As with the Commodore 64 (see the review of all Windows Mobile-based C64 emulators HERE (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2025&more=1&c=1&tb=1&pb=1)) , which still receives top-notch scene demos, the Spectrum had (and is still having!) a spectacular afterlife in the ex-Soviet states; most importantly, Belarus and Russia.

Particularly in Russia, there have been a plethora of self-manufactured ZX Spectrum-based home computers throughout the entire nineties, with a lot of fans and developers. This trend even continued in this century - currently, there are still some hardware manufacturers still producing ZX Spectrum-based & compatible computers like the Pentagon (http://en.wikipedia.org/wiki/Pentagon_(computer)) and the ATM Turbo (http://en.wikipedia.org/wiki/ATM_Turbo). While these models, in general, haven't really improved on the (gaming-wise, particularly weak) graphics subsystem of the original Spectrum (not taking the new low-res EGA-like mode into account), they come with plenty of memory (128k to 1M in general), good sound capabilities, IDE hard disk, CD-ROM, mouse etc.

Russia's leading role in the ZX Spectrum's surviving has also resulted in something else: a steady stream of software titles released for these ZX Spectrum-based computers. Just pay a visit to the Virtual TR-DOS main page (http://trd.speccy.cz/) (Wiki (http://en.wikipedia.org/wiki/TR-DOS)), which is the largest archive of the software ever released for these models. I especially recommend downloading the full app / games database (it's the Virtual TR-DOS Games & Press Base (http://trd.speccy.cz/VTBASE.ZIP) link on the main page) and browsing the database. Titles with the type "RU" are all genuine games developed by Russian developers. Titles with the type "D" are also interesting because they show what projects Russian developers have embarked on but, then, either failed at or, at least, didn't deliver a final, fully working version. The dedicated demo download page is HERE (http://trd.speccy.cz/g/game_demo_ver.htm). I've even posted some screenshots of a somewhat working (!) Civilization and Wolf3D-clone in the The Comparison & Feature Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html) (“Chart” for short). You WILL want to check out these demos in a capable emulator (in either the desktop-based Unreal Speccy or its Windows Mobile version, UnrealSpeccyPPC) - they are really fun and clearly show these models (except for the really bad, to avoid the infamous "color clash" of the ZX Spectrum, one-colour graphics) are much-much better than anything imaginable on the original ZX Spectrum. You may also want to check out some scene demos (again, under a capable, compatible emulator); for example, the two ZX demos written by AND, author of UnrealSpeccyPPC. While, technically (mostly graphics-wise), these clones aren't as good as the Commodore 64, some demos (and genuine Russia-based) are really top-notch.

If, on the other hand, you "only" want to play old, original, commercial games written for the original ZX models and are not at all interested in advanced stuff like watching Russian demos written for somewhat more advanced Spectrum clones, you will also want to read on - you'll find all the answers in this article.

In this roundup, I present a full roundup of the Windows Mobile (both Pocket PC and MS Smartphone) emulators of the platform. As usual, I'm absolutely sure you won't find a better discussion of the subject anywhere else. And, in addition, I present you a lot of new and REALLY groundbreaking information never ever published in English - only in Russian (one of the several languages I have the honor to speak) and a very short news item in Czech (http://zxm.speccy.cz/?clanek=227). Yes, this is the FIRST roundup to report on the BEST ZX Spectrum emulator ever written, UnrealSpeccyPPC. You can be pretty much happy that I also speak Russian (along with a lot of other languages) – without my knowing the language, Windows Mobile users would have ended up being not reported on this really groundbreaking emulator, let alone being presented with a usable tutorial, which I also provide in here &#8211.

This roundup is somewhat different from the previous one discussing Commodore 64 emulators (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2025&more=1&c=1&tb=1&pb=1). The sole reason for this is very simple: of the five Pocket PC-capable Spectrum emulators, there is only one that should be preferred unless you need Portrait mode or an on-screen keyboard with all the original key labels (BASIC commands etc - note that Symbol Shift'ed characters are also shown by UnrealSpeccyPPC). With the C64 emulators, there were two strong Pocket PC contenders (PocketCommodore64 and PocketHobbit, but I've also explained how the worst C64 emulator, ComeBack64ce, should be used) and, of course, the Smartphone-based PocketHobbitSP2003. In the case of the Spectrum, fortunately, there is only one really recommended emulator, which greatly simplifies the discussion.

This means I put particular emphasis on the most recommended Spectrum emulator, UnrealSpeccyPPC, unlike the other two non-disqualified titles (PocketClive and SpectrumAnyWhere), let alone the two titles (the comparatively new, but with the arrival of UnrealSpeccyPPC, already-outdated PocketSpeccy and the very old (the last version was released in 1999), Handheld PC-specific SinclairSpectrumEmulator), which I haven't included in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html). Of course, as far as the MS Smartphone platform is concerned, I also put particular emphasis on the most recommended MS Smartphone emulator, FuseSP. This, of course, doesn't mean I completely ignore the two non-disqualified Pocket PC-specific titles (PocketClive and SpectrumAnyWhere) - I've very thoroughly compared them to the rest in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html). It's just that, in the textual tutorial below, I don't elaborate on how you can for example load programs. In the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html), you'll find most of the needed information though.

First, let's elaborate on whether it's at all worth emulating ZX Spectrum (or, of course, one of its more advanced, Russian clones).

1.1 Is Windows Mobile-based Spectrum emulation worth the trouble at all?

While, technically, the ZX Spectrum has FAR inferior gaming capabilities compared to the most important, direct competitor of the model, the Commodore 64, in certain cases (not taking into the account of emulating post-Soviet games / hardware), it, in order to emulate other platforms, may still be worth preferring.

First, there are several games not released for other platforms or, when released at all, these titles are not possible to get. For example, should you want to play the classic game Pssst (http://en.wikipedia.org/wiki/Pssst), you WILL need Spectrum emulation (unless you play the Flash remake (http://www.2flashgames.com/fullscreen.php?id=758)). Also, there are some other well-known titles not existing on many other platforms; for example, Lords of Midnight (http://en.wikipedia.org/wiki/The_Lords_of_Midnight) and Doomdark's Revenge (http://en.wikipedia.org/wiki/Doomdark's_Revenge). These two, excellent titles only existed on two other platforms (C64 and the Amstrad CPC); therefore, should you be unable to find for example a copy of the C64 / CPC version, you may end up having to play the Spectrum one.

Furthermore, as opposed to, say, emulating the Amstrad CPC (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2017&more=1&c=1&tb=1&pb=1) or the Commodore Amiga (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2015&more=1&c=1&tb=1&pb=1), the Spectrum is emulated without major glitches and on even very slow Pocket PC's and MS Smartphones. That is, while it's impossible to play most Amiga games on even the fastest Windows Mobile devices without stuttering sound, ZX Spectrum games run on even on lowest-end, 7-year-old models without problems. This also includes today's TI OMAP-based Pocket PC and Smartphone models, of course.

Supporting low-end hardware, fortunately, also means support for even low-end, low-resolution (176*220) MS Smartphones. As the Smartphone platform has way fewer games than its big brother, the Pocket PC, emulation becomes even more important. While, fortunately, there are some really excellent gaming console emulators for MS Smartphones (even 176*220 ones) - for example, Masterall (http://www.pocketpcmag.com/blogs/index.php?s=Masterall&sentence=AND)'s emulator masterpieces and SmartGear (http://www.pocketpcmag.com/blogs/index.php?s=SmartGear&sentence=AND), home computers are generally not emulated on the platform (that is, there are no for example Atari ST (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2018&more=1&c=1&tb=1&pb=1) or Amiga (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2015&more=1&c=1&tb=1&pb=1) emulators for the MS Smartphone). The lack of (home computer) emulators and native games makes it very important for any MS Smartphone user to have access to a plethora of ZX Spectrum games, which are, as has already been pointed out, perfectly emulated even on low-end, cheap mobiles.

1.1.1 When to stick to emulating another platform?

Of course, not all titles should be played in a Spectrum emulator. For example, when a particular title also exist for the Nintendo NES (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1940&more=1&c=1&tb=1&pb=1), the SNES (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1939&more=1&c=1&tb=1&pb=1), NEC’s TurboGrafx-16 (PC Engine) (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1944&more=1&c=1&tb=1&pb=1), the Sega Master System (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2014&more=1&c=1&tb=1&pb=1) (SMS), Genesis / Mega Drive (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1933&more=1&c=1&tb=1&pb=1) or Game Gear (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2014&more=1&c=1&tb=1&pb=1), going for these emulators may turn out to be a better choice. (Please do click the links for the complete rundown of the Windows Mobile emulation possibilities. Also make sure you follow the other, for example Commodore 64 (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2025&more=1&c=1&tb=1&pb=1) / Amiga (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2015&more=1&c=1&tb=1&pb=1) / Atari ST (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2018&more=1&c=1&tb=1&pb=1) / Amstrad CPC (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2017&more=1&c=1&tb=1&pb=1) / IBM PC (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1969&more=1&c=1&tb=1&pb=1) links to emulating home computers.) With the exception of SNES, the emulators of these systems are also very low-end handheld-friendly and the games, in general, are at least as good as on the Spectrum (and, in MOST cases, technically MUCH better, with much more advanced graphics and/or music).

As a rule of thumb, if you plan to play a given title but would like to get the best gaming experience, go to Wikipedia, look up the given title and check out what other platforms it has been ported to (it’s listed in the text box on the right, in the “Platform(s)” row). In general, you can safely ignore the Commodore Amiga (as long as you want sound) ports. If there is an Atari ST port (another, more advanced home computer with excellent Windows Mobile emulation capabilities), you may want to check it out; as is the case with most C64, NES, SNES, SMS, PC Engine, Genesis, GBA and Game Gear ports. Most of these games / ROM's are available on the Web. In my past articles, I've explained how you can find these titles and what you will need to play them on your Windows Mobile device.

The same stands for games that have a native Windows Mobile interpreter; for example, Magnetic Scrolls (http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1911&more=1&c=1&tb=1&pb=1) titles. Speaking of these excellent games, unfortunately, the ZX Spectrum versions have no pictures at all - as opposed to even the C64 version. Therefore, in no way should you use a Spectrum emulator to enjoy these games – unless you don’t need images, that is.

1.2 Downloading Spectrum games / apps / demos off the Web

All Spectrum emulators are common in that they, generally, read standardized file formats. If you're new to Spectrum emulation, you need to know about tape and snapshot images (and, if you would like to access the mostly post-Soviet TR-DOS titles, disk files). All emulators handle both tape and snapshot formats; UnrealSpeccyPPC, THE most recommended emulator, also handles disk images.

The main source of original (non-post-Soviet) Spectrum games and other titles is worldofspectrum.org (http://www.worldofspectrum.org/). It at least lists all the available games. Note that, should it not contain the tape images of a given title because of (C) reasons, you will need to Google around. It’s by doing the same that I've found a source (http://spectrummagic.emuunlim.com/Spectrum%20Magic%20N-R%20Games.htm) of R-Type (http://www.worldofspectrum.org/infoseekid.cgi?id=0004256), for example. Also, the Virtual TR-DOS main page (http://trd.speccy.cz/) has almost all old titles; I'd, however, prefer worldofspectrum.org to it because it has a lot of other, great information (game manuals, links to original articles / tips), unless you look for something not available in the latter or, of course, post-Soviet titles.

(Note that, still speaking of worldofspectrum.org, it has a pretty good and up-to-date emulator list (http://www.worldofspectrum.org/emulators.html), also with WinCE (PPC) (http://www.worldofspectrum.org/emulators.html#wince) and Smartphone (http://www.worldofspectrum.org/emulators.html#smartphone2) sections. The former still doesn’t list UnrealSpeccyPPC.)

As far as scene demos are concerned, your best friend will be zxdemo.org (http://www.zxdemo.org/). It contains a generic, international (not just post-Soviet) overview of the scene, albeit, sometimes, it also contains weird stuff like this article (http://www.zxdemo.org/article.php?id=8), which, it seems, mistakes Finland for a post-Soviet country ("Q. How active is the demo scene in the UK? A. Well, on the Spectrum there's just a few of us keeping it all together. Over here the Spectrum scene is more focused on the whole retro gaming thing. As far as the wider scene goes, there are a couple of groups, but we're not really as active as other places like Finland. It does make you wonder - do they teach kids C at kindergarten or something?" FYI: it's not for the ZX Spectrum demoscene that Finland is famous for. In this regard, the two ex-Soviet, Russian-speaking countries are WAY ahead of Finland.) The direct Spectrum demo / tune downloads are HERE (http://www.zxdemo.org/partycalendar.php).

1.3 Using the emulators

After you've downloaded the games you'd like to play (demos you want to watch etc.) and installed the emulator, start the latter. Note that as none of the current emulators support compressed (ZIP etc.) files, you will need to decompress the files before transferring them to your handheld.

The target directory is very important as it's only one title, the (otherwise) most recommended UnrealSpeccyPPC, that is capable of loading Spectrum titles from anywhere in the file system. This is particularly true when used together with Mad Programmer's File Dialog Changer (FDC) in order to be able to navigate to any directory, and not just the root and the direct subfolders of the root, as is the case with WM5+. Please see my earlier articles on how FDC should be installed and used.

The other emulators (including the only one native MS Smartphone emulator, FuseSP) all require the files to be put in a specific directory so that the emulator can find them. They are, in all cases, either the home directory of the emulator or a subdirectory of it. This also means you MUST install the emulators on a storage card if you want to avoid your built-in storage to be overcrowded with Spectrum files.

Please see the "File dialog?" row in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html) for more information on what these directories are.

1.3.1 Loading programs into the emulators

The two (main) types of available media also means vastly different methods of loading them.

1.3.1.1 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 and Z80; the latter two being the most common.

1.3.1.1.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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenFile.bmp.png); note that, as with all my all screenshots, I make sure the focus is on 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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenFile3.bmp.png). After this, click the file to load (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenFile2.bmp.png) and, then, click Start at the bottom left (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenFile4.bmp.png) (later, when you exit back to this screen to, say, make some changes in the settings, this button will be renamed to Resume (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenFile5.bmp.png)). The execution will immediately be transferred to the given title.

1.3.1.1.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 (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPLoadsnapshot1.bmp.png); in the Select Snapshot GUI list control (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPLoadsnapshot2.bmp.png), select the one you'd like to load (pressing Action will result in being presented a full, vertical list (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPLoadsnapshot3.bmp.png) 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.

1.3.1.2 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 (UnrealSpeccyPPC is one of them; 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.

1.3.1.2.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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile1.bmp.png) (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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile2.bmp.png) (so that the previous program, if present, is removed from the emulator).

Now, after the emulator resets itself, you'll be taken to the BASIC prompt of the emulator. 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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile3.bmp.png). Now, press the somewhat smaller "S" in the lower right area of the on-screen keyboard (it, then, becomes red (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile4.bmp.png) showing it’s in effect) and press " (Symbol Shift'ed character of the P key). Repeat the same so that you see (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile6.bmp.png) the command

LOAD ""

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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenTapeFile7.bmp.png).

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.

1.3.1.2.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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenDisk1.bmp.png). (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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenDisk2.bmp.png). 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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenDisk3.bmp.png). (With most, say, Virtual TR-DOS (http://trd.speccy.cz/) 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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecOpenDisk4.bmp.png).

Note that, sometimes, also the mouse emulation works on this screen.

1.3.1.2.2 Tape file loading in FuseSP

To load a tape file in FuseSP, in the “UI mode”, select Menu / 2 Load Tape (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPTapeloading1.bmp.png) 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 (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPTapeloading2.bmp.png). Should you untick it, you would need to, after manually resetting the emulator (Menu / 6 Reset (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPResetEmu.bmp.png)), 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

1.3.2.1 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 (the default) 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).

1.3.2.2 Buttons

Better emulators also let for redefining buttons. This is essential when dealing with non-Kempston (http://en.wikipedia.org/wiki/Kempston_joystick) 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).

1.3.2.2.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 (http://www.winmobiletech.com/062007ZXSpectrum/chart.html), you'll need to click Advanced Settings, tap-and-hold the functionality you’d like to assign and select Assign (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecButtonRed1.bmp.png). (If you no longer need the previous assignment(s) of a button, just select Empty (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecButtonRed2.bmp.png) 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 that you'll need to modify existing button assignments as the built-in, pre-defined ones cover most games.

1.3.2.2.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 (green) button), Space (hang up (red) button)) 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 a joystick / game 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 (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysUus1.bmp.png)", select a hardware button (for example, Left Softkey (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysUus2.bmp.png)) to assign the given original key to, press the Action button to quickly bring up the selection list (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysUus3.bmp.png), select the new assigned key (for example, in here, “A” (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysUus4.bmp.png)) and press Done (left softkey). The assignment will change (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysUus5.bmp.png).

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 (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysKempemuchk.bmp.png) (enabled by default) and mirror the D-pad directions to the phone keys (http://www.winmobiletech.com/062007ZXSpectrum/FuseSPRedefKeysMirror.bmp.png) 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 the BUTTONS tab in Advanced Options. To do this, go to Menu / 4 Options and tick “Device has full keyboard” (http://www.winmobiletech.com/062007ZXSpectrum/fuseSPfullkbd.bmp.png). 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.

1.3.2.3 Joysticks

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 was 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 QAOP 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 (http://www.winmobiletech.com/062007ZXSpectrum/UnrealSpecButtonSelectPredefd.bmp.png). 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 of each block) 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 two 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 (http://en.wikipedia.org/wiki/ZX_Interface_2), 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.

1.3.2.4 Changing screen orientation; image downscaling issues

As opposed to C64 emulators, all Spectrum 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 (http://www.winmobiletech.com/062007ZXSpectrum/fusesporientationswap.bmp.png).

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), zooming into a given, selectable region. Otherwise, you will have pretty ugly, missing columns as can be seen for example in the Rainbow Islands title loader screen (http://www.winmobiletech.com/062007ZXSpectrum/CliveMain.bmp.png). If you look at it (and compare it to the same screen rendered in Landscape mode - screenshot for example HERE (http://www.winmobiletech.com/062007ZXSpectrum/UnrealRAINBOWISLANDS.bmp.png) -, where no pixel columns are dropped), you'll qickly realise that, because of the dropped pixel column, the letter 'i' is completely dropped in the lower left corner, in the word "Taito".

Also, it's worth comparing this approach to that of FuseSP, which uses a very clever approach to interpolating dropped columns; therefore, no information will be lost. Just take a look at THIS FuseSP screenshot (http://www.winmobiletech.com/062007ZXSpectrum/RainBowIslandsFuseSPPortrait.bmp.png) of the same loader screen - as can be seen, the clever interpolation made sure no information was lost (no missing 'i' letters or other pixel columns), unlike with the case of PocketClive. As can be seen, 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-friendly, albeit a bit blurry representation in QVGA mode. On 176*220 screens, of course, this can't really help the situation - albeit is still MUCH better than "dumb" column dropping.

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.

2. Pocket PC (Windows Mobile 6 Professional / Classic) emulators

2.1 UnrealSpeccyPPC (http://and.intercon.ru/) 1.02

This new, excellent and, outside the ex-Soviet region, absolutely unknown emulator, a port of the also successful and excellent Unreal Speccy (http://sourceforge.net/projects/unrealspeccy), is by far the best Spectrum emulator out there. It has all the goodies one would expect from a decent emulator: auto fire, huge and, particularly on VGA devices, (almost) transparent on-screen keyboard (on QVGA devices, the buttons are considerably larger as can be seen in HERE (http://www.winmobiletech.com/062007ZXSpectrum/fuseSPQVGAfullkbd.bmp.png)), support for all tape / snapshot and even disk formats. making use of the high resolution of VGA devices etc.

http://www.winmobiletech.com/062007ZXSpectrum/UnrealRAINBOWISLANDS.bmp.png

The main discussion thread discussing this emulator is HERE (http://zx.pk.ru/showthread.php?t=4982) (Babelfish "translation" HERE (http://babelfish.altavista.com/babelfish/trurl_pagecontent?lp=ru_en&url=http%3A%2F%2Fzx.pk.ru%2Fshowthread.php%3Ft%3D4982)). There are some other threads at other sites; for example, THIS (http://4pda.ru/forum/index.php?showtopic=13525).

Good news for MS Smartphone users is that the CAB file can be installed and the emulator run on MS Smartphones as can be seen in here:

http://www.winmobiletech.com/062007ZXSpectrum/UnrealSPRunningPawn.bmp.png

(note that it was only to prove the emulator is running on a QVGA Smartphone that I’ve made the task bar displayed (via activating SPHelper). Otherwise, it’s hidden.)

While the Smartphone version is in no way flawless, you will certainly want to play a bit with it to find out its weaknesses / strengths.

2.2 PocketClive (http://pocketclive.emuunlim.com/) v2B

A famous (but long-abandoned) emulator is PocketClive.

The most important difference between PocketClive and the most recommended UnrealSpeccyPPC is that PocketClive uses the Portrait screen resolution and a full keyboard showing all the original labels. Unless you’re an experienced Spectrum user and you DO want to know how the BASIC commands can be accessed on the original Spectrum keyboard, you may want to give a try to this emulator. (Or, alternatively, PocketSpeccy, which uses exactly the same on-screen keyboard, but is capable of reading TR-DOS disks; that is, .TRD files.)

http://www.winmobiletech.com/062007ZXSpectrum/CliveMain.bmp.png

As this emulator is NOT recommended (but not disqualified either), it’s in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html) that you’ll find the most information on using this emulator, NOT in the first chapter (which only discusses the two recommended emulators suiting the needs of 96-97% of existing users: UnrealSpeccyPPC for the PPC and FuseSP for the Smartphone).

Not many English threads discuss this emulator. The ones that at least mention it are for example "i just played Simcity on my Be300 (http://forum.brighthand.com/showthread.php?t=142487)" or THIS (http://www.aximsite.com/boards/games/1378-emulators.html)
and THIS (http://www.aximsite.com/boards/applications/194910-dont-ask-spectrum-emu.html) AximSite threads, THIS (http://www.pocketgamer.org/showthread.php?s=&threadid=528) PG, THIS (http://www.pocketpcthoughts.com/forums/viewtopic.php?t=5615&highlight=pocketclive) (“Pocket Genesis”) and THIS (http://www.pocketpcthoughts.com/forums/printview.php?t=31810&start=10) (“Just Chattin' - What games are on your PPC right now? (omit none!)”) threads. In the Russian language area, the situation is MUCH better; see the following threads: 1 (http://zx.pk.ru/showthread.php?t=148&highlight=PocketClive), 2 (http://zx.pk.ru/showthread.php?t=2611&highlight=PocketClive), 3 (http://zx.pk.ru/showthread.php?t=1901&highlight=PocketClive), 4 (http://zx.pk.ru/showthread.php?t=3924&highlight=PocketClive).

2.3 SpectrumAnyWhere (http://www.webcids.com/spectrumanywhere/Defaulte.aspx) 1.1

This is another also-run emulator without any really outstanding features. UnrealSpeccyPPC is orders of magnitude more featureful.

The most important fact you need to know about this emulator that it can not directly be installed on WM5+ devices. This, however, can easily be fixed with a quick hack I’ve described in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html). Also note that you will NOT want to use it on WM2003(SE) devices because of the on-screen keyboard coordinate offset problems.

Even fewer existing threads discuss this title; the only English thread I could find was just a mention at Xda-developers (“amiga emulator on your pocketpc (http://forum.xda-developers.com/showthread.php?t=227258)”). In Russian, there aren’t many more threads either; in addition to the zx.pk.ru threads linked in the previous section, I also recommend THIS (http://zx.pk.ru/showthread.php?t=863).

2.4 PocketSpeccy (http://pocketspeccy.narod.ru/)

This emulator is pretty new, but already discontinued emulator “only” supports ".trd" disk image files – that is, it can NOT be used with any “old”, “traditional” tape / snapshot files. It has absolutely no GUI: for example, it’s in the config.ini that you need to supply the disk to load (and all the other – not many! – parameters) before starting the emulator. Pretty awkward, if you ask me.

As it’s now discontinued and superseded by UnrealSpeccyPPC, I do NOT recommend it and don’t even include in the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html).

Should you still be interested in the emulator, check out THIS (http://zx.pk.ru/showthread.php?t=3924) Russian language, long and informative thread.

2.5 SinclairSpectrumEmulator (http://www.pocketpccity.com/software/hpcpro/Sinclair-Spectrum-Emulator-2000-05-18-ce-hpcpro.html) 1.1

This Handheld PC-based emulator is really outdated (from year 1999) and is, therefore, in no way recommended. Get UnrealSpeccyPPC instead. There is just no point in bothering with it – unless you have a Handheld PC, that is. But, even then, you may want to prefer trying to hack UnrealSpeccyPPC to run on your H/PC (assuming it has an ARM(-compatible) CPU).

3. MS Smartphone (Windows Mobile 6 Standard) emulators

3.1 FuseSP (http://www.aooa27.dsl.pipex.com/FuseSP.htm) 0.22

This is THE emulator you should try first if you have any MS Smartphone model. It’s pretty capable (except for the lack of direct, phonepad-based text input) and highly recommended.

http://www.winmobiletech.com/062007ZXSpectrum/FuseSPMain.bmp.png

Please consult Chapter 1 for usage tips and don’t forget to scrutinize the Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html) for additional tips and tricks.

Related threads: “A few thoughts on useability (http://forum.xda-developers.com/showthread.php?t=306453)” ; FUSESP in QVGA Landscape 320*240...... (http://www.modaco.com/index.php?showtopic=243054) ; ZX emulator FuseSP v0.12a with NumKeys support, I added support for number keys (http://www.modaco.com/index.php?showtopic=207455).

3.2 PocketClive for SP2002 (ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/smartphone2002/PocketClive.cab) 2B-0.2

Unfortunately, this emulator seems to be only running on the oldest, 2002 Smartphone version, but not on newer (SP2003+) ones. I was just unable to access any kind of menu on either my WM6 HTC Vox / s710 or WM5 HTC Oxygen / s310. That is, don’t bother unless you have a SP2002 Smartphone (for example, the non-upgraded Moto mpx200).

4. The Comparison & Feature Chart (http://www.winmobiletech.com/062007ZXSpectrum/chart.html)

As with ALL my Comparison & Feature Charts, this one is a MUST to check out as it offers a great way of comparing the reviewed titles. It, as with my past charts, contains tons of screenshots (don’t forget to click the links), usage tips and mini-tutorials.

It’s available HERE (http://www.winmobiletech.com/062007ZXSpectrum/chart.html).

The test / rows should be pretty much self-explanatory. If you at least superficially have read my past emulation-related articles (if you haven’t, do it NOW – they are just the best emulation-related articles, no wonder even Michu himself made them sticky in the official AximSite emulator forum, and many of them have also been frontpaged by several leading Windows Mobile-related sites!), you'll already know what the most tests are all about.

Note that, in the chart, I haven’t listed some other, good, famous games for the Spectrum. They also run under both FuseSP and UnrealSpeccyPPC without problems. Some examples (also see the “100 Best games (http://www.worldofspectrum.org/ystop100.html)” list; original version also HERE (http://dialspace.dial.pipex.com/town/estate/dh69/wos/world/ys/top100.htm)): Deathchase (http://www.worldofspectrum.org/infoseekid.cgi?id=0001303), ALL OR NOTHING (http://www.worldofspectrum.org/infoseekid.cgi?id=0000167), STOP THE EXPRESS (http://www.worldofspectrum.org/infoseekid.cgi?id=0004916), HEAD OVER HEELS (http://www.worldofspectrum.org/infoseekid.cgi?id=0002259), THE SENTINEL (http://www.worldofspectrum.org/infoseekid.cgi?id=0004399), NEBULUS (http://www.worldofspectrum.org/infoseekid.cgi?id=0003377), Impossible Mission (http://www.worldofspectrum.org/infoseekid.cgi?id=0002462), Turrican (http://www.worldofspectrum.org/infoseekid.cgi?id=0005472).

Menneisyys
06-18-2007, 07:34 AM
Article updated & cleaned up.