21st of March: PiTrex baremetal – followup!

Just a short note on my progress.

I think I stepped up from alpha phase to beta phase.
I have not EVERYTHING IRQ wrapped yet (zeroing, recalibrating, and joysticks are missing) – but everything else works fine.
(@Kevin: yes, in between drawing/moving… works!)

The new “settings” menu I will have to rework completely – probably. Most programs I will change slightly to “natively” support this new mode.
Basically ALL communication with the VIA is happening in “hyper space” – there for I must (while in hyperspace) disable all forms of communication with the VIA on the normal space side.

Otherwise the VIA communication can be garbled (this is true for both sides).

This means – the old routines:

v_sound();
v_readButtons();
v_readJoystick1Analog();
all immediate…() functions
etc etc etc

must be be disabled.

This sounds like a big bad change – but I think it is BEAUTIFULL! And I think Graham will like this.

The consequence of the whole IRQ programming is, that the “normal” piTrex programmer does NOT have to concern himself with vector drawing at all!
Sure he must call “vectorDraw()” – but that is all!

One must set up which input methods one is interested in – do ONE “roundIsFinished()” call and that is it.
One can than ask the usual variables for buttons/joystick and can still put sound in the sound buffer… 
But the actual reading/writing is done automatically.

The old “waitRecal()” is not necessary anymore, since the routines in the interrupt know when the time is up, and do
– pipeline handling
– pipeline displaying
– Vectrex synchronizing
all automtatically!

And what I like most… the screen refresh rate ist totally independent of the game speed!
I can refresh the vectrex screen in 50Hz, everything is clear and shiny and unwobbly (as long as there are not to many vectors) – and the actual game runs in 60Hz.
This is WORKING – I just played Asteroids in 50/60Hz (vectrex/game) refresh!

You have still the possibility to:
– change vectrex refresh
– align the game refresh with the vectrex refresh
– run as fast as possible
– or have totally arbitrary values
– even games which run in 38Hz -> will be perfectly displayed in 50Hz quality!


AND Everything is a little bit FASTER than before… e.g. the game over text of Asteroids displays in 50 Hz now!

There is still a lot to be done, before this can be “shipped”… but together with the fact that last week I found the “distortion thing” with Kevins help – makes me believe we are in for a really great pitrex release.

This will be another maintenance release. But if all goes well with this one – I will start to look at battle zone closer…

Cheers

Malban

Tagged on:

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.