Jump to content
IGNORED

Noob Atari 8-bit development and graphics questions


Recommended Posts

Hi guys! I'm pretty much completely new to the Atari 8-bit computers. I started out with the C64/128 back in the day but I've become really interested in most old home computers and their homebrew scenes. So far I've listened to pokey tunes on youtube (I looove the sound) and seeing the homebrew game Laura recently got me really excited about the Atari 8-bits.

I have a couple of noob questions if I may:

1. Are there some dedicated graphic tool(s) to create Atari 8-bit graphics? (Similar to for example spritepad and charpad on the c64) It would be fun to create some game graphic mock up(s) as a first step.

 

2. I saw there's a lot of graphic modes on the Atari 8-bits. What is the most commonly used mode in games? I'd want to know what mode is really characteristic for the Atari 8-bits.

 

3. I think I read somewhere that Atari 8-bit sprites / PM graphics are hard to use. Does games usually make use of them or are software sprites more commonly used? If they're used, is there a simple/short explanation on how they work, or could someone kindly point me in the direction of some good documentation? Mainly I'd just need to know their size and color restrictions for starters (for the mock up).

 

4. Could someone point me in the direction of some good Atari 8-bit CC65 examples? Perhaps there's some good tutorials or even some tiny template / boilerplate thingy? I know C isn't the optimal language for these old machines, but the main point would be to have fun and hack together something small. I've not enjoyed basic or assembly as much so far (maybe it's because I'm just so busy all the time :( ).

 

Thanks in advance for any help! :waving:

 

Edited by Turbo Laser Lynx
  • Like 1
Link to comment
Share on other sites

7 hours ago, Turbo Laser Lynx said:

1. Are there some dedicated graphic tool(s) to create Atari 8-bit graphics? (Similar to for example spritepad and charpad on the c64) It would be fun to create some game graphic mock up(s) as a first step.

 

Bipmap graphics and character based graphics: Atari Graphics Studio and Atari Graph2Font

Sprite editor: Atari Player Editor

Character set editors: Atari FontMaker or Atari Font Creator

Music: http://raster.infos.cz/atari/rmt/rmt.htm

 

Regarding graphics modes, the most used in games is Antic 4.

The best games use display list to mix graphics modes and display list interrupts to increase number of colors.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Thank you so much for helping out and kickstarting my A-8 knowledge! :waving: This really helps a lot.

1 hour ago, Philsan said:

The best games use display list to mix graphics modes and display list interrupts to increase number of colors.

Ah, makes sense, there's always some "tricks" to squeeze the most out of the 8-bit machines. I think I might use the standard Antic 4 mode to get used to it before perhaps moving on to more complicated stuff in the future.

  • Like 1
Link to comment
Share on other sites

I'd say the most typical mode for Atari games is 160x200, 5 colors, character mode for background and enemies, and PMG for player character.

But it's really not so simple. Most games use some kind of DLIST / DLI trick. Mixing modes is also common.

 

Btw. if you use Altirra (and you should), CTRL+F8 shows you what is made from PMG, and color changes (typically done by DLI). Mode changes (hires / lowres) are pretty much visible without any tool. It's also possible to change modes during the line (side by side) but that's more useful for intro screen.

 

Combinations and tricks are bread and butter. For example, look at my game Sails of Doom: https://atariage.com/forums/topic/283993-sails-of-doom-new-multijoy-game/

 

The intro screen is horizontal split with hires on left, and lowres on right, with PMG underlay to make the ship silhouette really black (which is otherwise problem in hires). There is also kernel routine (routine which controls hardware registers while the image is being drawn, without returning to main thread), which changes colors every line.

 

The game start menu is in hires character mode, with PMG used for cursor and player colors.

 

The game itself is 4 color lowres in bitmap mode. But the stats above and bellow are character mode hires. All ships and shells are SW sprites, 4 color flags are made using PMG, and the next 4 flags are SW sprites, using same colors as ships and islands.

 

I'd say this is bellow average amount of tricks, at least if you look at modern homebrews. It's not newbie friendly, but I know there are some serious tricks being used on C64 these days, I'm sure you'll be fine. Just analyze everything you see, and don't be afraid to ask.

 

As for docs, the holly grail is Altirra hardware manual, and for basic info I use standard wikipedia for ANTIC and GTIA. But it's a reference, not guide, and certainly not tutorial. I learned most of the things from my friends, so can't really help you here. Experimenting with G2F should get you started, but it has its own quirks.

 

 

 

Edited by R0ger
  • Thanks 1
Link to comment
Share on other sites

@R0ger Thanks for all the tips, tricks and knowledge sharing! :waving: Really valuable info. Especially using PMG for all kinds of small things seems like a smart and pretty easy trick.

 

On 9/30/2019 at 3:47 PM, R0ger said:

I'd say this is bellow average amount of tricks, at least if you look at modern homebrews. It's not newbie friendly, but I know there are some serious tricks being used on C64 these days, I'm sure you'll be fine. Just analyze everything you see, and don't be afraid to ask. 

I think I have to take the opposite approach in the beginning than pushing the limits of the system. ;) I'll keep it as simple as possible for starters to be able to learn the basics, and later I can move on to more advanced knowledge. Having "IRL" friends to show you would probably be the fastest/easiest way, but I'm really happy about being warmly welcomed and getting kind help on all 8-bit forums I've visited so far, it's the next best thing really. :)

 

On 9/30/2019 at 3:47 PM, R0ger said:

I'd say the most typical mode for Atari games is 160x200, 5 colors, character mode for background and enemies, and PMG for player character.

One follow up question if someone can help me. The reference table says that Antic 4 has 3 colors + background + toggle. I read up a little bit about the toggle color, so apparently it's the inverse character/color, BUT, can you set the toggle color yourself or do you have to plan it something like this: "on location 709 is this color, and if I show the invert character it shows the color in location 710"? So the invert color would depend on the not-inverted color chosen?

 

Link to comment
Share on other sites

Hey, thanks for asking @R0ger ! Sorry for taking so long to answer but I'm a bit all over the place at the moment so it was a good idea to gather my thoughts about my current long term project. I wrote everything down in a blog post if you'd happen to be interested:


Btw. One more follow up question if someone could kindly help me. I tried reading about the PMG's on wikipedia, but it's so damn long and technical that I didn't have the patience to figure out how many colors the A8 PMG's really are from reading that. I just wished it would spell it out somewhere in the text. Are they monochrome in "hi res mode" and three color + bg/transparent in "wide pixel mode"? When looking at the Sprite editor: Atari Player Editor it looks like that would be the case? Or do you have to stack them to get more colors? Thankful for any help!
 

  • Like 1
Link to comment
Share on other sites

8 minutes ago, Turbo Laser Lynx said:

Hey, thanks for asking @R0ger ! Sorry for taking so long to answer but I'm a bit all over the place at the moment so it was a good idea to gather my thoughts about my current long term project. I wrote everything down in a blog post if you'd happen to be interested:


Btw. One more follow up question if someone could kindly help me. I tried reading about the PMG's on wikipedia, but it's so damn long and technical that I didn't have the patience to figure out how many colors the A8 PMG's really are from reading that. I just wished it would spell it out somewhere in the text. Are they monochrome in "hi res mode" and three color + bg/transparent in "wide pixel mode"? When looking at the Sprite editor: Atari Player Editor it looks like that would be the case? Or do you have to stack them to get more colors? Thankful for any help!
 

 

The PMGs are just monochrome.  However, maybe this is the confusion, you can set a mode where when two PMGs are overlaid overtop of each other a third color is created by ORing the two colors together. You can also set a mode where all the missiles share the same color instead of their respective players.

 

 

  • Thanks 1
Link to comment
Share on other sites

If you're not into asm, I don't know if you'll find many references...

 

You could try JAC!'s youtube tutorials, -it's asm- but very much to the point. Maybe you'll still find them useful, nothing on sprites unfortunately:

http://www.wudsn.com/index.php/productions-atari800/tutorials

 

Here's a 256 bytes intro with asm source code which uses sprites: sintro by mad team http://gury.atari8.info/demos/1205.php

 

 

And another one 1KB asm again

 

 

Even if the code doesn't make sense, it'll give you an idea of what's possible. Beware though all resources in the examples above are dedicated to sprites so you may only be able to do a fraction of that in real case scenarios.

 

The best reference I found is the Altirra HW manual. you can read the other books as well if something's not clear but AHW was pretty much the only book I've consulted.

The other books are just too old, not that there's anything wrong with that but they're full of very long technical sentences written in plain english which is extremely confusing... a picture is worth a thousand words has never been more accurate.

 

Good luck porting your game to 9 platforms ?

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Thanks for all the help guys! :waving:

 

17 hours ago, Gibstov said:

The PMGs are just monochrome.  However, maybe this is the confusion, you can set a mode where when two PMGs are overlaid overtop of each other a third color is created by ORing the two colors together. You can also set a mode where all the missiles share the same color instead of their respective players.

Hey thanks! I did read about this in wikipedia, but I was hoping that there would've been a simpler "multicolor mode" :grin: There seems to be a hell of a lot of graphic and sprites modes on the Atari 8-bits :o This is obviously both good and bad. It's good that it gives you a lot of possibilities, but it makes it harder to learn and produce games for everyone. Don't get me wrong, I've already fallen in love with the Atari 8-bit computers. :D

 

10 hours ago, rensoup said:

If you're not into asm, I don't know if you'll find many references...

Well I've dabbled a tiny bit in assembly, and I like changing bits around in memory addresses, but I noticed that many of my favorite games made for old platforms were written 95% or more in C so I though it might suffice for me too. I was going to try and take the C approach first, because I'm sooo slow at asm, and I have so much I want to do and so little free time. I did find some threads about using CC65 on the Atari 8-bits, but I haven't started looking into it properly yet (mostly been doing pixel art lately).

 

10 hours ago, rensoup said:

Good luck porting your game to 9 platforms ?

Haha, I forgot one important line from that blog post (I added it now): I haven't decided which versions to take beyond pixel mock-ups. But the feeling I've had the last year says that I might keep on doing it for more and more systems. Maybe I'm done before I'm 50 in ten years :lol: Also I'm keeping the scope down with a really simple game. It's more about the fun of exploring different platforms than doing som huge epic game.

 

I would say C opens up the multi-platform possibility a little bit more as it is reasonably portable. I still need to find out if it's efficient enough for moving around a few things on the screen while playing background music (not going to do any scrolling in this game though), otherwise asm will be the only possible route to take, either to modify cc65 assembly output or to start writing games completely from scratch in asm. Already finding out how the graphic modes on these old beasts is interesting in it self too. :-D If C fails I've also been thinking about colaborations where I would do pixel art and music if the coding and/or asm becomes too much of a time hurdle.

Have you heard about Fabrizio Caruso's cross lib by the way? An abstraction layer / library for coding universal 8-bit games. I thought that project was so much fun it really blew my mind! ? If I remember correctly his game cross chase is working on over a hundred old computers and gizmos!
https://github.com/Fabrizio-Caruso/CROSS-CHASE

 

5 hours ago, skr said:

When it comes to helpful tools, take a look at MadStudio. You can find the latest version here:

 

 

It does not only let you create fonts and Player/Misilles but also gives you the code for several languages.

Hey thanks for the hint, that sounds (and looks) really great!

 

 

Edited by Turbo Laser Lynx
Link to comment
Share on other sites

25 minutes ago, Turbo Laser Lynx said:

There seems to be a hell of a lot of graphic and sprites modes on the Atari 8-bits

I can't help you with the programming details, but in the mean time here is a slightly unbalanced poem:

 

Roses are red, violets are blue

There's always a graphics mode better than the one used by you

 

  • Haha 4
Link to comment
Share on other sites

There is another problem with all that complexity. At least in my case it was like that. You will only fully understand the limitations by trying to do something. It's so complex, that nothing you will read will give you correct and complete idea about how it works. You will try to do something, it won't work, and only then you will realize that's what that one sentence was talking about. So all I can recommend is maybe less reading, more experimenting. You should be able to setup PMG or two with few pokes in basic, and then try to use every mode and every register, you get hang of it soon.

 

  • Like 4
Link to comment
Share on other sites

10 hours ago, Turbo Laser Lynx said:

 

 

Hey thanks! I did read about this in wikipedia, but I was hoping that there would've been a simpler "multicolor mode" :grin: There seems to be a hell of a lot of graphic and sprites modes on the Atari 8-bits :o This is obviously both good and bad. It's good that it gives you a lot of possibilities, but it makes it harder to learn and produce games for everyone. Don't get me wrong, I've already fallen in love with the Atari 8-bit computers. :D

 

 

The different ANTIC modes seem to be some random events.

The relevant modes are:

Mode 2 : Standard Character Mode. It's what you see in 24 Character lines, or 192 screen lines. Negative effect: Higher DMA usage . It's the Mode, when you start the Atari.

 

Mode 4 : 5 real colors Character Mode. Negative effect: Higher DMA usage. The ability of using Character moving, allowed to have games like "International Karate"

Mode 5: Same as with Mode 4. Less resolution , less DMA usage, and less Memory usage. 

Mode 6: 5 colors with restrictions to 2 colors per Character. Rather low DMA usage

Mode 7: Same as Mode 6. Lesse resolution,  less DMA usage, and Memory usage.

(Mode 6 and 7 were commonly used by BASIC Programmers, because they offer the highest speed)

Mode D : Every game that shows the powers of the Atari uses this mode. This is especially created by the Chip creators, to have a special mode that reduces DMA usage by copying a complete scanline without DMA reads.

Games like "Starraiders, Rescue on Fractalus, Yoomp! , Wayout!, Gyruss  and so on , have been build on that.

Mode E: The most boring mode on the Atari. If you see any game that looks like C64 with 4 colors, well , this is it.

Mode F: The "High Resolution Mode" . 320 x 239 Pixel is an argue. It gets interesting, if you use 32 Byte width. Allowing the Resolution of 256x239 , it allows the CPU to run faster without any details missing. The Remake of "Jet Set Willy" shows what's possible there.

 

Then there are the GTIA Overlay Modes. They use ANTIC F by standard, but also can be used with ANTIC Mode 2 .

Some Modes help to reduce ANTIC DMA . Just like Mode B . It is somehow comparable to an Amiga Graphics Mode with only using one Bitplane.

 

To make it short: The Production you want to get finished, needs the right ANTIC Mode (or Modes in a Mix).

 

 

 

Edited by emkay
  • Thanks 1
Link to comment
Share on other sites

4 minutes ago, emkay said:

The ability of using Character moving, allowed to have games like "International Karate"

  It's not mode 5:

 

  62CC:      mode 4 @ 0800
  62CF: x10  mode 4
  62D9:      mode.i 4
 

7 minutes ago, emkay said:

The Remake of "Jet Set Willy" shows what's possible there.

The 2007 version was mode F, but the 2019 is mode 2 / char based:


 

Link to comment
Share on other sites

2 minutes ago, Wrathchild said:

  It's not mode 5:

 

  62CC:      mode 4 @ 0800
  62CF: x10  mode 4
  62D9:      mode.i 4
 

The 2007 version was mode F, but the 2019 is mode 2 / char based:


 

Interesting, how you guys watch me doing mistakes. I have changed the International  Karate Part already. 

 

And OFCOURSE , I'm writing about Tezz's latest release.  And it was about the high resolution.  Alike if Mode 2 or F. 

 

 

Link to comment
Share on other sites

39 minutes ago, emkay said:

I have changed the International  Karate Part already.

Sorry, my bad then, I'd started the post and then gone off to confirm in emulation, then finished without refreshing the thread and so missed the change (edit's don't generate notifications)

 

40 minutes ago, emkay said:

OFCOURSE

No, we're not psychic, you would have written against mode 2 if writing about Tezz's version.

 

39 minutes ago, emkay said:

Alike if Mode 2 or F.

They're not alike though are they? The choice determines how the soft-sprites are handled.

Also, in Mode 2 you can animate multiple instances of a character on screen by changing the just character's data.

In Mode F you would have to write the new character data to each instance on the screen.

 

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Wrathchild said:

Sorry, my bad then, I'd started the post and then gone off to confirm in emulation, then finished without refreshing the thread and so missed the change (edit's don't generate notifications)

 

No, we're not psychic, you would have written against mode 2 if writing about Tezz's version.

 

They're not alike though are they? The choice determines how the soft-sprites are handled.

Also, in Mode 2 you can animate multiple instances of a character on screen by changing the just character's data.

In Mode F you would have to write the new character data to each instance on the screen.

 

 

Irrelevant - it's only worth using Mode D as stated " Mode D : Every game that shows the powers of the Atari uses this mode. " and in what surely must be 75% of all of his other posts.  It the search feature on the forum wasn't such garbage, I'd love to do a post count vs a "mode D" count and see the actual percentage.

Link to comment
Share on other sites

14 hours ago, Turbo Laser Lynx said:

Well I've dabbled a tiny bit in assembly, and I like changing bits around in memory addresses, but I noticed that many of my favorite games made for old platforms were written 95% or more in C so I though it might suffice for me too. I was going to try and take the C approach first, because I'm sooo slow at asm, and I have so much I want to do and so little free time. I did find some threads about using CC65 on the Atari 8-bits, but I haven't started looking into it properly yet (mostly been doing pixel art lately).

 

Not saying you should use asm of course but for understanding how the HW works, most examples are in asm (the sintro example is just 256 bytes and it demonstrates a lot of the PMG features).

 

Whatever you're comfy with!

 

14 hours ago, Turbo Laser Lynx said:

Have you heard about Fabrizio Caruso's cross lib by the way? An abstraction layer / library for coding universal 8-bit games. I thought that project was so much fun it really blew my mind! ? If I remember correctly his game cross chase is working on over a hundred old computers and gizmos!
https://github.com/Fabrizio-Caruso/CROSS-CHASE

 

Looks interesting but he obviously has to design around the lowest common denominator, so in the end he seems to have a very portable text plotter (No way to have a portable scrolling background )

 

As for graphics mode, Mode4 or ModeE are pretty much standard if you want colors at a decent resolution. The rest is fluff (except for hires monochrome)

  • Like 1
Link to comment
Share on other sites

Thanks for all the help again guys!

7 hours ago, R0ger said:

There is another problem with all that complexity. At least in my case it was like that. You will only fully understand the limitations by trying to do something. It's so complex, that nothing you will read will give you correct and complete idea about how it works. You will try to do something, it won't work, and only then you will realize that's what that one sentence was talking about. So all I can recommend is maybe less reading, more experimenting. You should be able to setup PMG or two with few pokes in basic, and then try to use every mode and every register, you get hang of it soon.

 

You're absolutely right about that. I didn't properly understand the most common color modes on the C64 either until I did a bit of experimenting and a few tests. Still I'm really thankful for all the help I've gotten here, because I still think it's nice to know a little bit before starting out.

Link to comment
Share on other sites

5 hours ago, Wrathchild said:

 

They're not alike though are they? The choice determines how the soft-sprites are handled.

Also, in Mode 2 you can animate multiple instances of a character on screen by changing the just character's data.

In Mode F you would have to write the new character data to each instance on the screen.

 

 

What is that, on and on? 

I wrote that, as I explained the advantage of character usage with "International Karate". 

But I also wrote that the High Resolution allows to use 256 pixel. It was about the DMA Cycle saving when using 32 bytes width.

 

If hires is used with Character Mode or linear graphics, is depending on the needed content. If the coder decides to have a rather complex and detailed screen, linear Graphics is the better solution. 

Less Details and more repetitive graphics DO benefit using Character Mode. 

 

 

5 hours ago, Wrathchild said:

 

 

No, we're not psychic, ....

 

 

Really?

 

4 hours ago, Stephen said:

Irrelevant - it's only worth using Mode D as stated " Mode D : Every game that shows the powers of the Atari uses this mode. " and in what surely must be 75% of all of his other posts.  It the search feature on the forum wasn't such garbage, I'd love to do a post count vs a "mode D" count and see the actual percentage.

 

 

 

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