Beiträge von Drybones

geschrieben am 01.04.2011 0:38:59 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Jo funktioniert wunderbar Danke

Aber eine Frage hätt ich noch. Ich habe mir bei smw central den better boss bass runtergeladen, also der der Mario Frisst und danach wieder im Wasser landet, nich so wie der der bei sprite tool bei war.
Ich hätte gern das der fisch wenn man ihn getötet hat nach kurzer Zeit wieder auftaucht, so wie ein Lakitu nur früher damit der einen dann das ganze Level lang nerft selbst wenn man ihn mal abschiesst.

Kann man das irgentwie im level einstellen oder muss man das in der asm verändern?
geschrieben am 04.04.2011 23:33:06 in Larry boss
( Link )
Hi ich wollt mal Fragen ob sich jemand mit dem Larry Boss von dahnamics von smw central auskennt.
Es war kein Readme dabei und ich habs jetzt einfach wie bei einem Boomerang Brother gemacht, heisst Ers larry mit spritetool eingefügt und danach dann Projektil eins, Projektil 2 usw

Ich hab mal meine Spritetool liste eingefügt.

37 rideable_albatoss.cfg
38 hammer_bro.cfg
39 classic_goomba.cfg
40 classic_pir.cfg
41 boomerang_bro.cfg
42 boomerang.cfg
43 smb3_blooper.cfg
44 fire_bro_m.cfg
45 fireball.cfg
46 cheep_cheep.cfg
47 bass.cfg
48 blooper_nanny.cfg
49 sledge.cfg
50 piranha_short_stem.cfg
51 piranha_short_stem_upsidedown.cfg
52 classic_pir_upsidedown.cfg
53 smallpiranha_sideways.cfg
54 venus.cfg
55 venus_upsidedown.cfg
56 spear_guy.cfg
57 level_ender_boss_music.cfg
58 level_ender.cfg
59 level_ender_walk.cfg
60 level_ender_walk_boss_music.cfg
61 classic_green_koopa.cfg
62 classic_red_koopa.cfg
63 roto_disc.cfg
64 boom_boom.cfg
65 larry.cfg
66 larry_projectile1.cfg
67 larry_projectile2.cfg
68 larry_projectile3.cfg

65 ist Larry und er soll mit nr 66,67 und nummer 68 Schiessen.
Aber er schiesst mit 45,46 und 47

Kann ich das irgentwie ändern?
geschrieben am 05.04.2011 14:21:23 in Larry boss
( Link )
Ah habs verstanden danke jetzt funktioniert er super
geschrieben am 11.04.2011 0:26:21 in Konzept für einen "Mini" oder Geheimboss
( Link )
Was die arme und ihren Schwachpunkt angeht,
man könnte es ja so machen das das auge erst mal eine zeit lang elektrokugeln auf einen feuert, dann kurz damit aufhört und mit einem arm nach einem schlägt. Wenn mann es schafft dem Arm auszuweichen trifft der Arm dann den Boden. Dieser würde dann feststecken und der schwachpunkt würde sich anhand eines kurzschlusses in dem Arm zeigen. Da könnte man dann einen throw block oder einen Gegner der aus irgent nem Rohr kommt gegenwerfen können um ihm zu schaden. Wenn man das gemacht hat könne der arm dann abfallen, und wenn alle arme ab sind könnte man machen das das auge dann direkt angreifbar ist.



Ich hab dazu noch ne kleine Zeichnung gemacht
Hab jetzt einfach mal so ne art klauen an die enden der arme gemalt, nur so ne idee die ich hatte.
geschrieben am 11.04.2011 20:33:58 in Konzept für einen "Mini" oder Geheimboss
( Link )
Naja es wäre aber finde ich schon epischer wenn man zuerst die arme zerstören müsste und das auge danach einen richtigen Wutanfall bekäme bei dem man es dann niederringen muss.

Man könnte es ja auch so machen das die erde kurz bebt wenn die hand den Boden trifft und dann steine aus der decke herausbrechen mit dennen man dann werfen kann.

Würde ein bisschen besser passen finde ich, denn so ein reiner throwblock in so einer Kampfarena sieht wirklich n bisschen fehl am platz aus.
geschrieben am 22.04.2011 0:36:38 in Tod nachdem man nurch Tür geht.
( Link )
Hi ich hab ein kleines Problem mit den Türen in einer Welt.

Wenn ich nämlich durch eine Tür ins andere Level gehe stirbt man weil die Kamera wenn man in die andere Welt kommt am oberen Rand der Welt ist und Mario ausserhalb des Bildschirms erscheint was ja seinen sofortigen Tod bedeutet

Weiss jemand wie man das ändern kann???
geschrieben am 23.04.2011 23:23:40 in Tod nachdem man nurch Tür geht.
( Link )
Ah danke Jetzt überlebt er die schreckliche Tür ^^
geschrieben am 23.04.2011 23:47:43 in Turnblock Grafik
( Link )
Hi ich habe ein kleines Problem mit den Grafiken der turnblocks.

Also ich wollte in meinem Hack lieber vermehrt die Ziegelsteine aus smb3 einsetzen wisst schon die die mario als großer Mario von unten Zertrümmern kann.
Ich habe mir einen Bei smw central heruntergeladen und da er die Grafik des Turnblocks genommen hat habe ich mit yychr Die Grafik in Gfx00 geändert, vorher aber eine Kopie gemacht damit ich für den Notfall noch die Turnblock grafik hab.

Jetzt wollt ich aber doch in einem Level Turnblocks haben, für den Magiekoopa damit er was zum verwandeln hat.
Aber wenn ich auf den roten Pilz gehe und Gfx00 mit der ExGFX mit ter Turnblock grafik ersetze ändert sich nichts Ö.o

Kann mir da jemand helfen???
geschrieben am 26.04.2011 14:33:49 in Turnblock Grafik
( Link )
Ja hab grad bei yy-CHR nachgesehn und die Grafik ist drin.

Es ist die GFX auf der auch der Pilz und die Feuerblume sind und sie hat bei mir den Namen EXGFX98 falls das hilft.
geschrieben am 26.04.2011 15:44:55 in Turnblock Grafik
( Link )
Ja da ist auch eine Turnblock Grafik, aber als ich die damals geändert hatte hatten sich die Item enthaltenen Blöcke geändert nicht die normalen Turnblocks und Throwblocks. Weil die Waren in GFX00.
geschrieben am 03.05.2011 21:55:28 in Turnblock Grafik
( Link )
Hm wenn die Grafik in Gfx 33 is kann ich sie wohl leider nich nur für eine Welt verändern, sondern nur immer im ganzen spiel
Oder wie meinst du das mit dem in map 16 einfügen?
Hast du ne anleitung oder sowas dazu, denn ich versteh grad leider nich was du meinst.
geschrieben am 03.05.2011 22:50:26 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Ich suche nach classischen Parakoopas rot und grün die zu den classischen koopas aus dem Sprite tool passen.
geschrieben am 04.05.2011 15:34:51 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Zitat von gurkeXtreme:
Zitat von Drybones:
Ich suche nach classischen Parakoopas rot und grün die zu den classischen koopas aus dem Sprite tool passen.

du solltest am besten nicht englisch und deutsch mischen
Was ist an den classic parakoopas eigentlich anders könnte man da nicht einfach die grafik ändern der originalen?


Oooooops da is mir tatsächlig sowas passiert stimmt is ja mit k XD
Das kommt wenn man so oft Englisch schreibt und liest XDD

Die klassischen Koopas sind die Koopas aus den ersten Mario spielen(Smb und smb3), also die die sich in den Panzer zurückziehen wenn man draufspringt und nach einer bestimmten zeit wieder rauskommen und weiterlaufen.
Ich finde nur laufende klassische koopas, und wenn ich die mit den Parakoopas aus smw zusammen in eine Welt packe werden sich die laufenden Koopas nach nem hit in den Panzer zurückziehen und die Parakoopas werden wenn man sie runterhaut und dann nochmal draufspringt aus dem Panzer geworfen werden.
Deshalb brauche ich klassische Parakoopas die sich wenn man die Flügel abgehauen hat am Boden so verhalten wie die klassischen Koopas die bei romis sprite tool bei sind.
geschrieben am 12.05.2011 13:35:19 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Hi
Ich suche nach den Feuerschranken aus dem ersten Mario spiel

Hat die zufällig jemand?
geschrieben am 12.05.2011 16:37:36 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Ja die hab ich schon ausprobiert, aber die besteht leider nur aus drei großen Feuerbällen,
ich suche nach denen die aus fünf kleinen Feuerbällen bestehen.
geschrieben am 12.05.2011 20:27:29 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Zitat von Skorme:
Zitat von Drybones:
Ja die hab ich schon ausprobiert, aber die besteht leider nur aus drei großen Feuerbällen,
ich suche nach denen die aus fünf kleinen Feuerbällen bestehen.


Evlt (habe eig keine Ahnung) Extrabit setzten?
Also kp was dann passiert.


Ne das geht leider nich, im readme steht nichts dazu.
Die einzelnen Feuerbälle der Fire bark vom sprite tool sind auch größer als die der feuerschranke von smb
sie sind so groß wie die Feuerbälle die ein Renzor spuckt, die smb schranke hat ja die Feuerbälle in der Größe von denen die man mit der Feuerblume verschiesst.
geschrieben am 13.05.2011 12:44:53 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Zitat von Chris:
@ Drybones:
Hast du auch schon mal auf der Sprite-Seite von SMW Central geguckt? Es empfiehlt sich immer, erstmal dort nach bestimmten Sprites zu suchen, bevor man hier danach fragt.

SMB1 Firebar: http://www.smwcentral.net/download.php? ... pe=sprites

Da diese Firebar bei mir einen Fehler verursachte (Mario wurde an einigen Stellen in Levels verletzt, bei denen sich keine Firebar befand), nahm ich die SMA4-Firebar:
http://www.smwcentral.net/download.php? ... pe=sprites

Edit: Du hast doch auch nach den klassischen Parakoopas gesucht. Dazu gibt es einen Patch:
http://www.smwcentral.net/download.php? ... pe=patches


Ja auf smw Central hatt ich schon geschauht, hatte aber nichts gefunden,
hab wohl nich richtig hingesehn nächstes mal pass ich besser auf damit ich nichts überseh ^^
Mit dem Koopa patch ist nur leider das Problem das sich dann alle Koopas in Classik Koopas verwandeln, Ich wollt es im Hack nämlich gern mischen, sprich das in manchen welten die smw Koopas und in manchen die smb3 Koopas sind

Aber auf jedenfall danke
Jetzt kann ich endlich bei meinen Schlössern weitermachen.

Nochmals danke
geschrieben am 13.05.2011 12:58:37 in Allgemeine Hex- und ASM-Fragen
( Link )
Hi ich hab mal eine Frage zu Better Boss Bass von smw central
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Boss Bass
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; symbolic names for RAM addresses
RAM_SpriteDir = $157C
RAM_NoJumpTimer = $1504
RAM_StateTimer = $1540
RAM_SpriteState = $C2

ExecutePtr = $0086DF

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; INIT and MAIN routines
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DCB "INIT"
LDA $D8,x
ORA #$08
STA $D8,x

STZ RAM_SpriteState,x
JSR SubHorzPos
TYA
STA RAM_SpriteDir,x
LDA TimeInState
STA RAM_StateTimer,x
RTL

DCB "MAIN"
PHB
PHK
PLB
JSR DecrementTimers
JSR BossBassMain
PLB
RTL

DecrementTimers:
LDA $14C8,x
CMP #$08
BNE DoneDec
LDA $9D
BNE DoneDec
LDA RAM_NoJumpTimer,x
BEQ DoneDec
DEC RAM_NoJumpTimer,x
DoneDec:
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Sprite Main
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

BossBassMain:
JSR SubGfx ; Draw sprite

LDA $1528,x ; If the eaten flag is set:
BEQ NotEaten
LDA #$03 ; Make Mario invisible
STA $78
NotEaten:

LDA $14C8,X ; \ Return if status != Normal
CMP #$08 ; |
BNE Return ; /
LDA $9D ; \ Return if sprites are locked
BNE Return ; /

;; JSR SubOffScreen ; Only process while on screen

JSR SetUpMovement
JSL $018022 ; Update x position, no gravity
JSL $01801A ; Update y position, no gravity

JSL $01A7DC ; Handle Mario/sprite contact
BCC Return ; Return if no contact

JSR HandleContact
Return:
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Handle movement
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TimeInState:
dcb $11,$28

SwimSpeedX:
DCB $31,$CF
JumpProximity:
DCB $25,$DC

SetUpMovement:
LDA RAM_SpriteState,x
BNE Jumping
Swimming:
LDA RAM_SpriteDir,x
LDY RAM_StateTimer,x
BNE SkipFlipDireciton
EOR #$01
STA RAM_SpriteDir,x
LDA #$04
STA RAM_NoJumpTimer,x
LDA #$1C
STA RAM_StateTimer,x
SkipFlipDireciton:
LDY RAM_SpriteDir,x
LDA SwimSpeedX,y
STA $B6,x

JSR SubHorzPos ;0 if traveling towards mario
TYA
EOR RAM_SpriteDir,x
BNE SkipSetTimerMax

LDA RAM_NoJumpTimer,x ; Don't jump if timer is set
BNE NoIncState

JSR SubVertPos
CPY #$01 ; Doesn't jump if above Mario
BNE NoIncState
LDA $0F
CMP #$B0
BCC NoIncState

JSR SubHorzPos
CPY #$00
BEQ Less20
GreatE0:
LDA $0F
CMP #$F0
BCS NoIncState
CMP #$D0
BCC NoIncState
BRA IncState
Less20:
LDA $0F
CMP #$10
BCC NoIncState
CMP #$30
BCS NoIncState

IncState:
INC RAM_SpriteState,x
JSR SetStateTimer
LDA #$D9
STA $AA,x
RTS

NoIncState:
LDA #$20
STA RAM_StateTimer,x

SkipSetTimerMax:
STZ $AA,x
RTS


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


JumpAccelX:
dcb $01,$FF

Jumping:
LDA RAM_StateTimer,x ; Go back to swimming state if time
BEQ GotoSwim

LDA $AA,x ; Adjust Y speed
CLC
ADC #$02
STA $AA,x

LDA RAM_SpriteDir,x ; Get index for X acceleration
LDY $00AA,x
BPL NoAdjustIndex
EOR #$01
NoAdjustIndex:
TAY

LDA $B6,x ; Adjust X speed
CLC
ADC JumpAccelX,Y
STA $B6,x
Return2:
RTS

GotoSwim:
STZ RAM_SpriteState,x
JSR SetStateTimer
STZ $AA,x
LDA #$10
STA RAM_NoJumpTimer,x
RTS

HandleContact:
LDA RAM_SpriteState,x ; Only hurt Mario when jumping
BEQ Return2
LDA.B #$09 ; Set death animation
STA $71
STA $1DFB ; Set death music
LDA.B #$30 ; Set time until we return to the OW
STA $1496
STA $1528,x ; Set eaten flag
Return2:
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SetStateTimer:
LDY RAM_SpriteState,x
LDA TimeInState,Y
STA RAM_StateTimer,x
RTS


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Graphics Routine
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SpriteTiles: dcb $46,$47,$2B,$49,$59,$FF,$FF,$FF
dcb $46,$47,$2B,$4A,$5A,$FF,$FF,$FF
dcb $46,$47,$2B,$4D,$7F,$FF,$FF,$FF
dcb $46,$47,$04,$4D,$7F
SpriteTileSize: dcb $02,$02,$02,$00,$00
;; SpriteTileDispY: dcb $E8,$E8,$F8,$F8,$00
SpriteTileDispY: dcb $F0,$F0,$00,$00,$08
SpriteTileDispX: dcb $00,$08,$00,$10,$10
dcb $00,$F8,$00,$F8,$F8
SpriteGfxFlip: dcb $00,$40

SubGfx:
JSR GetDrawInfo

PHY
LDA $15F6,X ; $02 = Palette info
LDY RAM_SpriteDir,X
BNE NoFlip
ORA #$40
NoFlip:
STA $02

LDA #$03 ; $03 = Tilemap offset
LDY $C2,x
BNE StoreFrame
LDA $14
LSR
AND #$02
StoreFrame:
ASL
ASL
ASL
STA $03
PLY

PHX ; Push sprite index
LDX #$04 ; Draw 5 tiles
GfxLoopStart:
PHX ; Push tile number

PHX ; Push tile number
LDA $02
AND #$40
BEQ NoAdjust
TXA
CLC
ADC #$05
TAX
NoAdjust:
LDA $00
CLC
ADC SpriteTileDispX,X
STA $0300,Y
PLX ; Pull tile number

LDA $01
CLC
ADC SpriteTileDispY,X
STA $0301,Y

PHX ; Push tile number
TXA
CLC
ADC $03
TAX
LDA SpriteTiles,X
STA $0302,Y
PLX ; Pull tile number

LDA $02
ORA $64
STA $0303,Y

LDA SpriteTileSize,X
PHA
TYA
LSR
LSR
TAX
PLA
STA $0460,X
PLX ; Pull tile number

INY ; Adjust index into the OAM
INY
INY
INY
DEX
BPL GfxLoopStart

PLX ; Pull sprite index

LDY #$FF ; We already wrote to $0460,Y
LDA #$04 ; We wrote 5 tiles
JSL $01B7B3
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DATA_03B75C: dcb $0C,$1C
DATA_03B75E: dcb $01,$02

GetDrawInfo: 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 ADDR_03B774 ; |
INC $15A0,X ; /
ADDR_03B774: LDA $14E0,X ; \
XBA ; | Mark sprite invalid if far enough off screen
LDA $E4,X ; |
REP #$20 ; Accum (16 bit)
SEC ; |
SBC $1A ; |
CLC ; |
ADC.W #$0040 ; |
CMP.W #$0180 ; |
SEP #$20 ; Accum (8 bit)
ROL ; |
AND.B #$01 ; |
STA $15C4,X ; |
BNE ADDR_03B7CF ; /
LDY.B #$00 ; \ set up loop:
LDA $1662,X ; |
AND.B #$20 ; | if not smushed (1662 & 0x20), go through loop twice
BEQ ADDR_03B79A ; | else, go through loop once
INY ; /
ADDR_03B79A: LDA $D8,X ; \
CLC ; | set vertical offscree
ADC DATA_03B75C,Y ; |
PHP ; |
CMP $1C ; | (vert screen boundry)
ROL $00 ; |
PLP ; |
LDA $14D4,X ; |
ADC.B #$00 ; |
LSR $00 ; |
SBC $1D ; |
BEQ ADDR_03B7BA ; |
LDA $186C,X ; | (vert offscreen)
ORA DATA_03B75E,Y ; |
STA $186C,X ; |
ADDR_03B7BA: DEY ; |
BPL ADDR_03B79A ; /
LDY $15EA,X ; get offset to sprite OAM
LDA $E4,X ; \
SEC ; |
SBC $1A ; |
STA $00 ; / $00 = sprite x position relative to screen boarder
LDA $D8,X ; \
SEC ; |
SBC $1C ; |
STA $01 ; / $01 = sprite y position relative to screen boarder
RTS ; Return

ADDR_03B7CF: PLA ; \ Return from *main gfx routine* subroutine...
PLA ; | ...(not just this subroutine)
RTS ; /

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This routine determines which side of the sprite Mario is on. It sets the Y register
; to the direction such that the sprite would face Mario
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SubHorzPos:
LDY #$00
LDA $94
SEC
SBC $E4,x
STA $0F
LDA $95
SBC $14E0,x
BPL HorzIncY
INY
HorzIncY:
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SubVertPos:
LDY #$00
LDA $96
SEC
SBC $D8,x
STA $0F
LDA $97
SBC $14D4,x
BPL VertIncY
INY
VertIncY:
RTS

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

DATA_01AC0D: dcb $40,$B0
DATA_01AC0F: dcb $01,$FF
DATA_01AC11: dcb $30,$C0
DATA_01AC19: dcb $01,$FF

SubOffScreen: STZ $03
JSR IsSprOnScreen ; \ if sprite is not off screen, return
BEQ Return01ACA4 ; /
LDA $5B ; \ vertical level
AND #$01 ; |
BNE VerticalLevel ; /
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 OffScrEraseSprite ; / ...erase the sprite
LDA $167A,X ; \ if "process offscreen" flag is set, return
AND #$04 ; |
BNE Return01ACA4 ; /
LDA $13
AND #$01
STA $01
TAY
LDA $1A
CLC
ADC DATA_01AC11,Y
ROL $00
CMP $E4,X
PHP
LDA $1B
LSR $00
ADC DATA_01AC19,Y
PLP
SBC $14E0,X
STA $00
LSR $01
BCC ADDR_01AC7C
EOR #$80
STA $00
ADDR_01AC7C: LDA $00
BPL Return01ACA4
OffScrEraseSprite: LDA $14C8,X ; \ If sprite status < 8, permanently erase sprite
CMP #$08 ; |
BCC OffScrKillSprite ; /
LDY $161A,X
CPY #$FF
BEQ OffScrKillSprite
LDA #$00
STA $1938,Y
OffScrKillSprite: STZ $14C8,X ; Erase sprite
Return01ACA4: RTS

VerticalLevel: LDA $167A,X ; \ If "process offscreen" flag is set, return
AND #$04 ; |
BNE Return01ACA4 ; /
LDA $13 ; \
LSR ; |
BCS Return01ACA4 ; /
LDA $E4,X ; \
CMP #$00 ; | If the sprite has gone off the side of the level...
LDA $14E0,X ; |
SBC #$00 ; |
CMP #$02 ; |
BCS OffScrEraseSprite ; / ...erase the sprite
LDA $13
LSR
AND #$01
STA $01
TAY
LDA $1C
CLC
ADC DATA_01AC0D,Y
ROL $00
CMP $D8,X
PHP
LDA $001D
LSR $00
ADC DATA_01AC0F,Y
PLP
SBC $14D4,X
STA $00
LDY $01
BEQ ADDR_01ACF3
EOR #$80
STA $00
ADDR_01ACF3: LDA $00
BPL Return01ACA4
BMI OffScrEraseSprite

IsSprOnScreen: LDA $15A0,X ; \ A = Current sprite is offscreen
ORA $186C,X ; /
RTS ; Return


Ich wollt es so machen das er nach ein Paar Sekunden wieder erscheint wenn man ihn getötet hat egal wo man in dem Level ist. So wie in smb3.
Weil momentan macht er zwar alles was er soll, aber wenn man ihn am Anfang mit einer Feuerblume oder einem Panzer killt ist das restliche Level ganz schön einfach.
geschrieben am 15.05.2011 22:38:20 in Durchsichtiges Wasser
( Link )
Hi ich habe mal eine Frage,
Ich möchte die Wasser Level in meinem Hack gerne wie in smb3 machen, also so das man oben eine Wasseroberfläche hat und das alles was im wasser ist diesen bläulichen schimmer hat ( Die erste Welt in dem video)
Dann will ioch auch noch eine Welt machen bei der am unteren Rand des Bildes durchsichtiges wasser ist und der Boden ins wasser eintaucht und wieder hochkommt.(Dritte Welt in dem Video) Wenn man das Layer 3 wasser in Kombination mit layer 2 nimmt geht es leider nicht.
[youtube]http://www.youtube.com/watch?v=uyCX4cnlKTw&feature=related[/youtube]
geschrieben am 15.05.2011 22:42:49 in Durchsichtiges Wasser
( Link )
Hehe XD hab ich grad ers gemerkt und war dabei es zu Fixen
Echt guter service hier im Forum XD danke