Language…
15 users online:  AmperSam, CroNo, Golden Yoshi, Hammerer, Isikoro, JezJitzu, JPhanto, Mario's GameBase, MorrieTheMagpie, RPG Hacker, signature_steve, sofy lumi, Sparkz314, timothy726, webzinn - Guests: 261 - Bots: 266
Users: 64,795 (2,377 active)
Latest user: mathew

Mega Man 9 - Splash Woman

CanceledASM

It has disappeared so I will post it again.

Please Use The Splash Woman From "Mega Man 9" As An Underwater Boss.

As usual, I want you to be able to do damage with a fireball or Cape As Well As With Trampling.



Graphics

YouTube(1.2.3.)
After all I decided to make it myself, so
Please give me some advice on what to write the code !!

First Of All, I Was Able To Make A Splash Woman Appear On The Screen, But How Can I Reproduce Her Movement?
If you have any questions on how to write asm, I suggest you post them here. Also, it's a good idea to look up some instructions and the necessary RAM maps on your own.
I'm Japanese, so if I'm not speaking well, sorry!
がんばがんばがんば

まぁ自分もウッドマンを作ろうとしてたら上達したから
あさたく氏もできる!!
あとasmは日本語のとこで学習したからそっち行ってみるのもよし
このアカウントは無効になりました
日本語なら、ここがおすすめ。
I'm Japanese, so if I'm not speaking well, sorry!
まずは登場シーンからですけど、アニメーションしません。

どうやったらアニメーションするように出来ますか?
アニメーションさせるのはExAnimation
スプライトを配布するなら、ExAnimationのデータを入れたテストレベル(.mwl)を含めるか、設定をreadmeに書いとくと安心。

asmで直接指定してアニメーションさせる方法もある。
その場合はここの「グラフィックの設定」項目を参照(日本語です)。
I'm Japanese, so if I'm not speaking well, sorry!
Originally posted by Francium
アニメーションさせるのはExAnimation
スプライトを配布するなら、ExAnimationのデータを入れたテストレベル(.mwl)を含めるか、設定をreadmeに書いとくと安心。

asmで直接指定してアニメーションさせる方法もある。
その場合はここの「グラフィックの設定」項目を参照(日本語です)。



DyzenでASMファイルを今抽出し直したのですけど。
ここのコードをどう言ったコードに書き変えたら上手く行きますか?

Code
print "MAIN ",pc
	PHB
	PHK
	PLB
	JSR SpriteCode
	PLB
	RTL

;>Routine: SpriteCode
;>Description: This routine excecute the logic of the sprite
;>RoutineLength: Short
Return:
RTS
SpriteCode:

    JSR GraphicRoutine                  ;Calls the graphic routine and updates sprite graphics

    ;Here you can put code that will be excecuted each frame even if the sprite is locked

    LDA !SpriteStatus,x			        
	CMP #$08                            ;if sprite dead return
	BNE Return	

	LDA !LockAnimationFlag				    
	BNE Return			                    ;if locked animation return.

    %SubOffScreen()

	LDA !sprite_status,x
	CMP #$08
	BNE return
	
	LDA !state,x
	JSL $0086DF|!BankB
	dw wait,posing,hpbar,swim,sing,holdtrident,lasertrident,swoop
wait:
	LDA !sprite_x_high,x
	CMP $95
	BNE +
	LDA $77
	AND #$04
	BEQ +
	
	LDA #$0D
	STA $71
	JSL $01802A|!BankB
	LDA !sprite_blocked_status,x
	AND #$04
	BEQ +
	
	LDA #$00
	STA !pose,x
	LDA #$30
	STA !timer,x
	INC !state,x
+
return:
	RTS

posing:
    LDA !SpriteIndex,x
    JSR ChangeAnimationFromStart_Intro2
    LDA #$01
    STA !AnimationIndex,x
    JMP ChangeAnimationFromStart
	LDA !timer,x
	BEQ ++
	CMP #$18
	BCS +
	LSR
	LSR
	LSR
	AND #$03
	TAY
	STA !pose,x
+
	RTS
++
	STZ $00
	STZ $01
	STZ $02
	STZ $03
	LDA !BossLifeBarMM9
	DEC A
	SEC
	%SpawnExtended()
	LDA #$00
	STA !sprite_y_low,y
	LDA #$E0
	STA !sprite_x_low,y
	LDA #$04
	STA !timer,x
	INC !state,x
	RTS
hpbar:
	LDA !timer,x
	BNE +
	LDA !C2,x
	CMP #$30
	BEQ ++
	INC A
	STA !C2,x
	LDA #$01
	STA $1DFC|!Base2
	LDA #$02
	STA !timer,x
+
	RTS
++
	STZ $71
	INC !state,x
    LDA !SpriteIndex,x
    JSR ChangeAnimationFromStart_Swim1
    LDA #$02
    STA !AnimationIndex,x
    JMP ChangeAnimationFromStart
	RTS
	
jump_table:
	db $C0,$B0,$A0
pose_table:
	db $01,$01,$01,$01,$05,$06

swim:
LDA !SpriteIndex,x
JSR ChangeAnimationFromStart_Swim2
LDA #$03
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS

sing:
LDA !SpriteIndex,x
JSR ChangeAnimationFromStart_Sing
LDA #$04
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS

holdtrident:

LDA !SpriteIndex,x
JSR ChangeAnimationFromStart_Swim2
LDA #$03
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS

LDA !SpriteIndex,x
JSR ChangeAnimationFromStart_HoldTrident
LDA #$05
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS
lasertrident:

JSR ChangeAnimationFromStart_LaserTrident
LDA #$06
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS

swoop:

LDA !SpriteIndex,x
JSR ChangeAnimationFromStart_Swoop
LDA #$07
STA !AnimationIndex,x
JMP ChangeAnimationFromStart
RTS

    JSR InteractMarioSprite
    ;After this routine, if the sprite interact with mario, Carry is Set.

    ;Here you can write your sprite code routine
    ;This will be excecuted once per frame excepts when 
    ;the animation is locked or when sprite status is not #$08

    JSR AnimationRoutine                ;Calls animation routine and decides the next frame to draw
    
    RTS
こりゃasmで書くよりExAnimation使った方が楽だね・・・
登場シーンは個別にアニメーションさせるつもりかな?だったらレベルにアニメーションをtrigger : customで設定しておいて、asm内の処理で手動でトリガーをオンにできるようにすればいいと思う。(customトリガーのオンオフはRAM mapでアドレスを検索すれば見つかる)

てか、Returnラベルが2つあったり、アキュムレータのビット幅の指定をすればバイト数・サイクル数共に節約できるところあったりいろいろ問題ありそうだから少し手直しした方がよさそうだね
流石にツールじゃ完璧なasmは作れんわ・・・

まあスプライトはあまり詳しく無いからこのくらいしかアドバイスできない、すまん。
I'm Japanese, so if I'm not speaking well, sorry!
他に誰か助けてくれる人は居ませんか?

Is there anyone else who can help me?
ここはリクエストする場所であって
助けを求めるなら他のスレ行って、どうぞ
このアカウントは無効になりました
このスレッドは閉鎖する事にしました。
なので、このページでアドバイスをお願いします。

CanceledASM