Changes

Speccy Port

1,379 bytes added, 08:27, 27 April 2011
/* Machine comparisons */
* The Amstrad had connections for printer, stereo sound output and expansion. It had an internal speaker, with volume control. The Spectrum 48K had connections for tape player, TV aerial and expansion. It had an internal piezo electric buzzer, the volume of which couldn't be controlled.
* The Amstrad could control the cassette motor, turning it on and off under software control to pause loading of software. The Spectrum didn't have this, you had to manually stop and play the tape.
 
NOTE: The Spectrum was acquired by Amstrad after the Spectrum 128K had been made. Amstrad then improved the build quality and enhanced it. The result was that the Spectrum +2, was closer in looks and build to the CPC464. The Spectrum +3 was similar to the Amstrad CPC6128 because both had a internal 3" drive. The overall hardware of the Spectrum didn't change, the graphics was the same, the sound was the same, but the later Spectrum's had built in joysticks, built in cassette or disc, connections for printer etc, all which the Amstrad had starting with the CPC464.
[[image:CPC_Speccy_palette_comparison.png|Comparison of the palettes ]]
From the comparison you can see that the Amstrad can reproduce the Spectrum's colours closelywell, and then you can see with it's additional colours it can provide extra shades and some colours the Spectrum can't show (e.g. orange).
Consequences for porting to CPC:
====Graphics====
   Graphics with transparency: The Spectrum graphics take less RAM are 2 colours, in order to use both colours for shading and to have transparency, a mask must be used. The mask is used to remove or to retain pixels on the Spectrum compared screen. The sprite pixels are then merged with the screen to produce the CPCfinal result. This means  A common way to do this is to store 1 byte of mask, followed by 1 byte of pixel data, and to repeat this for the memory footprint width of the game sprite. If we consider a sprite which is 16x16. Each byte contains 8 pixels. 2 bytes would be needed for pixel data and 2 bytes for mask. The total storage space required would be (2+2)*8 = 32 bytes. Now, if the same representation was used on the Amstrad, and mode 1 was used, the Amstrad would need 2 times the ram space to store the data, because in mode 1 there is half the number of pixels per byte.So, each byte contains 4 pixels. 4 bytes would be needed for pixel data and 4 for mask: (4+4)*8 = 64 bytes. However, if we sacrific 1 colour, so we have 1 pen for transparency and 3 for sprite colours, then we don't need the mask. The mask is common for all sprites. We still need 4 bytes for the pixel data but the result now is: 4*8 = 32 bytes. The same as the Spectrum. Therefore, depending on the representation, this would determine how much ram is larger consumed on the CPCAmstrad.
====Original consequences (under construction)====
2,541
edits