Update 0.99.45: Apollo DAP, ORDEAL, Translations, Bug Fixes

This update will correct a lot of long-term issues such as attitude hold capabilities, ping/pong thruster firing, improve how the Apollo Digital Autopilot (DAP) works, add the latest contributions to language support, improve how the ORDEAL works and fix critical issues. It also improves the Reentry UDP Api. This is a big update with a lot of fundamental changes, so please check the note below on how to revert if you stumble upon issues.
Note: A lot of core features has been changed in this patch. If this update gives you issues, you can revert to a previous build using the Steam Betas tab. The previous update is on branch: Reentry Version 0.99.42 and Reentry Version 0.99.41.
Update 0.99.46: Rolled out a minor patch related to this updated correcting a defect CSM translation thruster (left/right) and increased the font size of the Gemini EVA/Hatch function bubbles.
Critical bug fixes
- Mission 1, Campaign 3:
I have corrected an issue where you were unable to complete the first mission of Campaign 3 (the cutscene). - Mission 2, Campaign 3:
Corrected the initial state of the panels that caused issues as you progress through the mission. - Mercury Earth/Atmosphere artifact:
Fixed the large white glowing lights during external view of Mercury ascents and orbit (this bug was introduced in my previous patch). - Ground Crew Ingress - Fuel Cell state fix:
Made a fix that would automatically connect the fuel cells during the ground crew ingress state. - Updates to the TD&E lesson
I have improved the Transposition, Docking and Extraction lesson (Lesson 10 of the Apollo Command Module Academy) to contain more information about DAP setup, EMS setup and some more details on the turnaround to docking maneuver.
Note: For any docking mission, I recommend turning off the Automatic Prograde rotation Realism Setting
Command Module DAP parameter updates
Added support for the A/C (XTAC) and B/D (XTBD) X-translation parameters (R1, parameter B and C), and the R2 parameters A: A/C or B/D roll.

You can now configure what thrusters you wish to use for translation in the X-axis, and what thrusters you wish to use for roll.

CMC/LGC thruster logic fixes
I have improved the logic and algorithm responsible for deciding what thruster needs to be fired, and for how long it should be fired while maneuvering towards an attitude, or while maintaining an attitude. The mode will enter a ping/pong (thrusters going bwop-bwop-bwop) mode depending the selected DAP parameters (deadband, max rate), but unlike before, it should be much better at reducing it, recovering from it, and stopping the rates down to a very small fraction (angular rate) once inside the target attitude +/- deadband.

CMC/LGC Attitude Hold logic
I have improved the Command Module and Lunar Module CMC/LGC attitude hold logic. This mode allows you to use the hand controller to manually maneuver towards an attitude. When you deflect the controller, the craft will accelerate until the rates specified in the DAP setup has been met, then drift until the stick is released. When released, the mode will try to maintain the attitude you had when the stick was released, following the set DAP parameters. This logic existed before but has now received a much needed overhaul.

Command Module/Lunar Module ORDEAL improvements
The ORDEAL in the Command Module and the Lunar Module has two modes: ORB RATE and INERTIAL. INERTIAL will display the current IMU/GDC attitude on the FDAI, while ORB RATE will show the Local Vertical Local Horizontal (LVLH) on the FDAI.

Reentry has so far used a simplified ORDEAL logic when the ORDEAL is set to ORB RATE. It temporarily adjusted the IMU/GDC inertial platforms to match the LVLH (or the attitude visible on the FDAI). When the ORDEAL was returned to INERTIAL mode, the adjusted IMU/GDC platforms would revert to their original settings.
This allows auto-maneuvering and spacecraft attitudes to align with the selected ORDEAL mode. The simplification here is both that you can always have a Local Vertical Local Horizontal attitude reference to cross check the IMU/GDC while you learn to operate the craft, and also have the ability to maneuver the craft using this LVLH as your inertial platform (such as being able to target attitude 0,0,0 while in Orb Rate to reach progreade, or 0,0,180 to reach retrograde).
I have now made a setting that allows you to opt out from this simplification.
Note: Keep in mind that some academy lessons assume this is set to ON.
Setting this to OFF will make the ORDEAL only adjust the FDAI ball without affecting the orientation of the IMU/GDC. This means all attitude information, auto-maneuvering, and targeting will be relative to the IMU even while in ORB RATE, and the ORB RATE mode will be visual-only. This is the more realistic option, and I recommend those familiar with the IMU, REFSMMATs, P52, and attitude control to set this to OFF, along with the "Automatic Prograde" realism setting.

Command Module: Direct Ullage
I have added support for the Direct Ullage push-button in the Command Module. This will fire +X axis translation thrusters while being held down. You can use this as a backup from ullaging with the translation stick. Ullaging is a method used to settle the propellants of the SPS engine (CSM) and Descent Engine (LM) in the aft part of the tanks.

Push button logic fixes
I have improved the logic related to the cockpit push buttons (Gemini, Command Module, Lunar Module) based on feedback and requests from you. Any button will now be held down if you hold down the trigger key (left mouse button), and will animate back up when released. Most will still trigger the logic once for each push down, however, some buttons like GDC align and Direct Ullage will continuously trigger its logic while being held down (as before). You can try this while for example interacting with the OBC or the CMC/LGC. Press and hold down the left mouse button, and it will stay down.
I have also corrected the depth of some push buttons to prevent the animation from going through the panels.

Realism Setting: Remove Cockpit Shake
This setting will remove all cockpit shakes during ascent, burns and entry.
Translation/Language Updates
Kind_Stone has submitted multiple pull requests and language updates in order to fully translate the entire games User Interface, Mercury Academy, Mercury Campaign and Mercury Historic Missions to Russian. This is the first translation to completely cover all of the Mercury Content (except for checklists, currently not possible to translate).


This translation is also updated with the big language-support-update I released in the previous patch, where 100s of additional UI elements was added to the translation files, and support for translating Gemini/Apollo missions, and campaign files were added.
Existing translations will still work, but new UI elements and mission changes will need to be added to the translations:


If you wish to help out with translations, be sure to visit our Discord channel and reach out!
Reentry UDP API: Output
I have started to test the output logic of the Reentry UDP API. External applications can now receive state data from Reentry (currently a list of parameters) such as cabin pressure, timers, what warning lights are illuminated, etc. This is limited to Mercury for testing. However, I will soon support sending the existing Gemini OBC and Apollo CMC/LGC currently being exported to a file for monitoring.
Reentry UDP API: Input
I have updates the Reentry UDP API to support more commands from external applications into Reentry - A Space Flight Simulator. External applications can now command most of the panels of all spacecraft.
Previously I had support for Set Switch and Push Button. This update adds:
- Set Circuit Breaker / Fuse
- Push Button
- Set Selector / Knob
- Set Handle (Pull/Push Handle)
See the video below for details about the Reentry UDP API:
[previewyoutube][/previewyoutube]
An example of the type that can be passed to Reentry to configure the panel:

Reentry UDP example project
I have updated the Reentry UDP example projects with the new additions. You can find the project here:
https://github.com/ReentryGame/ReentryUDP
0.99.43 release notes
- Project Mercury white line on Earth artifact fix
- Fixes to a bug introduced in the last patch where you in Campaign III is unable to complete the first mission of the campaign (cutscene)
- Added support for the CMC A/C and B/D roll thruster and translation DAP setup
- CMC Attitude Hold and AUTO thruster fire updates (reduce ping-pong)
- LM PGNS Attitude Hold and AUTO thruster fire updates (reduce ping-pong)
- Ground Crew Ingress Fuel Cell state fix
- Updates to Campaign III Mission 1 panel state
- Updates to the TD&E lesson (Lesson 10 of the Apollo Command Module Academy)
- Improved Gemini and Apollo button "hold down" logic
- Direct Ullage to Command Module and Lunar Module
- Corrected push-depth of Gemini, Command Module and Lunar Module buttons that went through the panel when pressed (animation)
- Updated how the CSM and LM ORDEALs work.
- Added Realism Setting: Simplified ORDEALs
- Added Realism Setting: Remove Cockpit Shake
- Translation: Russian Language (Mercury Complete)
- UDP Output data: Initial testing of sending cockpit/spacecraft data from Reentry to external apps using the Reentry UDP API.
- UDP input:
- Added support to the Reentry UDP API for:
- Set Circuit Breaker / Fuse
- Push Button
- Set Selector / Knob
- Set Handle (Pull/Push Handle)
- Set Circuit Breaker / Fuse
- You should now be able to configure the entire cockpit using the API
- Added support to the Reentry UDP API for:
- Updated UDP example client