1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules
Wagnard

Elite Dangerous Horizons/Odyssey Plugin (XML edition) 4.3.1.0 pointer update

Elite Dangerous Horizons/Odyssey

  1. kev b

    kev b Active Member

    Joined:
    May 3, 2016
    Messages:
    176
    Occupation:
    Academic Lecturer - Electrical Engineering
    Location:
    Swindon, UK
    Balance:
    933Coins
    Ratings:
    +132 / 1 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform, 6DOF
    Hi @Wagnard
    Before opening your updated .XML, I try small experiment.
    For practice and to save me having to try using multiple pointer maps (plus more pointer maps from other pc's) to narrow down pointers for new ship moves I did the following;
    Base address for SRV pitch already correctly identified as 05E04528 earlier
    I know on my system, ship motion memory address is 1BB5BA209F8 so I move ship cw and ccw a few times, and in CE I click address 1BB5BA209F8 and generate one pointer map and save it.
    I then do pointer scan for this (ship) 1BB5BA209F8 address using the 'generate pointer map for this address' function. I search for max. level 4 offsets and generate new .PTR file.
    This Pointer scan (.PTR) returns 1388693 results.

    I do a sort function so I see any base address 05E04528 values grouped together. There are only 4 that have this base address out of the 1.38 million results listed in my .PTR result. All four point to my ship motion memory address 1BB5BA209F8
    From the previous .XML I know the previous values for offsets 1 to 4. For roll, offset 1 was 8, offset 2 was 2A0, offset 3 was 420 and offset 4 was 8F0

    I check the values for offsets 0 to 3 for the four results I have with base address 05E04528 shown in the .PTR result list. One of the results shows offset 0 = 8, offset 1 = 2A0, offset 2 = 420 (these 3 offsets match previous .XML) but offset 3 is now 920 instead of 8F0

    I use the original hex subtractions from 920 to find new offset 4 values for pitch, yaw, surge etc.
    I make changes to my old .XML for Odyssey replacing base address (called offset 0 in .XML) with 05E04528 and replace all the old offset 4 values for the ship with my new calculated offset 4 values. (I leave 'speed' offset 4 as 660).
    I save the .XML in Simtools folder and run game. I relaunch Simtools and tuning center now shows ship motion data being correctly received from ED.
    I check values in your updated .XML and all offset 4 values match the results I got.

    Not sure exactly what process you used (multiple pointer maps to narrow down the pointers or process similar to what I did above or maybe something else?). Because only the last offset changed and 3 stayed the same I found the new final pointer for roll quite quickly then calculated the new values for the other 5 axis motions.
    As long as any future ED updates don't mess things up significantly and base address remains same for SRV and ship, I'll try this process again if any ship offsets change again in future.

    Thanks again for all your help.
  2. Wagnard

    Wagnard Well-Known Member Gold Contributor

    Joined:
    Jan 30, 2017
    Messages:
    560
    Occupation:
    Wagnardsoft
    Location:
    Canada, Quebec, Mirabel
    Balance:
    5,327Coins
    Ratings:
    +755 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    What I did after finding the base address with the SRV (easier).
    I did the CW -1.77 thing.

    Here is now I usually do it when something changes for the ship.

    I search for a FLOAT "smaller than" -1.66 and I make the ship do the rotation clockwise. To be able to click on a different window, a joystick is easier. But if no joystick available I use the Flight assist at OFF when the rotation is at it's max then Windows key to free the mouse and then I click the search in CE.

    After that, I immobilize the ship at 0 (to be sure, I press X, even ESC 2 time (that reset the mouse in middle).
    Then in CE, a few next scan at exact values of 0.

    Then we do the counter clock with "Bigger than" 1.66. same procedure.
    At the end there could be 2 values representing the ship
    The good one always seemed to end with something close to 9 something 8 for me.

    After finding it, I do the pointer map and then the pointer scan with that pointer map.
    Max level 4 and max different offset per node not ticked.

    I let it search for all pointer (no pointer must end with selected )

    On the screen with all the pointer, in the menu (set to FLOAT if not already and have the ship at a 0 value not moving) : Pointer scanner -> Rescan memory


    Value to find 0

    and only tick "Base pointer must be in range"
    In the range you put the complete base address like : "EliteDangerous64.exe"+05E04528 for the 2 entry.

    Than hit ok

    You will then have verry few result and will be able to find 1 that is almost identical to the numbers we uses .
    This time it was the last number that was different.

    The HEX difference for the last number was identical to all (+30) if I remember correct.
    Just need to add +30 to the last number of every ship value (except speed, it didn't need it).

    That's approximately how I do.
    • Like Like x 1
    • Informative Informative x 1
    Last edited: Feb 24, 2026 at 20:28
  3. kev b

    kev b Active Member

    Joined:
    May 3, 2016
    Messages:
    176
    Occupation:
    Academic Lecturer - Electrical Engineering
    Location:
    Swindon, UK
    Balance:
    933Coins
    Ratings:
    +132 / 1 / -0
    My Motion Simulator:
    3DOF, Arduino, Motion platform, 6DOF
    That's great @Wagnard

    This part greatly reduced my pointer scan results "Pointer scanner -> Rescan memory: Value to find 0" (I was able to reduce 1.3 million results down to just 11).

    Yes, difference between old offset 4 values in your .XML was +30 for each axis.

    A quick question about speed offset value setting(s). Change wasn't needed this time - but if it did change in a future update, how is the final offset value(s) calculated? and how do you know if it even needs changing?.
    I have a spreadsheet of many previous pointer settings since 2021 for ED and noticed speed used to have offset 4 = 620 then 650. Its now been 660 for a long while. Is this value calculated from another axis pointer offset value or does it have to be found independently somehow?

    Thanks again my friend.
    Last edited: Feb 24, 2026 at 21:25
  4. cprelot

    cprelot New Member

    Joined:
    Jul 27, 2017
    Messages:
    12
    Occupation:
    3D Senior Artist
    Location:
    Montreal
    Balance:
    118Coins
    Ratings:
    +5 / 0 / -0
    My Motion Simulator:
    Arduino, Motion platform, 6DOF
    @Wagnard, thank you for your work!

    For FlyPT Mover, if I want different motion profiles for “Air” and “SRV”,

    Should I create two different custom Hooks with their respective hex addresses and link each one to its own Pose module,

    or should I create one single Hook and route it to different Pose modules instead?
    Last edited: Feb 25, 2026 at 04:43
  5. Wagnard

    Wagnard Well-Known Member Gold Contributor

    Joined:
    Jan 30, 2017
    Messages:
    560
    Occupation:
    Wagnardsoft
    Location:
    Canada, Quebec, Mirabel
    Balance:
    5,327Coins
    Ratings:
    +755 / 2 / -0
    My Motion Simulator:
    3DOF, DC motor, Arduino
    For speed I usually will do the "Browse this memory region" on the pointer that "should" have worked. I look near it where it is.

    Can't tell for sure a I didn't really tried Elite with FlyPT. I know that the author may do something for the pointers in the future. As the current beta (las time I tired) didn't really had the good pointers.