Beiträge von mzünni

geschrieben am 13.08.2011 16:18:59 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
hm also ich habe jetzt nur den Freespace gesetzt und dann mit xkasdrauf gepatcht aber irgendwie passirt garnix ...
es kommt kein Blackscreen oder irgendwas aber ich verliere auch nicht mein Pilz in der Item-Box (oder sonst irgendetwas) wenn ich das Level verlasse oder beende ...
hab ich irgendwas vergessen? oder könnte es irgendein asm conflict sein ?(ne geht auch bei der original Rom nich) oder geht der patch nich?

so ich habe mich jetzt selber rangesetzt und mit ein bischen Hilfe das hier gemacht : (im gegensatzt zu dem wonach ich eigentlich gefragt habe setzt dieser Patch beim start des Levels die Itembox zurück ...
macht aber in diesem Kalle keinen unterschie und war für mich so einfacher ^^)
aber ein probel was mich störrt is noch da....
ich lösche auch Yoshi wenn man ins level reingeht ... aber auf der OW sieht man es eben noch ... deswegen würde ich lieber die sachen beim beenden des lvl löschen ...

zusätzlich counter break Y gepatchd^^
Code
;definitions
!freespace = $478000 ;point to freespace! It's IMPORTANT!

header ;rom has a header
lorom ;and is LoROM

org $0491DB ;level loading address
JML startLevel ;jump to main code
NOP ;disable routine (1 byte)
org !freespace ;use freespace in ROM
db "STAR" ;leave this unchanged..
dw codeEnd-codeStart^#$FFFF ;if you want to protect data
codeStart: ;start code
startLevel: ;when level opened...
STZ $0DC2 ;delete item
STZ $0DC1 ;Delete Yoshi
JML $0491E0
codeEnd: ;dont change this!
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 18.08.2011 23:37:57 in Level verschwindet
( Link )
Was meinst du mit " das lvl verschwindet"?
ist nach dem du LM neustartest alles lehr?
oder fehlt nur ein teil?
oder ist alles so wie es im original war?
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 19.08.2011 0:29:08 in Level verschwindet
( Link )
ok ich hab immer noch nicht ganz verstanden was du meinst ...
aber vllt kan dir wer anders helfen

oder du machst ein Video damit auch ich es verstehe
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 19.08.2011 13:31:59 in Level verschwindet
( Link )
hm jetzt hab ichs verstanden
naja das einzige was mir einfallen würde ,währe das das event doppelt belegt ist...
das führt ins SMW ja des öfteren mal zu problemen.
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 19.08.2011 17:52:24 in Level verschwindet
( Link )
naja das war nur eine meiner ideen...
ich glaube aber nicht ,das es daran liegt^^
ich meinte das du das event 2 lvl zugeteilt hast ,dadurch kommen verschiedene (alle schlechte) resultate zu stande.
aber du könntest einfach mal die rom hochladen oder so damit man es sich genau anschauen /testen kann ^^
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 19.08.2011 21:54:10 in Level verschwindet
( Link )
stimmt ^^
alles andere is ja gegen die regeln
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 20.08.2011 0:57:50 in Level verschwindet
( Link )
ah ich glaub ich hab den fehler gefunden
du musst diese Grünen wege teile (also die mario paths) nicht als event basirende teile legen ^^
die kannst du ganz normal platziren ohne in den event moduz zu wechseln
in deinem fall hast du ja bei dem unteren lvl eingestellt das es sichtbar werden soll bei event 0 jedoch überschreibst du es bei event 0 auch mit einem unsichtbaren teil
weswegen in LM das level beim event auch garnicht sichtbar wird.
jedoch scheien beim spielen dann solche fehler zu passiren ^^
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 24.08.2011 15:37:54 in Allgemeine Hex- und ASM-Fragen
( Link )
HI (* freu das das forum wieder on is*)
Code
	print "INIT ",pc
JSR SUB_HORZ_POS
TYA
STA $157C,x
LDA #$19
STA $1528,x
RTL

print "MAIN ",pc
PHB ;\
PHK ; | Change the data bank to the one our code is running from.
PLB ; | This is a good practice.
JSR SpriteCode ; | Jump to the sprite's function.
PLB ; | Restore old data bank.
RTL ;/ And return.

;===================================
;Sprite Function
;===================================

RETURN: RTS

LeftSpd: db $00,$9D,$A0,$A3,$A5,$A8,$AA,$B0,$B4,$B8,$BB,$BD,$C0,$C7,$C8,$C9,$CA,$D0,$D1,$D8,$D9,$E0,$E1,$F6,$F7,$F8
RightSpd: db $00,$75,$72,$6F,$6C,$6A,$67,$5F,$58,$53,$4F,$4B,$49,$3F,$3D,$3B,$3A,$31,$30,$2F,$2E,$21,$20,$0E,$0D,$0C

NameTable: db $11,$19,$78 ;HP:
!NameSize = $02
!Position = $0F24

SpriteCode:
JSR SUB_GFX
PHX
JSR DrawTilemaps ; Draw the tilemaps.
PLX
LDA $1528,x
PHX
JSR HexDec
STX !Position+!NameSize+1
STA !Position+!NameSize+2
PLX
LDA $14C8,x ;\
CMP #$08 ; | If sprite dead,
BNE RETURN ;/ Return.
LDA $9D ;\
BNE RETURN ;/ If locked, return.

LDA $1588,x
AND #$03
BEQ NoFlip ; If touching an object ...
LDA $157C,x
EOR #$01 ; Flip direction.
STA $157C,x

NoFlip:
JSR SUB_OFF_SCREEN_X0 ; Handle offscreen.

LDY $1528,x
LDA $157C,x
BEQ Right
LDA LeftSpd,y
BRA DoSpeed
Right:
LDA RightSpd,y
DoSpeed:
STA $B6,x
LDA #$10
STA $AA,x
JSL $01802A

LDA $1594,x
CMP #$D5
BEQ TIME_TO_SHOOT
INC $1594,x
BRA SHARED

TIME_TO_SHOOT:
JSR DrawSmoke
JSR SUB_FIRE_THROW
STZ $1594,x

SHARED:
JSL $01802A
JSL $03B664
JSR GetSpriteClipping
JSL $03B72B
BCC NoContact

JSR SUB_VERT_POS
LDA $0E
CMP #$E6
BPL SpriteWins

JSL $01AB99
JSL $01AA33
LDA #$A0
STA $7D
DEC $1528,x
LDA $1528,x
BEQ KillSprite
LDA #$54
STA $1DFC ; SFX When jumping on the sprite.
RTS

SpriteWins:
LDA $1490
BNE NoContact ; NOTE: Don't kill the sprite when having a star.
JSL $00F5B7
NoContact:
RTS

KillSprite:
STZ $14C8,x ; die
LDA #$3C
STA $1DFC
JSR DrawSmoke
JSL $07FC3B
LDA #$80
STA $1DFB
LDA #$FF
STA $1493 ; activate "end level" flag
LDA #$00
STA $141C ; normal path
LDA #$0B
STA $71
RTS

;==================================================================
;Draw Tiles To Status Bar.
;==================================================================
DrawTilemaps:
LDX #!NameSize
DrawLoop:
LDA NameTable,x ; Load the tile data indexed by the size.
STA !Position,x ; .. and store to appriopriate tile.
DEX
BPL DrawLoop ; So far, it draws "AAAA"
RTS ; We draw the health routine later, after pulling X.
; ORLY
;==================================================================
;Hex/Dec Subroutine.
;==================================================================
HexDec:
LDX #$00
HexLoop:
CMP #$0A ; While (A == $0A) {
BCC NoConvo ; }
SBC #$0A ; Else { DrawLine.(A - 10); Fail C++ ftw.
INX ; (X + 1) }
BRA HexLoop ; Cout << ("C++ Fail ftw");
NoConvo: ; Oh wait where's the cin command?!
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; fire routine
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

XF_OFFSET: db $13,$FC
XF_OFFSET2: db $00,$FF

RETURN68: RTS
SUB_FIRE_THROW: ;LDA $15A0,x ; no fire if off screen
LDA $186C,x
ORA $15D0,x
BNE RETURN68

JSL $02A9DE ; \ get an index to an unused sprite slot, return if all slots full
BMI RETURN68 ; / after: Y has index of sprite being generated

LDA #$01 ; \ set sprite status for new sprite
STA $14C8,y ; /

LDA #$B6 ;sprite to fire
STA $009E,y

PHY ; set x position for new sprite
LDA $157C,x
TAY
LDA $E4,x
CLC
ADC XF_OFFSET,y
PLY
STA $00E4,y

PHY ; set x position for new sprite
LDA $157C,x
TAY
LDA $14E0,x
ADC XF_OFFSET2,y
PLY
STA $14E0,y

LDA $D8,x ; \ set y position for new sprite
SEC ; | (y position of generator - 1)
SBC #$03 ; |
STA $00D8,y ; |
LDA $14D4,x ; |
SBC #$00 ; |
STA $14D4,y ; /

PHX ; \ before: X must have index of sprite being generated
TYX ; | routine clears *all* old sprite values...
JSL $07F7D2 ; | ...and loads in new values for the 6 main sprite tables
PLX ; /


LDA #$09
STA $1DFC

RETURN67: RTS ; return

DrawSmoke: LDY #$03 ; \ find a free slot to display effect
FINDFREE: LDA $17C0,y ; |
BEQ FOUNDONE ; |
DEY ; |
BPL FINDFREE ; |
RTS ; / return if no slots open

FOUNDONE: LDA #$01 ; \ set effect graphic to smoke graphic
STA $17C0,y ; /
LDA #$1B ; \ set time to show smoke
STA $17CC,y ; /
LDA $D8,x ; \ smoke y position = generator y position
STA $17C4,y ; /
LDA $E4,x ; \ load generator x position and store it for later
STA $17C8,y ; /
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sprite clipping routine
; ripped and modified by Roy, then modified more by Sonikku
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GetSpriteClipping:
PHY
PHX
TXY
LDA $00E4,y
CLC
ADC #$04 ; Starting X pos of sprite clipping = sprite center position - $0C ($0C pixels to the left)
STA $04
LDA $14E0,y
ADC #$00
STA $0A
LDA #$30 ; Width of sprite clipping
STA $06
LDA $00D8,y
SEC
SBC #$20 ; Starting Y pos of sprite clipping = sprite center position - $2C ($2C pixels above)
STA $05
LDA $14D4,y
SBC #$00
STA $0B
LDA #$30 ; Height of sprite clipping
STA $07
PLX
PLY
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; graphics routine
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TILEMAP: db $84,$82,$80 ; facing right
db $A4,$A2,$A0
db $C4,$C2,$C0

db $80,$82,$84 ; facing left
db $A0,$A2,$A4
db $C0,$C2,$C4

db $8A,$88,$86 ; facing right
db $AA,$A8,$A6
db $CA,$C8,$C6

db $86,$88,$8A ; facing left
db $A6,$A8,$AA
db $C6,$C8,$CA

X_OFFSET: db $00,$10,$20
db $00,$10,$20
db $00,$10,$20

Y_OFFSET: db $E0,$E0,$E0
db $F0,$F0,$F0
db $00,$00,$00

PROPERTIES: db $40,$40,$40
db $40,$40,$40
db $40,$40,$40

db $00,$00,$00
db $00,$00,$00
db $00,$00,$00

SUB_GFX: JSR GET_DRAW_INFO ; sets y = OAM offset
LDA $157C,x
STA $04
ASL A
ASL A
ASL A
CLC
ADC $04
STA $02

PHX
LDX #$08
LOOP_START: PHX
LDA X_OFFSET,x
CLC
ADC $00 ; \ tile x position = sprite y location ($01)
STA $0300,y ; /

LDA Y_OFFSET,x
CLC
ADC $01 ; \ tile y position = sprite x location ($00)
STA $0301,y ; /

TXA
CLC
ADC $02
TAX

PHX
LDA $14
LSR A
LSR A
LSR A
AND #$01
BNE SKIP
TXA
CLC
ADC #$12
TAX
SKIP: LDA TILEMAP,x
STA $0302,y
PLX

PHX
LDX $15E9
LDA $15F6,x ; tile properties xyppccct, format
PLX
ORA PROPERTIES,x
ORA $64 ; add in tile priority of level
STA $0303,y ; store tile properties
PLX

INY ; \ increase index to sprite tile map ($300)...
INY ; | ...we wrote 1 16x16 tile...
INY ; | ...sprite OAM is 8x8...
INY ; / ...so increment 4 times
DEX
BPL LOOP_START

PLX
LDY #$02 ; \ 460 = 2 (all 16x16 tiles)
LDA #$08 ; | A = (number of tiles drawn - 1)
JSL $01B7B3 ; / don't draw if offscreen
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 ; return

INVALID: PLA ; \ return from *main gfx routine* subroutine...
PLA ; | ...(not just this subroutine)
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 $001D ;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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SUB_VERT_POS
; This routine determines if Mario is above or below the sprite. It sets the Y register
; to the direction such that the sprite would face Mario
; It is ripped from $03B829
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SUB_VERT_POS: LDY #$00 ;A:25A1 X:0007 Y:0001 D:0000 DB:03 S:01EA P:envMXdizCHC:0130 VC:085 00 FL:924
LDA $96 ;A:25A1 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdiZCHC:0146 VC:085 00 FL:924
SEC ;A:2546 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizCHC:0170 VC:085 00 FL:924
SBC $D8,x ;A:2546 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizCHC:0184 VC:085 00 FL:924
CLC
ADC #$20
STA $0E ;A:25D6 X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0214 VC:085 00 FL:924
LDA $97 ;A:25D6 X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0238 VC:085 00 FL:924
SBC $14D4,x ;A:2501 X:0007 Y:0000 D:0000 DB:03 S:01EA P:envMXdizcHC:0262 VC:085 00 FL:924
BPL SPR_L11 ;A:25FF X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0294 VC:085 00 FL:924
INY ;A:25FF X:0007 Y:0000 D:0000 DB:03 S:01EA P:eNvMXdizcHC:0310 VC:085 00 FL:924
SPR_L11: RTS ;A:25FF X:0007 Y:0001 D:0000 DB:03 S:01EA P:envMXdizcHC:0324 VC:085 00 FL:924

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; SUB HORZ POS
;
; $B817 - horizontal mario/sprite check - shared
; Y = 1 if mario left of sprite??
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;org $03B817

SUB_HORZ_POS: LDY #$00 ;A:25D0 X:0006 Y:0001 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1020 VC:097 00 FL:31642
LDA $94 ;A:25D0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZCHC:1036 VC:097 00 FL:31642
SEC ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1060 VC:097 00 FL:31642
SBC $E4,x ;A:25F0 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizCHC:1074 VC:097 00 FL:31642
STA $0F ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1104 VC:097 00 FL:31642
LDA $95 ;A:25F4 X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1128 VC:097 00 FL:31642
SBC $14E0,x ;A:2500 X:0006 Y:0000 D:0000 DB:03 S:01ED P:envMXdiZcHC:1152 VC:097 00 FL:31642
BPL LABEL16 ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1184 VC:097 00 FL:31642
INY ;A:25FF X:0006 Y:0000 D:0000 DB:03 S:01ED P:eNvMXdizcHC:1200 VC:097 00 FL:31642
LABEL16: RTS ;A:25FF X:0006 Y:0001 D:0000 DB:03 S:01ED P:envMXdizcHC:1214 VC:097 00 FL:31642

print 'Insert size: ',bytes


kann mir jemand sagen was ich bei dem code dazu schreiben muss ,damit der gener für ca 3 sekunden unverwundbar ist ,nachdem ich ihn getroffen hab (ich sollte aber trotzdem nosch auf ihn springen können)
und kann man es machen ,dass wenn er nurnoch 5 hp oder so hat der bildschirm dunkler wird?

danke schonmal im forraus
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 24.08.2011 17:55:06 in Umzug geschafft - wir sind wieder da!
( Link )
allso ich hätte ja erwartet das irgendwas schiefgeht....
aber ich hätte auch gedacht das es längerdauert

und jetzt freu ich mich um so mehr ,dass es so schnell ging
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 25.08.2011 15:10:15 in GFX problem
( Link )
na ja wenn die graphic zu groß ist ist die graphic zu groß... XD
naja ich würde mal die original gfx 32 mit deiner vergleichen.
und was auch seien könnte ist ,dass du versucht hast sie als exgfx ein zufügen?
das geht nazürlich nicht
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 25.08.2011 16:04:40 in GFX problem
( Link )
wenn du nicht weißt wie gross die originale ist nimm ne original rom und guck nach
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 22.09.2011 16:03:12 in Allgemeine SMW Hacking Fragen
( Link )
naja 1. benutzt du das neueste LM?
2. was für eine gfx ist das?
3. wenn du z.b. eine BG tile auf den FG setzt kommt natürlich müll raus .... und bei den meisten gfx musst du eh blöcke einfügen die die grafics passend benutzen....
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 23.09.2011 6:41:05 in Allgemeine SMW Hacking Fragen
( Link )
so ich glaube jetzt weis ich was dein problem ist ^^
wenn du die exgfx auf einen der 4 ow slots packst wir ja eine
andere gfx dafür rausgenommen d.h. es fehlen dir teils welche du wahrscheinlich
irgendwo genutzt hast...
vondaher würde ich FG3 empfehlen da dort nur die tiles für bausers schloss und das wrack drin sind
wenn du diese trotzdem noch benutzen willst musst du mit yychr die fehlenden
teile ind die gfx zufügen
in der datei die du benutzt ist ja noch genug platz ^^
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 23.09.2011 12:44:06 in Allgemeine SMW Hacking Fragen
( Link )
du musst die ow auch nochmal komplett neu bauen mit den neuen tiles ^^
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 23.09.2011 17:58:10 in Allgemeine SMW Hacking Fragen
( Link )
so ich habs jetzt selbst noch mal gemacht
und was du wahrscheinlich nicht gemacht hast (irgendwie nich verwunderlich):
du hast das ganze auf der main overworld eingefüt (nur bei der kommt das problem vor glaube ich^^)
du musst jetzt den 8x8 tile editor öffnen und ganz unten links die tiles unter forest of illusion wieder "heile machen"
(das sind die tiles die layer 1 auf der OW benutzt)
einfach die schwarzen teile mit nem blauen überschreiben
wenn des nicht verstandes hast würde ich es die lieber über teamviewer oder so zeigen XD
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 24.09.2011 16:53:02 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Hi

ich hätte eine "kleine" Ftage...
ist es möglich einen ASM block (der z.b. ein powerup gibt) so zu schreiben ,dass man ihn nicht nach links/rechts dupliziren kann?
(ich weiß das es auf smwc einen patch gibt aber denn kan ich leider nicht benutzten)
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 24.09.2011 21:54:34 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
zuletzt bearbeitet von mzünni am 05.10.2011 21:43:03.
( Link )
@kooooopa
du hast es erfasst
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 29.09.2011 17:23:04 in Allgemeine SMW Hacking Fragen
( Link )
zu 2. es gibt mehrere unterschiedliche generaotren ^^ versuch einfach mal nen anderen
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 29.09.2011 21:35:09 in Allgemeine SMW Hacking Fragen
( Link )
dann drücks anders aus ... oder mach ein video oder sonst was ^^
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 01.10.2011 11:37:07 in Allgemeine SMW Hacking Fragen
( Link )
Spoiler anzeigen
Gibt es eine möglichkeit dafür zu sorgen,dass man zu jeder zeit start+select drücken kann um das Level zu beenden? (also auch wenn das lvl noch nciht geschafft wurde)
denn ich weiß ,dass man sich desöfteren in situationen bringen kann wodurch das Level unschaffbar ist und ich möchte nicht das man sich jedesmal töten muss...
oder man bringt sich in situationen in denen man nicht mehr sterben kann und hängt dann endgültig fest denn mein timelimit steht auf 0 ...

ok ich habe wye reset patch mal einbischen abgeender tdamit er zur die adresse 100 zu 0b setzt und somit die OW lädt aber ich weiß nicht welche tasten start + select sind...
ich will das ja nicht auf L+R liegen haben
ich hoffe ihr könnt mir helfen
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 -->