Porting easy/hard of diffrent micro computers.

The place for codemasters or beginners to talk about programming any language for the Spectrum.
User avatar
Nomad
Manic Miner
Posts: 522
Joined: Thu Dec 28, 2017 12:38 pm

Porting easy/hard of diffrent micro computers.

Post by Nomad » Tue Jan 02, 2018 3:27 am

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.
0 x

User avatar
Rorthron
Manic Miner
Posts: 480
Joined: Sun Nov 12, 2017 10:35 pm

Re: Porting easy/hard of diffrent micro computers.

Post by Rorthron » Tue Jan 02, 2018 4:42 am

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.
0 x

Hikaru
Microbot
Posts: 100
Joined: Mon Nov 13, 2017 1:42 pm
Location: Russia
Contact:

Re: Porting easy/hard of diffrent micro computers.

Post by Hikaru » 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:
0 x
Inactive account

User avatar
Nomad
Manic Miner
Posts: 522
Joined: Thu Dec 28, 2017 12:38 pm

Re: Porting easy/hard of diffrent micro computers.

Post by Nomad » Tue Jan 02, 2018 8:14 am

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.
0 x

User avatar
Morpheus
Berk
Posts: 28
Joined: Thu Nov 16, 2017 4:18 pm
Location: Hurworth-On-Tees, UK
Contact:

Re: Porting easy/hard of diffrent micro computers.

Post by Morpheus » Tue Jan 02, 2018 8:59 am

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:
0 x
R Tape loading error, 0:1

User avatar
Nomad
Manic Miner
Posts: 522
Joined: Thu Dec 28, 2017 12:38 pm

Re: Porting easy/hard of diffrent micro computers.

Post by Nomad » Tue Jan 02, 2018 10:32 am

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.
0 x

Ralf
Manic Miner
Posts: 543
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: Porting easy/hard of diffrent micro computers.

Post by Ralf » Tue Jan 02, 2018 12:33 pm

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.
0 x

AndyC
Microbot
Posts: 104
Joined: Mon Nov 13, 2017 5:12 am

Re: Porting easy/hard of diffrent micro computers.

Post by AndyC » Tue Jan 02, 2018 12:39 pm

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)
0 x

AndyC
Microbot
Posts: 104
Joined: Mon Nov 13, 2017 5:12 am

Re: Porting easy/hard of diffrent micro computers.

Post by AndyC » Tue Jan 02, 2018 12:41 pm

The Gameboy CPU isn't actually a Z80, so moving code between them may be less straightforward (depending on what instructions were used)
0 x

dfzx
Dizzy
Posts: 69
Joined: Mon Nov 13, 2017 6:55 pm
Location: New Forest, UK
Contact:

Re: Porting easy/hard of diffrent micro computers.

Post by dfzx » Tue Jan 02, 2018 1:02 pm

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. :)
0 x

Post Reply