*The Spectrum's video ram takes approx 6K. The Amstrad's video ram takes 16K (approx 12K when screen is reduced).
*The Spectrum 48k can't do double buffering in hardware, the Amstrad can. (To fix this problem on The Spectrum they stored a bitmap in ram which they drew to, and then wrote changes to the screen)128K can do double buffering. On the Amstrad and Spectrum 128K you can use hardware double buffering, but then you need to sacrific twice as much video ram (e.g. For Amstrad: 2 x 16K).
*The Spectrum has a fixed palette of 15 colours (8 colours with bright versions of each making 15 in total - LIGHT black is still black). Amstrad has a palette of 27 colours. In mode 0 you can choose 16 of these, in mode 1 you can choose 4 of these, in mode 2 you can choose 2 of these.
This then means that the graphics with a lower priority then takes on the colour of the higher priority graphics.
If a sprite's colours takes priority, and it moves with pixel by pixel movement, as soon as it enters a new cell, the background will take on it's colours. The colour clash seems to extend furthur than the sprite. This is down to the 8x8 cell colouring.
What they should do for CPC:
* Recolour the graphics appropiately for the CPC in either mode 1 or mode 0.
* Use the Amstrad interrupts and change the colours multiple times each frame, this will given each region it's own colours increasing the number of colours on screen. Ideal Note that the colours must be set for each region for each frame to maintain them, and that the pixels within each region are still limited to 4 colours in mode 1. The colour regions like this are ideal for HUDs. Note than any sprites or graphics that move over the transition any two regions will change colourhave pixels with colours from both regions, changing where the regions meet.
====Sound====
Sound written for the Spectrum can't be ported directly because it would be out of tune, this There is down to the difference in master clock given to the AY (1.7Mhz sound source on Spectrum48K spectrums: it's beeper, 1.0Mhz and 2 sources of sound on Amstrad). The music would need to be altered128K spectrums: beeper and AY.
Beeper sound is simple. The spectrum has a speaker which you can turn on/off through a I/O port on the Spectrum's ULA. To make different sounds, you turn it on and off at different rates, all under control of the CPU. Speaker sound is CPU intenstive because the timing is all done through the CPU and delay loops. The consequence on the Spectrum is that not many games have beeper music during the game, and those that do are staccato like (e.g. Manic Miner). If the sound was made for the Spectrum 48K beeper, then this would need to be convertedto AY sound for the CPC, the result would not be exactly the same. Sound written for the AY in the Spectrum can't be ported directly because it would be out of tune, this is down to the difference in master clock given to the AY (1.7Mhz on Spectrum, 1.0Mhz on Amstrad). The music would need to be altered. When this is done, the music is almost the same. It is worth noting that mostly the 128K version of Spectrum games had AY tunes, because the 128K model of the Spectrum is when the AY was introduced. Consequences for porting to CPC:* No sound (if beeper only sound and it's not translated)* Sound out of tune on CPC (if AY sound without some conversion)* Sound is beeper like and staccato when it could be AY "native"
What they should do for the CPC: