Jump to content
gtoal

Tailgunner homebrew underway

Recommended Posts

I don't know how much crossover there is between this forum and the vectrex area at proboards - in case there are homebrew programmers here who aren't aware of it - I've (re)started a project to write a Tailgunner lookalike which I started about 15 years ago and then shelved. This time I am determined to finish it and have got a lot farther than I did before - WIP can be seen at http://gtoal.com/vectrex/tailgunner/main.bin- I've been building it piece by piece and am now getting to the hard bit - the ships.

 

I may have to cut a couple of corners but from experiments so far I think it should look enough like the original to evoke some of the same feeling when playing it.

 

Anyway... I am coding this in public view - a recent (if not up to the hour) source will always be posted in http://gtoal.com/vectrex/tailgunner/main.c.html(or http://gtoal.com/vectrex/tailgunner/main.c ) and suggestions and collaborations are (extremely) welcome. Even criticisms :-) (Very thick skinned, I won't take offence. However some limitations I do already know about and were either expedient to get something started or are shortcuts to avoid computational overheads)

 

I know people have wanted Tailgunner on the Vectrex for a long time, so if you're one of them and a programmer, feel free to contribute. This will be open source and free in all senses. I've set myself an informal deadline of Christmas (this year ;-) ) and one of the reasons I'm working on this in public view is so that there's pressure on me to finish it this time :-)

 

 

Graham

 

  • Like 4

Share this post


Link to post
Share on other sites

When it was in Arcades, I played Tail Gunner every chance I got...my favorite game at the time. I love that smooth, flowing movement you get into when shooting the ships. I've always thought it's a perfect game to port to the Vectrex; the controller is exactly what you need.

 

I used to be a programmer, but don't dabble much anymore. Seems like it should be fairly straight forward, but the details of how the ships move is very important, I think.

 

I bet the original code would be very helpful. Especially if the source code is still around (probably not likely)...

 

Good luck!

Share this post


Link to post
Share on other sites

When it was in Arcades, I played Tail Gunner every chance I got...my favorite game at the time. I love that smooth, flowing movement you get into when shooting the ships. I've always thought it's a perfect game to port to the Vectrex; the controller is exactly what you need.

 

I used to be a programmer, but don't dabble much anymore. Seems like it should be fairly straight forward, but the details of how the ships move is very important, I think.

 

I bet the original code would be very helpful. Especially if the source code is still around (probably not likely)...

 

Good luck!

I did disassemble the Cinematronics ROM at one point (a by-product of generating a static binary translation of the machine code to C and Java) but not commented in enough detail to understand the algorithms. However I have reinvented enough of it from scratch over the years to know how to duplicate the behavior (see http://phosphorus.github.io/app.html?id=33089150&turbo=false&full-screen=truefor my previous effort). What I'm looking for help with is more the low-level vector performance stuff. Having someone implement the various sound effects too would be very welcome. I think for performance I'm probably going to have to replay pre-defined flightpaths and pre-calculated vectors for the ships - however if it is possible to rotate the 3D ship vectors and draw three ships fast enough in real time, then that would be the sort of thing I'ld like help with.

Share this post


Link to post
Share on other sites

If you could do the calculations using polar coordinates, that might lighten the math load...not sure how the vectrex works, but knowing the vectrex is inherently "polar"...

Share this post


Link to post
Share on other sites

To bring folks up to date on this... I didn't get the native 6809 code version of Tailgunner working, although it is still on the cards and a little work has been done on it by Alexander von Knorring which I might pick up on some day, but I did manage to get a very good version of the original arcade code running on a cartridge with the help of Thomas Sontowski and the Vecfever.  Thomas also made a few stand-alone cartridges for me, which I've given away as presents to "friends and family" (well, actually just friends, none of my family has a Vectrex 🙂 ) but that doesn't help the vectrex world at large get a copy, so I spun off yet another project to build new cartridges that could run arcade vector games in emulation.  It's called the "PiTrex" because it mounts a Raspberry Pi Zero on a Vectrex cartridge, and drives the Vectrex from the Pi.  That project isn't quite ready but it's nearing fruition and we do have Tailgunner sort of running on the cartridge, though there are a few small timing issues to be sorted out before we can release it.

 

 

20190712_181852.jpg

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites
On 7/19/2019 at 10:40 PM, gtoal said:

so I spun off yet another project to build new cartridges that could run arcade vector games in emulation.  It's called the "PiTrex" because it mounts a Raspberry Pi Zero on a Vectrex cartridge, and drives the Vectrex from the Pi.  

 

 

Astounding. What the community around the Vectrex continues to achieve is really quite incredible.

 

And all hail the Raspberry Pi!

 

Share this post


Link to post
Share on other sites
On 7/19/2019 at 10:40 PM, gtoal said:

 and we do have Tailgunner sort of running on the cartridge, though there are a few small timing issues to be sorted out before we can release it.

 

 

I don't quite get the love for Tailgunner, although can see that it is something easier to port to the Vectrex.

 

Now the question, for me at least, is can you do Star Wars on it...? :)

Share this post


Link to post
Share on other sites
17 hours ago, uczmeg said:

I don't quite get the love for Tailgunner, although can see that it is something easier to port to the Vectrex.

 

Now the question, for me at least, is can you do Star Wars on it...? :)

Well if you want to help, go fetch http://www.brouhaha.com/~eric/software/vecsim/ and see if you can add Star Wars to it - it's partly in there but looks like it was never finished.

 

G

Share this post


Link to post
Share on other sites
On 7/27/2019 at 8:30 AM, gtoal said:

Well if you want to help, go fetch http://www.brouhaha.com/~eric/software/vecsim/ and see if you can add Star Wars to it - it's partly in there but looks like it was never finished.

 

G

Sadly I wouldn't even know where to start.

 

Would the work done on the VecFever to run Star Wars be reproducible on the Pi?

Share this post


Link to post
Share on other sites
On 7/28/2019 at 9:31 AM, uczmeg said:

Would the work done on the VecFever to run Star Wars be reproducible on the Pi?

I would expect so.  Wasn't aware of Star Wars on the VecFever unless you mean in terminal mode and hosted on another computer with MAME?

Share this post


Link to post
Share on other sites
11 hours ago, gtoal said:

I would expect so.  Wasn't aware of Star Wars on the VecFever unless you mean in terminal mode and hosted on another computer with MAME?

Ah yes, got confused, sorry.

 

Star Wars isn't on the list of games directly emulated by the version of MAME for the VecFever. Those appear to be:

 

Asteriods, Asteroids Deluxe, Battle Zone, Luna Lander Red Barob, Space Duel, Tail Gunner and Tempest.

 

Share this post


Link to post
Share on other sites
On 7/30/2019 at 2:42 AM, uczmeg said:

Ah yes, got confused, sorry.

 

Star Wars isn't on the list of games directly emulated by the version of MAME for the VecFever. Those appear to be:

 

Asteriods, Asteroids Deluxe, Battle Zone, Luna Lander Red Barob, Space Duel, Tail Gunner and Tempest.

 

 

Because of the hassles of porting complex programs to a bare metal environment, my current PiTrex development environment is actually a Pi 3 connected by a ribbon cable, rather than an embedded Pi Zero.  This is fine, but it introduces a caveat when I say that it appears that Mame (advancemame to be precise) is fast enough on its own and that we won't require multiple individual heavily customised static binary translations to make arcade games work. (The caveat being that Pi 3 cores are a bit faster than a Pi Zero core).  On the Pi 3 I can dedicate one of the four cores to the PiTrex and run it with most of the OS overhead turned off.  However we haven't turned off *all* OS overhead, so this environment can still produce the occasional screen glitch, and isn't as completely rock-solid as when we run just the application alone on a Pi Zero in 'bare metal' mode.  Anyway what I'm getting round to saying is that I expect most of the vector games that AdvanceMame can emulate will run on the PiTrex. I.e. for now we don't think we require the more difficult step of producing individual binaries through static binary translation.  On the other hand some of those games do put a *lot* of vectors on the screen at once, so it's quite possible that the emulation could be fast enough but the display hardware incapable of keeping up.

 

One last point to set appropriate expectations: the PiTrex seems to bring out the worst in the Vectrex regarding the infamous buzz...  It's not continuous any more, but it's loud and in direct proportion to what is being drawn. (If the screen is blank, the Vectrex is silent).  Haven't tested with a no-buzz kit yet but I'm assuming it will work the same here too.

 

Graham

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for the update, that sounds great.

 

An all in one cart is obviously the goal in terms of simplicity, but does that also mean you could essentially just produce a cable and we could use a normal Pi setup?

 

 

Share this post


Link to post
Share on other sites
On 9/2/2019 at 3:29 AM, uczmeg said:

Thanks for the update, that sounds great.

 

An all in one cart is obviously the goal in terms of simplicity, but does that also mean you could essentially just produce a cable and we could use a normal Pi setup?

 

 

Yes indeed 🙂 ( https://www.ebay.com/itm/40pin-Male-to-Female-Ribbon-GPIO-Cable-for-Connection-Raspberry-Pi-3-2-Model-B/303202023930 although a little pricey. I have some parts on order to make my own.  Beware IDE cables have one connector on the wrong side.)

cabled.jpg

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...