Petscii Robots Part 4 - Atari and X16

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Up to this point, Petscii Robots has been working  on the Commodore PET, which was the original   platform for the game, the Commodore 64, VIC-20,  Commander X16, and even the Apple II. And in this   episode I am going to show off the new version  for the Atari 8-bit computers, and the updated   version for the Commander X16 and talk about  some of the interesting challenges along the way. Around the time the Apple II version was going  on sale, I was contacted my Christian Kruger,   who was interested in doing a  port for the Atari computers.   So, I sent him the source code to the PET  version. And by the way, all 6 versions   of the game have been converted from the PET  version. A lot of people think, for example,   that the Apple II version was converted from the  C64 version. But it’s not. The PET version is the   easiest starting point because it doesn’t  use any graphics, sprites, or fancy music. So, like a month goes by and I  haven’t heard anything, which   is not unusual. A lot of people ask for the source  code to my games only to find that they’re simply   not qualified and they’re in over their heads,  and so nothing ever comes of it. Nevertheless,   like a month later I got this email from Christian  saying “well, here it is, it’s all done.” So, I was a bit skeptical. So I fired up  my Atari 800 emulator and mounted the disk.   Only to find that, well, yes. It was  done. He did an exact 100% port of the   PET version. I mean, quite literally it  is identical, even the sound and music. The thing is, of course, I was sort of  expecting a bit of an enhancement since   it’s running on a much more  capable machine than the PET. So, we started talking about ways we could enhance  the Atari version, and that opens a whole new   can of worms we’re going to talk about here in a  minute. But, about a week after the first port was   done, I got this email from Blair Wilson and he  also attached a fully working version of the game. And well, here it is. And yes, it’s basically a  port of the PET version as well. Now the thing is,   I didn’t send him the source code. And no  he didn’t get it from anyone else either.   He had taken the PET version and ran it through  a dis-assembler. Now what that does, it will take   6502 machine code and turn it back into a source  code. Sort of. This is what that looks like. It   basically just makes up random names for labels,  and of course there are no comments of any sort.   So this leaves a person with a ton of work  to do because they have to try to figure out   what each piece of code does and  then try to document it themselves.   And then he had to make the changes  necessary for this to run on an Atari. So, I replied to him and told him how impressed  I was with his reverse engineering. And then I   told him that “hey, you know, if you’d  just asked me for the source code,   I would have sent it to you. I  actually sent him a copy right then.   And then of course I also told him that there  was in fact an official port already in progress. Anyway, so back to Christian’s port.  Obviously the first thing I thought we   should do is improve the graphics  and give it some color. However,   this is where I found out my knowledge of  Atari graphics systems was somewhat limited. To my surprise I learned that text mode on Atari  8-bit systems is monochrome. Which struck me as   odd being I’ve seen color in so many different  Atari programs. In fact, when I boot up my Atari,   I’m presented with a blue screen. Well, it turns  out the Atari allows you to select a global   foreground and global background color. But you  can’t change the color of individual characters.   Sometimes, some Atari programs will use  raster controls called display lists to   change the color of a line of text, which  gives the illusion of full color text,   but you still can’t control  a single character’s color. Of course, it is possible to get more  color, but it comes with great sacrifice,   which I’ll talk about in a bit. But first, I want  to tell you a little bit about the character set. So, this is the Atari character set.  It consists of 128 unique characters.   As you can see it has upper case, lower  case, and a few graphic characters. But,   it also has an additional 128 characters which are  hardware reversed. So, while it technically has   256 characters, the second half of those will  always be a reversed image of the first 128. This behavior is actually identical to how the  Commodore PET character set works. Except the PET   drops the lower case set in favor of more graphics  characters. But the Atari does have one big   advantage over the PET, these characters can be  customized. Well, at least the first 128 can be.   So, it’s really easy to load in the character  set from the PET on the Atari. And thus,   Petscii Robots, that is the PET version, was  relatively easy to get working on the Atari. So, the question was, would it be possible to  enhance the characters like I did on the C64   and VIC-20? Well, yes and no. The Commodore  64 actually has 256 completely customizable   characters. It just so happens the default  character set has the second half reversed   so that it mimics the PET, but make no mistake,  all 256 of these can be used however you want.   Which honestly, still wasn’t  enough to really do what I wanted.   But, now I’m being asked to create  a tile set using half that number. So, rather than create a new program to do this, I  just modified the existing tile editor I had been   using on the Commodore 64. I made it so that  the second half of the character set is always   a reversed copy of the first. And then I worked  for days to construct a tile set that makes the   most efficient use of this setup. And, believe it  not, I actually did the testing for this tile set   with the Commodore 64 version like this. I know,  it looks weird with everything being in color   except for the play field. Nevertheless,  this proved invaluable for the process.   In the end, here’s what the new Atari character  set looks like. I’m actually using 100% of   the first 128 characters, and then I’m using  about half of the reversed characters as well. Now, if you’re wondering what these  7 little square pieces are. These   are just placeholder characters,  I’ll explain that in a minute. And so here we go. Christian had spent some time  working on the weapons and items display. He   used some sprites in those areas much like I did  on the C64. And although those could technically   be color, we both agreed that it looked out  of place so he went with a grayscale look. Also, notice that we have a much nicer looking  player character as compared to the little   stick figure of the PET version. This is where  those little 7 boxes come into play. The player   is actually composed of 7 characters. But the  player character exists in 8 different states   of animation. So, quite literally every time you  move a tile, these 7 characters are reprogrammed   on the fly. And believe it or not, that’s  exactly how the VIC-20 version works as well. Some people have said that it still  looks like PETSCII, but it’s not.   I wanted to show you some screenshot comparisons  between the PET and the Atari version, starting   with this one. I’m just going to keep alternating  these so you can see all of the changes. I mean,   the side panel is sort of obvious, so no need to  even mention that. But if you look at the floor,   the crates, and of course the player character,  you’ll see the difference. Here’s another view,   this time an outdoor view. You can see the  grass and trees look considerably better.   And here’s one last comparison. Obviously the  canisters are round and look nicer, but also the   bathroom sinks look better too. So yes, it’s  still monochrome, it’s still character mode,   but I do think it looks a lot  better than the PET version. However, at this point we were still  using the sound engine from the PET.   So Christian began work on  enhancing the sound some, and   here’s what he came up with. There’s no dedicated  music track like the C64 and Apple versions got,   so it still has the same musical track from the  PET. In fact, the music is disabled by default,   but you can turn it on with SHIFT-M. But the  sound effects have been vastly improved. Plus,   the sound effects run on different voices than the  music, so they don’t interfere with each other. So one question is likely to come up, which is  people are going to be asking why it is that   other Atari games clearly have plenty of color and  why Petscii Robots can’t? Well, these other games   are likely using color tile mode, or bit-mapped  graphics mode, or some combination. Petscii Robots   could use these modes as well. But, using the  color tile mode comes with significant tradeoffs.   For one thing, your horizontal resolution is cut  in half. So everything would be a lot blockier.   But the second problem is, in color tile mode, you  sacrifice the reversed half of the character set,   which I needed those desperately to  make the tiles I already had. So,   it could be done, but Christian and I both agreed  the monochrome version was probably for the best. And now I want to show you this. This is an  experiment from Blair Wilson using Atari’s   5-color text mode. This will illustrate  some of the things I was talking about. So,   obviously it looks chunkier, but that’s not  the end of the world. The two main problems   are lack of available characters to use to draw  any detail. And, of course, another problem that   may not be as obvious. The Atari still has  no color-RAM like Commodore machines have.   So while you can assign one of 5 colors to a  character in this mode, it will affect every   instance of that character anywhere on the screen.  So, if you needed a red circle and a blue circle,   you’d have to have two separate characters for  that, which as you know are in short supply. As for bit-mapped graphics mode, well,  that could certainly be done. That’s how   the Apple II version works, as discussed in  the last video on Petscii Robots. However,   this requires a significant rewrite of the display  system. That also means it would need more RAM,   which probably means the Atari 800 would no longer  be able to play the game. And quite frankly,   Christian wasn’t willing to commit to  such a massive undertaking by himself,   and I don’t blame him. The Apple II version  had a team of 5 people working on it.   Where the Atari version is basically  just Christian and a little help from me. And so there we have it. This  is Petscii Robots for the Atari.   It’s not going to knock your socks off or  anything. I mean, visually it’s not the   most impressive version of this game. But, it  does play very nicely. It’s just as smooth and   responsive as the Commodore versions, has all  the same levels, and is just as fun to play.   And there is just a tad bit of color used. When  you take on damage, the background flashes red,   and when you use the EMP it flashes blue. This  is consistent with the Commodore versions too. Also, the Atari version is compatible with  this guy. It’s a new adapter that will let   you connect an SNES controller to the Atari,  so much like the Commodore and Apple versions,   it can be played with an SNES controller. However,  unlike this Commodore version, these will not be   included with every boxed copy. Of course the  Atari version will be cheaper to compensate. So what kind of Atari 8-Bit setup will you need to  run the game? Well, the basic requirements are 48K   of RAM and a disk drive. So, that means most any  Atari 8-bit system will work except for the 400   and the 600XL because they don’t come with enough  RAM. However, if you are handy with a soldering   iron, these can be upgraded to 64K, in which  case they should be compatible at that point. And now I need to talk about a matter of  economics. So, the Apple II port got it’s   own box and it’s own manual. And the  Apple II port also set me back about   ten thousand dollars. In order to even break  even, I needed to sell about 300 copies,   which unfortunately, I have yet  to do. I have only sold about 260.   Where the Commodore version, on the other  hand, has sold like 6 times that many.   So, I’m trying to be a little bit more realistic  with the Atari version and so this is the plan. I’m going to re-use the Commodore box, but I’ll be  putting a sticker over the fake sticker it already   has, showing the Atari specs. I’ll be re-using  the Commodore manuals as well. Since after all,   most of the manual is devoted to the gameplay,  which is the same on all versions. And I’ll   have an extra insert here for the Atari with some  information that is unique to the Atari version.   I do have a dedicated disk label for the  Atari version. I went with a gray background   to differentiate it from the Commodore and Apple  versions. Funny thing is, this sort of thing   was common practice back in the day anyway. So  there’s really nothing unusual about doing this.   But anyway, hopefully this means I’ll only  need to sell maybe 150 copies to break even. So, moving along, let’s talk about the Commander  X16 version. In the last video on Petscii Robots,   I showed that I had ported over a  color-PETSCII only version of the game.   It used no graphics whatsoever, used  the same sound system from the PET,   and worst of all had this huge gap at  the bottom of the screen. Of course,   this was always just meant as a quick proof of  concept. I wanted to eventually have it look more   like the Apple IIgs port that was in the works,  although that is currently stalled at the moment. So, one problem with doing an X16 port is  there’s just a complete and total lack of tools.   For example, it’s really difficult to  compose music for the X16 when there’s   no tracker available. So there’s  a laundry-list of things like this   that need to be completed before the  game itself can be fully realized. The other problem I had with  the X16 was somewhat unexpected.   The video and sound systems in the machine  are just so versatile. They might actually be   too versatile. So, I actually spent months trying  to figure out which was the best direction to go,   using which features to do what things, because  I didn’t want get deep into a huge amount of   investment of time in working on the game only to  realize I should have gone a different direction.   Because, I’d have to start all over again,  it would be a big huge waste of time.   And so, I was stuck for several months  in something called “analysis paralysis.” For example, the video chip is a 3 layer system.   The way this works is you have a top layer that  can work in any number of modes such as text mode,   graphics mode, multi-color tiles, etc. Then  you have 128 sprites that live in the middle,   and then a bottom layer that also  works exactly like the top layer. So, I tried to consider how best to construct a  game like this. I considered using full bit-mapped   graphics like the Apple-II version. I even  considered using sprites for the play field.   Since there are only 77 tiles and the video system  supports 128 sprites. I could literally make each   tile a sprite. Then all I’d need to do is change  the base-address for each sprite to determine   which tile it was going to display. The only  reason I wasn’t able to do this is that my tiles   are 24x24 pixels in size, and the nearest sized  sprite would be 32x32 in 16 colors. So a lot of   the sprite area would simply be wasted. Multiply  that by 256 different tiles needed and the amount   of video RAM needed was actually 128K, which would  leave no room left for anything else in video RAM. So, anyway, let me show you what I do have.  The title screen is a 16 color bit-map image.   And it’s actually packed with an  RLE compression system I devised   just for this game. Another one of those tools I  said had to be made. And, so lets start the game. So, as you can see, I’ve reworked everything  so that it now fits the screen size properly.   Now, let me tell you what you are looking  at here. This part here is layer 1 and is   a bit-mapped graphics image. This  part here is text mode on layer 0.   And this part here is all sprites. So you can see  how I’m using the different layers of the X16. At the moment, I’m still using the same character  engine from the Commodore 64 version, with the   same tile set. It looks pretty good, but it’s  still temporary. At some point, I plan to rework   this part to run in bit-mapped graphics mode,  and borrow those Apple IIgs graphics I talked   about earlier. But for the moment, it doesn’t look  too bad, actually. But, anyway, hopefully it makes   sense why, for example, the weapons and items  displays look so much nicer than the play field. So… about the sound. Believe it or not, this  is still more or less the same sound engine   from the PET. The only thing I added was the  ability to set waveforms for specific sound   effects. This makes things like the explosion  much nicer. But this is all temporary as well. As you can see, I’m working on a tracker here,   which will allow me to design custom music and  sound effects for the X16, taking advantage of   it’s 8 voice PSG. At some point I might even  have music for the Yamaha FM sound chip.   This tracker is still a work in progress, but  as you can see, it is somewhat operational. Here’s another thing we’ve experimented  with. This code is by George Kirkham. And   he wrote essentially a software emulator that  allows the original game music for the C64   to work on the X16’s sound system.   Clearly it isn’t perfect, but it does work.  But I think everything would be cleaner just   to have a native tracker for the X16,  so that’s the route I’m going for now. And so, the game is still in a  transitional stage of development.   I’m leaning heavily on assets from  other versions of the game since I   don’t have all of the tools needed on  this platform. But it’s getting there. And so, there you have it. The Petscii Robots  have invaded nearly every 6502 based system.   The only things that remain if anyone would like  to take the challenge would be the BBC micro,   the Nintendo, and Super Nintendo. I suppose  it might even be possible to port it to the   Atari 5200 and 7800, but I’m definitely not  up the challenge on any of these systems. That being said, I definitely plan  to start work on an MS-DOS version   at some point maybe later this year. But that’s  it for this episode. I probably won’t have another   video on the channel until after I return from VCF  Midwest. So, in fact, the very next video will be   filmed on-site at VCF Midwest. So, stay tuned  for that, and as always, thanks for watching!
Info
Channel: The 8-Bit Guy
Views: 297,322
Rating: undefined out of 5
Keywords:
Id: r9J64LgG5p0
Channel Id: undefined
Length: 17min 53sec (1073 seconds)
Published: Mon Aug 30 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.