20th of November 2021 – Vectrex things…


I still am intrigued by “old” games I played as a kid on my c64.
One of those games was Telengard. I think it would be possible to convert that title to the vectrex – just for the fun of it. As with quite some other old classics, the source code for this old darling can be found within the depth of the internet – BASIC. Doing a little internet research I found out, that someone already did a port to “C”. GREAT!

The thing is – the “C” source is not freely available. I tried contacting the author of the port (which incidently was involved in some other famous “action RPG” developments) – but obviously my eMail was lost somewhere. Not meaning to stalk anyone… I gave up on that easy approach.

I started converting the BASIC source to C myself – had about 1/3 done and was thinking about how best to convert the dungeon generator (a thing immanently based on floating point processing). Suddenly in the middle of things… I had a weeks holiday… and left my computer alone for a week.

After that (I’ll never know how it happened) all sources I had produced for this were gone. Probably due to a stupid mistake I made myself. Anyway – as of now, I did not find the “strength” to go back and do it all over again. Probably some day I will.

I hate doing the same stuff again, although I must admit, that each time I redid stuff the results were usually better than the first effort – so I might as well see this as a chance… (or so).

Aui wdh sadkksa sda3q dkkdk fkedld eöe3f fkfüwüq 3jejjre …
If you think that is gibbersish – than you are right.
There are some things to say here, but I can’t or am not willing at the moment…

Don’t touch!
Is a name of a game, that I didn’t write for the vectrex.

The premise is that a character must navigate rooms and is not allowed to touch anything (or be touched). In my head that would be something like “SHAMUS” like rooms entering one way exiting another way. In between are monsters or apperatus that move/ do things – and you must avoid them.

Jump ‘n runs are always my program nemesises (see: e.g. PC: Jumper, VC2600: Escape, Vectrex: 1st-ideas) somehow I am not able to finish these. But this does not stop me from starting again and again – and always I call these thing (internally) Jumper!

For the last incarnation of these failings I have now some animations done:

I have been meaning to update Vide for quite some time now. I had a couple of bug reports, and people actually added some stuff to it (available in the repository). I have been updating Vide a lot lately – but somehow I can’t get arround to actually put in all the finishing touches it needs. Stuff that changed:
– naming of program parts
– fixing of some templates
– support of VeXtreme and VecMulti as additional development cartridges
– screen size fixes on Windows
– additional output to Vecxi to support some PiTrex stuff
– change to Vecxi output, get rid of the “hi”/”lo” stuff
– C bankswitch support (with generated stubs)
– fixed a PSG bug, where it could produce disturbing “click” one in a while
– bug in ym2! / ym3! processing
– and I am sure many other things
If anyone wants a “current” internal version, give me a call and I’ll pack one up. But the current version is not ready for general consumption yet.

… and than comes PiTrex.
PiTrex is a thing I can leave alone for a few months – without any qualms about it. But it seems that sooner or later I might return.
This time the call for return happened, when a PiZero 2 was introduced. Which has more or less the same specs as a Pi 3.
Which in general term means, it is faster (about 40% than the Pi Zero 1), it has four cores (in opposite to just 1 core of the Pi Zero 1) and it is based upon a newer ARM architecture (ARM v8 instead of ARM v6).

Pi Zero 1 baremetal software will not run on Pi Zero 2!

Therefor I made it my task to port my current bare metal implementation to the new Pi Zero 2, I set myself 4 stages on the way:

Stage 1

  • I can boot up
  • communicate via UART/serial
  • have mmu/stack/cache/fp/exception handling setup
  • can read/write to/from the filesystem of the SD card
  • I can setup mailboxes and set the core speed and the like

Stage 2

  • get the low level GPIO running for vectrex communication
  • get interrupts running
  • get cycle counter running again
  • get USB running again
  • than basically all “old” vectrexInterface will run again

Stage 3

As of now there are two completely seperated code trees, stage three is joining the two codebases. This will either result in ONE binary running on both platforms, or a compiler switch to generate two binaries. (probably the later, since the compiler optimization is cpu-target specific and thus can do better for a specific target)

Stage 4 (and final stage of Pi Zero 2 integration)

  • run the vectrex “output” on a different core than the emulation

Right now I have completed stage 1-3 and I am in the middle of stage 4. It was sometimes a bumpy road, but overall I finished stage 1-3 in about 1-2 weeks.

When I am finished with stage 4, I will probably return to SBT of 6809 :-), which Graham prepared, and I will try to get Star Wars to run “ok’ish”.

There are many things left to do and I am not sure in what order, or whether at all I might do them, as there are:

  • go thru each emulation and give “love”
    (add specific PSG sounds, ensure controls are working as supposed, tweak to get a clean vector output),
    this will get easier with each following emulation, and easier if SBT is done
  • a general code clean up
  • documentation
  • try adding Pi sound (HDMI?, I²S emulation?)

As a one man job (if I will do this) – this might take many months or years – I have other things in my life, and after a while (as you noticed) I will “pause”.
You are (as always) invited to join… give me a call.

Tagged on: , ,

4 thoughts on “20th of November 2021 – Vectrex things…

  1. Peer

    Calling! Or rather I would call you, if I had your number 😉

    Thanks for this informative update. I would indeed be interested in your current VIDE version. But there’s no hurry or rush. Once you have a (Windows) version ready for testing, give me a call 😉

      1. Peer

        My bad. I did. On a piece of paper. That was back in the olden days when I did not yet own a smartphone. Over time, I somehow lost that piece of paper in the mess of my home office space. Anyway, I will send you an email later today.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.