|
![]() (edited: ) |
Because I have done plenty of research for this game for TASing, I am happy to answer any questions you have about game mechanics. If I don't know the answer, I will research it. The questions here may help in any future tutorials or guides, and possibly even to future strategies. Research Todo List: |
|
AltoPandaAltoPanda, GallinoreanSaberGallinoreanSaber and 2 others |
|
![]() (edited: ) |
I looked through the password guide and saw that I had a few things to add. Here is the list of things I made: Error: In Digit 2, swap the bit positions of Tank and Bulltank. Bulltank should be bit 5, Tank should be bit 4. Resolving the XXXXXXXXXXXXX: Digit 6 bit 1 is the fake Dr. Pettrovich on floor 2 of building 2. I call this prisoner Prttrovich because of the typo in the dialogue. This prisoner counts for the total of ranking up. Digit 10 bit 5 is a non-prisoner flag. It gets cleared when rations are obtained, so it could be a dummied out Rations+16 that can be set in password but gets cleared because it is not used, although it is saved in the password if it is set at the time. I will do some research on this in the future. Digit 21 bit 4 is the poisoned status. However, the flag gets cleared immediately after entering the password. The poisoned status is saved in the password when dying while poisoned. Digit 21 bit 3 is an unknown prisoner that counts for the total of ranking up. I have no idea where the prisoner is or if it is possible to rescue normally, but I will do some research on this in the future. Addition: Prisoner count for ranking: Rank locations should be added to the list of starting points To answer "Are there any passwords that the game rejects that I have not listed in Section 6?": But a more useful password is this, which has everything except the final 2 bosses and the transmitter: Edit: I finally figured out the memory address for the Supercomputer's HP and added that to the lua script, which was uploaded to the guides. It uses one a few scratchpad addresses for the current room instead of the normal boss HP variable. Another address is used, which is the flag for rescuing Dr. Pettrovich, to determine whether Supercomputer can be damaged. The lua script will show 'INF' if Supercomputer cannot be defeated. This means that if any prisoners are shot, which resets all the prisoners, then Supercomputer cannot be defeated. Also because Supercomputer's HP goes down by 1 for 8 consecutive frames instead of all at once, do not explosion cancel otherwise the explosive will not do full damage. Also, do not menu after the supercomputer is defeated until after the countdown message, otherwise the supercomputer will not actually be defeated as shown in this really old video of mine: Also, I found the memory address for the maze zone, 0x07C9. It is 0 when first entering or if after going the wrong way, 1 after the first left, 2 after the second left, and 128 after the following up. I added to the lua script the next direction to go in the maze to avoid getting lost. |
|
AltoPandaAltoPanda, |
|
![]() (edited: ) |
The Japanese version's any% is 3683 frames faster (61.28 sec). The text is 4555 frames faster, but 874 frames slower in 46 menus, and 2 frames faster in the intro. The Japanese version's deathless is 3651 frames faster (60.75 sec). The text is 4658 frames faster, but 1007 frames slower in 53 menus, and 2 frames faster in the intro. Here is a breakdown of the timing differences, with the amount of frames saved in the Japanese version, except menus which are slower: Here is time cost for the time wasting messages: |
|
|
|
![]() |
A couple of my research notes that I posted on Discord: I decided to investigate the gas rooms on the any% route more throughly. On entry to the gas room in building 1 floor 3 from both doors, and both gas rooms in building 3, there is a 4 in 32 chance (12.5%) of risk of damage because of the 4 frame rule of doors, but there is a 2 frame window of bringing up the menu before taking damage, so with button mashing there is a very good chance of avoiding that damage. On exit from both doors in building 1 floor 3 from both doors and the second gas room in building 3, there is a 9/32 chance (28.125%) of taking damage, again because of the door frame rule. So it is leaving the gas rooms that has the most risk of taking damage. On exit of the first gas room of building 3 (and it is faster to change to card 5 in the gas room because of screen transition time) the risk of damage is less depending on how close snake is to the edge of the screen. The minimum chance is 1 in 32 (3.125%) going up by 1 for every position away from the edge. ----------------------------------------------------- I completed research into why guards shoot. There are two factors involved, Initial Bullet and Repeat Fire. Initial Bullet: There are 2 factors that contribute to a guard shooting for the first time, which I predicted: cards and universal timer. Addresss 0x0075 stores what cards have been obtained, with each card setting its own bit when obtained. Card 8 is the high bit. So obtaining cards 1-5 is 00011111. To determine if a guard is going to shoot, (256 - value of 0x0075) AND universal timer must equal 0. Note that the result of the subtraction ignores the carry flag on the subtraction, so 256 is 0. Here is the code for the math: There are a couple interesting things about this. If no cards have been obtained, the guards will always shoot. This is why the initial jungle is very dangerous. Also because of the math, after obtaining card 1 the guards will only decide to shoot on even number universal timer on a range from 0 up to the even number before the number that 0x075 represents. Here is a table of how guards decide to shoot: The chance of Initial bullet rises exponentially as the higher cards are obtained. I had noticed that after getting card 6 that guards were more likely, which makes sense now that I understand how this works. Also because card 4 can be obtained at the start, there are more possibilites than above, but the difference is not that much. When a guard decides to shoot, it sets a flag which I call "Shooty Mood", which I explain below. A guard will decide to do the Initial Bullet check in two cases: At the start of the alert status, and when the guard's timer counts down to 0. This timer is set when a guard chooses a direction to move, and the timer is used as a distance to travel. This is how the guards chase after Snake, and so this can be manipulated. Out of alert status, the timer dictates how a guard rotates. Repeat Fire requires that the guard has first done Initial Bullet by checking if its "Shooty Mood" flag is set. In this mode, the guard will shoot whenever the universal timer is at 64 or 192 if the guard's bullet is not active, that is they can only shoot one bullet at a time. Because this causes guards to fire very frequently and become dangerous, I previously made the comment that the guard is in a shooty mood when it happens in a run. |
|
AltoPandaAltoPanda, ![]() |
Guy1Guy1
|
|
Hi dunnius, Thank you for compiling all of this information. Also checked out your Any% tutorial. I recently made a "stealth run" video of Metal Gear - where the goal was to complete the game with as little alerts as possible. I haven't managed to complete it legitimately yet - but I stitched together a video with 5 Alerts and 0 Stuns to give an idea of what this might look like: Just had a few questions: |
|
Thread | Author |
---|---|
Is the discord gone?
Last post
|
0 replies
|
Ask Me Any Game Mechanic Questions
Last post
|
dunniusdunnius
4 replies
|
PC Category coming soon?
Last post
|
MikeParadigmMikeParadigm
2 replies
|
Finally got a 100% run I feel good about submitted.
Last post
|
CzaRCzaR
7 replies
|
Deathless Run
Last post
|
EriphramEriphram
3 replies
|