Tool-assisted game movies
When human skills are just not enough

Submission #6099: lexikiq's Linux Mari0 "Portal mappack" in 03:23.78

Console: Linux
Game name: Mari0
Game version: any
ROM filename: mari0-1.6.2.love
Branch: Portal mappack
Emulator: libTAS 1.3.1
Movie length: 03:23.78
FrameCount: 12227
Re-record count: 1063
Author's real name: Lexi Larkin
Author's nickname: lexikiq
Submitter: lexikiq
Submitted at: 2018-09-16 04:36:50
Text last edited at: 2020-07-12 19:35:54
Text last edited by: fsvgm777
Download: Download (12655 bytes)
Status: decision: cancelled
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list

Version info:

libTAS version: 1.3.1

Annotation info:

Created on Arch Linux, verified on Ubuntu 18.04.

Tested on a x86_64 computer with 64-bit installations of relevant programs.

Dependencies: LÖVE 11.1 and Mari0 1.6.2.

To install LÖVE 11.1 on Ubuntu 18.04, you need the PPA: sudo add-apt-repository ppa:bartbes/love-stable sudo apt-get install love=11.1ppa1

Mari0 1.6.2 can be downloaded from: https://github.com/Stabyourself/mari0/archive/1.6.2.zip Since GitHub puts all the files into a subdirectory, you will need to extract the zip file somewhere.

Set your libTAS game executable to /usr/bin/love Set your libTAS command-line options to the mari0-1.6.2 folder. No libTAS options need to be changed from the 1.3.1 defaults to run the TAS.

Author's comments and explanations:

(Link to video)

Mari0 is a PC game created by stabyourself.net in 2012 that combines the classic Super Mario Bros with the puzzle-platfomer Portal by giving Mario a portal gun. The game launched with 2 "mappacks", with the one most people played being the Super Mario Bros mappack containing the original set of levels. This TAS instead showcases the other mappack which features 18 Portal-inspired puzzles spread across 9 different levels.

Game Objectives

  • Aims to complete the Portal mappack as fast as possible
  • Abuses programming bugs and oversights
  • Genres: Puzzle, Platform
  • Emulator: libTAS 1.3.1

Main Tricks

Portal Loops

When Mario falls into a portal, his speed is retained when exiting the other portal. If these portals are parallel, then Mario can fall through one portal to the other and build up a Y-speed of 100 tiles per second. This trick requires several portal-able surfaces, and when those are available, we use portal loops for...


Entities in Mari0 only check for collision every frame. This means that if you have the right speed and the right coordinates, you can clip through many objects or walls. Mario's terminal velocity often works perfectly for clipping through slim objects, such as doors or enemies, and can also clip Mario into blocks.

Individual Level Comments


The first instance of object clipping is already seen in the first level, where Mario is given an opportunity to create a portal cycle. He uses this and a specific coordinate when exiting the portal to phase through 3 doors in a row, skipping both puzzles and completing the level.


Instead of using the lightbridge to get up to the cube, Mario flings himself into it using the portal-able elevator tiles to build up falling speed.


Mario encounters his first set of randomness in the form of gel. This gel doesn't cost any time though, as the puzzle afterwards runs on a timer, forcing Mario to wait.


In this game, emancipation grills remove portals and are supposed to remove other objects, such as cubes. However, we can instead use Mario's long grabbing range to place the cube next to the grill, then grab it from below so the cube never touches the grill.

Next, we use our second portal cycle to clip into a wall. We then have Mario look left, both to grab the cube and to make the game push him to the right. This clip lets us skip the emancipation grill, thus keeping the cube which we use to avoid the slow movement and random gel from the next puzzle.


The random gel makes one last appearance, however its randomness is easy to work around as it takes Mario time to actually swap between the gels in the first place. The second puzzle uses a simple jump out of a portal to skip the other set of blue gel.


Every good game needs an autoscroller, right? There's not much to do here besides trying to make this part entertaining to watch.


Mario skips the second puzzle of the level by using a frame-perfect portal shot, which gives him barely enough time to jump off the door before its hitbox becomes intangible.


This level is basically an autoscroller.


The final level is a fairly straight-forward one. Mario simply grabs the cube earlier than intended to skip the final puzzle. The last input is done several frames before touching the flagpole as it gives Mario enough speed to hit the pole as early as possible and complete the game.

Special Thanks

  • Maurice for porting his game to LÖVE 11.1 when asked for better libTAS support
  • dwangoAC for making me aware of libTAS and inspiring me to create this
  • kilaye for quickly fixing libTAS issues

This TAS was created in Arch Linux (with linux kernel 4.18.7), and tested on Ubuntu 18.04 (kernel 4.15) to comply with the allowed distributions rule. Mari0 installation steps for Ubuntu can be found in the movie's annotations.

feos: I'll judge it!

Similar submissions (by title and categories where applicable):