Jump to content
IGNORED

Ok, help me analyze this...?


KAZ

Recommended Posts

Ok, here's what I did....

 

I took the "how to make a playfield" and I assembled it into a bin file

I took that bin file and disassembled that to transform it back to a text file (I wanted to weed out all the comments)...

 

I took a pacman.bin file, and I disassembled that

 

So now I have a perfect comparison of the two to try to study (try is the key word here)

 

So I notice some differences right off the bat with these two disassemblies:

 

playfield is 21.2kb

pacman is 46.4 kb

 

Obviously pacman is bigger, since it is a complete code, right? Yeah.

 

Well so I would conclude that pacman has ALL the codes from playfield, but playfield has very FEW of the codes from pacman. That is pretty obvious actually.

 

 

So my strategy was to find those segments of code that are perfectly identical....and here are some:

 

VSYNC = $00

VBLANK = $01

 

Is it important about the spacing here?

 

Or could the code be like: VSYNC=$00

if there is supposed to be spaces, how many?

 

So you see, if I were making a game, I would conclude that I need these two first lines in my code

not to mention the "processor 6502" part

I don't know if I need that or not, but maybe I'd stick it in anyways.

 

So do you see my very tedious strategy? Any suggestions, or comments about those first two lines?

 

What does VSYNC and VBLANK do, since they WILL be in my code no matter what...

 

I think I read that VBLANK is so that the television just completely ignores everything for just that moment, like you tell it to "look the other way".

 

Ahhaa, I see another match:

 

COLUP0 = $06

That code is in both disassemblies too, so that can be added to my "list of ingredients".

COLUP kinda sounds like color to me...?? hmm

 

We're making Atari soup here people :P

Link to comment
Share on other sites

Sorry about that. I read carefully the first 8 pages or so of the Stella's Programming Guide. I am actually starting to understand some concepts...

 

It is all about that electon beam scanning across the television screen.

 

Each pass MUST have a certain amount of VSYNC lines and VBLANK lines.

 

To the extent that a player would move in this situation is taking into account this pattern, and on each "pass" you'd turn a color on or off. It would then create "animation".

 

It says that the programmer has only 76 machine cycles per line to construct this picture.

 

Obviously, this isn't something nicely put into a post, but I'm moving along slowly.

 

That's why programming routines for this seem so "long"....

it is like having many sheets of paper for animation, because you have to account for each pass of the electron beam (happening really fast).

Some of these sheets would be blank tho...which is why I see a bunch of WSYNC and VSYNC all the way down a program code. Each pass requires a set amount of them. :)

Link to comment
Share on other sites

That's precisely why coding for the 2600 is so difficult. On other platforms, the operating system takes care of the screen for you. On the 2600, you are constantly breaking away from what you want to do in order to keep the screen updated. It's kinda like taking care of a baby (except at least the baby goes to sleep once in a while!).

Link to comment
Share on other sites

For that same reason, it is rewarding to learn from because you discover what it took to program it before advances came along...

 

Of course maybe this is the same difference a rotary phone is to a touch tone phone...

 

The rotary phone takes so long to dial.

Link to comment
Share on other sites

TOn other platforms, the operating system takes care of the screen for you.  

A little correction: Not the OS, usually it's the hardware that does take care of the screen. ;)

 

On the 2600, you are constantly breaking away from what you want to do in order to keep the screen updated.  It's kinda like taking care of a baby (except at least the baby goes to sleep once in a while!).

Well, the sleep times of the VCS are called Overscan and Vertical Blank. :D

Link to comment
Share on other sites

So Nukey...

 

You have done programming but because you had hard drive crashes and whatnot you've lost all your work.

 

And this has happened to you more than once...?

 

Somehow maybe you should think of some "backup" scheme so that all your work isn't lost if something bad should happen.

 

That way we could see what you'd have in store for us if you chose to program for the Atari 2600.

 

Maybe daily backing up your programming code on disks or something.

 

Or transferring your work to an online hard drive.

 

What do you think?

Link to comment
Share on other sites

Nono...I've still got everything (it's rotting on my basement shelves). My original Atari800's motherboard went byebye about 15 years ago. I was starting to get into PC's then, so I didn't pay it much attention until I noticed a thrifty ad for an entire 800 system for 50 bucks (800, 1050, 2 printers, box'o disks, and a complete collection of Compute! issues 81-90). I started to toy around with it again, but I didn't have the same fire to complete my earlier unfinished works. Instead, I'd just been hacking into commercial stuff and getting more into the PC. These days, I'm working almost exclusively with the PC via emulation (since everything is right at my fingertips). I still fire up the 800 from time to time, partly to make sure that the disks are still readable.

I'd like to get all of it archived someday, but I still don't have an Ape cable and the thought of transferring all that stuff kinda loses it's appeal if I spend more than five minutes thinking about it ;) I'd actually like to get an entire room to devote to all of my systems, but I just don't have the space to do it right now.

One of these days...

Link to comment
Share on other sites

With emulation it seems clear to me that learning to program the Atari 2600 is about 50 times easier than it was back in let's say 1983.

 

Because you can test out your creations RIGHT away on the nearest emulator. I have my emulator right in the same directory, so after I was done dasming and distelling I just went: z26 pacman.bin

 

Back in 1983 you'd have to actually work AT atari probably, because you'd have to burn yourself a cartridge everytime you wanted to test out a code, right? Or was there another method they used to test out their code? I doubt they had "emulators" back then.

 

gonna go get my VBLANK swerve on! :twisted:

Link to comment
Share on other sites

I believe that they tested smaller routines on some type of dev. equipment (probably 8bit-based), and burned eproms at some kind of intervals to make sure that the code design held. I once saw a picture that showed an 800 being used in some game's rumor mill (EG? Vidiot?)...but I dunno if it was actually being used for 2600 code testing. My guess is that it was, since even before the crash you could purchase (?) some kind of hardware to an 800 for the purpose of creating 2600 games. Anyone know if this was vaporware, or what it was called?

 

Memory getting fuzzy...

 

The surprising thing, is that when I was hacking into AcTiVision games...the code does not vary a whole lot from system to system. Space Shuttle is a prime example. Besides the display routines, the game is virtually identical in a lot of areas to the 8-bit and C64 versions. Makes sense in a way...if they would have made the 8-bit version first, the 2600 version might have been coded quite different (since the 8-bit could have taken advantage of a few more things).

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