V0.0
This commit is contained in:
parent
0143555f36
commit
417a89fedd
10
src/main.asm
10
src/main.asm
|
@ -5,6 +5,7 @@ DEF MAIN_ASM EQU 1
|
||||||
INCLUDE "globals.asm"
|
INCLUDE "globals.asm"
|
||||||
INCLUDE "res/tiles.inc"
|
INCLUDE "res/tiles.inc"
|
||||||
INCLUDE "res/gameplay_map.inc"
|
INCLUDE "res/gameplay_map.inc"
|
||||||
|
INCLUDE "res/title_map.inc"
|
||||||
|
|
||||||
|
|
||||||
SECTION "Globals", HRAM
|
SECTION "Globals", HRAM
|
||||||
|
@ -33,13 +34,9 @@ Main::
|
||||||
ld bc, TilesEnd - Tiles
|
ld bc, TilesEnd - Tiles
|
||||||
call UnsafeMemCopy
|
call UnsafeMemCopy
|
||||||
|
|
||||||
; Make sure both sprites and bg use the same tile data.
|
|
||||||
ldh a, [rLCDC]
|
|
||||||
or LCDCF_BLK01
|
|
||||||
ldh [rLCDC], a
|
|
||||||
|
|
||||||
; Clear OAM.
|
; Clear OAM.
|
||||||
call ClearOAM
|
call ClearOAM
|
||||||
|
call SetNumberSpritePositions
|
||||||
call CopyOAMHandler
|
call CopyOAMHandler
|
||||||
|
|
||||||
; Zero out the ram where needed.
|
; Zero out the ram where needed.
|
||||||
|
@ -52,7 +49,7 @@ Main::
|
||||||
call InitializeLCDCInterrupt
|
call InitializeLCDCInterrupt
|
||||||
|
|
||||||
; Switch to gameplay state.
|
; Switch to gameplay state.
|
||||||
call SwitchToGameplay
|
call SwitchToTitle
|
||||||
|
|
||||||
|
|
||||||
EventLoop::
|
EventLoop::
|
||||||
|
@ -68,6 +65,7 @@ EventLoop::
|
||||||
ldh a, [hGameState]
|
ldh a, [hGameState]
|
||||||
cp a, b
|
cp a, b
|
||||||
jp nz, GamePlayEventLoopHandler
|
jp nz, GamePlayEventLoopHandler
|
||||||
|
jp TitleEventLoopHandler
|
||||||
EventLoopPostHandler::
|
EventLoopPostHandler::
|
||||||
|
|
||||||
; Wait for vblank.
|
; Wait for vblank.
|
||||||
|
|
|
@ -81,8 +81,7 @@ SwitchToGameplay::
|
||||||
ldh [hGameState], a
|
ldh [hGameState], a
|
||||||
|
|
||||||
; And turn the LCD back on before we start.
|
; And turn the LCD back on before we start.
|
||||||
ldh a, [rLCDC]
|
ld a, LCDCF_ON | LCDCF_BGON | LCDCF_OBJON | LCDCF_BLK01
|
||||||
or LCDCF_ON | LCDCF_BGON | LCDCF_OBJON
|
|
||||||
ldh [rLCDC], a
|
ldh [rLCDC], a
|
||||||
|
|
||||||
; Make sure the first game loop starts just like all the future ones.
|
; Make sure the first game loop starts just like all the future ones.
|
||||||
|
@ -306,8 +305,9 @@ gameOverMode:
|
||||||
; Quit
|
; Quit
|
||||||
: ldh a, [hBState]
|
: ldh a, [hBState]
|
||||||
cp a, 1
|
cp a, 1
|
||||||
jp z, $100
|
jr nz, :+
|
||||||
jr drawStaticInfo
|
call SwitchToTitle
|
||||||
|
jp EventLoopPostHandler
|
||||||
|
|
||||||
|
|
||||||
; Always draw the score, level, next piece, and held piece.
|
; Always draw the score, level, next piece, and held piece.
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
IF !DEF(STATE_TITLE_ASM)
|
||||||
|
DEF STATE_TITLE_ASM EQU 1
|
||||||
|
|
||||||
|
|
||||||
|
INCLUDE "globals.asm"
|
||||||
|
|
||||||
|
|
||||||
|
SECTION "Title Functions", ROM0
|
||||||
|
SwitchToTitle::
|
||||||
|
; Turn the screen off if it's on.
|
||||||
|
ldh a, [rLCDC]
|
||||||
|
and LCDCF_ON
|
||||||
|
jr z, :+ ; Screen is already off.
|
||||||
|
wait_vram
|
||||||
|
xor a, a
|
||||||
|
ldh [rLCDC], a
|
||||||
|
|
||||||
|
; Load the gameplay tilemap.
|
||||||
|
: ld de, TitleScreenTilemap
|
||||||
|
ld hl, $9800
|
||||||
|
ld bc, TitleScreenTilemapEnd - TitleScreenTilemap
|
||||||
|
call UnsafeMemCopy
|
||||||
|
|
||||||
|
; Clear OAM.
|
||||||
|
call ClearOAM
|
||||||
|
call SetNumberSpritePositions
|
||||||
|
|
||||||
|
; Set up the palettes.
|
||||||
|
ld a, PALETTE_INVERTED
|
||||||
|
set_bg_palette
|
||||||
|
set_obj0_palette
|
||||||
|
set_obj1_palette
|
||||||
|
|
||||||
|
; Install the event loop handlers.
|
||||||
|
ld a, 0
|
||||||
|
ldh [hGameState], a
|
||||||
|
|
||||||
|
; And turn the LCD back on before we start.
|
||||||
|
ld a, LCDCF_ON | LCDCF_BGON | LCDCF_BLK01
|
||||||
|
ldh [rLCDC], a
|
||||||
|
|
||||||
|
; Make sure the first game loop starts just like all the future ones.
|
||||||
|
wait_vblank
|
||||||
|
wait_vblank_end
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
TitleEventLoopHandler::
|
||||||
|
ldh a, [hStartState]
|
||||||
|
ld b, a
|
||||||
|
ldh a, [hAState]
|
||||||
|
ld c, a
|
||||||
|
ldh a, [hBState]
|
||||||
|
or a, b
|
||||||
|
or a, c
|
||||||
|
jp z, EventLoopPostHandler
|
||||||
|
call SwitchToGameplay
|
||||||
|
jp EventLoopPostHandler
|
||||||
|
|
||||||
|
|
||||||
|
ENDC
|
|
@ -1,5 +1,5 @@
|
||||||
#Emulicious settings file
|
#Emulicious settings file
|
||||||
#Fri Oct 20 17:25:15 CEST 2023
|
#Fri Oct 20 18:08:57 CEST 2023
|
||||||
WindowProfilerWindowOpen=false
|
WindowProfilerWindowOpen=false
|
||||||
WindowEventViewerWindowHeight=1416
|
WindowEventViewerWindowHeight=1416
|
||||||
WindowEventViewerWindowDivider=876
|
WindowEventViewerWindowDivider=876
|
||||||
|
@ -7,7 +7,7 @@ WindowMemoryTracerWindowY=631
|
||||||
WindowMemoryTracerWindowX=383
|
WindowMemoryTracerWindowX=383
|
||||||
Update=2
|
Update=2
|
||||||
AudioSync=false
|
AudioSync=false
|
||||||
DebuggerMemoryTabVisibleRect=0,0,0,0
|
DebuggerMemoryTabVisibleRect=0,0,583,128
|
||||||
WindowProfilerWindowWidth=1073
|
WindowProfilerWindowWidth=1073
|
||||||
UninitializedMemoryBreakpointSuspend=true
|
UninitializedMemoryBreakpointSuspend=true
|
||||||
GameBoyErrorBreakpointEnabled32=false
|
GameBoyErrorBreakpointEnabled32=false
|
||||||
|
@ -22,7 +22,7 @@ GameBoyErrorBreakpointEnabled20=false
|
||||||
StretchToWindow=false
|
StretchToWindow=false
|
||||||
WindowProfilerWindowHeight=563
|
WindowProfilerWindowHeight=563
|
||||||
WindowTileViewerOpen=false
|
WindowTileViewerOpen=false
|
||||||
DebuggerWestPanelSelectedTab=0
|
DebuggerWestPanelSelectedTab=1
|
||||||
WindowMemoryTracerWindowWidth=1136
|
WindowMemoryTracerWindowWidth=1136
|
||||||
WindowPaletteViewerOpen=false
|
WindowPaletteViewerOpen=false
|
||||||
Key37=-1
|
Key37=-1
|
||||||
|
@ -35,7 +35,7 @@ GameBoyErrorBreakpointEnabled17=false
|
||||||
Key33=-1
|
Key33=-1
|
||||||
GameBoyErrorBreakpointEnabled16=false
|
GameBoyErrorBreakpointEnabled16=false
|
||||||
Key32=-1
|
Key32=-1
|
||||||
WindowDebuggerHeight=1896
|
WindowDebuggerHeight=1416
|
||||||
Key31=-1
|
Key31=-1
|
||||||
Key30=-1
|
Key30=-1
|
||||||
WindowMemoryTracerWindowHeight=289
|
WindowMemoryTracerWindowHeight=289
|
||||||
|
@ -75,7 +75,7 @@ WindowMemoryTracerWindowOpen=false
|
||||||
SMSInputDeviceB=1
|
SMSInputDeviceB=1
|
||||||
SMSInputDeviceA=1
|
SMSInputDeviceA=1
|
||||||
InterruptBreakpointEnabled=false
|
InterruptBreakpointEnabled=false
|
||||||
OutlineWidth=208
|
OutlineWidth=550
|
||||||
DebuggerEventFiltersGameBoy=
|
DebuggerEventFiltersGameBoy=
|
||||||
GameBoyErrorBreakpointSuspend9=true
|
GameBoyErrorBreakpointSuspend9=true
|
||||||
WindowMemoryEditorOpen=false
|
WindowMemoryEditorOpen=false
|
||||||
|
@ -92,7 +92,7 @@ GameBoyErrorBreakpointSuspend2=true
|
||||||
GameBoyErrorBreakpointSuspend1=true
|
GameBoyErrorBreakpointSuspend1=true
|
||||||
GameBoyErrorBreakpointSuspend0=true
|
GameBoyErrorBreakpointSuspend0=true
|
||||||
DebuggerConsoleLogBreakpoints=true
|
DebuggerConsoleLogBreakpoints=true
|
||||||
WindowDebuggerOpen=false
|
WindowDebuggerOpen=true
|
||||||
Gamepad1Key37=-1
|
Gamepad1Key37=-1
|
||||||
Gamepad1Key36=-1
|
Gamepad1Key36=-1
|
||||||
Gamepad1Key35=-1
|
Gamepad1Key35=-1
|
||||||
|
@ -104,8 +104,8 @@ Gamepad1Key31=-1
|
||||||
Gamepad1Key30=-1
|
Gamepad1Key30=-1
|
||||||
BankSwapAtPCBreakpointEnabled=false
|
BankSwapAtPCBreakpointEnabled=false
|
||||||
DebuggerMemorySelectedTab=HRAM
|
DebuggerMemorySelectedTab=HRAM
|
||||||
WindowVideoViewerOpen=false
|
WindowVideoViewerOpen=true
|
||||||
WindowMemoryEditorTabVisibleRect=0,0,583,128
|
WindowMemoryEditorTabVisibleRect=0,6096,583,384
|
||||||
Gamepad1Key29=-1
|
Gamepad1Key29=-1
|
||||||
Gamepad1Key28=-1
|
Gamepad1Key28=-1
|
||||||
Gamepad1Key27=-1
|
Gamepad1Key27=-1
|
||||||
|
@ -142,7 +142,7 @@ Gamepad1Key13=-1
|
||||||
Gamepad1Key12=-1
|
Gamepad1Key12=-1
|
||||||
Gamepad1Key11=-1
|
Gamepad1Key11=-1
|
||||||
Gamepad1Key10=-1
|
Gamepad1Key10=-1
|
||||||
WindowMemoryEditorSelectedAddress=37
|
WindowMemoryEditorSelectedAddress=6144
|
||||||
WindowMemoryEditorWidth=665
|
WindowMemoryEditorWidth=665
|
||||||
GameBoyErrorBreakpointCondition9=
|
GameBoyErrorBreakpointCondition9=
|
||||||
GameBoyErrorBreakpointCondition8=
|
GameBoyErrorBreakpointCondition8=
|
||||||
|
@ -161,13 +161,13 @@ Gamepad0Key35=-1
|
||||||
Gamepad0Key34=-1
|
Gamepad0Key34=-1
|
||||||
Gamepad0Key33=-1
|
Gamepad0Key33=-1
|
||||||
Gamepad0Key32=-1
|
Gamepad0Key32=-1
|
||||||
WindowMemoryEditorSelectedTab=HRAM
|
WindowMemoryEditorSelectedTab=VRAM
|
||||||
Gamepad0Key31=-1
|
Gamepad0Key31=-1
|
||||||
Gamepad0Key30=-1
|
Gamepad0Key30=-1
|
||||||
SMSGamepadAThreshold=50
|
SMSGamepadAThreshold=50
|
||||||
WindowPaletteViewerHeight=313
|
WindowPaletteViewerHeight=313
|
||||||
WindowVideoViewerY=674
|
WindowVideoViewerY=474
|
||||||
WindowVideoViewerX=2606
|
WindowVideoViewerX=2578
|
||||||
UninitializedMemoryBreakpointEnabled=false
|
UninitializedMemoryBreakpointEnabled=false
|
||||||
Gamepad0Key29=-1
|
Gamepad0Key29=-1
|
||||||
Gamepad0Key28=-1
|
Gamepad0Key28=-1
|
||||||
|
@ -179,13 +179,13 @@ Gamepad0Key23=-1
|
||||||
Gamepad0Key22=-1
|
Gamepad0Key22=-1
|
||||||
DebuggerHideToolbar=false
|
DebuggerHideToolbar=false
|
||||||
Gamepad0Key21=-1
|
Gamepad0Key21=-1
|
||||||
WindowDebuggerWidth=1096
|
WindowDebuggerWidth=2576
|
||||||
Gamepad0Key20=-1
|
Gamepad0Key20=-1
|
||||||
DebuggerSouthPanelSelectedTab=1
|
DebuggerSouthPanelSelectedTab=1
|
||||||
WindowEmuliciousWidth=816
|
WindowEmuliciousWidth=816
|
||||||
WindowVideoViewerWidth=980
|
WindowVideoViewerWidth=980
|
||||||
WindowMemoryEditorY=695
|
WindowMemoryEditorY=1009
|
||||||
WindowMemoryEditorX=243
|
WindowMemoryEditorX=2715
|
||||||
Gamepad0Key19=-1
|
Gamepad0Key19=-1
|
||||||
Gamepad0Key18=-1
|
Gamepad0Key18=-1
|
||||||
Gamepad0Key17=-1
|
Gamepad0Key17=-1
|
||||||
|
@ -197,7 +197,7 @@ FontSize=13
|
||||||
Gamepad0Key12=-1
|
Gamepad0Key12=-1
|
||||||
Gamepad0Key11=-1
|
Gamepad0Key11=-1
|
||||||
Gamepad0Key10=-1
|
Gamepad0Key10=-1
|
||||||
StackWidth=685
|
StackWidth=2165
|
||||||
BankSwapAtPCBreakpointSuspend=true
|
BankSwapAtPCBreakpointSuspend=true
|
||||||
WindowEmuliciousHeight=781
|
WindowEmuliciousHeight=781
|
||||||
WindowSpriteViewerHeight=527
|
WindowSpriteViewerHeight=527
|
||||||
|
@ -205,8 +205,8 @@ GameBoyErrorBreakpointMessage32=
|
||||||
InterruptBreakpointCondition=
|
InterruptBreakpointCondition=
|
||||||
Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb
|
Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb
|
||||||
GameBoyErrorBreakpointMessage20=
|
GameBoyErrorBreakpointMessage20=
|
||||||
WindowEmuliciousY=367
|
WindowEmuliciousY=445
|
||||||
WindowEmuliciousX=982
|
WindowEmuliciousX=1412
|
||||||
GameBoyErrorBreakpointEnabled9=false
|
GameBoyErrorBreakpointEnabled9=false
|
||||||
GameBoyErrorBreakpointEnabled8=false
|
GameBoyErrorBreakpointEnabled8=false
|
||||||
GameBoyErrorBreakpointEnabled7=false
|
GameBoyErrorBreakpointEnabled7=false
|
||||||
|
@ -271,7 +271,7 @@ Gamepad0Key2=-1
|
||||||
Gamepad0Key1=-1
|
Gamepad0Key1=-1
|
||||||
Gamepad0Key0=-1
|
Gamepad0Key0=-1
|
||||||
WindowDebuggerY=-8
|
WindowDebuggerY=-8
|
||||||
WindowDebuggerX=2552
|
WindowDebuggerX=-8
|
||||||
InterruptBreakpointSuspend=true
|
InterruptBreakpointSuspend=true
|
||||||
SMSGamepadAKeyboard=false
|
SMSGamepadAKeyboard=false
|
||||||
GameBoyErrorBreakpointSuspend32=true
|
GameBoyErrorBreakpointSuspend32=true
|
||||||
|
@ -282,12 +282,12 @@ WindowEventViewerWindowWidth=2576
|
||||||
WindowRAMWatchWindowOpen=false
|
WindowRAMWatchWindowOpen=false
|
||||||
BankSwapAtPCBreakpointCondition=
|
BankSwapAtPCBreakpointCondition=
|
||||||
GameBoyErrorBreakpointSuspend20=true
|
GameBoyErrorBreakpointSuspend20=true
|
||||||
SouthPanelHeight=1544
|
SouthPanelHeight=1064
|
||||||
SMSbuttonsKeyboard=false
|
SMSbuttonsKeyboard=false
|
||||||
StackSplitLocation=774
|
StackSplitLocation=534
|
||||||
WindowMemoryEditorHeight=534
|
WindowMemoryEditorHeight=534
|
||||||
WindowTilemapViewerWidth=404
|
|
||||||
GBGamepadKeyboard=false
|
GBGamepadKeyboard=false
|
||||||
|
WindowTilemapViewerWidth=404
|
||||||
UninitializedMemoryBreakpointCondition=
|
UninitializedMemoryBreakpointCondition=
|
||||||
GameBoyErrorBreakpointSuspend19=true
|
GameBoyErrorBreakpointSuspend19=true
|
||||||
GameBoyErrorBreakpointSuspend18=true
|
GameBoyErrorBreakpointSuspend18=true
|
||||||
|
@ -299,5 +299,5 @@ WindowSpriteViewerOpen=false
|
||||||
WindowProfilerWindowY=639
|
WindowProfilerWindowY=639
|
||||||
WindowProfilerWindowX=461
|
WindowProfilerWindowX=461
|
||||||
Scale=5.0
|
Scale=5.0
|
||||||
KeyboardRequireWindowFocus=true
|
|
||||||
WindowProfilerWindowProcedureProfiler=true
|
WindowProfilerWindowProcedureProfiler=true
|
||||||
|
KeyboardRequireWindowFocus=true
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
type=instruction address=gameOverMode%20+%2079 end=gameOverMode%20+%2081 enabled=true suspend=true condition= message=
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue