Today marks 10 years since I joined this site! Thought that would be reason enough to warrant the making of a new TAS. As Sonic games are the ones I've had the most fun with due to their complex physics, and the fact that I didn't already have the record for this one, made it a wanted target to improve. Only problem was that in order to do so I had to beat Tee-N-Tee... big challenges are great motivators though and in the end I improved his run by 473 ingame frames (~7.9 seconds) and about the same amount of real time. The input file still became a few seconds shorter than that due to ending the input earlier by pure greediness.

Game objectives

  • Emulator used: Gens 11b-s1 (Camera Hack + Solidity Display + Hitbox Display) + sonic-hud.lua + predict-animals-v2.lua (syncs with Gens 11b)
  • Aims for fastest in-game time
  • Takes damage to save time
  • Abuses programming errors
  • Manipulates Luck

Timetable (the times are correctly read as minutes:seconds::frames)

ActNew timePrevious timeFrames savedTotal frames saved
Green Hill Zone 10:23::400:23::4222
Green Hill Zone 20:12::500:13::031315
Green Hill Zone 30:30::300:30::451530
Marble Zone 10:15::040:15::04030
Marble Zone 20:10::320:10::33131
Marble Zone 30:24::280:24::411344
Spring Yard Zone 10:21::090:21::312266
Spring Yard Zone 20:25::490:26::102187
Spring Yard Zone 30:37::420:40::15153240
Labyrinth Zone 10:33::430:34::0623263
Labyrinth Zone 20:25::300:25::344267
Labyrinth Zone 30:26::590:27::2627294
Star Light Zone 10:15::040:15::3632326
Star Light Zone 20:10::190:10::201327
Star Light Zone 30:26::060:26::2014341
Scrap Brain Zone 10:28::250:28::3914355
Scrap Brain Zone 20:11::430:11::452357
Scrap Brain Zone 30:07::490:09::42113470
Final Zone1:11::581:12::013473
  • New total time: 07:39::20
  • Previous total time: 07:47::13

Level-by-level comments

Green Hill Zone 1

Several micro-improvments throughout the first half of the level added up to 1 frame, the other one came from building up higher speed before the loop in order to enter it earlier.

Green Hill Zone 2

The wasp got backstabbed.

Green Hill Zone 3

Found a later spot to start the bounching sequence.

Marble Zone 2

The previous run had a margin of 5 x-subpixels to perform the level wrap. Doing it 1 frame earlier required subpixel perfection :)

Marble Zone 3

Managed to hit the boss 3 times before jumping over to the left platform.

Spring Yard Zone 1

Subpixel positioning to hit the yellow spring after the downhill. Compensated that by not using the springs at the end :)

Spring Yard Zone 2

Different strat at the beginning saved about 20 frames. Unfortunately that advantage made me have to wait for a spike ball to move a little upwards to fully abuse the downslope. I even found a faster way to start the level than what's shown here, but that would only result in having to wait even longer for the ball which would look rather anticlimatic. Here's a demo of this other strat.

Spring Yard Zone 3

Through carefull speed management and breaking thorugh multiple 32-pixel wide walls I could gain enough speed at the uphill to break through the ceiling and extend the zip to the end of the level.

Labyrinth Zone 1

16 frames saved by managing to start the zip above the rising platform and not having to to wait for it to pass you vertically and then pass under it.

Labyrinth Zone 2

Quite simple level - the strats up til the zip are almost identical to what was done in the first ever published run.

Labyrinth Zone 3

Plain faster movement from the start to the level wrap.

Star Light Zone 1

lol-improvement.

Star Light Zone 2

Better x-positioning during the zip.

Star Light Zone 3

1 Frame gained up til the first zip, 1 frame gained during that zip and 12 frames gained on the boss by delaying some of the earlier hits to deliver the final hits faster.

Scrap Brain Zone 1

Got on top of the platforms right away after the big jump while zipping, unfortunately this didn't save much as I had to wait for the camera before advancing further.

Scrap Brain Zone 2

Got clipped forward a little on the first wheel.

Scrap Brain Zone 3

Used the slope glitch found by Tee-N-Tee.

Final Zone

At the final hit, by jumping while rolling, you can hit him 3 frames later. And as he descends by 2 pixels/frame before being hit and 1 pixel / frame after being hit it results in 3 frames being saved.
Thanks goes to Tee-N-Tee and the previous authors, plus tasvideos.org as a whole - for being the objectively best Internet community :)

GoddessMaria: Judging.
GoddessMaria: This is an excellently made movie, Aglar! Improving the current published TAS which was already tight to begin with by 8 minutes is no easy feat, but you did it! Optimization was very on point, entertainment value was very high, and the audience reaction was generally extremely positive! Excellent work, Aglar!
I'm accepting this as improvement to the current movie.
feos: Pub.


Banned User
Joined: 6/7/2017
Posts: 420
Location: Somewhere
marzojr wrote:
It leads to inevitable death, and you can't complete the level.
Yeah I thought that might be the case.
WST wrote:
Hey, Aglar, I just wanted to do something cute for you :3
Simplistic yet charming. I'm sure Aglar would appreciate that.
Expert player (3646)
Joined: 11/9/2007
Posts: 375
Location: Varberg, Sweden
feos wrote:
Comparison downloadable:
The delay between Marble Zone 3 and Spring Yard 1 was a bit off (put 4 instead of 14?) Thanks a lot though. Hope it can be enjoyed by anyone besides me :)
WST wrote:
Hey, Aglar, I just wanted to do something cute for you :3
Well thank you - I believe :D
feos wrote:
Only Aglar can improve this now.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I missed a few splits entirely. Here, I compressed the file a bit while also trying to fix the splits. HD kept freezing my virtualdub, so I refused to fix it. https://yadi.sk/d/S5WslEs33S6AnM
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Post subject: the mega link died somehow? O_O
Joined: 5/8/2010
Posts: 177
Location: Entropy
feos wrote:
Comparison downloadable: https://mega.nz/#!9IxB0IoT!sMncnyZeXigf-u3X_Y-0C1KxWZZE9N2NTiQ3QQIv-QM Link to video Didn't bother with frame diffs, since my real-time-frame-diff automation wouldn't work. Download sonic-comparison.avs
Language: avs

factor = 8 aglar = avisource("aglar.avi").PointResize(320*factor, 224*factor) tee = avisource( "tee.avi").PointResize(320*factor, 224*factor) aglar = aglar.insert( 3, 51692) aglar = aglar.insert(122, 46986) aglar = aglar.insert( 1, 46282) aglar = aglar.insert( 14, 43723) aglar = aglar.insert( 16, 40678) aglar = aglar.insert( 32, 35653) aglar = aglar.insert( 10, 33440) aglar = aglar.insert( 23, 27365) aglar = aglar.insert(162, 24413) aglar = aglar.insert( 21, 21016) aglar = aglar.insert( 32, 18148) aglar = aglar.insert( 4, 12514) aglar = aglar.insert( 17, 8342) aglar = aglar.insert( 12, 5382) aglar = aglar.insert( 5, 3277) aglar = aglar.subtitle("Aglar", align=8, size=18*factor, text_color=color_white) tee = tee.subtitle("Tee-N-Tee", align=8, size=18*factor, text_color=color_white) stackhorizontal(aglar, tee) killaudio audio = MonoToStereo(getchannel(aglar, 1), getchannel(tee, 1)) audiodub(audio, last) function insert(clip c, int count, int start) { c trim(0, -start) ++ blankclip(last, count) ++ trim(start, -0) }
Great comparison video, that longer zip on spring yard zone 3 gave Aglar a big lead in frames saved. Obvious yes vote from me. Love Sonic games!
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15628
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. ---- [3570] Genesis Sonic the Hedgehog by Aglar in 14:13.87
Danfun64
He/Him
Joined: 7/25/2007
Posts: 50
WST wrote:
I’m sick and tired from explaining why Bizhawk is absolutely useless for Sonic TAS. It is just impossible, banning Gens will not make us move to Bizhawk, the reasons are fundamental.
...that wasn't an explanation. Why is it useless? Are you saying that the LUA scripts and stuff can't be ported to Bizhawk? Should a new TASing Genesis emulator be made to cover up Bizhawk's deficiencies ala LSNES?
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
It's interesting how you almost perfectly guessed. 1. Bizhawk does not work on linux at all. Most Sonic tasers are on linux, running gens via wine, which doesn't run bizhawk either. 2. To port Sonic tools to bizhawk, one will have to fully use lua, and bizhawk's lua is way too slow for intense calculations. So we either make use of new dotnetcore whenever it becomes usable, and start running bizhawk natively on linux, with all the tools that will then be ported, or we inject a genesis core into an emulator that runs on linux and has sufficient lua support. That is lsnes.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Zucca
He/Him
Joined: 8/22/2008
Posts: 118
Location: KUUSANKOSKI, Finland
SBZ3 and LZ3 alone resulted in "Yes". Awesome! EDIT: One disapointment was that GHZ3 still remained over 00:29 long. Some day someone breaks it. :P
trazz wrote:
Killing the skeletons sooner or letting the skeletons live (unlive?) won't affect that at all.