PlayZX is an Android application that lets you select from thousands of Sinclair ZX Spectrum games and play them through the headphone jack to load them onto your Speccy. You can also select your local (on the device) files, convert them to sound files, and then play them. This way, you can load games for the ZX Spectrum micro and a few other retro computers with a compatible audio jack.
Note: This is not an emulator; it will not play those games. You need a physical ZX Spectrum to load said games into.
The application works with a large database of games (over 12,000 titles!) and can search for each game online. It does that in the background – you select a game you want to “play,” and within a few seconds, the image should be found, downloaded, converted to a sound file, and then played through the audio output on your device.
For the users of retro computers other than Sinclair ZX Spectrum or to facilitate your own game collections, this application can use your locally-stored files, convert them into sound files, and play them.
In particular, it can decode and play files for Amstrad computers (extension CDT), Sinclair ZX81 (extension P), and MSX computers (extension TSX, added by Israel Mula “Imulilla” – thanks!)
You can download PlayZX from the Android Play Market here:
If you have an older Android device that does not support ARMv8 architecture but is still based on armeabi-v7a, you will not get the updates via the Play Store since I am only publishing the ARMv8 version. However, I have compiled a build for those older devices; you can download it here.
Also, this is the official alternate location for the ARMv8 app build (the newest version is 2.4).
Despite what the Play listing shows, there are no in-app purchases; I made this app completely free in 2016, and there are no annoying ads. But if you like the app and end up using it, you could always buy me a coffee or drop me a note!
These are some common issues that people experience and some possible ways to fix them:
- Cannot browse local folders
If you cannot browse and select your own files, it is likely caused by new Android permissions that Google changed with their newer development kits. Please try this: Go to “System” -> “Apps & Notifications” -> Select “PlayZX” app -> scroll down to “Permissions” and allow “Storage” permission.
- It plays a file, but ZX Spectrum does not seem to register the sound at all
This is likely caused by the phone/tablet’s overall sound volume. There are two ways to change it: via a physical button on your device and the app’s “Settings” menu. Most of the time, you will need to max out the volume. However, please realize that various devices have a different voltage output through their headphones jack – and some devices may not work since they don’t output a sufficiently large voltage. That is not the PlayZX app problem – from the software perspective, it may be generating the “strongest” wave file possible (with maxed out, clamped values), while your contemporary device’s hardware bits do not provide enough signal volume to feed those old micros which were based on a 5-Volts technology.
For example, my Samsung tablet outputs 2.2Vpp on its jack, but my Motorola phone does only 1.14Vpp. Both still work reliably when I invert one stereo channel.
- Can I do anything else to increase the volume?
Use a stereo audio cable and turn on these options:
If you use a stereo cable, do not have your device plugged into a USB or any other wired power connector. The device’s ground must float so the L/R stereo channels map to Spectrum’s internal ground and signal connections through its (mono) jack.
This method is nicely described here: https://retrocomputing.stackexchange.com/questions/773/loading-zx-spectrum-tape-audio-in-a-post-cassette-world
Also note that if you use the “Invert one stereo channel” option and try to listen to the sound through your phone speakers, you should not hear anything since the two channels should cancel each other. If you hear something, though, your phone is probably changing the “stereo” signal somehow – which is also not good.
Some users report using a “sound booster app” which amplifies the volume even further (?). I did not try it, but that’s also something you might try if nothing else works.
Make sure that you don’t have any other software running on the device that would mutilate the sound (various “equalizers”, “ambiance enhancers,” etc.)
Put the device into “Do not disturb” mode to avoid a random notification mixed with the game sound.
Recently I got an email from “BrancoRP2000” (nickname), where he used a Bluetooth receiver dongle to load games. Here is his link: Carregando programas por bluetooth no tk90x – OLDPLAYERS
There are several such receivers, as he said, and your mileage may vary. I went ahead and picked one from Amazon – and it worked for me. This is the one I purchased:
This may be a reasonable solution for many of you whose phone outputs too low a voltage on the headphone output.
Games are listed hierarchically, with the main screen sorting them alphabetically.
Many games have variations; some are re-published with minor tweaks or fixes, and some are simply different editions of the same game. The game screen will show you each edition (that the app knows of) for a selected game.
At this point, you can either select a game variation and press the PLAY button or “rate” it to add it to your own list of favorite games.
As you PLAY the sound, you can PAUSE it and REWIND to any gap separating data chunks.
The Favorites list keeps your list of games you’d like to access quickly without searching for them. The 5-star rating system is for your convenience – the games on the favorites list will be sorted by the rating you give them.
If you wish to remove a game from a list, give it a 1-star rating and then click on the 1-star rating again. You will see the refreshed list once you click on any other page and return.
The Search tab allows you to search for a game in several ways. The search is dynamic and will show you the results as you type.
On the bottom of this tab is a link to a web page that lists a couple of sites that host collections of program images. Since PlayZX does not index ZX81 and MSX files but only decodes their image formats, those links provide some convenience for getting those images.
The simplest way to search a ZX Spectrum image database is to search by a game name.
If you wish to search for a publisher name instead, press SPACE as the first character entered, and the edit field will change to yellow, showing you that you are now searching for a publisher.
The third and most powerful search method is to type in a MySQL query. Press the equal sign character (“=”) as the first character to enter that mode; the edit field will change color to cyan, showing you that you are now expected to type in a MySQL query.
Note that only the first 50 search results will be shown, so if you don’t see your game on the list, revise the search. You may use an underscore character (“_”) as a substitute for any letter or a percentage character (“%”) to substitute any groups of letters.
The Local tab allows you to select, decode and play your own image for ZX Spectrum and ZX81, and MSX machines. However, the test pilot tone is only for ZX Spectrum: when selected, it will play continuously until you click on the STOP button, so you can have it as long as you need to adjust the signal quality.
Click on the SELECT button to open a file browser. Select an image from your device and then click the SELECT button again.
The middle button, UNZIP, can be used to unzip a file in place since some images, or sets of images, might be pk-zipped.
You can PLAY the selected file immediately or click on the ADD button to add it to your local list, which will keep references to the locations of those images for your convenience so you don’t have to search for them again.
Suppose you wish to delete an image reference from your local list, press and hold the delete button (X). This will not remove it from your device storage where you selected it from, but it will only remove the name from this list.
Some games do not work or do not load cleanly. Although I have put a lot of effort into trying to clean up the database and pick only games that, according to a certain heuristic, should work, in practice, there are not working. In particular, games that utilize various speed-loading techniques may not work. We’ll live with that.
You cannot enter a local folder with “#” in the name (an issue with the software framework I am using). Crazy, but we’ll also live with it. Just don’t name your folders that way 🙂