Retro game

Review: ZD V Full Vibration Feedback 2.4G Wireless Controller Gamepad Joystick For PC, Playstation 3, Android and Steam

ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick for PC (Windows XP/7/8/8.1/10), the PlayStation 3, Android devices and Steam.

For the sake of clarity, this is a review of the ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick for PC (Windows XP/7/8/8.1/10), the PlayStation 3, Android devices and Steam. It was purchased with hard-earned cash, so this review reflects that in terms of value for money.

The controller was purchased to compliment a RetroPie set-up and for occasional use with games on Steam.


The ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick is designed and manufactured by Dongguan Zhi Dong Electronic Technology Co. Ltd. in China. They are Amazon Marketplace Sellers and offer an incredible piece of gaming hardware for the money. A wired version of this model is also available with the same features as the wireless one. Both controllers are Plug and Play and PC fully compatible. They both contain a 360 core, which means that they are recognized as XBOX 360 controllers.

Check prices on amazon.co.uk:-

ZD V Full Vibration Feedback WIRELESS Controller Gamepad Joystick

 

ZD V Full Vibration Feedback WIRED Controller Gamepad Joystick


Packaging

The ZD V Full Feedback wireless controller arrives quickly and is packaged in a brown cardboard box when ordered from Amazon. Inside is the blue cardboard box that houses the wireless controller and its accessories.

Packaging: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Packaging: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Two polystyrene inserts protect the ZD V wireless controller during shipping. You will find the controller in a plastic bag (not shown) for additional protection. The palm grips of the controller are protected further with easy-to-remove plastic film.

Inside the Box: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Inside the Box: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Inside the box are the ZD V Full Vibration Feedback 2.4 GHz Wireless Controller GamePad Joystick itself and  a second bag containing a 2.4GHz USB dongle; a USB to micro USB cable; a USB to micro USB adapter to enable connection to Android devices, and a folded piece of paper containing the operating instructions, product specifications and manufacturer details.

Contents: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Contents: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Manufacturer Details & Product Specifications:

  • Dongguan Zhi Dong Electronic Technology Co. Ltd., China.
  • Model: ZD-V208
  • Product size: 156 x 105 x 65mm
  • Working modes: XInput / Direct Input / Android
  • Interface: USB 2.0 / 3.0
  • Product weight: 210g
  • Battery: Non-accessible, rechargeable polymer lithium battery.
ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Features & Operation

The ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick is equipped with the following buttons, triggers and joysticks:

Controls: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Controls: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Both the LEFT STICK and RIGHT STICK are stick buttons and can therefore be clicked: LSB and RSB.

The trigger buttons [LT & RT] feel like single click buttons. They are, in fact, pressure sensitive buttons that provide linear graduation through pressure sensing. This means that the harder you press them, the greater the input value sent to your game. This feature means that the gamepad can be used in conjunction with racing games that require progressive braking and acceleration, or shooting games, where a one click shot is all that is needed.

Shoulder and Trigger Buttons - ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Shoulder and Trigger Buttons – ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Integral Rechargeable Battery

A micro USB port, located in between the shoulder and trigger buttons, is used to charge the on-board lithium battery and connect the controller to an Android device. The battery can be charged by connecting the device to a suitable 5 volt power supply via the supplied USB cable. A computer USB port or mobile phone charger will suffice. A charging unit is not supplied with the product, presumably to keep the cost of the units low.

The ZD V Full Vibration Feedback 2.4 GHz Wireless Controller GamePad Joystick is shipped with the battery partially charged. The temptation is to start using the game controller straight out of the box without fully charging the battery. I encountered numerous problems when I did just this, problems that disappeared when the device was fully charged later.

Since the lithium battery is integral with the controller, this means that it cannot be changed easily.

Important points for consideration are these:-

  • If the battery runs flat during a gaming session, the battery cannot be replaced. Instead, you would have to connect the controller to a charger, which means that you are now tethered to your charger until the battery has sufficient juice for you to remove it.
  • Lithium batteries have a finite lifespan due to the repetitive cycle of power depletion and recharging. When the battery begins to fail to hold charge for a decent period of time, then changing it may be difficult and expensive.
Rear View: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Rear View: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

After a full charge, the ZD V Full Vibration Feedback 2.4 GHz Wireless Controller GamePad Joystick battery power lasts for a considerable amount of time. On a full charge, the battery lasts between 8 and 15 hours of continuous game play. These figures are in line with the published specifications.

Connection

Connection to gaming hardware if relatively simple. Just insert the wireless USB dongle into a USB port of your gaming equipment and select the operation mode of the gamepad with the HOME button.

On a PC platform, the gamepad is Plug and Play – except for Windows XP. For use on Windows XP, you will need to download and install the 360 controller driver from Microsoft’s official website before plugging in the USB dongle.

PS3 and Android platforms are Plug & Play.

How to Turn the ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick ON and OFF

  • TURN ON: Press the HOME button.
  • TURN OFF: Long press the BACK & B buttons together. Alternatively, the gamepad will automatically turn off after a reasonable time of inactivity.

Mode and Indicator Light Status

Press the HOME button to cycle through the input modes compatible with your device. The  colour of  the indicator light specifies what mode the gamepad is in.

The indicator light will flash until it detects a suitable driver on your gaming system. The indicator light will then shine constantly. Modes can be forced by long holding the HOME button.

Input Modes: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

Input Modes: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

  • Use the XInput mode to enable the full vibration feedback feature. It is recommended for PC / XBOX360 games that have been written to provide vibration feedback.
  • Use the Direct Input mode for the PS3 and other platforms like the Raspberry Pi.
  • Use the Android mode when paired with an Android device.

Note: the full vibration feature will only work in XInput mode AND when the games have been written to support it.

Exchange D-PAD and LEFT STICK Functions

A great feature of this gamepad is that the D-PAD and LEFT STICK controls can be swapped easily, back and forth, by pressing BACK and the LEFT STICK BUTTON at the same time.

D-PAD LEFT STICK Exchange: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

D-PAD LEFT STICK Exchange: ZD V Full Vibration Feedback Wireless Controller Gamepad Joystick

If you want to use the ZD V Full Vibration Feedback 2.4GHz Wireless Controller Gamepad Joystick with RetroPie on the Raspberry Pi, then this function is fantastic for choosing the optimal left thumb controller for a particular ROM, quickly.

Conclusion

The ZD V Full Vibration Feedback 2.4 GHz Wireless Controller GamePad Joystick is rich with useful features that make it a versatile gaming accessory. With its 360 core and its range of compatibility modes, it can be used in conjunction with many gaming platforms. And, being a wireless controller means that you will not be tethered to your gaming hardware and restricted in range as you would be with its wired counterpart.

This gamepad feels good in the hands of both adults and children. It has been designed and produced to a quality resembling that of a PS3 controller. The construction is good; the buttons respond well and the joysticks work with precision.

Positives:

  • A versatile wireless controller with a XBOX 360 core, resulting in cross-platform compatibility. Fully compatible with PC, PS3, Android and other devices using Direct Mode.
  • Full vibration feedback when used in conjunction with compatible games.
  • Integral battery with continuous play time of 8 to 15 hours.
  • JD-Switch: The ability to swap the D-PAD and LS controllers in-game.
  • LT & RT are pressure sensing switches. This means linear and precise control in racing games is possible, depending on how you press.
  • Very good build quality, resembling that of a PS3 controller.

Negatives:

  • The controller is made from black glossy plastic, which attracts fingerprints. Very easy to wipe clean though.

Buy:-

ZD V Full Vibration Feedback 2.4GHz WIRELESS Controller Gamepad Joystick

ZD V Full Vibration Feedback WIRED Controller Gamepad Joystick

Track and Field

How To Install MAME On Linux Mint

How To Install MAME On Linux Mint

This guide shows you one of the ways to install the MAME arcade emulator on Linux Mint and then configure it to point at your ROM folder path.

This tutorial concludes with the installation of a mame graphical user interface frontend called Gnome Video Arcade, which improves the selection of your favourite games.

Prerequisites:

  • Linux Mint (Although this is a similar procedure for Ubuntu).
  • Your compatible arcade ROMs.
  • A few minutes to complete the installation and configuration.

1. How to Install MAME on Linux Mint

1,1 Launch the Linux Mint Software Manager by clicking on the Menu button and selecting it from the list. Enter your administrator password when prompted.

1.2 Type mame into the search bar and press Enter on your keyboard.

Search for MAME in the Software Manager | Linux Mint

Search for MAME in the Software Manager | Linux Mint

1.3 Select mame – Multiple arcade emulator (mame) and then Install it.

Install MAME | Linux Mint Software Manager

Install MAME | Linux Mint Software Manager

2. How to Configure MAME on Linux Mint

2.1 Open up a Terminal command window by pressing Ctrl + Alt + T

2.1 In the terminal window, type the following command exactly to edit the MAME configuration file, mame.ini. Enter your administrator password when prompted.

sudo gedit /etc/mame/mame.ini

2.2 Look through the configuration file and locate:

# Default data search paths
rompath
Alter the rompath Parameter to Point to Your Rom Folder

Alter the rompath Parameter to Point to Your Rom Folder

Change the rompath parameter to point to your ROM folder.

Here, I have opted to store my ROM files inside a hidden folder in my Home directory(*). The dot that precedes the folder name mame indicates that this folder is hidden.

Similarly, make the appropriate changes to point mame to your ROM artwork and sample folders if you have them.

Note (*)To toggle the visibility of hidden files and folders in a directory listing, press Ctrl + H.

2.3 Continue to scroll through the configuration file.

If you have more than one CPU core then it is beneficial to enable multithreading. At the multithreading parameter, delete the zero and replace it with a one to switch this function on.

Likewise, other MAME features can be enabled in this part of the configuration file by replacing zeros with ones. For example, MAME can be instructed to start in a window instead of full screen mode.

Remember: 0 (zero) = Disabled | 1 (one) = Enabled

MAME Configuration File - Multithreading | Linux Mint

MAME Configuration File – Multithreading | Linux Mint

2.4 Save the configuration file.

Save your changes to the mame.ini configuration file by pressing Save. Then close the editing window.

Save Changes to the mame.ini Configuration File | Linux Mint

Save Changes to the mame.ini Configuration File | Linux Mint

3. How to Run MAME in Linux Mint

3.1 MAME can be run in a number of ways:-

  • In a terminal window, type mame and press Enter.
  • Menu > Games > MAME™ Arcade Emulator
MAME | Linux Mint

MAME | Linux Mint

4. How to Add Gnome Video Arcade to MAME on Linux Mint

The GNOME Video Arcade application allows you to play classic coin-operated arcade games on your GNOME desktop using the Multiple Arcade Machine Emulator (MAME).

GNOME Video Arcade provides the following features:

  • Play classic arcade games on your Linux desktop.
  • Tag favourite games to find easily.
  • Read historical information and tips about your favourite games.
  • Game recording and play back.
  • Searching.

4.1 Back in Software Manager, type mame in the search bar then select gnome-video-arcade (Simple mame frontend) and install it.

gnome-video-arcade | MAME Front END GUI | Linux Mint

gnome-video-arcade | MAME Frontend GUI | Linux Mint

4.2 To launch the Gnome Video Arcade mame frontend:

  • In a terminal window, type gnome-video-arcade and press Enter.
  • Menu > Games > Gnome Video Arcade
Gnome Video Arcade (MAME Frontend) | Linux Mint

Gnome Video Arcade (MAME Frontend) | Linux Mint

4.3 The first time that the Gnome Video Arcade runs, it will scan your game folder to check the integrity of your ROMS. If any are found  not to be compatible with your version of the mame emulator, you will be notified and those games will be struck from the list of those available.

Updated ROMS should be sought for compatibility.

Errors Detected in ROMs | Gnome Video Arcade

Errors Detected in ROMs | Gnome Video Arcade

4.4 Having obtained compatible ROMs the game library will need to be rebuilt. To force a rebuild of the game library, in a terminal window type:

gnome-video-arcade -b

A Review Of My Own Programming Skills – 30 Years On

A Review Of My Own Programming Skills – 30 Years On

Thirty years ago, I wrote a game for the Sinclair ZX Spectrum and had the BASIC code published in Sinclair User magazine. It was November 1983 and I was 15 years old. I received a £10 cheque for its publication, and for me back then, it was like winning The Football Pools. I was a self-taught programmer and my game was based on Atari’s Missile Command; a very popular arcade game of that era.

Atari - Missile Command

Atari – Missile Command

You have to remember that many of the computer peripherals and storage media that we take for granted today were not around then. There were no hard drives, usb sticks or floppy disks to store computer information on. There was no internet. The ZX Spectrum stored it’s programs on cassette tapes; the ones originally designed to store audio.

The ZX Spectrum stored its programs on cassette tapes such as these

The ZX Spectrum stored its programs on cassette tapes such as these

So back then, software was distributed on tape, or by typing other people’s code into your computer, line-by-line, from magazines such as Sinclair User; then saving that code to tape for use at another time.

The first page of my code, Pg. 77 (click for larger version)

The first page of my code, Pg. 77 (click for larger version)

The second page of my code, Pg.78  (click for larger version)

The second page of my code, Pg.78 (click for larger version)

And I still pity anyone who sat at their computer, typing this amount of code in from the magazine. People who chose this method to obtain programs from others were effectively typing blind, for they had no idea how good the resultant code would be until it had all been typed in.
And clearly, the propensity to make a typing error increases with the more code there is too. Correcting typing errors in ill-copied code must have been a really tiresome exercise for these people. Yet they persevered. And probably learned a little about BASIC programming at the same time.

Remarkably, I found my old game on the internet recently. Someone had indeed managed to type in my code – and get it right. It is available to play within your browser if you have java installed. Give it a try! Just follow these simple steps. And don’t worry, you don’t have to type in the code!

Step 1

Click this link to open up the ZX Spectrum emulator at worldofspectrum.org

Step 2

Tick "I accept the risk and want to run this app."

Tick “I accept the risk and want to run this app.” Then click Run

Step 3

This is the screen you would have seen when the program was loaded successfully via tape

The grey window illustrates what you would have seen when the program was loaded successfully via tape

Click the grey area with your mouse. Then type R on your keyboard and the command “Run” will be shown at the bottom of the grey window followed with a flashing “L”

Press ENTER to Run the program

Press ENTER to Run the program

Step 4

Play the game. You have to wait until a screen appears that says “Press a key to play, before the timer expires”

The controls are explained before hand.

Q – UP

Z- DOWN

I- LEFT

P-RIGHT

1, 2 & 3- Move the cross-hair to the three different zones.

Review

The Good – Cross-Hair Movement

Atari’s Missile Command featured a track-ball in it’s console to enable rapid movement of the cross-hair. Essentially, it was an upside-down mouse and mice were certainly not available for the ZX Spectrum. In fact, they were un-heard of. So the first problem I had to overcome was how to make the cross-hair in my game move quickly around the screen with just the keys on the keyboard.

I resolved this issue by introducing three zones on the screen; essentially dividing the vertical axis of the game-play into equal thirds. Pressing the appropriate number on the keyboard would ‘jump’ the cross hair into that zone. That solved the problem to some degree and made the game playable.

The three zones, shown on the left hand side of the screen

The three zones, shown on the left hand side of the screen

The Good – Attraction Screens

The first third of my code is dedicated to attraction screens. These attraction screens were a common feature on arcade machines at that time. Their sole purpose was to entice you to play the game by showcasing game-play; demonstrating how the controls worked and what the objectives of the game were. High score tables were often displayed too; encouraging competition in the hope that players would keep coming back.

I made sure that I incorporated all those gimmicks in this game. And I made them look as pretty as a I could.

My first screen depicting lasers firing at the name of the game. My software logo above it

My first screen depicting lasers firing at the name of the game. My software logo above it

The controls

The controls

And the High Score Table with the option to start a new game

And the High Score Table with the option to start a new game

I used a bubble-sort algorithm to sort the scores in descending order. This was one of the first pieces of coding that I taught myself and I still find the bubble-sort algorithm useful today.

The Good – Game Speed

In terms of hardware, the ZX Spectrum CPU was 2.8 times faster than the CPU in the Atari arcade cabinets on which Missile Command was run.

ZX Spectrum -  Z80 CPU running at 3.5MHz
Atari - M6502 running at 1.25MHz

But, my game is written in BASIC; where every line of code has to be translated in-turn, to an instruction that the computer can understand, before it is able to carry it out. This process is known as compiling and it utilizes a lot of CPU time. Even if parts of BASIC code are repeated in a program, those lines of code have to be compiled again.

Atari’s code for Missile Command would have been pre-compiled and be in a language that the CPU would understand without the need for translation. And it’s this that made arcade machines fly.

So I was at a disadvantage; programming in a language that would result in slower game-play from the off. I needed to write my code with care if I wanted to get any sort of speed from my game. And I think I achieved just that. This game plays pretty quickly for a BASIC program running on a ZX Spectrum. It didn’t get any better than this folks!

Later in life, I started programming games on the BBC microcomputer. I used to enjoy programming that machine with BASIC code. It had a really good command that could disable the screen from refreshing until your code had finished updating the positions of all objects and completing proximity detection routines. This meant it was possible to maintain smooth flowing animation as the screen would only be refreshed when all updates had been completed. Essentially, everything that needed to move would appear to move at the same time – all in the same frame.

Animation on the ZX Spectrum was a whole other story though. Without the ability to control screen refreshing and the slower CPU, it was possible to see each object’s position change, one after the other, in a somewhat jerky fashion. Another reason to make the code run as slick as possible. And looking back at it, I’ve made it as simple as possible with no CPU hogging instructions.

In fact, I’ve kept it so simple to the point where there is no ‘Fire’ button. This detracts a lot from the Atari version. Missile Command had three ‘Fire’ buttons; one for each of the cities at the bottom of the screen. Lasers would be fired from the corresponding cities towards the cross-hair position. And multiple shots could be fired, resulting in explosions all over the screen.

To maintain a decent game-play speed in my version, a collision of the cross-hair with a meteor is sufficient to fire all three lasers at the target.

The Bad – Proximity Detection

For the purpose of this review, I’ve played my game a number of times. And I think that the only bug in the code surrounds proximity detection. Sometimes, the lasers don’t fire when the cross hair is touching a meteor. Moving the cross-hair one position to the left or right of it triggers the salvo of laser fire. It’s due to a rounding error in my code that converts the position of any meteor to the x, y coordinate system of the cross-hair. Line 335:-

335 IF 21-INT ((b(i)/8)+.5)=x AND INT ((a(i)/8)+.5)=y THEN LET I(i)=0: GO SUB 8100

The cross-hair is positioned with the PRINT AT x, y statement
The meteors are displayed with the PLOT a, b and DRAW commands

Both coordinate systems are different, hence the requirement for conversion.

The Bad – Code Structure

The are some good points with respect to my code’s  structure. I’ve been able to follow my code and understand the logic behind it all. Even after all these years. There are lots of REM statements (short for remarks) to enable anyone to identify the chunks of code that perform specific tasks.

My only gripe is that I must have been GO SUB mad.

The GO SUB statement was a convenient way of performing the same tasks repeatedly without duplicating the exact-same code; a precursor of today’s Function call.

Line 35 of my code:

35 GO SUB 1000

is unnecessary. That procedure is only run once. Essentially there is one line of code that creates the graphics for the game, like the laser turret and cross-hair. It’s all done at line 1010

1000 REM U.D.G.s
1010 RESTORE 1000: FOR j=1 TO 15: READ c$: FOR i=0 TO 7: READ b: POKE USR c$+i, b: Next i: NEXT j: RETURN

Line 35 could have simply contained the code in line 1010 without the need of a sub routine.

The related DATA statements could have been placed at the very end of the code.

Final Thoughts

Ok. So my attempt at creating Missile Command for the ZX Spectrum wasn’t as good as Atari’s creation. It lacked fluid animation and decent frame-rates. And a lot of the original’s features simply couldn’t exist in my program as they would have slowed the whole game down.

Yet, it was a good game. And for a program written in BASIC, it was pretty impressive. After all, there must have been something about it for it to be published in the first place.

I look back on those early years of programming with fondness: owning my own computer and being able to program it to make it do almost anything I wanted. It was almost a necessity back then – having to create your own software. People became creators and pioneers because of it; bettering themselves by learning the skills of BASIC programming.

Now, we just consume.

Links

The ZX Spectrum Manual

The World of Spectrum