Page 1 of 1

Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 3:27 am
by Nomad
Sure there are many systems that share a common z80 cpu, but I was curious. Assuming you are starting with a 48k spectrum assembly program - that used graphics and sound. What would be the easiest system to port to? and the most difficult?

I guess it depends on what the program actually does but I would assume it was harder to port to some systems than others because of the way the hardware on that target was setup vs the spectrum.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 4:42 am
by Rorthron
The Amstrad CPC was apparently pretty straightforward: Z80 processor, a similar graphics mode, AY sound chip.

I think other platforms, like the C64 or BBC, required full rewrites. They had very different silicon and graphics modes.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 5:53 am
by Hikaru
Just my impression but the easiest one might be Enterprise 128. It uses a Z80 and what seems to be a very flexible screen configuration system, apparently allowing it to emulate Speccy screen modes to a good extent.

Hardest systems I'm sure should include ZX80/ZX81. 1Kb of memory and an explanation-defying method of working with the screen that uses a mixture of ROM calls, I and R registers, and black magic among other things. :lol:

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 8:14 am
by Nomad
Hikaru wrote: Tue Jan 02, 2018 5:53 am Just my impression but the easiest one might be Enterprise 128. It uses a Z80 and what seems to be a very flexible screen configuration system, apparently allowing it to emulate Speccy screen modes to a good extent.

Hardest systems I'm sure should include ZX80/ZX81. 1Kb of memory and an explanation-defying method of working with the screen that uses a mixture of ROM calls, I and R registers, and black magic among other things. :lol:
I had never heard of the Enterprise 128, but 4mb of memory would give a lot of options for very large games... Not going to lie - I got the documentation to read later :D cheers! The ZX80 I can't handle the screen bouncing every time you hit the keyboard.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 8:59 am
by Morpheus
It would seem that the Amstrad CPC range and MSX were easy to port over from the Spectrum. You will often read about or hear in reviews of games on those systems that they were straight ports.
They had varying success with them as apparently the MSX games ported from the Spectrum were notorious for slowdown and it also affected the CPC as well. This tended to happen when the games were not optimised for the target platform and were simple cash grabs.
There are some reports of Spectrum conversions on the Amstrad being completed in a week.

I think for the 6502 machines the C64 & Atari 800XL/65XE were similar enough for games to be cross developed but that was more in the USA where most users had a 1541 or 1050 Floppy Drive. :geek:

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 10:32 am
by Nomad
Well the Beeb had the z80 co-processor, but that was expensive and I didn't know anyone that owned one. I think they are pretty rare now. But that sounds like a great way to develop specy titles back in the day.

It was watching the 8-bit guy talking about porting his game from the vic-20 to the c64 like it was no big deal that got me thinking perhaps there was a similar situation with the z80 machines.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 12:33 pm
by Ralf
Amstrad CPC and MSX and Enterprise would be the easiest, which doesn't mean easy, you need to be good at assembly programming anyway ;)
You should remember however that a direct port from Spectrum won't use 100% of these machine possibilities. Amstrad and MSX users often complained about crappy, lazy Spectrum ports ;)

Middle difficulty would be Game Boy console. It also has Z80 CPU but a smaller resolution would require rewriting not only display functions but also some game logic.

Machines with different CPU like C64 or 8-bit Atari would require writing all code from scratch, you could only transfer some data.

In case of machines much inferior than Spectrum like ZX81 or Jupiter Ace a game port could turn out to be impossible.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 12:39 pm
by AndyC
Vic-20 games were typically BASIC efforts and i don't think conmodore actually changed the BASIC between machines, so it would've been little more than fiddling a few POKES for the most part.

The Z80 machines could probably be ported between relatively quickly because the Speccy didn't really have much in the way of special hardware, so you really just needed to re write keyboard and video code. But that leads to poor performance when code has been optimized for the Speccy contention model. And occasional glitches because those machines didn't have attributes (note how CPC R-Type graphics "pop in" on the right hand side, where they would normally be clipped by black-on-black colours)

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 12:41 pm
by AndyC
The Gameboy CPU isn't actually a Z80, so moving code between them may be less straightforward (depending on what instructions were used)

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 1:02 pm
by dfzx
I don't think a whole lot of Spectrum software was written with what might be termed modern practises which simplify the porting effort. Modern games use abstraction and internally layered APIs to provide services such as video, sounds and I/O. You rewrite those layers, keep the API the same, and the game just works on a different console or whatever.

All that's good practise, but it takes memory and CPU performance, which are things the Spectrum and its ilk didn't have in abundance. Games which were coded with a bit of discipline and aforethought might port reasonably easily. Most were probably hammered together and changing bits and pieces of those would probably involve the claw end of the hammer quite a lot. :)

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 1:49 pm
by Ralf
All that's good practise, but it takes memory and CPU performanc
Yes, "good practices" are often inefficient on weak machines. You often mix dealing with graphics, sound, logic and calculations in the same code. Try doing it "correctly", separated into modules and you'll discover that your program is running 50% slower or so.

And the user doesn't care in most cases if you wrote a pretty code or not. He doesn't see it. All he sees is performance.

Re: Porting easy/hard of diffrent micro computers.

Posted: Tue Jan 02, 2018 2:50 pm
by Nomad
Infocom were able to use there z machine to cross compile but they designed it to be that way from the jump start. And one could argue its much easier to do with a text adventure than say a graphics system. But it was still impressive for the time.