1 2
5 6 7 8 9
Joined: 3/16/2013
Posts: 43
Good to hear, Cronikeys. Should we expect a WIP in the (hopefully near :P) future?
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Thanks for the info blahmoomoo. I'll look into getting reset functionality added to the Banjo-Tooie version of Mupen using that source. As for WIPs, I plan on releasing the first one once I enter Mayahem Temple (about 4 minutes into the run). This is my first 3D TAS (before this I've only worked on Super Mario World hacks) so constructive feedback is going to be very much appreciated. Mupen isn't the greatest so most of my work so far has been setting up ram watch and a way of calculating angles, but I am in Spiral Mountain and I've manipulated the Jinjo RNG so that I will get the white one first.
Joined: 3/16/2013
Posts: 43
I was going to suggest the White Jinjo Manipulation. As for Mayhem Temple, I have some input. When you take control of Mumbo for the first time, maybe you could do the following in sequence: 1. Collect the jiggy at the top of the Temple 2. Drop down and collect the Treble Clef behind the Temple 3. Drop down to the Golden Goliath statue I say this because the sign next to the statue can be manipulated with JamJar's dialogue for signs (provided you haven't used that dialogue yet). That way, you could save taking damage and skip that dialogue using L+R+B. Just a thought ^_^
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Alba wrote:
I was going to suggest the White Jinjo Manipulation. As for Mayhem Temple, I have some input. When you take control of Mumbo for the first time, maybe you could do the following in sequence: 1. Collect the jiggy at the top of the Temple 2. Drop down and collect the Treble Clef behind the Temple 3. Drop down to the Golden Goliath statue I say this because the sign next to the statue can be manipulated with JamJar's dialogue for signs (provided you haven't used that dialogue yet). That way, you could save taking damage and skip that dialogue using L+R+B. Just a thought ^_^
It's faster to get the jiggy on top of the temple with Beak Bomb (the flying move) after getting the Jinjo on the roof of the kickball arena and I'm planning on using that sign trick thing -- it's mentioned in the realtime route I'll be somewhat following. Most of the changes I'm making to the route are going to be once I get clockworks. There's a glitch called "clockwork warping" that lets you enter doorways as Banjo and Kazooie or Kazooie solo from a distance. Example (seen here in the first part of the video to enter Terrydactyland before opening it): Link to video This can be used for simple routing adjustments instead of sequence breaks in places that are unrealistic for realtime runs, so I've been going level by level and making note of where I might use these instead of walking/climbing/swimming to doors.
Former player
Joined: 6/30/2010
Posts: 1095
Location: Zurich, Switzerland
I can only imagine how hard the item management will be.. But I'm pretty excited for this, I can't wait to see the first WIP.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Joined: 3/16/2013
Posts: 43
Ah, good to know. But yeah, I've seen your clockwork warps lol. As far as item management, I agree with andypanther in that it will be difficult, but you should be alright. Oh, btw: Link to video Is this in your WIP at all? Because I feel it might shed a few seconds, rather than watching the cutscene.
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Alba wrote:
Is this in your WIP at all? Because I feel it might shed a few seconds, rather than watching the cutscene.
That is also in the route I'm using. I posted Pjii's route a while ago but here it is again: http://pastebin.com/eHxLJ7hU
Joined: 3/16/2013
Posts: 43
Haha sorry about that. Anyway, glad to hear your up to date on everything in your run ;) I've been thinking the past couple of days, do you think item management will be a problem? It's not like the item scarcity is really an issue (that I know of) in this game.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1022
Certainly in realtime runs of Banjo-Tooie, waiting for clockwork eggs is very common. A TAS needs rather more clockwork eggs, but is also in a better position to get them quickly. I doubt there will be many problems with other items, though.
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Alright so updates - I had the idea to get the white jinjo in Jade Snake Grove first instead of the one in the pool and it turns out that it is faster (Pjii timed it) by about 7 seconds which works out well because skipping the opening cutscene on frame 1 yields that jinjo pattern :) no need to let the opening cutscene play for 15 frames. Anyway, right now my biggest problem is memory addresses. I was able to find Banjo's X, Y, and Z (00A23B00, 00A23B08, 00A23B04) but I can't find facing angle or speed. I find values that seem to work, but they aren't dedicated addresses and change between loading zones and sometimes multiple times on the same map. Help would be appreciated! If no facing angle or speed address can be found, what would be the best way to proceed? Obviously it'd be hard to optimize a straight line with a spinning camera without these values.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
Have you considered that speed/direction might be stored as a (normalized?) vector instead of as angle/magnitude?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Patashu wrote:
Have you considered that speed/direction might be stored as a (normalized?) vector instead of as angle/magnitude?
I'm not really sure what that means or how I would find that :s I think what you're saying is a value that is positive when headed north and negative when going south or something like that and an absolute value that's higher or lower dependent on speed. I found something similar to that for camera angle but it didn't persist through loading zones or for very long on the same map, either.
darkszero
He/Him
Joined: 7/12/2009
Posts: 181
Location: São Paulo, Brazil
Cronikeys wrote:
I'm not really sure what that means or how I would find that :s
I'm not sure how to explain what a vector is, so pointing to the right artcile and hoping you've already learned that at school is good :) A normalized vector is a vector which length 1, meaning the only information it provides is a direction. This would be combined with a speed in order to calculate the movement. Vectors are usually stored in memory with three numbers, for x/y/z. These values also probably aren't integers and instead floating point numbers (or fixed point, depends on the n64).
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
darkszero wrote:
Vectors are usually stored in memory with three numbers, for x/y/z. These values also probably aren't integers and instead floating point numbers (or fixed point, depends on the n64).
I've tried finding dedicated addresses without success. I have experience locating memory addresses in both 2D and 3D games on various consoles, but for whatever reason the Banjo-Tooie addresses are different. I've tried searching for all types of values. I've spent hours trying everything I can think of. Like I said in a previous post, I found values that give me the angle - but they aren't persistent. They work in one room but don't work in the next -- sometimes they don't even work throughout the same map. I either need help finding a solution or advice on how to proceed without these values. I'd wager to bet it's either a peculiarity of Banjo-Tooie (seeing as I have no problem at all locating and using the Banjo-Kazooie memory addresses) or that it is an emulation issue. Edit: To illustrate the problem: Link to video See how the bottom three addresses (which appear to be angle) change from a meaningful value to randomness at 35 seconds in? It does this for -all- addresses I find for speed or angle. I have a list of like 40 already. It changes between rooms and just randomly on the same map like this. Again, it does this for speed as well. I've found addresses that increase from 0 - 700 based on how fast you are moving but they just randomly disappear like this.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
It's unlikely that it's an emulation issue to move memory addresses around. Perhaps the addresses you're looking for are inconsistent because, now that you can control many different characters (banjo alone, kazooie alone, clockwork kazooies, etc) it now stores information about them dynamically?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Patashu wrote:
It's unlikely that it's an emulation issue to move memory addresses around. Perhaps the addresses you're looking for are inconsistent because, now that you can control many different characters (banjo alone, kazooie alone, clockwork kazooies, etc) it now stores information about them dynamically?
Whatever the cause, I need help on dealing with this problem before an optimal TAS can be made. I don't mind making the TAS without these values, but I feel like it would be lacking on the technical side if I don't have perfect angles. I'm not going to calculate my angle each frame by comparing to the xyz of the previous frame (unless anyone has a lua/cheat engine/mhs script that does this automatically). I also really don't want to have to find new memory addresses for everything every 500 or so frames.
RachelB
She/Her
Player (127)
Joined: 12/3/2011
Posts: 1579
You'll need to find a pointer to the data. Which is easy if you know where it starts, but you probably don't. I'd guess the easiest way would be to just search for pointers to every address within a kilobyte or two before one of the relevant address.
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
RachelB wrote:
You'll need to find a pointer to the data. Which is easy if you know where it starts, but you probably don't. I'd guess the easiest way would be to just search for pointers to every address within a kilobyte or two before one of the relevant address.
Finding pointers and offsets and all that is beyond my skill range. I've tried for many hours to find these memory addresses and researched pointers, offsets, assembly, etc etc... but basically I'm not a computer programmer and 99% of what I'm reading goes over my head. If someone could help me get speed and angle I would appreciate it.
Joined: 2/1/2008
Posts: 347
A pointer is just a value that is used to refer to a memory address. If you paused the emulator when you think you found addresses that are being used for heading, try doing a data search (if a pointer search doesn't exist in your RAM search tool) on the value of those addresses. If you find an address that contains the value of one of those addresses, watch it and see if it changes and, if it does, if its value points to an address that is now being used for heading. If you didn't get what I was saying about a pointer, here's something more visual (made up numbers). Address 0xBEEF: 0xCAFE Address 0xCAFE: 0x3944 (apparent heading info) The value at 0xCAFE is currently holding the heading information you want, but you know it will move eventually. Looking in memory, you find that 0xBEEF currently holds 0xCAFE, suggesting it is a pointer (holding the value of a memory address) to the heading information. After running the emulator for a bit, eventually you may see something like this: Address 0xBEEF: 0xDEAD Address 0xCAFE: 0xFFFF (junk) Address 0xCAFE no longer holds what you are looking for, but 0xBEEF changed its value. If you're correct and 0xBEEF holds the pointer to where the heading is, the heading is now at address 0xDEAD. I'd try searching myself, but I don't know where to start looking since Mupen64 doesn't have RAM watch/search built in. I am guessing you know more about that than I do, Cronikeys.
<ccfreak2k> There is no 'ctrl' button on DeHackEd's computer. DeHackEd is always in control.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
blahmoomoo wrote:
I'd try searching myself, but I don't know where to start looking since Mupen64 doesn't have RAM watch/search built in. I am guessing you know more about that than I do, Cronikeys.
Typically you use Memory Hacking Software ( http://www.memoryhacking.com/index.php ) on the program. The problem is that the memory addresses will change every time you re-open the emulator (because it will dynamically initialize it in a different place), but after finding one easy to find address again (HP is a common one) you can align everything. Then do RachelB's idea of finding addresses that show speed/angle, then searching for memory addresses that stay static holding a value within 1kb of that address.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Player (16)
Joined: 7/3/2012
Posts: 33
Since you have Cheat Engine, you can simply use the program's Pointer Scan function. First, right-click on the address in the list that you want a pointer for. You should have the option to "Pointer scan for this address". Select it, then you will have a dialog for scan options. The level indicates the number of layers of pointers - for a level of 5 it will pick up chains of addresses such as P-->Q-->R-->S-->T-->U which are probably a bit too long, so drop it to 1 or 2 to start. Once you start the scan, after you select a filename to save to you will receive a long list of addresses and offsets. Once you have this, all you have to do is wait for the addresses to change, find the new address, then go into the scanner and select Pointer scanner --> Rescan memory, enter the new address and it will filter out the invalid entries. To add a pointer to the address list you need to check the Pointer checkbox in the Add Address window. Enter the base address in the main address box and then the offsets in order. Forgot that CE's pointer scan will find pointers based on external addresses, whereas we want pointers based on internal addresses. There's probably a way to deal with this but it's likely to end up rather convoluted. If only we had a better N64 rerecording emulator...
Joined: 7/12/2011
Posts: 142
Location: Indianapolis
Kirkq has worked on a script for MHS that will help me get the values I need. He's going to train me on that sometime soon :] In the meantime, I found a rather significant glitch: Link to video It's now possible enter Hailfire Peaks before Grunty Industries. This could potentially change the TAS route compared to the RTA route (this is a very difficult trick that probably won't end up in realtime runs). Also for those who want to see a Banjo-Tooie TAS, I spent a couple of hours doing an IL of this jiggy as practice: Link to video It was done before Kirk had finished his MHS script. My main goal was to beat bobmario's tas of the same area (which I did by 4 seconds using a cutscene skip).
ripz
He/Him
Joined: 4/19/2014
Posts: 40
Sorry if this has already been found. I discovered this a few years back and never got around to uploading it. Not sure if this would save that much time, but I figured I'd share it anyway. Link to video
Joined: 12/18/2012
Posts: 22
Location: Australia
ripz wrote:
Sorry if this has already been found. I discovered this a few years back and never got around to uploading it. Not sure if this would save that much time, but I figured I'd share it anyway. Link to video
Pretty awesome strat, I think that Clockwork eggs are faster in collecting this jiggy though.
ripz
He/Him
Joined: 4/19/2014
Posts: 40
shredwot wrote:
Pretty awesome strat, I think that Clockwork eggs are faster in collecting this jiggy though.
Yeah, I thought about that when I was recording this. Do you know if CKE's are used in Pjii's most recent speedrun of BT? Haven't had a chance to watch the entire thing yet.
1 2
5 6 7 8 9