mirror of
https://frontier.innolan.net/github/AmigaExamples.git
synced 2026-09-12 18:22:22 +00:00
AGA compatible splash screen
This commit is contained in:
+5
-1
@@ -28,7 +28,10 @@ Entry:
|
||||
move #$7ff,DMACON(a6) ; disable all dma
|
||||
move #$7fff,INTENA(a6) ; disable all interrupts
|
||||
|
||||
jsr ShowSplash
|
||||
jsr ShowSplash
|
||||
|
||||
move #$7ff,DMACON(a6) ; disable all dma
|
||||
move #$7fff,INTENA(a6) ; disable all interrupts
|
||||
|
||||
lea Level3InterruptHandler,a3
|
||||
move.l a3,LVL3_INT_VECTOR
|
||||
@@ -52,6 +55,7 @@ Entry:
|
||||
|
||||
jsr InstallSpriteColorPalette
|
||||
jsr InstallGreyPalette
|
||||
|
||||
|
||||
Reset:
|
||||
move.l #0,foregroundScrollX
|
||||
|
||||
+33
-26
@@ -5,31 +5,42 @@
|
||||
SPLASH_COLOR_DEPTH equ 5
|
||||
SPLASH_SCREEN_WIDTH_BYTES equ 40
|
||||
|
||||
ShowSplash:
|
||||
lea CUSTOM,a6
|
||||
|
||||
;; set up playfield
|
||||
move.w #(RASTER_Y_START<<8)|RASTER_X_START,DIWSTRT(a6)
|
||||
move.w #((RASTER_Y_STOP-256)<<8)|(RASTER_X_STOP-256),DIWSTOP(a6)
|
||||
|
||||
SplashPokeBitplanePointers:
|
||||
; a0 = BPLP copper list address
|
||||
; a1 = bitplanes pointer
|
||||
lea splashCopperListBplPtr,a0
|
||||
lea splash,a1
|
||||
move.w #(RASTER_X_START/2-SCREEN_RES),DDFSTRT(a6)
|
||||
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
|
||||
|
||||
move.w #(SPLASH_COLOR_DEPTH<<12)|$200,BPLCON0(a6)
|
||||
move.w #SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES,BPL1MOD(a6)
|
||||
move.w #SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES,BPL2MOD(a6)
|
||||
|
||||
;; poke bitplane pointers
|
||||
lea splash(pc),a1
|
||||
lea splashCopperListBplPtr(pc),a2
|
||||
moveq #SPLASH_COLOR_DEPTH-1,d0
|
||||
.bitplaneloop:
|
||||
move.l a1,d1
|
||||
move.w d1,2(a0)
|
||||
move.w d1,2(a2)
|
||||
swap d1
|
||||
move.w d1,6(a0)
|
||||
lea SPLASH_SCREEN_WIDTH_BYTES(a1),a1
|
||||
addq #8,a0
|
||||
move.w d1,6(a2)
|
||||
lea SPLASH_SCREEN_WIDTH_BYTES(a1),a1 ; bit plane data is interleaved
|
||||
addq #8,a2
|
||||
dbra d0,.bitplaneloop
|
||||
rts
|
||||
|
||||
|
||||
ShowSplash:
|
||||
bsr SplashPokeBitplanePointers
|
||||
lea CUSTOM,a1
|
||||
;; install copper list, then enable dma
|
||||
lea splashCopperList(pc),a0
|
||||
move.l a0,COP1LC(a1)
|
||||
move.w COPJMP1(a1),d0
|
||||
move.w #(DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),dmacon(a1)
|
||||
move.l a0,COP1LC(a6)
|
||||
move.w COPJMP1(a6),d0
|
||||
|
||||
;; set up default palette
|
||||
include "out/splash-palette.s"
|
||||
|
||||
move.w #(DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6)
|
||||
.wait:
|
||||
jsr WaitVerticalBlank
|
||||
jsr ProcessJoystick
|
||||
@@ -39,7 +50,7 @@ ShowSplash:
|
||||
|
||||
|
||||
splashCopperList:
|
||||
splashCopperListBplPtr:
|
||||
splashCopperListBplPtr:
|
||||
dc.w BPL1PTL,0
|
||||
dc.w BPL1PTH,0
|
||||
dc.w BPL2PTL,0
|
||||
@@ -49,14 +60,10 @@ splashCopperListBplPtr:
|
||||
dc.w BPL4PTL,0
|
||||
dc.w BPL4PTH,0
|
||||
dc.w BPL5PTL,0
|
||||
dc.w BPL5PTH,0
|
||||
dc.w DIWSTRT,$2c81
|
||||
dc.w DIWSTOP,$2cc1
|
||||
dc.w BPLCON0,(SPLASH_COLOR_DEPTH<<12)|$200 ; set color depth and enable COLOR
|
||||
dc.w BPL1MOD,SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES
|
||||
dc.w BPL2MOD,SPLASH_SCREEN_WIDTH_BYTES*SPLASH_COLOR_DEPTH-SPLASH_SCREEN_WIDTH_BYTES
|
||||
include "out/splash-copper-list.s"
|
||||
dc.l $fffffffe
|
||||
dc.w BPL5PTH,0
|
||||
dc.w BPL6PTL,0
|
||||
dc.w BPL6PTH,0
|
||||
dc.l $fffffffe
|
||||
|
||||
splash:
|
||||
incbin "out/splash.bin"
|
||||
|
||||
Reference in New Issue
Block a user