don't click here

Sonic 3C(ustomizable)

Discussion in 'Engineering & Reverse Engineering' started by Hayate, Jan 2, 2010.

Thread Status:
Not open for further replies.
  1. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,355
    442
    63
    Lincs, UK
    TurBoa, S1RL
    I bet if you/we asked her very sweetly, you'd have good sprites for modern Amy too! Amy just looks weird, with red dress or without.

    I'm uploading my own playthrough of HCZ1 to YouTube, so more to see if you happen to be completely crap at Sonic 3C, and unable to download files!
     
  2. Hayate

    Hayate

    Tech Member
    This is now fixed. When I was working on the AIZ screen resizing, I made a small optimization in the code for all zones after Ice Cap (by ID, so not including FBZ). However I put the wrong label in, causing some code to be skipped completely for those zones. Now I've corrected the label they're working fine again. For now, just play version 1.1 if you want to play in those zones, it's not like there were many general improvements in 1.2.

    Looking forward to that! Bonus points for you if you include funny captions. :v:
     
  3. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,202
    243
    43
    Winnipeg, MB
    making cool music no one gives a shit about
    Oh, by the way. Don't know if this is known or not, but Amy is able to walk on air right after Angel Island burns. Jump up on the ledge and just walk off.
     
  4. Hayate

    Hayate

    Tech Member
    Alternatively, open the ROM in a hex editor, go to $1E609D and change the byte there to $08. That should fix the problems.

    I've tried every ledge I can think of and don't see anything out of the ordinary. What exactly are you referring to?
     
  5. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,355
    442
    63
    Lincs, UK
    TurBoa, S1RL


    No funny commentary, because other than pointing out how often Amy is Pink Sonic, there's nothing to be done.

    Also, if Amy dies without hitting a checkpoint in HCZ2, she gets put back in the usual spot. This happens in the original if you break the game by beating the wrong miniboss in ICZ for example, but perhaps you need to set a flag depending on which boss was beaten to work out which spot to be put back on?
     
  6. Hayate

    Hayate

    Tech Member
    Nice video!

    There's already a flag to handle which route Amy takes (I made some aptly-named subroutines SetAmyRoute0, SetAmyRoute1 and CheckAmyRoute =P ) - in fact, this flag is responsible for midboss music and behaviour (try fighting the AIZ midboss in Sonic's location, which gives you S3 midboss music and no bombs, or Knuckles' location, which gives you S&K midboss music and bombs). I just need to set alternate start locations in some acts.
     
  7. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Her?

    Hmm, given the edits necessary to make her Adventure-y, I'd probably be just as quick making a new sheet from scratch. Do you have the sheet you're using right now so I can use it for reference?

    Just to warn you, this could take a while so you may want to get another sheet handy in case (I'm starting to wish I'd started on expanding Amy's sheet to 2 and 3 sooner).

    I have a complete Sally Acorn sheet for Sonic 3 if you can make use of that... :v:

    By the way, tried to the new revision, love the boss (nicely animated too), the refined co-op is a plus too.
     
  8. dsrb

    dsrb

    Member
    3,149
    0
    16
    Having seen the new mid-boss, I can safely say it's quite awesome. :thumbsup: We really need more ASM stuff in hacks, rather than just palette, layout and music changes.
     
  9. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,202
    243
    43
    Winnipeg, MB
    making cool music no one gives a shit about
    Odd. Just tried to do it again and nothing happened. Oh well!
     
  10. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,355
    442
    63
    Lincs, UK
    TurBoa, S1RL
    So, I finally got to the miniboss as Sonic legitimately, and after the first million tries (since the boss randomly decided not to die after millions of hits) I did it! Video coming soon.

    EDIT: Or not, since I can't seem to reproduce the bugfix, and can't fix it myself because I have no idea where this new miniboss stores its data.

    EDIT2: Okay, got it. To get around that bug, you have to hit the boss at the earliest point possible and skim the water at exactly the same time. That's the only way I've managed to get into a position where the boss will eventually die.

    EDIT HARD WITH A VENGEANCE:



    Cookie please.
     
  11. That was awesome fun. One thing though - why do those jet shark badniks in act 2 die as soon as Amy touches them?
     
  12. Hayate

    Hayate

    Tech Member
    That's what happens when you don't set a gender and have a female in your avatar. =P

    I can get it out of SonMapEd, sure. Not that SonMapEd has any good way to export a sprite sheet though, so I'll be sitting there pressing printscreen a hundred times.

    Funnily enough I had a dream last night about playing a version of Megamix where instead of getting one Chaos Emerald from each Special Stage, you had to get as many of some item as you could before time ran out, and in the second act you could come back to get whatever you missed the first time. Multiples of those items, I assume, would eventually equate to emeralds, like emerald shards or something. Perhaps I should implement something like this :v:

    Yeah, I don't know what's up with that. There was originally a bug where the same would happen with Amy, then I realized I was accidentally writing the touch response index ($F0 or $F2, yes I made new indices) to the hitcounter. :psyduck: I fixed that obviously though, so I don't know why Sonic's "version" of the boss would take what, ten hits in your video, to die.

    Somewhere in the SST =P The object pointer will be something between $1E608A and $1E8082. And yes, that is where the HCZ sprites and rings were stored in original S&K.

    [​IMG]

    I couldn't find the one that has the "Good job, here's a cookie" text on it. ;_;

    There's a number of enemies with messed up collision for Amy. I have a few inklings as to why this happens, but it's more of a case of go through each affected object individually and fix them. The same happens with the Blastoids in act 1.
     
  13. dsrb

    dsrb

    Member
    3,149
    0
    16
    Edit: Oops, my reply below was meant to be an edit to this, but I guess that works too. Feel free to trash.
     
  14. Tiddles

    Tiddles

    Diamond Dust Tech Member
    471
    0
    0
    Leicester, England
    Get in an accident and wake up in 1973
    This is some fantastic stuff! Great to see this in progress again. I love Amy's alternate route and boss - when I first played the original game, the unexpected Knuckles paths were one of my favourite things, and it's great to be surprised again after all this time. And with barely having played the Advance games, it's even more new to me. :)

    I never did get around to committing back the last few bits from Complete 100404... sorry about that, I've been distracted from it for quite some time now.
     
  15. dsrb

    dsrb

    Member
    3,149
    0
    16
    I'd be quite supportive of any more original ASM stuff. It's so much more interesting IMO. More so because S3K hacking is relatively uncommon.

    [​IMG]

    The sharks 'pop' without a sound/animal/points if any other character collides with them without spinning (and thus gets damaged), and this obviously always applies to Amy as she can't spin (usually).

    Actually, I've always wondered why this is. I can't see much of a reason for it, though I assume it was intentional. You guys are good with coding; perhaps you can enlighten us as to how/why it's done, and/or if it looks intentional. :)
     
  16. Hayate

    Hayate

    Tech Member
    Alright, I've found out the problem. Whenever Hyper Sonic uses his double jump, bits 0 and 1 of the boss's hitcounter are set. Therefore, if the boss has between 4 and 6 hits when Sonic double jumps, the hitcounter gets set to 7; if the boss has between 1 and 3 hits, it gets set to 3. So in order to defeat the boss, you'd need to somehow hit it four times in a row on the first jump, to get it down to three, and then another three times in a row. For testing purposes, I did this by placing S monitors and standing on them, but I certainly wouldn't be able to do this legit. I'll fix it, even though Sonic isn't meant to fight the boss =P


    Tiddles! Great to see you here again. I'm glad you approve!

    No worries, it's not like I didn't take a hiatus myself =P

    Oh, I see. =/ Still, it doesn't explain why they don't hurt Amy. As I said, I'll take a look at some point.
     
  17. dsrb

    dsrb

    Member
    3,149
    0
    16
    Ah, I didn't realise she doesn't get hurt. Yeah, I'd be interested to know what's different in their code, as I've always wondered why they behave differently. Anyway, keep up the good work (and feel free to go nuts with ASM and other new features)!
     
  18. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,355
    442
    63
    Lincs, UK
    TurBoa, S1RL
    Er... why?

    Ah, so it's because I hit it four times in a row. I thought it had something to do with the water.
     
  19. It was certainly intentional. Basically, the game has a standard collision routine which checks if the player's collided with an object and makes the player and object react accordingly, and that routine has a standard enemy subroutine which is used by most badniks. The Jawz badnik, however, doesn't use that enemy subroutine; instead, it uses another type of subroutine which simply sets a flag inside the object's status table if there's been a collision (and sets it differently depending on whether it was the main character or the sidekick (I.e. Tails in a Sonic and Tails game) who collided). The badnik can then read this flag to detect a collision and respond accordingly - if the collision is a type which should kill the badnik it acts just like any other badnik, but if the collision is a type which should harm the player it harms the player and then explodes anyway. So yeah. that's how it happens, although I can't tell you why they made it that way.

    Also, Hayate, check out sub_857C2. It's the routine used by Jawz to check if the collision should harm the player, and it uses an offset table which operates using the player's character ID. I'm guessing you haven't added an entry for Amy in that table, which probably causes the problem.
     
  20. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Tried out a 'starter' sprite of Amy standing:

    [​IMG]

    The second one is due to using a modified pallette, the darker colors may help better display shading, though I'm not sure what editing the palette will do to your hack.
     
Thread Status:
Not open for further replies.