Posted by Andrew Wegener on 9th October 2012
Two weeks before I left for Hong Kong, I had major reconstructive surgery on my knee. While I was glued to the couch, I needed something to keep me busy. What other than video games to save the day, right? This idea led to me hacking my Wii. It was surprisingly easy! I downloaded a GBA emulator with Pokemon Red along with an N64 emulator with an assortment of games including, but not limited to, Mario Party, Donkey Kong 64, Pokemon Snap, Yoshi’s Story, and of course, Banjo Kazooie (and the sequel, Banjo Tooie). Although some of these games don’t work (example: Pokemon Snap you cannot turn the camera, the Pokemon sensor red light thing doesn’t light up, and every picture is black when you talk to Professor Oak after each run), Banjo Kazooie runs pretty well. The opening cinematic doesn’t line up with the music properly, and there are a couple of color issues – the usually black shadows are orange for some reason – but overall the experience is virtually the same – fantastic. Since I’ve been in Hong Kong, I’ve been playing during the little free time I’ve had. Fortunately, my childhood memories of the game have served me well and I have completely finished the first 7 levels (100 note score, all moves learned, all jiggies, both empty honeycomb pieces, and even the cheato books!). Rusty Bucket Bay is next, but before that, I had to make a Scratch version of Banjo Kazooie. Quick tangent: I’m listening to music as I’m writing this, and a Banjo Kazooie sound effect just played (I downloaded about 300 sound effects from the game). Awesome timing!
Fortunately, I already had a side scrolling script AND gravity from Lunchbox’s experiments. This saved me a bunch of time and helped me get started right away with the “fun” stuff and got me excited to work on this project. This was assigned on a Wednesday, and that Friday we happened to have a make up class, and I practically was finished with about a C-grade project. Anyway, I started with the sprites. These are not my own sprites, however, I did edit each and every one of the 200+ (rough estimate) sprites I used.
Before I did any movement, I wanted a simple idle animation for Banjo. The logic was quite simple for this. The feeling of getting the script right on my first try felt nice
This is about as easy as it gets. Depending on the direction of Banjo, that direction of costumes would cycle through. Oh, I also discovered the nifty little comments tool which is just like in C++ (I recently learned) how you initiate a comment with a simple “//” followed by the comment. Cool stuff… for a nerd like me.
While Banjo is going through his Idle animation, Scratch checks to see if a button is being pressed every .1 seconds (defined by the Action variable).
This short but wide brick of script determines the value of Action. This nested group of logic is too wide to fit on my Macbook screen, but it basically says Action = 0 when nothing is pressed. If something is pressed, set Action to 1. This variable’s only purpose is to trigger the Idle animation of Banjo.
From here, everything was pretty much redundant. “(button) triggers (action x), but only while Banjo is doing (action w) but only if he isn’t doing (action y) or (action z).”
Here is an example: Banjo’s rolling script. When ‘m’ (attack) is pressed while walking left (‘a’) and Banjo is NOT crouching or jumping, then Banjo can roll until he is interrupted by crouching or jumping. Banjo is allowed to jump from the middle of a roll attack in the N64 version. (more Banjo Kazooie sound effects just played from my iTunes!)
This logic is pretty simple, but it’s my first enemy script (besides the football players in Football Frogger). All it really says is until it’s defeated by Banjo’s attack, hurt Banjo if touched. And when it’s defeated, it says “GRRR!” When gruntlingDeath is broadcasted, the honeycomb appears and shoots up and my fancy pants gravity script pull it back to the ground (and it bounces!).
I’m going to try to record some gameplay, so as Mumbo Jumbo says in Banjo Tooie….
Banjo Kazooie is finished! Collect the Jiggy to win!
^^^^^^^^ click that link to see the gameplay and listen to the super catchy music!