Porting easy/hard of diffrent micro computers.
Porting easy/hard of diffrent micro computers.
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.
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.
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.
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.
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.
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.
Inactive account
Re: Porting easy/hard of diffrent micro computers.
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 cheers! The ZX80 I can't handle the screen bouncing every time you hit the keyboard.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.
- Morpheus
- Microbot
- Posts: 124
- Joined: Thu Nov 16, 2017 4:18 pm
- Location: Hurworth-On-Tees, UK
- Contact:
Re: Porting easy/hard of diffrent micro computers.
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.
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.
R Tape loading error, 0:1
Re: Porting easy/hard of diffrent micro computers.
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.
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.
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.
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.
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)
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.
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.
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.
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.
Derek Fountain, author of the ZX Spectrum C Programmer's Getting Started Guide and various open source games, hardware and other projects, including an IF1 and ZX Microdrive emulator.
Re: Porting easy/hard of diffrent micro computers.
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.All that's good practise, but it takes memory and CPU performanc
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.
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.