Hello!

It looks like you're new here. If you want to get involved, click one of these buttons!

[GUIDE] Homeworld Remastered Collection

2

Comments

  • someone must have a good star watching for him:

    DPX: https://www.dropbox.com/s/fuvqee0bjlypoze/HomeworldRM_Public.CT.zip?dl=0

    AWS: https://console.aws.amazon.com/s3/home?region=us-east-1#&bucket=elliptic&prefix=gamingart/public/

    Smoothly working with 3-4 first updates...now harder to predict effectiveness. GLHF
  • Thanks Smithfield, but it is not working at my end (using Homeworld Remastered Collection v 2.1).
    Aparently there was a huge patch last june, maybe it has broked the table, anyway I will update if I manage to make it work.
  • edited November 2016
    Small bump, I wanted to shoot Homeworld again VERY much... so I went for the nasty solution, if you're still looking to shoot homeworld remastered, there's a way to do so... By going back to Homeworld v. 1.2 How's that? Well not through GoG Rollback unfortunately, instead (only if you already own HW) I invite you to look up: "Proper Codex"... Table seems fully compatible again.

    EDIT: here's a newer proper CDN link to djh's CT
    https://di644ms621awv.cloudfront.net/gamingart/public/HomeworldRM_Public.CT.zip
  • edited October 17
    Sorry for bumping this, but is there any chance that the table will be updated to the much improved 2.1 version of Homeworld? My Cheat Engine skills are too low to do AOB scan tables, since the addresses for the various values change every time.

    A link to the old table that has disappeared from the original post:
    https://mega.nz/#!0l9EmTAD!0hNDtlQRziP4_NSqDQMMM5WU7ytgdyiIYnIZMIGAmoA

    Any help would be highly appreciated and I'd love to gift a copy of Homeworld Remastered to anyone who can update the table. Thanks in advance!
  • In each session are you able to find the camera addresses with those opcodes in the "Advanced Options" list in that table? Might be able to use the default create AOB script on one of those to find your camera structure.
  • One3rd said:

    In each session are you able to find the camera addresses with those opcodes in the "Advanced Options" list in that table? Might be able to use the default create AOB script on one of those to find your camera structure.

    No, I haven't used the advanced options tab - my normal procedure is just to find the float values similar to the old table in the first mission and then find the rest from there via changed value -> unchanged value. All the camera values (xyz, far clip, FOV) are near each other so it's a limited range of addresses that I have to explore. But again, as I don't have AOB skills, these addresses change every time I restart the game.

    I'll try to look into the advanced options list if you think that might be a possibility. But again, I have no idea what I'm doing when I'm looking at the code list.
  • Oh! If you are already finding the camera structure manually you should be able to right-click on one of those coordinate addresses and select "find out what accesses this address". Then add those opcodes to the codelist (which is the list of opcodes in the "Advanced Options" section). In this tables case the AOB scan is used to find that opcode instead of relying on the opcodes address as this is less prone to change over different game builds.

    I was initially thinking that the opcodes currently in that codelist may have pointed to the camera structure and then could be used to grab that pointer but since you are already able to find those you won't need to do this.

    Or are you saying that the addresses that the opcodes are at changes everytime the game runs? If that's the case you would definitely need to find them again with an AOB scan as any opcodes in the codelist would only be valid once.
  • Thanks One3rd, but this is too complicated. I obtain what accesses the addresses, but I don't know what to with them after adding them to the codelist under advanced options. It's just incredibly complicated to understand for me with all the hexidecimals, the AOB scripts, the pointer scans, etc. And the camera script that Duncan already created is too complicated with the 3 lines of AOB scan hexidecimals that I simply cannot fathom.

    For example:

    The original codes (advanced options):
    https://abload.de/img/deadendthrillstas6h.jpg

    The new codes (FOV values and the OrbitX values advanced options)
    https://abload.de/img/deadendthrills_newhsagh.jpg

    Here's an example of the FOV scan
    Original script access:
    https://abload.de/img/fov_deadendthrillsoriv9s04.png

    My amateur scan of access:
    https://abload.de/img/fov_deadendthrillsnew00sdo.png

    Here's another example of the OrbitX scan
    Original script access
    https://abload.de/img/orbitx_deadendthrillsdksla.jpg

    My amateur scan:
    https://abload.de/img/orbitx_deadendthrills79s9g.jpg

    I would seriously love for someone to simply update the table. I have such a hard time and I spend hours on trying to understand how to do anything.
  • I hear you, it can definitely be frustrating trying to learn something like this. I still have a hard time figuring some of this out as I don't have that core assembly knowledge that would likely make everything "click" into place. There are a number of excellent tutorials on the old CE Forum and here on DET that can help fill in some of those holes. These, along with reverse engineering other CE tables, was how I learned my small amount of knowledge with CE. Some that I've found useful are below.

    Auto Assembler Tutorial
    http://forum.cheatengine.org/viewtopic.php?t=95363

    Pointer Scanning, Injection and AOB to Data
    http://forum.cheatengine.org/viewtopic.php?t=572465

    How to NOP
    http://forum.cheatengine.org/viewtopic.php?t=217758&sid=05429d0891ca1cbff27e7484df54dfe2

    Tutorials and snippets discussed on DET
    http://www.deadendthrills.com/forum/discussion/comment/5966/#Comment_5966
    http://www.deadendthrills.com/forum/discussion/comment/4236/#Comment_4236
    http://www.deadendthrills.com/forum/discussion/comment/7511/#Comment_7511


    I was going to get Homeworld Deserts of Kharak in the Christmas sales so maybe figuring out the camera in Homeworld now will benefit Deserts of Kharak as well. It's on sale so I'll pick up Homeworld and see if I can help get that table working. No guarantee's but two heads will be better than one.
  • So I'm not sure how the original table worked but it looks like I've found a different camera structure to the original. It controls x, z, y, orbitx, orbity but I can't seem to find the rest of the values in the structure that were in the original table. The structure I found is below. Is this the structure that you have been finding or something different? If different can you upload the table with those new opcodes so I can take a look? Would be better to have proper FOV control and tilt if it's available.
    https://drive.google.com/open?id=0B0Ad-GMKCuiNU1ZZRGxhVUYzZ2M

    I was also able to find the pause state and have added that script as well as the camera one I found. See if the table works at all for you. Keep in mind I only tried this on the first mission in Homeworld Remastered so far.
    https://drive.google.com/open?id=0B0Ad-GMKCuiNckh3TEQ5Nno4VFk

    How was the HUD being removed previously? Is there a keybind for that in the game or something else I've missed? (NVM, just needed to press backspace a couple of times to toggle HUD.
  • WOW, oh my god one3rd, you're the best. Sorry for being out of the loop, but the whole GAF meltdown thing has had me uprooted and being away on Discord for a long time. Thank you soooo much for this.

    I can find the rest of the values and upload the table later tonight if that helps. There is a pause function via the Pause key, but it includes the "Game Paused" message that ruins any screenshots. Not sure if that helps.
  • No worries, let me know if that is the same camera structure you found though as it didn't seem the same as the original. I did find that pause value, it's also in the table, let me know if that works for you as well.
  • Lime said:

    WOW, oh my god one3rd, you're the best. Sorry for being out of the loop, but the whole GAF meltdown thing has had me uprooted and being away on Discord for a long time. Thank you soooo much for this.

    I can find the rest of the values and upload the table later tonight if that helps. There is a pause function via the Pause key, but it includes the "Game Paused" message that ruins any screenshots. Not sure if that helps.

    GAF seems to be back, but I've mixed feelings on visiting it on a regular basis, after reading everything (EL's post, Waypoint article with statements from both sides).

    Anyway, I see you're almost there with cheat engine, good work, keep it up! :)
    So in this shot you posted:
    https://abload.de/img/fov_deadendthrillsoriv9s04.png

    you see a single statement, a 'mov' statement, which moves data from one place to the other, in short: mov destination, source. If source is within [] the value pointed to by that element is read instead. Here the value in ebx is written to the address between []. If you right-click that statement you can select 'replace with nop', which simply makes the write not being there anymore. If things then work, you can create a simple script which simply does that when you press a key: it replaces the mov statement with nop's.

    If you click on 'show disassembler' in the dialog in the screenshot, you go to the actual code view which is easier to work with. (which is the memory viewer + disassembler). Assembler statements like mov and nop and ret and the like, are stored as bytes, so AOB scanning simply searches for the bytes, meaning it searches for the statements so you know the address the statements are stored at so you can overwrite them. It's easier to work with file offset view btw: in memoryview, under 'view' select 'show module addresses' which gives you the format executable.exe+hexadecimal offset. You can use that address (which is relative to the executable's location in memory which can differ each time) also in your table scripts instead of AOB scanned offsets: an old game which doesn't receive any patches anymore doesn't need AOB scanned offsets, as the code you're trying to replace with nops isn't going to be moved due to a patch, it'll be at the same hexadecimal offset for everyone each time the game runs.

    Hope this helps a bit, if you have more questions, just let me know ;)
  • edited October 28
    Thanks for all the help, OtisInf. I tried what you're suggesting to help me out, but it's too complicated for me and I'm simply not up to par with creating the actual script. I'm really sorry that I cannot be better than this. I think I need a hands-on step-by-step class to fix this :)

    @One3rd, I found the FOV, the Tilt, and the Far / Near Clip values. I have put them into this CE table where if you click on Advanced Options, you'll see the three different categories displayed and you can always just right click them while the game is running and see what address this code is accessing to find the new memory address.

    You can download the table with the FOV, Tilt, and Clip here:
    https://mega.nz/#!x9cEXRAB!xbd3H98QRo9pSYjncBTFqh6URXHQZSwa3uciHcn4NMU

    If possible, could you merge my findings with your current updated table? It works absolutely flawlessly by the way, across all missions. And I would really like to you repay you for all your help.
  • Lime said:

    FOV, the Tilt, and the Far / Near Clip values

    I'll have a look when I can and see if I can add those.

    No need to repay me, just get some neat screenshots!
Sign In or Register to comment.