vblank performance

This commit is contained in:
Randy Thiemann 2023-10-18 05:26:06 +02:00
parent 6b644665cf
commit 80a075e137
3 changed files with 30 additions and 43 deletions

View File

@ -1,19 +0,0 @@
# Tile layout
Note: All tiles are 8x7 so that the entire tetrion fits on the screen.
Tile 0, 1 are all black and all white for lockflash and such.
Tiles 2, 3, 4, 5, 6 are the edges of the tetrion.
Tile 7 is the background of the tetrion.
Tile 8 is a horizontal line for the level state
Tile 9 is a pointer
Tiles 10, 11, 12, 13, 14, 15, 16 are IZSJLOT in their falling state.
Tiles 17, 18, 19, 20, 21, 22, 23 are IZSJLOT in their locked state.
Tiles 24, 25, 26, 27, 28, 29, 30 are IZSJLOT in their locking state 1.
Tiles 31, 32, 33, 34, 35, 36, 37 are IZSJLOT in their locking state 2.
Tiles 38, 39, 40, 41, 42, 43, 44 are IZSJLOT in their locking state 3.
Tiles 45, 46, 47, 48, 49, 50, 51 are IZSJLOT in their locking state 4.
Tiles 52, 53, 54, 55, 56, 57, 58 are IZSJLOT in their locking state 5.
Tiles 59, 60, 61, 62, 63, 64, 65 are IZSJLOT in their locking state 6.
Tiles 66-73 are for section drawing
Tiles 74-109 are the font, dark.
Tiles 110-119 are the numbers, light.
Tiles 120-127 -----------------------------------------------

View File

@ -32,7 +32,7 @@ BlitField::
; Where to put it ; Where to put it
ld hl, FIELD_TOP_LEFT ld hl, FIELD_TOP_LEFT
; How much to increment hl after each row ; How much to increment hl after each row
ld bc, 32 ld bc, 32-10
; The first 14 rows can be blitted without checking for vram access. ; The first 14 rows can be blitted without checking for vram access.
REPT 14 REPT 14
@ -44,23 +44,29 @@ BlitField::
add hl, bc add hl, bc
ENDR ENDR
: ldh a, [rLY]
cp a, 0
jr nz, :-
; The last 6 rows need some care. ; The last 6 rows need some care.
REPT 6 REPT 6
REPT 2 ; Wait until start of drawing, then insert 35 nops.
: ldh a, [rSTAT] : ldh a, [rSTAT]
and STATF_LCD and a, 3
cp STATF_HBL cp a, 3
jr z, :-
: ldh a, [rSTAT]
and STATF_LCD
cp STATF_HBL
jr nz, :- jr nz, :-
REPT 5 REPT 35
nop
ENDR
; Blit a line.
REPT 10
ld a, [de] ld a, [de]
ld [hl+], a ld [hl+], a
inc de inc de
ENDR ENDR
ENDR
; Increment HL so that the next line can be blitted.
add hl, bc add hl, bc
ENDR ENDR

View File

@ -1,5 +1,5 @@
#Emulicious settings file #Emulicious settings file
#Wed Oct 18 04:45:41 CEST 2023 #Wed Oct 18 05:24:23 CEST 2023
WindowEventViewerWindowHeight=1416 WindowEventViewerWindowHeight=1416
WindowEventViewerWindowDivider=876 WindowEventViewerWindowDivider=876
WindowMemoryTracerWindowY=631 WindowMemoryTracerWindowY=631
@ -16,7 +16,7 @@ GBGamepadThreshold=50
GameBoyErrorBreakpointEnabled20=false GameBoyErrorBreakpointEnabled20=false
StretchToWindow=false StretchToWindow=false
WindowTileViewerOpen=false WindowTileViewerOpen=false
DebuggerWestPanelSelectedTab=1 DebuggerWestPanelSelectedTab=0
WindowMemoryTracerWindowWidth=243 WindowMemoryTracerWindowWidth=243
WindowPaletteViewerOpen=false WindowPaletteViewerOpen=false
Key37=-1 Key37=-1
@ -98,7 +98,7 @@ 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,0,583,128
Gamepad1Key29=-1 Gamepad1Key29=-1
Gamepad1Key28=-1 Gamepad1Key28=-1
@ -160,8 +160,8 @@ Gamepad0Key31=-1
Gamepad0Key30=-1 Gamepad0Key30=-1
SMSGamepadAThreshold=50 SMSGamepadAThreshold=50
WindowPaletteViewerHeight=313 WindowPaletteViewerHeight=313
WindowVideoViewerY=275 WindowVideoViewerY=674
WindowVideoViewerX=946 WindowVideoViewerX=2606
UninitializedMemoryBreakpointEnabled=false UninitializedMemoryBreakpointEnabled=false
Gamepad0Key29=-1 Gamepad0Key29=-1
Gamepad0Key28=-1 Gamepad0Key28=-1
@ -199,8 +199,8 @@ GameBoyErrorBreakpointMessage32=
InterruptBreakpointCondition= InterruptBreakpointCondition=
Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb Recent0=C\:\\workspace\\dmgtris\\bin\\out.gb
GameBoyErrorBreakpointMessage20= GameBoyErrorBreakpointMessage20=
WindowEmuliciousY=322 WindowEmuliciousY=443
WindowEmuliciousX=900 WindowEmuliciousX=1109
GameBoyErrorBreakpointEnabled9=false GameBoyErrorBreakpointEnabled9=false
GameBoyErrorBreakpointEnabled8=false GameBoyErrorBreakpointEnabled8=false
GameBoyErrorBreakpointEnabled7=false GameBoyErrorBreakpointEnabled7=false
@ -264,8 +264,8 @@ Gamepad0Key3=-1
Gamepad0Key2=-1 Gamepad0Key2=-1
Gamepad0Key1=-1 Gamepad0Key1=-1
Gamepad0Key0=-1 Gamepad0Key0=-1
WindowDebuggerY=388 WindowDebuggerY=350
WindowDebuggerX=417 WindowDebuggerX=935
InterruptBreakpointSuspend=true InterruptBreakpointSuspend=true
SMSGamepadAKeyboard=false SMSGamepadAKeyboard=false
GameBoyErrorBreakpointSuspend32=true GameBoyErrorBreakpointSuspend32=true