Difference between revisions of "Speccy Port"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
m (Rasters)
(Technics used)
Line 252: Line 252:
  
 
=Technics used=
 
=Technics used=
 +
 +
===Mode1 and screen dimensions===
 +
 +
The use of Mode1 enabled the CPC to keeps the same graphics as Spectrum, in appearance only.
 +
 +
While the square pixels looks almost the same, the code was completely different BTW.
 +
 +
Also CPC being set for a 320x200 display instead of a 256x192 display, the pixels are in fact smaller on screen, hence a bigger border...
 +
 +
Biased argue is to say that the CPC resolution is therefore inferior to spectrum's one, because there is a large border on CPC  while ZX Spectrum displays a smaller border.
 +
 +
The amount of pixels is exactly the same, and this looks even more detailed and finer on CPC.
 +
 +
 +
While some Spanish companies reduced the screen in order to get the game betterly running in low-specs 464... the infamous speccyports just ran a reduced screen so the ZX Spectrum's codes and graphics could run almost "unchanged".
  
 
===Real-Time Convertion of 1bpp graphics===
 
===Real-Time Convertion of 1bpp graphics===
  
A common way to get the Speccy game running on a CPC was to get some routine to convert the existing 1bpp GraphicDatas (Tiles and sprites in equivalent to Mode2 on CPC) into 2bpp datas (proper Mode1) when put into the video RAM.
+
Here is the real grief.
 +
 
 +
A common way to get the Speccy game running on a CPC was to get some routine to convert the existing and already coded 1bpp Speccy's Graphic Datas (Tiles and sprites... in equivalent to Mode2 on CPC) into 2bpp datas (proper Mode1) when put into the video RAM.
  
 
Needless to say, this enabled to use no additionnal graph artist (a costly man at the time) to redrawn the Graphic Datas...
 
Needless to say, this enabled to use no additionnal graph artist (a costly man at the time) to redrawn the Graphic Datas...

Revision as of 03:18, 14 April 2011

A Speccy Port or Spectrum port is the name given to a game which has been converted directly from the Sinclair Spectrum with little or no changes to the Amstrad CPC. Often the Amstrad version ended up fairing worse than the original Spectrum version (though some games actually ended up pretty decent).


Why ?

The ZX Spectrum shared the same CPU as the Amstrad and had a simple graphics display. The Spectrum was very popular with the Amstrad having a much smaller market share.

To save on time and money, the Spectrum code was re-used.

The Amstrad screen was reduced in size to match the Spectrum's and often most of the colour was removed. Most spectrum ports were done in Video Mode 1 (4 colour mode), because the resolution of this mode matched the resolution of the Spectrum, and this allowed the use of the same graphics.

Speccy ports were also seen on the MSX and Enterprise.

Most of them got their graphic totally unchanged, displaying some kind of colour attributes "artefacts", proof of the faulty portage.

A typical Spectrum port to the Amstrad is said to have been done in 3 days.

Games Cross development

Serious games companies often released their games on multiple Games Platforms (Computers or Consoles).

Many aimed mostly at their home market, as their presence in Europe and overseas markets wasn't well established at the time, leading to different priorities:

As British Market was dominated by Speccy, the CPC had to deal with more Speccy ports than needed. But in a country such as France or Spain where the CPC was the dominant 8-bit machine, developpers used different method.

Often an Atari ST was used for Cross Development in France.

More info at Games Crossdev.

Consequences

The Amstrad CPC was one of the best 8-bit computers of his time in term of graphical capabilities. But this had a price...well, a weight in term of CPU ressources. As so many games were ported from the "inferior" Spectrum, the Amstrad range could hardly benefit from its main advantage.

Quite disapointing, when you are the happy possessor of a "powerful" Amstrad CPC 6128...with a fast disc drive and 2x64KB of Ram, a good colour palette of 27 shades... to get a games designed for a cassette 48KB almost mono-colour computer, and not that compatible in fact...

As a result, so many games were slower, painfully animated, with a bad gameplay... AND had badly ported graphics too.

  • C64 had better sounds, scrollings and sprites capabilities.
  • Spectrum had less power taken by Video RAM, so could handle animation or scrolling more easily, with less need to precisely program with exceptional care.

Amstrad had to be specifically programmed in order to get good animations. Yet Speccy ports weren't re-programmed in such way. Also, even graphical data were larger than their Speccy's counterpart...

Also, games in Mode 1 could have been good despite the lack of colours...if only those colours were used properly more often.

As a result, most Speccy and C64 fans rarely give Amstrad the credit it deserves.

On a more positive tone, those speccy ports had the merit to exist, or else Amstrad may have a lighter games catalogue.

And as said above, those games weren't all bad, just a bit frustrating most of time.

Games with no need of scrollings and with re-coded graphics actually could be good...

It is also a misconception to believe the screen was downsized in those games to gain processor resources... It was only done to use the Speccy graphics more easily, and we can doubt the code was (re-)designed so such a screen reduction would even gain CPU resources.


the killer-list of the infamous speccy ports of death

Computer originals Hits (most of them ended up being decent) :

  • H.A.T.E
  • Highway encounter
  • Lotus turbo Esprit challenge
  • Fighting Warrior
  • Vendetta
  • Hard Drivin'

I wouldn't count the numerous CodeMaster or Hewson games... Many of them were cheap budget Speccy games to start with, and where quite well ported or remained good...


Well known franchises :

  • Scooby Doo
  • Thundercats.
  • MASK 3 : Venom Strike Back
  • Airwolf 2

Adult games (sort of)

  • Sabrina
  • Samantha fox strip poker.
  • Strip poker II

Movie Franchises :

  • Indianna Jones 3 action game.
  • Back to the future 2 (half parts were straight speccyporked)


Arcade hits :

  • R-Type
  • PacMania
  • Salamander
  • Dragon Breed
  • Scramble spirit
  • Black Tiger
  • Strider
  • Bionic Commando
  • SuperWonderboy
  • Double Dragon3
  • Super Hang-On
  • Enduro Racer
  • Toobin
  • Xybots
  • Pit fighter
  • Cabal
  • Street Fighter

Special Category of Death :

  • Myth, history in the making (grrrrr).
  • Gauntlet 3
  • SWIV
  • Shadow of the beast
  • Midnight resistance

The Blue games of Death :

  • The untouchables
  • Heroquest
  • Hudson Hawk


The infamous killer list of the shamefull 30 speccy porks of death that killed the Amstrad CPC

All those games are frequently used in 8bit wars style videos and reviews... Hence they gave the poor reputation of the inferior speccy clone to the Mighty Amstrad CPC.

Those games were well known hits ported on quite all computers of their time and very basis of comparison between most systems of this era.

Let the Butthurt begins :

  • Shadow of the beast
  • Myth, history in the making
  • Gauntlet 3
  • SWIV
  • R-Type
  • PacMania
  • Salamander
  • Dragon Breed
  • Scramble spirit
  • Black Tiger
  • Strider
  • Bionic Commando
  • SuperWonderboy
  • Double Dragon3
  • Super Hang-On
  • Enduro Racer
  • Toobin
  • Xybots
  • Pit fighter
  • Cabal
  • Scooby Doo
  • Thundercats.
  • Venom Strike Back
  • Sabrina
  • Samantha fox strip poker.
  • Strip Poker II
  • Airwolf 2
  • Indianna Jones 3 action game.
  • Back to the future 2
  • Vendetta

Needless to say, the great amount of awesome adventure games that CPC had and spectrum could not even dream-of are never shown in such crossed reviews.

The 3 levels of Speccy portages

Of course the level of Fail could greatly depend on whatever strategy the programmers/graphists used to get rid of the poor Video speccy's specificities for the original game...

A monochrome game could remain monochrome or be recoloured on CPC... or only parts of it (only sprites or Tiles but not both... mostly only sprites.)

A coloured game with design-wise graphics (character based design) could be the exact same yet with even less colours...

Or Tiles/sprites could simply be completely well re-done/re-drawn, even in Mode 0 sometimes...

Rushed and Lazy

The game is exactly as on speccy, even displaying graphical artifacts as Colour attributes, and/or monochrome display for the game's window (a shame on a computer told as Colour Personnal Computer) but not always the HUD, which may even often feature extra colours thanks to Raster colour changes, yet this doesn't really help to see what happens on the game's window.

Also sprites may display Transparency/translucency with background's colour, a typical speccy "Feature" ("not a bug, a feature"... sic...).

Probably achieved by using the almost exact Speccy code and emulating the Speccy specificities (Attributes) on CPC.

It is to notice that it wasn't especially the Programmer's fault, the Game Companies were ordering them to do so... Coders weren't "lazy", it was the Company investment which was lazy...

Examples :

  • PacMania

Pacmania title.png Pac04.png

Typical exemple, yet it managed to be a nice game despite this.

The title screen and HUD shows the attributes colours (as artefacts...) and were almost completly unchanged, yet with less colours on screen than the Speccy version.

Ironically, the game manages to display 6 colours in the 4 colours Mode1... Yet the game's area remains completely monocolour (coded in 1 bit) and "colour attributes artefacts" are still present..


  • Black Tiger : Bad, bad, bad, such a shame as the Arcade game was awesome. monochrome game with multicoloured HUD.
  • PacMania : same as Black Tiger, yet even displaying Attributes artifacts/remains.
  • Super HanG on : graphics Transparency/translucency
  • Enduro Racer : same as Super Hang On, even more displayed as Sprites more often cross the different coloured parts of the screen (while jumping).
  • Bionic Commando : there is even inverted/negative coloured sprites.
  • Sabrina : same as Bionic commando...
  • Gauntlet 3 : HUD is properly recoloured (3 shades) but in-game window is monochrome...(1bit coded sprites and tiles)
  • R-type : Monochrome background while sprites still are "coloured" as with Colour attributes, hence even featuring less colours than original speccy game, while the entire screen still display more than the only 4 Mode1 colours...(HUD raster trick...)

This game was done in 3 weeks by only one man, who simply emulated the speccy stuff on CPC (couldn't do better in 3 weeks). Thank god the speccy version was so good this game is still decent on CPC.

Some of those games were still good, as they were yet very good on Speccy, the Amstrad Portage wasn't enough to waste it. But those remained inferior to their original Speccy counterpart (which was often smoother or faster...).

Semi-lazy

Well redone graphically, but not always as would actually be needed.

Such a waste.

Examples :

  • HeroQuest : still has monochrome feeling (2 blue shades being used) while actually being properly 2 bit re-coded... Ditherings use 3 colours gradiants instead of the Speccy's 2, and the grey add a bit more colour feeling...sort of ... but it fails due to a poor colour strategy.
  • Strider has recoloured sprites, displaying no attributes, but Backgrounds remains monochrome, and the game sluggish (because CPU must still convert 1bpp graphics into 2bpp), yet the HUD+Raster trick enable a 6 colours displayed on screen and the HUD looks good.
  • Shadow of the Beast : (perhaps...) No real 3-4 coloured ditherings or even "additional colours" thanks to dithering the 2 medium colours together in many graphics (Exteriors or for many sprites), yet the square speccy attributes are not displayed, while the speccy version remains monochrome (in game window, not HUD) in order to simply advert Colour clashes. Would have needed more development time and a real CPC version.

Good Job

Those games are often more to be seen as proper Cross-Dev.

Graphics, despite sharing a common ancestry, are well redone, and take into account the Amstrad power.

After all, despite being slower, this is not an excuse to get the same awful looking graphics...

Sometimes those games are not that well "ported", yet its concept and gameplay is such that this is not That important, the game is simply too good to be wasted by such detail as the use of Mode1, and it was still sufficiently re-done.

  • Head over heels

Head Over Heels.png

On the other hand, this one was the prime exemple of what every speccy port should have been. Even the C64 version was totally like the Speccy version (monocolor game's area) while the Amstrad graphics were perfectly recoloured to use so well the lack of colour attributes. Also as this games didn't need scrollings, the animation was almost as good as in other 8 bit versions, and colour palette often changed inks, to actually get a colourfull feeling all along the game. No attributes and the no-rastercolourchange policy enable to not waste CPU ressources uselessly, while the only 4 colours are cleverly chosen and used in a cartoon styled madness...

  • Deflektor : exemple of a good speccy "cross development", thanks to a clever concept. Could perhaps have been better yet the concept of the game makes it a clever port, also details like the Tape version loading parts or the good chiptunes enable a proper CPC experience.
  • Switchblade : the GX4000 cartridge version is displaying extra features such as large vertical ditherings in a lot of Red shades (sky) or PLUS Hardwired sprites "patches" as extra coloured tiles...this is more than enough to get a properly coloured feeling.


Some Speccy port "done right" may also use Mode 0 instead of Mode 1... hence being graphically fully CPC (yet tiles or sprites are still comparable in dimensions).

The result may vary from awful (the code is not optimised enough for CPC) to great (alles ist richtig...).

Example of such games :

  • Space Gun : Mode 0 and even PLUS features, yet the attribute-designed-unmasked sprites remain, in a sluggish game.

Technics used

Mode1 and screen dimensions

The use of Mode1 enabled the CPC to keeps the same graphics as Spectrum, in appearance only.

While the square pixels looks almost the same, the code was completely different BTW.

Also CPC being set for a 320x200 display instead of a 256x192 display, the pixels are in fact smaller on screen, hence a bigger border...

Biased argue is to say that the CPC resolution is therefore inferior to spectrum's one, because there is a large border on CPC while ZX Spectrum displays a smaller border.

The amount of pixels is exactly the same, and this looks even more detailed and finer on CPC.


While some Spanish companies reduced the screen in order to get the game betterly running in low-specs 464... the infamous speccyports just ran a reduced screen so the ZX Spectrum's codes and graphics could run almost "unchanged".

Real-Time Convertion of 1bpp graphics

Here is the real grief.

A common way to get the Speccy game running on a CPC was to get some routine to convert the existing and already coded 1bpp Speccy's Graphic Datas (Tiles and sprites... in equivalent to Mode2 on CPC) into 2bpp datas (proper Mode1) when put into the video RAM.

Needless to say, this enabled to use no additionnal graph artist (a costly man at the time) to redrawn the Graphic Datas...

Nor a coder to re-code the RAM mapping/addresses of such datas...

But this have a cost CPU wise... the CPU instead of simply take some bytes of datas from reserve into Video RAM, have to convert this along the way too.

Monocolour playfield and Sprite Masks

  • Having a monocolour playfield on ZX Spectrum is a common way to have no colour clashes... Simply because you have no colours.
  • Most of those games then had masked sprites.

This means that each set of sprites have another "sprite set" for the mask, being actually 2x1bpp (bit per pixel) set of Datas.

Some games coders actually used this to get the Sprites coded in 2bpp and used one of the 4 inks in mode1 to be the mask. This then made no more RAM used by Datas as the original.

As a result some of those speccy ports have sprites in another colour than the background, which is actually better in term of playability/look.

exemples :

  • Super wonder boy : could have even used one more colours for the sprites, but didn't..
  • Double dragon 3 : this one had the Sprites actually in a monochromatic 3 colours.

Needless to say, the Background Tiles and Letter fonts were still in 1bpp converted ATM of display... so the CPU had no rest and such games weren't faster nor that much better looking.

Some games, despite having such Masked sprite totalling 2bpp... had absolutly no sprite re-code at all... while they could easily had this.

  • Black tiger is such an infamous case.

Those games had one advantage : the smooth movement of sprites.

Masked Backgrounds

Some (rare) games actually used a mask for the Bakcground tiles too. This explains why they could be fully recoded with no notable additionnal weight for the Data.

Such games are often Isometric games and categorized into the GOOD speccy ports (or actual Cross-Dev).

exemples :

  • Heroquest : the Background tiles are also in 3 colours. Yet there is a really poor use of the colour used for the mask.
  • Head over Heels : probably... yet the colours are betterly used than in Heroquest. If you look carefully, there are 2 kind of "background" elements...
    • Real non-masked Background (floor, walls) which use the full 4 colours,
    • and masked elements such as... Doors, platforms... which are 3 colours only.

Unmasked games and CPC colour clashes

Such a shame... the laziest amongst the worst and the Bad.

  • Bionic Commando : need I say more ?
  • Enduro Racer : a turn based racing game ?

Attribute based Sprites and Animation

Such games had no smooth movement of sprites. You moved the sprite "character per character".

As such the sprites are unmasked, being not really more than tiles-mapping...

This means the sprites must actually fill the characters or you get the unmasked character's corner artefacts.

This was a "good" other way to get rid of Attributes Clashes and having actual "colours" on ZX Spectrum. But some speccy ports were then emulating the attribute system... which can be quite bad because CPC in Mode1 has Half colours the Speccy has. So on CPC... this was often not ported that properly.

  • R-Type.
  • Space gun : this game being quite late in CPC era... it is not really good and was probably rushed to the release. Yet the Character based engine enables "enormous sprites", but lacks the smooth movement.

Such technic was actually used for quite a good amount of Mode0 games... This is not "Speccy port" speccyfic (Pun!) but it is good to have it mentionned, as a common game design technic for both machines.

  • AMC (astro Marines corps) : done well.
  • Satan : done well too.

Thx to spanish game-makers...

Rasters

A common cheat was to get some Raster interrupt colour change so you could argue that the game is actually displaying more than 4 colours on screen while being Mode1.

This is only to mimic some sort or Raster based Colours attributes.

And this is actually not a clever move in many way as getting some raster interrupt may have some heavy-weight on the CPU.

And despite the game "displaying more than the allowed colours on screen", the games playfield was still monocolour !!!

All this did was getting the game even slowlier.

On the other hand this could also be done right.

  • Deflektor : Raster done right.
  • Strider : Raster done right. (useless but good looking)


  • Thundercats : ok, this one actually add "playfield colours".. sort of.


  • R-Type : Failed!
  • PacMania : Failed!
  • Black Tiger : every thing is desperatly failed on this one !

Many (if not all) of those games can actually run faster just by getting rid of this CPU-wasting rasters..!

Providing a game had to deal with 1bpp to 2 bpp convertion, Software Sprites and Scrollings... and complicated gameplay... adding some Raster interrupt to the equation is a real dickmove and a good way to waster further more CPU time.

Partial code re-use for proper CPC games

Some CPC games are in mode0 yet the similarities with the speccy version are still obvious.

OCEAN was actually a lot into this... but thx to a more professional Graphic treatment (compared to many other british companies) and actually good portage policies (not that always) this produced some of the finest CPC games.

Those games are exemples of Cross-dev done right. They remains quite playable because the CPU don't waste time to decipher 1bpp graphics or get Rasters interrupts.

  • Robocop.
  • Chase HQ.

Some of those games were Mode1 but fully supported the 2bpp re-coding of graphics done right (by a human before, not by the CPU after...) hence got properly coloured Backgrounds.

The problem : those would have needed more tight coding because those are big games...

  • Shadow of the Beast : basically an almost playable Amiga Demo from the start... this just turns into a quite good speccypork on CPC. The "cartoonish border Snakes" are infamous though...
  • Midnight resistance : some elements such as the "projectiles" sprites (bullets, explosions) are certainly far too big on CPC to get this smooth and fast enough. Also some animations should have skipped a few frames to lighten the thing. But hey, this is quite some exemple of Mode1 looking good...


  • Wec le Mans : excellent CPC version. Just slightly slow... Burnin' Rubber is the Plus version of this game, sort of.

Anyway, not every thing is bad...

Z80 machines shared the same CPU and a good code remains a good code, provided it let enough "space" for heavier Video systems.

Such games as Robocop, Batman, chase HQ or Wec Le Mans weren't as fast as on Speccy on CPC... yet the great graphisms and sounds were more than enough to compensate well.