Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

thanks for the explanation. Actually I challenge anyone to create a 50FPS Galaga exact clone on A500. There are 64 sprites to display, and the trajectory & frame computations are complex. Check other games of the category like Galag or Deluxe Galaga it doesn't move as many objects.

The explanation about the transcode is actually incorrect. The Z80 is converted with a tool, but manually reviewed and optimized, so you can consider that it is 68000 native code. The only issue is that even degrading to 25FPS, the game logic still has to run at 50FPS.


Maybe something could be done with hardware sprite multiplexing but it's pretty difficult to achieve technically. You'd have to compute the exact row where to reassign each sprite to another one, and you could only use 6 sprites horizontally, which means that the attack waves are out of the question. Only a part of the swarm could be handled that way. That could work, but it's a lot of work and finetuning. It's the only option that could ensure 50FPS.

(5 edits)

Yes, it's true, there are alot of sprites and they also move very quickly, which makes the whole thing not easier. But i think it should be possible on a A500, because even for the C64, a good Galaga port exists in the meanwhile, from Arlasoft. Of course not as good as the Arcade version, that's clear, because the C64 is a 8bit machine, but really well playable, i must say. Some 'tricks' were used there, because of the big number of enemies on the screen, but at last, it was implemented well (not perfect but well), which I would never have thought possible on a C64, because Galaga is not easy to port, especially for 8bit machines, i guess.

Sure, a 1-to-1 port of the Arcade version is a different story again, but a Amiga500 is technically much stronger than a C64 and there are alot of games there, running on a plain A500, that looks more impressive than Galaga. But you will definitely know more about programming on the Amiga than I do, i have only little experience with this. Interesting information about the Z80 and how it was converted.

Hardware sprite multiplexing could be a solution here, sadly i can not help (because Nekoniaew suggested that) in such points, since i haven't programmed a game on the Amiga yet, otherwise i would help of course. I only expressed my opinion on the game and things like the slowdowns can be mentioned, but that doesn't mean, that I think the port is bad. I think it's great, that you're actually doing the work, to port some of the best old arcade classics to the Amiga, and most of these ports are really good too.

(1 edit)

I did  not know about the manual rework of the transcoded Z80 code, thanks for the precision.

Dynamic sprite multiplexing is feasible, Silkworm does it constantly with the missile/bullet sprites and it works great even if sometimes one or two sprites cannot display because the game goes over the sprite-count-per-scanline limit.
Why do you mention 6 sprites as the horizontal limit? As far as I can see there is no horizontal scrolling so no sprites are "eaten" by the extra scroll DMA fetch, is the game overscan or is it because you are using the last two sprites for the player ship?

Maybe it would be worth using the Blitter for the player ship to gain two extra sprites for the ennemies.

This said, as you hinted, even 8 sprites per scanline are way under what Galaga displays so this would still be a challenge indeed. Maybe a combination of Blitter and hardware sprites would have to be used but this would complicate even further any "object multiplexer". For such a simple game, Galaga is indeed tricky to adapt.

In any case, good job!   👍