Jump to content
IGNORED

Galaga for 8-bits?


Recommended Posts

A new proposal.. well mostly what I would do if I had all the time in the world x).

 

Trying to go for the arcade real proportions, using software sprites in G15, narrow field, and starting by using only 4 colors:

 

post-11240-0-86527400-1537773038.gif

 

Using 4 colors to display all the graphics in the game works pretty good, because that seems to be a limit of the hardware (4 colors per sprite).

 

Later, with the game already running, you could decide what to do with all the player/missiles.

Like use them for the layer of stars, the hud, the player's ship, to add color to some enemies (like the top ones), for the tractor beam, etc.

You probably could add colors via DLI's to the stars, without the need to use WSYNC, so that would be pretty cheap in processing time.

 

The normal arcade screen has a resolution of 224x288 pixels, and you need at least 236 scan lines to display the top enemies and the player's ship.

That's a number the A8 could display in theory, with overscan (in normal mode Altirra can show 224 scan lines).

 

Been this a graphics mode, you could use some display list tricks, like "compressing" the screen by removing some evenly spaced lines

(by skipping them in the display list, adding LMS instructions to jump over them).

Then you could offer the player some configurations like "full" screen, removing 8 lines, removing 16 lines, etc.

And you wouldn't need to change your sprite code, it would be totally transparent (memory would still be continuous).

 

Another option to remove a line could be alternating it with the next line, every other frame.

Kind of a compressed interlacing, also just by updating the display list.

 

You could also offer quality vs speed options to display the sprites, like properly masked, using xor, or just plain byte replace.

With more memory (or a cart version), you could go for precompiled sprites.

 

In X you have half the resolution, with 112 G15 pixels, so narrow field is good enough.

You have 8 extra pixels per side, that I used here to show the level "medals" and the number of lives, as an example

(with a dark grey background, that could be done with a couple of missiles).

This could complicate side clipping, but that's a problem for another time x).

 

 

Why using the arcade resolution? .. mostly to use the original movement patterns and logic.

Also, no home version seemed to have used it, so the A8 conversion would be something special.

 

Well Namco already did the work to convert the arcade code (three Z80 processors) to 6502, with the NES version.

They adapted the game for a normal home TV display (from the vertical arcade orientation), adjusting the moving patterns,

shortening the tractor beam, moving the player's ship 40 scan lines up, and removing the vertical "expansion" in the resting

enemies at the top. Still, the game feels pretty similar to the original.

 

We could use those patterns (and maybe the logic code). But, I would prefer to port the arcade version :)

  • Like 10
Link to comment
Share on other sites

I think you probably have to compromise somewhere if you want it to run on stock hardware and there will be various opinions about what it must do. For me that would be 60Hz, single line resolution with the full number of enemies - I am not concerned about colours or how the formation moves. I would not want to put a lot of effort into something unless I was confident of the results, so for me it's something only to dabble with now and then.

 

In case they may be of use these tests take the path data from the 7800 version and use exclusive-or bitmapped mode with reasonable results. The graphics for the small version come from Galactic Chase, one of the first games I brought for the A8. So perhaps I would end up doing Galactic Gala. Anyway, my "plan" is to do character mode tests next year.

 

 

 

Galaga is one of my all time faves... and damned your proof of concepts i simply had some rounds to go... I like both (except speed must be higher)... but I tested PAL maybe that's the reason... small and big are ok. small can be some different game .

 

shit... I get addicted already :D so core is right then :D

Edited by Heaven/TQA
Link to comment
Share on other sites

I take my eye off this thread for 2 secs and come back to find Playsoft has the superb basis of Galaga already...I love the small one for the speed and it looks better BUT both are amazing..

 

Like Heaven I am already bloody addicted to just blasting the little blighters...Excellent...

 

To all involved, THANK YOU...To the people that made the thread, THANK YOU...

 

/me gives virtual wholesome beverages all around!!

  • Like 2
Link to comment
Share on other sites

A new proposal.. well mostly what I would do if I had all the time in the world x).

 

Trying to go for the arcade real proportions, using software sprites in G15, narrow field, and starting by using only 4 colors:

 

attachicon.gifgalaga_a8.gif

 

Using 4 colors to display all the graphics in the game works pretty good, because that seems to be a limit of the hardware (4 colors per sprite).

 

Looks great ! And I support idea of keeping proportions as close to arcade as possible.

 

Now we just need extra fast gfx routines and rest is easy :)

  • Like 1
Link to comment
Share on other sites

To muddy the waters more... I think maybe the best method might be character mode.

VScrol tricks can be used to cheaply make the fleet expand vertically.

 

To do the horizontal spread of the fleet some character trickery and occasional movement of the text data.

There's usually not more than several actual attackers at a time, they could just be rendered using traditional char-based softsprites, though the routine would need more intelligence so to render properly over the fleet which can have variable number of scanlines not visible depending on the expansion state.

 

IMO the horizontal expansion is the more important part of the game - it increases the difficulty in that you can't just camp in one spot and easily pick off whole columns at a time like in Space Invaders and Galaxian.

  • Like 3
Link to comment
Share on other sites

IMO the horizontal expansion is the more important part of the game - it increases the difficulty in that you can't just camp in one spot and easily pick off whole columns at a time like in Space Invaders and Galaxian.

Another vote for the horizontal expansion.

The vertical one would be nice, but I can live without it.

The NES version looks ok without using it, I think.

 

Looks great ! And I support idea of keeping proportions as close to arcade as possible.

 

Now we just need extra fast gfx routines and rest is easy :)

:)

 

You also need someone to finish the sprite sheet, for all the ships with 15 degree rotations:

 

post-11240-0-47781000-1537899357.png

 

The arcade game and the NES have it easy, because it seems they have hardware to flip any sprite horizontally and vertically.

They have double the horizontal resolution of the A8, but use one quarter of the data, so in the end they use half the memory needed for the A8 version.

Well, a lot less if you add the sprite masks (that the A8 needs for properly masked sprites).

 

If you go for all the sprites, that is something like 292 frames of 32 bytes (assuming 8x16 pixels, G15), so 9344 bytes.

If you want pre shifted sprites that means adding 14016 x 3, for a total of 51392 bytes (just the ships).

Then you need to add the masks (or just use xor or replace, to draw the sprites).

 

A version for 64K probably would need to use less rotation frames and no pre shifting.

A version for 128K could use pre shifting, but would need less rotation frames also.

A deluxe version, with pre compiled sprites and everything would go in a 1MB cart :D

 

Well, at least when you have the data in G15 mode, generating different draw methods is pretty easy.

 

 

I always wanted to do a demo with just the challenging stages. Would be enough as a proof of concept.

So if someone with Z80 knowledge can look at the available source (that have some comments from what I remember), and

locates the data for the movement patterns, that would be nice x)

 

Another way to get that data could be to look at the Mame driver for Galaga.

Locate the hardware registers that control the sprite position and "orientation" data, and add some code to log

the data written to those registers every frame.

Or go for the Space Harrier way..

Edited by NRV
  • Like 2
Link to comment
Share on other sites

@NRV

 

Thanks... now you do wolfenstein in 64k and for Galaga we need 1MB hahaha.... lovely missing VIC2 sprite hardware...

Haha.. forget it!

Wolf or something similar would go in a 1MB.

If you want content, textures, music, levels, then give me the memory :).

 

Look at the good side.. it would run on a 64KB system :P

 

For Galaga I think you still can have a very good version in 64KB.

Use xor for sprite drawing, then you don't need masks.

Don't use pre shifting (there is no memory anyway).

 

The key question would be if you can create a draw routine, that could display 10 moving enemies (8?) in one frame (easier in PAL).

 

Maybe you could use only one pre shifted frame (4 bits rotation) and less sprite rotations..

Link to comment
Share on other sites

you have 3 groups of thought now... so do things split off into groups and see who does best? or does everybody work together trying in all directions... try both options and then run with whatever is showing the best response.? or everyone do their own thing and getting help from everyone as they go along. So many other ports to draw ideas from. (or wholesale ripping off of :o) Then come back and merge them.

I only mention this because it looks like the point has been reached where there are now some good ideas, bits and pieces.

Edited by _The Doctor__
Link to comment
Share on other sites

try both options and then run with whatever is showing the best response.? or everyone do their own thing and getting help from everyone as they go along. So many other ports to draw ideas from. (or wholesale ripping off of :o) Then come back and merge them.

You won't get it, as it seems ;)

 

You can do several different solutions, to have this game shining on the Atari. But you won't see "merged" solutions, because, they exclude from the other, due to hardware restrictions.

Link to comment
Share on other sites

so do things split off into groups and see who does best?

 

I'm out since I don't find this game is really a gap in the library.

Beside the mentioned ones we also have e.g. "Galaxian", "Satan's Hollow" and especially the very good "Bandits". IMHO enough to "clear the screen", even there is no tracker beam...

  • Like 1
Link to comment
Share on other sites

 

Go for Antic D (in spite of an uncongenial person advocates that) and use the GBA sprites as a base, so that you get these

 

Galaga.png

 

if you reduce the color count to 4...

Always fan of D but reduces more screen size y. Played GBA Version in Namco museum cart til death. Faithful port. Actually bought that cart just for Galaga and Dig Dug.

Link to comment
Share on other sites

I forgot that I already did 10 char pre compiled sprites, of a similar size, in my recent demo.. duh.

With just preshifted sprites I did like 7 or 8 in one frame, and with a bitmap mode I think I would get better or similar results (for sprites of that size).

So doing 8 software pre shifted sprites (plus logic) doesn't sound that crazy in G15 (NTSC, 60fps).

Don't know if the test_big in this thread is going at 60Hz? But the size of the sprites is similar at what I would like to use.

 

Also I think we can reduce the memory requirements, for the pre shifted data, in half.. by creating a draw routine that use the sprite data backwards.

Kind of a "free" vertical flip in hardware :D

 

you have 3 groups of thought now... so do things split off into groups and see who does best? or does everybody work together trying in all directions... try both options and then run with whatever is showing the best response.? or everyone do their own thing and getting help from everyone as they go along. So many other ports to draw ideas from. (or wholesale ripping off of :o) Then come back and merge them.

I only mention this because it looks like the point has been reached where there are now some good ideas, bits and pieces.

I see this as a friendly discussion to share ideas. There are similar ones from time to time.

Probably many of the people that could cooperate already have projects going on, or just don't have the time.

So I wouldn't expect a coordinate effort, but I can be wrong :)

At least I know that I would like to finish the sprite sheet for G15 (4 colors) and do the display routines, if someone

provides me with the arcade movement data :D

 

Go for Antic D (in spite of an uncongenial person advocates that) and use the GBA sprites as a base, so that you get these

 

attachicon.gifGalaga.png

 

if you reduce the color count to 4...

I forgot about those.. some of them could be useful, but I would change the colors to the ones I used on my gif :)

Wouldn't like to go to G7, but.. that would solve all the speed and memory problems.

At the expense of worse graphics and coarser vertical movement.

  • Like 3
Link to comment
Share on other sites

Always fan of D but reduces more screen size y.

 

GBA has a height of 160 pixels. We can support 120 in Antic D. When inspecting the game

you notice that the upper and lower border are not really "active" and could be reduced.

Maybe you have to "squeeze a minor number of lines out of the screen", but I think this could work anyway.

Edited by Irgendwer
  • Like 2
Link to comment
Share on other sites

You won't get it, as it seems ;)

 

You can do several different solutions, to have this game shining on the Atari. But you won't see "merged" solutions, because, they exclude from the other, due to hardware restrictions.

@emkay

I see code merged all the time borrowed, changed and spliced... wtf are talking about again? You don't get it... I watch graphics swapped changed and all the time.. I watch sprites redone all the time as well as characters mapping... But yes we agree it can shine on the Atari..

 

@Irgendwer

I didn't mean to chase anyone away... I just wanted to know what direction and feelings everyone had and what they preferred to do in terms of it all. Your very good, I don't want to lose you. I am certain your far more constructive than I am, as time progresses I find some days I can't even name my children without thinking about it any more... Hope I didn't miss word anything. Hope you keep chiming in and helping. If I misspoke, offended some how or chose a wording that translates badly I apologize... what did I do?

Edited by _The Doctor__
Link to comment
Share on other sites

It is very unlikely for one approach/project to result from all of this discussion - as always it's up to the programmers to go whichever way they think is the right approach for them.

 

Galaga has that distinctive cutesy look to it - and it'll be a shame to lose that - in favour of faster/smoother/responsiveness.

 

I'm never happy with a clunky look - that Gyruss has --- being a graphics guy - it crossed that minimum threshold.

 

Anyway - what data/etc that can be shared/used by all versions - would save on others having to do the same work - and allow them to focus on the really technical bits - the challenge of making this particularly difficult game type a reality on this Atari 8-bit hardware.

 

And if it ends up there being more than one competent conversion - then - there's the room to include some relatively minor enhancements to make that version stand out on it's own. To add some hint to Galaga '88 - and/or Gaplus.

If it ends up taking up to 1 to 3 years for completion - I think it'll all be worth it.

 

And would perhaps answer the question of - whether it was possible - back in the day?

Or it had to wait until later hardware possibilities (eg. bankswitching) to show up?

 

IF there is the option of adding some extra enhancement to the graphics - without detracting from the standard graphics requirement - it would be good to add it on.

 

Harvey

Edited by kiwilove
  • Like 3
Link to comment
Share on other sites

Just to clarify. I like NRVs calculations... as it shows that yeah we can do it on a8 just use soft sprites just leads to that memory constraints. Must be hard for the 48k spectrum coders back in those days.

 

Those 2600/800/Amiga sprite hardware shows its limits.

 

I like the 7800 version, too. Its not that bad? Can stuff be used from there? Isnt source code available?

 

http://www.atarimuseum.com/videogames/consoles/7800/games/

Edited by Heaven/TQA
  • Like 1
Link to comment
Share on other sites

@Irgendwer

I didn't mean to chase anyone away... I just wanted to know what direction and feelings everyone had and what they preferred to do in terms of it all. Your very good, I don't want to lose you. I am certain your far more constructive than I am, as time progresses I find some days I can't even name my children without thinking about it any more... Hope I didn't miss word anything. Hope you keep chiming in and helping. If I misspoke, offended some how or chose a wording that translates badly I apologize... what did I do?

 

???

I have no idea what you like to apologize for. If I sounded harsh, that was not my intention. I tried only to say I'm very unlikely a concurrency/supporter regarding this game/genre. That's all. (Plus I'm having currently already two very ambitious projects on the table which keep me a while quite busy. So NRV ("Probably many of the people that could cooperate already have projects going on...") was 100% right.)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...