chiptune: update timings

This commit is contained in:
Vince Weaver 2018-03-11 00:46:16 -05:00
parent 5dcf33ec03
commit 4bb387fac5
2 changed files with 9 additions and 10 deletions

View File

@ -463,21 +463,21 @@ lzma/diff: 7257 bytes
Timing: Interrupt Timing / AY write latency:
======= ====================================
Originally roughly 1500 cycles from start of interrupt Originally roughly 1500 cycles from start of interrupt
to all registers being written. to all AY registers being written.
1500 1500
Moved clock to after, near the visualization stuff, more like Moved clock to after, near the visualization stuff, more like
1378 = 13+ (105*13) 1378 = 13+ (105*13)
Moved to load frame data at end of IRQ instead of begin Load frame data for next time at end of IRQ, instead of begin
1029 = 13+2+(78*13) 1029 = 13+2+(78*13)
Moved to load frame data at end of IRQ instead of begin Inlined the mockingboard write routine
873 = 13+2+(66*13) 873 = 13+2+(66*13)
Only write registers than change. Added 6 per loop Only write registers that change. Added 6 cycles per loop
951 worst case 951 worst case = 13+2+(10+5+50+7)*13
299 if only one reg changed = 13+2+(18*13)+50 304 if only one reg changed = 13+2+(18*13)+55

View File

@ -50,7 +50,7 @@ mb_write_frame:
mb_write_loop: mb_write_loop:
lda REGISTER_DUMP,X ; load register value ; 4 lda REGISTER_DUMP,X ; load register value ; 4
cmp REGISTER_OLD,X ; compare with old values ; 4 cmp REGISTER_OLD,X ; compare with old values ; 4
beq mb_no_write ; 2/3nt beq mb_no_write ; 3/2nt
;============= ;=============
; typ 11 ; typ 11
@ -66,7 +66,6 @@ mb_write_loop:
mb_not_13: mb_not_13:
sta MB_VALUE ; 3 sta MB_VALUE ; 3
; inlined "write_ay_both" to save 12 cycles ; inlined "write_ay_both" to save 12 cycles
; address ; address