I just committed a couple of small fixes regarding the Virtual AGC integration (Config, Textures, Scenarios and Source folder). I had only to do very small fixes, movieman did already a great job integrating this stuff!
* Lamp test (V35) is fixed, the RESTART and STBY lights are controlled by the test alarm bit of channel 013 in that case.
* The KEY REL and OP ERR lights are now flashing like the real thing.
* Releasing the PRO key was buggy.
* I fixed the missing display element on the DSKY, now only the bitmaps for the pressed keys are missing (Moonwalker... ?)
* I did the right FDAI, it only displays IMU total attitude at the moment.
* I disabled the "AGC cycle limitation" in ApolloGuidance::GenericTimestep for the moment, because if I have a long timestep during test flights and the cycles get limited, the AGC loses time synchronisation and everything is messed up. Movieman, if you really want to have that in, we should perhaps do a scenario file flag for that?
* I did a warning using DebugString in case you forgot to enable nonspherical gravity sources because this is necessary for the Virtual AGC and not settable by code.
* I changed the IMU cage switch slightly: After the IMU is turned on by disabling caging it's working like the real IMU switch and just cages the IMU (instead of turning it off). Hopefully Moonwalker will do panel 100, then we could use the correct G/N power switch...
* In debug configuration the IMU logs it's status in "ProjectApollo IMU.log". This is important for me because of testing.
* The Virtual AGC scenarios are now in a subfolder and use a different earth which has a slightly different size, because the AGC calculates with pad radius instead of mean radius. These scenarios already uses Orbiterfan's new KSC, but the mesh alignment is messed up at the moment. Hopefully we get the new and better ML/LUT soon, then we can fix this.
* The IMU now uses the new fictitious channels 0174-0177.
* PIPA pulsing now uses the MINC/DINC instructions by using the UnprogrammedIncrement function, this fixes the -0/1 transitions in 1's-complement arithmetic.
x15, if you want to use the socket interface, you have to foreward the received data to IMU::ChannelOutput and to change ApolloGuidance::PulsePIPA so that it uses the TCP connection instead of calling UnprogrammedIncrement directly. And you have to change IMU::DriveGimbal so that it uses MCDU/PCDU via UnprogrammedIncrement and the TCP connection instead of changing the erasable memory directly, then it should work with a standalone AGC.
BTW: I still cannot hear the DSKY click sound, did you already commit your change?
* The perhaps biggest fix is in the AGC itself because of coarse align, the Virtual AGC mailing list people know what I mean. I committed my fix in agc_engine.c until Ron released a new version with his solution of that problem.
Using the Virtual Apollo instructions (but the new IMU power on) I get quite good results. I'll do some further testing and post the results of earth orbit insertation soon.
But I noticed something strange: After SII/SIVB separation the LV begins to roll, do we have a guidance problem with the IU? I had no time to check the non-Virtual AGC mode with nonspherical gravity sources disabled.
But I'll be on vacation next week so I had to hurry a little bit, hopefully I didn't mess up anything. And since I won't have much internet access on vacation, I'll continue with the ECS and try to understand the water-gycol cooling, so movieman and x15: The Virtual AGC/DSKY are yours again!