Table of contents
Introduction
Another World (a.k.a. Out of this World) is an adventure game designed and coded by Eric Chahi. It features Lester, a young scientist and Ferrari owner that, after a failed experiment, ends up in an Alien planet where everything tries to kill him. This is one of my first childhood experiences with a game that 'feels like a movie' and was my favourite for a long time. My first choice of a platform was MS-DOS but the emulation is not mature enough for me to use the exploration bot. Between the alternatives, the Genesis and SNES ports, I chose the former because it plays and loads so much faster than the latter (Sega does what Nintendon't).
This movie builds on many of the tricks found in the SNES movie, but adds new tricks of its own:
- Overall movement and fight optimizations: Using a bot, we refined the movement and fight sequences overall, compared to the SNES version.
- Moving Charge: the game is designed in a way such that you can only build gun power while you are statically standing or crouching. However we found a way to move while doing this. This allows us to overlap the time spent moving and charging into one, saving a lot of time in many sections (see below).
- Lag Reduction: there is a frame of lag per game frame introduced for every moving object (alien, gun shot, falling debris, enemy, etc). In this movie we made every attempt to reduce the number of lag frames.
A total of 3 weeks were spent on this project, mostly on exploring the RAM map, finding level-specific triggers, route strategizing, scripting each level, running the bot, and performing manual adjustments to the movie.
Emulation
Rom Information
- Name: Another World (E) [!]
- SHA1: 9D98D6817B3E3651837BB2692F7A2A60A608C055
- MD5: 8CC928EDF09159401618E273028216EA
Emulator
- EmuHawk 2.8.0 (Core: Genplus-gx)
Routing Bot
- Bot: Jaffar (new version in development)
- Routing Core: Genplus-gx (Average Exploration Performance: 0.6M States/s)
- Platform: AMD Ryzen Threadripper 3990X Processor (64 cores, 128 threads) + 256Gb RAM
Timing
Stage Initial Total
Boot 0 770
Pool 770 241
Outdoors I 1011 2025
Cage 3036 2803
Jail 5839 3531
Vents 9370 1144
Outdoors II 10514 1568
Caves 12082 5309
Barracks I 17391 4554
Barracks II 21945 4380
Tank 26325 1690
Final I 28015 1364
Final II 29379 3186
Last Input 32565
Stage Breakdown
Pool
Here a faster swim speed was achieved by not only holding Up, but also intermittently hitting A and L/R. This is a common pattern during the entire game where interrupting the current animation achieves a higher movement speed. In this case, a higher swim speed.
Outdoors
Here, as stated in the SNES version's notes, a faster run speed is achieved by not simply bunny hopping, but also performing small 'sprints' in the middle. This accelerates de overall movement. A skip was attempted here by jumping over the 'DOG' when it stumbles into the ground. However, the game does not trigger a transition to the next act if you don't use the vine to skip it, and therefore was not used in this movie.
Cage
Similar to the SNES movie, we achieve the fastest cage-break cycle by falling into the guard before he shoots.
Jail
A few tricks were used here.
- A faster gun pickup was achieved without the need of crouching/standing up by hitting Down while performing another movement.
- Similar to the SNES version, a tri-door skip was used by maintaining a bunny hoping pace
- Moving charge was used to charge the gun while running towards the breakable door. This is an improvement over the SNES movie.
- To reduce frame lag, we wait for the doors to be decoded in the elevator room where fewer actors exist.
Vents
Nothing new here except that the movement was optimized, as some of the rolling animations were precisely interrupted for maximum speed.
Outdoors II
Here Moving Charge was used but only for entertainment purposes since it did not achieve any speedups. The enemy in the bridge is shot from up close to reduce lag frames.
Caves
This level was extensively optimized for movement speed. Moving Charge was used thrice, which represents a big time save compared to the SNES movie:
- One for the pool wall
- One for the water wall (all charging is made from the previous room to reduce lag)
- One for the door/wall before the next level
Another optimization compared to the SNES movie was shooting the hanging vines only once (when going to the pool), instead of twice (when coming back too).
Barracks I
Here the overall same strategy and tricks were used, compared to the SNES variant. Here we use used of the Moving Charge trick to accelerate the first shield creation.
Barracks II
Overall the same strategy as the SNES movie, except for the following optimizations:
- The second fight (after grabbing the carp) is slighlty optimized to reduce lag and start running faster.
- Moving Charge was used to accelerate the destruction of the ball throwing guard's door
- Moving Charge was to used to insta-kill the last guard for a much faster fight compared to the SNES movie
Tank
This section was completely brute-forced. Turns out one can press one button per frame, and ALSO advance one position horizontally AND one position Vertically. The bot found a way to hit all required buttons, one per frame, for a lightining-fast eject.
Final I
Here the same strategy is used as in the SNES movie. A curious detail: this first part can be ended faster if you allow your alien friend to die. He will come back to life in the next section, but unfortunately the game ending trigger will not work. A shame, it would have been very cool.
Final II
Nothing special here, just air-tight execution.
Future Work
There is space for optimizations. A better positioning after the water push (in Caves) could be achieved. I also think I could get a better Final I when/if get my hands on a more powerful computer sometime. I do not think new tricks could be found, but you never know!
Suggested Thumbnails
26977
16407
slamo: Claiming for judging.
slamo: Great job on the optimization, as expected. This is much faster than any other speedrun of this game.
The main concern with this movie was the PAL usage. The argument was that PAL has less lag frames than NTSC, and while this is true, a quick comparison will reveal that NTSC is still overall faster due to the higher framerate. Our rules state that NTSC is "usually preferred" over PAL, and this is definitely one of those cases where that applies. Given the good faith belief that PAL would be better, the difficulty of resyncing this run on the NTSC version, and the high quality of the optimization, I'm going to give this one a pass for now. However, a similarly optimized NTSC run should obsolete this, even if there are no other improvements. There are plans to make an improved version anyway, so maybe it won't come to that.
Accepting.
EZGames69: Processing...
EZGames69: Changed the game name to be consistent with the SNES publication.