don't click here

Some changes/fixes for Sonic 1

Discussion in 'Engineering & Reverse Engineering' started by RetroKoH, Sep 4, 2012.

  1. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    I don't think half the fixes from here or even this topic (Sonic 2) are on the Wiki. And I don't have the Wiki knowledge!
     
  2. Clownacy

    Clownacy

    Tech Member
    1,103
    705
    93
    Putting them on the wiki is a pain in the ass: if you want a good wiki guide, you have to correct all the formatting, add explanations (even pictures if you wanna illustrate your point better), not leave any steps vague, and all kinds of other shenanigans. I mean, who wants a repeat of that crazy 'port S3K object manager to S2' guide? These forum posts are simple because you don't have to assume everyone is a Hivebrain noob. What's more, the last thing I want to do is put incorrect, broken stuff on the wiki; I only recently noticed my S1 'clusterfuck' bugfix had bugs of its own. Even when you have created a page, you've gotta link it to that s1howto template and the main SCHG:How_To page, and even then, I'm not sure how comfortable people would be if someone started uploading everyone else's guides. I know I'd be miffed if someone started uploading mine. At least here, you can paraphrase or just leave a link, since they're already on the forum.
     
  3. nineko

    nineko

    I am the Holy Cat Tech Member
    6,369
    524
    93
    italy
    For what it's worth, the few good things I posted here across the years can be reposted and/or put on the wiki as you prefer. But I don't think there is much aside from the 9:00 thing and the per-act music guide. Maybe the simple cheat code guide, and... that's it, really.

    Also, I wouldn't go as far as saying that "everyone is a Hivebrain noob". I'm not going to start another discussion about disassemblies, but you shouldn't, either, even if you prefer the other one. You could have written your sentence in a more neutral point of view, like "some of the existing guides refer to another disassembly" or something. Don't misread me, I admire what you're doing, the bugs you're fixing and everything. But that "noob" was really uncalled for.
     
  4. Kyuu

    Kyuu

    Memory Access Violation Member
    The one time I try being helpful, I completely misinterpret what people are talking about. Whoops :specialed: Sorry about that.
     
  5. Clownacy

    Clownacy

    Tech Member
    1,103
    705
    93
    That's not what I meant: From what I've seen, the SCHG is one of the first places a new hacker will go to scrape up on how to hack, code-wise. It's how I got started, and I've since looked at it as a place with a focus on showing noobs the ropes. The wiki recommends the Hivebrain disasm over the others,and plenty of guides support Hivebrain, so a lot of the traffic are Hivebrain-using noobs.
     
  6. redhotsonic

    redhotsonic

    Also known as RHS Tech Member
    1,587
    10
    18
    United Kingdom
    YouTuber
    I get weird stuff on my guides that people have ported to the wiki. For example, How to fix Tails respawn speeds, the "Bug Explained" bit...

    Er, what? I don't remember typing that! Why is that on there? =P


    EDIT: KingOfHarts!!!!!
     
  7. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,250
    510
    93
    Japan
    Like me! :specialed:/>

    The whole hurt then dying at the top of the level boundary was completely unknown to me... I am really amazed at some of these bugs, they seem so specific and easy to miss.

    I'm wondering if we could perhaps shove these bug listings on the main wiki Sonic The Hedgehog 16-bit article here on retro. Having these bugs documented with perhaps links to wiki guides for their fix, may prove to be not just useful, but interesting to those who were completely unaware of the bugs for many years.
     
  8. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    216
    24
    18
    Finland
    AMPS
    I would agree, or having at least links to this thread with appropriate posts, if no wiki guide is found. Also yes I am also a huge Hivebrain 2005 noob, apparently, although my disassembly is quite modified to give certain ease-of-editing instead of so much manual work.
     
  9. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,490
    1,092
    93
    Long-term happiness
    Wiki's right there. You've got editing access. Help us out! Wiki markup's not hard =P
     
  10. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,250
    510
    93
    Japan
    I'm sorry, but I'm sort of busy with the contest, as is Green Snake.

    Say! Overlord! You're not doing anything, right?! dX

    Seriously though, it'll take time to consolidate the bug information from these threads, and put them into the correct presentable wiki format, only someone with physical time on their hands, as well as being someone who's paid enough attention to the details of these bugs, and reads through all of the threads would be in a suitable position to place them onto the wiki. I also don't favour the idea of going in blindly placing stuff on the wiki, without asking anyone else of their opinion on the idea, they may very well have a good reason I never thought of to not perform the suggestion.
     
  11. AURORA☆FIELDS

    AURORA☆FIELDS

    The cute one here Tech Member
    216
    24
    18
    Finland
    AMPS
    Oh Markey, you shall go to jail for stealing words from my mouth! Joking aside, I am kinda afraid to touch the wiki for many reasons Markey suggested, as well as not really knowing enough about it in my personal opinion (I mostly use and break the RAM page for Sonic 1; further than that I don't really). At least it seems not many people are against the changes I have done there, which is quite nice. I could research more and edit up few pages after SHC, however, at the moment I am unsure if I wish to do this in the end.
     
  12. RetroKoH

    RetroKoH

    Member
    1,728
    107
    43
    S1Fixed: A successor to ReadySonic
    I used to do wiki stuff.... but for whatever reason my account seemingly no longer is accessible on the wiki anymore... fucking atrocity it is.

    Maybe there was a reason for it after all...? I claim full culpability for taking liberties with the ad-libbing. With how much Tails fucks up, I just couldn't help myself. That said, I ALWAYS notify people of pages I do or plan on doing... involving their guides.
     
  13. Clownacy

    Clownacy

    Tech Member
    1,103
    705
    93
    IIRC, that's because, when the wiki updated, its link to the forum was broken. You need to perform a password reset on the wiki side so you can log back in.
     
  14. Clownacy

    Clownacy

    Tech Member
    1,103
    705
    93
    Well, what do you know? ReadySonic had that 'death by level boundary when hurt' thing fixed a long time ago. There's actually a lot of neat fixes in here. For example, apparently, the Dynamic Level Events happen even when you're on the title screen or in a special stage. The bit about special stage seems to be wrong, it's never branched to, but the title screen does it. There's also a bunch of object placement fixes that I might save for a general 'mistakes in official levels' thread. You've even got stuff like making the LZ harpoons play the 'hurt by spike' SFX instead of the regular hurt one, stopping Sonic from being able to turn around while rolling to a stop, and porting some logic from S2 to make Sonic handle quarter-loops better. If only there were guides for this stuff...

    Don't look at me like that.
     
  15. RetroKoH

    RetroKoH

    Member
    1,728
    107
    43
    S1Fixed: A successor to ReadySonic
    Tried that... it says my email is not linked to any account.
     
  16. Get ScarredSun to reset it for you.
     
  17. Clownacy

    Clownacy

    Tech Member
    1,103
    705
    93
    Ever notice the bullet Buzz Bomber shoots is nowhere near its stinger when it fires? Under the label '.fire' in '22 Buzz Bomber.asm', change the 'move.w #$18,d0' to '$14' instead. This is much closer.
     
  18. TheLastWhiteFlame

    TheLastWhiteFlame

    Member
    13
    0
    0
    Earth
    S1 & S2 Restored
    I knew i was not the only one who realised that bug and on top of that i never knew how to fix it until now. Thanks Clownacy
     
  19. I was working on porting Sonic 2's GHZ Spike Helix Object, when I found this.

    In Sonic 1, the game handles deleting objects off-screen using this code:

    [68k] move.w (Camera_X_pos).w,d1
    subi.w #$80,d1
    andi.w #$FF80,d1
    sub.w d1,d0[/68k]

    But in Sonic 2, it's this:

    [68k] sub.w (Camera_X_pos_coarse).w,d0[/68k]

    Porting the Sonic 2 code doesn't seem to break anything so you might as well change this for every object. It's just a faster method. Though I recommend adding this code after OPL_Next:

    [68k] move.w (Camera_X_pos).w,d1
    subi.w #$80,d1
    andi.w #$FF80,d1
    move.w d1,(Camera_X_pos_coarse).w[/68k]

    I assuming your using my updated disassembly located here: https://github.com/Shadowboxer2005/Sonic-1-AS-Disassembly
     
  20. Kilo

    Kilo

    Deathly afraid of the YM2612 Tech Member
    1,092
    1,065
    93
    Canada
    Sonic 1 Source Code Recreation + Source Code Wiki Page
    Slow ducking for Sonic 1.
    Just replace the contents of loc_13392 with this.
    Code (Text):
    1.         btst    #1,($FFFFF602).w    ; is down being pressed?
    2.         beq.s    Obj01_NoRoll    ; if not, branch
    3.         move.b    ($FFFFF602).w,d0
    4.         andi.b    #$C,d0    ; is left/right being pressed?
    5.         bne.s    Obj01_NoRoll    ; if yes, branch
    6.         move.w    $14(a0),d0
    7.         bpl.s    @cont ; If ground speed is positive, continue
    8.         neg.w    d0 ; If not, negate it to get the absolute value
    9.  
    10. @cont
    11.         cmpi.w    #$100,d0    ; is Sonic moving at $100 speed or faster?
    12.         bhi.s    Obj01_ChkRoll    ; if yes, branch
    13.         move.b    #8,$1C(a0)    ; use "ducking" animation
    In case you don't know what slow ducking is, it's a feature from Sonic 3 which allows you to move a little bit and crouch without rolling. This makes performing a spindash easier.