1 2
6 7
Post subject: Sonic Colors
Skilled player (1327)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Welp, Seeing as how this is on the DS (and the Wii), I think that a TAS of this would be absolutely godly. The physics are slitghly changed this time though, so some tricks might not work this time around.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
The game engine is still the same really, they removed tricks and added the white wisps you see. Also mid-air boosting, which we havent seen since Rush's E3 demo.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
I'm new to TASing but I've been making a run for this the past two weeks or so. I actually used your WIP from Sonic Rush Adventure, Sonikkustar, to find out about the backwards airdash to accelerate faster or make otherwise impossible jumps. Which lead to me having to start all over lol. Here are some of the "tricks" I have figured out so far (FTR, I'm using the euro version): - Jumping while already boosting doesn't lower your speed. Jumping every 10 frames versus running straight are exactly the same. - I'll have to figure out more about it, but for some enemies you can avoid the hitlag by jumping while in boost just before hitting them. It always works when hitting wisp containers, but not always on enemies. - That backwards airdash with the boost you used in Sonic Rush Adventure doesn't work since airdash is not mapped to R. I've tried all kinds of combinations of boosting for two frames and then airdashing and none of them are faster. The speed is always the same but three frames were required. This seems to be the best in colors and is only two: Frame 1: Right, B, Y Frame 2: Right, A Frame 3 - 10: Left *repeat* - There's two frames of input "lag". Example: Frame 1: Press Jump/Boost/Slide/Move Frame 2: Nothing Frame 3: Action takes place I think this was the same in Rush/R.Adventure though, right? - Optimizing the beginning of Tropical Resort 2 sucks really bad. The Ferris Wheel and two enemies cause major lag frames. Originally I had about 10 fames of lag on my WIP and I was able to cut it down to three by sliding with R on enemy 1 and then transitioning into a ball before enemy 2. - Sometimes there is a glitch or lag, where the game will not fully lag. It will do one of two odd things: 1) It'll drop all inputs for a frame 2) It'll register inputs for an extra frame I had a problem with this when combining a 24 frame optimization in the first half of TR1 with the rest of the movie. It would desync halfway through the level. It was because the optimized portion created one of these fake lag frames, treating a one frame jump input into two, even though the movie file clearly showed B being held for one frame. 1/3/10 Finished TR2 with an in-game time of 0:45:96, beating SkyLights' current WR for the level. I had a set-back for about three hours trying to make an impossible jump off a ramp, finally giving up only to find a much better (about a full second better) alternative lol -_-. I would have been able to beat my time with a faster route than the one I take, but it requires having the fire wisp that's unavailable when running TR2 the first time. Overall I'm really happy with the run so far and I'm going to start my boss run tonight, hopefully finished tomorrow night or the morning after. I learned a new trick that gets Sonic to a top speed/even higher speed in two frames, but it requires an enemy or a breakable item (but not wisp containers unfortunately) and also boosting (so it can't be used in TR1). It's also not always viable to use, but I was able to make use of it twice in TR2. I encounter 5 sets of enemies/breakables in my route and lag frames are caused on two of the five by this trick and ultimately not worth doing, and a third "set" was used to avoid the special stage prompt (Going for a Any% run since this is my first TAS).
Skilled player (1327)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Any progess on this?
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
I've made a lot of progress actually :D. I'm in the process of fixing desyncs in Sweet Mountain 1 due to a 96 total frame optimization due to a "new" trick. The trick was found on gamefaqs (which was available before I even started my TAS, now I know how important research is) saves a lot of time in my run. After hitting the wisp container at the end of a level, there is a 3 frame window right before the fade out to pause and restart the level but still clear it. This is helpful for three different reasons: - It clears your ring count and that eliminates the need to find an enemy or spike to hit to avoid the special stage prompt - It's 4 frames faster in getting to the results screen than normal - Finishes with no wisps or rings collected, which avoids attaining illustrations It doesn't work on TR1 due to there being a giant ring at the end of the level rather than a wisp container. It also doesn't work on bosses :( I have to redo a few sections in SM1 due to finding a glitch with the fire wisp. From holding down A, B, Y or X, 32 frames later rleasing the button will trigger the explosion "jump" propelling Sonic upward. However releasing one button and pressing another every frame from frame 32 until the screen turns white creates multiple explosions (but there is no difference visually) and gives about 1.5x the vertical, but 1/2 the horizontal (when holding right). Desyncs are really bad, it's almost better to redo the level using the obsolete movie as a "guide" rather than trying to combine the rest of the run. Thankfully I've fully researched SDA (nothing), GFaqs (nothing besides that one trick) and even old Rush [Adventure] glitches and nothing else applies or would save time. I posted an old .dsm on The Newbie Corner if you're interested, but it's obsoleted as of now. *edit* Finished fixing all the desyncs and optimizing the flame wisp parts. Saved more frames than I thought, sitting at 323 172 (86*2) are saved from not getting illustrations on either TR2 or SM1 74 from avoiding the spikes in SM1 42 Frames from the new flame wisp glitch 36 from not only avoiding getting hit in TR2, but using the same enemy for the boost glitch allowed for a much faster top-speed 1 frame was lost on the last set of enemies from executing an invincibility glitch caused by turning around while going max speed (not as useful as it sounds) 8 frames were lost in the Globotron fight 8 frames were gained through the restart glitch. 1/11/11 Spent a good chunk of yesterday playing through SM2 unoptimized to figure out the optimal route to take. Kind of hit a bump in the beginning of the level due to poor level design. The level forces the player to first collect a fire wisp at the bottom of the level in order to go upward. There are balloons that cause an explosion upon contact that I believed I could use to avoid getting the fire wisp, but I'm a fraction off from making the platform. I think I spend too much time trying to make impossible shortcuts. But in every other situation I've eventually been able to do it. I'm not sure if double posting is a no-no here, so I'm playing it safe and just editing my posts with updates. I'll update with my WIP after I finish Captain Jelly. 1/12/11 Using the balloon is definitely impossible to skip the wisp. I tested it a little more yesterday and got worse results than before. Here's my findings with the red wisp over the past week: - Using the Balloons for a horizontal speed with the fire wisp is counterproductive due to two reasons: 1) Even when making it as optimal as possible (minimal distance between you and the balloon without hitting it during set up), it takes far too long to set it up since you're approaching the balloon from the opposite side you want to bounce from. 2) A lot of height is lost in the process of horizontal balloon bouncing. During the fire wisp portions height can rarely be lost but be optimal. 3) It's only useful when there is a big gap in front of where Sonic wants to proceed, for a wall would almost always be hit (see reason 2) when using the optimal angles for speed off the balloon. - When trying to get a vertical bounce it's always worth it. There's only been one situation where the balloons are useful for this though. - Boosting the frame before transforming gives a higher than max speed for the red wisp (which is lower than Sonic's) until either Exploding or touching the ground. Looking forward to Starlight Carnival due to the Rocket Wisp being the wisp to use. Fire Wisp is one of the hardest things to optimize due to it being aerial based, there being three different explosion timings and four different explosions (when counting the glitched level three explosion).
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
I've made a lot of progress actually :D. I'm in the process of fixing desyncs in Sweet Mountain 1 due to a 96 total frame optimization due to a "new" trick. The trick was found on gamefaqs (which was available before I even started my TAS, now I know how important research is) saves a lot of time in my run. After hitting the wisp container at the end of a level, there is a 3 frame window right before the fade out to pause and restart the level but still clear it. This is helpful for three different reasons: - It clears your ring count and that eliminates the need to find an enemy or spike to hit to avoid the special stage prompt - It's 4 frames faster in getting to the results screen than normal - Finishes with no wisps or rings collected, which avoids attaining illustrations It doesn't work on TR1 due to there being a giant ring at the end of the level rather than a wisp container. It also doesn't work on bosses :(
It works in missions too: Link to video Also just to note, if you're not beating these times, then you're not doing a good enough job :P
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Cruizer wrote:
Also just to note, if you're not beating these times, then you're not doing a good enough job :P
Before the New Year, I was looking at the Sonic Rush topic here at TAS Forums and saw something about SkyLights and TSC asking if those records were creditable. Then I looked to see if there were times for Sonic Colors DS and sure enough there is. So I compared my times from my run and there was a huge difference. SkyLights had a time of 0:46:45 (still does) for TR2 but my time was over a minute. Even if the fire wisp wasn't available, I figured I should still be able to beat the record for TR2 due to perfect reflexes. But I realized that SkyLights is just that good and that I was doing a sloppy job. Luckily in that same topic, there was a WIP by Sonikkustar and a post by you too that introduced me to backwards airdash. It's a little different this time around, but tremendously useful. At that point I decided to restart my run. Except for TR1/2, I've smashed every record so far (For TR2 my time is less than a full second better, which isn't "smashing"). Here's the times so far in my run: Tropical Resort 1 : 1'18"98 - No Boosting really held me back on this level. Even the Fire Wisp would have helped if it were available. Tropical Resort 2 : 0'45"54 - Lack of Fire Wisp makes this take a lot longer than it should. The time would easily be sub 40 seconds and maybe 35 if it were available. Globotron : 0'12"93 - It's impossible to kill Globotron during his first attack as he'll pull back when a set amount of damage has been done. So I brought Globotron down to it's highest damage that still allows it to be one-hit killed during his "death slam" routine in order to beat it as fast as possible. Sweet Mountain 1 : 0'55"60 - Found a cool trick that allows the very top route to be taken without having the correct wisp acquired yet, which saved a lot of time. If I can ask a question that I can't seem to find answered anywhere. Are the side-missons even necessary outside of gallery completion? It's been almost two months since I played it on the DS and I don't remember playing them during my first playthrough until I finished the game. Edit Also, thanks for your help :D. If it weren't for you and Sonikkustar in the Sonic Rush [Adventure] threads, my run so far would be horrible xD.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
If I can ask a question that I can't seem to find answered anywhere. Are the side-missons even necessary outside of gallery completion? It's been almost two months since I played it on the DS and I don't remember playing them during my first playthrough until I finished the game. Edit Also, thanks for your help :D. If it weren't for you and Sonikkustar in the Sonic Rush [Adventure] threads, my run so far would be horrible xD.
Actually, you would only use them for the 100% status, which involves getting all red rings. It's not that hard to get them done in one run. Not to mention you get infinite boost with it :P Also beating SkyL in a level by a mere second isn't good enough. Knowing him, he could take it back in a matter of hours. (Personally i'm waiting for my Sweet Mountain 2 time to be beaten >_>). Then you have the Japanese to worry about :P Also you're welcome. I enjoy being able to help where possible. The only thing i'm good for would be spotting better routes and possible mistakes. Except in the Sonic Rush case, that speed glitch was fucking intense @.@. EDIT: 12 seconds in Globotron? You mind showing me or something? Cause that seems a bit far fetched. @.@
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Yeah sure! Although I'd consider 0'12"93 closer to 13 than 12. http://dehacked.2y.net/microstorage.php/info/658427261/Sonic%20Colors%203.dsm Semi-Instructions/Request Version is Sonic Colours (Euro version) I've been having a problem that I posted on the Newbie Corner and it never really got resolved. The first time the movie file is played it desyncs after the menu during the first dialouge. Every time it's played after that however, there are no desyncs or anything. I've always started my rerecord after the second time due to convenience (since DeSmuME inconveniently doesn't rewind very far I sometimes have to reload my movie if I want to start 10-30 frames further back). So here's my request: See if it desyncs during the first playthrough (Gets hung up in the dialouge, eventually goes into the tutorial stage) See if it plays regularly during the second playthrough Edit Settings are the default for the emulator (Enable Advanced Bus-Level Timing is ticked). Starting up took longer with it unticked when I tested it, so I assumed the rest of the game would be slower as well. Also, a few things I wanna address in case you end up having questions about it. In TR2, the section with a boatload of rings. It's optimized for lag reduction, overall the stage is 6-7 (forgot which) milliseconds slower but 10 frames faster. With Globotron, it's hit as early as possible during it's two sequences (Attack and Death Slam). It sits there for a handful of frames before there's actually a hurtbox to hit. If you notice, there's a slight pause between the ground pounds and the final boost to end the first attack of Globotron's. That's because boosting at any other point was too early and would count as a regular hit (tested every combination I could for those 8 frames with jumping, holding left, or both). SM2, The first Fire Wisp part may seem unoptimal, but I spent half a day eventually stumbling upon that sequence I have now. There may be a more optimal method of execution by waiting a frame or two before transforming, but I was unable to get the same result when testing it. Also in SM2, the part with all the boosting on the rail. When I've tested it on TR2 and SM1's rails, it's never been faster than grinding normally (normally meaning landing on the rail with max speed, which I always do). It just looks faster due to the dramatic camera shaking xD
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
Well i just got around to watching it, and i'm very impressed by it. I forgot you don't have Boost in TR1 and Burst in TR, so beating SkyL's time by a second -without- boost is very impressive. Just a few questions however: You're most likely going to encounter tons of Lag frames when you come to Void and Asteroid Coaster. That and Sonic TASes normally go for fastest in game time. So (somewhat rhetorically) is the loss of 6-7 milliseconds really worth 10 frames? Another question, at around the 3500th frame, you are sprung up through the trick rings, and you take that zip-line. After you jump from it, is it possible to bounce off the enemies to catch the next zip-line? Or do you have to actually homing attack to be able to catch it? Also Damn at Globotron. That shit just isn't possible in real time. And that is why I love TASes. And smart move at ~15800; Taking damage from that Orbinaut. That and every single Burst move you did, they looked very well constructed.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Cruizer wrote:
You're most likely going to encounter tons of Lag frames when you come to Void and Asteroid Coaster. That and Sonic TASes normally go for fastest in game time. So (somewhat rhetorically) is the loss of 6-7 milliseconds really worth 10 frames? Another question, at around the 3500th frame, you are sprung up through the trick rings, and you take that zip-line. After you jump from it, is it possible to bounce off the enemies to catch the next zip-line? Or do you have to actually homing attack to be able to catch it? Also Damn at Globotron. That shit just isn't possible in real time. And that is why I love TASes. And smart move at ~15800; Taking damage from that Orbinaut. That and every single Burst move you did, they looked very well constructed.
1. I was under the impression that full game TASes go for faster real-time, rather than game time. I'll definitely take this under consideration. 2. It's possible, but the zip-line doesn't move as fast when it's not reached with homing attack. Boost would make it worth it by speeding up the zipline, but boost would also make me skip the ziplines entirely xD. Thank you very much for watching it! Just one question: Did it sync correctly during the first or second playing of the movie? I didn't work on the run at all yesterday due to having a scare with cutting my balls and it wouldn't stop bleeding. No joke, took like 2 hours to make it stop O.O I'm trying to do right by TAS standards and make this as optimized as I possibly can, and hopefully my work gets accepted when I publish it. Even after seeing my movie played over a hundred times it's still entertaining to me. If it's not an entertaining run to me, why would other people find it entertaining. I'll edit this later and make it more a clearer response. I'm in a hurry atm xD.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
1. I was under the impression that full game TASes go for faster real-time, rather than game time. I'll definitely take this under consideration. 2. It's possible, but the zip-line doesn't move as fast when it's not reached with homing attack. Boost would make it worth it by speeding up the zipline, but boost would also make me skip the ziplines entirely xD. Thank you very much for watching it! Just one question: Did it sync correctly during the first or second playing of the movie? I didn't work on the run at all yesterday due to having a scare with cutting my balls and it wouldn't stop bleeding. No joke, took like 2 hours to make it stop O.O I'm trying to do right by TAS standards and make this as optimized as I possibly can, and hopefully my work gets accepted when I publish it. Even after seeing my movie played over a hundred times it's still entertaining to me. If it's not an entertaining run to me, why would other people find it entertaining. I'll edit this later and make it more a clearer response. I'm in a hurry atm xD.
1. I asked someone who has been involved with Sonic TASes, so either i've been misinformed/misunderstood, or they told me the wrong thing. But yeah, another place i get a lag is using Void towards the end of SM2, and absorbing all the enemies/growing in size. It is a significant lag. 2. Yeah, you'd be taking the lower route and using an incline to jump :P And the movie synced each time i viewed it (twice). Hope you can do well with the rest of the TAS :P
Joined: 5/9/2005
Posts: 752
The only submitted Sonic run that went for real time rather than in-game was an all Emerald run of Sonic1 IIRC. That was rejected, and one of the reasons was the real time vs. In game time argument. Have not watched the videos yet. (Waiting till I actually lay the game.) But eagerly looking forward to eventually seeing it.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
@Cruizer Awesome! My biggest fear has been that the movie file wouldn't sync correctly for anyone else. Obviously it did since you were able to see it almost two days ago lol. But it's good to know it worked from the get go. Now I just wonder why it won't sync the first time it's played on my end xD. @Paused That's great information to know and the last thing I'd want is my run to be rejected for having an incorrect goal. So far reducing lag has also gone hand-in-hand with speed. Big edit I've learned something in the process. Jumping is the only thing effected by dropped input frames and extra input frames. Boosting, Directional Input, Sliding and Spinball will always come out and/or stay out. I'm not sure why jumping is the only thing effected, but I'm glad that it's the only one. In a perfect world, there wouldn't be any dropped or extra inputs in the game. Dropped Jump inputs are usually proceeded by extra jump inputs. Extra input gives less than top speed due to landing 12 frames after the first input rather than 10. The shorter the time in the air the more speed is gained. This is the reason why enemies give such a great speed boost. The hitstun moves sonic down so that the backwards airdash is only out for two frames before hitting the ground. The boatload of rings part is actually optimized, which is bittersweet. The 3 or 4 frame optimization forces a higher arc when jumping from the rail. Delaying it to be 1 or 2 has a dropped input proceeded by an extra input. This makes it 2-3 frames slower due to the loss in speed from a normal backwards airdash from the extended time in the air (12 frames), and reaching the optimal point in the rail at frames 9302 and 9303. On the brightside, I learned more about lag and there are no desyncs to be fixed (one of which would definitely be that damn balloon part again). Finally working on SM2 again :D. 1/16/11 SkyL is coming really close to beating my time on TR2. There's only a 28 ms difference and I'm sure it'll be beaten by the time this run is submitted. Now that once-thought optimization is really looking good :( Almost finished with SM2. I was hoping there was a possibility of skipping the robot tossing sequence at the end of the level by using the fire wisp to touch the hotdog. No such luck, but luckily I didn't plan around it as it's a lengthy process attaining a fire wisp to use for that in-specific. So my hopes of finishing sub 1-minute are dashed. Not exactly sure what time I'm looking to finish the level at now since I'm about 80% through the level. 1/17/11 Update: 1 Finished with a time of 1:16:87 which is 25.48 faster than the current human wr by none other than Cruizer :D. I've tacked on about 3k more rerecords since my last WIP which had SM2 1/3rd of the way finished already. The spacious portions account for the majority of those 3k due to there being so many different options to test and many different methods to each options. I'll be taking on Captain Jelly and will hopefully have him finished by bed/morning (super messed up sleep schedule xD). New semester starts on the 21st, so it's going to slow this TAS down. That doesn't mean it's going to die though, for I've put way too much time (whole winter break from college LOL) to let it go to waste. I'm shooting for Mid-March or Early April to have it finished. I can't believe I originally thought I could complete this run, start to finish, before the semester started. Update 2: Figured I'd give some input on why I'm using the Euro version rather than the USA version. First off, it's was quicker to get into the game with the Euro version than it is with the USA version. When I'm getting ready to submit my run, I'll figure out the exact frame difference. Secondly and more importantly, there are far more extra input and dropped input frames. It's really only noticeable from a tool-assisting stand-point since the game corrects dropped jump inputs the very next frame by jumping which is nearly impossible to detect in real time. However from a TAS stand it makes some jumps impossible due to being random at times and overall much harder to optimize. Same argument for extra jump inputs. Hypothetical third point. The Euro version auto-detects the region and can change the language between English, Spanish, French, Italian, and German. In theory it would be nice for someone who doesn't know English very well to be able to switch to their language. It would be limited in it's usefulness due to there being limited text in the game (Restarting, menus, very brief tails dialouge, touch a wisp) However it's a hypothetical since I haven't gotten around to testing these languages for desyncs. I'll cross my fingers and test it after Captain Jelly. 1/18/11 Running out of ideas to make Captain Jelly fight entertaining during the waiting time. So I decided to watch some other TASes for generic ideas to copy, but nothing really applies. I'm going to watch some Sonic TASes and call it a night (well, morning) and that'll be that.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
Update: 1 Finished with a time of 1:16:87 which is 25.48 faster than the current human wr by none other than Cruizer :D.
Well actually ,i have 1'38"69 now, and there are people on the online leadboards ahead of me, including a reputable TAer called NG3661. He has 1'32, so i still have a way to go :P.
VanillaCoke wrote:
1/18/11 Running out of ideas to make Captain Jelly fight entertaining during the waiting time. So I decided to watch some other TASes for generic ideas to copy, but nothing really applies. I'm going to watch some Sonic TASes and call it a night (well, morning) and that'll be that.
The rapid stomping would be awesome if you could :P
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Rapid stomping is a given :P, it's the fastest way to rack up damage. Finished the fight unoptimized 0:13:59. Need to optimize the Rapid Stomps and I realize that Homing attack or jumping on the first underling can be used to knock the second underling into Captain Jelly much faster than I did in my original plan. Edit Way too optimistic about that strategy using the first underling to knock the second into Captain Jelly. Looking at sub 13. Yep, 0:12:57 I believe Globotron could possibly optimized by a frame (1-2ms) due to a workaround I discovered in lag with Captain Jelly. During the Boost Jump Stomps (BJs looooool), there will be boss specific dropped input lag. Jump input will always be recognized, but the stomp input will be dropped the next frame (can't airdash either). Here's an example: Frame 1: Y+B Frame 2: Down+B The BJ comes out, but the stomp input gets dropped. So the next best thing I believed was Frame 1: Wait Frame 2: Y+B Frame 3: Down+B A lot of these dropped stomp inputs were happening after the background starts to tint/flash red. I decided to experiment and found out a new method. Frame 1: Y+B Frame 2: Y Frame 3: Down+B I did extensive testing during the Cap. Jelly fight and sometimes I'd get the same results as if the regular method had worked. Sometimes it was the same as Method 2 and even worse it sometimes delay being able to boost during the next set of BJS. Out of the last 5 BJS that were laggy, it was the best choice 3 times for it allowed a BJ 1 frame sooner than Method 2. I found a neat but worthless glitch during the fight. If Sonic approaches one of the underlings after it's grounded, while going max speed and attempts to turn around, he'll get forced under the bridge/level after the two invincibility frames and either die or fall until the game freezes. I do something similar to the glitch in my WIP, but I drop below max speed before I touch the underling. ================================= I tested the one lag BJS for the Globotron fight and it indeed be finished 1 frame (which equals to 2ms that specific frame) faster. I tried splicing the optimization with the rest of the movie and it desyncs before SM1 even starts. Between SM1, SM2 and Cap'n Jelly, I estimate it'd take me at least a week to correct all the desyncs. The Semester starts on the 21st, so I'll probably be pushing this back to weekends during my spare time. I'm shooting for SC1 to be finished before then and I'll post my WIP when it is. 1/20/11 The Captain Jelly fight looks really awesome. It flows a lot better after the BJS since there's not a drastic wait between the kill hit like with Globotron. The site I was using for maps for each level finally updated. Long story short, I had to combine the levels myself (TR2, SM1 and SM2), and took about 2 hours before. Now the rest of the level maps are combined :D. I decided that I'm going to do a 100% run during the summer. All because I found out a really cool looking method of movement in the special stages. Alternating left and right every other frame gives and illusion of two Sonics (which is enhanced greatly by the after-images of Sonic). Due to YouTube not playing back at a full 60fps, it would probably look even better. There doesn't appear to be any tricks/glitches (like with Red Burst) with Orange Rocket. It's both a curse and a blessing. Optimizing Burst sections sucked, but also allowed inhuman angles and distances. I'll try messing around with it some more. Going for the Rocket is worth it at the beginning of SC1 in order to take the laser shortcut. Although I'm going to have a hell of a time making up those four seconds wasted to attain it, and more time wasted building up speed to the slope for the laser shortcut, and still beat SkyL's time. At the end of SM2, I learned a cool trick that applies to curves in railing, but I learned more about it from AC1. Holding back and jumping gives sonic a higher than max aerial speed which is also faster than grinding. It works on incline/decline rails too, but only certain ones. Anyways, the speed stays constant for a decent amount of time (1 1/2 to 2 seconds) then it begins to drop. Boost makes the speed drop a lot faster, so it's better without it. I hypothesize it's because Boost allows better aerial maneuverability. 1/21/11 I don't believe I'm going to beat SkyL's time for SC1 due to the lack of having Laser available. I'm going to try though :P When Sonic's speed is 193 or higher, he can't turn around by holding backwards and pressing Y. Came across this shortcut I want to use and it requires turning around instantly. Here's my latest WIP that ends in the middle of SC1. http://dehacked.2y.net/microstorage.php/info/8140392/Sonic%20Colors%204.dsm I like how SC1 gives the optical illusion of being faster than it really is due to all the boosting on rails. Boosting does absolutely nothing past a certain speed (I wanna say starting at 195 and onward), but it sure as hell looks cool. ============== =Random Run Stuff= ============== Highest speed I've hit in the general run is 706 for a frame while jumping from the top left part of a loop (multiple times). 260 on a rail and in the air due to the backwards jump glitch, 240 on foot (which is the cap for land speed). I'm not sure if the rail speed goes above 260 due to there not being a long enough straight rail to accelerate past 260 (which I've only hit 260 once). While X and Y addresses have been insanely useful, they go out on the fritz a lot. Whenever there is lag, the current values drop to 1 or 0. Kind of nifty that they double as lag addresses, but also frustrating at times. Sliding down certain slopes accelerates Sonic to 240 when it's otherwise impossible under normal conditions (240 speed requires either a spring, and enemy or a platform above Sonic). However it's only useful when there is either a loop or the slope is fairly long (enough that Sonic can stop sliding the same frame as being on level ground) 1/23/11 Took the day off yesterday. Anyways, I'm almost finished with SC1. Final time is 1:08:99. If it weren't for some clever route-planning, it would have taken a lot longer.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Finally figured out how the backwards jump works. There may be some different routes that could be taken to improve this run, but I've already put in over a month's work. Maybe over the summer I'll try and obsolete this run. However I'm going to finish what I've already got and make good use of this knowledge from here on out. It requires using one of the boost pads (classic sonic object that instantly sets Sonic to a fixed speed if he is below that speed prior to hitting it). After hitting one of the pads, for some duration (not sure of the exact time frame) Sonic is able to carry over his current speed into the air by holding backwards and then jumping. This can be used in real-time and is not a TAS-only technique (Go get'em Cruizer :D). This is useful because jumping normally has air resistance and drops sonic to a much slower speed (I don't have the address for air speed, only ground and rail). I believe it drops it down to 190, which is the normal boost (boost ability, not boost pad) speed. So if Sonic has 275 speed on a railing and has recently hit a boost pad, then Sonic can hold backwards, then jump, and still go 275 speed in the air. Although I don't have the address for air speed, the results in the X coordinate address shows that it's the same (When tested from 240 speed on the ground compared to the air). Since the engine is almost exactly the same as in Sonic Rush and Rush Adventure, I believe this would also work in them.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
Yes, I'm already using that trick in Sonic Rush and I believe so are some of the speedrunners. It's actually not limited to boosters, it's something you should take into account almost everywhere in a TAS (and it applies to all 3 games), and it's a logical consequence of how the engine works if you understand it well enough and you know what boosters really do... uh, this is something I know way too much about, and it makes properly TASing Sonic Rush games more complicated than you would expect, so let me write a little essay here (even if you might know some of this already) and maybe this will make more sense: First of all, if you're seeing speed values like 275, you're not watching the right values. You should see something more like 49152 at normal boost speed. Assuming these aren't dynamically allocated addresses, Sonic's speed is at 0219B30C, his X velocity is at 0219B300, and his Y velocity is at 0219B304. They're 4-byte signed values. (In Sonic Rush these values are elsewhere and are smaller by some factor but otherwise behave in the same way.) To make sense of what's going on, you'll need to pay attention to both speed and (mainly x) velocity... it might seem like they are basically the same thing, but the game treats them quite differently, and another way of labeling them is "potential speed" and "actual velocity". When you're on the ground, they are tied together directly and act as you would expect. (But keep in mind that what I call the "speed" can be negative to indicate leftward motion, so while you're on the ground it's actually (sqrt(xvelocity^2 + yvelocity^2) * sign(xvelocity)).) When you jump, the velocity and speed values continue updating, but the speed value now updates in a weird way (though the speed value has no observable effect while you're in the air, only the velocity values do, so you can't notice how weird this is normally): What the speed value does in the air is, it doesn't change at all if you're holding forward (left/right), it decays toward 0 if you're not holding forward (it decays at the same rate as your velocity normally would, even if some external force is holding your actual velocity steady), and if you're holding backward it decays towards 0 even faster (but not as fast as your actual velocity normally changes in this case). Also, the velocity value gets a modification, it's not quite as weird but it's the whole reason the trick works: When you're in the air, if you are not holding backwards, and if the x velocity value exceeds +/- 40960, it gets capped to +/- 40960. So you can avoid the cap by holding backwards, but the speed and velocity values still decay toward 0 when you do that (if you keep holding it, the velocity will decay down to +/- 40960 anyway in only a few frames and then later cross 0 when you fully reverse directions, and then the speed will hit 0 a few frames after that and stay locked at 0). Oh, and if you're boosting in the air then the velocity can still get capped if you're not holding backwards, but it uses 49152 as the cap instead of 40960 in that case. If you hit an obstruction while in the air, both speed and X velocity get cleared to 0, and hitting various level object probably messes with them too, but besides that they stay independent from each other while you're in the air. One more piece of information about how the speed and velocity values interact is what happens when you land. You can probably guess from the above that those two values get easily out of sync from each other while you're in the air (even the sign of the two values can become different), but they are always the same when you're on the ground, so the game has to do something to combine them back into effectively one value when you hit the ground. What it does is it chooses the larger (in magnitude) of the two values and makes that your new speed and velocity. (I left out some unimportant details of slope calculations, but that's the gist of it.) This explains why sometimes you can start running at full speed the instant you hit the ground even if you were barely moving in the air: when that happens, it means your velocity value is low but your speed value is much higher, so the (hidden while in the air) speed value suddenly takes over when you land and you magically "hit the ground running". I believe that this (and most of the above weirdness) is a deliberate quality of the Sonic Rush engine that exists for the purpose of fixing the problem seen in earlier Sonic games where you grind to a halt if you "hit the ground at a bad angle". So what do boosters have to do with this? Well, I think you said as much already, but after hitting a booster, your inair velocity update is temporarily modified such that letting go of the d-pad doesn't cause you to slow down at all, and holding backwards does still make you slow down but with a drastically reduced deceleration rate (I'm not sure whether this is a bug or an intentional feature that it applies in the air). Thus, after hitting a booster, you can hold backwards for a long time without losing much of your velocity, whereas without a booster your deceleration is much faster so you can only hold backwards for a few frames before dropping below the speed cap (unless you are going really ridiculously fast, as is possible in Sonic Rush). What this means is that it's often good to jump and hold backwards after hitting a booster, and even after a regular airdash or when jumping on a regular downslope without a booster, you can get ahead a little by holding backwards for a few frames and then holding forwards as soon as the velocity is about to drop below the cap. But, you have to keep in mind that this is almost always a trade-off, due to the "speed" value behavior I described above: When you hold backwards to exceed the inair velocity cap, the speed value is still decreasing at a normal rate, which means you are gaining (short term) speed in the air but you are quickly losing (long term) potential speed that you could otherwise get the next time you hit the ground. So you have to constantly balance those two things if you want to be as fast as possible overall.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
I can't believe that THE nitsuja is helping me out with explanations ^_^. I've been a fan of your's for a long time and I wouldn't be TASing if it weren't for your amazing runs. Anyways, enough idolizing, I don't wanna seem like a creep lmao. My speed address that I've been using for speed is 0219B2ED (Different from using Colours instead of Colors). I previously used 0219B2EC and that does show 49152 when boosting. Here are some comparisons between the addresses 0219B2EC: 0 (Stopped), 49152 (Boost), 59776 (Backwards Airdash), 61440 (Top ground speed) 0219B2ED: 0 (Stopped), 192 (Boost), 233 (Backwards Airdash), 240 (Top Ground speed) The addy ending at EC is 4 byte signed, while the ED is 2 byte signed. The value in the EC ending address can always be divided by 256 and will equal the value in the ED ending address (yes, both positive and negative). The ED address is a lot easier to keep track of imo. Odds are really good it would be at 0219B30D in the U version. You've explained more than what I've learned over the course of my run, but would have a really hard time wording it half as well as you have. However I'd like to add that holding backwards during any jump is beneficial before considering landing speed (speed upon landing). Although it's not held nearly as long as when doing a boost pad jump, it's held between 10-19 frames depending on speed, slopes and x-position (upon landing). This is due to there being mid-air boosting. The results are better for squeezing out the extra speed in the air, then doing a boost -> backwards airdash right before hitting the ground. There's a difference between jumping lower and jumping higher. When jumping to something higher, Sonic can land with 238 speed when positioning correctly for a 3 frame backwards airdash (Frame 1: Boost, 2: Forward + B, Frame 3: Hold back). Landing lower is a little more "random" since there are always height differences, but the lowest speed hit is 233 (rarely, 235 is the usual, and sometimes 238 is hit). I really appreciate your explanations of the science behind how landing speed works (rather than my old "state 7 is the best due to x-position"). You give great explanations that are easy to understand. If you would, take a look at my WIP and tell me what you think so far? You don't have to examine it super-thoroughly, just give it a general looking-at :P. Remember, it's the Euro version. http://dehacked.2y.net/microstorage.php/info/1095230417/Sonic%20Colors%203.dsm
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
The only problem with using that 2-byte value is a lack of precision. It's not that important, but I've found it useful for various reasons to have exactly (or at least almost) as much precision available as the game really has internally, although I usually scale it to something more convenient to look at. On the European version, 0219B2E0 is X velocity (which is what you should usually be maximizing, of course), 0219B2EC is the speed, and 0219B264 is the X position (all of which are 4-byte values). I watched your WIP and... well, the gradient of being slow near the start of the run and faster later on is pretty noticeable to me, but I'm not familiar enough with the game to suggest route changes or new strategies that you're not already doing near the end of what you had recorded. I guess you're not using any Lua scripts? They tend to help more than you would expect. I can probably get my Sonic Rush scripts to work for this game easily enough, since all I need to do is find where a few memory addresses have moved to.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
That would be amazingly helpful if you could [convert the lua script to colours]. I have no idea how to manage my way around making a lua script, and the picture for the script you made in rush adventure always interested me. I tried to edit it, but I have no idea how to do so. As far as the beginning of the movie being slower, I agree. I figured it was because I've seen the first levels played 100x times, and the later levels less. But thinking about it they could probably be improved by a lot with all the experience I have now. Especially the first act lol. I really appreciate all your help and insight. Thank you very much :D.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
After hitting one of the pads, for some duration (not sure of the exact time frame) Sonic is able to carry over his current speed into the air by holding backwards and then jumping. This can be used in real-time and is not a TAS-only technique (Go get'em Cruizer :D).
I know about this, it's just difficult to find proper places to use it.
nitsuja wrote:
but I'm not familiar enough with the game to suggest route changes or new strategies that you're not already doing near the end of what you had recorded.
If it is any help at all, there are preliminary maps i have put together. I'm still working on objects for now, so sooner or later they'll be finished. I ended up watching the new WIP, and holy crap that was fun to watch. I am very impressed :P SM2 was particularly entertaining, I saw my exact route being used, but perfectly. Brilliant. Captain Jelly was very impressive, i can see you have no need for wisps, yet :P SC1 was pretty. I was confused when you went for the rocket at the start, but later on, i could see why. No lazer :P Also just to save you some extra time in testing, the whale at the end of SC2 can be skipped. You just need to boost right the earliest you can without hitting that wall. From there, it's just simple jumping and boosting. I can't wait to see sub 1-minute :P
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
That's awesome to know [about the whale]. I knew there had to be something, but I didn't know what exactly. If nitsuja revises the script to work for colours, I'm most likely going to start the run over. It shouldn't take nearly as long to reach the point I'm at since I'll have my WIP as a loose-guide for each level. I can improve on Globotron too :D. And I didn't know you were the one who made those maps o.o That was the site I've been using for maps, but I had to combine two pics per stage a week or so ago. Now they're all combined :D.
Joined: 10/11/2009
Posts: 52
Location: Sydney, Australia
VanillaCoke wrote:
That's awesome to know [about the whale]. I knew there had to be something, but I didn't know what exactly.
Yeah, it's a similar thing to one used in Mirage Road in Sonic Rush. You should be able to sub 60 seconds :P
VanillaCoke wrote:
If nitsuja revises the script to work for colours, I'm most likely going to start the run over. It shouldn't take nearly as long to reach the point I'm at since I'll have my WIP as a loose-guide for each level. I can improve on Globotron too :D.
How the heck do you plan on improving Globotron? It seems perfectly timed to me.
VanillaCoke wrote:
And I didn't know you were the one who made those maps o.o That was the site I've been using for maps, but I had to combine two pics per stage a week or so ago. Now they're all combined :D.
Yep, that website is mine :P As i don't have my laptop on me, i wasn't able to combine them, so i had to wait for a friend to do it for me. I still have to work on getting relevant data so script can be made to add objects, and later on rings.
Active player (462)
Joined: 12/24/2010
Posts: 297
Location: CT, USA
Globotron can be improved by a trick I learned during the Captain Jelly fight. It compensates for dropped input frames and was faster in testing (but wasn't included in the WIP due to the desyncs that it would have caused). There won't be any difference visually, since it's working around lag, other than the time being finished faster.
1 2
6 7