If you read the last post carefully you might have stumbled over “Tailgunner” on the latest VecFever firmware.
This is the newest “programming wizardry” of Thomas with his VecFever hardware.
Yea, but actually this time credits do no go to Thomas alone – a couple of other people were involved (see also the credits in the Tailgunner Video accomanying this blog entry) namely:
– VTK some sounds
– and especially: Graham Toal and his involvement in the static binary compilation
– ‘original cinematronics emulation group’ : Neil Bradley, Jeff Mitchel, Zonn Moore
Static Binary Compilation (SBC)
For a “thorough” explanation see google or one link in special: http://www.gtoal.com/sbt/.
Graham also pursues a very similar project, using a Raspberry Pi Zero W connected to the cartridge port of the vectrex, a recent video of his can be seen at: https://www.youtube.com/watch?v=Y5aSu_qoek4.
Actually Graham has been in close contact with Thomas and “sparked his interest” and is thus kind of responsible for the VecFever implementation.
My personal short explanation of sbc:
The (original) binary of a program is translated to a “gigantic” switch … case statement (in C or actually any other language). Each “case” being an address at which the original binary had executable code. Each “case” than semantically does the same as the code at that address. I/O behaviour uses special “hooks” (subroutine calls) which are implemented independendly.
The state of a thus “emulated” machine is also kept in apropriate data structures (registers of the processor…).
What if boils down to in the end…
Thomas compiled the SBC of Tailgunner for the processor the VecFever uses, he implemented the “hooks” for the Vectrex and optimized the hell out of it.
The result is – there is now a standalone emulator of the original Tailgunner running on the VecFever which uses the Vectrex as its output device. It runs at the original speed and the screen update the vectrex does is also (more than) original.
A VecFever now plays the original TailGunner.
A “tiny” drawback – the sound is not original – and the sound is also still being worked on (by Thomas and VTK – no wonder I do not hear anything from Ollie 🙂 ).
If I understand Thomas right – Tailgunner working on the VecFever is only a “by product” of him trying this stunt on a seperate dedicated Tailgunner cartridge – something like:
Ok last thing – a video playing the tailgunner…
(at the beginning I let the scroll text of the credits and info display in all length… there is actually a tiny little gameplay at the end!)
Nice summary. So, now there’s a Vectrex CCPU emulator, should we expect to see all the other Cinematronics games make an appearance at some point? 🙂
Actually – I don’t know!
Are there any other ‘working/finished’ sbc out there?
No idea, but I’m sort of assuming that if what Thomas has done is an emulation of the CCPU CPU/hardware, then the hardware of any other games than Cinematronics produced wouldn’t be much different…maybe you could feed VecFever an alternative game ROM and it might…just…work. I doubt though it’s that simple 🙂 I’ll have to ask him…
Please read the part about sbc again.
Each “emulation” done via SBC is probably an own project. With absolut certainty it is not just “switch the ROM”. The ROM in this kind of emulation is more or less only used to be able to achieve indirect (Register) memory accesses.
Thanks for the comment. I asked Thomas…without going into details (not least because I don’t understand them) other Cinematronics games are doable as are other types of emulation! The standalone carts you showed in the picture are a stripped down version of the VecFever hardware. I’m tempted to ask him for a device to run Forth on directly, that would be very cool, but that would dilute my time from 6809 Forth!
Nice summary. Considering this is a significant milestone, I can’t even think what else shall I expect from VecFever in the future. Ingeniously done.
When I wrote the CCPU translator it was specifically to translate Tailgunner and so there may be a small number of opcodes that are not used in Tailgunner which are not fully implemented or at the least not tested at all. The translator is certainly close to complete but not 100% so anyone wanting to run it on other games would have to debug it with those games. There is however support for running the translations in lockstep with the original pure emulator (which I believe is complete) and that helps find translation errors really quickly. But in any case you will also need support for the I/O (joysticks, buttons, sound etc) and that definitely has not been implemented for any CCPU games other than tailgunner.