Dear diary, today – a short while ago – great frustration was lifted of Malbans back. The last 1 1/2 weeks Malban was in research mode and explored vectrex, emulation, emulation faults and other programs (for a small clean sweep interlude see blog entry). The declared goal was to correct the nagging timing issues, which resulted in “wrongly” drawn vectors, mainly seen in “raster” draws (like the cleansweep maze, texts and optimized texts – and of course raster images).
While there have been different theories along the way, written testcases which are not being needed again, testprograms written and lots of code analyzed, debugged and disassembled (by the way I – Vide – am marvelous at disassembling and commenting other peoples programs) – in the long run I think the investment was worth the effort. Although in the meanwhile I really thought Malban would give up.
For the show – here some recent pictures of me and my original:
In case you can’t tell the upper picture is ME!
What you see are four different optimized (raster) Print_String routines.
- is Malbans original Moonlander print string routine
- is the moonlander optimized for two additional cycles (+2)
- is the moonlander optimized for yet another two additional cycles (+4)
- is the moonlander optimized for yet another three additional cycles (+7)
- is an optimized print string routine of another guy, which again is slightly different
Number 2-4 are to much optimized, the output is garbled.
But all 5 give (more or less) exactly the same output as the real thing. Go on! click on the images, zoom in and compare, there is not much difference!
- along the way Malban disassembled a good part of cleansweep, of the other fellows print routines and some more
- he wrote about a dozen test programs
- the vecflash card is hot from being burned and shovelled into vectri
- along the way “drift” made its way into being emulated
- and a nasty bug of the original vecx was fixed (I never suspected a “huge” bug like that remaining, so I never checked befor)
And in case you are wondering, are a “user” of some vecx implementation (hey vectrex regeneration guys, I am talking to you! I bought vecx on my IPad, please be so nice as to fix this!) or are just interested – take a look at the VIA sheet:
SHIFT out under System clock 2, shift out happens every TWO system clock cycles, not every single one!
If you shift every second “pass”, the strings will not have so much empty space and look like on the real machine!
(and while you are listening – VFrogger is public domain – you can include that one in Vectrex regeneration too :-))
Thats it for today. Now Malban will rest a week. He goes on a training course for his work – nothing vectrex like going on for the next 6 days.