2017-11-24 19:40:50 +00:00
|
|
|
Original implementation:
|
|
|
|
Multiplying 1.0 * 2.0 = 2.0, took 707 cycles
|
|
|
|
Multiplying ff.ff * ff.ff = 0.0, took 761 cycles
|
|
|
|
|
|
|
|
Cycles: flying= 162
|
|
|
|
Cycles: getkey= 46
|
|
|
|
Cycles: page_flip= 26
|
|
|
|
Cycles: multiply= 88,179
|
|
|
|
Cycles: mode7= 76,077
|
|
|
|
Cycles: lookup_map= 33,920
|
|
|
|
Cycles: put_sprite= 2,561
|
|
|
|
==================================
|
|
|
|
Total = 200,971
|
|
|
|
Frame Rate = 4.98 fps
|
|
|
|
|
|
|
|
Update Multiply to use zero page addresses:
|
|
|
|
Multiplying 1.0 * 2.0 = 2.0, took 616 cycles
|
|
|
|
Multiplying ff.ff * ff.ff = 0.0, took 664 cycles
|
|
|
|
|
|
|
|
Cycles: flying= 162
|
|
|
|
Cycles: getkey= 46
|
|
|
|
Cycles: page_flip= 26
|
|
|
|
Cycles: multiply= 76,561
|
|
|
|
Cycles: mode7= 76,077
|
|
|
|
Cycles: lookup_map= 33,920
|
|
|
|
Cycles: put_sprite= 2,561
|
|
|
|
===================================
|
|
|
|
Total = 189,353
|
|
|
|
Frame Rate = 5.28 fps
|
|
|
|
|
2017-11-25 06:30:22 +00:00
|
|
|
Update to use "fast multiply" w 2kB squares table lookup:
|
|
|
|
Multiplying 1.0 * 2.0 = 2.0, took 228 cycles
|
|
|
|
Multiplying ff.ff * ff.ff = 0.0, took 272 cycles
|
2017-11-24 19:40:50 +00:00
|
|
|
|
2017-11-25 06:30:22 +00:00
|
|
|
Cycles: flying= 162
|
|
|
|
Cycles: getkey= 46
|
|
|
|
Cycles: page_flip= 26
|
|
|
|
Cycles: multiply= 27,041
|
|
|
|
Cycles: mode7= 76,077
|
|
|
|
Cycles: lookup_map= 33,920
|
|
|
|
Cycles: put_sprite= 2,561
|
|
|
|
=================================
|
|
|
|
Total = 139,833
|
|
|
|
Frame Rate = 7.15 fps
|