summaryrefslogtreecommitdiff
path: root/_inc
diff options
context:
space:
mode:
authorClownacy <Clownacy@users.noreply.github.com>2023-08-22 21:04:01 +0100
committerClownacy <Clownacy@users.noreply.github.com>2023-08-22 21:04:01 +0100
commit1dce5ac56a2c517ebcfc2b9f07b4d12da24accb2 (patch)
treee0d1082a0162551eb5eec7fce71ec6c8a0883c3a /_inc
parent89e4ebd15484a731ce13e7742a5177ae80215f7b (diff)
Add VRAM constants.
This disassembly is almost 20 years old and only now does it have VRAM constants. Bloody hell.
Diffstat (limited to '_inc')
-rw-r--r--_inc/AnimateLevelGfx.asm26
-rw-r--r--_inc/HUD (part 2).asm2
-rw-r--r--_inc/HUD_Update.asm22
-rw-r--r--_inc/Pattern Load Cues.asm402
-rw-r--r--_inc/Special Stage Mappings & VRAM Pointers.asm239
5 files changed, 309 insertions, 382 deletions
diff --git a/_inc/AnimateLevelGfx.asm b/_inc/AnimateLevelGfx.asm
index bded856..e3d9db4 100644
--- a/_inc/AnimateLevelGfx.asm
+++ b/_inc/AnimateLevelGfx.asm
@@ -48,7 +48,7 @@ AniArt_GHZ_Waterfall:
lea .size*$20(a1),a1 ; use graphics for frame 1
.isframe0:
- locVRAM $6F00 ; VRAM address
+ locVRAM ArtTile_GHZ_Waterfall*$20 ; VRAM address
move.w #.size-1,d1 ; number of 8x8 tiles
bra.w LoadTiles
; ===========================================================================
@@ -69,7 +69,7 @@ AniArt_GHZ_Bigflower:
lea .size*$20(a1),a1
.isframe0:
- locVRAM $6B80
+ locVRAM ArtTile_GHZ_Big_Flower_1*$20
move.w #.size-1,d1
bra.w LoadTiles
; ===========================================================================
@@ -95,7 +95,7 @@ AniArt_GHZ_Smallflower:
move.w d0,d1
add.w d0,d0
add.w d1,d0 ; multiply that by 3 (i.e. frame num times 12 * $20)
- locVRAM $6D80
+ locVRAM ArtTile_GHZ_Small_Flower*$20
lea (Art_GhzFlower2).l,a1 ; load small flower patterns
lea (a1,d0.w),a1 ; jump to appropriate tile
move.w #.size-1,d1
@@ -132,7 +132,7 @@ AniArt_MZ_Lava:
move.b d0,(v_lani0_frame).w
mulu.w #.size*$20,d0
adda.w d0,a1 ; jump to appropriate tile
- locVRAM $5C40
+ locVRAM ArtTile_MZ_Animated_Lava*$20
move.w #.size-1,d1
bsr.w LoadTiles
@@ -146,7 +146,7 @@ AniArt_MZ_Magma:
lea (Art_MzLava2).l,a4 ; load magma gfx
ror.w #7,d0 ; multiply frame num by $200
adda.w d0,a4 ; jump to appropriate tile
- locVRAM $5A40
+ locVRAM ArtTile_MZ_Animated_Magma*$20
moveq #0,d3
move.b (v_lani1_frame).w,d3
addq.b #1,(v_lani1_frame).w ; increment frame counter (unused)
@@ -183,7 +183,7 @@ AniArt_MZ_Torch:
andi.b #3,(v_lani3_frame).w ; there are 3 frames
mulu.w #.size*$20,d0
adda.w d0,a1 ; jump to appropriate tile
- locVRAM $5E40
+ locVRAM ArtTile_MZ_Torch*$20
move.w #.size-1,d1
bra.w LoadTiles
@@ -211,7 +211,7 @@ AniArt_SBZ:
move.b #7,(v_lani0_time).w ; time to display each frame
lea (Art_SbzSmoke).l,a1 ; load smoke patterns
- locVRAM $8900
+ locVRAM ArtTile_SBZ_Smoke_Puff_1*$20
move.b (v_lani0_frame).w,d0
addq.b #1,(v_lani0_frame).w ; increment frame counter
andi.w #7,d0
@@ -248,7 +248,7 @@ AniArt_SBZ:
move.b #7,(v_lani1_time).w ; time to display each frame
lea (Art_SbzSmoke).l,a1 ; load smoke patterns
- locVRAM $8A80
+ locVRAM ArtTile_SBZ_Smoke_Puff_2*$20
move.b (v_lani1_frame).w,d0
addq.b #1,(v_lani1_frame).w ; increment frame counter
andi.w #7,d0
@@ -292,11 +292,11 @@ AniArt_Ending_BigFlower:
lea .size*$20(a2),a2
.isframe0:
- locVRAM $6B80
+ locVRAM ArtTile_GHZ_Big_Flower_1*$20
move.w #.size-1,d1
bsr.w LoadTiles
movea.l a2,a1
- locVRAM $7200
+ locVRAM ArtTile_GHZ_Big_Flower_2*$20
move.w #.size-1,d1
bra.w LoadTiles
; ===========================================================================
@@ -317,7 +317,7 @@ AniArt_Ending_SmallFlower:
move.w d0,d1
add.w d0,d0
add.w d1,d0 ; multiply by 3
- locVRAM $6D80
+ locVRAM ArtTile_GHZ_Small_Flower*$20
lea (Art_GhzFlower2).l,a1 ; load small flower patterns
lea (a1,d0.w),a1 ; jump to appropriate tile
move.w #.size-1,d1
@@ -340,7 +340,7 @@ AniArt_Ending_Flower3:
move.b AniArt_Ending_Flower3_sequence(pc,d0.w),d0 ; get actual frame num from sequence data
lsl.w #8,d0 ; multiply by $100
add.w d0,d0 ; multiply by 2
- locVRAM $7000
+ locVRAM ArtTile_GHZ_Flower_3*$20
lea ($FFFF9800).w,a1 ; load special flower patterns (from RAM)
lea (a1,d0.w),a1 ; jump to appropriate tile
move.w #.size-1,d1
@@ -363,7 +363,7 @@ AniArt_Ending_Flower4:
move.b AniArt_Ending_Flower3_sequence(pc,d0.w),d0 ; get actual frame num from sequence data
lsl.w #8,d0 ; multiply by $100
add.w d0,d0 ; multiply by 2
- locVRAM $6800
+ locVRAM ArtTile_GHZ_Flower_4*$20
lea ($FFFF9E00).w,a1 ; load special flower patterns (from RAM)
lea (a1,d0.w),a1 ; jump to appropriate tile
move.w #.size-1,d1
diff --git a/_inc/HUD (part 2).asm b/_inc/HUD (part 2).asm
index 5e13527..9323cf0 100644
--- a/_inc/HUD (part 2).asm
+++ b/_inc/HUD (part 2).asm
@@ -152,7 +152,7 @@ Hud_ClrBonusLoop:
Hud_Lives:
- locVRAM $FBA0,d0 ; set VRAM address
+ locVRAM (ArtTile_Lives_Counter+9)*$20,d0 ; set VRAM address
moveq #0,d1
move.b (v_lives).w,d1 ; load number of lives
lea (Hud_10).l,a2
diff --git a/_inc/HUD_Update.asm b/_inc/HUD_Update.asm
index 2355dd3..2563f6e 100644
--- a/_inc/HUD_Update.asm
+++ b/_inc/HUD_Update.asm
@@ -11,7 +11,7 @@ HUD_Update:
beq.s .chkrings ; if not, branch
clr.b (f_scorecount).w
- locVRAM $DC80,d0 ; set VRAM address
+ locVRAM (ArtTile_HUD+$1A)*$20,d0 ; set VRAM address
move.l (v_score).w,d1 ; load score
bsr.w Hud_Score
@@ -23,7 +23,7 @@ HUD_Update:
.notzero:
clr.b (f_ringcount).w
- locVRAM $DF40,d0 ; set VRAM address
+ locVRAM (ArtTile_HUD+$30)*$20,d0 ; set VRAM address
moveq #0,d1
move.w (v_rings).w,d1 ; load number of rings
bsr.w Hud_Rings
@@ -51,11 +51,11 @@ HUD_Update:
move.b #9,(a1) ; keep as 9
.updatetime:
- locVRAM $DE40,d0
+ locVRAM (ArtTile_HUD+$28)*$20,d0
moveq #0,d1
move.b (v_timemin).w,d1 ; load minutes
bsr.w Hud_Mins
- locVRAM $DEC0,d0
+ locVRAM (ArtTile_HUD+$2C)*$20,d0
moveq #0,d1
move.b (v_timesec).w,d1 ; load seconds
bsr.w Hud_Secs
@@ -70,7 +70,7 @@ HUD_Update:
tst.b (f_endactbonus).w ; do time/ring bonus counters need updating?
beq.s .finish ; if not, branch
clr.b (f_endactbonus).w
- locVRAM $AE00
+ locVRAM ArtTile_Bonuses*$20
moveq #0,d1
move.w (v_timebonus).w,d1 ; load time bonus
bsr.w Hud_TimeRingBonus
@@ -100,13 +100,13 @@ HudDebug:
.notzero:
clr.b (f_ringcount).w
- locVRAM $DF40,d0 ; set VRAM address
+ locVRAM (ArtTile_HUD+$30)*$20,d0 ; set VRAM address
moveq #0,d1
move.w (v_rings).w,d1 ; load number of rings
bsr.w Hud_Rings
.objcounter:
- locVRAM $DEC0,d0 ; set VRAM address
+ locVRAM (ArtTile_HUD+$2C)*$20,d0 ; set VRAM address
moveq #0,d1
move.b (v_spritecount).w,d1 ; load "number of objects" counter
bsr.w Hud_Secs
@@ -119,7 +119,7 @@ HudDebug:
tst.b (f_endactbonus).w ; does the ring/time bonus counter need updating?
beq.s .finish ; if not, branch
clr.b (f_endactbonus).w
- locVRAM $AE00 ; set VRAM address
+ locVRAM ArtTile_Bonuses*$20 ; set VRAM address
moveq #0,d1
move.w (v_timebonus).w,d1 ; load time bonus
bsr.w Hud_TimeRingBonus
@@ -139,7 +139,7 @@ HudDebug:
Hud_LoadZero:
- locVRAM $DF40
+ locVRAM (ArtTile_HUD+$30)*$20
lea Hud_TilesZero(pc),a2
move.w #2,d2
bra.s loc_1C83E
@@ -155,7 +155,7 @@ Hud_LoadZero:
Hud_Base:
lea ($C00000).l,a6
bsr.w Hud_Lives
- locVRAM $DC40
+ locVRAM (ArtTile_HUD+$18)*$20
lea Hud_TilesBase(pc),a2
move.w #$E,d2
@@ -198,7 +198,7 @@ Hud_TilesZero: dc.b $FF, $FF, 0, 0
HudDb_XY:
- locVRAM $DC40 ; set VRAM address
+ locVRAM (ArtTile_HUD+$18)*$20 ; set VRAM address
move.w (v_screenposx).w,d1 ; load camera x-position
swap d1
move.w (v_player+obX).w,d1 ; load Sonic's x-position
diff --git a/_inc/Pattern Load Cues.asm b/_inc/Pattern Load Cues.asm
index 1b4aef2..eecff7e 100644
--- a/_inc/Pattern Load Cues.asm
+++ b/_inc/Pattern Load Cues.asm
@@ -42,351 +42,351 @@ ptr_PLC_FZBoss: dc.w PLC_FZBoss-ArtLoadCues
plcm: macro gfx,vram
dc.l gfx
- dc.w vram
+ dc.w (vram)*$20
endm
; ---------------------------------------------------------------------------
; Pattern load cues - standard block 1
; ---------------------------------------------------------------------------
PLC_Main: dc.w ((PLC_Mainend-PLC_Main-2)/6)-1
- plcm Nem_Lamp, $F400 ; lamppost
- plcm Nem_Hud, $D940 ; HUD
- plcm Nem_Lives, $FA80 ; lives counter
- plcm Nem_Ring, $F640 ; rings
- plcm Nem_Points, $F2E0 ; points from enemy
+ plcm Nem_Lamp, ArtTile_Lamppost ; lamppost
+ plcm Nem_Hud, ArtTile_HUD ; HUD
+ plcm Nem_Lives, ArtTile_Lives_Counter ; lives counter
+ plcm Nem_Ring, ArtTile_Ring ; rings
+ plcm Nem_Points, ArtTile_Points ; points from enemy
PLC_Mainend:
; ---------------------------------------------------------------------------
; Pattern load cues - standard block 2
; ---------------------------------------------------------------------------
PLC_Main2: dc.w ((PLC_Main2end-PLC_Main2-2)/6)-1
- plcm Nem_Monitors, $D000 ; monitors
- plcm Nem_Shield, $A820 ; shield
- plcm Nem_Stars, $AB80 ; invincibility stars
+ plcm Nem_Monitors, ArtTile_Monitor ; monitors
+ plcm Nem_Shield, ArtTile_Shield ; shield
+ plcm Nem_Stars, ArtTile_Invincibility ; invincibility stars
PLC_Main2end:
; ---------------------------------------------------------------------------
; Pattern load cues - explosion
; ---------------------------------------------------------------------------
PLC_Explode: dc.w ((PLC_Explodeend-PLC_Explode-2)/6)-1
- plcm Nem_Explode, $B400 ; explosion
+ plcm Nem_Explode, ArtTile_Explosion ; explosion
PLC_Explodeend:
; ---------------------------------------------------------------------------
; Pattern load cues - game/time over
; ---------------------------------------------------------------------------
PLC_GameOver: dc.w ((PLC_GameOverend-PLC_GameOver-2)/6)-1
- plcm Nem_GameOver, $ABC0 ; game/time over
+ plcm Nem_GameOver, ArtTile_Game_Over ; game/time over
PLC_GameOverend:
; ---------------------------------------------------------------------------
; Pattern load cues - Green Hill
; ---------------------------------------------------------------------------
PLC_GHZ: dc.w ((PLC_GHZ2-PLC_GHZ-2)/6)-1
- plcm Nem_GHZ_1st, 0 ; GHZ main patterns
- plcm Nem_GHZ_2nd, $39A0 ; GHZ secondary patterns
- plcm Nem_Stalk, $6B00 ; flower stalk
- plcm Nem_PplRock, $7A00 ; purple rock
- plcm Nem_Crabmeat, $8000 ; crabmeat enemy
- plcm Nem_Buzz, $8880 ; buzz bomber enemy
- plcm Nem_Chopper, $8F60 ; chopper enemy
- plcm Nem_Newtron, $9360 ; newtron enemy
- plcm Nem_Motobug, $9E00 ; motobug enemy
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
+ plcm Nem_GHZ_1st, ArtTile_Level ; GHZ main patterns
+ plcm Nem_GHZ_2nd, ArtTile_Level+$1CD ; GHZ secondary patterns
+ plcm Nem_Stalk, ArtTile_GHZ_Flower_Stalk ; flower stalk
+ plcm Nem_PplRock, ArtTile_Purple_Rock ; purple rock
+ plcm Nem_Crabmeat, ArtTile_Crabmeat ; crabmeat enemy
+ plcm Nem_Buzz, ArtTile_Buzz_Bomber ; buzz bomber enemy
+ plcm Nem_Chopper, ArtTile_Chopper ; chopper enemy
+ plcm Nem_Newtron, ArtTile_Newtron ; newtron enemy
+ plcm Nem_Motobug, ArtTile_Moto_Bug ; motobug enemy
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
PLC_GHZ2: dc.w ((PLC_GHZ2end-PLC_GHZ2-2)/6)-1
- plcm Nem_Swing, $7000 ; swinging platform
- plcm Nem_Bridge, $71C0 ; bridge
- plcm Nem_SpikePole, $7300 ; spiked pole
- plcm Nem_Ball, $7540 ; giant ball
- plcm Nem_GhzWall1, $A1E0 ; breakable wall
- plcm Nem_GhzWall2, $6980 ; normal wall
+ plcm Nem_Swing, ArtTile_Swing_GHZ_MZ ; swinging platform
+ plcm Nem_Bridge, ArtTile_Bridge ; bridge
+ plcm Nem_SpikePole, ArtTile_GHZ_Spike_Pole ; spiked pole
+ plcm Nem_Ball, ArtTile_Wrecking_Ball ; giant ball
+ plcm Nem_GhzWall1, ArtTile_Smashable_Wall ; breakable wall
+ plcm Nem_GhzWall2, ArtTile_GHZ_Edge_Wall ; normal wall
PLC_GHZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - Labyrinth
; ---------------------------------------------------------------------------
PLC_LZ: dc.w ((PLC_LZ2-PLC_LZ-2)/6)-1
- plcm Nem_LZ,0 ; LZ main patterns
- plcm Nem_LzBlock1, $3C00 ; block
- plcm Nem_LzBlock2, $3E00 ; blocks
- plcm Nem_Splash, $4B20 ; waterfalls and splash
- plcm Nem_Water, $6000 ; water surface
- plcm Nem_LzSpikeBall, $6200 ; spiked ball
- plcm Nem_FlapDoor, $6500 ; flapping door
- plcm Nem_Bubbles, $6900 ; bubbles and numbers
- plcm Nem_LzBlock3, $7780 ; block
- plcm Nem_LzDoor1, $7880 ; vertical door
- plcm Nem_Harpoon, $7980 ; harpoon
- plcm Nem_Burrobot, $94C0 ; burrobot enemy
+ plcm Nem_LZ, ArtTile_Level ; LZ main patterns
+ plcm Nem_LzBlock1, $1E0 ; block
+ plcm Nem_LzBlock2, $1F0 ; blocks
+ plcm Nem_Splash, ArtTile_Splash ; waterfalls and splash
+ plcm Nem_Water, ArtTile_Water_Surface ; water surface
+ plcm Nem_LzSpikeBall, ArtTile_Spikeball_Chain_LZ ; spiked ball
+ plcm Nem_FlapDoor, ArtTile_Flapping_Door ; flapping door
+ plcm Nem_Bubbles, ArtTile_Bubbles ; bubbles and numbers
+ plcm Nem_LzBlock3, ArtTile_Moving_Block_LZ ; block
+ plcm Nem_LzDoor1, ArtTile_LZ_Door ; vertical door
+ plcm Nem_Harpoon, ArtTile_Harpoon ; harpoon
+ plcm Nem_Burrobot, ArtTile_Burrobot ; burrobot enemy
PLC_LZ2: dc.w ((PLC_LZ2end-PLC_LZ2-2)/6)-1
- plcm Nem_LzPole, $7BC0 ; pole that breaks
- plcm Nem_LzDoor2, $7CC0 ; large horizontal door
- plcm Nem_LzWheel, $7EC0 ; wheel
- plcm Nem_Gargoyle, $5D20 ; gargoyle head
- if Revision=0
- plcm Nem_LzSonic, $8800 ; Sonic holding his breath
- endif
- plcm Nem_LzPlatfm, $89E0 ; rising platform
- plcm Nem_Orbinaut, $8CE0 ; orbinaut enemy
- plcm Nem_Jaws, $90C0 ; jaws enemy
- plcm Nem_LzSwitch, $A1E0 ; switch
- plcm Nem_Cork, $A000 ; cork block
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
+ plcm Nem_LzPole, ArtTile_Pole ; pole that breaks
+ plcm Nem_LzDoor2, ArtTile_LZ_Blocks ; large horizontal door
+ plcm Nem_LzWheel, ArtTile_Conveyor_Belt ; wheel
+ plcm Nem_Gargoyle, ArtTile_Gargoyle ; gargoyle head
+ if Revision=0
+ plcm Nem_LzSonic, $440 ; Sonic holding his breath
+ endif
+ plcm Nem_LzPlatfm, $44F ; rising platform
+ plcm Nem_Orbinaut, ArtTile_Orbinaut_LZ ; orbinaut enemy
+ plcm Nem_Jaws, ArtTile_Jaws ; jaws enemy
+ plcm Nem_LzSwitch, ArtTile_Button ; switch
+ plcm Nem_Cork, ArtTile_LZ_Cork ; cork block
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
PLC_LZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - Marble
; ---------------------------------------------------------------------------
PLC_MZ: dc.w ((PLC_MZ2-PLC_MZ-2)/6)-1
- plcm Nem_MZ,0 ; MZ main patterns
- plcm Nem_MzMetal, $6000 ; metal blocks
- plcm Nem_MzFire, $68A0 ; fireballs
- plcm Nem_Swing, $7000 ; swinging platform
- plcm Nem_MzGlass, $71C0 ; green glassy block
- plcm Nem_Lava, $7500 ; lava
- plcm Nem_Buzz, $8880 ; buzz bomber enemy
- plcm Nem_Yadrin, $8F60 ; yadrin enemy
- plcm Nem_Basaran, $9700 ; basaran enemy
- plcm Nem_Cater, $9FE0 ; caterkiller enemy
+ plcm Nem_MZ, ArtTile_Level ; MZ main patterns
+ plcm Nem_MzMetal, ArtTile_Chain_Stomp ; metal blocks
+ plcm Nem_MzFire, ArtTile_Fireball_MZ ; fireballs
+ plcm Nem_Swing, ArtTile_Swing_GHZ_MZ ; swinging platform
+ plcm Nem_MzGlass, ArtTile_Glass_Block ; green glassy block
+ plcm Nem_Lava, ArtTile_MZ_Lava ; lava
+ plcm Nem_Buzz, ArtTile_Buzz_Bomber ; buzz bomber enemy
+ plcm Nem_Yadrin, ArtTile_Yadrin ; yadrin enemy
+ plcm Nem_Basaran, ArtTile_Basaran ; basaran enemy
+ plcm Nem_Cater, ArtTile_Caterkiller_MZ_SYZ ; caterkiller enemy
PLC_MZ2: dc.w ((PLC_MZ2end-PLC_MZ2-2)/6)-1
- plcm Nem_MzSwitch, $A260 ; switch
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
- plcm Nem_MzBlock, $5700 ; green stone block
+ plcm Nem_MzSwitch, ArtTile_Button+4 ; switch
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
+ plcm Nem_MzBlock, ArtTile_MZ_Block ; green stone block
PLC_MZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - Star Light
; ---------------------------------------------------------------------------
PLC_SLZ: dc.w ((PLC_SLZ2-PLC_SLZ-2)/6)-1
- plcm Nem_SLZ,0 ; SLZ main patterns
- plcm Nem_Bomb, $8000 ; bomb enemy
- plcm Nem_Orbinaut, $8520 ; orbinaut enemy
- plcm Nem_MzFire, $9000 ; fireballs
- plcm Nem_SlzBlock, $9C00 ; block
- plcm Nem_SlzWall, $A260 ; breakable wall
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
+ plcm Nem_SLZ, ArtTile_Level ; SLZ main patterns
+ plcm Nem_Bomb, ArtTile_Bomb ; bomb enemy
+ plcm Nem_Orbinaut, ArtTile_Orbinaut_SLZ_SBZ ; orbinaut enemy
+ plcm Nem_MzFire, ArtTile_Fireball_SLZ ; fireballs
+ plcm Nem_SlzBlock, ArtTile_Collapsing_Floor_SLZ ; block
+ plcm Nem_SlzWall, ArtTile_Smashable_Wall+4 ; breakable wall
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
PLC_SLZ2: dc.w ((PLC_SLZ2end-PLC_SLZ2-2)/6)-1
- plcm Nem_Seesaw, $6E80 ; seesaw
- plcm Nem_Fan, $7400 ; fan
- plcm Nem_Pylon, $7980 ; foreground pylon
- plcm Nem_SlzSwing, $7B80 ; swinging platform
- plcm Nem_SlzCannon, $9B00 ; fireball launcher
- plcm Nem_SlzSpike, $9E00 ; spikeball
+ plcm Nem_Seesaw, ArtTile_Seesaw ; seesaw
+ plcm Nem_Fan, ArtTile_Fan ; fan
+ plcm Nem_Pylon, ArtTile_Pylon ; foreground pylon
+ plcm Nem_SlzSwing, ArtTile_Swing_SLZ ; swinging platform
+ plcm Nem_SlzCannon, ArtTile_Fireball_Launcher ; fireball launcher
+ plcm Nem_SlzSpike, ArtTile_Spikeball ; spikeball
PLC_SLZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - Spring Yard
; ---------------------------------------------------------------------------
PLC_SYZ: dc.w ((PLC_SYZ2-PLC_SYZ-2)/6)-1
- plcm Nem_SYZ,0 ; SYZ main patterns
- plcm Nem_Crabmeat, $8000 ; crabmeat enemy
- plcm Nem_Buzz, $8880 ; buzz bomber enemy
- plcm Nem_Yadrin, $8F60 ; yadrin enemy
- plcm Nem_Roller, $9700 ; roller enemy
+ plcm Nem_SYZ, ArtTile_Level ; SYZ main patterns
+ plcm Nem_Crabmeat, ArtTile_Crabmeat ; crabmeat enemy
+ plcm Nem_Buzz, ArtTile_Buzz_Bomber ; buzz bomber enemy
+ plcm Nem_Yadrin, ArtTile_Yadrin ; yadrin enemy
+ plcm Nem_Roller, ArtTile_Roller ; roller enemy
PLC_SYZ2: dc.w ((PLC_SYZ2end-PLC_SYZ2-2)/6)-1
- plcm Nem_Bumper, $7000 ; bumper
- plcm Nem_SyzSpike1, $72C0 ; large spikeball
- plcm Nem_SyzSpike2, $7740 ; small spikeball
- plcm Nem_Cater, $9FE0 ; caterkiller enemy
- plcm Nem_LzSwitch, $A1E0 ; switch
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
+ plcm Nem_Bumper, ArtTile_Bumper ; bumper
+ plcm Nem_SyzSpike1, ArtTile_Big_Spikeball ; large spikeball
+ plcm Nem_SyzSpike2, ArtTile_Spikeball_Chain_SLZ ; small spikeball
+ plcm Nem_Cater, ArtTile_Caterkiller_MZ_SYZ ; caterkiller enemy
+ plcm Nem_LzSwitch, ArtTile_Button ; switch
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
PLC_SYZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - Scrap Brain
; ---------------------------------------------------------------------------
PLC_SBZ: dc.w ((PLC_SBZ2-PLC_SBZ-2)/6)-1
- plcm Nem_SBZ,0 ; SBZ main patterns
- plcm Nem_Stomper, $5800 ; moving platform and stomper
- plcm Nem_SbzDoor1, $5D00 ; door
- plcm Nem_Girder, $5E00 ; girder
- plcm Nem_BallHog, $6040 ; ball hog enemy
- plcm Nem_SbzWheel1, $6880 ; spot on large wheel
- plcm Nem_SbzWheel2, $6900 ; wheel that grabs Sonic
- plcm Nem_SyzSpike1, $7220 ; large spikeball
- plcm Nem_Cutter, $76A0 ; pizza cutter
- plcm Nem_FlamePipe, $7B20 ; flaming pipe
- plcm Nem_SbzFloor, $7EA0 ; collapsing floor
- plcm Nem_SbzBlock, $9860 ; vanishing block
+ plcm Nem_SBZ, ArtTile_Level ; SBZ main patterns
+ plcm Nem_Stomper, ArtTile_Moving_Block_SBZ_Short ; moving platform and stomper
+ plcm Nem_SbzDoor1, ArtTile_SBZ_Door ; door
+ plcm Nem_Girder, ArtTile_Girder ; girder
+ plcm Nem_BallHog, ArtTile_Ball_Hog ; ball hog enemy
+ plcm Nem_SbzWheel1, ArtTile_SBZ_Disc ; spot on large wheel
+ plcm Nem_SbzWheel2, ArtTile_SBZ_Junction ; wheel that grabs Sonic
+ plcm Nem_SyzSpike1, ArtTile_Swing_SBZ ; large spikeball
+ plcm Nem_Cutter, ArtTile_Saw ; pizza cutter
+ plcm Nem_FlamePipe, ArtTile_Flamethrower ; flaming pipe
+ plcm Nem_SbzFloor, ArtTile_Collapsing_Floor_SBZ ; collapsing floor
+ plcm Nem_SbzBlock, ArtTile_SBZ_Vanishing_Block ; vanishing block
PLC_SBZ2: dc.w ((PLC_SBZ2end-PLC_SBZ2-2)/6)-1
- plcm Nem_Cater, $5600 ; caterkiller enemy
- plcm Nem_Bomb, $8000 ; bomb enemy
- plcm Nem_Orbinaut, $8520 ; orbinaut enemy
- plcm Nem_SlideFloor, $8C00 ; floor that slides away
- plcm Nem_SbzDoor2, $8DE0 ; horizontal door
- plcm Nem_Electric, $8FC0 ; electric orb
- plcm Nem_TrapDoor, $9240 ; trapdoor
- plcm Nem_SbzFloor, $7F20 ; collapsing floor
- plcm Nem_SpinPform, $9BE0 ; small spinning platform
- plcm Nem_LzSwitch, $A1E0 ; switch
- plcm Nem_Spikes, $A360 ; spikes
- plcm Nem_HSpring, $A460 ; horizontal spring
- plcm Nem_VSpring, $A660 ; vertical spring
+ plcm Nem_Cater, ArtTile_Caterkiller_SBZ ; caterkiller enemy
+ plcm Nem_Bomb, ArtTile_Bomb ; bomb enemy
+ plcm Nem_Orbinaut, ArtTile_Orbinaut_SLZ_SBZ ; orbinaut enemy
+ plcm Nem_SlideFloor, ArtTile_Moving_Block_SBZ_Long ; floor that slides away
+ plcm Nem_SbzDoor2, ArtTile_SBZ_Horizontal_Door ; horizontal door
+ plcm Nem_Electric, ArtTile_Electric_Orb ; electric orb
+ plcm Nem_TrapDoor, ArtTile_SBZ_Trap_Door ; trapdoor
+ plcm Nem_SbzFloor, ArtTile_Collapsing_Floor_SBZ+4 ; collapsing floor
+ plcm Nem_SpinPform, ArtTile_SBZ_Spinning_Platform ; small spinning platform
+ plcm Nem_LzSwitch, ArtTile_Button ; switch
+ plcm Nem_Spikes, ArtTile_Spikes ; spikes
+ plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring
+ plcm Nem_VSpring, ArtTile_Spring_Vertical ; vertical spring
PLC_SBZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - title card
; ---------------------------------------------------------------------------
PLC_TitleCard: dc.w ((PLC_TitleCardend-PLC_TitleCard-2)/6)-1
- plcm Nem_TitleCard, $B000
+ plcm Nem_TitleCard, ArtTile_Title_Card
PLC_TitleCardend:
; ---------------------------------------------------------------------------
; Pattern load cues - act 3 boss
; ---------------------------------------------------------------------------
PLC_Boss: dc.w ((PLC_Bossend-PLC_Boss-2)/6)-1
- plcm Nem_Eggman, $8000 ; Eggman main patterns
- plcm Nem_Weapons, $8D80 ; Eggman's weapons
- plcm Nem_Prison, $93A0 ; prison capsule
- plcm Nem_Bomb, $A300 ; bomb enemy ((gets overwritten)
- plcm Nem_SlzSpike, $A300 ; spikeball ((SLZ boss)
- plcm Nem_Exhaust, $A540 ; exhaust flame
+ plcm Nem_Eggman, ArtTile_Eggman ; Eggman main patterns
+ plcm Nem_Weapons, ArtTile_Eggman_Weapons ; Eggman's weapons
+ plcm Nem_Prison, ArtTile_Prison_Capsule ; prison capsule
+ plcm Nem_Bomb, ArtTile_Eggman_Spikeball ; bomb enemy (gets overwritten)
+ plcm Nem_SlzSpike, ArtTile_Eggman_Spikeball ; spikeball (SLZ boss)
+ plcm Nem_Exhaust, ArtTile_Eggman_Exhaust ; exhaust flame
PLC_Bossend:
; ---------------------------------------------------------------------------
; Pattern load cues - act 1/2 signpost
; ---------------------------------------------------------------------------
PLC_Signpost: dc.w ((PLC_Signpostend-PLC_Signpost-2)/6)-1
- plcm Nem_SignPost, $D000 ; signpost
- plcm Nem_Bonus, $96C0 ; hidden bonus points
- plcm Nem_BigFlash, $8C40 ; giant ring flash effect
+ plcm Nem_SignPost, ArtTile_Signpost ; signpost
+ plcm Nem_Bonus, ArtTile_Hidden_Points ; hidden bonus points
+ plcm Nem_BigFlash, ArtTile_Giant_Ring_Flash ; giant ring flash effect
PLC_Signpostend:
; ---------------------------------------------------------------------------
; Pattern load cues - beta special stage warp effect
; ---------------------------------------------------------------------------
PLC_Warp:
- if Revision=0
+ if Revision=0
dc.w ((PLC_Warpend-PLC_Warp-2)/6)-1
- plcm Nem_Warp, $A820
- endif
+ plcm Nem_Warp, ArtTile_Warp
+ endif
PLC_Warpend:
; ---------------------------------------------------------------------------
; Pattern load cues - special stage
; ---------------------------------------------------------------------------
PLC_SpecialStage: dc.w ((PLC_SpeStageend-PLC_SpecialStage-2)/6)-1
- plcm Nem_SSBgCloud, 0 ; bubble and cloud background
- plcm Nem_SSBgFish, $A20 ; bird and fish background
- plcm Nem_SSWalls, $2840 ; walls
- plcm Nem_Bumper, $4760 ; bumper
- plcm Nem_SSGOAL, $4A20 ; GOAL block
- plcm Nem_SSUpDown, $4C60 ; UP and DOWN blocks
- plcm Nem_SSRBlock, $5E00 ; R block
- plcm Nem_SS1UpBlock, $6E00 ; 1UP block
- plcm Nem_SSEmStars, $7E00 ; emerald collection stars
- plcm Nem_SSRedWhite, $8E00 ; red and white block
- plcm Nem_SSGhost, $9E00 ; ghost block
- plcm Nem_SSWBlock, $AE00 ; W block
- plcm Nem_SSGlass, $BE00 ; glass block
- plcm Nem_SSEmerald, $EE00 ; emeralds
- plcm Nem_SSZone1, $F2E0 ; ZONE 1 block
- plcm Nem_SSZone2, $F400 ; ZONE 2 block
- plcm Nem_SSZone3, $F520 ; ZONE 3 block
+ plcm Nem_SSBgCloud, ArtTile_SS_Background_Clouds ; bubble and cloud background
+ plcm Nem_SSBgFish, ArtTile_SS_Background_Fish ; bird and fish background
+ plcm Nem_SSWalls, ArtTile_SS_Wall ; walls
+ plcm Nem_Bumper, ArtTile_SS_Bumper ; bumper
+ plcm Nem_SSGOAL, ArtTile_SS_Goal ; GOAL block
+ plcm Nem_SSUpDown, ArtTile_SS_Up_Down ; UP and DOWN blocks
+ plcm Nem_SSRBlock, ArtTile_SS_R_Block ; R block
+ plcm Nem_SS1UpBlock, ArtTile_SS_Extra_Life ; 1UP block
+ plcm Nem_SSEmStars, ArtTile_SS_Emerald_Sparkle ; emerald collection stars
+ plcm Nem_SSRedWhite, ArtTile_SS_Red_White_Block ; red and white block
+ plcm Nem_SSGhost, ArtTile_SS_Ghost_Block ; ghost block
+ plcm Nem_SSWBlock, ArtTile_SS_W_Block ; W block
+ plcm Nem_SSGlass, ArtTile_SS_Glass ; glass block
+ plcm Nem_SSEmerald, ArtTile_SS_Emerald ; emeralds
+ plcm Nem_SSZone1, ArtTile_SS_Zone_1 ; ZONE 1 block
+ plcm Nem_SSZone2, ArtTile_SS_Zone_2 ; ZONE 2 block
+ plcm Nem_SSZone3, ArtTile_SS_Zone_3 ; ZONE 3 block
PLC_SpeStageend:
- plcm Nem_SSZone4, $F2E0 ; ZONE 4 block
- plcm Nem_SSZone5, $F400 ; ZONE 5 block
- plcm Nem_SSZone6, $F520 ; ZONE 6 block
+ ; Unused
+ plcm Nem_SSZone4, ArtTile_SS_Zone_4 ; ZONE 4 block
+ plcm Nem_SSZone5, ArtTile_SS_Zone_5 ; ZONE 5 block
+ plcm Nem_SSZone6, ArtTile_SS_Zone_6 ; ZONE 6 block
; ---------------------------------------------------------------------------
; Pattern load cues - GHZ animals
; ---------------------------------------------------------------------------
PLC_GHZAnimals: dc.w ((PLC_GHZAnimalsend-PLC_GHZAnimals-2)/6)-1
- plcm Nem_Rabbit, $B000 ; rabbit
- plcm Nem_Flicky, $B240 ; flicky
+ plcm Nem_Rabbit, ArtTile_Animal_1 ; rabbit
+ plcm Nem_Flicky, ArtTile_Animal_2 ; flicky
PLC_GHZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - LZ animals
; ---------------------------------------------------------------------------
PLC_LZAnimals: dc.w ((PLC_LZAnimalsend-PLC_LZAnimals-2)/6)-1
- plcm Nem_Penguin, $B000 ; penguin
- plcm Nem_Seal, $B240 ; seal
+ plcm Nem_Penguin, ArtTile_Animal_1 ; penguin
+ plcm Nem_Seal, ArtTile_Animal_2 ; seal
PLC_LZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - MZ animals
; ---------------------------------------------------------------------------
PLC_MZAnimals: dc.w ((PLC_MZAnimalsend-PLC_MZAnimals-2)/6)-1
- plcm Nem_Squirrel, $B000 ; squirrel
- plcm Nem_Seal, $B240 ; seal
+ plcm Nem_Squirrel, ArtTile_Animal_1 ; squirrel
+ plcm Nem_Seal, ArtTile_Animal_2 ; seal
PLC_MZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - SLZ animals
; ---------------------------------------------------------------------------
PLC_SLZAnimals: dc.w ((PLC_SLZAnimalsend-PLC_SLZAnimals-2)/6)-1
- plcm Nem_Pig, $B000 ; pig
- plcm Nem_Flicky, $B240 ; flicky
+ plcm Nem_Pig, ArtTile_Animal_1 ; pig
+ plcm Nem_Flicky, ArtTile_Animal_2 ; flicky
PLC_SLZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - SYZ animals
; ---------------------------------------------------------------------------
PLC_SYZAnimals: dc.w ((PLC_SYZAnimalsend-PLC_SYZAnimals-2)/6)-1
- plcm Nem_Pig, $B000 ; pig
- plcm Nem_Chicken, $B240 ; chicken
+ plcm Nem_Pig, ArtTile_Animal_1 ; pig
+ plcm Nem_Chicken, ArtTile_Animal_2 ; chicken
PLC_SYZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - SBZ animals
; ---------------------------------------------------------------------------
PLC_SBZAnimals: dc.w ((PLC_SBZAnimalsend-PLC_SBZAnimals-2)/6)-1
- plcm Nem_Rabbit, $B000 ; rabbit
- plcm Nem_Chicken, $B240 ; chicken
+ plcm Nem_Rabbit, ArtTile_Animal_1 ; rabbit
+ plcm Nem_Chicken, ArtTile_Animal_2 ; chicken
PLC_SBZAnimalsend:
; ---------------------------------------------------------------------------
; Pattern load cues - special stage results screen
; ---------------------------------------------------------------------------
PLC_SSResult:dc.w ((PLC_SpeStResultend-PLC_SSResult-2)/6)-1
- plcm Nem_ResultEm, $A820 ; emeralds
- plcm Nem_MiniSonic, $AA20 ; mini Sonic
+ plcm Nem_ResultEm, ArtTile_SS_Results_Emeralds ; emeralds
+ plcm Nem_MiniSonic, ArtTile_Mini_Sonic ; mini Sonic
PLC_SpeStResultend:
; ---------------------------------------------------------------------------
; Pattern load cues - ending sequence
; ---------------------------------------------------------------------------
PLC_Ending: dc.w ((PLC_Endingend-PLC_Ending-2)/6)-1
- plcm Nem_GHZ_1st,0 ; GHZ main patterns
- plcm Nem_GHZ_2nd, $39A0 ; GHZ secondary patterns
- plcm Nem_Stalk, $6B00 ; flower stalk
- plcm Nem_EndFlower, $7400 ; flowers
- plcm Nem_EndEm, $78A0 ; emeralds
- plcm Nem_EndSonic, $7C20 ; Sonic
- if Revision=0
- plcm Nem_EndEggman, $A480 ; Eggman's death ((unused)
- endif
- plcm Nem_Rabbit, $AA60 ; rabbit
- plcm Nem_Chicken, $ACA0 ; chicken
- plcm Nem_Penguin, $AE60 ; penguin
- plcm Nem_Seal, $B0A0 ; seal
- plcm Nem_Pig, $B260 ; pig
- plcm Nem_Flicky, $B4A0 ; flicky
- plcm Nem_Squirrel, $B660 ; squirrel
- plcm Nem_EndStH, $B8A0 ; "SONIC THE HEDGEHOG"
+ plcm Nem_GHZ_1st, ArtTile_Level ; GHZ main patterns
+ plcm Nem_GHZ_2nd, ArtTile_Level+$1CD ; GHZ secondary patterns
+ plcm Nem_Stalk, ArtTile_GHZ_Flower_Stalk ; flower stalk
+ plcm Nem_EndFlower, ArtTile_Ending_Flowers ; flowers
+ plcm Nem_EndEm, ArtTile_Ending_Emeralds ; emeralds
+ plcm Nem_EndSonic, ArtTile_Ending_Sonic ; Sonic
+ if Revision=0
+ plcm Nem_EndEggman, ArtTile_Ending_Eggman ; Eggman's death (unused)
+ endif
+ plcm Nem_Rabbit, ArtTile_Ending_Rabbit ; rabbit
+ plcm Nem_Chicken, ArtTile_Ending_Chicken ; chicken
+ plcm Nem_Penguin, ArtTile_Ending_Penguin ; penguin
+ plcm Nem_Seal, ArtTile_Ending_Seal ; seal
+ plcm Nem_Pig, ArtTile_Ending_Pig ; pig
+ plcm Nem_Flicky, ArtTile_Ending_Flicky ; flicky
+ plcm Nem_Squirrel, ArtTile_Ending_Squirrel ; squirrel
+ plcm Nem_EndStH, ArtTile_Ending_STH ; "SONIC THE HEDGEHOG"
PLC_Endingend:
; ---------------------------------------------------------------------------
; Pattern load cues - "TRY AGAIN" and "END" screens
; ---------------------------------------------------------------------------
PLC_TryAgain: dc.w ((PLC_TryAgainend-PLC_TryAgain-2)/6)-1
- plcm Nem_EndEm, $78A0 ; emeralds
- plcm Nem_TryAgain, $7C20 ; Eggman
- plcm Nem_CreditText, $B400 ; credits alphabet
+ plcm Nem_EndEm, ArtTile_Try_Again_Emeralds ; emeralds
+ plcm Nem_TryAgain, ArtTile_Try_Again_Eggman ; Eggman
+ plcm Nem_CreditText, ArtTile_Credits_Font ; credits alphabet
PLC_TryAgainend:
; ---------------------------------------------------------------------------
; Pattern load cues - Eggman on SBZ 2
; ---------------------------------------------------------------------------
PLC_EggmanSBZ2: dc.w ((PLC_EggmanSBZ2end-PLC_EggmanSBZ2-2)/6)-1
- plcm Nem_SbzBlock, $A300 ; block
- plcm Nem_Sbz2Eggman, $8000 ; Eggman
- plcm Nem_LzSwitch, $9400 ; switch
+ plcm Nem_SbzBlock, ArtTile_Eggman_Trap_Floor ; block
+ plcm Nem_Sbz2Eggman, ArtTile_Eggman ; Eggman
+ plcm Nem_LzSwitch, ArtTile_Eggman_Button-4 ; switch
PLC_EggmanSBZ2end:
; ---------------------------------------------------------------------------
; Pattern load cues - final boss
; ---------------------------------------------------------------------------
PLC_FZBoss: dc.w ((PLC_FZBossend-PLC_FZBoss-2)/6)-1
- plcm Nem_FzEggman, $7400 ; Eggman after boss
- plcm Nem_FzBoss, $6000 ; FZ boss
- plcm Nem_Eggman, $8000 ; Eggman main patterns
- plcm Nem_Sbz2Eggman, $8E00 ; Eggman without ship
- plcm Nem_Exhaust, $A540 ; exhaust flame
+ plcm Nem_FzEggman, ArtTile_FZ_Eggman_Fleeing ; Eggman after boss
+ plcm Nem_FzBoss, ArtTile_FZ_Boss ; FZ boss
+ plcm Nem_Eggman, ArtTile_Eggman ; Eggman main patterns
+ plcm Nem_Sbz2Eggman, ArtTile_Eggman_Outside_Vehicle ; Eggman without ship
+ plcm Nem_Exhaust, ArtTile_Eggman_Exhaust ; exhaust flame
PLC_FZBossend:
- even
; ---------------------------------------------------------------------------
; Pattern load cue IDs
@@ -422,4 +422,4 @@ plcid_SSResult: equ (ptr_PLC_SSResult-ArtLoadCues)/2 ; $1B
plcid_Ending: equ (ptr_PLC_Ending-ArtLoadCues)/2 ; $1C
plcid_TryAgain: equ (ptr_PLC_TryAgain-ArtLoadCues)/2 ; $1D
plcid_EggmanSBZ2: equ (ptr_PLC_EggmanSBZ2-ArtLoadCues)/2 ; $1E
-plcid_FZBoss: equ (ptr_PLC_FZBoss-ArtLoadCues)/2 ; $1F \ No newline at end of file
+plcid_FZBoss: equ (ptr_PLC_FZBoss-ArtLoadCues)/2 ; $1F
diff --git a/_inc/Special Stage Mappings & VRAM Pointers.asm b/_inc/Special Stage Mappings & VRAM Pointers.asm
index 6bce00b..d66fc31 100644
--- a/_inc/Special Stage Mappings & VRAM Pointers.asm
+++ b/_inc/Special Stage Mappings & VRAM Pointers.asm
@@ -1,159 +1,86 @@
; ---------------------------------------------------------------------------
; Special stage mappings and VRAM pointers
; ---------------------------------------------------------------------------
- dc.l Map_SSWalls ; address of mappings
- dc.w $142 ; VRAM setting
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $2142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $4142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_SSWalls
- dc.w $6142
- dc.l Map_Bump
- dc.w $23B
- dc.l Map_SS_R
- dc.w $570
- dc.l Map_SS_R
- dc.w $251
- dc.l Map_SS_R
- dc.w $370
- dc.l Map_SS_Up
- dc.w $263
- dc.l Map_SS_Down
- dc.w $263
- dc.l Map_SS_R
- dc.w $22F0
- dc.l Map_SS_Glass
- dc.w $470
- dc.l Map_SS_Glass
- dc.w $5F0
- dc.l Map_SS_Glass
- dc.w $65F0
- dc.l Map_SS_Glass
- dc.w $25F0
- dc.l Map_SS_Glass
- dc.w $45F0
- dc.l Map_SS_R
- dc.w $2F0
- dc.l Map_Bump+$1000000 ; add frame no. * $1000000
- dc.w $23B
- dc.l Map_Bump+$2000000
- dc.w $23B
- dc.l Map_SS_R
- dc.w $797
- dc.l Map_SS_R
- dc.w $7A0
- dc.l Map_SS_R
- dc.w $7A9
- dc.l Map_SS_R
- dc.w $797
- dc.l Map_SS_R
- dc.w $7A0
- dc.l Map_SS_R
- dc.w $7A9
- dc.l Map_Ring
- dc.w $27B2
- dc.l Map_SS_Chaos3
- dc.w $770
- dc.l Map_SS_Chaos3
- dc.w $2770
- dc.l Map_SS_Chaos3
- dc.w $4770
- dc.l Map_SS_Chaos3
- dc.w $6770
- dc.l Map_SS_Chaos1
- dc.w $770
- dc.l Map_SS_Chaos2
- dc.w $770
- dc.l Map_SS_R
- dc.w $4F0
- dc.l Map_Ring+$4000000
- dc.w $27B2
- dc.l Map_Ring+$5000000
- dc.w $27B2
- dc.l Map_Ring+$6000000
- dc.w $27B2
- dc.l Map_Ring+$7000000
- dc.w $27B2
- dc.l Map_SS_Glass
- dc.w $23F0
- dc.l Map_SS_Glass+$1000000
- dc.w $23F0
- dc.l Map_SS_Glass+$2000000
- dc.w $23F0
- dc.l Map_SS_Glass+$3000000
- dc.w $23F0
- dc.l Map_SS_R+$2000000
- dc.w $4F0
- dc.l Map_SS_Glass
- dc.w $5F0
- dc.l Map_SS_Glass
- dc.w $65F0
- dc.l Map_SS_Glass
- dc.w $25F0
- dc.l Map_SS_Glass
- dc.w $45F0 \ No newline at end of file
+specialStageData: macro frame,mappings,palette,vram
+ dc.l mappings|(frame<<24)
+ dc.w make_art_tile(vram,palette,0)
+ endm
+
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 0, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 1, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 2, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_SSWalls, 3, ArtTile_SS_Wall
+ specialStageData 0, Map_Bump, 0, ArtTile_SS_Bumper
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_W_Block
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Goal
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Extra_Life
+ specialStageData 0, Map_SS_Up, 0, ArtTile_SS_Up_Down
+ specialStageData 0, Map_SS_Down, 0, ArtTile_SS_Up_Down
+ specialStageData 0, Map_SS_R, 1, ArtTile_SS_R_Block
+ specialStageData 0, Map_SS_Glass, 0, ArtTile_SS_Red_White_Block
+ specialStageData 0, Map_SS_Glass, 0, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 3, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 1, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 2, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_R_Block
+ specialStageData 1, Map_Bump, 0, ArtTile_SS_Bumper
+ specialStageData 2, Map_Bump, 0, ArtTile_SS_Bumper
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_1
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_2
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_3
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_4
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_5
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Zone_6
+ specialStageData 0, Map_Ring, 1, ArtTile_Ring
+ specialStageData 0, Map_SS_Chaos3, 0, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_Chaos3, 1, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_Chaos3, 2, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_Chaos3, 3, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_Chaos1, 0, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_Chaos2, 0, ArtTile_SS_Emerald
+ specialStageData 0, Map_SS_R, 0, ArtTile_SS_Ghost_Block
+ specialStageData 4, Map_Ring, 1, ArtTile_Ring
+ specialStageData 5, Map_Ring, 1, ArtTile_Ring
+ specialStageData 6, Map_Ring, 1, ArtTile_Ring
+ specialStageData 7, Map_Ring, 1, ArtTile_Ring
+ specialStageData 0, Map_SS_Glass, 1, ArtTile_SS_Emerald_Sparkle
+ specialStageData 1, Map_SS_Glass, 1, ArtTile_SS_Emerald_Sparkle
+ specialStageData 2, Map_SS_Glass, 1, ArtTile_SS_Emerald_Sparkle
+ specialStageData 3, Map_SS_Glass, 1, ArtTile_SS_Emerald_Sparkle
+ specialStageData 2, Map_SS_R, 0, ArtTile_SS_Ghost_Block
+ specialStageData 0, Map_SS_Glass, 0, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 3, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 1, ArtTile_SS_Glass
+ specialStageData 0, Map_SS_Glass, 2, ArtTile_SS_Glass \ No newline at end of file