- Messages
- 28
this is basically my own credits
quick showcase if you have any ideas you can share then go ahead
IF you wanna see the code here you go should be simple
now the subroutine that handels the objects / sprites
now what this does insted of pulling a random slot from Object ram you just tell it what slot to use i did this to avoid issues
EDIT : i have made a sonic 1 port of this
place this insted of your credits and you are gonna have to modfy obj $8A that being the sonic team presents
that means now $24 is sorting Jmping pointers to code that means now any time you call obj 8A you have to use $24 to jump to the correct pointer if you leave it that means you are jumping to 0 that being the rom header that can lead to bad results also an edit on BuildSprite Rroutine at
you will find
to
now you have to edit Every screen object that uses $A that being sonic 1 retarded way on display objects on y pos on screen aka Bit2 in render_flags now every object that uses $A change it t $C that means you can now use SpeedToPos in screen objects good luck !
IF you wanna see the code here you go should be simple
Code:
Credits_EC:
;jmp Main_Running_Tittle
move.b #MusID_Stop,d0
jsr PlaySound ; stop music
jsr Pal_FadeToBlack
clearRAM Sprite_Table_Input,Sprite_Table_Input_End
clearRAM Object_RAM,Object_RAM_End
clearRAM Camera_RAM,Camera_RAM_End ; clear camera RAM and following variables
move #$2700,sr
move.w (VDP_Reg1_val).w,d0
andi.b #$BF,d0
move.w d0,(VDP_control_port).l
jsr ClearScreen
jsr (Init_SpriteTable).l
lea (VDP_control_port).l,a6
move.w #$8B03,(a6)
move.w #$8230,(a6)
move.w #$8407,(a6)
move.w #$857C,(a6)
move.w #$9001,(a6)
move.w #$8004,(a6)
move.w #$8720,(a6)
move.w #$8ADF,(Hint_counter_reserve).w
move.w (Hint_counter_reserve).w,(a6)
clr.b (Level_started_flag).w
move.b #0,(s3k_level_mode).w
lea (Pal_BGND).l,a1 ; load line 2 as the same but it will cycle later
jsr PalLoad_Line1
clr.w (VDP_Command_Buffer).w
move.l #VDP_Command_Buffer,(VDP_Command_Buffer_Slot).w
lea (MapEni_S3MenuBG).l,a0
lea (Chunk_Table).l,a1
move.w #1,d0
jsr (Eni_Decomp).l
lea (Chunk_Table).l,a1
move.l #$60000003,d0
moveq #$27,d1
moveq #$1B,d2
jsr (Plane_Map_To_VRAM).l
move.l #vdpComm(tiles_to_bytes(ArtTile_ArtNem_Title_CreditsFont),VRAM,WRITE),(VDP_control_port).l
lea (NemCreditsFont).l,a0
jsr NemDec
lea (ArtKos_S3MenuBG).l,a0 ; Decompress source
lea (Chunk_Table).l,a1 ; Decompress destination/Transfer source
movea.w #tiles_to_bytes(ArtTile_ArtKos_S3MenuBG),a2 ; Transfer destination
jsr (KosArt_To_VDP).l
move.l #locret_C56E,(_unkEF44_1).w
move.b #VintID_Savescreen,(V_int_routine).w
jsr (Wait_VSync).l
lea (Pal_SaveMenuBG).l,a0
lea (Target_palette).w,a1
moveq #7,d0
-
move.l (a0)+,(a1)+
dbf d0,-
jsr (Load_Sprites).l
jsr (Process_Sprites).l
jsr (Render_Sprites).l
jsr (Process_Kos_Queue).l
jsr (Process_Kos_Module_Queue).l
moveq #0,d0
move.w d0,(Ring_count).w
move.l d0,(Timer).w
move.b d0,(Extra_life_flags).w
move.w d0,(Debug_placement_mode).w
move.w d0,(Level_Inactive_flag).w
move.w d0,(Timer_frames).w
jsr OscillateNumInit
move.b #1,(Update_HUD_score).w
move.b #1,(Update_HUD_rings).w
move.b #0,(Update_HUD_timer).w
move.w #1800,(Demo_Time_left).w
move.l #ObjScrollingCreditFrames,(Player_1).w
move.l #ObjeectMakeMoreSprite,(Player_2).w
move.b #VintID_TitleCard,(Vint_routine).w
jsr WaitForVint
jsr (Load_Sprites).l
jsr (Process_Sprites).l
jsr (Render_Sprites).l
jsr (Process_Kos_Queue).l
jsr (Process_Kos_Module_Queue).l
move.w #$3F,(Palette_fade_start).w
move.w (VDP_Reg1_val).w,d0
ori.b #$40,d0
move.w d0,(VDP_control_port).l
move.w #$100,(Demo_Time_left).w
jsr Pal_FadeFromBlack
; ---------------------------------------------------------------------------
; Main ending sequence loop
; ---------------------------------------------------------------------------
CreditsLoop:
jsr PauseGame
move.b #VintID_Level,(Vint_routine).w
jsr (Process_Kos_Queue).l
jsr WaitForVint
jsr (RunObjects).l
jsr (Load_Sprites).l
jsr (Render_Sprites).l
jsr RunPLC_RAM
jsr (Process_Kos_Module_Queue).l
jsr OscillateNumDo
jsr ChangeRingFrame
bra.w CreditsLoop
ObjeectMakeMoreSprite:
move.l #DeleteObject,(a0)
;lea CreditsChildData2(pc),a2
;moveq #$1,d6
;jmp CreateChildComplexPositons2
rts
ObjScrollingCreditFrames:
move.w #$100,x_pos(a0)
move.w #$90,y_pos(a0) ; top of the screen
move.l #CreditsMappings,mappings(a0)
move.w #ArtTile_ArtNem_Title_CreditsFont+$2000,art_tile(a0)
move.w #$0,priority(a0)
move.b #$18,width_pixels(a0)
move.b #$18,height_pixels(a0)
move.w #$50,ObjTimer(a0)
move.l #DisplayLettersCredits,(a0)
DisplayLettersCredits:
subq.w #1,ObjTimer(a0)
bpl.s .GoExcuteObjects
lea CreditsChildData(pc),a2
moveq #$7,d6
jsr CreateChildComplexPositons3
move.l #.GoExcuteObjects,(a0)
.GoExcuteObjects:
jsr ObjectMove
jmp Draw_Sprite
CreditsChildData:
dc.w Dynamic_object_RAM+object_size*2
dc.l CreditsFramesAndTimer
dc.w 1 ; neto
dc.w $0
dc.w -$DE;-$20 needed location
dc.w Dynamic_object_RAM+object_size*3
dc.l CreditsFramesAndTimer
dc.w 2 ; pika noob
dc.w $0
dc.w -$DE
dc.w Dynamic_object_RAM+object_size*4
dc.l CreditsFramesAndTimer
dc.w 3 ; sonic duthc
dc.w $0
dc.w -$DE
CreditsChildData2:
dc.w Dynamic_object_RAM+object_size*5
dc.l CreditsFramesAndTimer
dc.w 4 ;
dc.w $0
dc.w -$DE
dc.w Dynamic_object_RAM+object_size*6
dc.l CreditsFramesAndTimer
dc.w 5 ;
dc.w $0
dc.w -$DE
dc.w Dynamic_object_RAM+object_size*7
dc.l CreditsFramesAndTimer
dc.w 6 ; sanity
dc.w $0
dc.w -$E0
CreditsChildData3
dc.w Dynamic_object_RAM+object_size*8
dc.l CreditsFramesAndTimer
dc.w 7 ; chron ig
dc.w $0
dc.w -$100
;
dc.w Dynamic_object_RAM+object_size*9
dc.l CreditsFramesAndTimer
dc.w 8 ; coolest fucker around
dc.w $60
dc.w -$110
;dc.w Dynamic_object_RAM+object_size*$A
;dc.l CreditsFramesAndTimer
;dc.w 9 ;
; dc.w $0
;dc.w -$120
CreditsFramesAndTimer:
move.w #$100,x_pos(a0)
move.w child_dx(a0),d0
add.w d0,x_pos(a0)
moveq #0,d0
move.w ObjTimer(a0),d0
move.b d0,mapping_frame(a0)
moveq #0,d0
move.b mapping_frame(a0),d0
add.w d0,d0
lea CreditsTimerSetting(pc,d0),a2
move.w (a2)+,ObjTimer(a0)
move.l #CreditsMappings,mappings(a0)
move.w #ArtTile_ArtNem_Title_CreditsFont+$2000,art_tile(a0)
move.w #$0,priority(a0)
move.b #$40,width_pixels(a0)
move.b #$18,height_pixels(a0)
move.l #Follow_CreditsMove,(a0)
Follow_CreditsMove:
subq.w #1,ObjTimer(a0)
bpl.s ReturnCreditsNothing
jsr ChildGetSavedFromParentDistance
moveq #0,d0
move.b mapping_frame(a0),d0
add.w d0,d0
lea CreditSpriteStoppingLocation(pc,d0),a2
move.w y_pos(a0),d1
cmp.w (a2)+,d1
bne.s +
move.w #$50,ObjTimer(a0)
move.l #StopThenGoAway_Credits,(a0)
jmp Draw_Sprite
+
move.w #$2,d0
ext.l d0
add.w d0,ChildTrackedY(a0)
jmp Draw_Sprite
ReturnCreditsNothing:
rts
CreditsTimerSetting: dc.w $0,$20,$30,$40,$50,$60,$70,$100,$10A
even
StopThenGoAway_Credits:
subq.w #1,ObjTimer(a0)
bne.s +
move.w #$400,x_vel(a0)
move.l #CheckToDeleteCreditsName,(a0)
jsr ObjectMove
+
jmp Draw_Sprite
CheckToDeleteCreditsName:
jsr ObjectMove
cmpi.w #$200,x_pos(a0)
bne.s +
jmp DeleteObject
+
jmp MarkObjGone
CreditSpriteStoppingLocation:
dc.w $A0 ; under the lava gaming text
dc.w $B0 ; under the lava gaming text
dc.w $D0 ; under the Neto text
dc.w $F0 ; under the Pika text
;
dc.w $110 ; under the Pika text
dc.w $130 ; under the Pika text
dc.w $150 ; under the Pika text
; same locations on screen
dc.w $110 ; under the Pika text
dc.w $130 ; under the Pika text
dc.w $A0 ; under the Pika text
even
Code:
CreateChildComplexPositons3:
move.w (a2)+,a3
lea (a3),a1
move.w a0,parent3(a1)
move.l mappings(a0),mappings(a1)
move.w art_tile(a0),art_tile(a1)
move.l (a2)+,(a1)
move.w (a2)+,ObjTimer(a1)
move.w (a2)+,child_dx(a1)
move.w (a2)+,ChildTrackedY(a1)
move.w x_pos(a0),x_pos(a1)
move.w y_pos(a0),y_pos(a1)
dbf d6,CreateChildComplexPositons3
rts
EDIT : i have made a sonic 1 port of this
Code:
; ===========================================================================
; ---------------------------------------------------------------------------
; Credits ending sequence
; ---------------------------------------------------------------------------
ObjPointer = $24 ; and $25, $26,$27
ScreenParent = $1E
Credits: ; XREF: GameModeArray
move.b #$E4,d0
bsr.w PlaySound_Special ; stop music
bsr.w ClearPLC
bsr.w Pal_FadeFrom
move #$2700,sr
bsr.w SoundDriverLoad
lea ($C00004).l,a6
move.w #$8004,(a6)
move.w #$8230,(a6)
move.w #$8407,(a6)
move.w #$9001,(a6)
move.w #$9200,(a6)
move.w #$8B03,(a6)
move.w #$8720,(a6)
clr.b ($FFFFF64E).w
bsr.w ClearScreen
lea ($FFFFD000).w,a1
moveq #0,d0
move.w #$7FF,d1
CreditsScreenObjRam:
move.l d0,(a1)+
dbf d1,CreditsScreenObjRam ; fill object RAM ($D000-$EFFF) with $0
move.l #$40000000,($C00004).l
lea (Nem_JapNames).l,a0 ; load Japanese credits
bsr.w NemDec
move.l #$54C00000,($C00004).l
lea (Nem_CreditText).l,a0 ; load alphabet
bsr.w NemDec
lea ($FF0000).l,a1
lea (Eni_JapNames).l,a0 ; load mappings for Japanese credits
move.w #0,d0
bsr.w EniDec
lea ($FF0000).l,a1
move.l #$40000003,d0
moveq #$27,d1
moveq #$1B,d2
bsr.w ShowVDPGraphics
lea ($FFFFFB80).w,a1
moveq #0,d0
move.w #$1F,d1
ClearTargettedPallete_Creidsts:
move.l d0,(a1)+
dbf d1,ClearTargettedPallete_Creidsts ; fill pallet with 0 (black)
moveq #3,d0 ; load Sonic's pallet
bsr.w PalLoad1
move.b #$8A,($FFFFD000).w
move.l #ObjScrollingCreditFrames,($FFFFD000+$24).w ; load "SONIC TEAM PRESENTS" object
jsr ObjectsLoad
jsr BuildSprites
bsr.w Pal_FadeTo
move #$2700,sr
move.l #$40000001,($C00004).l
lea (Nem_TitleFg).l,a0 ; load title screen patterns
bsr.w NemDec
move.l #$60000001,($C00004).l
lea (Nem_TitleSonic).l,a0 ; load Sonic title screen patterns
bsr.w NemDec
move.l #$62000002,($C00004).l
lea (Nem_TitleTM).l,a0 ; load "TM" patterns
bsr.w NemDec
move.l #$62400002,($C00004).l
lea (Nem_TitleMenu).l,a0 ; load "Title Menu text" patterns
bsr.w NemDec
Cred_WaitLoop:
move.b #4,($FFFFF62A).w
bsr.w DelayProgram
bsr.w RunPLC_RAM
jsr ObjectsLoad
jsr BuildSprites
bra.s Cred_WaitLoop
; basically the format
; wip obj porting
RunObjectEC:
lea ($FFFFD000).w,a0 ; i hope thats the right addr
moveq #$40,d7 ; how many credits to procces
move.l ObjPointer(a0),d0
beq.s RunNextObjectEC
movea.l d0,a1
jsr (a1)
;loc_15FDC:
RunNextObjectEC:
lea $40(a0),a0 ; load 0bj address
dbf d7,RunObjectEC
RunObjects_EndEC:
rts
ObjTimer = $3E
ChildTrackedY = $3A
child_dx = $36
ObjScrollingCreditFrames:
move.w #$100,$8(a0)
move.w #$90,$C(a0) ; top of the screen
move.l #Map_ConQuestCredits,4(a0)
move.w #$5A0,2(a0)
;move.w #$0,priority(a0)
;move.b #$18,width_pixels(a0)
;move.b #$18,height_pixels(a0)
move.w #$50,ObjTimer(a0)
move.l #DisplayLettersCredits,$24(a0)
DisplayLettersCredits:
subq.w #1,ObjTimer(a0)
bpl.s GoExcuteObjects_Credits
lea CreditsChildData(pc),a2
lea (Sonic1IdSettings).l,a4
moveq #$9,d6
jsr CreateChildComplexPositons3
move.l #GoExcuteObjects_Credits,$24(a0)
GoExcuteObjects_Credits:
jsr SpeedToPos
jmp DisplaySprite
CreditScreenObjRam: equ $FFFFD800
CreditsChildData:
dc.w CreditScreenObjRam+$40*2
dc.l CreditsFramesAndTimer
dc.w 1 ; neto
dc.w $0
dc.w -$DE;-$20 needed location
dc.w CreditScreenObjRam+$40*3
dc.l CreditsFramesAndTimer
dc.w 2 ; pika noob
dc.w $0
dc.w -$DE
dc.w CreditScreenObjRam+$40*4
dc.l CreditsFramesAndTimer
dc.w 3 ; sonic duthc
dc.w $0
dc.w -$DE
CreditsChildData2:
dc.w CreditScreenObjRam+$40*5
dc.l CreditsFramesAndTimer
dc.w 4 ;
dc.w $0
dc.w -$DE
dc.w CreditScreenObjRam+$40*6
dc.l CreditsFramesAndTimer
dc.w 5 ;
dc.w $0
dc.w -$DE
dc.w CreditScreenObjRam+$40*7
dc.l CreditsFramesAndTimer
dc.w 6 ; sanity
dc.w $0
dc.w -$E0
CreditsChildData3
dc.w CreditScreenObjRam+$40*8
dc.l CreditsFramesAndTimer
dc.w 7 ; chron ig
dc.w $0
dc.w -$100
;
dc.w CreditScreenObjRam+$40*9
dc.l CreditsFramesAndTimer
dc.w 8 ; coolest fucker around
dc.w $60
dc.w -$110
dc.w CreditScreenObjRam+$40*$A
dc.l CreditsFramesAndTimer
dc.w 9 ; random name
dc.w -$30
dc.w -$120
dc.w CreditScreenObjRam+$40*$B
dc.l CreditsFramesAndTimer
dc.w $A ; trickster
dc.w -$34
dc.w -$120
Sonic1IdSettings: dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
dc.b $8A
even
CreateChildComplexPositons3:
move.w (a2)+,a3
lea (a3),a1
move.w a0,ScreenParent(a1)
move.l $4(a0),$4(a1)
move.w 2(a0),2(a1)
move.b (a4)+,(a1)
move.l (a2)+,$24(a1)
move.w (a2)+,ObjTimer(a1)
move.w (a2)+,child_dx(a1)
move.w (a2)+,ChildTrackedY(a1)
move.w $8(a0),$8(a1)
move.w $C(a0),$C(a1)
dbf d6,CreateChildComplexPositons3
rts
CreditsFramesAndTimer:
move.b #$2,1(a0)
move.l #Map_ConQuestCredits,4(a0)
move.w #$5A0,2(a0)
move.w child_dx(a0),d0
add.w d0,$8(a0)
moveq #0,d0
move.w ObjTimer(a0),d0
move.b d0,$1A(a0)
moveq #0,d0
move.b $1A(a0),d0
add.w d0,d0
lea (CreditsTimerSetting).l,a2
add.w d0,a2
move.w (a2)+,ObjTimer(a0)
; move.l #CreditsMappings,mappings(a0)
; move.w #ArtTile_ArtNem_Title_CreditsFont+$2000,art_tile(a0)
; move.w #$0,priority(a0)
; move.b #$40,width_pixels(a0)
; move.b #$18,height_pixels(a0)
move.l #Follow_CreditsMove,ObjPointer(a0)
Follow_CreditsMove:
subq.w #1,ObjTimer(a0)
bpl.s ReturnCreditsNothing
jsr ChildGetSavedFromParentDistance
moveq #0,d0
move.b $1A(a0),d0
add.w d0,d0
lea (CreditSpriteStoppingLocation).l,a2
add.w d0,a2
move.w $C(a0),d1
cmp.w (a2)+,d1
bne.s MoveSpriteBeforeCorndationsSet
moveq #0,d0
move.b $1A(a0),d0
add.w d0,d0
lea (DiffrentGoAwayTimer).l,a2
add.w d0,a2 ; advance in addr
move.w (a2)+,ObjTimer(a0)
cmpi.b #$8,$1A(a0)
bne.s GoForNormalGoAwayCredit
move.l #StopThenMoveDownCredits,ObjPointer(a0)
jmp DisplaySprite
GoForNormalGoAwayCredit:
move.l #StopThenGoAway_Credits,ObjPointer(a0)
jmp DisplaySprite
MoveSpriteBeforeCorndationsSet:
move.w #$2,d0
ext.l d0
add.w d0,ChildTrackedY(a0)
jmp DisplaySprite
ReturnCreditsNothing:
rts
StopThenGoAway_Credits:
subq.w #1,ObjTimer(a0)
bne.s DisplayWhenTimerSetting_CountDown
move.w #$400,$10(a0)
move.l #CheckToDeleteCreditsName,ObjPointer(a0)
jsr SpeedToPos
DisplayWhenTimerSetting_CountDown:
jmp DisplaySprite
CheckToDeleteCreditsName:
jsr SpeedToPos
cmpi.w #$200,$8(a0)
bne.s DisplaySpriteTimer_0
GoForDeletingCredits:
jmp DeleteObject
DisplayWhenOnCorrectCordnates:
jmp MarkObjGone
StopThenMoveDownCredits:
subq.w #1,ObjTimer(a0)
bne.s DisplaySpriteTimer_0
move.w #$600,$12(a0)
move.l #CreditsMarkGoned,ObjPointer(a0)
DisplaySpriteTimer_0:
jmp DisplaySprite
CreditsMarkGoned:
move.w $C(a0),d0
sub.w ($FFFFF704).w,d0
addi.w #$80,d0
cmpi.w #$200,d0
bhi.w GoForDeletingCredits
jsr ObjectFall
jmp (DisplaySprite).l
CreditSpriteStoppingLocation:
dc.w $A0 ; under the lava gaming text
dc.w $B0 ; neto
dc.w $D0 ; pika
dc.w $F0 ; sthduth
;
dc.w $110 ; jay kurin
dc.w $130 ; sr gandy
dc.w $14A ; sanity
; same locations on screen
dc.w $110 ; chron
dc.w $130 ; coolest fucker around
dc.w $120 ; random name text
dc.w $150 ; trickster text
even
; time until the credits go away from screen
DiffrentGoAwayTimer:
dc.w $40 ; under the lava gaming text
dc.w $10 ; neto
dc.w $20 ; pika
dc.w $30 ; sthduth
;
dc.w $40 ; jay kurin
dc.w $50 ; sr gandy
dc.w $50 ; sanity
; same locations on screen
dc.w $20 ; chron
dc.w $40 ; coolest fucker around
dc.w $50 ; random name text
dc.w $10 ; trickster text
CreditsTimerSetting: dc.w $0,$20,$30,$40,$50,$60,$70,$100,$10A,$1C0,$1A0
even
MainObjectDead: ; unused feature in here
jmp DeleteObject
ChildGetSavedFromParentDistance:
jsr ChildObjectMove(pc)
movea.w ScreenParent(a0),a1
; tst.l ObjPointer(a1) ; is parent alive ? (if its nothing object aka it has issues deleting child sprites)
; beq.s MainObjectDead ; no then turn this child object to badnick parts
; cmpi.l #Obj27,ObjPointer(a1) ; is the parent an exploation ?
; beq.s MainObjectDead ; mark child object destroyed
; cmpi.l #Obj58,ObjPointer(a1) ; is the parent an exploation ? (if this routine is used in a boss)
; beq.s MainObjectDead ; mark child object destroyed
move.b $22(a1),$22(a0)
btst #0,$22(a0) ; is the data the child is getting from parent left or right
beq.s LeftFacingChild
ChildGetSavedFromParentDistance2:
move.w $8(a1),d0 ; get child x pos
move.w child_dx(a0),d1 ; get its needed distance
add.w d1,d0 ; give it the distance into x _pos distance from parent
move.w d0,$8(a0) ; ^
move.w $C(a1),d0 ; same thing above but gets trancked y pos
move.w ChildTrackedY(a0),d1
add.w d1,d0
move.w d0,$C(a0)
rts
LeftFacingChild:
move.w $8(a1),d0 ; same as normal x pos but
move.w child_dx(a0),d1
sub.w d1,d0 ; subtract the distance
move.w d0,$8(a0)
move.w $C(a1),d0
move.w ChildTrackedY(a0),d1 ; same but subtract vertical distance
sub.w d1,d0
move.w d0,$C(a0)
rts
ChildObjectMove:
move.w $10(a0),d0
bsr.w ChildDo_xmove
move.w $12(a0),d0
bra.w Childdo_ymove
ChildDo_xmove:
ext.l d0
asl.l #8,d0
add.l d0,child_dx(a0)
rts
Childdo_ymove:
ext.l d0
asl.l #8,d0
add.l d0,ChildTrackedY(a0)
rts
Code:
Obj8A: ; XREF: Obj_Index
move.l $24(A0),A1
jmp (A1)
ObjCreditsPoint:
move.l #Obj8A_Display,$24(a0)
move.w #$120,8(a0)
move.w #$F0,$C(a0)
move.l #Map_obj8A,4(a0)
move.w #$5A0,2(a0)
move.w ($FFFFFFF4).w,d0 ; load credits index number
move.b d0,$1A(a0) ; display appropriate sprite
move.b #0,1(a0)
move.b #0,$18(a0)
cmpi.b #4,($FFFFF600).w ; is the scene number 04 (title screen)?
bne.s Obj8A_Display ; if not, branch
move.w #$A6,2(a0)
move.b #$A,$1A(a0) ; display "SONIC TEAM PRESENTS"
tst.b ($FFFFFFE3).w ; is hidden credits cheat on?
beq.s Obj8A_Display ; if not, branch
cmpi.b #$72,($FFFFF604).w ; is Start+A+C+Down being pressed?
bne.s Obj8A_Display ; if not, branch
move.w #$EEE,($FFFFFBC0).w ; 3rd pallet, 1st entry = white
move.w #$880,($FFFFFBC2).w ; 3rd pallet, 2nd entry = cyan
jmp DeleteObject
; ===========================================================================
Obj8A_Display: ; XREF: Obj8A_Index
jmp DisplaySprite
Code:
loc_D6DE
Code:
move.w $A(a0),d2
Code:
move.w $C(a0),d2
Last edited: