Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RPM to MAS Module Manager mega patch #277

Open
MOARdV opened this issue Aug 12, 2019 · 16 comments
Open

RPM to MAS Module Manager mega patch #277

MOARdV opened this issue Aug 12, 2019 · 16 comments
Assignees
Milestone

Comments

@MOARdV
Copy link
Owner

MOARdV commented Aug 12, 2019

It'd be a nightmare to write and test. But it'd make MAS adoption easier. I just don't see myself having dozens and dozens of hours to write and test a patch like that. A number of the props will not require upgrades, I think - some are primitives that don't use RPM modules.

Process: I'll check off a group once the conversion and MM patch are complete. Since I've already converted a handful of these to MAS, I may use them even if I've tweaked their behavior a little (such as MAS_ASET_ALTIMETER working only in the atmosphere).

Naming convention: Use the ASET name, prefix MAS on it. Check that it doesn't collide with something I've already done.

Testing: Ugh. That's going to be almost as much work as converting everything. I'll need to find some RPM IVAs that cover enough of the prop gamut. The ALCOR lander, of course.

Let's see how well GitHub can handle a mega checklist...

Avionics/ClassicPack

  • ASET_AHI
  • ASET_Air_Fuel_FLOW
  • ASET_ALTIMETER
  • ASET_AMB-SURF_TempGauge
  • ASET_AoA
  • ASET_ASI
  • ASET_BatteryGauge
  • ASET_DynamicPressure
  • ASET_Elec_Output
  • ASET_EngineGauge
  • ASET_FlapsIndicator
  • ASET_FuelFlow
  • ASET_FuelQTY_Digital
  • ASET_G-METER
  • ASET_GroundSpeed
  • ASET_Heading
  • ASET_HSI
  • ASET_IntakeAir
  • ASET_LG_Lever
  • ASET_MachNumber
  • ASET_RadarAltimeter
  • ASET_RMI
  • ASET_RMI_2_Needle
  • ASET_TemperatureGauge
  • ASET_Thrust_kN
  • ASET_Thrust_Throttle
  • ASET_TrimIndicator
  • ASET_TurnCoordinator
  • ASET_VPG
  • ASET_VPGDual
  • ASET_VSI

Avionics/ModernPack

  • ASET_B-Knob/ASET_B-Knob_2pos
  • ASET_B-Knob/ASET_B-Knob_3pos
  • ASET_B-Knob/ASET_B-Knob_4pos
  • ASET_B-Knob/ASET_B-Knob_5pos
  • ASET_B-Knob/ASET_B-Knob_6pos
  • ASET_B-Knob-LightDimmer
  • ASET_B-ThrottleQuadrant
  • ASET_B_Compass
  • ASET_Comm_Radio
  • ASET_DME_Display
  • ASET_FlapsCtrl
  • ASET_HUD
  • ASET_MIP_Display
  • ASET_NAV_1_Radio
  • ASET_NAV_2_Radio
  • ASET_SpoilersLever
  • ASET_Yaw_Dumper
  • ASET_Yoke_V01

Props/Control

  • ABORTbutton
  • ABORTButtonV2
  • Apollo_CircuitBreaker
  • Apollo_PushButton
  • AutoPilotSwitch
  • AutoPilotSwitch2
  • ButtonBlocker
  • CircuitBreaker
  • CircuitBreakerV2
  • LightSwitch
  • NumInputDialDualMode_NoButton
  • Push_Button_Modular/ActionGroups
  • Push_Button_Modular/Chatterer
  • Push_Button_Modular/Indicators
  • Push_Button_Modular/Lights
  • Push_Button_Modular/ MECHJEB
  • Push_Button_Modular/Misk
  • Push_Button_Modular/Num_Input
  • Push_Button_Modular/RPM_Actions
  • Push_Button_Modular/SAS_Modes
  • Push_Button_Modular/Stock_Actions
  • Push_Button_Modular/WARNING_OVERRIDES
  • Push_Button_Modular/zzz_Fakes
  • RCS_Stick_ADV
  • RCS_translation-Stick
  • RetroButton
  • RotationCtrl
  • RotationCtrl_V2
  • SAS_Switch
  • StageSwitch
  • SwitcherCover
  • SwitchPUSH
  • SwitchRotary/2_pos
  • SwitchRotary/3_pos
  • SwitchRotary/4_pos
  • SwitchRotary/5_pos
  • SwitchRotary/6_pos
  • SwitchWCover
  • switch_B_Button01
  • switch_B_Button02
  • Switch_Toggle_Modular/Event_and_Mission_Timer
  • Switch_Toggle_Modular/Num_Input
  • Switch_Toggle_Modular/Retro
  • Switch_Toggle_Modular/RPM_Actions
  • Switch_Toggle_Modular/STOCK_Actions
  • Switch_Tumble
  • Switch_Tumbler_3Pos
  • Switch_Tumbler_V2
  • Switch_Tumbler_V3
  • ThrottleCtrl

Props\Instruments

  • ARRT
  • ASET_AnalogSpeedIndicator
  • ASET_ClockTimer
  • ASET_CRT_Display
  • ASET_DSKY
  • ASET_IMP
  • ASET_IMP_LAT-LONG_GAUGE
  • ASET_SignalLamp
  • ASET_Talkback_Indicator
  • DigitalIndicator
  • DigitalIndicator_EmissiveScreen
  • FDAI
  • FDAI_GMCP
  • FlagIndicator
  • FuelMonitor
  • GforceDisplay
  • ImpactSpeedIndicator
  • IndicatorADV
  • IndicatorADV_2Scales
  • IndicatorCircular
  • IndicatorPanel5x3
  • NASA_Elec_Output
  • NASA_GaugeDblPerc
  • NASA_GaugeSnglPerc
  • NASA_Gauge_Temperature
  • NASA_G_Units_Indicator
  • PhaseAngleIndicator
  • PortableTimer
  • Resource_Display
  • RetroAltitudeDisplay
  • RetroWarningLight
  • RNDZ_RadarSignalIndicator
  • STS_EventTimer_Indicator
  • STS_Thumbwheels_Assembly
  • TabloIndicator/Aircraft
  • TabloIndicator/Alarms
  • TabloIndicator/Cautions
  • TabloIndicator/Fakes
  • TWR_Indicator
  • Xpointer

Props/MFDs: This is going to be the most time consuming.

  • ALCORMFD40x20
  • ALCORMFD60x30
  • kOSTerminal

Props/Misc

  • ALCORinternalHatch
  • ALCORVentilator
  • ASET_InternalHatch
  • BigBag
  • ClimatScreen
  • CrewManual01
  • InternaLights
  • InternalLightBox01
  • JSIMainCompUnit
  • LabelText
  • LifeSupportMonitor
  • MediumBag
  • PanelDivider
  • PSU
  • RecoveryBeacon
  • SeatV2
  • SmallLabelPlate
  • SwitchFlatPanelShort
  • SwitchPanelsLong
  • SwitchPanelsShort

Props/SpaceFoodPack

  • ALCORFoodStation
  • beveragePackage
@MOARdV MOARdV self-assigned this Aug 12, 2019
MOARdV added a commit that referenced this issue Jul 12, 2020
One tiny step towards an RPM conversion patch, Issue #277
MOARdV added a commit that referenced this issue Jul 12, 2020
Already converted them.  Issue #277
MOARdV added a commit that referenced this issue Jul 12, 2020
@MOARdV MOARdV mentioned this issue Jul 22, 2020
15 tasks
@MOARdV MOARdV changed the title RPM to MAS Module Manager mega patch? RPM to MAS Module Manager mega patch Jul 22, 2020
@MOARdV MOARdV added this to the v1.2.0 milestone Jul 23, 2020
@MOARdV
Copy link
Owner Author

MOARdV commented Jul 26, 2020

Specific props that require a second round of work:

  • MAS_DigitalIndicator_Elec_Output has an associated rotary switch, and it selects one of several power outputs.
  • MAS_DigitalIndicator_ImpactSPEED has multiple possible outputs using VARIABLESET in the RPM prop.
  • MAS_DigitalIndicator_EventTimer
  • MAS_DigitalIndicator_12char_OrbitNumInput

@theonegalen
Copy link

Wow, I've just ordered a new computer and you're working on MAS again? It must be my birthday after all!

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 2, 2020

you're working on MAS again?

Well, sort-of working on MAS. The plugin can do just about everything RPM can do, so it's on par with RPM. The problem is that I've only created props that I needed for IVAs I created myself, so it's not really well positioned for other people to jump in and create fully-developed IVAs.

The mod's never going to take off if I don't make a patch that lets RPM cockpits work with MAS. The problem is there are something like 1200 props in the ASET collection, and it is mind-numbingly tedious to go through all of them, figure out what they do, and assemble an equivalent MAS prop, even with the tool I wrote to automate the config file generation step. But if I don't write a patch to convert RPM IVAs to MAS and provide MAS versions of the RPM props, there's not much of an impetus for people to make the jump from RPM.

I've also discovered quite a few props in the ASET collection that don't have functional config files - there are several different props that Alexustas made that have never shown up in-game. A few of them I've managed to use in MAS at various points during development, but I'd love to share all of them. The trick there is that they cover a wide range of design styles - analog and modern (glass) aircraft, Apollo-era spacecraft, more modern spacecraft. It would be weird to put all of them in one IVA, and my time is a little too limited to create several IVAs to showcase all of them properly.

So, we'll see how many props I can convert this summer before I'm too bored to keep going. It would be easier if alexustas were still modding, since he figured out how to take advantage of MAS fairly quickly, based on some of the videos he posted on his Youtube channel. Ah, well.

@theonegalen
Copy link

theonegalen commented Aug 5, 2020

Well, now that I have my new computer set up, I'd like to get back to working on IVAs myself. However, I'd rather not duplicate your work unnecessarily, or create conflicting versions of MAS versions of props. I wish I had the head for MAS code that alexustas has, but the things he was posting on his youtube with the MAS MFDs just completely blew my mind.

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 5, 2020

MFDs are a going to be tough - I've got to make MAS versions of what alexustas did, which means figuring out what each page is supposed to be doing. The rest of the props will be comparatively easy since I've got a tool that takes care of most of the generation work, so all I have to do is add a few lines to an XML file, and a few lines to a MM patch file, and a new prop shows up. But it still means going through every single prop and figuring out what it does and what the MAS equivalent is.

@MOARdV MOARdV modified the milestones: v1.2.0, v1.3.0 Aug 9, 2020
@MOARdV
Copy link
Owner Author

MOARdV commented Aug 12, 2020

alexustas at one point said he was deprecating a number of old switch styles. While doing this upgrade patch, I should see where I can consolidate them (most likely some of the switchTumble variants).

@theonegalen
Copy link

theonegalen commented Aug 13, 2020

Yes, I think most of those can be safely replaced with the modular switch.

I'd be glad to get started on the Avionics pack, most likely on Saturday. Do you want me to focus on duplicating the functionality of the RPM versions distributed with the Avionics pack itself? I think most of those would stop working under high G or if the craft lost electrical power.So for any backlights or other electrically-dependent gauges, I should nest those in the fc.Conditioned() function, correct?

One thing I've noticed when flying DCS is that an old magnetic compass will read incorrectly while in a bank, so I could duplicate that functionality as well. I especially look forward to replacing the old spaghetti math scripting for the radio navigation with your built in fuctions!

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 13, 2020

I'd be glad to get started on the Avionics pack, most likely on Saturday. Do you want me to focus on duplicating the functionality of the RPM versions distributed with the Avionics pack itself?

That is very much appreciated. My suggestion is to make equivalent props where possible. The initial goal is to get a replacement for each prop in the parts packs that works the way the player would expect based on their experience with RPM. If there's things MAS can do to enhance the usefulness of the prop, that's good, too. For instance, I made the altimeters stop working outside the atmosphere, under the assumption that they use atmospheric pressure to determine altitude, not radar.

The radio nav stuff will be fun to see in use. alexustas made some neat aviation charts for Kerbin - it'd be nice for them to be useful during play.

Lights or other electrically-controlled components should use fc.Conditioned(), for sure. For instrument lights, make sure the COLOR_SHIFT uses 'blend = true' - MAS allows instrument lighting to be dimmed, instead of only off/on. The ASET light controls don't support that, but MAS controls can.

Oh - I should describe the "standards" I'm using for the props. They're mostly ad-hoc, but I'm trying to be better organized. Hopefully this looks like more work than it is:

  • The MAS prop config file goes under GameData/MOARdV/MAS_ASET/(directory), where (directory) is the name of the ASET prop's directory - like ASET_ALTIMETER. For something like the ASET_B-Knob, they'll all go under ASET_B-Knob, not under ASET_B-Knob/ASET_B-Knob-2pos, ASET_B-Knob/ASET_B-Knob-3pos, etc. - just make sure the prop name includes the 2pos or 3pos, in this example.
  • Props are named MAS_(propname), where the (propname) is something similar to the ASET prop's type and name (like MAS_APswitchButtonClearNodes). Feel free to fix typos in names. Ideally, all of the prop names in a folder have consistent names, like MAS_LabelText_(name) for all the props in MAS_ASET/LabelText. I didn't follow that rule myself early on. but I'm trying to be more consistent.
  • The config file's name is the same as the prop. The Prop Config tool does this automatically, but that tool's really only useful if you need to make a lot of props with a similar template.
  • Documentation - I've got a work-in-progress document for the entire props collection. For each folder I convert, I list the folder's name, the general format of the prop names, and a one or two sentence description of what the prop looks like and what it does. If you've got many props in a folder, you don't have to document each one, as long as the name of the prop provides a hint. The documentation can just be a text file - I'll merge it into the master document,
  • Props that depend on other props (like, maybe, radio navigation?) - these are more complicated, since the props need to share information through persistent variables. What I really need to do is add a master list of shared persistents to the top post here. If you come across something like that, let me know, and we'll figure out how to proceed.

(sorry for the wall of text :) )

@theonegalen
Copy link

theonegalen commented Aug 15, 2020

Finished the AHI. Currently it acts the same as the ASET RPM version; with the Flight Director showing AoA and Sideslip. Once I get the navigation stuff under my belt, I hope to set it up to actually show the bearing to a selected waypoint.

It's been a long time since I've programmed a prop, so it took a lot of brainpower and time for me to break through my mind fog. I think the others will come more quickly. If it weren't for some dumb mistakes, I would have finished it hours ago.

I really like how MAS works - I especially like the ability to nest functions in order to create custom variables right in the prop itself. Not having to have a huge CUSTOM_VARIABLES config somewhere is nice.

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 16, 2020

I really like how MAS works - I especially like the ability to nest functions in order to create custom variables right in the prop itself. Not having to have a huge CUSTOM_VARIABLES config somewhere is nice.

That was one of the two major reasons I started with a blank slate for MAS. The CUSTOM and other compound special variable systems are extremely cumbersome, but that's your only option in RPM if you want to do anything other than a basic prop.

@theonegalen
Copy link

I've gotten through the battery gauge finished so far, including testing. I'll try to have have the Classic Pack done this week.

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 17, 2020

I've gotten through the battery gauge finished so far, including testing. I'll try to have have the Classic Pack done this week.

That's good progress. I've been muddling through the JSI Basic MFD and picking off some of the RPM features that I had overlooked. I hope to have that done this week, which will let me do a MAS release that officially supports the Stock RPM props. Then I'll be back to ASET.

@MOARdV
Copy link
Owner Author

MOARdV commented Aug 25, 2020

I found a couple of mystery switches - swTumbleERSHUD01 and swTumbleERSHUD02. They both toggle persistent values (TurnERSHUD01 and TurnERSHUD02), but I don't see either of those persistents used anywhere in the ASET props. -01 has a "ORIENTATION" caption below it, and -02 has a "COMPASS" caption. The lighting for the caption on both is tied to whether landing gear are deployed on not.

@MOARdV MOARdV modified the milestones: v1.3.0, v2.0.0 Aug 25, 2020
@MOARdV MOARdV mentioned this issue Dec 28, 2020
@JonnyOThan
Copy link
Collaborator

I found a couple of mystery switches - swTumbleERSHUD01 and swTumbleERSHUD02. They both toggle persistent values (TurnERSHUD01 and TurnERSHUD02), but I don't see either of those persistents used anywhere in the ASET props. -01 has a "ORIENTATION" caption below it, and -02 has a "COMPASS" caption. The lighting for the caption on both is tied to whether landing gear are deployed on not.

Probably related to https://forum.kerbalspaceprogram.com/index.php?/topic/85645-173-exploration-rover-system-by-aset-v03-040819/

@MOARdV
Copy link
Owner Author

MOARdV commented Oct 1, 2022

Yeah, those props look like they're controls for the ERS Pitch/Roll Display in that mod (PitchRollDisplay.cfg)

@sovetskysoyuz
Copy link

Some of these are included in #368

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants