The only way I know would be to dig into the exe and try to track the behaviour down. It's not an easy task, as the data structures containing the meshes and, therefore, the rpm lights, are quite complex. Tracking down the function that refreshes per-frame the cockpit dash and wheel might be a starting point. In the meanwhile, here is some info that I have found during my explorations:
- At 0x002428d8 there is a list of of all cockpit object names (294 in total)
- At 0x002412f8 there is an array of pointers to the strings above. This array is used to search for each object in cockpit_dash.gp4 and cockpit_wheel.gp4.
- At 0x0064fcc8 there is a pointer to the data structure (class) that contains all the cockpit information. The data structure is 0xd90 (3472) bytes long. Within this data structure:
- At 0x98 there is an array of object indices, corresponding to the object names in the array described above
- At 0x530 there is an array of "mesh indices", indicating whether the object is in cockpit_dash.gp4 or cockpit_wheel.gp4
- At 0xd88 there is a pointer to a CGP4Mesh class instance for cockpit_dash.gp4
- At 0xd8c there is a pointer to a CGP4Mesh class instance for cockpit_wheel.gp4
The CGP4Mesh class contains tons of data, often divided into a lot of different other classes. It is unclear to me, at this time, where, within the data hierarchy that starts with CGP4Mesh, whether there is or where there would be some sort of object visibility flag, that would control whether an object is rendered or not.
So, arm yourself with a good debugger, a disassembler like Ida Pro or Ghidra and lots and lots of patience ...
