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.
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.
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
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:
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): btst #6,$22(a0) ; is player underwater? beq.s IfNotUnderwater ; if not, branch ; if underwater 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): tst.w ($FFFFFFF0).w ; is demo mode on? bpl.s DemoModeOn ; if yes, branch
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.
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): Obj3C_Solid: ; XREF: Obj3C_Index tst.b ($FFFFFFFF).w ; XXX is player performing mdoe XY? bne.s Obj3C_Ok ; XXX if yes, branch move.w ($FFFFD010).w,$30(a0) ; load Sonic's horizontal speed move.w #$1B,d1 move.w #$20,d2 move.w #$20,d3 move.w 8(a0),d4 jsr SolidObject btst #5,$22(a0) bne.s Obj3C_ChkRoll locret_D180: rts ; =========================================================================== Obj3C_ChkRoll: ; XREF: Obj3C_Solid cmpi.b #2,$1C(a1) ; is Sonic rolling? bne.s locret_D180 ; if not, branch move.w $30(a0),d0 bpl.s Obj3C_ChkSpeed neg.w d0 Obj3C_ChkSpeed: cmpi.w #$480,d0 ; is Sonic's speed $480 or higher? bcs.s locret_D180 ; if not, branch Obj3C_OK: tst.b 1(a0) ; XXX is object on-screen? 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).
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.
Reading through the whole post is helpful. =P Code (ASM): Obj3C_ChkRoll: ; XREF: Obj3C_Solid tst.b ($FFFFFFFF).w ; is air hammer move being performed? bne.s Obj3C_OK ; if yes, branch cmpi.b #2,$1C(a1) ; is Sonic rolling? bne.s locret_D180 ; if not, branch This should do it.
Oopsie. :v: Thanx. I think that's just about everything. Next revision I may have my first finished project.
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 =)
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?
Like I said, everything else works perfectly, just destroying monitors and monitors only, using any move.
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.
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...
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.