Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
I recently found, by accident, that 'null spit' glitch in some ROM hacks has some extraneous results that I don't think have been found before.
Normally with null spit, we corrupt the target address of various writes with 0xFF (e.g. write to $d8+FF), because FF = null value in Yoshi's mouth. Actually, now we can change the value of FF for the write, allowing us to write to $d8+[0..255].
Here is a snippet of a credits warp using this:
ldy $160e,x A:f1df X:0000 Y:00ff S:01e3 ; load Sprite slot in Yoshi's mouth (0xFF)
phy A:f1df X:0000 Y:00ff S:01e3 ; push Y to stack
phy A:f1df X:0000 Y:00ff S:01e2 ; ditto, stack is now [.. .. 0xFF 0xFF]
ldy $157c,x A:f1df X:0000 Y:00ff S:01e1 ; load Yoshi's direction (1 = facing right)
lda $e4,x A:f1df X:0000 Y:0001 S:01e1 ; load Yoshi's X position (low byte)
clc A:f138 X:0000 Y:0001 S:01e1
adc $f305,y A:f138 X:0000 Y:0001 S:01e1 ; add Yoshi's direction modifier to A (0x10 if left, 0xF0 if right)
ply A:f128 X:0000 Y:0001 S:01e1 ; pop stack (FF)
sta $00e4,y A:f128 X:0000 Y:00ff S:01e2 ; stack corruption! writes to $1e2
ldy $157c,x A:f128 X:0000 Y:00ff S:01e2
lda $14e0,x A:f128 X:0000 Y:0001 S:01e2
adc $f307,y A:f101 X:0000 Y:0001 S:01e2
ply A:f101 X:0000 Y:0001 S:01e2 ; pops corrupted value from stack
sta $14e0,y A:f101 X:0000 Y:0028 S:01e3
lda $d8,x A:f101 X:0000 Y:0028 S:01e3 ; load Yoshi's Y position (low byte)
sta $00d8,y A:f120 X:0000 Y:0028 S:01e3 ; store to $d8 + [corrupted stack value]
In this case since we corrupted the stack with value 28, this stores to $d8+0x28=$100, which is the game mode. Thus, we can write any value to the game mode based on low byte of Yoshi's Y position, by carefully positioning Yoshi horizontally.
Actually, we can write any value to any address $d8+[0x0..0xFF]. There's many other corrupted writes, but I didn't investigate it further; it's mostly just sprite tables.
I was trying to work out why this doesn't work in original SMW, but I was stymied by my lack of ASM knowledge. All I know is that the stack pointer is several bytes higher when performing in SMW. My best guess is that since this hack has FastROM enabled, this changes initialization and hence stack pointer. But I'm mostly just speculating.
Anyway, cool glitch, but I'm sad it's hack specific. :-(
Sample for the credits warp:
Link to video
Maybe credits warps are a bit banal these days, but I'm happy to get an ACEless one.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
I finally got some time to watch this! First of all, congratulations on finishing such an anticipated run! This must have been a lot of work, especially to plan out a route for how to tackle all (most) of the known glitches in the game. Overall, I really enjoyed it - even as a veteran of the game. Despite the intimidating watch time, I would recommend it, especially to anyone who doesn’t have much knowledge about smw as a speedgame. There’s plenty of surprises here, even to people who know the game well.
Unfortunately, I think a lot of the concepts are stretched so thin that some of it can be a bit of a boring watch, and a tiny amount of it is even slightly annoying (I’ll elaborate below). I think there is a lot of room for improvement here. Of course, hindsight is 20/20 - it may have been hard to foresee these things when creating the run.
The watch time - 3 hours is *way too long*. A lot of these bugs are showcased in smw96, which is less than half of the watch time, but I don’t think this run is twice as entertaining. (Definitely in some places, but mostly not.)
It feels like the run is rushing to check everything off of a checklist rather than a conscious effort to make the run as interesting as possible. I suspect this is an intentional choice to showcase everything you could in a reasonable timeframe, but the run suffers as a result. It would be much nicer to pick a subset of the known bugs that are particularly interesting and can’t be seen in the other runs on the site, and show these off while naturally progressing through the game.
There is *a lot* of time-wasting. Revisiting levels (sometimes up to 4 times!), backtracking within levels for little reason, pausing the game to show off 1F graphical glitches, shell juggling/getting 1-UPs from hopping on enemies, etc. None of these are inherently bad by themselves but after a while, it gets a little dry.
Poor route planning - in a run about being as entertaining as possible, I was surprised to see how many water levels and autoscrollers were visited. To me these were the lowlights of the run, and some of the water levels were even entered multiple times. I couldn’t see any bugs in the water levels that couldn’t be done elsewhere, except the buoyancy glitch with a star.
Over-reliance on Yoshi. I know that Yoshi is the root cause of a lot of glitches in this game, but it seemed like 95% of the run was with Yoshi! There were times when Yoshi was ditched and I was hoping for some small-only entertainment, but usually he was obtained immediately after.
Minor annoyances - for me, the 30hz item box trick was used way too frequently. Once you’ve seen this once that should really be enough (and again, this is in the other runs on this site). The elephant in the room, however, is the mosaic effect that lasted for way too long. This was kind of hard to watch.
I couldn’t figure out why the game was set to 2P mode - twice. I might have just been missing something really obvious. My first guess was the wrong warp that occurs, but I don’t think you need to be 2P for that? I couldn’t see anything Luigi-specific, either.
Crashing - this is really subjective, but I don’t really like game crashes. The music and graphics when this happens is just really harsh. Luckily, I think there’s only two in this run (might be miscounting) so it didn’t bother me too much.
Ending. Using what I assume is ACE to finish this run over a traditional Bowser fight feels like a bad punchline to a huge amount of buildup. There’s a lot of potential in the Bowser fight, too! What about using the Lakitu Cloud from reserve to mess with his timings? Or destroying the Bowling Balls with the cape slide? I’m sure there’s more things.
Sorry if I’m being nit-picky here. As I said before I did enjoy it overall, I just feel like the run had a lot of potential some of which was missed.
Overall level comments (mostly positive!)
- c1 - Hitting Iggy off screen was very nice, I forgot you could do this!
- tsa - Dying here, the safest level in the game, is a really good joke.
- dp3 (first visit) - Wow. This is my favourite level in the entire run. Spawning Koopas out of nowhere with the grey platform null spit was amazing. This is the first time this bug is in a run on this site, I think, and it looks great. The bonus room was great fun, and exiting the level by getting the switch palace exit was very surprising. Great job here.
- vgh - Clipping through the brown blocks by using the POWs is a great joke. I was laughing out loud at that.
- vd3 - Killing all those Yoshis, then clipping through the pipe to kill Mario, was really funny. I have absolutely no idea what happens at the end of this level with the yellow sprite zipping around the screen, but it was great.
- cm - Yoshi in the Bonus Game with the winged key was really cool. Never seen these bugs before.
- cba - The screen going to black, but still playing the game, was so great! I had no idea what was going on. Minor gripe would be when doing the palette-swap, it didn’t really add anything to show the entire overworld..
- sw3 - This is a massive highlight in the run for me. Such a small, limited level stretched to its absolute limits. Swapping the goal and then dying, despawning the goal, just all great. Collecting the Yoshi Wings and hitting the goal tape I have never seen before
- sw4 - Was that a Boss Boo kill? That’s amazing!
- sw4 (again) - I legitimately cried with laughter when you jumped on the Koopa and it went “beep”, and Mario just stood there. I had to rewatch that a few times. Great.
- sw5 - Voting no because spelling “TAS” is traditional!
- way cool - reset to the title screen - incredible. Most WTF moment in the run for me.
- funky - nintendo’s super secret exit. Was hoping to see this and it was executed really well.
- vs2 - JOIEN RA G. Getting 00 (or is it 100?) bonus stars was very funny. How is that even done - the Bob-omb?
- foi1 - Hyperkinetic flying key + star was very funny
- foi4 - Going *up* the up-pipe I had no idea was possible, fantastic.
- gsp - death by corner bug against the switch, very good
- ci1 - wow... turning the level into an OW sub-map? I have absolutely no clue what is going on, but I love it. The music is grating but this is so interesting I don’t care.
- c6 - star power during the Castle outro cutscene is great. I think we did that during our proof of concept run?
- valley fortress - ha, a walkathon speedrun! What a neat idea! We don’t really get to see this anywhere else, so it was nice here. I don’t typically like walkathons but as it’s just one level, it’s a nice treat.
Ah I wrote a lot... All in all - thanks for your hard work. Somewhat tentative yes vote.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Finally, my favourite game of all time gets a full TAS.
I've spent years of my life in the past TASing these games, so I understand better than anyone (except maybe Woops) how frustrating it can be; these games are very unforgiving to optimize and the active speedrunning community moves so fast that a new trick seems to get found weekly, obsoleting your work.
Woops has clearly put a lot of time into this run and completed this project in a timeframe I wouldn't have thought possible. I don't think it's rushed at all, though - he's just very dedicated. At one point he said to me he was working for 12 hours every day on this. Hopefully he was joking. :p
In the interest of full discretion there is one point I want to make. Is it perfectly optimized? Absolutely not. There's a lot of opportunity here for micro-improvements to luck and movement. But that isn't the point of Tomb Raider speedrunning in my opinion. It's much more about using creative strategies and very tough glitches to beat the levels in as entertaining a way as possible, and that's certainly achieved here. I know these games like the back of my hand and I was still surprised many times watching this. Micro-optimizing everything to please a few Tomb Raider nerds shouldn't be the point of TASing at all, and if that was done this project likely would have never been finished.
Thanks for a great run. Yes vote absolutely.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Hi.
First of all great job on finishing a smw project. (Is it possible?)
I have to vote no on this. My opinion of the hack is that the gimmick adds nothing of value from a TAS perspective; it's possible that P2 controlling enemies could be used for some interesting tricks, if the levels were better designed, but it seems like regular L->R levels with added functionality that makes little sense for speedruns. Some general comments (and justification for "no"):
1. Collective bonus stars is nearly always a detriment to the run. These cause lag and gain you nothing.
2. Suboptimal parts in levels, particularly in the final castle: The boss door is entered later for seemingly no reason? (It's possible there is a reason for this, I can't see it though.)
3. Hack is far too tiny for an interesting TAS, in my opinion.
4. Overall, decent execution, but I think the entertainment is nothing that can't be seen in regular smw runs - if the gimmick was more explored, I could maybe justify this. We need to be more stringent with regard to hacks, since the barrier for entry is so high.
Good luck in future projects.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
In case this even comes into question why this should be star tier, no smw TASer could have predicted that this improvement would be so large. 3 seconds sounds so trivial, but we were expecting a couple of frames here and there, not this kind of ridiculous massive improvement. 3 seconds is monumental for such a competitive and well-optimized game, that is ludicrous. I think every smw TASer would agree this should be starred if this helps the decision at all.
I'll end up eating my words but I don't think smw will get an improvement so large ever again.
Edit: Was this starred while I was typing this?! It was in workbench just now! Oh my days.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
I can't emphasize enough how difficult it is to think laterally enough to create strategies such as you've done in yi3 and sw3. Frankly, that's the reason I got into TASing - improving levels by thinking outside of the box, rather than through micro-optimizations. I can say for certain that every competent smw TASer kicked themselves seeing the sw3 strategy; how didn't we think of that? It seems so obvious once it's been performed for you. And to me that's absolutely genius, it requires a different kind of mindset to create ideas like that. :p
I don't have much else to say. The run speaks for itself, it's really entertaining and optimized. I just wanted to mention that the yi3 and sw3 ideas were truly inspiring, so thanks for your work and yes vote.
I'd love to see a 96 run from the Brazilian team, very much so.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Do we really need a discussion on cloud-based runs on every SMW submission? It's disrespectful to the author and actually to smw runners in general, considering the amount of times we've expressed our distaste for using it in a run and also given a thousand reasons why it shouldn't be part of vanilla SMW TASing. It is NOT a subjective view that cloud is a form of ACE, and Masterjun's game end glitch run satisfies it.
Boring boring boring boring boring boring boring boring boring boring boring boring
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Ah, it's worth noting the latter part of ds1 (from the pswitch to cape-spinning the key block) is all Mister's input; I asked him if I could use it a long time ago as I was struggling to optimize, and I forgot about it until just now.
Anyway I hope you all enjoy this movie, it's interesting to see Panga finish our old work.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Well, what can I say?
This is among the best SMW based runs I've ever seen. You guys put immense amounts of work into the run and it truly paid off. This is a masterpiece. Everything seems perfectly optimal and I loved your choice of entertainment. Furthermore you bought in several new tricks, including micro-optimizations, that really polished the run. I look forward to descriptions of these (particularly corner boost while flying).
So, I enjoyed all of it, but I'll point out the highlights for me.
Desert Star World - we kinda knew such a strategy might be possible but you proved it in a really unique way.
Water Star World - just wow. I'd tried in the past to cause stun bug here but lack of enemies and the screen scroll wouldn't let me. It's incredible you found a way.
Pipe Star World - despite Mister already finding a huge improvement to this stage you took it two steps further with the new Yoshi boost and THEN a stun bug. I was pleasantly surprised.
Backdoor Star World - finally beating the phases of the layer 2 spikes that we'd dreamed of.
Sacrificing real time to reduce lag in order to beat frame rules. Well, this is something that was first introduced in the smw any% and it's quite easy to overlook. I was happy to see you guys took this into account.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
In my opinion, the hack must have a rating of at least 4.5 in order to qualify. To be fair that is an arbitrary number but it is a good indicator of what seperates an exceptional hack from a great one. SMW has so many modifications with much variety so we must only choose those ones which are considered by the community to be the best. Then we need to narrow it down to those ones which have interesting strategies. Nobody wants to watch left-to-right levels for 30 minutes or so. In addition to this the TAS must be exceptionally made (particularly with regard to entertainment) in order to justify acceptance of the hack. Please note this is all just subjective and I'm not a judge or anything but it seems sane at least.
You can sort the hacks via rating using this link.
My recommendations:
Anything by Anikiti (Japanese hacker who makes modifications that are exceptionally difficult (not kaizo level), with clever level design and custom stuff)
Hack (gimmicky but short hack that could make for some interesting strats)
Shipwrecked (very open hack)
Return to Dinosaur Land (very good level design hack with some interesting strategies. I was working on this but I don't know if I will continue. The RTAers are running this currently so we can share strats)
The 7th Annual Vanilla Level Design Contest: Collaboration Hack (Hack comprised of lots of levels made by separate people. I think it could be interesting)
Bowser Rampages AgainSuper Mario OmegaSuper Mario Odyssey (it's a demo but SO well known)
Gregor's New Super Mario World
As well as TSRP and MIX series. In particular the MIX series has potential for craaaaazy strats, as shown by Mister, ISM and other's runs, which have inspired me in the past.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Firstly, congratulations on your finished run. It's rare to see an SMW TASer finish something. :p
This run looks quite solid from an optimization point of view! I was happy to see stun bug being used outside of vanilla smw. There may be few micro-optimizations you have missed but outside of a few frames here and there, it's negligible.
I'm unsure about your entertainment choices. In 9-3 you took to flying through the entire level. It's a short level anyway but it has opportunity for more entertaining route. Actually when you get the cape (tanooki suit? I don't know) it seems you take the lazy option through levels sometimes which can be avoided. I was also confused about the use of shells in 8-1 and 8-2, as well as killing the blooper underwater in 8-4. I see that the blooper is killed to save lag now. You should write these in the description I guess.
Obviously lastly the hack choice. It's a shame because you seem really talented and you chose such a hack to run. It seems from a TASers point of view, this hack is very restrictive. You broke out of a few levels via Yoshi glitches but for the most part it seems we're confined to a "run to the right" scenario in all levels. For this reason I'm voting no. Your technical ability is good but I don't think this hack fully allows you to express that. Good luck with future work.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
I just found his wording funny.
The cloud glitch requires manipulation of bytes in order for it to not crash. Similar manipulation of bytes allows us to jump to the credits, as in Masterjun's movie. This is the reason that we don't want to do this movie. Go ahead and do it yourself :)
Edit: I asked xpaco5. His runs timing starts from control of Mario, so he has much more than a 2 second head start on us.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
trlky wrote:
Because I watched them both and checked the time on both. Timing on the latest RTA starts 2 seconds after console on, and both the end of YI2 and YI3 are more than 2 seconds ahead of the TAS by the clock given in that stream. YI4 is the about the same, and only after that does the TAS start beating the RTA (usually by 2 seconds per level, though not always.)
Also, you have a strange definition of arbitrary code execution, as the Cloud doesn't involve total control. It involves programming in an existing item, just like the orb glitch which is used in the TAS. I can't see how one is ACE but the other isn't.
I'm not actually going to bother watching them side by side. I know the RTA is slower in yi2 and yi3 because in yi2 they stop to get the cloud; we don't. We also item swap. Our TAS should be about 5 seconds ahead by the end of yi2 ahead, and an extra 4-5 seconds by the end of yi3. Anything different is a mistake in timing. You can just watch the runs to see ours is faster.
It involves programming in an existing item
Kind of like... arbitrarily... executing... code?
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
trlky wrote:
Is anyone working on this branch now? The RTA now beats this speedrun, since it uses a Lakutu cloud (glitch) to beat Bowser much more quickly. (It saves like 50+ seconds.) Also, there are faster routes through YI2 and YI3--the RTA is faster on both of those, too.
Since the TAS is around 2 seconds faster on most of the other levels, I'd guess that a new one could beat the RTA by a minute or more, which would also beat this run by over a minute.
Sorry if I'm posting this in the wrong thread. The general thread seems to be about people asking for help with various speed runs, and I saw no mention of any WIP for this branch. (Thought it is really long.)
Every single level in our TAS is still faster than the RTA. (Except Bowser).
I don't know why you think yi2 and yi3 are faster.
We've discussed to death whether we should introduce this glitch to the any% branch, to which is the answer is essentially no. No SMW TASers want to. As far as we're concerned it falls under ACE category.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Dyshonest wrote:
This being said I've yet to allocate time for this run. Are auto-scrollers the only skipped stages? I remember SDW sadly had quite a few... If that's the case, that's perfectly fine. Auto-scrollers are... rather bland, skipping them does everyone a favor.
"Please only use this glitch where I want it to be used."
I love autoscrollers. Best part of SMW runs when done well, and Panga HAS done well.
Can't we just, like... TAS, and have fun? And (hope) people enjoy the result? Stop putting bullshit restrictions on us \:D/
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Sorry Panga.
I found accidentally that Classic Piranha Plants will spawn a Reznor when stunned. These are the sprites which aren't used in the original smw but are still in the game's code; sdw makes heavy use of them and they are in many, many levels.
Here's a sample movie: http://dehacked.2y.net/microstorage.php/info/1828695318/dwtlc-dw2a.smv (puush in case microstorage is sucking)
So... sdw120 destroyed?
I need sleep.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Zowayix wrote:
Apologies if this is duplicating an earlier question, but:
When using the Chuck-Eat glitch to get a cloud, does the game always jump to Open Bus allowing for ACE? If so, are real-time speedrunners simply executing NOPs while the game returns to 'normal' mode? And would blindly spamming buttons during the "obtain cloud" time period most likely cause a bizarre crash?
Masterjun may be better suited to answer, but I think I can.
The glitch does always jump to open bus.
They're not necessarily executing NOPs, they just luckily get a return to normal code.
The game's execution won't always reach controller registers, so no, spamming buttons won't necessarily affect anything.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
Zowayix wrote:
By "after I finished this run", do you mean literally between today and July 3 (so sometime in just the past 3 days)?
I actually found it a few years ago, but completely forgot about it until a couple of days ago (I was going through my imgur gallery and found it). It would save about 3 minutes.
It should also be possible to spawn a Reznor in Water Star World, which would save about 5 minutes... but I've yet to test this. There may be more opportunities for stun bug in this run, which Panga may have missed due to these developments being fairly recent. I need to go through the route and see.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
jlun2 wrote:
Wait I thought that was banned for the normal SMW TAS. Does the hack display different behavior when getting the cloud?
Ah I should answer that question quickly :p sdw has blocks which put a cloud in your reserve, so it is okay. It is the method to get the cloud that would be required in the original smw that is ACE, so we don't use it.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
jimsfriend wrote:
So is most of your run going to be significantly out of date? A lot has happened in smw glitches in the last 2-3 years.
Mister's psw is not implemented, for example. But it does use cloud in Bowser, and other things. I don't think more than a couple of seconds other than that could be saved, but I haven't had time to analyze, yet.
Edit: Kaizoman lied to me. It does use Mister's psw.
Experienced Forum User, Published Author, Active player
(264)
Joined: 4/15/2010
Posts: 198
Location: England
I thought it was time we made a post detailing "Yoshi-drop swap" glitch, which is a glitch whereby Yoshi despawns on the same frame a new sprite spawns in the same slot and, for some sprites, the sprite will warp to Mario's position and we'll keep Yoshi in the next level/area. For a long time we didn't know why this worked or which sprites it work with. We've known for a while but I don't think the information was made public, so thanks to nathanisbored for his research.
This bug has several advantages.
The sprite teleports to Mario's position.
We can change the colour of the Yoshi based on the palette of the new sprite.
We can ditch Yoshi in unneeded levels and recover him in the next area (useful for flying levels).
Yoshi uses sprite table $7E00C2 to determine his current state. #$00 = not riding, #$01 = riding, #$02 = running away (hurt). The bug occurs when a sprite spawns in Yoshi's (now unused) slot using an initial value of #$01. The game determines that Mario must be riding this sprite and, as such, teleports the new sprite to underneath him. It quickly corrects itself (as there are no Yoshi's present) but the one frame is sufficient to trigger the glitch. This isn't such a technical explanation but I hope it is sufficient.
We can also trick a property of other sprites, sprite table $7E160E. The game uses this table as the ID of the sprite Yoshi is eating, but it is set to -1 (255) when there is no sprite. If Yoshi swallows a sprite on the frame he despawns AND we spawn a new sprite in that slot, that sprite will spawn with -1 in that table. This seems to have no useful effect so far. I've only found that we can turn mushrooms/flowers into berries and despawn goal tapes, which is less than useful :p I'm sure there's more undiscovered bugs regarding this.
Edit: By the way, this is used in CHEESE BRIDGE AREA in our 96-exit run. The reason we get a glitched-looking Yoshi is because the sprite we swap with is tileset-specific, which means it uses the last two graphics pages. Thus, Yoshi loads his graphics from these pages too, which corrupts his image.
Edit 2: Here are the sprites that will cause the bug. I used a script for this, and as such it may not catch certain edge cases (the list does not contain Mushroom, which will work, but only when stationary). But this list is mostly complete; I don't want to manually check all...