don't click here

Slotter Rabbit - Inserting New Badnik Hack

Discussion in 'Engineering & Reverse Engineering' started by Spexfox, Feb 29, 2008.

Thread Status:
Not open for further replies.
  1. So some of you may have noticed my animated signature. It's a little badnik I came up with a while ago when there was a hacking contest for the only artwork of Genocide City Zone. Unfortunately I never made a second badnik for the contest so never officially entered. But, now that I want to get some hacking experience I believe this is a great way to get my hands dirty in a variety of levels of hacking. So this is my plan. If you have any helpful advice or just some comments, of course reply with what you have to say (that is the point of a forum after all =P )

    -Description-

    Slotter Rabbit is a Single Slot-machine Slot with eyes, mechanical bunny ears and feet. He resides in Casino Night Zone (where else?) in Sonic 2. The little robotic bunny hops around back and forth, spinning his slot while in the air. When he lands he either hits a Robotnik icon or a Ring icon. If Sonic tries to hit him while the Robotnik icon is in his slot, Slotter Rabbit will still die, but Sonic will take damage as well. If Sonic hits with the Ring icon is active, then he'll kill Slotter Rabbit and take 10 rings to boot. And if he attacks Slotter Rabbit in mid-air when there is no icon, he simply dies like an ordinary badnik. The icons are chosen at random upon landing.

    -Plan-

    In order to get Slotter Rabbit in the game, I would either have to create him as a new object and place him in Casino Night Zone (ie; the hard way) or replace the Crawler badnik with him (the somewhat easier way). As much as I would like to insert a whole new badnik myself without replacing something in the ROM, I think I'll save that for a later time unless I develop a really good understanding of what I'm doing. Till then, it's replacement.

    I thought getting him to jump might be the most difficult part, but then I remember there were blue bubble-things (can't remember what they're called) that would jump around from hole to hole in Chemical Plant Zone. They arch and jump in a similar way to what I imagine, so I figure I can use their code as a base for getting Slotter to move around like I want him to.

    Now as for programming the results of what happens when Sonic hits Slotter Rabbit with whichever icon, I'll simply check which frame of animation is playing and have certain code execute based on that frame. Either kill the badnik, kill the badnik and damage Sonic, or kill the badnik and give the Ring variable 10 more rings.

    The artwork you see below is not the finished piece of course. I don't even remember anything about the pallet I was using at the time and will be touching it up and making sure the pallet it right. Most likely, it'll be the first thing I do.

    Like I said guys, any suggestions or comments are beyond welcome. =3
     
  2. Sounds interesting. I assume ringless Sonic dies with the Robotnik icon?
     
  3. Yes, he does. Think of it like a jumping item monitor that changes items randomly. If you hit Robotnik as an item without rings, you'd die as if being hit by an enemy. The same applies here.
     
  4. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,239
    972
    93
    Long-term happiness
    Hah, a Russian Roulette Badnik. I like it.
     
  5. Very nice, then. It'd be super-fucked up if you were running through an area that was covered in them. How would you make it out alive?!
    Well, probably by rushing through as quick as you possibly could. Never mind!
     
  6. I'd probably spin-dash and hope for the best. =P
     
  7. MoDule

    MoDule

    Tech Member
    327
    24
    18
    Procrastinating from writing bug-fix guides
    For the Ring/Robotnik: You could make it, so that when you destroy the badnik it creates the corresponding monitor icon (super ring/eggman). That way you wouldn't need to code the giving rings/doing damage. Also, it would look pretty cool.
    Or is that what you were already planning on doing?
     
  8. Well I'm not sure how the ASM is all written or what the capabilities of ASM are (never had to program in it) but if it's written in a way that a monitor is a generic object and it simply calls a function based on what's on the screen. (ie; there's one monitor with different animation frames?). Even if it isn't, it may still have functions it calls up or something. Regardless I can use the Ring and Robotnik monitors as a base for my code as well.

    The only problem with copy-pastaing the monitor code is the monitors leave the broken base on the ground after destroying them and I don't know if the code calls for it to do that or what. So it may result it a random chunk of monitor after destroying him.
     
  9. Aurochs

    Aurochs

    Единый, могучий Советский Союз! Tech Member
    2,343
    0
    0
    Whatever catches my fancy
    Actually, the monitor itself doesn't give the player powerups. Instead, when it's broken, it spawns another object that does the "rising picture" thing and gives the player ten rings, super shoes, etc. All you have to do is spawn the same object when the Slotter Rabbit is destroyed.
     
  10. Oh really? Well that's awesome but does it leave the base of the monitor behind as well? Or does it JUST spawn the floating icon? More importantly, can I call it like a function?
     
  11. Aurochs

    Aurochs

    Единый, могучий Советский Союз! Tech Member
    2,343
    0
    0
    Whatever catches my fancy
    I believe that's handled by the monitor object itself, so no.

    You have to make a call to allocObject (or whatever Xenowhirl called it), then set up the object itself. All that allocObject does is find an empty OST space and return its address in A1 - the calling routine will have to put in the object number, subtype, location, etc. itself.
     
  12. Nice =3 Well sounds pretty good to me. A bit confusing, yea, but I'm sure it'll make more sense when I'm actually getting into the ASM code. Thanks for the advice man!

    I give Aurochs a cookie...a programming cookie...
     
  13. [​IMG]

    [​IMG]

    Just posting what I've done with my sprite work. There's a little more then this but just to give you an idea of what it'll look like so far.

    I ended up changing it to a more frog-like design because it seemed to work better for my idea.
     
  14. PsychoSk8r

    PsychoSk8r

    PsychedelAnt | Tone Turner Oldbie
    2,642
    57
    28
    Birmingham, UK
    30 Day Project: Revisited.A New Release!
    You've caught my attention, sounds very interesting, I definately look forward to seeing some progress on this.
    I haven't laughed so hard in a long time =P
     
Thread Status:
Not open for further replies.