Beiträge von Seuchensoldat

geschrieben am 08.01.2011 22:58:28 in Screen Scrolling Pipes Problem
( Link )
Mir hat jetzt per SMW Central jemand geantwortet, allerdings muss ich gerade zugeben, dass ich keinerlei Ahnung von der RAM Map habe und dem Ganze nicht hundertprozentig folgen kann..

"You're using LM 1.7x+... right.
Chech if the patch uses this RAM:
[$7FC070] : $8E bytes, new ExAnimation
If yes, search for a new empty RAM in RAM Map."

Wie genau soll ich das denn tun? Wie kann ich in der RAM Map schauen, ob diese Stelle genutzt wird?
geschrieben am 09.01.2011 0:28:09 in Screen Scrolling Pipes Problem
( Link )
So, das Ganze hat sich geklärt. Die Pipes funktionieren mittlerweile, ebenso die Levelanimationen. Im Patch muss

!MiscData = $3FE00 ;Change this to where you want a tiny ASM hack (~60 bytes)

diese Stelle zu Freespace in der ROM Map (kann auf SMW Central nachschauen, einfach bei der Ram Map nach "Empty" oder "Unused" suchen) führen. Danke für die Hilfe!
geschrieben am 13.01.2011 18:05:49 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )
Ein Screenshot aus dem Schloss der fünften Welt. Nichts besonderes, YI Graphiken, hab einige Kanten neugepixelt (aufgrund des nicht vorhandenen Schattens), nichts Besonderes für die vielen Profipixler hier, aber ich bin zufrieden mit.



Mir fällt gerade auf, dass ich mich bei den Ecken in den Farben vertan habe und versehentlich eine dunklere Abstufung gewählt habe als ich eigentlich wollte. Egal, wird demnächst ausgebessert.

Edit: Okay, ist bei den bereits vorhandenen Ecktiles auch so. Dementsprechend lass ich das also. ;D
geschrieben am 14.01.2011 23:39:10 in Allgemeine SMW Hacking Fragen
( Link )
Nabend allerseits.

Benutzt hier jemand den Poison Mushroom, der beim Sprite Tool dabei ist (der mit der .cfg und der .bin Datei)? Habe die Blocks 127 und 128 per Hexedit so eingestellt, dass sie anstelle des grünen Koopapanzers den Poison Mushroom spawnen. Das klappt auch wunderbar, der Mushroom verhält sich so, wie er es soll. Es gibt nur ein Problem:



Besteht irgendwie die Möglichkeit, die Palette davon zu ändern, so dass sie Palette B nutzt? Normalerweise hätte ich in der .cfg Datei rumgefummelt, bis es irgendwann geklappt hätte, allerdings lässt sich diese per .cfgeditor nicht öffnen. Gibt es da irgendeinen Hexedit? Dabei soll natürlich zu beachten sein, dass nur der Mushroom die Farben ändern soll, nicht alle anderen grünen Shells. Danke im Voraus!
geschrieben am 15.01.2011 11:42:49 in Allgemeine SMW Hacking Fragen
( Link )
Manchmal frage ich mich echt, warum ich mich Hacker nenne Ich scheiter an solch einfachen Dingen, liegt wohl daran, dass ich gestern wohl zu müde zum rationalen Denken war. Hat wunderbar geklappt, 06 war die richtige Zahl. Danke danke.
geschrieben am 15.01.2011 12:20:11 in Mario and Bowser's New Invasion
( Link )
Gefällt mir, allerdings finde ich die Palmen irgendwie fehl am Platz.
geschrieben am 15.01.2011 16:57:28 in Mario and Bowser's New Invasion
( Link )
Der Baumstamm ist okay, nur sollte er vllt. über dem Abgrund aufliegen (d.h. den ganzen Baumstamm höher setzen und die Endtiles jeweils einen nach links bzw. rechts setzen). Sähe wohl realisitischer aus.
geschrieben am 15.01.2011 20:13:30 in Mario and Bowser's New Invasion
( Link )
Bezüglich der Sache mit den Palmen ist ja auch nur zu sagen, dass das schlichtweg vom persönlichen Geschmack abhängt. Klar, es sieht nicht störend aus. Ich habe nur das Problem, dass ich versuche, recht logisch zu denken und da kommt mir halt in den Sinn, dass Palmen eher in Dschungel / Wüsten / Strand Gebieten zu finden sind. Logik sollte man beim SMW Hacking allerdings zu einem gewissen Grad ausschalten, sonst kriegt man weder vernünftiges Leveldesign (nicht meine Stärke..) noch sonstigen Kram auf die Reihe. Von daher sollte das auch gar nicht bedeuten, dass die Palmen da ein absolutes No-Go gewesen sind.
geschrieben am 15.01.2011 23:18:24 in Allgemeine SMW Hacking Fragen
( Link )
Ich hab nochmal ein Palettenproblem mit einem Custom Sprite. Dieses Mal ist es die "Shortstem Venus Fire Trap" (http://www.smwcentral.net/download.php? ... pe=sprites). Die normale Upside Down Venus funktioniert ohne weitere Probleme, allerdings geht es um die Short Stem Variante. Die nutze ich einmal mit rotem Kopf und einmal mit grünem Kopf. Problem: Die grüne Variante schaut, sobald sie aus der Röhre kommt, nach unten. In der .asm Datei hab ich bereits eingestellt, dass der Kopf in dem Fall grün ist. Wenn Mario aber nun springt und die Pflanze dementsprechend nach oben schaut, ist der Kopf rot. Ich hab nun keinerlei Hinweis gefunden, wie die Graphik in der Situation auch die grüne Palette (D) nutzt. Hat da jemand Ahnung? Hier die meiner Meinung nach relevante Stelle des Codes:

Spoiler anzeigen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sprite data
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TILEMAP dcb $C0,$CE,$C0,$CE
VERT_DISP dcb $10,$00,$10,$00
PROPERTIES dcb $0A,$8A,$88,$8A ;xyppccct format

Y_SPEED dcb $00,$10,$00,$F0 ;rest at bottom, moving up, rest at top, moving

down
TIME_IN_POS dcb $19,$68,$19,$48 ;moving up, rest at top, moving down, rest at

bottom

Y_FIRE dcb $0C,$0C,$06,$06,$F4,$F4,$FA,$FA
X_FIRE dcb $0C,$F4,$10,$F0


Bei den Properties hab ich an erster Stelle die $0A eingefügt, das sorgt für die grüne Farbe beim Herunterschauen der Pflanze. Hat das Ganze was mit dem "Vert_Disp" zu tun? Danke im Voraus!
geschrieben am 16.01.2011 10:42:18 in Allgemeine SMW Hacking Fragen
( Link )
Leider nein. Ich hab gestern schon mit den Werten rumgespielt das hatte im Endeffekt zur Folge, dass die Ranke umgedreht war oder der Kopf nur noch in eine Richtung schaute. Deswegen fragte ich ja auch hier. Ich werd gleich mal mit diesem Piranha Pack rumspielen, welches ca. 48 Varianten von den klassischen Piranhapflanzen und den Venus Pflanzen bietet. Werde da wohl die Tilemaps ein wenig anders anordnen und versuchen, den Feuerspuck Soundeffekt hinzuzufügen. Ich hoffe, dass klappt so einfach, wie ich es mir vorstelle.

Edit: Ah, ich bin blöd. Du hast Recht, Reallink. Ich hab in deinem Post nicht 8A, sondern 0A gelesen. Letzteres hatte ich bereits ausprobiert, was zu keinem guten Ergebnis führte. Verfluchte Kurzsichtigkeit. -.-
geschrieben am 17.01.2011 20:30:52 in Du suchst Custom Sprites/Blocks/Music oder Graphics? Hier!
( Link )
Nabend. Ich wollte mal wissen, ob es den Boomerang Soundeffect aus Super Mario Allstars (genau genommen SMB3) irgendwo gibt. Der ist im SMB3 Music Patch mit dabei, soweit ich das mitbekommen habe, allerdings nutze ich den ja nicht, da ich auch andere Custom Music im Hack haben wollte.
geschrieben am 22.01.2011 10:19:02 in Vorstellungs-/Verlassens-/Rückkehr-Thread
( Link )
Was erwartest du? Telekom halt. Sei froh, dass du jetzt noch Internet hast, wenn dieser Verein von Versagern erstmal dran rumgefummelt hat, bist du wochenlang netzlos.
geschrieben am 25.01.2011 16:19:52 in Allgemeine Hex- und ASM-Fragen
( Link )
Ich bräuchte mal Hilfe bezüglich der Sprite Status Bar. Die nutze ich ja mittlerweile, weil ich nicht auf Layer 3 verzichten möchte. Allerdings mache ich in meinem Hack keinerlei Gebrauch der Bonus Stars. In der .bin Datei, welche die Graphiken für die Status Bar beinhaltet, habe ich die Sterngraphik bereits rausgelöscht, allerdings kann ich das kleine "x" davor nicht rauslöschen, da es auch bei dem Live Counter verwendet wird. Besteht irgendwie die öglichkeit, in der ssb.asm die Tilemap des Bonus Star Counters (genauer: Die Tilemap von dem kleinen "x", denn der Stern ist ja schon verschwunden) auf ein leeres Feld zu legen? Ich versteh von der .asm Datei leider nur Bahnhof.

Spoiler anzeigen
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Sprite Status Bar v1.1.0
; coded by edit1754
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
header
lorom

!FREESPACE = $3E8000 ; <-- CHANGE THIS UNLESS YOU WANT TO CORRUPT SOMETHING!

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; values you don't necessarily need to change, and most of the time shouldn't
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

!RAMBuffer = $7F1344 ; change this if you're already using it for another ASM hack
; it uses 0x480 bytes right after the dynamic sprite buffer

!RAMBuffer2 = $7F17C4 ; uses 0x600 bytes. Default is right after the other buffer
; used for goalpoint fix

!LevelEnabled = LevelTable
!LevelGFXLoc = LevelTable+1
!LevelSBProp = LevelTable+2

!TransparentTile = $2F*$20
!CopyToRAM = $30*$20
!CopyToRAM2 = $54*$20
!SBGFXSize = $0480
!GPGFXSize = $0600
!MarioName = $00*$20
!LuigiName = $10*$20

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; levelnum.ips (disassembly) - credit goes to BMF for this
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG $05D8B9
JSR LevelNumCode

ORG $05DC46
LevelNumCode: LDA.b $0E ; Load level number, 1st part of hijacked code
STA.w $010B ; Store it in free RAM
ASL A ; 2nd part of hijacked code
RTS

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; hijacks
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

org $05BEA0
JSL LoadLevel

org $9F68
JSL GameMode13
NOP
NOP

org $A2A1
JSL GameMode14

org $8292
JML IRQHack
NOP

org $8DB1
JML SBUploadHack ; $8DAC would be more ideal, but Stripe Image Uploader already uses it
NOP

org $0299DF
JML CoinBlockFix

org $2AD34
JML ScoreSprFix

org $07F1DB
JML BonusStarFix ; part of goalpoint fix code

org $AF2D
BRA +
NOP #2
+ JSL GoalTextFix

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Main Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

macro OAMTile(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0200++++
LDA.b #
STA.w $0201++++
LDA.b #
CLC : ADC.w !LevelGFXLoc,x
STA.w $0202++++
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0203++++
LDA.b #
STA.w $0420+
endmacro

macro OAMTileYoshiCoin(num,xpos,dest)
LDA.w $0EFF+
CMP.b #$FC
BEQ ?NoShowCoin
LDA.b #
STA.w $0200++++
LDA.b #$0F
STA.w $0201++++
LDA.b #$14
CLC : ADC.w !LevelGFXLoc,x
STA.w $0202++++
LDA.b #%00110000
ORA.w !LevelSBProp,x
STA.w $0203++++
LDA.b #$00
STA.w $0420+
?NoShowCoin:
endmacro

macro OAMTileGP(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0300++++,y
LDA.b #
STA.w $0301++++,y
LDA.b #+$24
;CLC : ADC.b #$24
CLC : ADC.w !LevelGFXLoc,x
STA.w $0302++++,y
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0303++++,y
PHY
TYA
LSR #2
TAY
LDA.b #
STA.w $0460+,y
PLY
endmacro

macro OAMTileGPc(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0300++++,y
LDA.b #
STA.w $0301++++,y
LDA.b #
CLC : ADC.w !LevelGFXLoc,x
STA.w $0302++++,y
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0303++++,y
PHY
TYA
LSR #2
TAY
LDA.b #
STA.w $0460+,y
PLY
endmacro

macro number(ptr,dest,offset)
LDA.w #!RAMBuffer+
STA.w $2181
LDY.b #!RAMBuffer>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.w
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
CLC : ADC.w #
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

macro bonusstar(ptr,dest)
LDA.w #!RAMBuffer+
STA.w $2181
LDY.b #!RAMBuffer>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.w
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
SEC : SBC.w #$0097
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

macro numberGP(ptr,dest,offset)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.w
AND.w #$00FF
CLC : ADC.w #
ASL #5
CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

macro numberGPb(ptr,dest,offset)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.b
AND.w #$00FF
CLC : ADC.w #
ASL #5
CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

macro bonusstarGP(ptrx,dest)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.l ,x
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
SEC : SBC.w #$0097
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

macro transGP(dest)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.w #!TransparentTile+Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro

org !FREESPACE
reset bytes

db "STAR"
dw CodeEnd-CodeStart
dw CodeEnd-CodeStart^#$FFFF

CodeStart:

GameMode13: ORA.w $0DB0 ; \ hijacked
STA.w $2106 ; / code
LDA.w $0100 ; \ if game mode
CMP.b #$13 ; | != 13, then
BNE ReturnRTL ; / return
PHB : PHK : PLB ; back up B, K -> B
REP #%00100000 ; 16-bit A
JMP InLevel ; JMP to in-level code (second part of on-load code)

GameMode14: JSL $0586F1 ; hijacked code
LDA.w $0100 ; \ if game mode
CMP.b #$14 ; | != 14, then
BNE ReturnRTL ; / return
PHB : PHK : PLB ; back up B, K -> B
REP #%00100000 ; 16-bit A
JMP InLevel ; JMP to in-level code (second part of on-load code)

ReturnSEPXY: SEP #%00010000 ; 8-bit XY
PLB ; restore B
ReturnRTL: RTL

LoadLevel: STA.b $24 ; hijacked code, minus SEP #%00100000, because we need 16-bit A anyway
REP #%00010000 ; 8-bit XY, A is already 16-bit
PHB : PHK : PLB ; back up B, K -> B
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
BEQ ReturnSEPXY ; if disabled, return
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; | copy main GFX
STY.w $4301 ; | to RAM buffer
LDA.w #!CopyToRAM+Graphics
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #!SBGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /

InLevel: REP #%00010000
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
BEQ ReturnSEPXY ; if disabled, return
%OAMTile(0,$10,$0F,$00,%00110000,%10)
%OAMTile(1,$20,$0F,$02,%00110000,%10)
%OAMTile(2,$30,$0F,$04,%00110000,%00)
%OAMTile(52,$70,$07,$07,%00110000,%10)
%OAMTile(53,$80,$07,$07,%01110000,%10)
%OAMTile(54,$70,$17,$07,%10110000,%10)
%OAMTile(55,$80,$17,$07,%11110000,%10)
%OAMTile(12,$60,$0F,$05,%00110000,%10)
%OAMTile(13,$48,$17,$20,%00110000,%00)
%OAMTile(14,$50,$17,$11,%00110000,%00)
%OAMTile(42,$98,$0F,$09,%00110000,%10)
%OAMTile(43,$A0,$0F,$0A,%00110000,%10)
%OAMTile(15,$C8,$0F,$14,%00110000,%00)
%OAMTile(33,$B8,$17,$21,%00110000,%00)
%OAMTile(34,$C0,$17,$22,%00110000,%00)
%OAMTile(35,$C8,$17,$23,%00110000,%00)
%OAMTile(36,$D0,$0F,$0C,%00110000,%10)
%OAMTile(37,$E0,$0F,$0E,%00110000,%10)
%OAMTileYoshiCoin(0,$40,44)
%OAMTileYoshiCoin(1,$48,45)
%OAMTileYoshiCoin(2,$50,46)
%OAMTileYoshiCoin(3,$58,47)
LDA.b #$12 ; \
STA.w $170B ; | fix a few
STA.w $170C ; | extended sprite
STA.w $1711 ; | glitches
STA.w $1712 ; /
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; |
STY.w $4301 ; |
LDA.w #!MarioName ; | upload
LDY.w $0DB3 ; | character
BEQ NotLuigi ; | name
LDA.w #!LuigiName ; |
NotLuigi: CLC : ADC.w #Graphics ; |
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #$00A0 ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
%number($0F13,$01C0,$05)
%number($0F14,$01E0,$05)
%number($0F16,$0240,$05)
%number($0F17,$0260,$05)
%number($0F25,$0320,$15)
%number($0F26,$0340,$15)
%number($0F27,$0360,$15)
%number($0F29,$0420,$05)
%number($0F2A,$0440,$05)
%number($0F2B,$0460,$05)
%number($0F2C,$0380,$05)
%number($0F2D,$03A0,$05)
%number($0F2E,$03C0,$05)
%bonusstar($0F03,$00A0)
%bonusstar($0F04,$00C0)
%bonusstar($0F1E,$02A0)
%bonusstar($0F1F,$02C0)
SEP #%00100000
PLB
RTL

IRQHack: LDA.w $0100 ; \
CMP.b #$0B ; | if game mode != 0B (fading out),
BEQ IRQChkLevel ; | 0F (fading from pipe),
CMP.b #$0F ; | 12 (initializing level),
BEQ IRQChkLevel ; | 13 (fading into level),
CMP.b #$12 ; | 14 (in level),
BCC DefaultIRQ ; | or 15 (fade to gameover/timeup)
CMP.b #$16 ; | then no IRQ hack
BCS DefaultIRQ ; /
IRQChkLevel: PHB : PHK : PLB ; back up B, K -> B
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
SEP #%00010000 ; 8-bit XY
PLB ; restore B
CMP.b #$00 ; \ if SSB disabled,
BEQ DefaultIRQ ; / then no IRQ hack
LDY.b #$E0 ; \ all 224
LDA.w $4211 ; / scanlines
STY.w $4209 ; \ Vertical IRQ
STZ.w $420A ; / trigger counters
LDA.w $0DAE ; \ brightness
STA.w $2100 ; /
LDA.w $0D9F ; \ HDMA
STA.w $420C ; /
JML $008394 ; JML to layer 3 scrolling, etc.

DefaultIRQ: LDY.b #$24 ; status bar ends at line 24 (default)
LDA.w $4211 ; dummy read
JML $008297 ; JML to rest of default IRQ

SBUploadHack: PHB : PHK : PLB ; back up B, K -> B
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; \ if SSB disabled, then
BNE + ; | upload regular SB tilemap
JMP DrawSB ; /
+ LDA.w $0100 ; \ during level load,
CMP.b #$12 ; | only the status bar
BEQ SBDMA ; / is important
LDA.b $14 ; \
AND.b #%00000001 ; | alternate
BNE GoalPtChk ; /
SBDMA: LDA.w !LevelSBProp,x ; \
AND.b #%00000001 ; | which GFX page
XBA ; /
LDA.w !LevelGFXLoc,x ; get starting tile of GFX
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDY.b #%10000000 ; \ increment when high
STY.w $2115 ; / byte is accessed
ASL #4 ; x16 (#$10)
CLC : ADC.w #$6000 ; +#$6000
STA.w $2116 ; set as VRAM destination
LDY.b #$01 ; \
STY.w $4300 ; | rest of
LDY.b #$18 ; | GFX buffer
STY.w $4301 ; | transfer
LDA.w #!RAMBuffer ; | to VRAM
STA.w $4302 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $4304 ; |
LDA.w #!SBGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
SEP #%00100000 ; 8-bit A
PLB ; restore B
JML $008DE6 ; JML to end of DrawStatusBar routine
GoalPtChk: SEP #%00010000 ; 8-bit XY
LDY.w $1493 ; \ no goal text upload
BEQ NoGoalPt ; / unless level is ending
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelSBProp,x ; \
AND.b #%00000001 ; | which GFX page
XBA ; /
LDA.w !LevelGFXLoc,x ; get starting tile of GFX
CLC : ADC.b #$24 ; 24 tiles after. NOTE TO SELF: change this when making this changeable
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDY.b #%10000000 ; \ increment when high
STY.w $2115 ; / byte is accessed
ASL #4 ; x16 (#$10)
CLC : ADC.w #$6000 ; +#$6000
STA.w $2116 ; set as VRAM destination
LDY.b #$01 ; \
STY.w $4300 ; | rest of
LDY.b #$18 ; | GFX buffer
STY.w $4301 ; | transfer
LDA.w #!RAMBuffer2 ; | to VRAM
STA.w $4302 ; |
LDY.b #!RAMBuffer2>>16 ; |
STY.w $4304 ; |
LDA.w #!GPGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
NoGoalPt: SEP #%00100000 ; 8-bit A
PLB ; restore B
JML $008DE6 ; JML to end of DrawStatusBar routine
DrawSB: SEP #%00010000 ; 8-bit XY
PLB ; restore B
LDA.b #$42 ; what A would be (doing this is easier than preserving A)
STA.w $2116 ; \ hijacked
LDA.b #$50 ; / code
JML $008DB6 ; JML to next part of DrawStatusBar routine

CoinBlockFix: PHX ; backup X
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
STA.b $00 ; store to scratch RAM
PLB ; restore B
SEP #%00010000 ; 8-bit XY
PLX ; restore X
LDA.b $00 ; load scratch RAM (SSB-enabled status)
BEQ EndCBF ; no fix if not enabled
DEX ; \ last 3 slots can't
CPX.b #$02 ; | be used because
BMI ReturnCBF ; / SSB uses them
JML $0299D4 ; back
EndCBF: DEX ; \ normal, non-SSB
BMI ReturnCBF ; / level
JML $0299D4 ; back
ReturnCBF: JML $0299E8 ; a RTS in bank 02

ScoreSprFix: PHX ; backup X
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
STA.b $00 ; store to scratch RAM
PLB ; restore B
SEP #%00010000 ; 8-bit XY
PLX ; restore X
LDY.b #$05 ; normally we'd have 5 slots available
LDA.b $00 ; \ but if SSB is enabled
BEQ CODE_02AD36 ; | then we only have
LDY.b #$03 ; / three available
CODE_02AD36: LDA.w $16E1,y ; \
BEQ Return02AD4B ; | SMW's code
DEY ; |
BPL CODE_02AD36 ; |
DEC.w $18F7 ; |
BPL CODE_02AD48 ; |
LDA.b #$03 ; |
STA.w $18F7 ; |
CODE_02AD48: LDY.w $18F7 ; /
Return02AD4B: RTL



BonusStarFix: PHA ; \ hijacked
LSR #3 ; / code
PHA ; backup A
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
PLB ; restore B
SEP #%00010000 ; 8-bit XY
CMP.b #$00 ; \ if not disabled,
BNE AltBonusStarCode ; / use alternate bonus star code
PLA ; restore A
JML $07F1DF

AltBonusStarCode:
LDA.b #$10
STA.w $1692
JSR GetOAMSlot
PLA
LSR
TAX
BEQ CODE_07F1ED
LDA.l $07F1A0,x
TAX
JSR CODE_07F200
CODE_07F1ED: PLA
AND.b #$0F
TAX
LDA.l $07F1A0,x
TAX
LDA.b #$20
STA.b $02
JSR.w CODE_07F200
RTL

CODE_07F200: LDA.l $07F0C8,x ; same as original SMW code,
BMI CODE_07F24A ; but uses second half of OAM
CLC
ADC.b #$64
CLC
ADC.b $02
STA.w $0300,y
LDA.l $07F134,x
CLC
ADC.b #$40
STA.w $0301,y
LDA.b #$EF
PHX
LDX $04
CPX.b #$10
BCS CODE_07F22A
TXA
LSR #2
TAX
LDA.l $07F24E,x
CODE_07F22A: STA.w $0302,y
PLX
LDA.b $13
LSR
AND.b #$0E
ORA.b #$30
STA.w $0303,y
PHY
TYA
LSR #2
TAY
LDA.b #$00
STA.w $0460,y
PLY
INY #4
INX
BRA CODE_07F200
CODE_07F24A: LDX.w $15E9
RTS

GoalTextFix: REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
PLB ; restore B
SEP #%00010000 ; 8-bit XY
CMP.b #$00 ; \ if not disabled,
BNE AltGoalTextCode ; / use alternate goal text code
JML $05CBFF ; routine for normal L3 text

AltGoalTextCode:
JSR DisplayGPText
LDA.w $13D9
JSL $0086DF

dw CODE_05CC66
dw CODE_05CD76
dw CODE_05CECA
dw Return05CFE9

CODE_05CC66: LDA.b #$10
STA.w $1692
LDY.b #$00
LDX.w $0DB3
LDA.w $0F48,x
CODE_05CC6E: CMP.b #$0A
BCC CODE_05CC77
SBC.b #$0A
INY
BRA CODE_05CC6E
CODE_05CC77: CPY.w $0F32
BNE CODE_05CC84
CPY.w $0F33
BNE CODE_05CC84
INC.w $18E4
CODE_05CC84: LDA.b #$01
STA.w $13D5
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer2 ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer2>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; | copy main GFX
STY.w $4301 ; | to RAM buffer
LDA.w #!CopyToRAM2+Graphics
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #!GPGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
SEP #%00100000 ; 8-bit A
JSR CODE_05CE4C
REP #%00100000 ; 16-bit A
LDA $02
STA.w $0F40
JSR ScoreToDecimal
JSR UpdateScoreCounter
SEP #%00100000 ; 8-bit A
LDA.w $0F31
BNE TimeXXX
JMP Time0XX
TimeXXX: REP.b #%00100000
%numberGP($0F31,$0400,$05)
Time10s: %numberGP($0F32,$0420,$05)
Time1s: %numberGP($0F33,$0440,$05)
SEP.b #%00100000
INC.w $13D9
LDA.b #$28
STA.w $1424
RTL
Time00X: REP.b #%00100000
%transGP($0400)
%transGP($0420)
JMP Time1s
Time0XX: LDA.w $0F32
BEQ Time00X
REP.b #%00100000
%transGP($0400)
JMP Time10s

CODE_05CD76: LDA.w $1900
BNE +
JMP +++
+ DEC.w $1424
BPL Return05CDE8
JSR UpdateBonusCounter
+++ DEC.w $13D6
BPL Return05CDE8
LDA.w $1900
STA.w $1424
INC.w $13D9
LDA.b #$11
STA.w $1DFC
Return05CDE8: RTL

CODE_05CE4C: REP #$20 ; Accum (16 bit)
LDA.w $0F31
ASL
TAX
LDA.l $05CE3A,x
STA $00
LDA.w $0F32
TAX
LDA.l $05CE42,x
AND.w #$00FF
CLC
ADC $00
STA $00
LDA.w $0F33
AND.w #$00FF
CLC
ADC $00
STA $00
SEP #$20 ; Accum (8 bit)
LDA $00
STA.w $4202 ; Multiplicand A
LDA.b #$32
STA.w $4203 ; Multplier B
NOP #4
LDA.w $4216 ; Product/Remainder Result (Low Byte)
STA $02
LDA.w $4217 ; Product/Remainder Result (High Byte)
STA $03
LDA $01
STA.w $4202 ; Multiplicand A
LDA.b #$32
STA.w $4203 ; Multplier B
NOP #4
LDA.w $4216 ; Product/Remainder Result (Low Byte)
CLC
ADC $03
STA $03
RTS

ScoreToDecimal: LDX.b #$FF ; \ couldn't find original SMW code for this...
LDA.w $0F40 ; | so I wrote my own version
- STA.b $04 ; | this converts the coin score ($0F40)...
INX ; | into decimal, with one byte per power of 10
SEC ; v
SBC.w #10000
BCS -
STX.b $00
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #1000
BCS -
STX.b $01
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #100
BCS -
STX.b $02
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #10 ; ^
BCS - ; |
STX.b $03 ; /
RTS

UpdateScoreCounter:
LDY $00
BNE Sc0
JMP Score0XXXX
Sc0: %numberGPb($00,$04E0,$05)
Sc1: %numberGPb($01,$0500,$05)
Sc2: %numberGPb($02,$0520,$05)
Sc3: %numberGPb($03,$0540,$05)
Sc4: %numberGPb($04,$0560,$05)
RTS
Score0XXXX: LDY $01
BEQ Score00XXX
%transGP($04E0)
JMP Sc1
Score00XXX: LDY $02
BEQ Score000XX
%transGP($04E0)
%transGP($0500)
JMP Sc2
Score000XX: LDY $03
BEQ Score0000X
%transGP($04E0)
%transGP($0500)
%transGP($0520)
JMP Sc3
Score0000X: %transGP($04E0)
%transGP($0500)
%transGP($0520)
%transGP($0540)
JMP Sc4

CODE_05CECA: PHB : PHK : PLB
REP #%00100000
LDY.b #$00
LDA.w $0DB3
AND.w #$00FF
BEQ CODE_05CEDB
LDY.b #$03
CODE_05CEDB: LDX.b #$02
LDA.w $0F40
BEQ CODE_05CF05
CMP.w #$0063
BCS CODE_05CEE9
LDX.b #$00
CODE_05CEE9: SEC : SBC.l $05CEC2,x
STA.w $0F40
STA $02
LDA.l $05CEC6,x
CLC : ADC.w $0F34,y
STA.w $0F34,y
LDA.w $0F36,y
ADC.w #$0000
STA.w $0F36,y
CODE_05CF05: LDY.w $1900
BEQ CODE_05CF36
SEP #%00100000
LDA.b $13
AND.b #$03
BNE CODE_05CF34
LDY.w $0DB3
LDA.w $0F48,y
CLC : ADC.b #$01
STA.w $0F48,y
LDA.w $1900
DEC A
STA.w $1900
AND.b #$0F
CMP.b #$0F
BNE CODE_05CF34
LDA.w $1900
SEC
SBC.b #$06
STA.w $1900
CODE_05CF34: REP #%00100000
CODE_05CF36: LDA.w $0F40
BNE CODE_05CF4D
LDX.w $1900
BNE CODE_05CF4D
LDY.b #$30
STY.w $13D6
INC.w $13D9
LDY.b #$12
STY.w $1DFC
CODE_05CF4D: JSR ScoreToDecimal
JSR UpdateScoreCounter
LDA.w $1424
BEQ CODE_05CFDC
SEP #%00100000
JSR UpdateBonusCounter
CODE_05CFDC: PLB
SEP #%00110000
Return05CFE9: RTL

ReturnGPText: RTS

DisplayGPText: LDA.w $13D9 ; \ prevent the split-second glitch
BEQ ReturnGPText ; / that shows up 50% of the time
PHB : PHK : PLB ; Back up B, K -> B
JSR GetOAMSlot ; get slot for sprites
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
LDA.w #$0000 ; high byte MUST be zero or tile sizes will glitch
SEP #%00100000
%OAMTileGPc(0,$68,$3F,$00,%00110000,%00)
%OAMTileGPc(1,$70,$3F,$01,%00110000,%00)
%OAMTileGPc(2,$78,$3F,$02,%00110000,%00)
%OAMTileGPc(3,$80,$3F,$03,%00110000,%00)
%OAMTileGPc(4,$88,$3F,$04,%00110000,%00)
%OAMTileGP(5,$48,$4F,$00,%00110000,%10)
%OAMTileGP(6,$58,$4F,$02,%00110000,%10)
%OAMTileGP(7,$68,$4F,$04,%00110000,%10)
%OAMTileGP(8,$80,$4F,$06,%00110000,%10)
%OAMTileGP(9,$90,$4F,$08,%00110000,%10)
%OAMTileGP(10,$A0,$4F,$0A,%00110000,%10)
%OAMTileGP(11,$48,$67,$0F,%00110000,%00)
%OAMTileGP(12,$50,$5F,$10,%00110000,%10)
%OAMTileGP(13,$60,$5F,$12,%00110000,%10)
%OAMTileGP(14,$70,$5F,$14,%00110000,%10)
%OAMTileGP(15,$80,$5F,$16,%00110000,%10)
%OAMTileGP(16,$90,$5F,$18,%00110000,%10)
%OAMTileGP(17,$A0,$5F,$1A,%00110000,%10)
LDA.w $13D9
CMP #$01
BEQ +
CMP #$02
BCS ++
- JMP +++
+ LDA.w $1424
BPL -
++ LDA.w $1424
BEQ -
%OAMTileGP(18,$50,$7F,$0C,%00110000,%00)
%OAMTileGP(19,$58,$7F,$01,%00110000,%00)
%OAMTileGP(20,$60,$7F,$0D,%00110000,%00)
%OAMTileGP(21,$68,$7F,$02,%00110000,%00)
%OAMTileGP(22,$70,$7F,$04,%00110000,%00)
%OAMTileGP(23,$78,$7F,$0B,%00110000,%00)
%OAMTileGP(24,$88,$77,$1C,%00110000,%10)
%OAMTileGP(25,$98,$77,$1E,%00110000,%10)
+++ SEP #%00010000
PLB ; restore B
RTS

UpdateBonusCounter:
LDA.w $1900
AND.b #$0F
ASL
TAX
REP #%00100000
%bonusstarGP($05CD62,$03E0)
%bonusstarGP($05CD63,$05E0)
SEP #%00100000
LDA.w $1900
AND.b #$F0
LSR #3
BNE ++
REP #%00100000
%transGP($03C0)
%transGP($05C0)
SEP #%00100000
RTS
++ TAX
REP #%00100000
%bonusstarGP($05CD62,$03C0)
%bonusstarGP($05CD63,$05C0)
SEP #%00100000
RTS

GetOAMSlot: PHX ; a dirty way of doing it, but it works. I may clean it up a bit in the future
LDX #$00
LDA $15EA
PHA
LDA $14C8
PHA
LDA $9E
PHA
LDA $02
PHA
LDA #$01
STA $14C8
STZ $9E
LDA #$5C
STA $00
LDA $0180E2
STA $01
LDA $0180E3
STA $02
LDA $0180E4
STA $03
JSL $7E0000
LDY $15EA
PLA
STA $02
PLA
STA $14C8
PLA
STA $9E
PLA
STA $15EA
PLX
RTS

LevelTable:
L000: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L001: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L002: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L003: db $01,$00,%00001111 ; Enable; GFX Offset; Properties
L004: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L005: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L006: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L007: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L008: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L009: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L010: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L011: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L012: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L013: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L014: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L015: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L016: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L017: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L018: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L019: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L020: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L021: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L022: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L023: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L024: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L025: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L026: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L027: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L028: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L029: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L030: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L031: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L032: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L033: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L034: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L035: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L036: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L037: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L038: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L039: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L040: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L041: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L042: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L043: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L044: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L045: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L046: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L047: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L048: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L049: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L050: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L051: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L052: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L053: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L054: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L055: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L056: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L057: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L058: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L059: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L060: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L061: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L062: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L063: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L064: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L065: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L066: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L067: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L068: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L069: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L070: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L071: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L072: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L073: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L074: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L075: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L076: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L077: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L078: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L079: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L080: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L081: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L082: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L083: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L084: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L085: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L086: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L087: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L088: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L089: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L090: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L091: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L092: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L093: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L094: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L095: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L096: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L097: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L098: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L099: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0ED: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L100: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L101: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L102: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L103: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L104: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L105: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L106: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L107: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L108: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L109: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L110: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L111: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L112: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L113: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L114: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L115: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L116: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L117: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L118: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L119: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L120: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L121: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L122: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L123: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L124: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L125: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L126: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L127: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L128: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L129: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L130: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L131: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L132: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L133: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L134: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L135: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L136: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L137: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L138: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L139: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L140: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L141: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L142: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L143: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L144: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L145: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L146: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L147: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L148: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L149: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L150: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L151: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L152: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L153: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L154: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L155: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L156: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L157: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L158: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L159: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L160: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L161: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L162: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L163: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L164: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L165: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L166: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L167: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L168: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L169: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L170: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L171: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L172: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L173: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L174: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L175: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L176: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L177: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L178: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L179: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L180: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L181: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L182: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L183: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L184: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L185: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L186: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L187: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L188: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L189: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L190: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L191: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L192: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L193: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L194: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L195: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L196: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L197: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L198: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L199: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1ED: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties


Graphics:
INCBIN ssb.bin

CodeEnd:
print bytes


; from garble.asm that comes with dsx.asm
org $00A08A
JML GarbleMain

org $04F270 ; Nine bytes of freespace in bank 04
GarbleMain: JSR $DD40 ; re-decompress the OW tiles
LDA $1B9C
BEQ DoTheBranch
JML $00A08F
DoTheBranch: JML $00A093
geschrieben am 06.02.2011 23:59:40 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )


Wer diese Welt in Super Mario Bros. 3 gehasst hatte, darf sich freuen, denn sie wird zurückkehren:

DIE PIPEWORLD!
geschrieben am 07.02.2011 9:44:14 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )
Ah, das Bild ist vermutlich zu groß? Ich werd bei den nächsten Screens dran denken.

Ich weiß noch nicht, ob ich Levels remake, primär konzentriere ich mich auf eigene Levels. Das Problem an SMB3 ist, dass Remakes durch die SMW Physik (genauere Steuerung) deutlich einfache und aufgrund der Kürze zu schnell durchspielbar wären. Da ich allerdings nicht der geilste Leveldesigner bin, werden bestimmt einige Parallelen erkennbar sein.
geschrieben am 08.02.2011 12:19:21 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )
Danke für die positive Kritik.



Die zur Pipeworld dazugehörige Overworld. Das Ganze ist natürlich noch in Bearbeitung, Wassertiles fehlen noch, usw.
geschrieben am 12.02.2011 20:36:52 in Romi's Sprites: Airship Nut
( Link )
Hallo alle zusammen.

Ich habe zwar gesehen, dass es schonmal einen Thread bzgl. Romi's Sprite gab, allerdings wollte ich diesen nicht bumpen. Chris und ich haben ein Problem mit diesem Sprite. Wir haben beide Schritt für Schritt das getan, was in der Readme stand, DrawInfo.asm und Suboffscreen.asm gepatcht und in der anderen Datei (diese Definition.asm oder so) die entsprechenden Freespacestellen angegeben und jene Datei in unseren Sprites Ordner gepackt. Wenn wir nun die Airship Nut (diese Schraube, die sich bewegt, wenn Mario drauf springt) in unser Level einfügen, ist jene vorhaden, aber sie fällt sofort nach unten. Die Map16 Tiles verhalten sich genauso, wie in der entsprechenden Readme angeben wurde. Nichts zu machen, das Ding fällt grundsätzlich durch alles hindurch. Hat jemand diese Sprite erfolgreich zum Laufen gekriegt? Es kann ja nicht sein, dass Chris und ich zu doof dazu sind.
geschrieben am 13.02.2011 22:21:29 in Screenshots/Videos Thread - Zeige dein Zeug h(i)er!
( Link )


Noch etwas, was viele Spieler hassen werden. Ich liebe die Dinger!
geschrieben am 14.02.2011 21:52:41 in Romi's Sprites: Airship Nut
( Link )
Das Problem hat sich gelöst, es lag an Levelmode 1F (darauf soll man erstmal kommen...).
geschrieben am 15.02.2011 9:18:11 in Allgemeine Diskussionen
( Link )
Mal wieder ein super Beispiel, mit was für Scheiße man Geld verdienen kann..