Hi all
The memory addresses for all output/game conditions of all the games my VR program supports is available if you want them.
The IO PCB isn't emulated in the Sega Model 2 Emulator at all, or atleast if it is, it's not made accessible to users. I used CheatEngine and ArtMoney to find practically everything running in memory that is accessible to do with speed, acceleration, angle, steering, g-forces (which I assume the FFB is ran from by the emulator) etc.
From there I also gathered a mass of gamestate memory locations (which if not published took hours if not days of testing to discover reliably).
My output emulator VR thingy works but recreating the logical conditions from the ingame conditions that would normally be used to determine the outputs.
For example, I'd say;
If gamestate = 22 (ingame) and VRView = Yellow
Then enable output XX on PacDrive X etc etc
So essentially I monitored Hex code as it was running and reverse engineered what the game was doing to write a software equivalent of the IO PCB would have to do. It's all external to the emulator. And although I haven't done much to it for a month or so. It's pretty close to the real thing.
Monitoring the memory locations of the Service menu LAMP/Output test worked only when in service mode, and the locations it writes to in the emulator is met with a null location when monitored with CheatEngine or ArtMoney.
LUA does have OS.Execute, but using PostMessages is dependent on the version of LUA that was embedded. I've really found a lack of documentation of users writing Postmessages in LUA as most sample code online is for hacking WOW. The only reference I found to PostMessage in LUA was for a version of Girder, and at that time wasn't implemented into LUA.
I was meaning to contact you Howard in regards to getting AHK postmessages outputting to your Mamehooker correctly. Maybe a little co-dev here might speed things up a little and I'm learning higher level programming languages purely by having a go. I'm normally an assembly language programmer for microprocessors which is why I'm able to reverse engineer the Model 2 easier than writing the Windows equivalent higher language.
On a side note, yesterday I wrote a driver component to allow any AHK script to control and use those cheap LED name tags you get from novelty stores. I have mine at the moment updating Insert Coin/Credit/Running ROM information and planning to release a little utility to allow people to buy a $10 LED Name Tag and stick it on their cabinets for cool stuff... It's kinda funky.
Ramjet