RE: ZVG firmware / the future of ZVG

From: Clay Cowgill <c.cowgill_at_comcast.net>
Date: Fri Apr 20 2012 - 05:24:29 EDT

> My version would use an ARM processor with built in 12 bit
> DACs, 2 to 4
> 16 bit timers (based on the programability of the start and
> stop times of the timers).

Yep! Although I'm just using the internal 12 bit DACs and spare GPIO's for
the brightness control with a R2R type DAC. Our board is specifically a
plug-n-play for Asteroids/AstDlx (or other cabs with an adapter).

Nice thing on the modern ARMs is that their timer counter peripherals
generally run at up to the full bus clock and with 32 bit counters your
'draw timer' still won't overflow even from a really fast clock. (We're
using 72MHz, for example. So even hundreds of microseconds won't overflow
and you still get a stupid amount of timing resolution.)
 
> You should be able to get all the power you need from the USB
> interface, you'd need a 5V to +/- 15V switcher, but not a lot
> of current. And, what the hell, throw in a TCP/IP port to
> allow the generator to be run remotely from any computer on the net.

I only use the USB power to run the digital stuff for programming the board
from a PC (ie, plug the board in to PC to load games and emulator updates
away from the cabinet and plug it back in to play). For development I have
one of those little 5->+/-15 DC/DC SIPs on the board, but since I want to
just plug into the original power harness I'm making my own +/-12V 'analog'
rails from the transformer supplies anyway. (No sense in paying extra for
DC/DC since the raw components are already there and our current
requirements are miniscule.)

> With a 100MHz to 300MHz clock, you could easily add an
> emulator to the ARM. You could have a full Cinematronics PCB
> replacement board the size of the ZVG, with all the games built in.

Yes, yes you can. ...and it can play anything else with 'compatible'
controls too. :-) ...and even just 72MHz of ARM can push a metric assload
of vectors around with native game code. ;-)

Even with CPU cores in C you don't really need anywhere near that kind of
clock speed (with a good programmer and smart compiler anyway :-). (Or is
that smart programmer and good compiler? :-) Our old emulation board for
Arcadeshop was just a 66MHz ARM7TDMI and we could run Asteroids/BZ/etc. just
fine on it with an assembly 6502 core. (That was including rasterizing and
losing about ~20% of the CPU to system overhead!) A <100MHz ARM is quite
capable!
 
> I'm going to publish the math used to generate these timing
> tables, and the proper ending DAC values, along with the
> code. It's the most important part of the generator.
> Publishing the code without it wouldn't be that much more
> helpful than a binary image.
>
> Let me know if you or Neil, would like to look at it before I
> get the licensing worked out, and I'll send you the info.

Actually, that is exactly what I have been putting off doing for a while
now, so yeah-- I'd love to take a look at what you did because otherwise I
was going to be doing a lot of brute-forcing my way through things and
building big lookup tables and I was *not* looking forward to it. ;-) That
is *literally* the next thing I was going to work on. I'd run out of other
stuff to check out and that was the last big 'to-do' item...

(So, massive Thanks In Advance for any help there-- hit me at
c.cowgill@comcast.net whenever!)

-Clay

---------------------------------------------------------------------------
** Unsubscribe, subscribe, or view the archives at http://www.vectorlist.org
** Please direct other questions, comments, or problems to chris@westnet.com
Received on Fri Apr 20 05:24:42 2012

This archive was generated by hypermail 2.1.8 : Fri Apr 20 2012 - 20:50:01 EDT