Skip to content

Instantly share code, notes, and snippets.

@Joshimuz
Last active March 1, 2022 09:43
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Joshimuz/86122078b21416f4195a85013e7b38e2 to your computer and use it in GitHub Desktop.
Save Joshimuz/86122078b21416f4195a85013e7b38e2 to your computer and use it in GitHub Desktop.

I WROTE THIS REAL FAST LATE AT NIGHT SO IT'S PROBABLY QUITE WRONG OK?

tl;dr New glitch skips code at start of Chapter 2 and 3 which causes Louise in Chapter 2 and Lance in Chapter 3 to be skipped (as well as a few other missions) and almost all other missions becoming available at the start. This saves like an hour I guess.

Contents:

1.0. What is the "Partial Act Change Bypass" glitch

2.0. How do you perform the glitch

3.0. What are the benefits of the glitch

4.0. How was it found

1.0. What is the "Partial Act Change Bypass" glitch

In Vice City Stories the game's story is broken up into 3 "Acts" or "Chapters" (previously on my stream I talked about 4 acts/chapters, however in the code there were only ever 3 but the 3rd one is really long so I split it into two different ones for the benefit of the viewers/splits).

During an Act the game keeps track of how many missions you've done for each mission "strand" or "chain" (A strand can be thought of as one person's missions, so all of Louise's missions are in one strand, as are all of Lance's etc etc Not quite that simple but you get the point) as well as what mission you've unlocked and if you've completed all of the missions in that strand. The game uses these variables in different ways to track progress.

Normally the end of each Act checks if all the strands in it are completed before allowing progression to the next act. When it detects than an Act has finished, it attempts to reset all the aforementioned variables and then set new ones that start the next Act (as well as a bunch of other stuff probably).

The glitch is bypassing this attempt to reset the mission's variables correctly by not allowing this code to run at the end of an Act, and instead causing the game to keep progression of the strands as they were but still allowing us to progress to the next act. Hence "Partial Act Change Bypass".

2.0. How do you perform the glitch

At the end of an Act, when the final mission completes the game will wait 500ms before running the Act Change code. However it will wait if the On Mission variable is 1/true (basically if the game thinks we're currently doing a mission, or have a pager or a bunch of other stuff, explaining the On Mission variable is too much for this pastebin so I hope you already know about it), or if we are in a save menu, and will not resume if we load a save before it can run.

Therefore the goal is to do the final mission of an act and then within 500ms get om1 (On Mission 1) so the code fails to run. Then maintain om1 until we reach a save marker, then go om0 and save within 500ms. Then load the save and the glitch is complete.

THIS NEXT SECTION WILL PROBABLY GET REALLY OUT OF DATE REALLY FAST BUT IT'S HOW WE FIRST FOUND OUT TO DO IT OK?

To two times I will do the glitch in the run are as follows:

After Truck Stop dupe (The end of Act 1), by desyncing the pass times of both copies of the mission, allowing time for a Pager to come in while the 2nd copy is finishing, then quickly getting to a save point before the pager ends and hitting the save marker within 500ms of the pager ending.

After Havana Good Time (The end of Act 2, yes that's right it's an Umberto mission), by storing a quad bike purchase padlock (Padlock Storage, a whole other glitch/story...) to regain control in the final cutscene, and an om0 rampage to be om0 after the mission ends. Using the control in the final cutscene I can deathwarp to the hospital as the mission ends and start paramedic before a pager can come in. Then go to a save marker and save within 500ms of cancelling paramedic. (This also means that we can't skip ALL Umberto missions anymore, so we only skip the 3 before Havana Good Time instead). Unfortunately due to the use of Padlock Storage I must hold either X, O or Triangle for the entire duration of the setup (including the mission). Basically it means I have to hold O (and constantly attack/punch) for the whole mission (which is the attack/shoot button).

3.0. What are the benefits of the glitch

In order of amount of time saved, bypassing the Act change code:

Automatically unlocks every* mission strand in the Act. So rather than only having one mission available which we have to do to unlock some more missions, we instead have the first mission of every* strand from the very start. This means that we're free to do whatever mission order we see fit.

Removes the requirement of having 7(?) business in order to reach the end of the game due to the two missions requiring them being skipped (explained lower down). This means we no longer need to take over and buy any business in the run.

Skips missions that have requirements in other strands. For example the mission "Domo Arigato Domestoboto" is a Diaz mission (D on the map) but only becomes available after doing the Gonzales (G on the map) mission "Farewell To Arms". By doing the glitch, we skip "Domo Arigato Domestoboto" and go straight to "Over The Top". Funnily enough "Farewell To Arms" is ALSO skipped because it's a Gonzales mission that only unlocks after completing the Diaz mission "The Exchange". In total 4 missions are skipped: "Burning Bridges", "The Colonel's Coke", "Farewell To Arms" and "Domo Arigato Domestoboto". Because "The Colonel's Coke" is skipped, we can no longer dupe it to skip "Kill Phil: Part 1" so we have to do that mission now, however this is still a net time save.

Skips every Chapter 2 Louise mission, and every Chapter 3 Lance mission(!!!). This is because these two mission strands are in both their respective Acts. Louise has missions in Act 1 and 2, and Lance has missions in Act 2 and 3. Because the code to reset the "Has completed Strand" variable never runs, as soon as the Act begins we have already completed every mission in that strand. This is obviously an extremely substantial skip, and on a personal level I fucking hated every single Chapter 3 Lance mission. In total 11 missions are skipped, the 2 Louise Missions:"Hose the Hoes", "Robbing the Cradle" and the 9(!!!) Lance Missions: "Brawn Of The Dead", "Blitzkrieg", "Turn On, Tune In, Bug Out", "White Lies", "Where It Hurts Most", "Blitzkrieg Strikes Again", "Lost And Found", "Light My Pyre" and "Taking The Fall". Because "Hose the Hoes" is skipped we can no longer do it 4 times to skip every Umberto mission, so we use "Caught as an Act" instead. Also we can't dupe "Hose the Hoes" to skip "Robbing the Cradle"... but that's fine because it's skipped anyway! Because "Turn On, Tune In, Bug Out" is skipped we can no longer dupe to skip "Taking The Fall"... but that's fine because it's skipped anyway! Because "Blitzkrieg" and "Blitzkrieg Strikes Again" is skipped, we no longer have to take over any business.

*Diaz missions are unlocked as normal for... some reason.

4.0. How was it found?

I'm too tired to keep typing now so watch this video: https://www.twitch.tv/videos/839546573?t=00h43m19s and these two videos: https://www.twitch.tv/videos/839927016 https://www.twitch.tv/videos/840350765 and read this Discord discussion https://discord.com/channels/139535251235012609/271678478829617152/788857508260610088 (I have no idea if that link works, it's from the GTA speedrunning discord). But basically, it was found accidentally by Cazpersky during a run at Truck Stop and then we tested it and figured it out.

@rybak
Copy link

rybak commented Dec 18, 2020

And since we don't have to take over the business, we don't need to take over Shark businesses, which means that we never get Shark attacked, which also helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment