Jump to content
  • entries
    40
  • comments
    39
  • views
    28,036

progress (such as it is)

Sign in to follow this  
brpocock

333 views

In case anyone's watching ...

 

Re-introduced colour code and came up with some nice optimizations based on the "tiledraw.o" test. The current test kernel in that series, "tiledraw3.o" is coming along.

 

One annoyance? branches in the P0 draw routine taking a hit for the carry in PC (i.e. crossing a page boundary) may require some of my sleep nop's to be replaced with page alignment spacers. Keeping that working will be sheer Hell.

 

Theory: if I need to add some bytes but not cycles to get alignment without changing timing, pad out a few nop's but do a "guaranteed branch" over it, probably by doing something like

	bit rows_left; guaranteed to have high bit clear
	bvc .skip_align
	nop
	nop
	nop
	nop
	nop
	nop
.skip_align:;

 

The Hell will be keeping the page alignments and cycle counts both correct. Thank God I'm doing this in M4 and can easily re-sort which scanlines in each row things are going to happen.

 

For your entertainment, here's the latest build's echo outputs on RAM/ROM usage...

player_data_start
$80
player_transient data length
$3
player_data_end
$99
player_persist data length
$17
total player data length
$1a
linkage_data_start
$9a
linkage_data_ends
$a1
linkage_data length
$8
sounds (6B) at
$a2
tiledraw_data_start
$a9
tiledraw player data
$a9
tiledraw decorations data
$b0
tiledraw boards data
$b6
tiledraw rows data
$bb
tile data and prefetches
$be
tile bitmaps alternating buffers
$c6
tempvars (may be eliminated in production!)
$ce
reserved stack space for row data pre-pushes
$cf
tiledraw_data_end
$ee
tiledraw data length
$46
End of RAM allocations
$ee
Total RAM used
$6f
Free RAM for stack
$11
ROM bank 0 begins
$f000
Setup begins
$f026
Frame draw begins (with VSYNC)
$f03a
vertical sync space preamble ends
$f043
beginning game animation and input
$f043
Prepare to draw rows
$f261
end of game logic
$f26d
length of main loop
$22a
Row drawing begins
$f282
Straight-ahead drawing ends
$f6ca
length of unrolled drawing
$448
End of kernel
$f6de
end of bank 0 code
$f6de
length of bank 0 code
$6de
Start of bank 0 data
$f800
Start of lookup tables area
$f800
End of lookup tables area
$f829
Lookup tables' length
$29
Start of bitmaps area
$f829
player_art
$f829
end of player art
$f865
decorations
$f900
end of decorations
$f919
tile bitmaps
$f919
reversed tile bitmaps (PF1/left, PF2/right)
$f941
end of tile bitmaps
$f969
number of tile bitmaps
$5
verifying bitmap ROM usage:
$5
OK, computes
end of bitmaps data
$f969
length of bitmaps data
$140
start of maps data
$fa00
end of maps data
$fa81
length of maps data
$81
end of bank 0 data
$fa81
length of data
$281
 *** Appendix Area: *** 
 The appendix area ends at:	
$ff15
 The length of the appendix area is:
$15

 

The appendix area is the bank-switching code that's dummied-out in this build, it normally will end at $ffee when using the final EF bankswitching.

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...