Posts for Catastrophe


1 2
11 12
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I thought the Kohlingen softlock was caused by a missing NPC? Specifically, one that appears on that screen in the WOR but not in the WOB. The event bit you want to set is actually just the WOB -> WOR bit. If your game is in a WOR state then Kohlingen will work. Unfortunately, this event flag is set when you escape the Floating Continent. And at the same time you're also stripped of your airship, all party members except Celes/Kutan, and you're teleported to the Solitary Island. You can actually do the Floating Continent from the WOR if your game is still in the Floating Continent state, but then it's not much of a sequence break is it? If reaching "The End" is non-negotiable then the way to do it is to use either of keylie's exploits to put the Metamorphosis cutscene on the script stack just on top of the credits cutscene. The game should then play both cutscenes in order and you'll get the Celes-Edgar-Setzer ending since everyone will be 'dead'. (Even Edgar and Setzer, but they don't have alternate endings.) That's a lot of movie watching but it should reach "The End". The only thing that would go wrong, is if the game clears the script stack while loading the Solitary Island. If that happens then uh... *runs like Ultros*
Post subject: Kaizo Mario 3
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Something about the way the big '?' blocks are placed makes me think that Obitus (RIP) knew about the glitch with them. They're staggered vertically, and rooms often have several of them. Obviously you're intended to die a whole lot, right? And if you do, then no problem. But if you're using savestates then they'll never replenish. Trapped! And if you're reckless and hit more boxes than you need then you'll run out of them sooner. I wonder if Obitus ever knew there was a deathless solution to his puzzle? Probably. There were times in this TAS when you gave up the ability to fly to save time. Seems like there must be a more reasonable deathless route (that takes longer) where you fly more and switch suits less.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
At the end of ProD you're standing right in front of an awakened Gol, and he doesn't fire? I assume that's because of a sprite limit?
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
vaxherd wrote:
It's name+sex+speed (all 3 parameters matter), and it'll work as long as file 3 is empty and is in the third slot. The slot number is important, because the RNG state at main menu time is the checksum of the file in the third slot, which may not be file #3: when you load a game, the program swaps save file slots so the game you loaded is in the first slot (I assume to simplify Luisa logic, so it doesn't need to take the current save file into account when looking up character stats). A quick way to check whether the slots are in the right order is to erase all files, then create a game in file 1 as A/Male/8; if the hero's initial HP is 15, the files are in the right order, otherwise (17 HP) files 2 and 3 are switched. To unswitch them, you can do this:
  1. Create a new game in file 3 (name/sex/speed can be anything).
  2. Create a new game in file 2.
  3. Erase file 3.
  4. Erase file 2.
  5. Erase file 1.
Then if you retry the file 1 hero, you should see 15 HP.
Oh wow! That's great information! I'm supposed to be looking at the SFC version, but now I'm tempted to be distracted. A setup for an easy (and rare) overworld lone metal babble would be pretty awesome.
Nope, I haven't taken a look at those yet. I'd be a little surprised if they kept the same RNG algorithm across a platform change, but I guess you never know.
DQ 1+2 uses the DQ 5 engine and DQ 3 uses the DQ 6 engine. I've only looked at 3/6, mostly 3, and the RNG is different. It seems to advance every frame regardless of input. However, the game uses a "steps until the next random encounter" type of system so you can't avoid random encounters entirely. I made a made a test TAS with a He/Th/Pr/Pr party, but it was kind of boring. It was just a normal speedrun with no metal slime grind and crits on all the bosses. (I made a LUA script which automatically skipped to the next dodge/crit.) Unlike RTA runs I did dupe one orb, which is a pretty big sequence break, but the TAS was still kinda lame. I was hoping I could do more with the dupe glitch. If you didn't know, while moving the Magic Key from your bag to your bag, the contents of bag slot 2 can be duplicated just once. I found out why. Your bag has 255 item ids starting at 7E3725 and the quantities start immediately after. (Yes, an odd memory address! The DQ SFC games have lots of those.) But for some reason when reordering the bag it starts reading from one byte earlier. And if the item you're moving has an item ID that matches 7E3724 then a dupe will occur when 7E3724 is mistakenly "sorted into" your bag. This will zero out 7E3724, with whatever side effects that brings, and prevent another dupe until it changes. And that's where my research ended. I thought maybe 7E3724 was some sort of "fencepost" that is written with 0xAC (the Magic Key's id) when a new save file is created. Because it stays that way forever and it doesn't seem to be used. If you hack it, the game doesn't care. It's strangely not part of the checksum. Anyways, all that just in case you're interested in looking at more DQ games. :)
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
That was entertaining! I like the floor crumbling scene after you beat Zoma and the encounterless Najima the best. Something's just not right there. :) I wonder if your method of rigging the RNG would help in a speed run? Or does the battle RNG persist in SRAM even when you delete all 3 save files? Would removing the battery at least give every new game a consistent starting point? Does the name on file 2 "E?" immediately put the RNG in the sequential state, or does it only do that because of the prior events that have happened? Also have you ever looked at any of the SFC games?
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
This game looks like a romhack of Sonic?
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
A moons run was just obsoleted by a vault run? How often does that happen? (Legacy moons aside.) I think it shouldn't. If the runs are different enough that one is a moon and the other is a vault, then the runs are doing very different things, right? I think the Sketch Glitch category is "any%" (with sequence breaks) and this run is "Game End Glitch".
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
jlun2 wrote:
I'm curious on one thing now. I never played this game, so I don't know if the game has any post-credit content, but what happens if you continue on from this movie?
The game softlocks at "THE END". It never saves or resets. Usually, you've saved right before the final battle. And that's all you can do is reload from your last save. (Both the GBA and iOS versions change this. Bonus content is unlocked.)
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
You did it!! Now no one has to play this game anymore! ;) And I thought this glitch was useless. I thought the first sub-hour run would use the equip anything glitch on the Japanese version. You found more ways to manipulate the outcome than I did.
Satarack wrote:
No, this submission isn't memory corruption. Sketch is memory corruption because it forces the game to perform a task that's too large for the allocated space in the RAM; kind of like trying to empty a bathtub into a bucket the bucket just isn't big enough so the water overflows and spills on the floor. The sketch glitch is doing the same thing, but instead of water it's trying to create a gigantic monster sprite. The space given to it in the RAM just isn't big enough so it ends up writing monster sprite pixel data to other parts of the memory. This submission exploits a programming error that allows them to create an event script that will run after the final game over. It doesn't corrupt any memory, it manipulates some values to make the event script work (step count, money, items in inventory, settings in the config menu, battle inputs in the last suicide fight, and the frame that the final game over starts).
I wouldn't tag this run with "memory corruption" either, but the Game Over Glitch does corrupt memory. The game keeps a stack of cutscene pointers which I'm sure was never meant to exceed 32 cutscenes in length. (Or 32 at most. Could be less.) When you trigger the 33rd+ copy of the Game Over cutscene you're actually corrupting the next part of memory, which is a bunch of variables used by the cutscene engine. (And the fun starts when a certain animation counter rewrites the previous stack location after it was written.)
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I watched the whole thing and I was entertained. I thought it was funny how the ninja would whack the ball and then just, "see ya", and walk after it. The transition into the beat-em up state is seamless. This game's 'flaw' (the repetition) is due to it being implemented as a 7800 game. That's how I remember them all. (Never played this one though.) If this movie isn't entertaining enough for moons then probably nothing from any Atari console is.
Post subject: Screen Wrap Explanation
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
scrimpeh wrote:
Nice improvement. Yes vote, natch. Edit: One thing I'd like to know in general is what happens in the screen wrap-around glitch. Why does it work and how is it done? If anyone could tell me, that'd be much appreciated.
Due to some odd grid-snapping code Link can only turn on every 4th pixel. For example, if you're at x=125, facing right, and you hold up, then Link will walk east to x=128 before turning north, and then start walking north. Movement on the same axis is unaffected. If Link is at x=125, facing right, and you press left, then Link will walk left immediately. There's no need to snap Link to the grid in this case so the game doesn't. Tapping one frame in a perpendicular direction will cause Link to do an instant 180 turn without moving. This is a bug in the grid-based code. (Who checked for 1-frame inputs in the 80s?) The check for screen transitions assumes that if Link was facing left then the player must be holding left. (Bad!) 1) Stand at x=5, facing left. 2) Tap up or down for exactly 1 frame. 3) Link is now at x=5, facing right. The grid-based code normally prevents this! 4) Walk left. Since Link is facing right, the map transition check for the right side of the screen is checked, oops. 5) Link's x-coordinate underflows and he appears on the right side of the screen. 6) And now that your x=255, and you're facing left, the left screen transition is checked, and that fails too. The y-coordinate is the same except that you need to adjust for y=0 being up in the status area. While walking around in the status area the map data is usually a copy of the top 3 rows of map data, shifted left a half tile. Except for when it isn't. :x
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I think I understand what's happening. The scripting engine's stack seems to be a mere 10-14 elements deep. The game never needs more than 4 or 5 anyway. I watched memory during complicated sequences like the Lete River and it was only ever two events deep then: [semi-random battle] on top of [raft movement code]. At the point where you get off the raft and touch a save point the script ends (stack flushed, no scripts running) and a new one starts when you touch the next raft tile. Only in sort of complicated situations like the Returner's Hideout and post-Ultros1 does the stack ever get 4 deep. Immediately following the stack are a few other variables, then 10-14 more offsets, mirrored from the stack, but usually a bit off. Obviously it's for returning to the scripts where they left off. But fun fact: FF6 doesn't really pop the stack and resume very often. The Lete River random battles are an early example. But for the most part when a new script is launched the stack pointer is reset to 0. Seems like the game has "new script" and "new child script" functionality and the former automatically places the new script at the base of the stack. Basically everything uses the former and so this bug went undiscovered for so long. Also, loading an interior map will zero-out all the memory for the script engine, fixing whatever damage previous scripts may have caused. Good idea whoever decided to do that. I think there's still some obscure bug with saving Gogo, then Strago, then taking the Gem Box all consecutively with no breaks? But the scripting engine is pretty solid otherwise. Who is going to launch 10+ child scripts? After a "Game Over" the scripting engine will always be reloaded, right? Not on the overworld! Slight miscalculation in my previous post. The 51st death writes to 7E062[DEF], but reads from 7E063[012] when the script ends. And that's where the fireworks happen. Theoretically the game is busted long before then. Your first 10 or so Game Overs write the Game Over script repeatedly onto the stack. Your next couple deaths overwrite the middle variables that don't seem to be important. And then if you keep dying after that you'll start writing the offset of the Game Over script into the area where the return offsets belong. (Meanwhile, the return offsets themselves are also corrupting unimportant memory a few bytes ahead!) But none of this matters, because like I said, FF6 never pops the stack. The next non-Game Over script or map-load event will just zero all the memory. By the way, if you manipulate the 51st death to end safely without a softlock you can keep going forever. $BE just keeps going up and up and you can continue to corrupt a wide area of memory that really does nothing. I haven't tested 85 and 86 deaths, where $E8 would overflow and return 0x02. But a stack pointer which isn't a multiple of 3 probably still does nothing, even if it is abhorrent. The 51st death/script is the interesting special case. By then the RAM is completely wrecked. But each new copy of the Game Over script "paves the road it's about to drive on" so it is safe. (And the other territory it paves is never looked at.) However, the Game Over script contains an animated actor! Think about it: the music changes, your party leader takes a knee, and the scene fades out. $0630 (2 bytes) seems to be an animation counter for the animation of whichever actor is the #1 actor in the currently running script. $0632 (1 byte) is something about the graphics that actor is using. Together they make up a 3 byte offset that gets used to load a new script when the current script finishes. This position in memory is initially written with the Game Over script's offset, but of course it changes once the animation starts playing. As a result, the garbage fed to the scripting engine is determined by: a) your party leader and b) which frame you end the Game Over script on. And it can be predicted by $7E0630 (3 bytes). Now to figure out where I can load data from, and how to build interesting scripts in that area. EDIT: I can't predict which data is being loaded? What gets copied to $12E5 or $E5 is never quite a copy of what I see at $0630. Some other instructions must be modifying it. And sometimes I see the stack pointer jump all the way from 0x99 to 0x9C or higher in one frame, which tells me that whatever junk it loaded, then loaded more junk. (And hung.) I've been going about this by watching memory while frame advancing. So if multiple writes happen when I press A then it's impossible for me to follow.
Post subject: Game Overflow
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Thanks for posting that snippet! So now we know where the bad event code is loaded from, right? A 3-byte value starting at $7E062D. When calling a new script the game first takes the current function ($E5+6+7) and writes it to $7E0594 + $E8. (Since $E8 is the stack pointer.) It then loads the new script data offset and starts running that. Forgive me if this example is obvious. Say the event code is 7 functions deep, then $E8 will equal 21 and the current script pointed to by $E5-7 should also be located at $7E05A9. Since 0x594 + 21 = 0x5A9. Apparently the engineers decided that 50 nested scripts was enough and reserved space for exactly that amount. So when E8 gets up to 153 then the game will take script data from whatever is next in memory. $7E0594 + 0x99 = $7E062D. Now what the heck is at that memory address? And how can I manipulate it? I see it changing during the Game Over sequence. Since it appears right after the scripting engine's stack maybe it is some temporary variables used by the scripting engine? EDIT: let's call the glitch Game Overflow ^_^ EDIT2: script engine op-codes ctrl-f for "Event Commands"
Post subject: Game Over Glitch
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I found two memory addresses which increment consistently when you "Game Over" on the overworld: 7E021C and 7E12E8. The second one seems to be the trouble. I don't know what that memory address normally controls, but it only ever does two things:
    * Reset to 0 * Increment by 3
I think it has something to do with the scripting engine. A list of things that use/reset it include: starting a battle (except on the overworld), any time a scripted sequence runs, getting a game over (see previous), returning to the title screen, and opening the menu (except on the overworld). This variable pretty much never gets above 6 during normal play. When the Game Over scripted sequence begins to execute (kneel, change music, fade, etc) $12E8 is incremented by 3 like it is for most scripts. But if you do it repeatedly on the overworld then none of the common things which would reset it to zero ever happen. This is easy to arrange: save one step away from an encounter, at low life, and hold right+A plus emulator turbo. $12E8 will climb by 3 each death until it reaches 153 (0x99h). When $12E8 is equal to 0x99h then the Game Over script will have some other junk appended to it. What garbage the scripting engine is fed doesn't seem to have anything to do with your lead character (in my experience). I think it has everything to do with your input:
    * the timing of when you press A to acknowledge the "Annihilated..." message * when/if you press A to cut the Game Over sequence short
By varying those two things I was able to get a number of crazy effects: a screen that said "form 4 groups" (!), a save file selection screen that looped, regaining control after the game over event (you're still softlocked), a music change, a rename screen for Locke, the final battle's "Determine Order" prompt, the snow scene from the prologue, and a bunch of parts of the credits. Again, all I did was save state with the "Annihilated..." message up and press A randomly to get different effects. This doesn't seem like a broken stack or memory corruption. (Except for when that does happen as a consequence.) All of those effects, although crazy, are consistent with the scripting engine doing those things intentionally. So now the question is, what data is the script engine reading from, and can it be made to set a few choice event flags and return safely? The run would end real quick if it's that easy.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I can't believe how reliable this is? x_x It must have something to do with the music track. I tested Celes, Edgar, Locke, Setzer, Terra, Relm, and Strago each in a party of 2. And all I got was the same softlock as above for Umaro. I tried multiple spots on the WoB, but nothing changed. Cyan however caused the game to explode! But, I was using a save file which had done 1 of 2 sketch glitches from the old route, and Cyan's palette was wrong as a result. Also my Celes was Kutan. I'm not sure if these things matter? I have a feeling keylie's glitch is much more important, though. I think the setup for this one will be too much, if it ever does anything besides end the game anyway.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Serious post: the bubble mechanic is very interesting. It's so interesting, actually, that it seems to have obscured the designer's ability to make interesting levels. After watching the whole TAS I can only remember four enemies: snake (paces back and forth), octorock (pushes blocks), the green charger, and the turret. But none of them except the snake are used more than a few times. They also implemented traditional push blocks and the arrow panels from Eggerland/Lolo (also green!) and barely used those, too. Instead the game mostly consists of:
    Getting the block around a corner with magic bubbles Getting the block across water with magic bubbles Anti-magic squares where you can't use magic Collapsing floors
Over and over and over without much increase in difficulty. (Until the very end.) It's like they were having so much fun with the core mechanic that the unintentional thought was "Meh! Let's just vary the layouts and keep doing this." Voted yes by the way.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Charming game, but the date is wrong. It's May 17th.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Read the comments, watched the encode, THIS GAME IS TERRIBLE. The TAS is short enough to put up with, though, and it's constantly doing some interesting things on each screen. Yes vote.
Post subject: I can't even
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
This NES game has audio quality high enough to be flagged by YouTube. Some of the levels feature Uncle Sam superimposed on the American flag, wearing an eyepatch. The temporary encode is exactly 57:30 long. Why does the results screen say SMOKER at the top? Please tell me this works with the power pad.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Yes, the Japan version. (The one called "set 3" in MAME.) There are two reasons to run the arcade version: 1) Stopping at the kill screen is convenient. It's a famous kill screen. 2) Like Pac Man, there does exist a mathematically perfect, highest possible score. But I don't think anyone has ever tried for it. If the point of this run was to include 50m and the accessories, and maybe show things that aren't done during a speedrun, then I think a max-score game would do that. The planning would be interesting too. Do you still basically speedrun the levels to score the highest bonus? If so, are certain accessories worth it? Is score scumming with the hammer worth it? Can you manipulate all the fireballs in 100m to overlap, then jump that pile repeatedly? This is all just a suggestion. I tested a few things in FBA and my experience was unfun enough that I'm not making the run.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Is there a TAS of the arcade version going up to level 22 and getting a million points or more? That's probably the best way to play this game 100%. Although - I just watched a video of the kill screen, and actually with the up+down ladder glitch it kind of looks possible to win. EDIT: up+down doesn't work in the arcade version, but the 25m jump bug does. EDIT2: I got up to 100m on loop 22, and it seems barely possible. FBA 0.2.97.34 only has movies and savestates, no slowdown or frame advance, and it's too annoying to try to TAS. You'd have to manipulate all the fireballs to run away from you since jumping is too slow, right? On loops 23+ the game gets easier and I'm not sure when to end the movie at that point. But getting to loop 23 would be awesome.
dkongjo1.ini wrote:
cheat "Loop 22 Plz" default 0 0 "Disabled" 1 "Enabled", 0, 0x00006229, 0x16
EDIT3: 100m on loop 22 is barely impossible. I got 6 rivets. So there is a good stopping point for 100% or max score.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Looks like an awful game done quick. Yes for vault.
Post subject: Scrabble Playaround
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I've got some ideas for a TAS playaround. Because I'm sure this high budget* GBC port of a traditional board game is flawlessly programmed* and contains an accurate dictionary*. - First check for dumb bugs. Can you wrap words around the board? Are the left and right edges of the board considered to be touching for purposes of building off/around words? There must be something very wrong this game. - Can you challenge words in this game? How poorly programmed is that feature? Maybe if you spell RECORD above and to the left of REST such that the two letter words OR, RE, and DS are formed then the play will be regarded as legal since "RECORD" and "OR" are in the dictionary? (Assuming "DS" is not word.) - I once programmed a version of Upwords which originally did not acknowledge perpendicular words on "both sides" of a word when extending an existing word on both sides. Who would think of that? - Extract the game's dictionary and make plays which demonstrate how terrible I'm sure it is. Spell QUIJIBO and manipulate the cpu into allowing it. Then spell a common word like TILED and manipulate a successful challenge from the cpu. - Blank tile hilarity. FeCK. (Spoiled if this game implements blanks by drawing on them.) - Never let the cpu make a play. And if they do make a play, then it should be LENT or MULE which you extend into CROMULENT. (I'm sorry for the crimes that The Simpsons has inflicted against your sport.) - And if possible, in addition to all of that, make the shape of the board into something interesting. Maybe all squished on the right, fill the entire perimeter, treat the bonus spaces as solid walls, or make pixel art of something. - Can you corrupt memory by spelling 8 words in a single play or by making a word longer than a certain length? That champagne cutscene is outrageous. I love it! Someone on the dev team was totally trying to get away with one there. I don't think it was unintentionally erotic. Why does Scrabble have full motion cutscenes anyway? Nevermind scenes with high resolution alcohol. Super Mario Kart had champagne but it was 8 pixels and very relevant to victory lane. What other cutscenes does this game have? Are any of the player animations funny?
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
I enjoyed the movie and I don't think the length should count against it. If the author had decided to cut it off at 9999m because "meh this game is endless" then the movie would be 3 minutes long and probably everyone would love it.
Experienced Forum User
Joined: 11/17/2005
Posts: 278
Location: Massachusetts, USA
Definitely use the screenshot with 21 stars and Yoshi's tongue wrapping around the screen! It perfectly shows what is happening. I think I've figured out why some ACE runs excite me and some bore me. This isn't a hard rule, but I think the runs which type code into a multitap are kind of cheating now. Remember the original SMW ACE? (90 seconds) That was exciting! There are a couple Mario runs now which "code" by using the positions of enemies as instructions. That kind of setup I think is easier to appreciate because the player did it. But when the game crashes and is reprogrammed by a multitap it seems like the input is for the console, not Mario. But then again there are two SNES RPGs (Earthbound, SoM) with a menu glitch that can point-and-click straight to the credits. And I think those are still interesting.
1 2
11 12