13.02.2020
Tempest:
not finished. Attract mode works fine – but starting a game does not work yet. I guess the game has some sort of copy protection, which we haven’t emulated yet.
Also it needs pokeys – they probably have something to do with the protection as well.
Lunar Lander:
Seems to work fine.
Gravitar:
This is one of the things we need to „tweak“.
The distorted line have to do with „optimization“ and not doing a zero always.
If you use the terminal and type a „zdm 0“ than everything is way slower, but the lines are correct.
This is no emulation fault.
Asteroids (VecSim):
Crashes now! (haven’t looked into it)
Asteroids Deluxe:
Still these strange offsets… (haven’t looked into it)
Red Baron:
Is playable.
15.02.2020
I added a „global“ settings struct – available in baremetal.
This struct is not saved yet, but can be accessed from the loader and from the games equally. The settings are not applied automatically though.
Current structure:
(included with „vectrexInterface.h“)
typedef struct { unsigned char flags; void (*loader)(void); unsigned char orientation; unsigned char lastSelection; // in loader menu char parameter1[16]; } GlobalMemSettings; extern GlobalMemSettings *settings;
If need be – just add additional variables to the structure.
Just remember, these are as of now „standalone“ values. Meaning, the settings-> orientation is NOT the orientation.„orientation“ (as of now) handles the orientation.
So if you want to use the orientation of the settings you have to do a:
orientation = settings-> orientation;
within your program.
Tempest
Is playable. I circumvented the copy protection using emulation features :-). All piracy detection checks are done with a test for 4 locations being zero or not (zero -> everything is ok). So no matter what happens the read to those locations (for Tempest) always return 0 🙂
(see documented source at: https://github.com/smdjeff/Tempest-Source-Code)
Cinematronics
Updated with latest version found in Grahams folder.
The emulator is really slow compared to everything else.
VecSim uses somewhat about 10-15 % in non SBT mode – so 85% of the time can be used to draw vectors.
CinEmu uses about 70-80% -> there i not much time left for vector drawing. I hope this can be sped up a bit. (haven’t looked into it though).
Since I really like Speedfreak, I started to implement the input keys for that. I have done:
- Coin
- Start
- Gas
- Steer left/right
- Gear 1
(none of the other gears yer though 🙂 – but they should be copy paste…. but we probably have to remember what gear we are in so we can do a gear up/down instead of one button for each gear, the Vectrex controller has only four buttons 🙂 ).
This works well!
TimeOut
As said – I will go on a weeks „holiday“ soon.I will not program or change anything during that time. I haven’t done everything Graham emailed about. If some of the things still disturb you, please change them and „check the results“ in.
Before I do anything – I’ll let you all know. Tempest/red baron were the last of the Sims I wanted to work. So like also said before – now I will start enhancing the current emulations (make them look better in PiTrex, no emulation enhancement).
That will probably be
– Battle Zone
– perhaps Pokey/sound support
Config Menu
Changed slightly – I also allow scrolling now – and adding new config menus should be easy.One item added „orientation“.
BOOTING!
I renamed „our“ start kernel for the baremetal booting to „pitrex.img“. I changed the „config.txt“ in the boot partition to include the line:
kernel=pitrex.img
So that pitrex.img is loaded as the start „kernel“. This enables us to leave the default raspbian „linux“ kernel named as „kernel.img“.
I also changed the loader to load „kernel.img“ when „RASPBIAN“ is chosen (instead of linux.img).
Thats all…
Signing off…
Cheers