Posts for kaizoman666


1 2
5 6
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
It's also worth noting that I looked into Bruno's movie (this one) and found that the effect shown there at least is not at all ACE, despite how it looks. There are, of course, many paths that enter ACE territory, but not all of them. To explain that particular code path, it causes the Chuck's phase pointer to jump into the sprite load loop ($C2 = 0x51 jumps to $02A9AA). What happens from there is that the game tries to load some sprite data (from [$CE + Y], which happens to have Y = 0x51 from before) into sprite slots 03-15 (note that the normal sprite slot cap is only 0B). As it happens, the "positions" of all those invalid sprites end up being to the left of the screen, so the game just skips over them and does nothing with the data, and finally returns back to the Chuck without issue. It ends at X = 0x15 because that one is considered to be to the "right" of the screen so it determines the loop is done. However, the value of X is still retained from that loop; that is, the Chuck's is returned to with X = 0x15. In SMW, sprites use the X index to determine the sprite slot currently being processed, and it then decrements until it hits 0, which means... we're now dealing with sprite slot 15, which doesn't exist. And before anything returns back to normal, there are invalid sprite slots 0C-14 in the way, which also have to be processed. Thankfully, SMW happens to put its sprite status table (which determines what routine to run for a sprite) at $14C8, and immediately following that at $14D4 is the the sprite Y position high byte table. In a horizontal level, every value in that table will be either 0 or 1; 0 corresponds to "no sprite", and 1 corresponds to "initialize sprite". So no main sprite routines will end up being run with this invalid index, and only sprite's whose "real" counterpart indices (that is, the sprite slot minus 0x0C) had a high Y position of 1 will actually end up doing anything. And thankfully, the initialization routines for most sprites are extremely short; usually only a few lines at best, which means there won't be many adverse effects. However, some of these routines do end up being run, and with that invalid X index no less, which causes some bad indexing to sprite tables during that initialization. Fortunately, most sprite tables are immediately followed by other sprite tables, which means we can't really do anything openly game-breaking to RAM. At best, we can only write some values to existing sprite tables, messing with the sprites that are currently spawned. For that most part, that's harmless, but this particular effect is the result of one of those misc table writes. Specifically, during the processing, the slot whose "real" counterpart is Yoshi ends up running the initialization routine for sprite 0B, the buzzy beetle (because the sprite ID table at $9E is immediately followed by the sprite Y speed table at $AA, and Yoshi's "Y speed" is 0B at the time). The buzzy beetle's initialization routine doesn't do much, but one thing it does do is that it sets a random value to the sprite table at $1570 (which then indexes into another sprite table at $157C). Yoshi uses $157C as his direction; 0 = left, 1 = right. And here's where the real bug actually happens. While Mario is riding Yoshi, Yoshi's direction is transfered to Mario's direction every frame. As a result, Mario ends up getting this weird direction value written to him as well. And, of course, that causes everything you see in Bruno's video. His direction is used during indexing of Mario's tilemap tables, so an invalid value ends up there and Mario looks like he's now having a really weird day. And Mario's direction is also used during flight, to determine the index to the Mario X speed acceleration tables. So that pulls an invalid value, and later when indexing the speed tables, it pulls "80FF" as his X speed (an extremely high leftward speed). To then get the rightward speed, you then have to press >+B to "decelerate" Mario. That, of course, also throws out an invalid value due to Mario's wack direction, resulting in a new speed of "6100" (an still-extremely-high rightwards speed). So you basically have freedom to go really fast left or really fast right like this. That said, you can only really abuse this while flying. When not flying, Mario's directly gets reset from any left/right inputs; it can also get reset by capespinning, so you can't do that. However, relanding on Yoshi (who got shoved way over to the right as another side effect of this glitch) will break Mario's direction again. So, that's that particular effect. And there's a huge range of similar effects you can probably get from just this one particular code path, by e.g. messing with Yoshi's Y speed do run different sprite initialization routines. So the question is, how legal is this? There's theoretically a wide range of effects, assuming we can find code paths that don't enter ACE territory. We can at least note that: - With the lava method, there's a limited number of levels that both have lava and allow Yoshi to enter. The only ones that come to mind are VD1 (useless), VD3 (no viable sprites, probably), CI4 (useless), CIS (useless), and VoB4. I might be forgetting a few there, but VoB4 seems like it'd be the only one this method work be useful in. - The number of sprites that naturally both use $1558 and use $C2 as a phase pointer is limited. There is only the Diggin'/Pitchin' chuck, Monty Moles, Fishbones, and the Bowser statue; the last two can't even be reached with a Yoshi anyway. - The Koopa method depends on the value of $1540 during or close to initialization, and the number of sprites that both use $C2 as a phase pointer and set $1540 relatively early is pretty small. A preliminary search led to this list of sprites that potentially can be used to trigger the glitch in the original game: Volcano Lotuses, Chargin' Chucks, Splittin' Chucks, Bouncin' Chucks, Clappin' Chucks, Pitchin' Chucks, Diggin' Chucks, Sumo Bros., Pipe Lakitus, and Monty Moles. A quick search for all instances of these led to the following list of viable locations for application in the original game:
volcano lotus: DP1, Groovy
chargin': YI2
pitchin': DP1, Funky
diggin': VoB4
sumo: Funky
pipe lakitu: VS2, FoI4
monty mole: YI2
All other instances of the sprite either would likely not be useful (e.g. right at the end of the level) or were not reachable with both a Yoshi and Koopa (e.g. in castle or not a level with a shell). So you can essentially consider that the potential scope of application within the original game, at least as far as I'm aware of. Exactly what kind of applications each of those sprites can have is still a mystery, though; we know about the VoB4 application with the Diggin' Chuck, but that's only one sprite with one pointer. How much mileage we can get out of other code paths is still up for investigation, and it's something we should probably decide on before considering its use in any runs.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Okay, I'm having trouble figuring this out. How do you set up a RAM watch on SA-1 addresses (and/or is it even possible)? I don't seem to be able to access it, probably because of the difference in how IRAM is mapped. I've tried both the standard mappings and adjusted mappings and neither seem to work in any memory domain; performing a search on the full system bus couldn't find anything either.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
So, when you say "working in teams in encouraged", does that mean the final movie submission can be put under multiple names? Or is it still individual entries, just with people working together to find strategies and exploits?
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Alternatively you can use the cheat 00A27300 to beat a level by using Start+Select (holding A at the same time will activate the secret exit). Of course, that won't really help you get the three exits resulting from the 256 exit glitch, since those are from levels you can't normally go to. You can just cheat the RAM addresses for them and activate a save, though.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Link to video Here's mine, as well. It's nice to get a full run done for once. (smv for snes9x 1.51)
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Well, it's not quite the same as a glitchfest, as it's not a straight playthrough of the game, but it's a similar idea. The advantage of this, though, is that pretty much anything is allowed so you can take it anywhere you want.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
So a while back, bahamete had an idea to inspire SMW TASers to do some runs and involve the SMW RTAer community at the same time, so I've decided to make it actually happen. You can sign up here.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
1) Map these to the RAM addresses $7E0015 and $7E0017, format is byetUDLR and axlr0123 respectively. 2) Yes, and see 1. 3) Yes, and see 1.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Didn't have enough entertainment. Obvious no vote. ...jk yes vote all the way EDIT: In order to jump on the masterjun photoshop train, I got a rare picture of masterjun after the run
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Post subject: Re: Any new progress on this branch?
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Eszik wrote:
How can RTA runners be so consistent at keeping it then?
They're not really that consistent, it's just that the trick they use (scrolling the screen) tends to have a higher chance of getting the right byte by the time the glitch occurs. They only actually need a single byte (60) to be correct for the game to resume normal play, so preventing the game from crashing isn't as hard as it sounds. Regardless, the game is still jumping into uncertain code, and thus is considered ACE, so a line has to be drawn somewhere. also the branch isn't dead but most of us quit SMW
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Nearly a 13 minute improvement, not bad. Does this mean there will have to be a new category for "saves crew" or something
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Can I just point out the fact that the movie is incredibly unoptimized and honestly shouldn't be accepted regardless of whether people believe the concept should or not? He even points it out in the submission text, sheesh.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Bisqwit wrote:
Collected 25 coins in the first stage, 26 coins in the second. Was promised it collects 20 in each. This submission is a deception! Yes voting no.
Why are you counting the flowers and bonuses? You make no sense.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Man, I'd completely forgotten I worked on this! Thanks for finishing it for me.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Radiant wrote:
I have the opposite opinion, actually. "No null sprite glitch, no stun glitch" tells me there's two explicit glitches not used and what to search for if I want more of them. "Less glitched" tells me basically nothing, as any movie that's slightly slower than the fastest movie is technically "less glitched".
Why not just stick the unused glitches in the game objectives? The 96-exit does that for the Chuck glitch, as the run would be significantly faster with it. Or do you propose that we rename that to "96-exit, no Chuck glitch", as well? It makes no sense to make these weird branch names. Yes, they're technically no longer the fastest, but you don't need to state every reason why in the branch. The branch's purpose is to simply state what kind of route is being taken, not every specific of the run being done. That only leads to confusion as to what the title even means.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
The funny thing is, this run is only possible because Yoshi's Island 2 just happens to give you everything required to make this work. In other words, Yoshi's Island really does cause people to break their games.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
nico30620 wrote:
kalzoman666, or find the new version? I can not find it :/
Here is the IPS for it.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
In order to get the true ending, you have to collect every cat coin ("gaunt tokens", as the game calls them) in each area. There's five per area. If you have the original version, you need every single one; however, there's a token in the fourth segment that disappears from existence if you grab one of the coins in the black and white room, so I recommend using the new version, which lets you miss a few coins while still being able to get the ending. This isn't exactly the forum to ask a question like this, though. The hack assistance thread on SMW Central is probably a better place for you to ask questions like this. ^^;
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Glitcher wrote:
Any way of getting this run to work on good old Snes 9x?
Yep, masterjun already made a test run of the glitch on Snes9x. In addition, he also made this as a joke for SMWC's 24-hour Automatic Mario contest. It will automatically perform the glitch for you in any emulator; ZSNES included. Though it's technically not legitimate since you can't actually input the code required to jump to the credits (it just jumps when a certain input combination is met).
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Excellent job! It's great to see you (finally) submit this, even though your secret project with it never came to fruition. Also, you should have included the rest of the credits for the sound effect glitch. ^^;
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Bizhawk seems to register lag in Sutte Hakkun weirdly (not sure if it happens in other games). For instance, it starts registering lag on both the title screen and in levels, but when playing frame by frame, everything continues to move even during the "lag frames" and input is still registered. In addition, lsnes doesn't count any lag frames in those places.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
la mammal wrote:
Well does it work if you apply the patch to anything else?
No, but you can make a patch of any game with any ROM. For instance, you could take Super Mario World, and make an IPS of it for Yoshi's Island. Just patch it back to the ROM used to make the patch, and it'll work. Same idea here. It might not contain any of SMW's stuff, but since the patch was made using SMW, you have to patch it back to get the ROM.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
Oh man, that was amazing. Your strategies look just about as optimized as they could ever be! You've come a long way. Also, I think this hack is well-made enough to be accepted to TASVideos. It's absolutely revolutionary, just listen to that audio!
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
I must say, this is quite an amazing run. The way you shelled those clips and blocked those duplications was pretty impressive. However, I notice you are not using the recommended ZSNES 1.51; perhaps you should redo this run on that emulator and resubmit.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
Experienced Forum User, Published Author, Active player (421)
Joined: 3/21/2011
Posts: 127
Location: Virginia (United States)
goofydylan8 wrote:
I just played through the first level with absolutely no issues and the game ran absolutely fine. I am not sure where that claim comes from as Bizhawk should have no problem running any SNES game.
Ah, apparently it's just a bad dump of the game that I have (the TAS still works fine, at least), thanks for pointing that out. I'm not quite sure why the other one doesn't work with Bizhawk or lsnes, I just get this. Though, either way, I was already done with five of the seven worlds before Bizhawk was even started anyway, and was certainly not going to be redoing it at that point. I also feel inclined that the Chuck Rock TAS you brought up earlier seems to have had several other problems that led to it's rejection aside from the fact that it didn't sync on BizHawk, including the fact that people didn't find it entertaining and that it was apparently over a minute slower than another run of the game on Genesis.
YouTube Channel - Twitter Current projects: Sutte Hakkun, Hyper VI, RTDL, own hacking projects
1 2
5 6