An attempt to explain this again since people keep asking.
Using a potion on the zeroth slot writes the expiry time (current time + duration) to memory preceding the first character's data. Some potions happen to write where the game stores your quest status flags.
0xACCE64 Current time, 8 bytes. Incremented once per frame (60 hz).
0xACD59D Quest bits, 64 bytes. See quests.txt in events.lod to see what's what.
Potions write to these addresses. There are more but only these two are relevant.
0xACD5A8 Personality boost
0xACD5B8 Speed boost
The goal of the run is to wait until certain bits in the time are set and then using potions to overwrite the quest bits. These are the necessary bits to achieve the ending. The light/dark side bits have to be zero or you won't be able to talk to judge Grey.
Bit Byte Address Value Description
99 13 0xACD5A9 0x20 Chose light side
100 13 0xACD5A9 0x10 Chose dark side
105 14 0xACD5AA 0x80 Slayed Xenofex
119 15 0xACD5AB 0x02 Killed Tolberti
145 19 0xACD5AF 0x80 Book shop membership (this is here for illustration only)
236 30 0xACD5BA 0x10 "Lost it" bit for overthruster
Combining all the bits and aligning them gets us the expiry time we need:
0x02900000
Adjusting for potion duration we get the time to drink:
0x028F1400
Which is may 5th 1168 11:00 am. Then depending on the personality boost potion power it has to be offset a little. This is to ensure the light/dark side bits are zero.
Power:
8 +0 min, 0 rests
12 +5 min, 1 rests
16 +15 min, 3 rests
20 +20 min, 4 rests
24 +30 min, 6 rests
28 +40 min, 8 rests
32 +45 min, 9 rests
Other details
The reason you have to buy the book shop membership is that without it the game thinks a potion is already active and won't write the expiry time. There are other bits that would work for the run but this is by far the fastest.
You respawn on Emerald Island because one of the potions zeroes the bit that's set when you complete it. This is unavoidable.
Use cheat engine to see what's going on.
My reasoning for allowing it was
- It's specific to that one spot and doesn't break the whole game
- It's difficult and not that big of a time save even with perfect execution
- It's similar to the clip in MM6 that's also allowed
So it seems that we are all in agreement though I would have preferred to have this discussion before someone implemented it in a run and submitted.
Added the category though I'm curious about the wrapping teleports. Is it purely a convenience or is it used to reach places that you otherwise couldn't? Seems fine assuming it's not used for sequence breaks.
There's a somewhat similar thing in MM6. The overworld is a grid of maps where you can walk into the boundaries to travel between them. It's possible to travel diagonally which some people claim is a glitch but even if it was it doesn't affect anything.
It's linked at the top of the page right under the game title.
It's a known issue but not really something worth allowing the patch in my opinion.
The GOG release does not include Grayface's patch, only Mok's patch, which is why Mok's patch is also allowed on the retail version.
There is no need to allow any other third party modifications.
I was recently in the mood for some disassembling and found out there indeed is fall damage indoors.
The code for checking whether the party should take damage is likely incorrect which is why you don't usually take fall damage indoors. I was testing this with the fire door since it's easily reproduced there. I noticed that while walking against it the "fell from" height, used to calculate amount of fall damage, is set to around the top of the frame, but the party stays on the floor. The game checks if the party is on the ground and if its current vertical position is 512 units (or more) less than the "fell from" height, if so then damage is applied. The door frame happens to be just about 600 units above the floor and since the "fell from" height is repeatedly being set while the party remains on the floor, you take fall damage on every frame while walking against the door. Didn't investigate further than this into the exact cause of broken indoor fall damage.
To be completely honest, I'm not too familiar with DOS stuff. The rule was written in the spirit of "don't run the game at 2x speed, etc". I had seen some games have separate boards for different cycles setting and so just happened to mention it specificially. There was some talk about just using the default GOG config but that's obviously no good since it doesn't even run at the correct aspect ratio out of the box!
Simply removing the explicit mention of cycles would make things quite vague so I'm open to suggestions as to how this should be rephrased.
You could still use a cam to boost your legitimacy if you want, but like theoryjoe said, the community is just too small to require it.
The promotions thing is not that different from 6 where you get "received promotion to honorary x", so just doing the quest is fine. Otherwise solo runs wouldn't be possible (not like that's going to be the fastest but still).
As for bounty hunting, does journeyman status replace novice? If so, I'd say it's enough to get novice.
Ok, thanks for looking into this for me. Sounds like the rules are same as in MM4 then which is nice.
For a category that doesn't use the codes NMG isn't quite right as it stands for no major glitches. MM4 has "any% no shangri-la" which is similar to "orb meister". If someone does a run like that I'll add the category.
Alright well if you guys think the codes are fine that's your choice, it's not really my place say.
Regarding the versions, I do agree, but I'm just not expecting it to be a real problem. A runner is obligated to do their best to prove legitimacy and we should take their word for it, unless there is a reason for suspicion.
And sorry, I didn't mean to hijack this thread so let's continue in a new thread on MM3 forums if need be.
Problem with disallowing memory manipulation in any% is that in the old any% route, before we had total control over the game, it still uses the same glitch (5th slot). Any% without 5th slot would be pretty much the same as any% NMG so no point in making that a category, is there.
As for timing the party creation, I don't have a strong argument against it other than just that it's quite common for speedruns to not time such things.
Now I realize that there's an obvious conflict of interest as I'm the record holder as well as a moderator, I want to keep the record, so I'm inclined to not change the rules. Moreover, are you saying that you'd want to run the category if the rules were changed, or that you'd just like to see the run done "properly"?
Might be annoying for people, but at least the run would be longer, more actions would be included in the timed portion of the run, and competition could be a little stronger?
It would most certainly have the exact opposite effect. I'd personally much rather retire from speedrunning completely than "compete" in typing text in little boxes.
Oh and mind replying to my PM? I had some questions regarding MM3.
Yeah I guess. Wasted a lot of time on grabbing items to sell and then I didn't even need to, so ideally don't bother with items at all. I did use the shift trick though, not sure if that even works in 7?
Problem is that the route is just so inconsistent. You could lose at any of these points: Emerald island alchemy shop, no potions. Emerald island magic shop, no scrolls. Bracada, not enough gold. Bracada magic shop, no potions. End of the run, even if you get this far it doesn't always work.
You could get the two white potions in the fly scroll chest which would save some time flying around (and gold) but good luck with that.
Not the clearest explanation but figured I'd document this somewhere.
Alpaca found a way to use the "zeroth" character to drink stat boost potions which overwrites quest bits with the current time. Performing the glitch itself is quite easy. You need a party targeting spell set as the quick spell on the first character and the other three unconcious/dead/etc. Now hit S to cast and click on the first character at the same time. You need to get the character menu open with the spell cursor, then click the first character to cast, then immediately hold right click for a second or two. Now you can select the inventory tab and grab a potion, then click on the right side of the screen to use it. The potion comes from the first character's inventory but using it on the invisible paperdoll applies it to the "zeroth" character, overwriting quest bits.
Have a look at my run to see this technique in action.
Quest bits are stored at address 0xACD59D, 64 bytes. See quests.txt in events.lod for bit indices. Potions that line up with bits: might boost, personality boost, speed boost (and maybe more). You might want to play around with the glitch with cheat engine open to see how exactly the potions affect quest bits.
The high bit comes first like so, 12th byte:
bit, bit index
0x80 96
0x40 97
0x20 98
0x10 99
0x08 100
0x04 101
0x02 102
0x01 103
Important bits:
bit index, byte, bit, description
105, 14th byte, 0x80, slayed xenofex
114, 15th byte, 0x40, did proving grounds
119, 15th byte, 0x02, killed tolberti
236, 30th byte, 0x10, lost it bit for overthruster
Added item dupe glitch demo and simplified steps for the other glitches. Merry christmas.
Here's some of the stuff I discovered recently that will most certainly be useful in any%. I'll update this post as I find more. Thanks to user, alpaca and fox for their contributions.
See the video descriptions for how to perform the glitches. All of these can be performed in software rendering mode. Haven't extensively tested hardware rendering mode.
Zod colony clear glitch. Despawns all devils except for xenofex. Requires 3 fire aura scrolls or similar.
Quest NPC hire glitch. Requires a fire aura scroll or similar, or cast a spell like remove fear and talk to a hired follower at the exact same time, then choose target and die with the dialogue up, no scroll needed.
Item dupe glitch. Requires a fire aura scroll or similar. Might work at other chests but avlee was convenient in the run.