Link-Me
Link-Me LunarMario!
Entrar
Estatísticas
Temos 130 usuários registradosO último membro registrado é Ruigometi
Os nossos membros postaram um total de 202 mensagens em 47 assuntos
Social bookmarking
Conservar e compartilhar o endereço de Lunar Mario em seu site de social bookmarking
Conservar e compartilhar o endereço de Lunar Mario em seu site de social bookmarking
Últimos assuntos
Quem está conectado?
Há 2 usuários online :: 0 registrados, 0 invisíveis e 2 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 48 em Qui Fev 01, 2024 3:55 am
Ground Pound
2 participantes
Página 1 de 1
Ground Pound
Bom, primeiramente, faz tempo que não entro no Forum, tava fora do SMW "Hacking World" agora eu decidi criar uma nova hack, mas só que o patche Ground Pound que eu tenho aki, qndo eu dou o Pound a música para e qndo eu morro, ou saio de tela, não vai pro OW, quebra arom, aki esta o código
- Código:
!Freespace = $108000
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Pointers
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!RAM = $0660 ;------------point this to an EMPTY RAM address
!FreezeMarioTimer = $0F ;-this is how long (in FRAMES) Mario pauses in the air
!AirSFX = $61 ;-----------this is the sound effect Mario makes in the air
!PoundSFX = $37 ;---------this is the sound effect Mario makes when he pounds the ground
!GroundTimer = $29 ;------this is the speed Mario goes when ground pounding
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Header
LoROM
;-------------
org $108000
db $00, $00 ; |
org $108000
db $00 ; | aquired from Bio's post
org $108000
db $03,$01,$33, $00, 55 ; /
;These are the hex edits, in ASM form
;org $01A928 ; \
; db $AD,$7A,$18,$F0,$08 ; | Disable boosting Mario if he is spin jumping
;org $01A92D ; |
; db $A9,$F8,$85,$7D ; /
;org $01A928 ; \ This makes Mario rise almost unnoticably
; JSL NewRise ; /
org $00D093 ; \ disable fireball while spin jumping
db $80 ; /
;the following 6 ORGs are for disabling spin jump
org $00D63E ; \ disable normal spin jumping
db $80 ; |
org $00D643 ; |
db $80 ; /
org $00EA80 ; \ Disable spin jumping out of the water
NOP #18 ; /
org $00F5E8 ; \ disable spinning when hit while gliding
db $00 ; /
org $01A8D3 ; \ disable boosting Mario when spin jumping
db $AD ; /
org $01E68F ; \ disable spin jumping off of a springboard
NOP #11 ; /
org $00F5F3 ; \ Keep Mario from spin jumping when hit
JSL NoSpin ; /
NOP ;delete the extra byte
;The following is the actual code stuff
org $00A21B ; \ hack the routine neccesary to start
JSL Routine ; /
org !Freespace
!CodeSize = Ending-Routine ; \
db "STAR" ; | All code preservation
dw !CodeSize-$01 ; |
dw !CodeSize-$01^$FFFF ; /
Routine:
;---------------------
LDA $187A ; \ Doesn't work if you are on Yoshi.
ORA $1470 ; | Or if you are carrying an enemy
ORA $148F ; | Or if you are carrying an object
ORA $75 ; | Or if you are swimming
ORA $14A6 ; | Or if you are using your cape spin
ORA $1493 ; | Or if the level is cleared
BNE Clear1 ; /
LDA $72 ; \ If Mario's on the ground..
BEQ CheckStomp ; / Check for the pound flag.
LDA !RAM ; \ If the RAM is already set...
CMP #$FF ; | and it's to be cleared, go to the clear routine (indirectly)
BEQ CheckStomp ; /
LDA $73 ; \ if you are ducking, the ground pound doesn't work
BNE Clear ; / I put the code here so it won't mess up the stomp routine
LDA !RAM ; \ If RAM is set, skip the initiation routine and start pose coding
BNE Set ; /
BRA Label ; \
Clear1: ; | This is to keep the Clear branches working
BRA Clear ; | (the BNE Clear)
Label: ; /
LDA $16 ; \
AND #$04 ; | Only works if you press the DOWN button.
BEQ Return1 ; /
LDA #$0B ; \ set Mario's flying to 0B, which is springboard default
STA $72 ; / it makes the pose not look weird if the ground pound is negated (and Mario dash jumped)
JSR DisableController ; disable the controller
LDA #!AirSFX ; \ Set sound when pound activated.
STA $1DFC ; /
STZ $7D ; \ Temporarily freeze X
STZ $7B ; / And Y speed.
LDA $76 ; \ Store Mario's direction, for later use
STA !RAM ; | This also sets the RAM. It is increased because the direction is ALWAYS 1 or zero.
INC !RAM ; / If it was 0, the RAM still wouldn't be set, so it is increased.
LDA #!FreezeMarioTimer ; \ Freeze Mario for a defined period of time.
STA $18BD ; /
LDA #$01 ; \ Set spin jump flag...
STA $140D ; /
LDA #!GroundTimer ; \ Set speed on coming back to ground..
STA $7D ; /
BRA Return1
Clear:
STZ !RAM ;Clear the RAM
STZ $140D ;Stop the spin jump
BRA Return1
CheckStomp:
LDA !RAM ; \ If the flag hasn't been set..
BEQ Return1 ; / Skip.
CMP #$FF ; \ Clear flag (for the block).
BEQ Clear ; /
LDA $72 ; \ Skip pound if in air again.
BNE Return1 ; /
JSR DisableController ; disable the controller
LDA !RAM ; \
CMP #$50 ; | Clear the RAM if Mario's ground pound was negated midair
BEQ Clear ; /
LDA #!PoundSFX ; \ Set Pound SFX...
STA $1DFC ; /
JSL YoshiStompRoutine ; make the yoshi smoke come out original code is from the Code Library
LDA #$FF ; \ Set #$FF to flag
STA !RAM ; / to clear it later
Return1:
LDA $16 ; \ Restore the
AND #$10 ; / Hijacked code.
RTL
Set:
LDA !RAM ; \
CMP #$50 ; | Don't set ground pound if it's negated
BEQ Return ; /
JSR DisableController ; disable the controller
LDA !RAM ; \
CMP #$03 ; | If Mario's ground pound was negated one frame before, keep him from turning
BCS Negate ; /
LDA $7D
CMP #$FE
BCS Skip
LDA $7D ; \
CMP #$80 ; | If Mario is moving up, negate the ground pound
BCS Negate ; /
Skip:
LDA #$1C ; \ and set the ground pound pose
STA $13E0 ; /
DEC !RAM ; \ Changes the RAM back to Mario's previous direction
LDA !RAM ; | This is to keep Mario from doing a strange looking boogy
STA $76 ; | and to keep him facing the way he was
INC !RAM ; / And fixes the RAM for this use
Return:
LDA $16 ; \ Restore the
AND #$10 ; / Hijacked code.
RTL ; and that's it! for the main code
Negate:
STZ $140D ; disable the spin jump
LDA !RAM ; \
CMP #$03 ; | If direction might need fixing, fix it
BCS Turn ; / (occurs right after ground pound is negated
INC !RAM ; \
INC !RAM ; | Set the disabled flag
INC !RAM ; /
BRA Return
Turn:
LDA !RAM ; \
SEC ; | set Mario's direction
SBC #$04 ; | back to first set
STA $76 ; /
LDA #$50 ; \ and disable ground pound
STA !RAM ; / and turn
BRA Return
DisableController:
STZ $15 ; \
STZ $16 ; | Keep the controller value zero, simulating no button press
STZ $17 ; | This is JSR to to because it saves space, keeping some branches working
STZ $18 ; / (BRA, BNE, BCS, etc)
RTS
NoSpin:
LDA !RAM ; \
BEQ Restore ; | If there is no ground pound right now,
LDA !RAM ; | just restore the code
CMP #$50 ; |
BCS Restore ; /
STZ $140D ; stop spin jump
INC !RAM ; \
INC !RAM ; | Set the disabled flag
INC !RAM ; /
Restore:
LDY.b #$04 ; \ restore hijacked code
STY.w $1DF9 ; /
RTL
YoshiStompRoutine:
LDA $1697
BNE ReturnR
PHB
PHK
PLB
LDA $94
STA $16D1,Y
LDA $95
STA $16DD,Y
LDA $96
CLC
ADC #$0F
STA $16D9,Y
LDA $97
ADC #$00
STA $16DD,Y
JSR ShakeGroundGenSmoke
PLB
ReturnR:
RTL ; Return
ShakeGroundGenSmoke:
LDA #$05 ; \ Set ground shake timer
STA $1887 ; /
LDA #$09 ; \ Play sound effect
STA $1DFC ; /
STZ !RAM
JSR Label4
INC !RAM
Label4:
LDY #$07 ; \ Find a free extended sprite slot
Label5: ; |
LDA $170B,Y ; |
BEQ SpawnSmoke ; |
DEY ; |
BPL Label5 ; |
RTS ; / Return if no free slots
SpawnSmoke:
BRA All
All:
LDA #$15
STA $176F,Y
RTS ; Return
NewRise:
LDA $140D ; \
BNE LowBoost ; /
LDA #$F8 ; \
STA $7D ; /
RTL
LowBoost:
LDA #$FE ; \
STA $7D ; /
RTL
Ending:
Re: Ground Pound
Pode sim ter a ver com o Freespace. Tente mudá-lo. Nota: use aquela tool de verificar os freespaces após expandir a ROM pra uns 2 ou 4MB (o nome da ferramenta me fugiu...)
FD Manuz OW Hacker- Nível 2
- Mensagens : 48
Pontos : 2177
Data de inscrição : 21/12/2009
Idade : 29
Localização : Sombras Vertigo Vortex
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Dom Set 13, 2015 10:28 am por kokeke
» OW Show Off
Sex Fev 03, 2012 12:40 am por vuthiouo
» Imagens/Vídeos de Sua Hack!
Seg Dez 19, 2011 1:29 am por jicloupr
» Mudamos para o SMW Tech
Qui Nov 10, 2011 6:53 pm por FD Manuz OW Hacker
» Porque Nenhum Custom Music Funciona
Seg Nov 07, 2011 4:03 pm por Giga Gaia
» É isso....
Sex Out 28, 2011 6:25 pm por -Undefinied3-
» Qual é o nome dessa musica? Onde a encontro?
Seg Out 24, 2011 7:53 pm por Breno
» Perguntas Rapidas
Sex Out 07, 2011 5:55 pm por FD Manuz OW Hacker
» Projeto de tradução do arquivo de ajuda do Lunar Magic
Ter Out 04, 2011 10:17 pm por FD Manuz OW Hacker
» Recrutamento de moderadores.
Ter Out 04, 2011 10:09 pm por -Undefinied3-
» Projeto de reforma grand finale
Ter Out 04, 2011 6:01 pm por FD Manuz OW Hacker
» Esse fórum necessita de participação URGENTE
Seg Out 03, 2011 2:00 pm por FD Manuz OW Hacker
» Sobre este fórum
Dom Out 02, 2011 12:27 pm por FD Manuz OW Hacker
» Galeria do Lunar Mario
Dom Out 02, 2011 12:25 pm por FD Manuz OW Hacker
» Programação em C, C++
Sáb Out 01, 2011 8:00 pm por Vitor Vilela