Gamergotten / Infinite-runtime-tagviewer

61 stars 18 forks source link

Keeps showing this error about base tag address. #136

Open reno911unlocred opened 8 months ago

reno911unlocred commented 8 months ago

image

So, when infinite came out i used this flawlessly, but after many years I tried again and i can't because of this error, i did the same as every video i could find and as i did when this tool came out.

Start the game On the menu screen open IRTV Click on load

Tags and stuff should show up now, so.. i check the settings:

Click on "set game exe" click on either my updated infinite from steam or on my backup old crkd copy of the game the way it was many years ago before they removed the coil jump and speedrun stuff.

Click on load again, same thing.

Downloaded the .NET 5 SDK, reboot, same thing.

Deleted the settings on %appdata%

This is now, but i remember at one point i tried on a completly new install of windows, same thing. WTF is going on?

EDIT: Also forgot to mention, after clicking load when it failed it gives "Offset failed, scanning..." and then the other thing. image

Sopitive commented 8 months ago

Clear your settings. This is usually 90% of issues, the data the program needs to find the tags is probably outdated.

reno911unlocred commented 8 months ago

Clear your settings. This is usually 90% of issues, the data the program needs to find the tags is probably outdated.

Sorry, which settings? As i said i deleted the settings that are created on %appdata%, are you reffering to those? because, to make matters worse, i created a vm and installed just infinite (the cracked one so no settings or stuff from that which could be saved onto the could or something being from steam, and the latest IRTV version, all directx and .net stuff and the exact same thing. :(

Sopitive commented 8 months ago

Your issue may be related to the fact you are using a different version of the game which could be interfering with how the pointer works. However, it should scan for the address and find it if the pointer doesn't work. Its hard to say what the issue is exactly. Make sure you are in an actual game, it may not find the tags if you are not.

reno911unlocred commented 8 months ago

Your issue may be related to the fact you are using a different version of the game which could be interfering with how the pointer works. However, it should scan for the address and find it if the pointer doesn't work. Its hard to say what the issue is exactly. Make sure you are in an actual game, it may not find the tags if you are not.

Is there a way i can find this "pointer" by my self? because, i have tried with both versions, both with a new copy of infinite and irtv, and the one that throws my theories out the window is not even on the vm with all new files of everything works... i saw this "pointer" referenced somewhere else, here to be exact and they talk about the "offset" so, i guess i should find that "HaloInfinite.exe+0x495B060" last characters after the + sign somewhere somehow and that could fix it for me. Where can i find this or what does it do i have no idea, but that is what i reckon i need, and why this is not working for me "automatically" as it does for everyone else, that is what is bugging me so much now.

EDIT: Just aditional info, what is on mine by default is this "HaloInfinite.exe+0x5" and i think some times at least with the steam version when clicking Options > Process Selector the drop-down menu does not open or do anything. And i might add i am trying to do this soley for campaign no multiplayer at all if that matters.

Sopitive commented 8 months ago

Try setting the pointer to HaloInfinite.exe+0x4357FD8

reno911unlocred commented 8 months ago

Try setting the pointer to HaloInfinite.exe+0x4357FD8

I will, thank you, but, i would actually like a small dumbed-down explaination on what this is and why it may not be able to retrieve it by itself, this feels like a bandaid and if it works i will be so gratefull but i like to understand things too. :3 If it's not too much to ask for.

reno911unlocred commented 8 months ago

HaloInfinite.exe+0x4357FD8

Update, nope, no dice, with both the cracked and steam versions. When I click on upset pointer, I paste the given one, and if I select OK and close that and come back it still has it, but if I click "load" and if fails, if i come back to the "pointer" setting it is back again in "Haloinfinite.exe+0x5" in either case. And i have set the exe location to either the steam or cracked versions depending on which i am trying and selecting the infinite process manualy.

Sopitive commented 8 months ago

Ok so finally got around to this. The pointer for the current update is HaloInfinite.exe+0x481F6C8

For some reason, the scan to find the tags in memory is failing for you. I was able to easily find the tags list upon use of the current update and got that exact value for the pointer with it working pretty much flawlessly for me. That pointer should work until the game updates again at which point it should scan for and should be finding the value automatically. Its hard to say why it can't find it for you, but there may be some strange way that specific code is setup that makes it not work for you. Unless you can provide any further insight on your specific issue or the way you have the game setup and running I have no way of knowing why the backup scan fails to locate the tags. For all intents and purposes, that failsafe should find the tags list 100% of the time and has done so for pretty much everyone up until this point as far as I know.

Connor-jt commented 8 months ago

even though they vaguely state they've tried on the latest version of infinite, they also state that

for campaign no multiplayer

contradicting the first statement (probably unknowingly) so that address will probably not work for them

reno911unlocred commented 8 months ago

Ok, so, i think i have provided most of what i can think of to show why i am so confused by this, so, in general:

Other maybe usefull info is:

I really can't think of much else that could be the same between my main, a vm and a laptop other than the same account of steam is used and the same cracked game files too, altho the cracked is an installer so no info should be saved on the original cracked files than what is actually installed on my pc.

If there is anything else you would like me to share or do to crack this weird case please tell me, if you can, please tell me how i find the address you've been giving me after "Haloinfinite.exe+0x" to provide you with the one i have from the cracked and steam versions if that helps.

Thank you guys.

Sopitive commented 8 months ago

The vm to me sounds like it could very well be the culprit for the scan not working. If the memory can't be accessed properly it won't find the data it needs. There is a third party dependency used to scan for the info it needs if the game updated. Of all the things you mentioned, that is one thing that may restrict some things as virtualizing the OS in any respect can have unintended consequences for reading memory and can be unpredictable. If it still doesn't run without a vm just on basic hardware/ non-virtualized, the issue could lie elsewhere. The firewall/antivirus has nothing to do with it, file permissions also have nothing to do with it. IRTV doesn't touch your files in any respect. It only cares about the game memory and nothing else. Try loading the tags in other places as well such as in an actual campaign mission or in multiplayer. I am unable to replicate your issue on my end at the moment, as it still works just fine for me even in just the campaign menu.

reno911unlocred commented 8 months ago

Yeah I knew It probably was not something caused by the permissions or all that, but it is all i could think off that was different from most computers, and the vm thing, well, the issue is that it happens in or out the vm so.. i mentioned it because all the files and configs that could have something to do with the issue are just not there when using it in a vm, as far as the game and IRTV knows, it is a completley different pc, except for the hardware, which brings back my question, could a ram hardware issue, cause this problem?

I will be trying on my laptop today to see if anything changes, in the menu, in MP, campaign etc. By targets you mean the +0x stuff or just clocking on "load" on IRTV?

reno911unlocred commented 8 months ago

Update, I just tried with the laptop, with 3 different versions of the game, the steam (my main), the windows store version and the cracked version. The same result with each, even tried on each to load on the main screen, the menu and in gameplay.

The first one i tried was the cracked version as the saves and settings and all that is in a diferent place than for the windows store or steam version, so, it should be completley isolate of any weird corrupt files that could be passed on over a diferent copy of the game, then the other 2, the same thing.

My main PC has W10, this laptop w11, everything to the absolute most recent update, drivers, windows, bios, everything. Since i have the 3 versions, i tried on multiplayer (i just don't want to get banned but i guess my copy on the WStore will have to take the fall since it is with gamepass and i never use it...) but i used the "HaloInfinite.exe+0x481F6C8" provided above, and at least on the MStore it finally hooked the f-ing process! BUT; changing the game to campaign and pointing to the same thing it fails again, so, it is quite obvios that it is not being able to retrieve the "Haloinfinite.exe+0x..." thing on it's own for campaign, i guess everyone just plays MP and no one has noticed this issue before or what..

Have you been testing and saying you can't replicate my issue only on the MP menu? Can you try on campaign? And please, for the love of god, can you tell me or help me on your end get the pointer for the campaign? it would be much more useful to have the pointer to the cracked version of the campaign because i really like it more, loads faster, still has the fun stuff like coil jump and skipping some campaign missions with glitchs, so having the most updated pointer is quite useless to me since i don't ever play MP, please, PLEASE explain to me what would i have to do to get the pointer for whatever version, if it is a trade secret that keeps this mod alive, whatever, please help me get it for this version of the game: V6.10020.17952.0 Which is the one i have cracked. many thanks, at least i feel now that we are making progress.

Sopitive commented 8 months ago

Trying to rule out the release build being the issue. Try this version of IRTV https://github.com/Gamergotten/Infinite-runtime-tagviewer/actions/runs/6987574180/artifacts/1072585827

Mine works just fine in campaign menu and in campaign itself.

Also try HaloInfinite.exe+0x3ED5F08 for campaign if that doesn't work. I am still unable to reproduce the issue. For some reason the scan is failing for you. I honestly would not know why it doesn't work for you. Even running Halo Infinite as admin won't affect that. There must be some memory that it isn't accessing properly?

Connor-jt commented 8 months ago

the error code you're getting is directly related to the Array-Of-Byte scan for the string 'tag instances' in the games runtime memory

idk if cheat engine works for the older version of the game that you have (if not, i could append my busted version), but you could search that string and get the tags list address to verify that something entirely unexplainable isn't happening

from my understanding theres really two possibilities here,

  1. the developers of memory.dll failed to account for something really random or unique about your devices (not impossible, but unlikely)
  2. the address for the string in the games runtime memory actually falls outside of the bounds that were set for the AOB scan, although this covers about 3 terabytes of possible space(? trying to comprehend the likelyhood is hurting my head) assuming i read your dxdiag file correctly, it states that you have 32gb of ram, which is probably more than many of us have tested with, which maybe provides credence to this theory?

if you're willing to install visual studio (with dot c#/net-development or whatever it is) then you should beable to just test whether increasing the bounds would work (best test might be replacing the first value with 0x0 and the second with 0x00007FFFFFFEFFFF, similar to how the other scans work, although this could have adverse effects that were avoided by having the stricter range) you could alternatively toss in some breakpoints and run IRTV for multiplayer mode and check what kinda memory address you get from using the HaloInfinite.exe+??? pointers

or, as mentioned before you could also run a tool used for memory scanning to find the memory address of the tag instances string just to check whether that address does fall within the AOB scan bounds

reno911unlocred commented 8 months ago

OK... so, bit by bit...

@Sopitive

Now, at this point i could just say thank you and play. BUT. Next update i would have the same issue again and i don't know how to even go about obtaining the pointer my self to "fix" or patch this every time, and I would LOVE to know why am I having this issue, what make my PC and Laptop so f-ing special that both have the same issue.

@Connor-jt

the developers of memory.dll failed to account for something really random or unique about your devices (not impossible, but unlikely)

Well, unlikeley but possible, but for two completley different computers? The ONLY things similar from both computers harwarewise is the 32GB, I could try with 16 or even 8 on the desktop and 16 on the laptop, would that help?
Nevermind, the laptop has 16GB of DDR5, i was looking at another model lol, so i could try with one stick of 8gb but at this point not even that is similar to the desktop... NOTHING is even remotley comparable between these 2 systems except my steam account :l

trying to comprehend the likelyhood is hurting my head)

Yeah that has been my whole point this time. HOW can this be a problem just for me but between 2 diferent machines? IMO there is no way it is just chance and it has to have a very stupid but logical explaination we are just not seeing, I just don't want to believe that having 32 gb which MANY people have is the issue. Maybe you don't but MANY people do and would have had this issue waaay back. Again, I can try with less ram. I don't think it matters but i have mixed brands and speeds on my desktop, one kit is 3200 the other 3000, so i have both running at 3000 with the timings of the slower one. But the laptop has same brand same speeds same timings... And just as aditional info, here is the DxDiag.txt of my laptop.

if you're willing to install visual studio

Of course I am willing to, I would install a virus if that would help me understand this... I will do that overnight. The only problem is, I have a VERY basic understanding of what you just said after all that so.. all i know (partly thanks to gpt) is that cheatengine can do what you sad about the memory scans, it mentioned another one but since I only knew CE i went with that, I have NO idea how to even begin doing what you just told me, but even without fully understanding, sounds logical and could shed a big light or even fix this, but, i can't just do it because i don't know what I would be doing and since we are trying to solve a problem, me doing this would cause more than it would solve. Can you be more specific, or point to a tutorial on what I need to do, I know this is too much to ask for, like, it seems NO ONE but me has this issue and you have devoted so much of your time helping me but I feel we are on the final stretch of solving this and i am just a big blockade before the finish line.. and if even ONE more person has this issue and this helps him solve it too, i think this would have been worth it. I hate being the dude with ONE specific problem and no answers anywhere to help me :( Thankfully both of you have been here but since you can't replicate my issue, I have to be involved in the solution and don't know much about code in general or the deeps of software, I am more on the wardware side on my day-to-day stuff :( Sorry and THANKS A LOT!

Edit: After clicking on "the bounds" link, i think I get a much better idea of what you want, lets see if i got it:

You need me to download visual studio, then copy the code of the program from there, change the first value (these?) Captura de pantalla 2024-01-13 002034 With 0x0 and 0x00007FFFFFFEFFFF respectively, then I guess re compile the code and run it? (hence the visual studio stuff?)

I gathered that much, the break points, the adverse effects and the other stuff after that I did not get completely.

Sopitive commented 8 months ago

The RAM isn't the issue. I have 48GB of RAM and I assure you I still found everything. I created a pull request to log some stuff with other improvements to the UI. It should log any exceptions and other useful info. Hopefully that tells us where it fails. More people likely have e this issue, just haven't opened an issue about it.

reno911unlocred commented 8 months ago

Yeah, i guess it doesn't matter really but at this point I am grasping at straws..

about the pull request, I don't understand much about it either, but I guess it means wanting to modify something to add changes to the base code, this means asking the developer for it? or you wanting to do it yourself and asking for permission or something to upload the code with the changes on the main post?

Connor-jt commented 8 months ago

some general notes:

the ram itself definitely wouldn't be the issue, or else your computer probably wouldn't even run haha

when i wrote that comment, as far as i could tell that line of code i linked was the source of failure which is not really possible to debug by adding more code into IRTV (it either gives you results or it doesn't, like what is happening here), effectively voiding the main intention of that pull request

for cheat engine, im pretty sure you cant use cheat engine while infinite is running, or else the game will intentionally crash, and i think uploading modified versions that circumvent 343's detection in a public discussion may not be the best idea (for those interested however, its pretty much just removing all Print_Output_A or whatever the function is called from the cheat engine source code & then compile) earlier versions of the game might have just been renaming the cheat engine exe file to something else but i really cant remember anymore

so that realistically takes that option off the list

for how to find the address that IRTV uses, we actually have this ancient & probably still accurate note here, although without a functioning cheat engine this would be pretty hard to follow along with

while i was writing this, i did happen to come up with a new possible fault, but its a significantly more far stretched then the two prior is there any chance you set your computers to a language other than english? thats the only thing i could possibly think of that would persist between 3 basically random windows installations

im not entirely sure how C# works, as i've never had the need to investigate the binary data, but it would make sense (but not much at all) if C# had to promote the string to some other format (more bytes per character?) to support a different language, and then maybe memory.dll fails to locate the string as its looking for entirely different data? im not very certain on this one at all but its pretty much the last thing i could think of, if its not either of the two i suggested before

as for setting up the project in visual studio for debugging:

when you open visual studio, it should give you a page like this, just hit clone image

and then it'll just ask you for details of the project you're about to clone for 'Repository Location', you just paste in this github: https://github.com/Gamergotten/Infinite-runtime-tagviewer and then for 'path' you can just put that whereever once you hit clone, visual studio should set everything else up for you

once your visual studio workspace is setup, you should have this panel on the right side(?) image just click where the X's are illustrated and then double click to open the underlined "MainWindow.xaml.cs" file

once in that file, navigate to line 1125 (ctrl+g and enter '1125') from there you can alter any code you see fit to debug

You need me to download visual studio, then ... change the first value (these?) With 0x0 and 0x00007FFFFFFEFFFF respectively, then I guess re compile the code and run it?

yeah thats pretty much spot on, change those two values and then run the program and see if you get any different results this time

to compile and run the program, you just click the green arrow at the top middle of the visual studio window (i just tested and it'll prompt you to restart in admin before you can do that, to beable to run memory.dll)

as for breakpoints, these aren't completely necessary but if you do manage to fix the problem (maybe from changing the scan range bounds values) you can use them to pause the program to inspect values during operation of the program, you can enable breakpoints by clicking to the very left of the line of code you want to debug and then once the program reaches that line of code and pauses, you can hover your mouse over variables to see what their current value is (you can search it up for more info)

you could put one on line 1143, which would allow you to hover over the text 'aobScan' to show the address of the "tag instances" string, but that breakpoint would only ever happen if you do find any results

if your windows defender happens to warn you about memory.dll, then you might beable to unquarantine the file, or you could try removing and re-adding the memory.dll NuGet package (if you have trouble there you should beable to find steps to do that online, just search 'removing nuget packages visual studio' or something along those lines)

reno911unlocred commented 8 months ago

Ok so, I tried doing the cheatengine thing at least on the cracked old version and i can use it for a while but after some time it does crash, but, following the note i manage to get this, but, either i am doing something wrong when scanning for the wrong thing in the wrong place, it just shows this: Captura de pantalla 2024-01-16 125730 Captura de pantalla 2024-01-16 125855 Captura de pantalla 2024-01-16 125936 Some times it returns different things when scanning for "tag instances" in the second result, first one is always the same, but only one of those when scanning for it as 4 byte hex returns something but nothinge even close to the expected haloinfinite.exe+0x

So.. idk if it is because cheatengine no longer works and i would certainly try to modify the code later to see if i can get it with this method.

I was getting excited when I read the stuff about the language because indeed english is not my main language, but, then I remembered and checked and my main pc is in english and the laptop came in spanish by default, and as far as i remember, i installed windows fresh on my pc in english, not in spanish and changed later to english or anything, so yeah, I hoped that would lead us somewhere but sadly no. I could try to install windows fresh in english on a random ssd and see. will do later just in case, as i said, i am willing to get down on my knees at a gasstation toilet if that would solve this so.. this is.. quite easier to try xD

As for visual studio.... I did all that and, well, we are getting different behaviour now... not sure if that is good but, change is good right(?) Now, it takes a lot longer in the "offset failed, scanning" process and it returns with a magnificent "cant find haloinfinite.exe" Captura de pantalla 2024-01-16 132557

Even after pointing the program to the exe and selecting the process in the process selector. Is my WHOLE F-ING problem that for some reason for me, the tool is not finding the game and thus it is searching for tags in wherever the f it feels like but not on the game's exe? Please tell me that is not it, because.. well.. just tell me that is not the reason and i'll be happy.

I have all my antivirus stuff disabled, windowswise, and no aftermarket antivirus is installed (triple-please don't hack me :)

Connor-jt commented 8 months ago

from the cheat engine screenshots, the address you were looking for does fall outside the scan bounds

   4D0B0000 <- your tag_instance
10000000000 <- min address
3ffffffffff <- max address

in screenshot 1, it looks like you're doing it correct the last result (the green one) is the one you're looking for, if you double click it, it should transform into the haloinfinite.??? address in the bottom window i think

in screenshot 2, theres sometimes 2 different results, the one thats more likely to be correct is always the one that ends with "0000"

im not sure whats going on in screenshot 3, that shows that the tag_instances pointer has changed? thats strange

"cant find haloinfinite.exe" implies that something in the code breaks and throws an exception you could either modify line 1181 to catch (Exception ex) and add a breakpoint to the line below and hover over "ex" when the program hits the breakpoint and pauses to check what the exception is or you could test sopitive's version where he logs the error to a file to test their version, just repeat the process where you opened IRTV with visual studio but with this link instead https://github.com/Sopitive/Infinite-runtime-tagviewer/tree/master

im really not sure what the error could be though, nor does the programmed error message itself help, as it doesn't fail to find halo infinite, or else it wouldn't be running a scan like none of that code should even raise an exception, the only code that could even fail there would be the second AOB scan (line 1155), or maybe the settings saving? but surely that wouldn't fail

i dont have the capabilities to test any changes on my end at the moment, so i shouldn't just push any fixes to github, but if you double check that decreasing the min address (originally 0x0000010000000000) to 0 or some other smaller value doesn't break anything else & you fix whatever issue it is that you're currently having, then i could probably just push the change

reno911unlocred commented 8 months ago

Welp, i did it all again ignoring the one that does not end in zeroes and here is the result, yep, one green thingy but, double clicking does not bring up anything related to the exe or in +0x0... form, just... the same? Captura de pantalla 2024-01-16 204451

So i did what you told me with the sopitive's version but it can't find it(?) image

image With the code like this (i hope i did it right) it fails to find the tags again and i saw nothing hovering over "ex" but ic says that the "ex" variable is declared but never used, i don't think i modiefied the line 1181 correctly, but anyway, i placed the breakpoint on line 1182 and tried again with the changes in the range for the scan only to 0 the first value and it apparently hit the breakpoint, but idk if i did the ex correctly, here is what is shows now image and the ram spiked to 2.4GB from 300mb when clicking load, changing the on the second value to 0x00007FFFFFFEFFFF and the same result, after letting the program continue, "cant find haloinfinite.exe" shows up again.

And what do you mean by "maybe the settings saving"? meaning my changes on visual studio or the settings in the program where i point the program to the exe or click on the process to say "work on this"? because whenever i open the "set pointer..." option, it is a coin toss whether i will get "undefined" or "Haloinfinite.exe+0x0" or "Haloinfinite.exe+0x something "

Connor-jt commented 8 months ago

just as an example of what the addresses should look like in cheat engine: image its weird that it doesn't show up as the halo infinite relative address, maybe if you double click the address section in the bottom window as underlined, maybe then it will bring up the relative address if not, then you'll have to do some experimenting on your own to get the relative address (if you find the base Haloinfinite.exe address, you can simply subtract that from the address that you get to get your relative address, however i am not going to go further into detail at the moment)

"sequence contains no elements" is supposedly a linq error, from what i can find from a brief online search, and the only linq related thing we have in that function is the line 1149 IEnumerable<string> aobStr = SplitThis("0" + aobHex, 2); which i believe would only fail given the circumstance that the variable aobScan is a value less than 10 (most likely 0, as thats its default value) which means that somehow the AOB scan is returning a non-null array but contains no elements

did you also change the first value of the long[]? aobScanResults = (await M.AoBScan(0x0000010000000000, 0x000003ffffffffff, AOBScanTagStr, true)).ToArray(); // "tag instances" ("0x0000010000000000") to 0? as the problem was that your tag instances address was below the minimum, so changing the maximum (the second value) really wouldn't matter here

otherwise whatever is causing that discrepancy is way beyond my deduction abilities theres no real reason why it would give you a non-null array with no elements somethings, and then give you a completely null one other times?

this link might work better for sopitives branch https://github.com/Sopitive/Infinite-runtime-tagviewer maybe it doesn't like the extra junk that gets appended on it however you shouldn't need to do that because you've now pretty much identified the error

what do you mean by "maybe the settings saving"

i meant as in IRTV's user settings, which seems not to be the cause according to that exception that you provided

says that the "ex" variable is declared but never used

its just a optimization note to let you know that your code doesn't use it, but the intention was purely so you could read it yourself

ram spiked to 2.4GB from 300mb

i think thats how the memory scanning works, it caches a buncha junk so it can do it relatively quickly, although im not entirely sure on that if the ram usage persists, then thats interesting & probably unintended

reno911unlocred commented 8 months ago

Ok, i did what you showed in the screenshot and voilá, it managed to find the base address? altho I don't know what that means, to me it means we are getting somewhere. image

So, if you could go into more detail about "converting that to the relative" i guess by that you mean subtract something in binary or hex or something with something else, presumably the value in green? I really have no idea what you are talking about here, but, it seems again, that we are getting somewhere.

did you also change the first value of the long[]? aobScanResults = (await M.AoBScan(0x0000010000000000, 0x000003ffffffffff, AOBScanTagStr, true)).ToArray(); // "tag instances" ("0x0000010000000000") to 0?

Yes, i did 3 tests, one obviously no changes, one with only the fisrts value "0x0000010000000000" set to zero and then one with both that and the "0x000003ffffffffff" modified, same result each time, as there is no value lower than zero, how can it fall outside that but in that direction, below the minimum? o.O

otherwise whatever is causing that discrepancy is way beyond my deduction abilities theres no real reason why it would give you a non-null array with no elements somethings, and then give you a completely null one other times?

What do you mean, "somethings and completley null other times"? are we talking about IRTV here or Visual studio?

And yes, that link worked no problem to build the debug version, altho, where does it dump the log so i can share it?

however you shouldn't need to do that because you've now pretty much identified the error

Yup, i am really stupid... I HAVE? WHERE?

i meant as in IRTV's user settings, which seems not to be the cause according to that exception that you provided

So just to be clear, irtv not "remembering" the pointer is normal behaviour? I don't want to leave a potential solution on the table due to a missunderstanding on my part. I don't change anything on IRTV other than telling it where the exe is, selecting the process and/or setting the pointer, but it seems that after a scan or restarting the program or just randomly, the pointer changes itself to whatever of those options I mentioned. Is that normal?

And no, the ram just spikes for the scan, comes back down right after.

Connor-jt commented 8 months ago

and voilá, it managed to find the base address?

im pretty sure that means you found the address that you're looking for, you should beable to just put that into the IRTV base address thing, and it should work perfectly fine

So, if you could go into more detail about "converting that to the relative"

its kinda a hard thing to explain when i cant think of the words to use (im writing this just before going to sleep haha) relative addresses (like HaloInfinite.exe+0x0) are addresses relative to a module, the module being like the executable file loaded into ram so anything haloinfinite+0 is basically an offset from the source file, except not quite because the data gets shuffled around a bit when being loaded into your ram, and also because infinite like encrypts the exe file too

cheat engine uses these relative addresses to effectively calculate where your address should be, between multiple restarts of the game or whatever, as the data we're looking for will always be a constant offset from the start of the halo infinite exe in ram

i cant quite remember off the top of my head how to calculate the relative addresses, but if you try to add a new address in cheat engine, you could put in HaloInfinite.exe+0x0 (you might need to play around with the capitalization to get it correct, refer to the capitalization of working base addresses that you would put into IRTV's base address thing) and then you could i think right click that entry, which should be in the bottom panel and then 'goto' or something like that which brings you to the memory view of that address, where you can literally see the regular non haloinfinite.exe version of that address, although if you already have the regular address in the bottom panel in cheat engine then thats good enough (it should look like 7F and then whatever other numbers) to turn a regular address, like you had in the first picture of the message that goes "Welp, i did it all again ignoring the one that..." into the relative base address thing that IRTV uses, you simply subtract the regular address that you got from the HaloInfinite.exe+0x0 thing, and bam thats the relative offset you can do hexadecimal calculations with the built in windows calculator if need be (click the 3 bars and go into programmer mode) for example if the base address thing that you got was like 0x7fff1234, and then HaloInfinite.exe+0x0 turns into 0x7fff1000, then you subtract them (0x7fff1234 - 0x7fff1000) and are left with 0x234 so your final relative address thing is HaloInfinite.exe+0x234

where does it dump the log so i can share it?

i believe to the same folder as the IRTV exe file is? look for a "log.txt" file in the irtv folder, if not then maybe to shoots out to the irtv settings folder which is in appdata somewhere

Yup, i am really stupid... I HAVE? WHERE?

implicitly, the error was that it finds addresses, but also doesn't find any at the same time, i think, i have absolutely no clue on how that happens though so it throws an error because it tried to convert the address into a string or something, but the code wasn't written to handle a single digit number i believe

irtv not "remembering" the pointer is normal behaviour?

well you wouldn't think so, but i have no clue haha, i think all the file saving stuff was added after i lost interest in this project

i originally meant that it maybe ever so slightly could've been the issue, but file saving would never give the type of error you got from those screenshots so no IRTV saving user preferences would not be related to the issue at hand

What do you mean, "somethings and completley null other times"? are we talking about IRTV here or Visual studio?

technically IRTV, im assuming from the screenshots that you've provided, when it gives you the "cant find halo infinite exe" error, it essentially creates a list of valid addresses that it found, like cheat engine does when you search for the tag instances string, but instead of actually giving you any of those results, it doesn't give you any but still gives you the now empty list anyway, opposed to disposing the list and just telling us that its got nothing for us

wheres IRTV assumes if it was given a list, then it was given some valid addresses to work with its strange because the code & earlier errors you provided implies that memory.dll will simply not return a list at all if it fails to find any addresses but somehow you're very likely being given an empty list, which shouldn't happen, so maybe the error isn't what i think it is

but at this point i just dont have anymore even remotely valid explanations for the issue, you'll probably have to have a play around with all of it and see if you can shed some more light on whats going wrong there

reno911unlocred commented 8 months ago

im pretty sure that means you found the address that you're looking for, you should beable to just put that into the IRTV base address thing, and it should work perfectly fine

But if input this it wont work as irtv needs the +0x0 format and this is not it. As you said, I need to do SOMETHING with it to turn it into that... The value I got was just Haloinfinite.exe+3E952A0

I kind of got your explanation tho... lets see if i did,. The relative address is like an encryption key, in my case, +3E952A0, and this is "key" to find the real address, the +0x0 thing, it uses the +0 to calculate it, so, if i ever get the +0x0 that one won't change, so if i manage to get it for my cracked version of the game, I am set since it wont update or change itself, and if it does or i need to get it for the steam or MSStore i need to calculate this again, is that correct? Past that point I did not understand much because I think you are refering to my result "Haloinfinite.exe+3E952A0" as if it was the full 0x0 which i don't have yet, like in this example

for example if the base address thing that you got was like 0x7fff1234, and then HaloInfinite.exe+0x0 turns into 0x7fff1000, then you subtract them (0x7fff1234 - 0x7fff1000) and are left with 0x234 so your final relative address thing is HaloInfinite.exe+0x234

It assumes i have a 0xSOMETHING but i don't, all i have managed to get are these things: 4D0B000 when searching for "tag instances" as a string, from that, looking that up in hex 4 byte got me 7FF7D87152A0 one time and 7FF7F0B952A0 the second time, from that second one when double clicking it on the panel below i got the Haloinfinite.exe+3E952A0 which i imagine will change next time i do it, but, if i do all these steps in one go and then use something from those results to get my "Haloinfinite.exe+0x0XXXXXXX" like the "HaloInfinite.exe+0x3ED5F08" sopitive provided some days back, it still works in the steam version, so I guess to solve MY problem all i need is to get that for the cracked version and regardless of how many times I open the game or reboot or even install on another PC, it should work? But only if I get the full +0x0 value

i believe to the same folder as the IRTV exe file is? look for a "log.txt" file in the irtv folder, if not then maybe to shoots out to the irtv settings folder which is in appdata somewhere

Yeah i looked for it on the folder it makes when cloning the repo, but it is not there and only user.config on the appdata folders

The thing here is, WHY me, why ALL my computers, there is something we are missing that is shared between them that is breaking this only for me. That is what makes this very annoying to solve and deal with since you can't replicate it, but i do appreciate a lot the effort and walking me through stuff so i/we can figure this out cause in the end it seems only me will benefit from it since no one else seems to have this problem :(

Sopitive commented 8 months ago

Ping me on the Halo Mods discord, it would be easier to try to debug this in a discord chat or vc and if a solution is found we can post it here and close the issue. It's better than trying to resolve it over multiple posts here. Same name on discord. I am interested to know what could cause the scan to fail.

reno911unlocred commented 8 months ago

The halo mods discord, is there a psrticular one? like, linked in the github of IRTV or something? i reckon there are many halo mods discords out there, but sure, with an invite or something i can, name there is spartanrinzler

Connor-jt commented 7 months ago

The value I got was just Haloinfinite.exe+3E952A0

0x is merely to denote that number is hexadecimal (containing letters a,b,c,d,e,f, with a numeric base of 16) just put the 0x in there Haloinfinite.exe+0x3E952A0

I kind of got your explanation tho...

that explanation was for if cheat engine DOESN'T give you the relative address already, which you already have, so its not too relevant

Yeah i looked for it on the folder it makes when cloning the repo

cloned repo folder -> bin -> debug (or release, whichever one is present) -> net5.0-windows -> and then the log file should be in there if theres no debug or release folder under the bin folder, then you need to run the program first and to get the log file you need to hit the error from running the program

The halo mods discord, is there a psrticular one

"Halo Mods", i believe you can use this link http://discord.halomods.com/

reno911unlocred commented 7 months ago

Well, that pointer did not work :( with or without the 0x

log.txt

Well, that log file is really empty and sad :( i don't know if any of that is usefull.

And teah, I thought that was the correct discord but it does not show more options further than halo 4, no infinite, but whatever, i sent a message (was not delivered and sent a friend request by spartanrinzler to you @Sopitive , do you want to continue there too @Connor-jt ?

Connor-jt commented 7 months ago

well that answers that question of why the game would always default to 0x5, because thats the first relative address of the value 0 i think, so when it fails to find the tag instances address, it defaults to 0, so it then scans for i assume the first address that points to 0 (8 consecutive 00 bytes), which i guess happens to be haloinfinite.exe+0x5

however that doesn't bring us any closer to understanding your issue here

it does not show more options further than halo 4, no infinite

yeah the halo mods people really do not like halo 5 & infinite, and anyone who did has since moved on from halo modding

do you want to continue there too

no can do, im sure sopitive and you will beable to figure it out

reno911unlocred commented 7 months ago

@Sopitive you there man? I DM'd you on discord but no answer altho you accepted the friend invite, name there is spartanrinzler

Connor-jt commented 7 months ago

did you guys end up resolving this issue?

reno911unlocred commented 7 months ago

@Connor-jt not yet, sopitive has not had the time to keep at it, we are close but I feel like I am the bottleneck in this process since they can't replicate my issue I have to do the testing and I don't know much. I feel like we have made progress and MAYBE a discord call could end this faster but you know, time.