Changes

Jump to: navigation, search

Speccy Port

1,466 bytes removed, 20:27, 29 April 2011
/* Video */
*Spectrum and Amstrad both have a '''bitmapped''' display.
*'''They have a similar screen size.''' But '''Amstrad CPC''' actually produce produces smaller pixels in it's "equivalent" Video Mode, as for the approximately same area the video mode (mode 1). The normal display resolution on the Amstrad CPC is '''320x200''' (mode 1) while '''ZX Spectrum''' produces "only" '''256x192''' pixels. Amstrad's screen can be reduced in size to match the Spectrum's (256x192, in Mode1) but then the actual display wondow window is quite smaller as on a spectrum, with and has a large Border larger border because the pixels have a constant sizeare slightly smaller.
*The size and aspect of the pixels in the Spectrum's bitmapped display are comparable to the pixels in Amstrad's mode 1 bitmapped display in that both produce approximately square pixels.
*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).
*'''The Amstrad CPC''' has a '''palette of 27 colours.''' And 3 different [[Video modesModes]]. In Normal sizes are 320x200 for mode 0 you can choose 16 of these1, in 160x200 for mode 1 you can choose 4 of these0, in and 640x200 for mode 2 you can choose 2 of these. The Amstrad's palette includes equivalent colours that match closely the Spectrum's coloursonly has 1 video mode, 256x192.
*The Spectrum's screen is "attribute" based. Each 8x8 cell can be assigned ''Amstrad CPC''' has a background and foreground colour (and both '''palette of 27 colours must either be non-bright or bright). There is also the choice to flash the colours ''' In mode 0 you can choose 16 of these, in each cell (mode 1 you can choose 4 of these, in mode 2 you can choose 2 of these. The Amstrad's palette includes equivalent colours that match closely the flash is a fixed rate and alternates between paper/pen and pen/paper)Spectrum's colours.
*The Spectrum's screen is "attribute" based. Each 8x8 cell can be assigned a background and foreground colour (and both colours must either be non-bright or bright). There is also the choice to flash the colours in each cell (the flash is a fixed rate and alternates between paper/pen and pen/paper). This colouring results in "attribute/colour clash" on the Spectrum. The Amstrad's screen doesn't have this, and there is no restriction on how the colours can be placed.
* The colours of each 8x8 "attribute" cell is defined by a block of ram following the Spectrum's bitmapped screen, each byte represents one cell and each byte defines paper colour, pen colour, flash enabled and bright enabled. The colours for the pens on the Amstrad are defined by writing to the Gate-Array's palette I/O registers. The pens are read from the pixel data and the resulting colour is looked up in the palette registers.
*The '''Spectrum''' can display all '''15 colours on the screen.''' Yet with the Attributes limitation . With limitations (2 colours per 8x8pix squares...)
*The Amstrad can only do reproduce the Spectrums colours the same as in mode 0, but this has wider pixels (approx 2x1 ratio). If the CPC's mode 1 resolution is chosen, it is not possible because only 4 colours can be chosen.
Anyway some * On the Amstrad the 6 raster interrupt tecniques enable interrupts allow palette colours to mix (with horizontal limits) different modes or even to change the palette so be changed allowing more than the theoricall inks number can be displayed on the full screentheorical amount but this is also with limitations.  Such way This technique was actually often commonly used in many Speccy ports.  While the screen displays 6 colours, the actual games window is still monocolour (2 colours... generally Black+one other ink...) or "almost monocolour (only background being monocolour and sprites having 3 inks... or some inks different from background's tiles...) typical examples are Strider (monocolour tiles and 3 inked sprrites), SuperWonderboy (Monocolour Background and monocolour sprites yet differently inked), PacMania or Black Tiger (monocolour game's window/playfield yet multicoloured HUD...) and so on (see later in this page for more examples).
*Normally Spectrum graphics is stored in 2 colours, which means 8 pixels for each byte. In Amstrad mode 1, each byte defines 4 pixels. So for the same graphics you often need twice the RAM on the Amstrad. (This is a case where graphics without transparency are used). If transparency is used, then the amount of data can be the same.
 
Yet the common mask tecnique for sprites implies that another set of 1bpp sprites is needed for each sprites... totaling 2bpp (bit per pixels...) Amstrad could actually use one ink (colour) to mask sprites, hence the mundane 2bpp mode1 could getSprites masks with almost no extra DATA in RAM (just a few extra routines...).
 
Full masked games on Spectrum then have the same weight as Amstrad games concerning masked Graphical Data (often the case in monocoloured games or isometric games...)
 
As a result, games like Head over Heals or HeroQuest (isometric) or Shadow of the beast (2D but masked sprites, and parralax scrolling meaning even some masked background tiles...) could easily get the proper recode of Sprites/Tiles in 2bpp for close to no extra RAM used by DATAs..
 
Anyway due to "lazyness", some speccy Ported games still use 1bpp masks on CPC (the same as on speccy...) becauyse such ports had to be done in less than 2-3 weeks by a lone coder with no Grapician extras...
* The Amstrad's screen size and position can be reprogrammed, the Spectrum's screen size and position is fixed. It is possible to program the Amstrad's screen to use the entire monitor display area (at the expensive of approx. 22K of video ram being used).
2,541
edits