A fat man is kicked out of his castle and goes on a rampage to reclaim said castle.
You might want to watch the run before reading any of the following.
I got interested in TASing this game back in November 2010 and managed to save a few frames here and there. After I posted my WIP in the
WL2 topic, we started creating an improved run - and improved it here and there many times. Jlun2 discovered the walljump trick which proved to be very useful since it can be used to go out of bounds when used near a ceiling. We found goal doors in the OoB area which meant the run had to be redone. Eventually we ended up with an awesome WIP, but after talking to klmz I realized that the OoB areas were incorrectly emulated on VBA 19~23 and the WIP basicly died...
Gambatte, another GB emulator, is said to be emulating the OoB area correctly, but I couldn't find any goal doors in the OoB area at all with it. I tried looking for quite some time, but never managed to find any door at all. Sometime later, VBA 24-m arrived which emulated the OoB sections correctly, but due to those sections being useless now, all the anticipated awesomeness of a new WL2 run was gone and we didn't work on any run until August 2011.
jlun2 suggested to try the SGB version of the game, and quite surprisingly I found a nearby goal door right in the second room of the second level, so I put a lua script together and was all settled to work on a new run. Admittedly, the SGB version doesn't nearly look as nice as the colorful GBC version but we didn't want to let go of a 1.5 minute improvement after all, naturally. In my opinion a new 100% run shouldn't use any OoB glitches. Sure there would be nice glitching in every level, but the run already consists 30% of bonus games and loading screens. Cutting much more would hurt the run in my opinion. On the other hand, I always wanted to see the 100% run with all the non-gameplay parts cut out. :)
Maybe a new 100% run can use walljumps within the levels safely (and thus keep the beautiful GBC version). In the end, it's not up to me, I'm not going to make that run since I've had enough of WL2. :)
- Abuses programming errors
- Genre: Platform
Emulator: VBA 24-m
Tricks & Glitches
Walljump
Discovered by jlun2. It is done by dash-jumping into a wall with proper pixel position, then turning away for 1 frame and then moving towards the wall again. If done correctly, Wario should be standing inside the wall and he can jump from there.
This is the biggest time-saver in this run and allows you, apart from skipping some parts within the rooms, to clip into the ceiling and access the out of bounds area. Said area is actually just another part of the same level (another room), otherwise it is an actual garbage area (RAM or WRAM or whatever, we didn't try to investigate memory much).
We investigated the garbage areas quite thoroughly through trial-and-error and didn't come up with anything very useful except for the goal doors. Among the discoveries are glitched graphics, opcode errors, and a message screen saying "CAUTION, SAVED DATA cannot be used with the Gameboy system. Please use a Game Boy Color system.". But nothing like inter-level warps or instant End credits, although there may be the possibility that such useful effects exist.
Also note that many garbage sections lag quite a lot. This is due to the objects slots being spammed randomly. There are invisible (and sometimes visible) objects, platforms and other things floating in the OoB sections that can be seen by using my lua script (see below).
Skip through blocked passages
There are small passages that Wario can crawl through, but sometimes pots, blocks or other breakable objects are blocking the way. In
this old WIP (VBA19~23, GBC version), Wario is rolling into the wall, and remains enough inside the wall to crush the pot below him. Upon pressing "down" when landing, Wario can crush upcoming pots. I don't really know why it works, but it's due to the rolling state.
TODO: Is this correct?
Frame rules
On the GBC version, room transitions only take place every 4th frame, which means you save 4 frames or lose 4 frames. On the SGB version the frame rule seems to be arbitrary.
Pausing
The SGB version is more prone to lag. The RNG is responsible for lagframes, so pausing the game or delaying prevents the game from lagging. Whether pausing or accepting lag frames is better depends on the frame rules, deciding when the room transitions starts. Note: RNG and frame rules run during pauses but not during lag frames!
I couldn't figure out how RNG or frame rules work in this game. There seem to be several addresses involved. The 100% run's submission text mentions the silver coin appearing every 64th frame when crushing an enemy, but there doesn't seem to be a single address being responsible for this.
Level by level
Chapter 1, Story 1, Turn off the alarm clock!
A fat man in a bed.
Chapter 2, Story 1, To the castle!!
This level is completed very quickly by using a goal door that is located out of bounds.
Chapter 2, Story 2, Storm the castle!!
This shows roughly how the first room and the last room connect (Please don't mind the purple routes). The deprecated GBC WIP glitches to the top of the last room, falls 4 screen lengths while collecting coins every frame and then finishing via OoB goal door. I think this was one of the coolest things about this WIP, but sadly it's no longer possible, even on the SGB version. Instead, we glitched into the last room and left/re-entered to make the bat with the pounder appear and finished the level normally.
Chapter 2, Story 3, Defeat the giant spear man
This level doesn't have any working OoB goal doors or shortcuts, so it is played normally. Clipping into the tunnel near the boss, then dash-sliding saved about 1 second.
Chapter 2, Story 4, Go through the grand hall
We glitch into another room again, and finish the level quickly.
Chapter 2, Final Story, Kick'em out!
From what I remember, using a goal door in this level warps you to Chapter 1, Story 2's level or something.
TODO: Is this correct?
This level is played normally. The final boss uses addresses D037 and D038 which represent his fuel. D037 always runs out the same way, but D038 stops at some values randomly, depending on what Wario is doing. Crouching, crawling, going left or right, turning around, jumping all affect the way D038 decreases, so what looks like spazzing on the floor is actually the fastest way to make the boss stop. Input could have been ended sooner, but there would have been a headache-inducing 10 second long "Game saved!" screen, so it wasn't considered.
That's it!
Here is a simple lua script I made. It shows Wario's position, cam position, and enemy positions. Note that the fuel entries are commented out and that this script only works for the SGB version. Maybe this script can be improved in the future to include RNG, frame rules, etc.
Thanks to AndyD for helping! At the time of writing this, I wasn't sure whether to list him as a co-author, so I'll leave it like that for now. We can always change it later.
We hope you enjoy this run!
Velitha: Processing... may take me a 2-3 days as I need to make the 512 as well as SD.