Submission #7570: Randomno & TheAmazingAladdin's Flash Astro Barrier in 00:21.21

(Link to video)
Console Adobe Flash Emulator libTAS 1.4.3 + ruffle-ab
Game Version unknown Frame Count 509
ROM Filename AstroBarrier2006.swf Frame Rate 24
Branch Rerecord Count 720
PowerOn Authors Randomno, TheAmazingAladdin
Submitted by Randomno on 7/3/2022 1:41:22 AM

Submission Comments

What game is this?

This is Astro Barrier, a minigame from Club Penguin. The version I prefer is 2006, because it requires less modification to run, it looks nicer, and it actually has an end screen. However this should sync on any version, including Thinicetrobarrier, which requires no modification. To be able to run the 2006 version, use an SWF editor such as FFDEC to remove the checkDomain function from frame 1.

What Ruffle version is this?

This is a fork of Ruffle with a fix to make this game possible to complete. The issue is on level 38, where your bullet will fail to pass the lower target, due to something about object bounds. A pull request to fix this wasn't merged because it may have caused other issues with Ruffle. I don't know if this is classed as an unofficial emulator version.

Why does it start at level 30?

On the intro screen you can press 1, 2 or 3 to go to level 10, 20 or 30 respectively. This is revealed to you after completing the hidden Expert Levels. I don't know whether this counts as a password or a warp or what. In future I would like to TAS levels 1-40, which would contain all the content in this TAS and more.

The TAS itself

I first made an Astro Barrier TAS in 2017, with a time of 30.21 (when adjusted for 24 FPS). I used a macro, which was quite tedious and inaccurate. About a year later I tried again. This time I modified the SWF to show the position of the player and current frame so I didn't have to rely on external timings to sync. It still wasn't great however. Using a proper rerecording emulator made it significantly easier to create and optimise the TAS. I saved 8 frames over my previous attempt, partly due to rerouting the last level, but mainly from having much better precision in the timing of shots.

Transition shots

This is a mechanic that mainly comes into play in the later levels once blasters (the stationary objects which shoot at the same time as you) are introduced. When you complete a level, the unused bullet remains through the level transition and can hit targets in the next level. The was the main timesaver between the first and second versions of the TAS.


I have no idea whether this TAS is or could be acceptable. In the end I decided to submit it to see what happens. Special thanks to PASRC for making the encode.

Info Teddy: This is going to be an interesting one to judge...
Info Teddy: Replaced file with a 5 frame improvement, 3 of them from TheAmazingAladdin (who is also now a co-author).
Info Teddy: Replaced file with the Platform: Flash annotation so the site parser will recognize it as Flash.
Info Teddy: So the way I see it, there are three issues with this submission. In order of least to most problematic:
  1. The SWF file needs to be modified to remove the DRM check.
  2. The run starts at level 30 by using an officially-revealed hotkey, which is basically a level skip password.
  3. Ruffle needs to be patched for the run to sync, and the patch was not accepted by Ruffle maintainers.
Issue 1 is fine, it just hasn't been updated in the rules yet, but nobody has a problem with allowing modifications to games to remove DRM checks.
Issue 2 is hard to justify allowing even after the recent changes to the rules to allow more cheats/passwords in runs. My proposed solution here would be to accept as-is, but in the future allow full runs of this game to obsolete this submission. It'd be a special case, though, and not something that should be seen as universally acceptable. But there's disagreement among the judges about accepting even this since it's basically starting a run from a pre-existing save file for this game.
Issue 3 is a pretty big problem. Ruffle is already a special case because it has no stable release yet, making it akin to Dolphin (which has not had a stable release for over 6 years). So here, Ruffle nightly builds are considered to be official releases of Ruffle. We try pretty hard to do everything possible to get things to sync on official builds, such as with #7334: HarshESC's GC Scooby-Doo! Night of 100 Frights "100%" in 1:42:11.05. There's also a submission that we've accepted that requires unofficial modifications to the emulator (well, TAS tool): #7242: duuuuude5's Windows Undertale "Genocide ending, minimum confirms" in 1:22:29.95, but even that is a special case, because the patch needed is an official commit of libTAS - it's just that there's no official stable release of libTAS that has that patch without also having an issue that desyncs the run.
Here though, the patch is both unofficial and not accepted by upstream. Specifically, a pull request of the patch was opened, and then a Ruffle maintainer explained why they were hesitant to merge it. Then the author later closed it themselves due to being outdated (Ruffle is a fast-moving project) and needing reconsideration. This is very much not ideal, and after talking with judges, we agree that this can't really be accepted as-is.
Fortunately, Playground is suitable for this run. Playground allows game and emulator modifications, no questions asked, and it also allows using level skip passwords. Plus, this run looks fairly decently optimized, and it does in fact sync on the patched Ruffle build. Therefore, I'm moving this to Playground. The build of Ruffle needed to sync this run is hosted here.

Last Edited by Info Teddy 14 days ago
Page History Latest diff