Yeah I've been looking over the Special Stages myself.
Stage 1 probably has no improvements, it is a simple enough stage.
Stage 2 has the slight improvement I illustrated in my previous post. Possibly more based on planning trips over the dividing areas designated by the red spheres
The stage with six sets of 9 + 4 individual blue spheres certainly has room for improvement, I think. Again, it follows the same principle as the second stage improvement - going over all the spheres in the block rather than just tracing the outside, which as shown can be slightly slower. Avoiding rings for the count up may be good for reducing the count-up time, but it comes at the cost of saving overall more time in the actual special stages themselves.
Stage 7 could be improved by continuing to run backwards into the last set of blue spheres at the end of the level rather than turning around.
There are probably similar improvements based on these observations in the other special stages. This is only coming from a casual observation and I've not really studied close enough an improved route for any of the stages, minus the minor improvement to the end of SS 2 I discussed.
Like I've said, the improvement you proposed is actually slower. (slightly faster at speed level 1, but slower at faster speeds)
Not sure about the others, haven't really looked into them.
Edit:
I guess the routes were copied from [URL=http://tasvideos.org/1378S.html]here[/URL].So, I guess improving on them would be quite hard if it's even possible.
Try watching some S3&K movies with this script. It attempts to detect and eliminate "boring things", such as special stages and zipping and super music...
(But don't run it at the same time as that other ghost script I posted earlier. I think there's some bug in Gens I didn't know about until now that causes huge obvious desyncs if those two scripts are both active.)
Using the sample scripts as models (as well as the script from this thread), I made a Sonic HUD lua script that has loads of relevant and interesting data; here is an example of it in action:
The "status icons" between the score/ring/emeralds HUD and Tails' HUD only show for the relevant condition: in this case, a spindash being charged (displaying charge, at 100%), speed shoes (remaining frames), super transformation (remaining frames) and Tails remaining flight time (in frames). Invulnerability time, invincibility time (after being hit, for both players) and Tails' spindash charge are also displayed. The HUDs are only shown in "non-boring" more (using the same definition that Nitsuja used in his script) and Tails (and his status icons) only appear in Sonic + Tails mode (his status icons do if you are playing as Tails).
I used the GDlua library to convert several PNGs to the Lua format; the resulting images (which I saved with a "luaimg" extension) must be used alongside the script (and they total 50kB, or 10kB in 7z format). Using this format, GDlua is not needed at all for using the script; but there is the problem or distributing the images. Does anyone know a good place to upload lua-style images? ImageShack doesn't accept them.
For what is worth, the HUD script is here; it will not work without the images, though.
Thanks. Here is a 7z-package containing the script and luaimg files. It is intended to be extracted directly into the Gens directory: this should create a "lua" directory with the script in it and a "lua/img" directory filled with "*.luaimg" files. I updated the Pastebin version to point to the same location too (previously, it looked for the "*.luaimg" files in a "luaimg" subdirectory of the Gens directory).
Edit: I have updated the script to be accurate down to the frame for speed shoes, invincibility and flight countdowns. The updated version is here (Pastebin, script only) and here (Mediafire, script and images). I updated the link above too.
(edit 2: and I fixed the last uploads to actually work)
WIP until end of IceCap 1. Supersonic can go no further with the snowboard at the start, so I ditch it: having the snowboard makes all jumps very low, but give high horizontal speed just by touching the ground.
By the end (around 1:06), climbing the slope to the right (as Super Knuckles does in Upthorn's run) would have left me without the swing I use in 1:12; spindashing all the way to the right and back gives it back, but it is slower than the WIP (by about 105 frames). Likewise, glitching into Knuckles' route and fighting Knuckles' boss is 130 frames slower (despite the fact that the higher ground makes killing the boss faster).
WIP until end of IceCap 2. I am not happy about this one, but I don't think there is much to be done here. I tried to pick the 3 ring monitors after the act 1 boss, but all attempts failed to get the third monitor out of the ground. It might save some time, but not enough. The lack of lightning shield hurts my start, but it hurts even more at 0:22-0:25: it seems to be impossible for Supersonic to reach the ledge (at least it defied all my tries), and the bottom route is slower. Reaching that ledge would net me at least 3 seconds, possibly 4 or 5; as is, I am 1:45 slower than Sprintgod's run. I don't think that getting the lightning shield back in act 1 is worth it, and it will definitely make Supersonic more likely to show up in act 2.
It is nice to see it in real-time and without all the junk that makes it easier to TAS. But maybe having a dividing line of some sort between the two screens would make it easier in the eyes, though; it is hard to see where one screen ends and the other begins in some points.
Indeed, unfortunately I go for simple free tools to keep quality at it's best, so I don't sadly have that option. It was put together using VirtualDub. I must admit when I watched it myself I found it a touch confusing. If you don't mind when you have another large segment like that I'll try different recording techniques, see if I can get a natural gap between the 2 videos from GENS itself.
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =)
(ノಥ益ಥ)ノ
you have to get the ring monitors in a certain order which changes each time you beat the boss. couldn't you do the boss skip or would knux route in IC2 be too much slower?
Knuckles route is quite slower -- for Sonic or Supersonic at least, but Hypersonic would do very well (as might Sonic with a bubble shield, but this is more doubtful). Take the purple launcher I use at around 0:08: I have to take at the very least 3 of them in the bottom route, and it costs time (see this map, by Upthorn).
I need to hit it from above with a certain minimum vertical speed in order to propel up enough to reach the higher ground; Knuckles' glide makes that more effective (as would Hypersonic's hyperlaunch, and so might a bubble bounce). After that, a properly timed jump is invariably better than letting the thing launch me. But it costs a lot of time, and this is time spent moving only vertically. Properly optimized, I estimate that this route is, at best, 1 or 2 seconds slower than the current WIP.
And for what is worth, I was vastly overestimating the effects of reaching the ledge: I made a try with Hypersonic, using the Hyperlaunch to reach the ledge. It "only" saves about 2 seconds.
FuzZerd wrote:
New WIP up to IceCap 2. Earlier Supersonic + better optimizations along the way mean a full second faster than the previous WIP, at the expense of more time after the act 1 boss to get all 3 monitors. It is still 45 frames slower than SprintGod's run, though.
It is still 45 frames slower than SprintGod's run, though.
Is this including the time spent in special stages?
Sorry, I was unclear: this is comparing the in-game time in IceCap 2 only (the timer stops at 0:41:06 in SprintGod's run, 0:41:51 in my last WIP). If time in special stages is included, I am several minutes slower (the last hit on the boss of IceCap 2 happens in frame 77887 in my run, and in frame 52171 in SprintGod's run; that's a difference of 7:08::36).
if I'm not mistaken you can skip knuckles boss by spindashing from the right position. I doubt it would save enough time to be worth it, but you could start icecap2 with super sonic that way.
A quick question (probably for Upthorn): how does the Gens maphack work (SONICMAPHACK from hackdefs.h)? I ask because I assume that several maps from the Sonic Center were made by Upthorn with it, but there are several maps still that are not (Launch Base 1 & 2, Flying Battery 1 & 2, Sandopolis 1, Lava Reef 1 & 2, Hidden Palace, Sky Sanctuary and Death Egg 1 & 2), being Stealth's version (which do not have rings and big rings, being less useful for Super/Hyper Sonic planning). I also threw Hidden Palace in the mix just to be complete, it actually makes no real difference in this case.
(by the way: in the latest SVN, defining SONICMAPHACK causes a compilation error unless I include the "io.h" file, say at line 1694 of SonicHackSuite.cpp)
A quick question (probably for Upthorn): how does the Gens maphack work (SONICMAPHACK from hackdefs.h)? I ask because I assume that several maps from the Sonic Center were made by Upthorn with it, but there are several maps still that are not...
It's kind of awkward to use. Not so much because the of the hack, but because of how finicky the game is about camera scrolling, and how incredibly many moving objects there are in levels.
And, in S3K, the scrolling code is entirely level specific, so the cap on how many pixels the camera can move per frame (which currently requires recompilation to modify), can vary significantly from one zone to the next.
So, with all this in mind:
in sonichacksuite, set the #define for SCROLLSPEED to how many pixels you want the camera to move per frame, and POWEROFTWO to the scale factor.
POWEROFTWO at 0 makes a 1:1 map, at 1 it makes a 1:2 map, etc.
once you've got it compiled, use the following keys to control it:
Scroll Lock: toggles maphack on and off, and has the opposite effect on camhack so that (maphack and camhack will never be active simultaneously).
I: moves the camera up half a screen.
J: moves the camera left half a screen.
K: moves the camera down half a screen.
L: moves the camera right half a screen.
,: teleports sonic to the center of the screen.
.: scrolls the camera to center on sonic.
S: takes a manual screenshot to the map.
B: dumps the map to mapcap.bmp
Caps Lock: toggles automatic screenshots after every time the screen is scrolled.
Because certain events can be triggered by the camera position, and the game can be very uncooperative with forced-backwards scrolling, I suggest the following procedure:
Go to level select
Enable the maphack
Hold J for several seconds, then hold I for a similar amount of time
Make a save state in slot 9
Enter the desired level (maphack should still be active)
When the level is finished loading, make a save state in slot 0 (the camera should be all the way at the left edge of the level, and a half-screen above the top)
Turn on caps-lock
Hold L until the scenery starts to repeat
Wait for the camera to stop moving
pause
load last state
hit K once
Wait for the camera to stop moving
save state 1
Repeat from step 8 until you have scanned the bottom of the level
load state 0
hold K until the screen stops moving down
press B
scroll the screen once in any direction. The game should pause and the sound should become choppy for several seconds while it dumps the map.
turn off caps-lock
Load state 0
review the map
manually deal with any situations that it did not capture well. (like bosses)
press B
scroll the screen once in any direction. The game should pause and the sound should become choppy for several seconds while it updates the map.
repeat from step 21 until the map satisfies your needs.
close the emulator to free memory
open the map in your preferred image manipulation program (I use paint.net)
crop to the level boundaries and save as png
Once you get a good rhythm, it should take around 45-90 minutes per act.
How fleeting are all human passions compared with the massive continuity of ducks.
Does numlock have any special effects? I am finding that I can't scroll the screen if numlock and capslock are both on, but capslock on and numlock off scrolls automatically (including "correcting" any initial downward scrolls with k) scanning the level from left to right, top to bottom. Moreover, this automatic mode end up resetting the game partway through Launch Base 1 (even if I force Sonic to remain in the center of the screen).
Does numlock have any special effects? I am finding that I can't scroll the screen if numlock and capslock are both on, but capslock on and numlock off scrolls automatically (including "correcting" any initial downward scrolls with k) scanning the level from left to right, top to bottom. Moreover, this automatic mode end up resetting the game partway through Launch Base 1 (even if I force Sonic to remain in the center of the screen).
Err, yeah, numlock disables it all for some reason (it was like that when nitsuja first made it).
I didn't think I'd commited the capslock -> autoscroll changes to the svn...
It will stop doing that and let you scroll manually once it's done a complete sweep, and the game resetting doesn't make it lose its place, but loading a savestate before it finishes will, so just fastforward for a while once that happens. I think you should be able to keep track of the camera position by watching FFEE00 and FFEE04.
How fleeting are all human passions compared with the massive continuity of ducks.