Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Glitch; in a nutshell, the trigger to load the bubble graphics is skipped. It is similar to S1/S2 when you do a level wrap and the signpost ends up all garbled.
This actually shows poor coding of this level -- Sonic CD has an interesting system for loading graphics automatically based on camera position (not present in any of the other Genesis Sonic games); had they used it here, the graphics would not been garbled. But alas, they used similar means to what S1/S2 use in this case...
That is because everyone agrees: US Metallic Madness, Sonic Boom at opening and ending, JP for everything else.
/me runs
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Uhhh... there is one level wrap that wasn't present in the previous version, that of Palmtree Panic 2; there are no new level wraps that aren't either slower or don't let you complete the level. Does one more level wrap really make the run less entertaining? Or are you misremembering the previous run as having no level wraps?
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
If you have the movie open in read-only mode in Gens, you can alt-tab to TASEditor to edit the movie, edit, save, alt-tab back to Gens and load a savestate before the edited frame. Gens will reload the movie automagically, and play it with the changes you made. It even works with Gens on Wine and TASEditor in a VM.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Easier said than done; I did try making a temp encode like that when I submitted the movie. Upload ETA was 3 weeks per movie (my upload speed is not that great, I know...). Encoding improves that, as the file size goes down; but with my (limited) experience in uploading Sonic videos to youtube, sending a video without resizing (at least 2x) will result in a blurry mess because youtube thinks that low resolution = low quality.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I actually have been thinking/planning how a 100% run might go. The issue is defining exactly what would constitute a 100% run. These are the possible goals in the game:
Destroying the machine in the past;
collecting all time stones;
destroying the Metal Sonic hologram (optional).
Destroying the hologram is possible in all levels except Metallic Madness (which doesn't have them); destroying them makes no difference in the ending, but it does make animals come back to the game in present and future (which are unlikely to be revisited after going to the past to destroy them).
Destroying the machines becomes unnecessary once you have all time stones (you automatically get good futures), so either the last time stone should be collected as late as possible for a more unique run (and much longer), or as early as possible, in which case half the game would remain the same.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I have been updating this run, and I have a question.
In Quartz Quadrant 1, I can use time travel to go to the future, enabling a route that is 2 seconds faster in in-game time than not time traveling (but about 500 frames slower in real time). The existing TASes both avoid time traveling, and it would be the only level in the run to exploit it.
I have been leaning towards not time traveling and sucking up to the slower route, but I would welcome some more opinions.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
As Anty-Lemon says, asking me would be the best bet: I know all the movies very well (having made many of them, and studied those I did not make to learn) and I know the game inside out (to the point of knowing how all the glitches work at the assembly level and knowing how to fix most of them with a handful of ASM instructions).
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Zeupar asked me to post here about S3&K, so here it goes:
Movement Tricks: The elemental shields give different abilities that can be abused in different ways (glitching into terrain, for example). For the newgame+, turning Hyper gives yet more juicy abilities, as well as changing jump strength. Tails can carry Sonic, with various consequences. Slope jumping to get crazy speeds. Spindash followed by jumping to hit a ceiling, to avoid losing speed due to rolling deceleration or air drag. Spindashing off ledges to avoid rolling deceleration. Spindashing by alternating button presses, allowing full rev in 6 frames.
Efficient Combat: Frame-perfect boss fights whenever possible by staying as close as possible, even using Tails to help hit the boss offscreen when useful. Skips bosses in MGZ1, ICZ1, LBZ2, FBZ2, LRZ2 and SSZ x2 (can't get more efficient than that :-p). SOZ2 boss forces hitbox back on when Egg Golem opens, so delaying a hit by a couple frames before it closes can save almost 30 frames on a "double hit" when it opens. Knuckles in HPZ is hit several times in sequence by ignoring his invulnerability period since it is reset by Tails.
Luck Manipulation: newgame+ manipulates balloons in CNZ2 and Red Eye (DEZ1 boss); both manipulate Death Ball (DEZ2 boss). In newgame+, this also ends up manipulating the DDZ mid-boss. The SSZ boss generally needs to be luck-manipulated, but this wasn't needed in the current runs because the most favorable pattern happened anyway.
A.I. Abuse: Knuckles' AI programming is abused in HPZ to get him stuck with Tails, allowing hits on sequential frames. Red Eye (DEZ1 boss) is manipulated in the any% run so its spiked platforms are never an issue.
Damage Boosting: ICZ has a damage boost in any% run to land on an ice block without destroying it, so slope glitch can be acquired when Tails destroys it. LBZ1 and LRZ1 take damage so that spiked crushers can be used to push Sonic into the ground for zips.
Death Abuse: HCZ1->HCZ2, LBZ1->LBZ2 and DEZ1->DEZ2 transitions all feature deaths to reset level boundaries and enable level wrapping, as well as skipping/speeding up the act transitions. LBZ1->LBZ2 also skips a score tally.
Going Out of Bounds/skipping triggers: Level wraps and vertical screen wrapping. MGZ goes into the loopback, which is past the right edge of the level, to fight the act 2 boss in act 1. FBZ2 goes under the end of level to trigger rising platform from below. Skips cut-scenes in AIZ2 (transition), HCZ2 (Knuckles), CNZ2 (first appearance of Knuckles, level going dark), LBZ2 (Knuckles), MHZ2 (Knuckles cut-scene and part of the level happen during score tally), LRZ2 (skips Knuckles, boss), SSZ (skips teleport sequences due to fighting mid-bosses). The newgame+ run also skips the round tree in AIZ1, the snowfall in ICZ after the snowboarding section, the ghost capsule in SOZ2 and the engine room in DEZ1.
Abusing Faulty Game Logic: Zips. Level wrapping. Vertical screen wrapping. Stair clip (say, Tails dropping Sonic on a wall). Solid objects don't register collisions while off-screen. You can't be crushed by a solid object if your vertical speed is nonzero. Objects can push you into terrain, allowing zips. Control of object placement in RAM to either break cut-scenes (AIZ2) or enable a fast death (HCZ1->HCZ2 transition). Using spindash camera lock mechanism to go through objects and to control camera position for more efficient level wraps. Using flame shield dash/Hyper Sonic's hyper dash (in newgame+) camera lock mechanism to fine-tune camera movement for level wraps in a manner impossible without them. And many others.
Pausing related tricks: If the luck manipulation counts (it is done through pauses), then yes; otherwise, no.
Zone-hopping: MGZ skips act 2 (it is never loaded). ICZ technically skips act 2 (it is loaded, but you are still on act 1 and you level wrap less than half a second into it). LRZ2 skips the boss, which is technically on a separate zone in the game's internal logic.
Overlapping Events: Object placement manipulation in AIZ2 has a switch being loaded and pressed in the same frame as it mistakes itself for Knuckles. HPZ has two cut-scenes running at once (and both of them broken) while inside the wall after the Knuckles fight, so that level transition occurs in the middle of one of them (which will actually never finish, as it is broken).
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Are you really giving such a definitive opinion on the run without watching? Are you really going to disregard years of work on my part as well question as the competence of the judges and publishers of TASVideos in the process?
That is rude. Very rude.
Anyway, here is a difference table compared to the any% run:
Act
newgame+
any%
difference
Angel Island 1
0:32::49
0:35::55
-186
Angel Island 2
1:03::20
1:14::53
-693
Marble Garden 1
0:44::54
0:50::56
-362
Carnival Night 1
0:30::52
0:32::28
-96
Carnival Night 2
0:35::39
0:40::22
-283
IceCap 1
0:54::54
0:59::06
-252
Mushroom Hill 1
0:32::17
0:32::27
-10
Mushroom Hill 2
0:28::43
0:32::50
-247
Sandopolis 2
0:43::20
0:57::19
-839
Death Egg 1
0:51::58
0:57::28
-330
Doomsday
1:33::26
0:00::00
5606
Total
17:40::33
17:02::05
2308
As you can see, the run saved more than half the time spent on Doomsday zone in levels along the way.
And I was pulling your leg above, by the way.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
It is probably not the SCD jump sound, but the "PSG High Quality" option. This option gives incorrect sounding PSG sounds, and you should complain to folks to turn it off.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Hm, I went to the emulators page for evidence and found out it was not; it is only in the "accepted, but not preferred" category for Genesis and Sega CD. So I was wrong, my bad. I edited my post for clarification.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Just an additional comment regarding this: there is also the fact that many of the Sonic TASers are on Linux: me, WST, feeuzz... and there are very limited options for using BizHawk on Linux:
Windows build under Wine: crashes at start;
Windows build under Mono: crashes at start;
Windows build on Windows VM: if you can get it to work at all (requires 3D acceleration for the guest OS, which is experimental and volatile), it is like watching paint dry;
Native Linux build from the OSX/Linux thread: runs, but no lua, no camhack, no Genesis core, no nothing;
Trying to build from SVN: portable branch builds but crashes, trunk does not build due to Windows-specific dependencies.
So basically the options for me are TASing on Gens or not TASing at all, and same goes for every Sonic TASer that is on Linux (which is not a negligible number).
Moreover, the S1 and S2 runs made on Gens have been hardware-verified with some modifications to account for differences in timing; and if you read the console verification thread (specifically, this), you will see that the timings of the GensPlus-GX core are not equal to those of real hardware as well, so it is ultimately a matter of choosing one inaccurate emulator over another inaccurate emulator.
I, for one, think that the deprecation of Gens was a bad idea. edit: Not true, see below.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
notaz wrote:
Can this movie be started from .srm instead of a savestate? .srm has cross-compatibility between emulators and even real hardware flashcarts, while savestates don't.
It can, actually; the savestate was generated to be indistinguishable from starting from power-on with the correct SRAM. A savestate was chosen because Gens does not allow a movie to depend on SRAM, and defaults to deleting SRAM when you load a movie, making it rather easy to cause the movie not to synch.
Here is the hex-edited movie and the SRAM. The movie differs from the one in the submission by one bit, the savestate dependency flag. I will link them in the description, as well as linking the previous submission for details on savestate generation.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
WST wrote:
Techokami wrote:
The emulator used was kind of tricky to get (not everyone has the build tools and a SVN client handy!) so here's a mirror: http://files.holenet.info/Gens-rr_r351.7z
The issue with my builds is that they have a ton of TASing crap, such as camera hack, hitbox and solidity display. I am guessing that he wanted a more normal emulator.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
The guide has its value in that it allows preservation of raw pixel data as would be generated by the VDP (the Genesis VDP is a modified version of the SMS one, by the way) before it is fed to DACs to generate the video signal for the TV. But yeah, following the guide results in videos that have the wrong aspect ratio for any console that expects a TV at the other end.
Some accurate numbers from SpritesMind based on oscilloscope measurements:
- H40 mode: image is 347 pixels wide (13 + 320 + 14)
- H32 mode: image is 283 pixels wide (13 + 256 + 14)
- V28 mode, NTSC: image is 243 lines tall (11+224+8)
- V28 mode, PAL: image is 294 lines tall (38+224+32)
- V30 mode: image is 294 lines tall (30+240+24)
V30 mode is PAL-only, and causes the image to roll over progressively if set on NTSC. These numbers are for the raw image data generated by the VDP, including borders; the signal has more data, but it is synchronization signals.
"Normal" mode in Genesis is H40 V28; low res mode is H32 V28. The best way to handle the image in low res mode would be to stretch the 283 pixels of H32 into 347 pixels while leaving vertical size intact. In both cases, then cut a 4:3 region. So the correct horizontal scaling factor would be 347/283 ~ 1.22614841. Since the 27 border pixels also get stretched, this means that the "center" 256 pixels get stretched to just shy of 314 pixels (313.893992933 to be accurate); stretching it to 314 pixels gives a scale factor of 1.2265625, which is close enough, I suppose.
Edit: Source.
Experienced Forum User, Published Author, Experienced player
(752)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I synched up all the hacked emulators to SVN; this includes adding a few fixes related to S3&K, as well as added support for S3&Amy hack. The links in the OP are still valid, but here they are for convenience:
At least 1 frame lower. You beat me to the slope jump after the first partially-offscreen monitor (I was trying something along those lines), but the jump at the end caught me by surprise.
Edit: Heh, me and Aglar posted at just about the same time. Time to splice his new trick in.
Edit 2: Here, added the extra frame to Aglar's version.