don't click here

Amy In Sonic 1

Discussion in 'Engineering & Reverse Engineering' started by E-122-Psi, Feb 28, 2010.

  1. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Oh right. Sorry.

    Yeah that will be fixed when/if I get the crouch working, .

    EDIT: Got it working. The transition is a little rough though. Anyone good with timers so I can make a very slight skid in between her ducking?

    Also fixed the leap to work with both jump buttons. MarkeyJester has also fixed up the title screen. Things are starting to look more complete. :)
     
  2. Ralbalboa

    Ralbalboa

    Member
    31
    0
    6
    Yes!!! So Sally's hack screen will be fixed too?
     
  3. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Hopefully I can replicate the coding for Sally's hack, yes. It may be a while before I make another revision for Sal though, I want to make some serious reinnovations.
     
  4. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Sorry to double post again, but here's the next revision:

    Updates:

    * Amy is able to crouch while running.
    * Can now hammer onto springs (thanx to Selbi for helping with this code).
    * Title screen fixed and revamped (special thanx to MarkeyJester).
    * Sprite refinements to hammer attacks.
    * Can now use both jump buttons to leap.
    * Amy runs the right speed during the ending sequence.
    * Several slight refinements to attacks and abilties (eg. radius, jump distance).

    Glitches:

    * Hammer animation resets when interrupted (eg. turning or falling off ledge).
    * Leap doesn't quite work well underwater.
    * High jumping during the end-of-level-transition causes you to start high-jumping at the start of the next.
    * Demos are somewhat ****ed up.

    http://www.sendspace.com/file/uw1mn7
     
  5. nineko

    nineko

    I am the Holy Cat Tech Member
    6,314
    489
    63
    italy
    I've yet to check this out because I don't have much time right now, but I felt free to mirror this on my webspace just in case sendspace decides to fail eventually: MIRROR.

    Also being a paranoid about making files smaller, I recompressed the zip and now it's like 600 bytes smaller :v:
     
  6. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Oakie dokie. Thanx. :)

    I don't trust sites' reliability either.

    Say, am I allowed to wiki this?
     
  7. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    Nice to see those updates, but I still have some ideas and suggestions how to fix the glitches:
    - First off, add the vertical camera delay please. This is especially annoying on Amy's halt thing (this will help you).
    - For the hammering on springs I would also allow you to do it with the in-air hammering attack.

    Not sure how to do the falling off a ledge problem, but for the turning you could simply disable the controls during the move.

    Code (ASM):
    1.         btst    #6,$22(a0)  ; is player underwater?
    2.         beq.s   IfNotUnderwater ; if not, branch
    3.         ; if underwater
    4.  
    5. IfNotUnderwater:
    You should experiment a bit with this code.

    In Obj3A_NextLevel you can clear the high jumping flag to avoid this.

    Not an unusal problem, though the only possibility I can see here right now is to record new demos (no idea how to do that though). You could also make checks for the moves and anything speed releated if you are in the demo mode and set the original speeds if so:
    Code (ASM):
    1.         tst.w   ($FFFFFFF0).w   ; is demo mode on?
    2.         bpl.s   DemoModeOn  ; if yes, branch
     
  8. Aquaslash

    Aquaslash

    <The Has-been Legend> Moderator
    These are some pretty slick updates. Nice work on getting the hearts in for the hammer attacks.
     
  9. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    I think someone earlier suggested using Gens Movies to reprogram demos, I'll look into that.

    Unfixable pallette issues aside, that's a fix for almost every major problem with the game here. I may actually have a finished hack next revision. :)

    Oh there is one more thing I'd like to retune though, does anyone know how to program jump attacks to destroy the smashable walls and blocks (eg. Green Hill and Marble Zone)? I tried programming them in but only the ground hammer attack has any effect right now.

    Thanx. I needed Markey Jester's help with that as the sprites weren't taking the refinements for some reason.
     
  10. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    Are you talking about destroying without touching them? As an example for GHZ's smashable walls, you could add a check right after the label of Obj3C_Solid if a the move flag has been set (if you don't have a flag for that move yet, create it). You will probably also need to check if the wall is on-screen, otherwise you can destroy every wall within the act with only one attack. Here my example:

    Code (ASM):
    1. Obj3C_Solid:                ; XREF: Obj3C_Index
    2.         tst.b   ($FFFFFFFF).w       ; XXX is player performing mdoe XY?
    3.         bne.s   Obj3C_Ok        ; XXX if yes, branch
    4.  
    5.         move.w  ($FFFFD010).w,$30(a0) ; load Sonic's horizontal speed
    6.         move.w  #$1B,d1
    7.         move.w  #$20,d2
    8.         move.w  #$20,d3
    9.         move.w  8(a0),d4
    10.         jsr SolidObject
    11.         btst    #5,$22(a0)
    12.         bne.s   Obj3C_ChkRoll
    13.  
    14. locret_D180:
    15.         rts
    16. ; ===========================================================================
    17.  
    18. Obj3C_ChkRoll:              ; XREF: Obj3C_Solid
    19.         cmpi.b  #2,$1C(a1)  ; is Sonic rolling?
    20.         bne.s   locret_D180 ; if not, branch
    21.         move.w  $30(a0),d0
    22.         bpl.s   Obj3C_ChkSpeed
    23.         neg.w   d0
    24.  
    25. Obj3C_ChkSpeed:
    26.         cmpi.w  #$480,d0    ; is Sonic's speed $480 or higher?
    27.         bcs.s   locret_D180 ; if not, branch
    28.  
    29. Obj3C_OK:
    30.         tst.b   1(a0)           ; XXX is object on-screen?
    31.         bpl.s   locret_D180     ; XXX if not, branch
    Notice the XXX, which are the lines I talked about.


    Otherwise you could also do right in Obj3C_ChkRoll your check for either the flag or an animation (because Obj3C_ChkRoll is only being used when you are touching the wall, while Obj3C_Solid doesn't care where you are).
     
  11. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    No I want it to work when Amy is touching the walls, just when I try to program a jump move the same way as the normal hammer move it doesn't work, notice she can't hammer jump and spin hammer through the Green Hill walls or Marble Zone blocks.
     
  12. Selbi

    Selbi

    The Euphonic Mess Member
    1,497
    48
    28
    Northern Germany
    Sonic ERaZor
    Reading through the whole post is helpful. =P

    Code (ASM):
    1. Obj3C_ChkRoll:              ; XREF: Obj3C_Solid
    2.         tst.b   ($FFFFFFFF).w       ; is air hammer move being performed?
    3.         bne.s   Obj3C_OK        ; if yes, branch
    4.         cmpi.b  #2,$1C(a1)  ; is Sonic rolling?
    5.         bne.s   locret_D180 ; if not, branch
    This should do it.
     
  13. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Oopsie. :v:

    Thanx. I think that's just about everything. Next revision I may have my first finished project. :) :) :)
     
  14. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,205
    432
    63
    Japan
    I don't mean to alarm you, but I just played the hack on Hardware, and well, upon attempting to destroy a monitor, the game crashes, this happens with all moves on every monitor. It's not a vital issue as many are using emulators, but maybe one to look out for.

    Other than that, the rest of it works perfectly fine.

    EDIT: It also crashes on the emulator called "Regen", so that might be a useful emulator to use to help fix the issue =)
     
  15. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    It was said to be working in a test last Rev, a change made this time round must be causing a problem (odd since I didn't really make much of a change to the hammer attacks). Is it just monitors or badniks and other breakable objects too?
     
  16. MarkeyJester

    MarkeyJester

    Original, No substitute Resident Jester
    2,205
    432
    63
    Japan
    Like I said, everything else works perfectly, just destroying monitors and monitors only, using any move.
     
  17. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Hmm, something to do with the monitor touch response coding maybe?

    I'll check on this stuff later on, I'll just have a slight break from the project while I look at other things on my 'To Do' pile.
     
  18. Solaris Paradox

    Solaris Paradox

    Member
    2,456
    0
    0
    On my butt in front of the computer. Where else?
    I'm working on working up the willpower to work on learning how to make my own Sonic fangames. Not quite there yet.
    Well, when you're done with your break, here's an issue I discovered when during my run through the latest version, I pushed down to roll by force of habit and discovered Amy's innate talent at breaking physics:

    http://www.youtube.com/watch_private?v=4bn...P_cxXGVqhLqIj9g

    If you could disable crouching when on vertical or upside-down surfaces it would probably fix that. But I'm not a programmer, so I have no real idea.

    Apologies if this has already been brought up...
     
  19. Tailikku

    Tailikku

    South Islander Pending Member
    That is definately one odd bug.
     
  20. E-122-Psi

    E-122-Psi

    Member
    2,470
    612
    93
    Can't watch the video, says it has exceed 25 viewers and can't be shown to others.

    The crouch was kinda limited as wasn't quite sure how to program it (I know it causes a strange bug with the Scrap Brain Zone wheels, as demonstrated on the credits demo), I was hoping to program a slight delay similar to the Advance version (Amy slips slightly as crouches while running) but I my attempts to do so usually leave her with no grip whatsoever. For the routine I just shift the roll routine to a branch that forces her duck animation and to reset her horizontal speed.