(Link to video)

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. This movie solved the DOS port of the game, which is, arguably, the best port of all: it is fluent and sound is excellent.
The trigger for working on this movie was finding NEW-RAW, an Another World bytecode interpreter / virtual machine that enables re-recording features that I need to run JaffarPlus on. It took some work to connect it to the bot, but in the end it provided a good emulation.
This movie builds on many of the tricks I found earlier in the Genesis version movie, but adds new tricks of its own.
  • A better execution overall, thanks to using a much faster emulation core for botting and adapting the bot to the input scheme after figuring out that this game uses staggered inputs (inputs in a given frame have an effect two frames forward).
  • More widespread uses of the GunCharge+Move everywhere
  • Style Style Style
A total of 3 weeks were spent on this project, mostly on connecting to NEW-RAW, exploring the RAM map, finding level-specific triggers, route strategizing, scripting each level, running the bot, and performing manual adjustments to the movie.
I had some problems working in this movie. First, even if I had an almost perfect emulator for the game, I could never solve the issue of RNG. The game has, as far as I know, two sources of RNG: time and inputs. Although inputs can be easily manipulated by the bot, timing is almost impossible to control in a PC. Any differences in loading times (hard disk latency and such) would yield different effects in the game. To make matters worse, almost everything is RNG-dependent. Enemy (slug) placement, behavior, gun accuracy, reaction times, etc. There are but a few sections of the game that are not RNG dependent. This situation forced me to manually fix many desyncs from the solutions the bot gave me.
Despite RNG, I was finally able to finish the TAS on Friday. However at this point I realized I had forgotten to activate the sound (yes, that happened). Not even that, but the proper way to activate it is through a setup binary that would not run correctly on PCem. Thankfully slamo helped me get the sound problem resolved: simply adding the argument 's' would activate the sound.
After spending a whole Saturday re-syncing the movie (sound added many desyncs, as expected). Almost at the end of resync, I found that playing straight from the Floppy disk crashes after the tank stage. I entered dispair. After recovering sanity, I decided had to add an installation step to play the entire game from hard disk and started re-syncing the entire movie again. There went Sunday.
In spite of the problems I had working and the fact this game stole my hard-earned weekend, watching this movie for the first time made me really happy and compensated all the suffering. That's why I love this hobby.

Emulation

Rom Information

  • Name: Out of this World
  • SHA1: 1e04092ec17c671688b53ef392ba3e514b4bbd8e (disk1.img)
  • SHA1: 1a2084a9fc15141404eecfb31127a0d209567624 (disk2.img)
  • Source: GoodOldDays.net

Routing Bot

  • Bot: JaffarPlus
  • Routing Core: NEO-RAW (Average Exploration Performance: 2.7M States/s)
  • Platform: AMD Ryzen Threadripper 3990X Processor (64 cores, 128 threads) + 256Gb RAM

Config File

Here's the config file for PCem I used. Be mindful of the paths.
gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 1
model = ga686bx
cpu_manufacturer = 0
cpu = 6
fpu = builtin
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = px_trio64
video_speed = -1
sndcard = sb16
cpu_speed = 20
disc_a = /home/jaffar/jaffarPlus/examples/aw/tas/imgs/disk1.img;/home/jaffar/jaffarPlus/examples/aw/tas/imgs/disk2.img
disc_b = 
hdd_controller = ide
mem_size = 8192
cdrom_drive = 200
cdrom_channel = 1
cdrom_path =
zip_channel = -1
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 2099
hdc_fn = /home/jaffar/.pcem/imgs/late90s.img
hdd_sectors = 0
hdd_heads = 0
hdd_cylinders = 0
hdd_fn = 
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn = 
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn = 
hdg_sectors = 0
hdg_heads = 0
hdg_cylinders = 0
hdg_fn = 
hdh_sectors = 0
hdh_heads = 0
hdh_cylinders = 0
hdh_fn = 
hdi_sectors = 0
hdi_heads = 0
hdi_cylinders = 0
hdi_fn = 
drive_a_type = 7
drive_b_type = 2
bpb_disable = 0
cd_speed = 72
cd_model = pcemcd
joystick_type = 0
mouse_type = 2
enable_sync = 1
lpt1_device = none
vid_resize = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1

[Joysticks]
joystick_0_nr = 0
joystick_1_nr = 0

[SDL2]
screenshot_format = png
screenshot_flash = 1
custom_width = 640
custom_height = 480
fullscreen = 0
fullscreen_mode = 0
scale = 1
scale_mode = 1
vsync = 0
focus_dim = 0
alternative_update_lock = 0
render_driver = auto

[GL3]
input_scale = 1.000000
input_stretch = 0
shader_refresh_rate = 0.000000

[GL3 Shaders]
shaders = 0

[Phoenix S3 Trio64]
memory = 4

[Sound Blaster 16]
addr = 544
opl_emu = 1

slamo: Claiming for judging.
slamo: Updated movie file to fix the platform.
Everything looks good to me, and I had no problem syncing it. Accepting!
fsvgm777: Processing. Can't get it to sync for unknown reasons. Dropping. Well, I got it to sync now. Processing.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This topic is for the purpose of discussing #8237: eien86's DOS Out of This World in 09:56.54
Challenger
He/Him
Skilled player (1634)
Joined: 2/23/2016
Posts: 1033
I'm surprised the moving charge trick is more broken in this version this time. Great execution as always :) Yes vote.
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Editor, Skilled player (1936)
Joined: 6/15/2005
Posts: 3239
Looks cool as usual, although for this version there isn't any of the music that is in some of the other versions.
Editor, Skilled player (1998)
Joined: 8/25/2013
Posts: 1198
Ah great! Another World is one of my favorites, glad to see one of the better ports got a TAS. Yes vote.
effort on the first draft means less effort on any draft thereafter - some loser
Joined: 1/3/2018
Posts: 65
Oooooh my. Well, this is truly something else... Easily one of the best games I've experienced and played at the same time : ) - obliterated to bits and pieces and wonderfully broken in such a glorious style? Oh yes. So much Yes. Couldn't vote more, in fact would do so thrice if possible : ) This is one of the absolute best TASes I've seen - easily. Deserves the highest praise and ranking... Thank You SO much for creating this! I think Éric Chahi should see it someday : ) While creating games and speedrunning them are probably the exact opposites, this is as close as it comes for speedrun/TAS being an art.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
I cannot get it to sync at all. It desyncs on the copy protection (different position on the code wheel for me than in the author's temp encode). Every single hash matches. I've dropped it from publication for the time being. Should I be able to get it to sync, I will claim it for publication again (but everyone is free to do so).
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
fsvgm777
She/Her
Player, Senior Publisher (221)
Joined: 5/28/2009
Posts: 1180
Location: Luxembourg
Well, I figured out why it desynced for me. I had a different 86c764x1.bin than the one specified in the Late 90s config. The TAS syncs now for me, and I will claim it for publication.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14776
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [5296] DOS Out of This World by eien86 in 09:56.54