-
-
Notifications
You must be signed in to change notification settings - Fork 37
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
Feature Request: Start loading song instead of the intro jingle if main menu is to be skipped #32
Comments
I got this so far and it works, but the loading tune is forcibly stopped when the menu is supposed to show up anyway. I assume it's because of a call to stop the audio somewhere, but I can't figure out exactly where.
|
I managed to get it to work. Frontend noises will cancel the loading tune, so I made it so that the hidden menu doesn't make a noise after the GTA IV logo. The following code does the job, testers welcome.
The end result: youtube video |
@NTxC I noticed that the signatures for this patch are for Complete Edition, at least the last 2 ones. I was trying to implement it into the pre-ivce branch which supports v1.0.8.0 and below. I found the signatures for v1.0.8.0 but it keeps throwing the assertion failed error when booting up the game. I was able to trace it back to the
This is the updated code with the two v1.0.8.0 signatures below, the last signature might be overkill, not really sure about that. STARTING and LOADING_TUNE strings signatures have not been changed since 1.0.8.0. |
@sierratangocharlie26 The assertion errors may show up if the patterns haven't been found in the memory. Haven't had more time to look into it yet, but this one was sticking out. The last pattern in your version of the code:
seems to be hardcoding the target CALL address (the four bytes after E8). Remember that the executable is relocatable in the memory, so you have to assume that the target CALL address might be different every time, so you must use the question marks instead, like this:
Edit: nevermind, looks like that CALL is relative. Still wouldn't risk it with the hardcoded one, though, as the relative offset may be different for different versions of gtaiv.exe. I wrote my code using v1.2.0.43. |
@NTxC I just realised that this
won't work for v1.0.8.0 since it will be the start a completely different function, the desired function is at another location. I have to mention that I'm relatively new to this topic, I only did little patches in other games and I'm also not really familiar with the methods such as |
@NTxC I found the correct signatures for the two bottom patches for v1.0.8.0 and it works, yet, for some unknown reasons it simply can't find the signature of the STARTING_TUNE string. I tried to check the size of the pattern and it seems it's empty so I assume it just can't find it at all on v1.0.8.0. I still managed to make it work although it requires editing the sounds.dat15 file in the audio configs replacing the LOADING_TUNE there, pretty much the same procedure like in your implementation if you ask me, but not as elegant. Anyway here's the code with the 1.0.8.0 signatures in case you (or someone else) are interested:
I really have no clue at this point why it couldn't find the signature of that string, maybe one day someone will find the solution for this. |
This is purely for nostalgia sake - would this be hard to implement?
On consoles, when you popped the disc in and launched the game, the game would play the loading screen song immediately during the R* intro sequence.
On PC, this was changed so that there is a little short version of that song, a jingle that plays before the main menu is shown (absent on consoles).
Seeing how the Fusion Fix implements an option to skip the main menu and go straight to the game, it would be amazing if there was also an option that makes the game play the loading song straight away INSTEAD of the little PC exclusive jingle.
It is minor, but it would add to the experience if you were a seasoned console player and you'd like the startup sequence to be similar to how it was on the consoles.
The text was updated successfully, but these errors were encountered: