News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

ZX Spectrum ports

Started by equinox, 03:54, 28 January 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

equinox

Hey guys. My name is equinox. I'm really a ZX Spectrum nerd: I grew up with a bunch of Speccies, and a BBC Micro, but I also played with an Ammy CPC 6128 (actually, that's how I learned about the existence of CP/M!).

I've got a slightly funny question for you.

It is (I think) proverbial that Amstrad users dislike the "Speccy port", where a game was produced for the Spectrum and then converted to the CPC -- presumably for commercial reasons, because there were more Speccies than Ammies, and both machines had got a Z80 (hey, we even share that AY sound chip). Because the Spectrum has got pretty bad graphics (15 colours, and that weird thing about only two colours touching inside an 8x8 cell), these ports are not likely to exploit the pretty colour palette of the CPC.

What I want to know is: what are the characteristics of a "Speccy port" on the CPC, and how did you immediately recognise such games, and how did you feel about them? Not just "oh it looks a bit yellow": was there anything else? Tell me your Speccy port stories.

You may want to know why I am asking this. For now, I absolutely refuse to tell you. lol.

(Quick edit to say that I'm really impressed that your forum turned "8x8" into a proper multiplication sign and not a letter x. I'll fuck off now.)

Gryzor

Hey, welcome here!

This may be of use if you haven't already seen it: https://www.cpcwiki.eu/index.php/Speccy_Port

andycadley

  • The screen width has been reduced to 32 Mode 1 characters 
  • It's in Mode 1
  • It's either monochromatic, or colour changes are very obviously character based
  • It's often slower - although both machines have a Z80 the contention methods are different and so a routine optimised for one is not always optimised for the other. 

You also see games internally render a buffer ready for the spectrum display then convert that at the last moment to Mode 1, a mechanic that is not only slow but can introduce "colour clash" on a machine which shouldn't have it.

R-Type is probably one of the best (worst?) examples. Not only does it do most of the above, but on the Speccy the right hand column of the screen has black INK and PAPER which hides the drawing. You can't do the same thing on the CPC and so things just pop into existence in a very ugly way. When you look at how much better the remake is, you can start to see why CPC fans felt so let down.

But not every Speccy port has to be a lazy one. Head over Heels looks great, takes full advantage of the extra colour capabilities of Mode 1, doesn't play noticeably slower etc. Done right you can get a good result.

It's understandable why this sort of thing happened back then, with commercial pressure to ship as quickly as possible. In the modern day and age though, I see even less point. Anyone can fire up a Speccy emulator and play that version, so just porting as quickly as possible makes no sense. 

If you're going to recreate a game on the CPC you might as well take full advantage of Mode 0 graphics to make something unique, or take advantage of the ability to double buffer the display etc. Make a version that actually stands out otherwise there really wasn't any point.

Carnivius

Quote from: andycadley on 10:05, 28 January 23You also see games internally render a buffer ready for the spectrum display then convert that at the last moment to Mode 1, a mechanic that is not only slow but can introduce "colour clash" on a machine which shouldn't have it.



I didn't know how that happened, it just always sorta stunned me when I've seen it occur. Robin Hood - Legend Quest being one of the worst offenders, because usually as bad as Speccy ports got, the saving grace was often "oh well, at least it doesn't have colour clash" thinking that be thankfully an almost-impossible thing to see on the CPC and yet a game as late as 1993 showed me that indeed it was possible on the CPC and that's NOT a good thing.  At that time the CPC should have been showing off all it's tricks to compete as best it could with the 16-bits, not regress into being even more Spectrum-like. >:(
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

eto

It's not the Speccy port per se that's an issue. I think we more hate the people that were responsible for those crappy ports just to save a few pound. Most of those games, even those we like, could have been SO much better with just a bit more effort.


A crappy port takes the resources, sprites, sound and moves them over with minimal effort. Sprites on the Speccy are monochrome, beeper sound does not translate well and different Screen RAM organization would require significant effort to avoid slowdowns.

The Speccy and the CPC share a lot of features, however that overlap is less than each of the machines is capable of.
E.g. the Speccy can have 16 colors on screen at 256x192 pixels but only 2 per character cell.
The CPC can show 320x200 with only 4 colors, but no character cell limitation or 160x200 with 16 colors.

If you target your game for the minimum overlap of both systems you create a CPC game with a screen size of 256x192 pixels and 4 colors. But only 2 of these colors are being actively used for most of the game as the Speccy sprites and tiles are monochrome so the whole game area becomes a monochrome disaster.

I personally remember "Enduro Racer" and R-Type as huge disappointments. I was so looking forward to those games. And then this. A few days of effort for a graphics artist, a few days additional effort for a developer to optimize the code - and each game would have looked awesome and played much better.


Carnivius

Yeah, I don't mind the 256 width too much (if it makes cross-platform games more easily doable.  NES and SNES also have 256 screen width so I'm quite used to it although on those it uses up a lot more of the actual display whereas on CPC it makes it appear if it's in a small window.  I've always kinda liked how Switchblade uses 320 on CPC but 256 on Spectrum by simplying 'squishing' everything from a 16x16 grid to a 12x16 grid on so all the screen layouts are identical. Does mean the Spectrum version has to be monochrome because 12 doesn't fit into the 8's of it's attributes, but still it's an interesting way of doing that port. 
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

TotO

#6
The problematic is more to be not able to switch the horizontal clock for the 256x256 display in full screen.
About better Spectrum ports, it will require a 1bit mode with colour attribute and a lineal video memory.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

andycadley

There are lots of reasons for individually making these choices. A 64 byte wide screen makes address maths easier. Monochrome graphics can allow you to use colour planing so that sprites can be drawn with XOR rather than masking (something Speccy ports almost never do).

The giveaway is when they're doing all of them and clearly because it's easier than because they're exploiting technical benefits to get the frame rate up.

An attributed mode on the CPC would have been cool and probably doable if the pixel data and attributes were interleaved, giving you Mode 1 sized pixels with two of 16 colours in each 1*8 pixel block and wouldn't have required reading memory in a different way. The display wouldn't be linear, but the Speccy display is hardly linear either. Alas it was not to be.

Switchblade is an interesting one, it's clear the graphics were ported from one of the 16 bit machines and done to be monochrome as a lowest common denominator. I think it could have looked better on the CPC (and certainly the CPC+) in Mode 0, but at least they didn't just used the squashed up graphics I guess 

Carnivius

#8
Quote from: andycadley on 13:16, 28 January 23Switchblade is an interesting one, it's clear the graphics were ported from one of the 16 bit machines and done to be monochrome as a lowest common denominator. I think it could have looked better on the CPC (and certainly the CPC+) in Mode 0, but at least they didn't just used the squashed up graphics I guess
Switchblade isn't monochrome on CPC though.  The graphics are properly coloured in 4 colours.  The tiles and player character tend to use the black, cyan and light cyan (with the player and foreground graphics using transparency). Most of the enemy sprites use all four available colours plus transparency. So that's the black, the cyan, the light cyan and one other colour that changes from screen to screen for some variety.    It's using Mode 1 very well (and has some rasters in the HUD above and below the gameplay area). It looks quite intricate and very nicely defined.  Certainly far easier on the eyes that the monochrome Spectrum version and the drab blocky C64 version.

Man, it's weird to think the old mock up of what I imagined Switchblade might have looked like in Mode 0 was made all the way back in 2005.  Probably looks rough now.
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

eto

Quote from: Carnivius on 15:19, 28 January 23. It looks quite intricate and very nicely defined.  Certainly far easier on the eyes that the monochrome Spectrum version and the drab blocky C64 version.
They are pretty similar to the Atari ST graphics where the whole background is mostly greyscales. The screen size is identical and greyscale palette translates well to to the cyan-based palette.

Shaun M. Neary

From my own perspective, i don't necessarily mind the Spectrums monochrome graphics when ported over to the CPC as they can be quite detailed.

But the slowness... it really sucks the life out of the game. Peter Pack Rat is probably the best example.
Currently playing on: 2xCPC464, 1xCPC6128, 1x464Plus, 1x6128Plus, 2xGX4000. M4 board, ZMem 1MB and still forever playing Bruce Lee.
No cheats, snapshots or emulation. I play my games as they're intended to be played. What about you?

BSC

Quote from: eto on 11:42, 28 January 23It's not the Speccy port per se that's an issue. I think we more hate the people that were responsible for those crappy ports just to save a few pound. Most of those games, even those we like, could have been SO much better with just a bit more effort.
Not that many of us bought a lot of games, amirite? I actually didn't mind the speccy ports a lot (probably also due to having owned one before I got my CPC), but then I somehow ended up with more than 1000 games, many of which I only tried out once or twice and did not spend a lot of time playing. So I think that, at least from a pirated-games-collector point of view, one was never in a good position to complain about quality at all. And maybe, just think of it!, maybe the fact that so many people just pirated games, might also have had to do with how much effort publishers etc invested into making games in the first place..? 
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

zeropolis79

Last Ninja 2 and Super Hang-On were prime examples. I didn't mind the graphics but the coder directly ported the 48k Spectrum beeper music to the CPC and jeez, that was enough to induce headaches. Thank goodness for the volume control.

I don't mind a Speccy port if done right, but there is a difference between games done in MODE 1 for artistic reasons over MODE 1 games ported from the Speccy.. Switchblade and Dizzy games are good examples of good artistic MODE 1 games.

Sykobee (Briggsy)

Quote from: TotO on 12:12, 28 January 23The problematic is more to be not able to switch the horizontal clock for the 256x256 display in full screen.
About better Spectrum ports, it will require a 1bit mode with colour attribute and a lineal video memory.
The CPC video scanning is very linked to the CPU clock and access to the memory bus, it wouldn't be simple to have a different pixel clock like the NES/Spectrum.

Very much aside: Now with a more advanced+different scan-out implementation, you could have added a 216-pixel wide mode with 8 colours (i.e., 3-bits per pixel, size would be 3 MODE 2 pixels wide), but I can see how that was not considered originally - never mind the more complex graphics routines required as each pixel is 3 bits, and that doesn't work well with 8-bit bytes (up until 3 bytes worth, but that doesn't fit with the CPC's reading 2 bytes at a time, so you need buffers, etc (these would be needed for smooth horizontal scrolling too, and we're really diverging from the original CPC hardware)). Regardless, 216 pixels is not 256.

I didn't mind the 256-pixel CPC games where the graphics had been adjusted and optimised for the CPC. It was an understandable compromise to support both the CPC and Spectrum, and the limited time CPC ports were allocated. But the number of games that stuck the Spectrum game into the lower 48KB of CPC memory, and added code to copy from the Spectrum screenbuffer memory area to the CPC screen area (i.e., double rendering the game) was shocking.

TotO

Quote from: Sykobee (Briggsy) on 12:50, 30 January 23The CPC video scanning is very linked to the CPU clock and access to the memory bus, it wouldn't be simple to have a different pixel clock like the NES/Spectrum.
I don't said it is simple, but it is missing. I can understand for the CPC but not for the Plus/GX. ;)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

andycadley

I think it's one of those thing where, in order to accomplish it from a hardware perspective, you'd have had to completely redesign how the hardware worked. At which point you're basically designing a brand new console from scratch. And that was out of scope for what the GX project was. 

Cliff Lawson once said to me that, in essence, if they hadn't broadly used the CPC design, they couldn't afford the R&D costs. It's why it's not a 16-bit machine, why the sprites have to work without impacting on memory bandwidth, why the display modes are still limited to those the original machines had and why things like DMA music is tied to reading data at the same rate the screen display runs etc.

Shaun M. Neary

Quote from: andycadley on 14:49, 30 January 23Cliff Lawson once said to me that, in essence, if they hadn't broadly used the CPC design, they couldn't afford the R&D costs. It's why it's not a 16-bit machine, why the sprites have to work without impacting on memory bandwidth, why the display modes are still limited to those the original machines had and why things like DMA music is tied to reading data at the same rate the screen display runs etc.
Something else to consider as well back then, but even with the minimal changes that were made, look at all the backward compatibility craziness that happened. Keyboard scanning bugs for games, and then there were the newer port standards which made it a complete nightmare for third party manufacturers.

Had they tried to implement 16bit, Christ only knows what additional backward compatibility issues there would have been, and for six years of software and hardware already available, it would have made horrible business sense to alienate that in itself.
Currently playing on: 2xCPC464, 1xCPC6128, 1x464Plus, 1x6128Plus, 2xGX4000. M4 board, ZMem 1MB and still forever playing Bruce Lee.
No cheats, snapshots or emulation. I play my games as they're intended to be played. What about you?

TotO

Quote from: andycadley on 14:49, 30 January 23I think it's one of those thing where, in order to accomplish it from a hardware perspective, you'd have had to completely redesign how the hardware worked. At which point you're basically designing a brand new console from scratch. And that was out of scope for what the GX project was.

Cliff Lawson once said to me that, in essence, if they hadn't broadly used the CPC design, they couldn't afford the R&D costs. It's why it's not a 16-bit machine, why the sprites have to work without impacting on memory bandwidth, why the display modes are still limited to those the original machines had and why things like DMA music is tied to reading data at the same rate the screen display runs etc.
Because the cartridge media and the fact there is an unlock sequence to access the Plus features, in 1990, it would have been possible to run the Z80 at 6MHz or 8MHz for that usage and the CRTC respectively at 1.5MHz or 2MHz to provide the new 256 or 320 screen modes with 16 colours + the sprites over that. No impact for the CPC compatibility while using tape or floppy programs.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Anthony Flack

I actually rather like monochrome pixel art and a lot of the kids these days do, too. I do not enjoy a low framerate.

A 256 pixel wide screen has not-inconsiderable advantages for the speed-deficient CPC that even non-Spectrum ports can take advantage of. A 256x256 screen works very nicely. 

I also think some Spectrum ports look really good without redrawing any graphics. Starquake for instance, I think is just how it should be.

I always thought it was curious how Technician Ted actually reproduced the Spectrum's colour clash. It actually suits a game like that, in a funny kind of way. I had a green screen back when I used to play Technician Ted though, and it appears that whoever set the colours for that game had a green screen too, or perhaps was colour blind.




andycadley

Quote from: TotO on 16:31, 30 January 23
Quote from: andycadley on 14:49, 30 January 23I think it's one of those thing where, in order to accomplish it from a hardware perspective, you'd have had to completely redesign how the hardware worked. At which point you're basically designing a brand new console from scratch. And that was out of scope for what the GX project was.

Cliff Lawson once said to me that, in essence, if they hadn't broadly used the CPC design, they couldn't afford the R&D costs. It's why it's not a 16-bit machine, why the sprites have to work without impacting on memory bandwidth, why the display modes are still limited to those the original machines had and why things like DMA music is tied to reading data at the same rate the screen display runs etc.
Because the cartridge media and the fact there is an unlock sequence to access the Plus features, in 1990, it would have been possible to run the Z80 at 6MHz or 8MHz for that usage and the CRTC respectively at 1.5MHz or 2MHz to provide the new 256 or 320 screen modes with 16 colours + the sprites over that. No impact for the CPC compatibility while using tape or floppy programs.
But then the ASIC needs to be able to emulate the CRTC at different speeds and possibly needs a faster ASIC. And faster RAM. And maybe other emulated chips like the 8255 need to run faster and you need to interface with the AY at different speeds....

The design brief was most likely along the lines of "take the cost down ASIC we've already produced, add some games enhancement features while keeping the cost below X", redesigning everything to make a better console was out of scope. In hindsight that probably was a bad idea, if they wanted to go into the console market they should have just gone full out. 

But would they have ever produced something that could compete with the MegaDrive or SNES? Probably not in reality. Amstrad didn't really have what it takes to tackle the giants and probably nobody did till Sony stuck their oar in (after having learnt a lot from working directly with Nintendo)

TotO

#20
Quote from: andycadley on 12:14, 31 January 23But then the ASIC needs to be able to emulate the CRTC at different speeds and possibly needs a faster ASIC. And faster RAM. And maybe other emulated chips like the 8255 need to run faster and you need to interface with the AY at different speeds....
The ASIC is clocked at 40MHz and embed,among other things, a CRTC compatible circuit. It emulates nothing. All the computers using that kind of RAM into the 80s was able to run at 8MHz and the AY (ST) and CRTC (PC) at 2MHz. Why are you saying that?

Anyway, the topic is related to a ZX Spectrum compatible mode and the Plus was never intended to compete the MD or SNES.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

andycadley

Quote from: TotO on 13:00, 31 January 23
Quote from: andycadley on 12:14, 31 January 23But then the ASIC needs to be able to emulate the CRTC at different speeds and possibly needs a faster ASIC. And faster RAM. And maybe other emulated chips like the 8255 need to run faster and you need to interface with the AY at different speeds....
The ASIC is clocked at 40MHz and embed,among other things, a CRTC compatible circuit. It emulates nothing. All the computers using that kind of RAM into the 80s was able to run at 8MHz and the AY (ST) and CRTC (PC) at 2MHz. Why are you saying that?

Anyway, the topic is related to a ZX Spectrum compatible mode and the Plus was never intended to compete the MD or SNES.
What I mean is, inside the ASIC is a bit of circuitry to mimic the behaviour of the CRTC at the normal clock speed - you can't necessarily vary that internal timing without redesigning the related circuitry. If the CRTC was external and simply fed a clock signal it might be a different story.

Shaun M. Neary

#22
Quote from: Anthony Flack on 01:50, 31 January 23I always thought it was curious how Technician Ted actually reproduced the Spectrum's colour clash. It actually suits a game like that, in a funny kind of way. I had a green screen back when I used to play Technician Ted though, and it appears that whoever set the colours for that game had a green screen too, or perhaps was colour blind.




A lot of Speccy ports did this. Badlands was notorious for it!
The least obvious Speccy port, but it's blatant when looking under close inspection is Wonder Boy. The sprites were lifted directly from the C64 version but the rest of the code is Speccy through and through, also inheriting the slowness but the flicker while it tries to scroll which is also in the Spectrum version!
Currently playing on: 2xCPC464, 1xCPC6128, 1x464Plus, 1x6128Plus, 2xGX4000. M4 board, ZMem 1MB and still forever playing Bruce Lee.
No cheats, snapshots or emulation. I play my games as they're intended to be played. What about you?

andycadley

Ah yes, the lesser spoken of type of port to the CPC. Where the graphics are lifted straight from the C64 (with similar 3 colour restrictions intact) and the code from the Spectrum. Generally I think these work a bit better, or at least have the potential to, but can still be shockingly bad if done lazily (see Wonderboy).

And there are games like Batman The Movie, RoboCop and Chase HQ which almost certainly share at least some core code with the Speccy but have all the graphics redone for Mode 0. And it's not like anyone would call those out as bad, it's sometimes just a question of how much time has been put into polishing the final product.

TotO

Quote from: andycadley on 13:16, 31 January 23What I mean is, inside the ASIC is a bit of circuitry to mimic the behaviour of the CRTC at the normal clock speed - you can't necessarily vary that internal timing without redesigning the related circuitry. If the CRTC was external and simply fed a clock signal it might be a different story.
I will be very surprised the ASIC can "mimic" the GA at 16MHz and not a CRTC (mainly couters) at 2MHz if the feature was required. I just think that was not into their idea to have a faster CPU, CRTC, ... for the Plus/GX systems.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Powered by SMFPacks Menu Editor Mod