Changes

Programming:CPC Plus Hardware Sprites

2,695 bytes added, 12:04, 2 February 2014
== [[ASIC]] memory addresses for HW Sprites (in HEX) ==
 
''' HW Sprite addresses: '''
Each sprite takes 16x16=256 (#100) bytes in ASIC memory
;#4000 - Sprite 0
;#4100 - Sprite 1
;#4200 - Sprite 2
;#4300 - Sprite 3
;#4400 - Sprite 4
;#4500 - Sprite 5
;#4600 - Sprite 6
;#4700 - Sprite 7
;#4800 - Sprite 8
;#4900 - Sprite 9
;#4A00 - Sprite #0A (10)
;#4B00 - Sprite #0B (11)
;#4C00 - Sprite #0C (12)
;#4D00 - Sprite #0D (13)
;#4E00 - Sprite #0E (14)
;#4F00 - Sprite #0F (15)
 
'''HW Sprite colours:'''
Each sprite has its own colours (up to 4096), so 2 bytes are required for each colour.
;#6422 - Sprite Color Pen 1
;#6424 - Sprite Color Pen 2
;#6426 - Sprite Color Pen 3
;#6428 - Sprite Color Pen 4
;#642a - Sprite Color Pen 5
;#642c - Sprite Color Pen 6
;#642e - Sprite Color Pen 7
;#6430 - Sprite Color Pen 8
;#6432 - Sprite Color Pen 9
;#6434 - Sprite Color Pen 10
;#6436 - Sprite Color Pen 11
;#6438 - Sprite Color Pen 12
;#643a - Sprite Color Pen 13
;#643c - Sprite Color Pen 14
;#643e - Sprite Color Pen 15
 
'''HW Sprite position x,y'''
;#6000 - Spr 0 Pos X
;#6002 - Spr 0 Pos Y
;#6008 - Spr 1 Pos X
;#600a - Spr 1 Pos Y
;#6010 - Spr 2 Pos X
;#6012 - Spr 2 Pos Y
;#6018 - Spr 3 Pos X
;#601a - Spr 3 Pos Y
;#6020 - Spr 4 Pos X
;#6022 - Spr 4 Pos Y
;#6028 - Spr 5 Pos X
;#602a - Spr 5 Pos Y
;#6030 - Spr 6 Pos X
;#6032 - Spr 6 Pos Y
;#6038 - Spr 7 Pos X
;#603A - Spr 7 Pos Y
;#6040 - Spr 8 Pos X
;#6042 - Spr 8 Pos Y
;#6048 - Spr 9 Pos X
;#604a - Spr 9 Pos Y
;#6050 - Spr 10 Pos X
;#6052 - Spr 10 Pos Y
;#6058 - Spr 11 Pos X
;#605a - Spr 11 Pos Y
;#6060 - Spr 12 Pos X
;#6062 - Spr 12 Pos Y
;#6068 - Spr 13 Pos X
;#606a - Spr 13 Pos Y
;#6070 - Spr 14 pos X
;#6072 - Spr 14 Pos Y
;#6078 - Spr 15 Pos X
;#607a - Spr 15 Pos Y
 
'''HW Sprite resolution:'''
You can select sprite magnification x1, x2 or x4.
#value 00 => Sprite not visible
#value 01 => Sprite resolution 640 (magnify x1 - mode 2)
#value 10 => Sprite resolution 320 (magnify x2 - mode 1)
#value 11 => Sprite resolution 160 (magnify x4 - mode 0)
;#6004 - Sprite 0 resolution
;#600c - Sprite 1 resolution
;#6014 - Sprite 2 resolution
;#601c - Sprite 3 resolution
;#6024 - Sprite 4 resolution
;#602c - Sprite 5 resolution
;#6034 - Sprite 6 resolution
;#603c - Sprite 7 resolution
;#6044 - Sprite 8 resolution
;#604c - Sprite 9 resolution
;#6054 - Sprite 10 resolution
;#605c - Sprite 11 resolution
;#6064 - Sprite 12 resolution
;#606c - Sprite 13 resolution
;#6074 - Sprite 14 resolution
;#607c - Sprite 15 resolution
 
== Coding example ==
 
From the '''The Unofficial Amstrad WWW Resource'''
 
<pre>
;; This example shows a CPC+ hardware sprite.
defb &ff,&00,&ff,&77,&b3,&51,&a8,&d4,&62,&39,&9c,&46,&2b,&15,&8a,&cd,&ee
</pre>
 
==See Also==
*[[Amstrad CPC plus sprite format]]
*[[Sprites Multiplexing]]
 
[[Category:CPC Plus]]
[[Category:Programming]]
2,912
edits