Cinematronix & Input

28.01.2020

I compiled BattleZone without SBT.

 SBT:
-------
CPU Usage (Refresh usage in 50Hz)
Refresh usage: 56% (Code: 9% Draw: 47%) 
Refresh usage: 55% (Code: 8% Draw: 47%) 
Refresh usage: 54% (Code: 9% Draw: 45%) 
Refresh usage: 59% (Code: 12% Draw: 47%) 
Refresh usage: 51% (Code: 7% Draw: 44%) 
Refresh usage: 53% (Code: 8% Draw: 45%) 
Refresh usage: 54% (Code: 10% Draw: 44%) 
Refresh usage: 56% (Code: 9% Draw: 47%) 
Refresh usage: 59% (Code: 12% Draw: 47%) 
Refresh usage: 59% (Code: 11% Draw: 48%) 
Refresh usage: 53% (Code: 6% Draw: 47%)   
 „Normal" Emulation
--------------------------
Refresh usage: 61% (Code: 11% Draw: 50%) 
Refresh usage: 64% (Code: 13% Draw: 51%) 
Refresh usage: 64% (Code: 13% Draw: 51%) 
Refresh usage: 82% (Code: 12% Draw: 70%) 
Refresh usage: 86% (Code: 15% Draw: 71%) 
Refresh usage: 83% (Code: 13% Draw: 70%) 
Refresh usage: 83% (Code: 13% Draw: 70%) 
Refresh usage: 85% (Code: 15% Draw: 70%) 
Refresh usage: 62% (Code: 12% Draw: 50%) 
Refresh usage: 64% (Code: 13% Draw: 51%) 
Refresh usage: 64% (Code: 13% Draw: 51%) 
Refresh usage: 61% (Code: 11% Draw: 50%) 
Refresh usage: 65% (Code: 14% Draw: 51%)  

Naturally these were not the exact same game locations… but overall the said is still true, from what I see…
I would say the emulation < versus > SBT is in that case measly 4-5% difference.
(AND – BattleZone runs without crashing, or other „errors”. )

Running RipOff

28.01.2020

Graham added Cinnematrox emulation (under raspbian) – I updated the source to be runnable under baremetal – proof of concept: see image…

29.01.2020

I changed all baremetal make files to be more like the raspbian. In preparation of the cinematronix I also added parameter (1 for now) to be given to started „img“ in baremetal. The pitrex 10 – vectrexInterface should also work with zblast (game translation done by Kevin) in raspbian.

Uploaded pitrex 10b,this only is an update to the cinematronix…
It now compiles under baremetal as well as under raspbian. I will concentrate on probably BattleZone/Asteroids.
I will at most change „Sim” and VectrexInterface. Everything else should be save.

30.01.2020

Started documentation… Vectrex_Interface

30.01.2020
I added some more optimization stuff to the vectrexInterface. One of the next things I will do is to figure out „non” optimal default values, so that at least on all of my vectri everything looks at least allright on startup.

I added patterned vectors – so the shield in Tailgunner looks nice and grizzly. But the shield probably must still be rotated by 90°- at least thats what thescreenshots from the original suggests.

I reduced the analog smoothing a bit. If its still not Ok with Graham, I’ make it configurable.

I also figured finally out how the input in VecSim works.

  • I can now play nicely Battlezone with two analog sticks… Cool!
    (I still have to search for local optimizations though).
  • Gravitar and Asteroids deluxe are fully playable.
  • BlackWidow and SpaceDuel do not start yet. I might look at the Dip switches further, or the input controls… The games look like they should work…
  • Lunar Lander as of now seems broken…
    The program crashes as soon as the start button is pressed. I did not explore further…
  • Asteroids crashes after about 1 minute.

They both crash so sudden, that I actually suspect some watchdog timing… but I might be wrong.

I also added quite a lot of debug information to the console output, and enabled a „single” step thru all drawn vectors – which prints out valuable information (like registers, PC, coordinates etc…) But this must be configured individually per game.

For tailgunner this looks e.g. something like:

bm
 Entering browse mode
 PL Brightness  A = 38
 PL ZERO: 40
 PL MOVE -13524, 12558 :138
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0cd8, B=02fa
     -770, 50 :10 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=01bc, B=059d
     135, 270 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0202, B=04a9
     205, 160 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0389, B=0431
     225, 180 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0096, B=0f17
     100, -770 :10 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0fd8, B=0f9a
     0, -180 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=03d7, B=0294
     180, 20 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=015e, B=0594
     0, 160 :5 
 PL ZERO: 26
 PL Z CALIB 0
 PL MOVE -13192, 12512 :136
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0c60, B=029a
     -180, 0 :5 
 PL MOVE 20, -20 :5
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=02d9, B=0019
     160, -135 :5 
 PL ZERO: 26
 PL Z CALIB 0
 PL MOVE -13192, 12240 :136
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0d5e, B=0515
     -45, 45 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0d98, B=047a
     -135, 110 :5 
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0242, B=04a9
     -584, 352 :8 
 PL ZERO: 26
 PL Z CALIB 0
 PL MOVE -14210, 12905 :145
 PL DRAW PC=1440, I=0006, J=045b, P=0000, T=0000, A=0244, B=04ab
     45, 45 :5