Comments
Bretagne, Francerezoons7 years ago

Yes, i'm using a controller but i thought it would be easier with a keyboard because it's completely unnatual to do it with a controller. You have to quickly press A and Start while holding the left joystick right. The only two possibilities i have are:

  1. Holding the left joystick with my left index, pressing Start with my left thumb and A with my right one.
  2. Holding the left joystick with my left thumb, pressing Start with my right index and A with my middle finger. And they are both annoying.
Bretagne, Francerezoons7 years ago

That's a very awesome breakdown of the glitch!

I've kept messing around with it and i found a consistant way of triggerring it a the top right hand corner of "Lost Mountaintop". It involves pause bufferring (i.e. quickly pausing/unpausing to advance the game a few frames at a time)

Basically, keep holding "right" above "lost mountaintop" then, when yuri is close to the edge, start pause buffering (but KEEP holding "right" while doing it) until either you can't see yuri's eyes anymore or the level just start transitioning (that's a time window of a few frames so even if, like me, you can pause buffer frame by frame that's still doable) then hold "left" (while paused), unpause the game and done!

Here is a video where i do it 7 times in a row using this method.

Of course, this method has two issues. First, you can't pause during the one frame of screen transition which can ruin the setup. Second, it only saves time in IGT runs and not RTA.

Also, even if it's technically allowed it kinda screw a bit with the principle of the In-game timer. :p

PrettzL, MIDIbusker and 2 others like this
Bretagne, Francerezoons7 years ago

No, they have moved on from the game but they gave their approval for us making custom levels by messing around with the game files.

Bretagne, Francerezoons7 years ago

I'll be even more brief.

  1. To be frank, i'm not really interested in this category. I already have my hand full with the 3 main ones. I'm even sure that collectibles% is far from being optimized. So, whatever you choose i'll be ok with it.

  2. Not really an opinion but i just wanted to add that you can configure the autotimer so that it triggers after reaching the "diplomat" achievement which you can use to help you if you decide to keep it. As to whether you want to keep it in your run or not i'll let the ones who want to run it choose it for them.

  3. I actually have no clue either but i think Prettz's answer tells everything.

4,5) Nope. :p

PrettzL and MIDIbusker like this
Bretagne, Francerezoons7 years ago

First, @kobepilgrim it's this one:

Second, here are my opinion on the topic.

  1. I also agree with both of you. I don't want to add some complicated rules, at least not for the any% IGT category for all the reasons you've talked about. I know very well that if i had to do some complicated step to submit a run i would have probably never tried speerunning in the first place. There is also the fact that i'm pretty sure that whatever we would impose to try blocking cheating there would always be a way to circonvert it.

  2. I've made some test myself and i can confirm that even small changes can be seen. This is mostly thanks to the fact that we all nearly have the same route and so we pretty much have yuri's behaviour entirely recorded in our head. We can then notice if he has some unusual behaviour. Of course very minor changes can be made so that they are nearly unnoticeable but i didn't saw any noticeable difference in time. It's possible to gain a few seconds so that's probably not worth risking getting banned for that. Also, as thisishowmymindworks said, cheaters usually prefer more popular games.

Nevertheless, i will still be more carfeull when watching sub 8 runs (i doubt people would cheat their way to the 15th place). I trust everyone here but by principle i'm still gonna take the carefull approach.

  1. I have really mixed feeling on that one. On one side i'd love to be able to have autosave automatically turned off when i run. Also, bug fixes like the OOB issue (that would cause frame drop on my old computer) thisishowmymindworks talked about would be great!

On the other side, i think it really goes against the principle of speedrunning in itself, that is running the game in it's current state. I don't really have any example in my head of a major speedrunning community that did that. In the end i'll see what other people think about it.

Also, i might add that we can still create new category if people are interested in making run with weird modification like 2x speed or removing all sprites (sorta like playing blind).

Finally, i will also bounce back on what BeardedBusker said. Even if you need to change some game file to add room names/custom dialogues these will NOT affect the main game in any way (unless the custom levels are in the main game itself). Even if it's technically tempering with the game file you can still run game without seeing any changes. Of course, there will still be the door that leads to the custom levels but that means you only need to remove this object to get back to the "normal" game state.

In the end it seems that our 3 opinions are close enough (at least for the first 2 points). Ghuia already gave a similar opinion for the first two points but i'm curious about what he thinks about the third one if he see this. Also, what i'm really curious is PrettzL's opinion! From what i felt when we talked about it, he seemed to have an overall different opinion on the matter. Otherwise i'll let the thread open for 1-2 weeks and i invite everyone to tell what they think about this just like when we talked about the mouse wheel rebinding issue. (Don't worry, you don't need to write as much as we do!)

Bretagne, Francerezoons7 years ago

Hello everyone!

A few days ago, thisishowmymindswork made another HUGE discovery. (Thank you a lot!) He found a flash decompiler software that allows us to actually make some modifictions to the file itself. Since all the game is basically contained in the ots.swf file in the game folder it means that we could potentially modify the game how we want. In practice we're still limited a bit so i'll try to explain all the things that we CAN and CAN'T do, as well as talking about what we should do about the different possibilities of abuse with it.

The software used is JPEXS Free Flash Decompiler that you can download here: https://www.free-decompiler.com/flash/download/

After finishing installing it, launch it then load the file ots.swf and you should get this:

http://puu.sh/pUJ6Y/1c5c6b3478.png

The folders images/sounds/binaryData contains all the sprites/music/SE/text data of the game. We can very easily modify these files. Right click on the file then select "Export selection". This will make a copy on your computer that you can modify how you want. After finishing modifying it, right click again on the file you want to replace then select the one on your computer you just modifed.

http://puu.sh/pUJxa/0d9b71ecc2.png

After finishing your modifications, just save (it will take a few seconds) and that's it! (BTW, i think that's the right moment to warn you that you should keep a back-up copy of ots.swf) Modifying the image/sounds assets is pretty straighforward. Replacing the text data (that contains all the room names, NPC dialogues etc...) is a bit more tricky and i detail it in my (updated) guide on how to make custom levels you can find here http://www.speedrun.com/ots/thread/n64k0 This allows us to do all kind of modification. Here is a little showcase of some of them:

Now, let's take a look at the "script" folder that contains all the game code. Clicking on a file will show it's content.

http://puu.sh/pV0ik/d5339878cd.png

Unfortunately, we can't modify it directly. (Well, you can do it but it will corrupt the file) In order to change something you have to click on the part you want to modify. This will open a second window with an alternative (and less comprehensible) code in it.

http://puu.sh/pV0rC/3d90c4ec04.png

If you want to modify something you have to modify it there. If it's just changing a constant it's pretty easy.

http://puu.sh/pV1ec/e267157e81.png

Then saves and enjoy!

http://puu.sh/pV1aw/f8d3d9997e.gif

Now, i don't have a good enough knowledge to tell if we can make more complex changes in the code than just constant changes and deleting stuff. I'll let people with actual knowledge of programming telling this.

Anyway, the introduction of this new tool raises several points that we would like the community to discuss together.

  1. What should we do about the potential abuses? Imposing more iconvenient rule that would make cheating impossible or changing nothing and just letting the mod be more vigilant? Also:

  2. Is it possible to detect someone cheating, even if he just did minor changes?

Finally,

  1. Is there some modifications that would be considered authorized in a speedrun? Like changing some textures, some room names or making the game not auto-saving by default.
AfterDarq, MIDIbusker, and PrettzL like this
Bretagne, Francerezoons7 years ago

HUGE UPDATE: A new section was added describing how to add custom dialogue/room name in the game. Also, i improved a bit the formatting so that it looks less like a mess right now and made a few corrections.

PrettzL likes this
Bretagne, Francerezoons7 years ago

UPDATE: After talking about the glitch with BeardedBusker and thisishowmymindworks we found out that the glitch actually works everytime you can move quickly between at least three rooms that have a corner in common. For example, you can do it in the top left corner of "lost mountaintop" and it skips "lava pits".

Since the solid block doesn't matter for this glitch, it seems that what causes the glitch is really the quick succession of screen changes. The game probably can't keep up with all the loading/unloading it has to do and then changes your coordinates out of confusion.

With this knowledge, we can now use this glitch to save some time while falling from antenna relay by skipping a screen like this:

Combining this trick with TIHMMW's one gives us a time saved of around 7-9 seconds which is definitely a lot. Unfortunately, we still havn't figured out a way to do the trick consistantly yet.

Bonus: You can use the glitch to leave alien city without the gun. It's useless but funny!

ghuia, Tigame and 3 others like this
Bretagne, Francerezoons8 years ago

I know i'm repeating myself but that's really awesome. I've tested it and it seems to work really well. You can now pretty much customize it nearly as much as you want.

If you want the coordinate of a specific checkpoint you can checkout the map edit Timbouton made a while ago with all the coordinate of the levels https://www.dropbox.com/s/5dmvb0e2uh6vywq/OTS-Map_num.png?dl=0 .

Of course, if some people are a little confused by all this you can always ask here or on the discord chat if you want help to setup your autosplit.

Thank you again Thomadin. ;)

PrettzL likes this
Bretagne, Francerezoons8 years ago

Here is a non exhaustive list of strings for triggering splits. I remind everyone that the autosplitter can only check at every savepoint meaning that the timer will split the next time the game saves after the different events are done. I put in bold the events that are done at the same time as the game saves (meaning that the split is instantaneous for them) and i put an asterisk in front of the one i used for my collectible% splits.

Cutscenes: These correspond to the pop-up message you get at the beggining of some levels.

"greetings" : Correspond to Crash Site (5_5) "lava" : Correspond to Spaceship Graveyard (6_5) "teleportGun" : Correspond to Red Lake (7_5) "fallFast : Correspond to Lava Pits (8_5) "notPacific" : Correspond to Block Chompers (10_6) "momentum" : Correspond to Up Hill (13_6) "intelligentLife" : Correspond to Up Down Jonction (14_5) "weirdBeam" : Correspond to Alien outpost (15_5) "doorTutorial" : Correspond to Ancient Well (17_6) "momentumFall" : Correspond to Ancient Well too (17_6) "oneMore" : Correspond to a level not in the game. I'm curious now! (20_6) "greenBeam" : Correspond to Up Beam (1_15) "tower" : Correspond to Grigori's Tower (36_5)

NPC: These correspond to the NPC you talked to. I won't put all them that would be useless. The only one we need to talk to are:

¤ "alien15_28_6" : The alien guard opening the first gate. (28_6) ¤ "alien16_29_6" : The alien guard opening the second gate. (29_6) ¤ "grigoriGreetings" : Talking with grigori before the first boss fight.

Game Trigger:

¤ "gauss" : You got the gauss gun. ¤ "autofire" : You got the gun upgrade. ¤ "lightOrb" : You got the light orb. "traitorIntro" : You talked to the traitor "traitorBig" : You got the big upgrade from the traitor. ¤ "traitorDone" : You gave the 11 cores to the traitor. "grigoriDefeat" : You beat the first fight with Grigori. "grigDead" : Same.

Achievement Related: Unfortunately, the game doesn't take into account ALL the achievements.

"CLOSE_ENCOUNTERS" : Talk to an alien. "TALK_TO_CITY_ALIENS" : Talk to all aliens in the city. "DIPLOMAT" : Talk to all 21 aliens. "SECTOR_CLEAR" : >=15 unique screens traveled. "TRUTH_OUT_THERE" : >=50 unique screens traveled. "ALL_YOUR_BASE" : >=75 unique screens traveled. "WHERE_NO_MAN_HAS_GONE" : >=81 unique screens traveled. "107_PERCENT" : >=87 unique screens traveled. "KILL_ALL_MONSTERS" : Take a guess. ¤ "FIRST_HEART" : Get an alien artifact. ¤ "LINK_TO_THE_HEART" : Get all alien artifact. "THE_DIG" : Break ten breakable blocks. "SKIP_TREEMAN_DOMAIN" : Use the shortcut to the alien city. "AUTOFIRE" : Get the gauss sun. "TELEJUMP" : Jump after being teleported 5 times in less than 8 seconds. "GRIGORI_WITHOUT_TELEPORTS" : Beat grigori without using the teleport gun.

Misc.: "death_crush" : Get killed by the block with the spikes. "death_enemy" : Get killed by an enemy. "death_lava" : Get killed by lava.

Hopefully this will help everybody to customize their autosplitter as much as we can currently do. Thank you again for Thomadin for making it!

Bretagne, Francerezoons8 years ago

That's awesome! I had to uncheck "Split every N Saves" in order to make it works but otherwise everything worked perfectly.

I used this set of strings for my collectible% splits {"gauss", "autofire", "FIRST_HEART", "LINK_TO_THE_HEART", "alien15_28_6", "alien16_29_6", "traitorDone", "grigoriGreetings", "getLightorb"} and each one worked perfectly giving me this.

http://puu.sh/oWZnN/9caa6f6cf8.png

Of course, because we can only autosplit when the game saves, the events "Passing the first gate", "passing the second gate" and "grigori (first/second fight)" correspond to their respective checkpoint associated. Also, the event "All core given to the tratoir" trigger when savewarping and only actiavtes if you got ALL the cores making it the best way to be sure we indeed got all the cores in our run (very useful to avoid false hope or during races). Finally i unchecked "start" and "reset" in the layout setting in order to trigger manually the beggining and end as it was discussed before.

Thank you very much, it's really awesome and i'm definitely gonna use it for all my run using external timers. I will also later make a list of all the different strings we can put and what they trigger if people want to configure they split differently. Unfortunately, there are still some limitations so everything isn't possible yet but in the current state it's REALLY useful.

PrettzL likes this
Bretagne, Francerezoons8 years ago

That works really great! Unfortunately, because there are several checkpoints that i don't always activate i'm still unsure about using it or not. I'll try and see for myself.

Also, checking every savepoint is a little too much. Maybe there would be a way to save every 2-3 checkpoints? That would allow to spread the split a little more.

Finally, i wondered, would there be a way to check the content of the savefile for certain string? Because the game write some when certain events are activated. For example, it writes "gauss" when you get the gun. It writes "autofire" when you get the upgrade. It writes "FIRST_HEART" when you get the first alien artifact and "LINK_TO_THE_HEART" when you get all of them. It also writes "SKIP_TREEMAN_DOMAIN" when you take the shortcut to the alien city and each time there is a "cutscene" the game write it's name too. If we could use this maybe we could make a more customable autosplitter.

PrettzL and MIDIbusker like this
Bretagne, Francerezoons8 years ago

I'll do my best to participate this time!

MIDIbusker and PrettzL like this
Bretagne, Francerezoons8 years ago

I'm sorry i couldn't participate. I would have loved too but i was unavailable at the time. I hope the race went well and hopefully i'll be able to participate at the next one. ;)

PrettzL likes this
Bretagne, Francerezoons8 years ago

Pretty cool! It's also nice to see a lit bit more about the lore around OTS. Also, for some reasons i never noticed that grigori had a giant hole in him.

PrettzL and Natos like this
Bretagne, Francerezoons8 years ago

I got 91 yesterday (but i was tired and could have miscounted). I just tried again and got 93.... So, i didn't get better than 89. I also didn't passed any room better than ghuia so his 89 still holds up.

Bretagne, Francerezoons8 years ago

Very nice! You were really thorough in analyzing the different strats and it really payed off. I never would have thought that this alternate version of the strat would be 1 second faster. For now, i'm still unsure about wether or not i will implement this strat in my run yet. I still have trouble making correctly the jump under the brute's shot. Jumping too low is not a big deal but jumping too high causes instant death. Until i get better at it the risk/reward is not in my favour. I'll train a little bit and hopefully i'll get better at it.

Also, while trying your various strats i think i managed to get another one that is slightly faster:

It's way more risky though, especially for 2-heart runs. I timed it at 8.9s (real time) between the moment i enter the security room until the death warp.

Timbouton and PrettzL like this
Bretagne, Francerezoons8 years ago

I just added to the guide a little section about the trouble you could encounter with some of the game levels. Nothing major.

[quote] P.P.S. Another use for OGMO is to edit game levels. If you want to do this you may notice that some levels can't be opened in OGMO and other correspond to nothing in the actual game. Here is why:

Unopening levels: 10_5.oel: The most complicated one. The line causing issue is line 13: <rect x="0" y="-1" w="26" h="1" /> It adds a line of invisible solid blocks above the level and OGMO doesn't like it. If you want to edit the level you need to remove this line with notepad, edit the level, then put the line back.

12_6.oel The line causing issue is line 245:

<!-- <sp_messageArea id="11" x="288" y="0" width="160" height="160" /> -->

You can just remove it. It affects nothing in the game.

25_5.oel The line causing issue is line 81:

<!-- <env_blockFall id="10" x="160" y="256" /> -->

You can just remove it. It affects nothing in the game.

27_6.oel The line causing issue is line 46:

<!-- <sp_messageArea id="15" x="96" y="64" width="32" height="192" message="" /> -->

You can just remove it. It affects nothing in the game.

Unknow levels: 20_5(new).oel It's an alternate version of 20_5 that was never used in the final game.

20_6.oel It's the foundation of a level that never made it into the final game that you were supposed to access from 20_5(new). The level is still here but unaccessible.

31_6.oel It's an alternate version of level 36_1.oel. Once again, it's unaccessible in the game. [/quote]

Bretagne, Francerezoons8 years ago

After messing with the game a little bit (and struggling with the way it deals with hearts) i managed to create a save where you start with 42 hearts. (You also start with the gauss gun upgraded and most of the game events already triggered) You can find it here: http://www.speedrun.com/ots/resources

The save folder should be at Steam\userdata\73542301\263980\remote.

This is mostly for those wanting to test/train damange boosting strats without dying every 2-3 attemps.

http://i.imgur.com/5KxFDNL.jpg

PrettzL, Timbouton and 2 others like this
Bretagne, Francerezoons8 years ago

It's possible to do so but it's way slower and more difficult than just damage boosting over the brute. Nevertheless this is a pretty neat trick and it doesn't work just on ghost but also with other enemies. Unfortunately, i haven't really found a use for it yet.

PrettzL likes this
About rezoons
Joined
8 years ago
Online
2 years ago
Runs
28
Games run
Out There Somewhere
Out There Somewhere
Last run 7 years ago
26
Runs
Another Perspective
Another Perspective
Last run 7 years ago
1
Run
Westerado: Double Barreled
Westerado: Double Barreled
Last run 7 years ago
1
Run
Games followed
Out There Somewhere
Out There Somewhere
Last visit 2 years ago
3,107
visits
Games moderated
Out There Somewhere
Out There Somewhere
Last action 5 years ago
141
actions