Re: ZVGio

From: <zonn_at_zonn.com>
Date: Thu Sep 12 2002 - 02:16:21 EDT

On Wed, 11 Sep 2002 15:03:29 -0600, "Hendrix, Jeff" <Jeff_Hendrix@maxtor.com>
wrote:

>Tell us more about the ZVGio board.
>
>Can you use to read the star wars yoke or lunar lander thrust lever?
>
>I'm picturing a cabinet with a ZVG, ZVGio and a mini-itx PC in it and
>writing bunches to new games.

Here's the (full, sorry about the length) scoop on the ZVGio:

After playing with the Opti-PAC trackball controller connected to a Tempest
spinner I found it impossible to play a real game of Tempest.

An only mediocre spin of the spinner caused the Tempest cursor to spin backwards
do to aliasing I assume. (The same thing that make wagon wheels appear to spin
backward in movies.)

But I'm not convinced this is the fault of the Opti-PAC. All the mice I've used
in Windows will move backwards if moved at a high enough rate (optical mice seem
to be the fastest). Window's mice/drivers/controllers were not designed to move
at Tempest "spin" speeds.

I've come up with a simple, short command set that when sent at a rate of 115k
baud through a serial port, can support 1ms controller updates.

The latency from when a key is pressed, to when a bit is set in the PC memory
indicating a pressed key, can be under 2ms (assuming game code is debouncing the
key, if the ZVGio is set to do debounce, that would have to be added to the
response time. Since most games use simple switches, and these games must
supply their own debounce, usually done in the game code, most games would be
run with debounce off.)

The ZVGio would sample the trackball at a rate similar to a Tempest and keep
track of its position, and update the PC with its new position once a
millisecond.

Our initial design goal is:

 32 inputs (two of these could be used for coin counting
    so that coin counts are not lost even if Windows is still booting.)

  8 outputs (for blinking LEDs)
  2 trackballs (or 4 spinners)
  2 analog inputs (or 1 analog X/Y joystick - al la Tailgunner)

The price would be similar to the I-PAC/Opti-PAC solution (we'd of course like
to beat their prices. ;-)

We're also looking into chaining them, so that 2 ZVGio's would double the above,
but still use a single serial port.

The ZVGio would consist of two parts. The ZVGio that is plugged into the PC (of
course) and a second small PC board that would be mounted to the control panel.
The control panel board would use some type of quick disconnect to allow easy
changing of control panels. Our current thoughts are using an edge connector
similar to those used on the old 5 1/4 floppy drives.

Advantages:

The driver on the PC side is *very* simple (and of course open source). As the
serial stream comes in, it updates bits in memory that can be easily read by an
emulator to determine the state of the key. Serial information is only sent
when something has changed, so it's not a burden on the processor.

Using 115k I can send 10 bytes a millisecond, when needed, for a very quick
keyboard / trackball response. I don't believe a 1 or 2 ms update is possible
using the keyboard port or having to pass through the mouse driver.

Disadvantages:

A simple driver would need to be written for any emulators wanting to use it.
While it's simple (the command set is, by design, short and simple), it's also
non-standard. So if the Windows version of MAME were to use this, a separate
keyboard and mouse would still be needed to bring up Windows and select the MAME
icon. Once MAME is loaded, anything you can do with the control panel now,
could be done with the ZVGio (special keys to select a menu, up/down selection
using a joystick, etc.).

Of course it is possible to write Window drivers that would treat the ZVGio as a
mouse/keyboard controller through the serial port, and also support high speed
mode inside MAME, but we're not Windows programmers so it won't be done by us.

Summary:

Tempest (my favorite game) running on a ZVG is so frickin realistic it's scary,
the only possible difference is the ZVG end points line up a little better. ;-)
(ok I'm biased).

But as soon as you try using the spinner it's *very* obvious it's an emulation.
I want to build a Vector cabinet that includes Tempest, that is as playable to a
skilled Tempest player as the original. So even if it's just a proto-type, I'm
going to build myself one of these. Much of the engineering is already done.

So some question to the list are:

1) Am I the only one having problems with the slow response of
spinners/trackballs using standard mouse port solutions?

2) Assuming MAME drivers were already available (and of course all source and
documentation for using this in new games was available) and the price was
similar to the Opti-PAC / I-PAC solution, would there be any interest in this?

-Zonn
---------------------------------------------------------------------------
** To UNSUBSCRIBE from vectorlist, send a message with "UNSUBSCRIBE" in the
** message body to vectorlist-request@synthcom.com. Please direct other
** questions, comments, or problems to vectorlist-owner@synthcom.com.
Received on Wed Sep 11 23:36:34 2002

This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:34:08 EDT