Allgemeine SMW Hacking Fragen

geschrieben am 06.06.2012 17:26:59
( Link )
Ok, dann alternativer Weg

Wie schaff ich es das das springende Feuer (der Sprite) nicht Springt sondern nur auf der Stelle steht.
(der leuchtet ja auch ein bisschen)
geschrieben am 06.06.2012 18:18:58
( Link )
Zitat von kooooopa:

Wie schaff ich es das das springende Feuer (der Sprite) nicht Springt sondern nur auf der Stelle steht.

Kannst entweder [Disassembly] Hopping Flame nehmen und umschreiben oder du machst blöcke, die nur Mario durchlassen (Hüpfen tut der noch, aber abhauen kann der nicht).
Zitat von kooooopa:
(der leuchtet ja auch ein bisschen)

Erkläre mir mal, was das hier zu bedeuten hat, ich versteh grad nicht, was du da möchtest.
Tutorials: ExAnimation | YouTube: W4mp3 | Twitter: https://twitter.com/SMWW4mp3
geschrieben am 06.06.2012 19:04:32
( Link )
Ok, das heißt, wenn ich eigentlich nur will, dass die Flame vorhanden ist reicht das hier als Code?

Code
!EXTRA_BITS 		= $7FAB10


print "INIT ",pc

JSL $01ACF9
STA $1570,X
FaceMario: JSR SUB_HORZ_POS
TYA
STA $157C,X
RTL

print "MAIN ",pc
PHB
PHK
PLB
JSR HoppingFlame
PLB
RTL


Den Rest bräuchte ich ja nicht, weil die Flame sich nicht bewegen soll, oder?
geschrieben am 06.06.2012 19:25:45
zuletzt bearbeitet von mzünni am 06.06.2012 19:31:33.
( Link )
du brauchst aufjedefall noch die graphics routine und die anderen labels die noch benutzt werden XD
und auch die contact routine (es sei denn es soll nicht mit mario interagiren)

Code
; ==================================
; HOPPING FLAME DISASSEMBLY
; DISASSEMBLED BY ERSANIO
; USES EXTRA BIT: YES
; When you set the extra bit,
; The flame keeps following Mario
; ==================================

!EXTRA_BITS = $7FAB10


print "INIT ",pc
RTL

print "MAIN ",pc
PHB
PHK
PLB
JSR HoppingFlame
PLB
RTL

Tiletable: db $8E,$AE

HoppingFlame: LDA $9D ; \ Branch if sprites locked
BNE label0 ; /

JSL $01A7DC ;mario sprite interact routine
label0: JSR SUB_OFF_SCREEN_X0 ;SUB_OFF_SCREEN
JSR SubSprGfx2Entry1 ;spritegfx routine. finish this
RTS ; Return

SubSprGfx2Entry1: JSR GET_DRAW_INFO

LDA $00 ;\
STA $0300,y ;/setup X position

LDA $01 ;\
STA $0301,y ;/setup Y position

PHX
LDA $14 ; \ Change animation image every 8 cycles
LSR ; |
LSR ; |
LSR ; |
AND #$01 ; ...
TAX
LDA Tiletable,x
STA $0302,y
PLX ; /

PHX ;\
LDX $15E9 ; |
LDA $15F6,x ; |
PLX ; |Setup properties
ORA $64 ; |
STA $0303,y ;/

LDY #$02 ; #$02 means the tiles are 16x16
LDA #$00 ; This means we drew one tile
JSL $01B7B3 ;finish up OAM routine
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SUB_OFF_SCREEN
; This subroutine deals with sprites that have moved off screen
; It is adapted from the subroutine at $01AC0D
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SPR_T12: db $40,$B0
SPR_T13: db $01,$FF
SPR_T14: db $30,$C0,$A0,$C0,$A0,$F0,$60,$90 ;bank 1 sizes
db $30,$C0,$A0,$80,$A0,$40,$60,$B0 ;bank 3 sizes
SPR_T15: db $01,$FF,$01,$FF,$01,$FF,$01,$FF ;bank 1 sizes
db $01,$FF,$01,$FF,$01,$00,$01,$FF ;bank 3 sizes

SUB_OFF_SCREEN_X1: LDA #$02 ; \ entry point of routine determines value of $03
BRA STORE_03 ; | (table entry to use on horizontal levels)
SUB_OFF_SCREEN_X2: LDA #$04 ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X3: LDA #$06 ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X4: LDA #$08 ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X5: LDA #$0A ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X6: LDA #$0C ; |
BRA STORE_03 ; |
SUB_OFF_SCREEN_X7: LDA #$0E ; |
STORE_03: STA $03 ; |
BRA START_SUB ; |
SUB_OFF_SCREEN_X0: STZ $03 ; /

START_SUB: JSR SUB_IS_OFF_SCREEN ; \ if sprite is not off screen, return
BEQ RETURN_35 ; /
LDA $5B ; \ goto VERTICAL_LEVEL if vertical level
AND #$01 ; |
BNE VERTICAL_LEVEL ; /
LDA $D8,x ; \
CLC ; |
ADC #$50 ; | if the sprite has gone off the bottom of the level...
LDA $14D4,x ; | (if adding 0x50 to the sprite y position would make the high byte >= 2)
ADC #$00 ; |
CMP #$02 ; |
BPL ERASE_SPRITE ; / ...erase the sprite
LDA $167A,x ; \ if "process offscreen" flag is set, return
AND #$04 ; |
BNE RETURN_35 ; /
LDA $13 ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0756 VC:176 00 FL:205
AND #$01 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0780 VC:176 00 FL:205
ORA $03 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0796 VC:176 00 FL:205
STA $01 ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0820 VC:176 00 FL:205
TAY ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0844 VC:176 00 FL:205
LDA $1A ;A:8A01 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizcHC:0858 VC:176 00 FL:205
CLC ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0882 VC:176 00 FL:205
ADC SPR_T14,y ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZcHC:0896 VC:176 00 FL:205
ROL $00 ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizcHC:0928 VC:176 00 FL:205
CMP $E4,x ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:0966 VC:176 00 FL:205
PHP ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:0996 VC:176 00 FL:205
LDA $1B ;A:8AC0 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdizCHC:1018 VC:176 00 FL:205
LSR $00 ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdiZCHC:1042 VC:176 00 FL:205
ADC SPR_T15,y ;A:8A00 X:0009 Y:0001 D:0000 DB:01 S:01F0 P:envMXdizcHC:1080 VC:176 00 FL:205
PLP ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F0 P:eNvMXdizcHC:1112 VC:176 00 FL:205
SBC $14E0,x ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1140 VC:176 00 FL:205
STA $00 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:1172 VC:176 00 FL:205
LSR $01 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:eNvMXdizCHC:1196 VC:176 00 FL:205
BCC SPR_L31 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZCHC:1234 VC:176 00 FL:205
EOR #$80 ;A:8AFF X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdiZCHC:1250 VC:176 00 FL:205
STA $00 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1266 VC:176 00 FL:205
SPR_L31: LDA $00 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1290 VC:176 00 FL:205
BPL RETURN_35 ;A:8A7F X:0009 Y:0001 D:0000 DB:01 S:01F1 P:envMXdizCHC:1314 VC:176 00 FL:205
ERASE_SPRITE: LDA $14C8,x ; \ if sprite status < 8, permanently erase sprite
CMP #$08 ; |
BCC KILL_SPRITE ; /
LDY $161A,x ;A:FF08 X:0007 Y:0001 D:0000 DB:01 S:01F3 P:envMXdiZCHC:1108 VC:059 00 FL:2878
CPY #$FF ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdiZCHC:1140 VC:059 00 FL:2878
BEQ KILL_SPRITE ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdizcHC:1156 VC:059 00 FL:2878
LDA #$00 ;A:FF08 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdizcHC:1172 VC:059 00 FL:2878
STA $1938,y ;A:FF00 X:0007 Y:0000 D:0000 DB:01 S:01F3 P:envMXdiZcHC:1188 VC:059 00 FL:2878
KILL_SPRITE: STZ $14C8,x ; erase sprite
RETURN_35: RTS ; return

VERTICAL_LEVEL: LDA $167A,x ; \ if "process offscreen" flag is set, return
AND #$04 ; |
BNE RETURN_35 ; /
LDA $13 ; \
LSR A ; |
BCS RETURN_35 ; /
LDA $E4,x ; \
CMP #$00 ; | if the sprite has gone off the side of the level...
LDA $14E0,x ; |
SBC #$00 ; |
CMP #$02 ; |
BCS ERASE_SPRITE ; / ...erase the sprite
LDA $13 ;A:0000 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:1218 VC:250 00 FL:5379
LSR A ;A:0016 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1242 VC:250 00 FL:5379
AND #$01 ;A:000B X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1256 VC:250 00 FL:5379
STA $01 ;A:0001 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1272 VC:250 00 FL:5379
TAY ;A:0001 X:0009 Y:00E4 D:0000 DB:01 S:01F3 P:envMXdizcHC:1296 VC:250 00 FL:5379
LDA $1C ;A:001A X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0052 VC:251 00 FL:5379
CLC ;A:00BD X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0076 VC:251 00 FL:5379
ADC SPR_T12,y ;A:00BD X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0090 VC:251 00 FL:5379
ROL $00 ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:enVMXdizCHC:0122 VC:251 00 FL:5379
CMP $D8,x ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0160 VC:251 00 FL:5379
PHP ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0190 VC:251 00 FL:5379
LDA $1D ;A:006D X:0009 Y:0001 D:0000 DB:01 S:01F2 P:eNVMXdizcHC:0212 VC:251 00 FL:5379
LSR $00 ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:enVMXdiZcHC:0244 VC:251 00 FL:5379
ADC SPR_T13,y ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:enVMXdizCHC:0282 VC:251 00 FL:5379
PLP ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F2 P:envMXdiZCHC:0314 VC:251 00 FL:5379
SBC $14D4,x ;A:0000 X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNVMXdizcHC:0342 VC:251 00 FL:5379
STA $00 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0374 VC:251 00 FL:5379
LDY $01 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0398 VC:251 00 FL:5379
BEQ SPR_L38 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0422 VC:251 00 FL:5379
EOR #$80 ;A:00FF X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0438 VC:251 00 FL:5379
STA $00 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0454 VC:251 00 FL:5379
SPR_L38: LDA $00 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0478 VC:251 00 FL:5379
BPL RETURN_35 ;A:007F X:0009 Y:0001 D:0000 DB:01 S:01F3 P:envMXdizcHC:0502 VC:251 00 FL:5379
BMI ERASE_SPRITE ;A:8AFF X:0002 Y:0000 D:0000 DB:01 S:01F3 P:eNvMXdizcHC:0704 VC:184 00 FL:5490

SUB_IS_OFF_SCREEN: LDA $15A0,x ; \ if sprite is on screen, accumulator = 0
ORA $186C,x ; |
RTS ; / return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; GET_DRAW_INFO
; This is a helper for the graphics routine. It sets off screen flags, and sets up
; variables. It will return with the following:
;
; Y = index to sprite OAM ($300)
; $00 = sprite x position relative to screen boarder
; $01 = sprite y position relative to screen boarder
;
; It is adapted from the subroutine at $03B760
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SPR_T1: db $0C,$1C
SPR_T2: db $01,$02

GET_DRAW_INFO: STZ $186C,x ; reset sprite offscreen flag, vertical
STZ $15A0,x ; reset sprite offscreen flag, horizontal
LDA $E4,x ; \
CMP $1A ; | set horizontal offscreen if necessary
LDA $14E0,x ; |
SBC $1B ; |
BEQ ON_SCREEN_X ; |
INC $15A0,x ; /

ON_SCREEN_X: LDA $14E0,x ; \
XBA ; |
LDA $E4,x ; |
REP #$20 ; |
SEC ; |
SBC $1A ; | mark sprite invalid if far enough off screen
CLC ; |
ADC.w #$0040 ; |
CMP.w #$0180 ; |
SEP #$20 ; |
ROL A ; |
AND #$01 ; |
STA $15C4,x ; /
BNE INVALID ;

LDY #$00 ; \ set up loop:
LDA $1662,x ; |
AND #$20 ; | if not smushed (1662 & 0x20), go through loop twice
BEQ ON_SCREEN_LOOP ; | else, go through loop once
INY ; /
ON_SCREEN_LOOP: LDA $D8,x ; \
CLC ; | set vertical offscreen if necessary
ADC SPR_T1,y ; |
PHP ; |
CMP $1C ; | (vert screen boundry)
ROL $00 ; |
PLP ; |
LDA $14D4,x ; |
ADC #$00 ; |
LSR $00 ; |
SBC $1D ; |
BEQ ON_SCREEN_Y ; |
LDA $186C,x ; | (vert offscreen)
ORA SPR_T2,y ; |
STA $186C,x ; |
ON_SCREEN_Y: DEY ; |
BPL ON_SCREEN_LOOP ; /

LDY $15EA,x ; get offset to sprite OAM
LDA $E4,x ; \
SEC ; |
SBC $1A ; | $00 = sprite x position relative to screen boarder
STA $00 ; /
LDA $D8,x ; \
SEC ; |
SBC $1C ; | $01 = sprite y position relative to screen boarder
STA $01 ; /
RTS

INVALID: PLA
PLA
RTS ; return
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 06.06.2012 19:28:34
( Link )
Habs jetzt anders gelöst, einfach die Flammengrafiken aus dem 8*8 Editor genommen und auf Act like Muncher gestellt.
Jetzt muss ich nur noch schauen, wie ich die Flamme animiere.
geschrieben am 06.06.2012 19:32:47
( Link )
Code
         LDA $14            ; \ Change animation image every 8 cycles
LSR ; |
LSR ; |
LSR ; |
AND #$01 ; ...



(hab oben den Code noch eingefügt...)
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 06.06.2012 19:38:58
( Link )
Danke!
geschrieben am 14.06.2012 19:21:53
( Link )
Hallo Leude
ich hab ein Problem: Seitdem ich den Hintergrund in einem Level geändert habe, sind die ganzen Hintergründe der anderen Lvls, die nicht bearbeitet wurde, verglicht. Woran kann das liegen und kann man das noch irgendwie beheben?
geschrieben am 14.06.2012 19:27:15
( Link )
Zitat von KingsPosse:
Hallo Leude
ich hab ein Problem: Seitdem ich den Hintergrund in einem Level geändert habe, sind die ganzen Hintergründe der anderen Lvls, die nicht bearbeitet wurde, verglicht. Woran kann das liegen und kann man das noch irgendwie beheben?


Hast du einen Custom Background eingefügt? Dann hast du warscheinlich die Map16 Seite der Original Background's überschrieben.
Beheben kannst du es eigentlich nur, indem du die Original Map16 Seite wieder einfügst und die des Custom Background's auf eine andere speicherst.
geschrieben am 15.06.2012 15:28:13
( Link )
Auf welcher Seite der 16x 16 Tile Map befinden sich die Orginal Hintergründe?

E: Selbst ist der Mann, habs selber gefixxt
geschrieben am 15.06.2012 16:14:16
( Link )
Zitat von KingsPosse:
Auf welcher Seite der 16x 16 Tile Map befinden sich die Orginal Hintergründe?

E: Selbst ist der Mann, habs selber gefixxt


Was war denn das Problem? c:
geschrieben am 17.06.2012 21:35:23
( Link )
Ich bräuchte einen unsichtbaren Block, wo wenn man gegen springt der Block sichtbar wird und ein Schlüssel raus kommt.
Geht das mit der Map16? Ich habs mit der nicht hingekriegt.
geschrieben am 17.06.2012 22:15:17
( Link )
Mit Map16 geht es, musst den unsichtbaren Block auf Act Like 125 stellen und auf die richtige X-Position setzen.
Tutorials: ExAnimation | YouTube: W4mp3 | Twitter: https://twitter.com/SMWW4mp3
geschrieben am 17.06.2012 22:18:28
( Link )
Nur kann man dann auch auf ihm stehen, wenn er noch unsichtbar ist, nicht?
geschrieben am 18.06.2012 7:54:04
( Link )
Ja, und der Schlüssel wird bei mir dann auch unsichtbar :/
geschrieben am 18.06.2012 16:20:04
( Link )
das der schlüssel unsichtbar wird muss aber andere Gründe haben...
oder versuch mal:
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Custom Sprite ? Block
;
;Set it to act like tile 129
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

db $42
JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireBall
JMP MarioTopCorner : JMP MarioHeadIn : JMP MarioBodyIn

MarioBelow:

JSR SetSpriteCoord1
LDA #$01 ;Custom Sprite Number
JSR SpawnSprite
LDA #$0D ; Replace block with block # 1E6
STA $9C
JSL $00BEB0 ; Make the block disappear.
SpriteV:
SpriteH:
MarioCape:
MarioFireBall:
MarioHeadIn:
MarioBodyIn:
MarioTopCorner:
MarioSide:
MarioAbove:
RTL


SpawnSprite:
PHX
PHP
SEP #$30
PHA
LDX #$0B
SpwnSprtTryAgain:
LDA $14C8,x ;Sprite Status Table
BEQ SpwnSprtSet
DEX
CPX #$FF
BEQ SpwnSprtClear
BRA SpwnSprtTryAgain
SpwnSprtClear:
DEC $1861
BPL SpwnSprtExist
LDA #$01
STA $1861
SpwnSprtExist:
LDA $1861
CLC
ADC #$0A
TAX
SpwnSprtSet:
STX $185E
LDA #$08
STA $14C8,x ;Sprite Status Table
PLA
STA $7FAB9E,x
JSL $07F7D2 ; reset sprite properties
JSL $0187A7 ; get table values for custom sprite
LDA #$88 ; mark as initialized
STA $7FAB10,x
INC $15A0,x ;"Sprite off screen" flag, horizontal
LDA $9A ;Sprite creation: X position (low)
STA $E4,x ;Sprite Xpos Low Byte
LDA $9B
STA $14E0,x ;Sprite Xpos High Byte
LDA $98 ;Sprite creation: Y position (low)
STA $D8,x ;Sprite Ypos Low Byte
LDA $99 ;Sprite creation: Y position (high)
STA $14D4,x ;Sprite Ypos High Byte
LDA #$3E
STA $1540,x ;Sprite Spin Jump Death Frame Counter
LDA #$D0
STA $AA,x ;Sprite Y Speed
LDA #$2C
STA $144C,x
LDA $190F,x ;Sprite Properties
BPL SpwnSprtProp
LDA #$10
STA $15AC,x
SpwnSprtProp:
PLP
PLX
RTS

SetSpriteCoord1:
PHP
REP #$20
LDA $98
AND #$FFF0
STA $98
LDA $9A
AND #$FFF0
STA $9A
PLP
RTS
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 06.07.2012 12:14:41
( Link )
Hey ich hätt mal ne kleine frage in bezug auf LM...
Es gab doch eine Tastenkombi mit der man den Messagebox bug fixen kann, oder irre ich mich?
naja wie ist die tastenkombi, oder wie fixe ich den Intro/Messagebox/OW bug sonst?
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 06.07.2012 12:34:44
( Link )
Mit den Boxen hat es nichts zu tun, nur mit Sprite 19.

Wenn du das meinst, Umschalt+F8.
geschrieben am 06.07.2012 13:27:40
( Link )
AH das war die Tasten kombi
hat aufjedenfall funktionirt ^^
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 11.07.2012 15:15:32
( Link )
Klitze kleines Problem.
Hab On/Off-blöcke eingefügt.
Der Block der wenn der Schalter on ist da ist und wenn er off ist weg ist funktioniert wunderbar, sogar mit der Animation.
Der Block, der wenn der Schalter on ist weg ist und wenn er off ist da funktioniert aber überhaupt nicht. Nicht mal die reine Funktion ohne irgendwelche Animation.

Hier mal der Code:
Code
;This block is solid when the on/off switch is set to 'off'.
;Acts like tile 25.
JMP MarioBelow : JMP MarioAbove : JMP MarioSide : JMP SpriteV : JMP SpriteH : JMP MarioCape : JMP MarioFireBall

MarioAbove:
MarioBelow:
MarioSide:
SpriteV:
SpriteH:
MarioCape:
MarioFireBall:
LDA $14AF
BEQ Return
LDY #$01 ;act like tile 130
LDA #$30
STA $1693

Return:
RTL


Mach ich was falsch, oder ist dieser Code fehlerhaft?