LookAtTheWindow
Lon Lon Park (Banjo-Kazooie: Jiggies of Time) - DK64 Soundfont
updated
This video just covers some mild gameplay in wireframe as it does reveal some aspects, mainly that there's a 50% chance of getting a bit of a headache due to no framebuffer clearing in some maps.
Unfortunately, if it wasn't for needing LLE, this would be a really fun hard mode.
CHAPTERS
0:00 - Training Barrels
2:46 - Trying to get a moonkick
4:01 - Exploration of Training Grounds
4:55 - (Headache warning) Opening & Entering Japes
Anyway, technical time.
DK64 has 4 rendering modes. Why? Who knows. Indexes 1, 2 and 3 point to the F3DEX2 microcode functions and data files. Index 0 points to l3dex2 instead. If we modify the table so that index 3 (the one that the game uses) points to l3dex2, you get this, but with an asterisk.
Emulators use HLE for their graphics (for the most part), as such, the graphics are rendered through a process external to the game which is easier on the computer (and more heavily tested), but doesn't actually reflect what happens in game. As such, you have to turn the graphics mode to LLE. There's some emulators where changing to LLE might not work (including PJ64). As such, you have to do the weird following process:
- Load up DK64 in LLE, change the rendering mode addresses
- Turn off LLE
- Hard reset the console (don't select another game, just reset the console)
- Change the rendering addresses again
It's a bit weird, but it's there.
The address changes are as follows:
- 0x807F057E: Set to 0x3240
- 0x807F0596: Set to 0x0C60
Unfortunately you seem to need to do the dismount at the top to get the speed to conserve. It seems that jumping from a tb fall doesn't yield this. Still more work to do but this is exciting stuff.
Replicated and dissected by myself, with a change comment from Adeleine that pushed me in the right direction.
Whilst you're in rocketbarrel, your speed cap is set to 300, which is a little over 2x the normal speed of a grounded walking kong. Entering a tag barrel without pressing A upon entering the tag barrel will allow you to maintain that speed out of the tag barrel. If you then buffer a Z press to get a frame 1 crouch out of the tag barrel, you can get a kickslide with Tiny with a huge momentary speed boost.
At the moment, extending this speed boost further seems unlikely, but we are looking into ways.
TLDR:
- Rocketbarrel into a tag barrel, make sure you're not holding A upon entering the tag barrel
- Tag to Tiny
- Buffer Z to get a frame 1 crouch
- Kickslide
- Zoom
Unfortunately, raw tagging is usually not effective due to the game's lag suppression code. Since these spikes can only occur once every 2 frames, the game successfully suppresses the lag spikes, despite how major they are. However, if we pause, and then tag on the frame before the lag spike from the unpause, we get two consecutive frames of a lag spike, resulting in a lag boost that is sufficient to clip through most walls.
The pause is a sure-fire way to get it in every situation, but isn't always required. For example, chunk loading generates a huge lag spike so would also work.
In some maps, lag spikes from non-tagging sources are not required. This is because the game has a boolean value for whether to apply lag suppression or not. In some maps, the lag suppression is disabled, meaning that just the game having a 10-frame lag spike will cause a significant lag boost. These maps are:
- Japes Minecart
- Factory Car Race
- Nintendo Logo
- Forest Minecart
- DK Rap
- Castle Minecart
- All intro story maps
- Bloopers
Unfortunately all of these maps have a TA ban in standard TA Hacks, meaning that using a taggin' wagon isn't possible.
The pausing here means that this doesn't "obsolete" phase tricks for any Tag Anywhere TAS, but would make them less prevalent as you could clip through walls of all angles (not just the range that the phase state requires) and lag sources other than pausing would make this faster than phasewalking (probably).
Whilst it's not confirmed that this actor is not 100% confirmed to have been located in BFI, it's almost certain that it would have been due to it's code.
The aesthetics of the enemy would most likely be the 'Jack in the Box' enemy or the 'Boxing Glove in a Box' enemy from the Kiosk demo. I decided against changing the model away from B Locker to remove any potential confusion about the status of this actor in the vanilla game.
Here's a general summary of it's behavior:
- With none of the following set, it can't be interacted with
- Upon opening the Rareware door, it becomes active
- Harming it brings up cutscene 2 in the map
- Upon it being harmed, it acts passively towards the player
- Pressing A after it's become passive near the actor will bring up cutscene 3 in the map
- Setting global flag 0x24 and going near the actor brings up cutscene 4 in the map
- If you set global flag 0x23, you do not have to harm it to pacify it
This also brings a whole lot of context to the cutscenes that Isotarge discovered in this room a long while ago. You can find his initial discovery here: youtube.com/watch?v=lPH1kS34h5E
- Jungle Japes (Near the shellhive area - Shown in video)
- Museum (Near the entrance [JP/Lodgenet Only])
It's going to be added to DK64 Randomizer as a hard mode option, and gosh darn can it get pretty hard. This one took me a few attempts to get a video where I wasn't constantly getting wrecked by the first peel.
dk64randomizer.com
dev.dk64randomizer.com
Popping the balloon sets the control state (actor offset 0x154) of character spawner id 1 to 0x27. I'm using the DK64 Practice ROM to add a watch on-screen for the control state and then spawn a balloon. You normally can't pull out the gun during K Rool, however I disable the map property bit which is responsible for blocking this to pull out my gun and shoot the balloon.
Almost certain fact:
Due to it's internal name in ROM, the fact that it's hardcoded to display a lanky balloon sprite, it's safe to assume that it was intended for Lanky phase and that the intended target is therefore K. Rool
Theory:
This balloon is not present in Kiosk, nor is the code for it present in Kiosk. However, somewhere between Kiosk and US Final, the generic control states increased by 4. If you add 4 to 0x27, that yields 0x2B which is the control state which initiates the instrument sequence. Therefore, it's very possible that before instrument pads were coded in, that you'd instead pop a balloon to get K Rool's attention instead of playing the instrument. This would rely on the create collision function using a hardcoded 0x27 rather than any form of enum and the control state increase happening after this code was written
However, from context clues, the code for this very closely matches the code for the charging zinger, including animation indexes that's called. Therefore, we can assume that this would be intended for a zinger.
EDIT: Checked Kiosk. It's used there, and is attached to a zinger model. 100% confirmation that this was intended to be a zinger.
To activate in your game, you would need to set 0x8074C37C to 0x806B4958.
Generate a seed: dk64randomizer.com
Twitch Highlight: twitch.tv/videos/2135519925
On the right-hand side of each situation is the accompanying floor map. Floor tris are colored white, so any gaps with a dark grey are because there is no floor triangle under that coordinate, and therefore you can stand on it.
This isn't a comprehensive list of all areas without a floor triangle, but just a few that I found within about an hour of something. This is unlikely to be worthwhile in terms of speedrunning, but it is interesting to document.
CHANGES:
- Scene 1: No significant changes here outside of map geometry getting in the way. It seems like the part of the code which deloads certain aspects of map geometry wasn't figured out at this point. As such, the seals just go through K. Lumsy's prison
- Scene 2: From about 1:19 onwards, there's about 18s of added footage which is not used in the final release of the game.
- Scene 3: No notable differences here
- Scene 4: An additional shot of the back of K. Rool's ship was added before the fade into scene 5
- Scenes 5 & 6: These two are swapped around between Kiosk and final, with Kiosk doing the in-Helm segment first. In the in-Helm segment, K Rool has a little bit of an extra animation. When it pans to DK behind the glass screen, DK is unusually huge here, and isn't doing his press-up animations, additionally it waits a little longer on DK.
In the out of Helm segment, yet again, like Scene 1, the devs had not programmed in the ability to force deload terrain
- Scene 7 (Inside the treehouse): Completely absent from Kiosk
Strim: twitch.tv/theballaam96
Project: github.com/theballaam96/kiosk-restoration-project
This is thanks to a fix for a bug in kiosk where the game wouldn't initialize a counter variable, and as such would crash from an invalid index to an array call (attempting to read from invalid memory).
"You see the driver hooks the function by patching the system call table, so it's not safe to unload it unless another thread's about to jump in there and do its stuff, and you don't want to end up in the middle of invalid memory."
github.com/theballaam96/kiosk-restoration-project
1) This is a ROM Hack of the Kiosk ROM to bring the data (mostly map geometry and collision) from the US version of the game into Kiosk for data which has been stripped from Kiosk. This is to make it easier for kiosk enthusiasts to traverse the kiosk world and also to potentially bring it inline with what's accessible in the E3 demo
2) I figured out texture re-mapping since the last video, about 1200-ish textures still lack a form of mapping from US to Kiosk, but 4700 mappings ain't a bad start. I was able to do this programmatically by running a script to check a US texture against all kiosk textures and figure out which was the most similar.
3) Lots of mini differences here, namely a lack of coins, the requirement for 70 coins (likely a placeholder) and the fact that sprint uses up coconuts (something they would fix before the US 1.0 release for good reason).
1) Map Geo Textures are messed up because the mapping between US and Kiosk is all messed up. Working on something to fix this
2) Everything in Kiosk is weirdly shifted to the left with T&S. Will fix that with my hack
3) Text isn't skippable, apparently we're playing the JP version now
4) GH Repo: github.com/theballaam96/kiosk-restoration-project
pj64-emu.com
dk64randomizer.com/rdb_editor.html
youtube.com/watch?v=mnb6Vv6Ezc4
If you exit Lanky's attic quick enough, the minigame doesn't register as in progress before you leave, meaning that re-entering results in the game completing before you kill anything.
In this demo, I had about 53f to spare on the timer, so this could be executed in real time if someone could do this whilst wasting less than 1.76s to this demo.
This is not faster than beating it normally in the vanilla game by about 2.6s. So if you're good enough at this, but can't beat the minigame within 2.6s of what the 101% TAS does, this will be faster for you.
To perform tag rolling:
- Start a roll
- Have a neutral stick when you get to peak speed
- Wait until you start slowing down, then tag to another kong
- At least 2 frames later, tag back to DK
- As soon as you crouch again, start rolling
- Go back to step 3 and repeat indefinitely
You don't need to touch your stick after the first roll unless you plan to change direction. Touching the stick will make this very slow.
This doesn't impact the vanilla game, since that doesn't have Tag Anywhere.
Safe to say, impossible
Also, giving the input viewer a second outing after some feedback on my previous video. Going to try to include this in all future WIPs in an effort to refine it as much as possible before the full encode. Feedback on this is appreciated
I intend to use this on the full 101% TAS.
Script: cdn.discordapp.com/attachments/129337789648076800/1167105056231931986/input_renderer.py
Enjoy the WIP
The photo lag strat hasn't been optimized. If that's chosen as the preferred strategy, I'll optimize it. Photo Lag should save in the region of 7-10 seconds from the skipped cutscene
More details: twitter.com/tjballaam/status/1682288024833368064
This is the start of Factory, and contains some bothering, some melon firing and freeing the last kong. Additionally, a lot of move purchasing as well.
Relative to the 2019 LOTAD, it's a little harder to compare given that there are minor routing differences. However, when Lanky leaves the shop, we're already 44s ahead (roughly) in this segment alone. Given that there's another minute afterwards, but there's routing differences, I'd say we're about 40-45s ahead in this segment. We are roughly 90s ahead of the 2019 LOTAD at the 32 minute mark
0:00 - The fun stuff
3:27 - Move buying city
This is an Any% TAS of the "Banjo-Kongzooie" hack by GloriousLiar. A download to the hack along with the source code can be found here: github.com/GloriousLiar/Banjo-Kongzooie
This TAS was made with a fork of BizHawk 1.13.2 which prevents nasty graphical spiking bugs: github.com/theballaam96/BizHawk-dk64Edition
The aim of this TAS is to reach the credits. Whilst the credits can be reached from just entering Banjo's house at the start of the game, there isn't a big sign which says "credits" when you go near it unlike the one in the waterfall area of Gruntilda's lair.
The old route used to go through Spiral and Mumbo's to clear the barriers to reach the waterfall lair room. However, when Tag Anywhere was introduced, I knew that with enough brute force, you could ledge void to void in Spiral. As such, warp to Training Grounds and navigate to Galleon lobby which is the map overwritten by the waterfall lair map.
To do the ledge void, you must be DK and tag to Diddy 2 frames before you grab the ledge, additionally, you must hold exactly up on the control stick with zero magnitude x stick input.
Once the ledge void is performed, it's the usual DK64 circus to get to Galleon lobby, however I do sprinkle in a couple interesting things which can be done as a result of tag anywhere.
Firstly, I change to Diddy to swim underwater. Diddy is the fastest kong underwater (by 0.001 units per frame over Lanky, but every little helps). Once underwater, instead of using phase swimming (That trick is *so* 1999), we use a skew swim instead, spamming the Tag Anywhere input to keep the kongs in a skewed rotation whilst swimming underwater to clip through the Galleon lobby grate
So what's the trick here. If you halt the game for long enough, you can get a very crazy lag boost. But DK64 does have methods to dampen this with it's complex lag boosting algorithm. However, if you have 4 frames of lag for the past few frames and then pause for your extended boost, that boost will apply.
Between the orange throw and the extended pause, there are a few hidden pauses used to extend the duration of the lag from the 2 oranges by a few frames, but probably is possible with a 4-orange explosion without this.
Once you do this, you can pause for as long as you like as long as you like. The longer you pause, the stronger the boost.
With this, I show off a meme helm early method.
However, because it requires inputs that are literally impossible to do on an N64 Controller, don't expect to see it in any TASes if anyone does TAS the LodgeNet version.
0:00 - The Setup
0:03 - The wait
0:27 - The payoff
The short answer, no, at least not to a non-negligible degree.
Spawn Snagging was found on the 17th April 2017 by myself when I noticed whilst TASing the first NLE LOTAD that the cannon GB in Galleon was visible for 1 frame upon loading the chunk. Being curious, I checked to see whether it was grabbable within that frame with tools, and it was. Then I checked to see whether it was doable without tools, and it was.
The first few spawn snags that were found (including number GB, Piano GB and Arcade R1 Skip on VC in this video) were prior to the realization that TBS locked cam could be used to keep the camera away from the chunk, as well as being prior to the discovery of Orangstand TBS Noclip by GloriousLiar. As such, many of the very early setups use a very convoluted series of out of bounds maneuvers to get to the GB location without loading the room. Additionally, these were also made in the early days of Phase walking (TJ finding that trick about 2 months prior). As such, usage of phase walking was limited as knowledge of quick phasewalk locations was not up to par with what it is today.
Original upload dates: 17-APR-2017 to 22-APR-2017
Original videos:
youtube.com/watch?v=3xDtTYRYMzU
youtube.com/watch?v=dTsAjWHQCNA
youtube.com/watch?v=C5qeV-z1cDw
youtube.com/watch?v=37z_JDp8vY0
youtube.com/watch?v=a4q7l--HedI
youtube.com/watch?v=i4kB0HPWEAQ
The purpose this route serves is that this is a faster route compared to 2014 (by about 50-60 seconds) which doesn't do Helm under ISG. The major tricks you need to learn are:
- Phasewalks (To get out of Helm and into Factory as this route doesn't do orange barrel)
- TBS with simian slam unlocked (if you do uncrouch TBS)
- Telegrab Helm Early with Warp 4
Outside of being faster, this route also uses a 100% consistent telegrab. The downside is that this route does Helm a few minutes later into the run, which means that the trick gauntlet of Helm Early & Switch Kick is a little later in the run.
This also introduces the runner to some 2015 tricks as they'll need to do Double Reset, Diddy TV and also Tiny phase without the gun unlocked
Full route pastebin: pastebin.com/LqG29LzL
An Any% TAS of the recently released "Banjo-Kongzooie" hack by GloriousLiar. A download to the hack along with the source code can be found here: github.com/GloriousLiar/Banjo-Kongzooie
This TAS was made with a fork of BizHawk 1.13.2 which prevents nasty graphical spiking bugs: github.com/theballaam96/BizHawk-dk64Edition
The aim of this TAS is to reach the credits. Whilst the credits can be reached from just entering Banjo's house at the start of the game, there isn't a big sign which says "credits" when you go near it unlike the one in the waterfall area of Gruntilda's lair.
As such, the route of this run is to get the 5 coins in Spiral Mountain, then collect 75 colored bananas in Mumbo's Mountain to access the rest of Gruntilda's lair which enables access to the credits. This run features many moonkicks, tag barrel storage, tag slides, moontails and a phasewalk too.
An interesting part of the source code which intrigued me was the fact that loading zones are moved around depending on whether you have completed the objective or not. As such, if you *could* reach it's default location, you can skip some requirements here. However, GloriousLiar had the foresight to put these well out of reach, even with some TBS telegrab shenanigans, these seem to be pretty unreachable.
Additionally, another thing I investigated was to see whether voiding in Mumbo's Mountain (which replaces DK 5DT) would bring me to Angry Aztec, which would enable me to go to Angry Aztec lobby, which is the TTC/CC Puzzle room in this hack, which would skip the 75 bananas requirement. However, the void boundaries in this hack are at -32000, -32000 to 32767, 32767. Not only does this make it a lengthy time investment (3.5 minutes of just DK rolling), but because the Isles Escape cutscene flag isn't set, this would bring you to Training Grounds. This does mean that a low percent would void in Mumbo's mountain (Maybe Spiral?), then head into Isles and then Galleon lobby (Waterfall lair map) to skip the 75 bananas. However, it would be a longer TAS than this.


