Jump to content
ApolloBoy

I think I might as well give up

Recommended Posts

OK, so I just downloaded a 6502 assembler and a whole bunch of documentation and sample code for the 7800. I've also read up on some programming jargon, and I thought that maybe I'd be able to finally make my own 7800 games...

 

But now I have no friggin' clue what to do. I'm looking at the sample code EricBall posted a few threads back with my 6502 assembler and I can't figure it out at all. Maybe I should just have someone else do the programming while I design the game and compose the music.

Share this post


Link to post
Share on other sites

I'm not sure if you already know assembly, but if not then that's the main hurdle. If you're already comfortable with asm, then it won't take long to pick up the 6502. From there you're just filling in some data structures for the maria chip.

 

There is a lot of stuff you have to do to get the graphics initialized though - it's frustrating to get started since you won't have any feedback from the machine until all your ducks are in a row. Much harder if you're also having trouble with the code.

 

If assembly is new to you, then I'd focus on learning that and not worry about the 7800 specifically yet. A 6502 based computer (like the 800XL) might be a better way to learn. You should be able to start with much simpler "Hello World" type apps on a real computer.

 

The A8 computers also give you a POKEY to work with, and the graphical display list concepts might be similar (I don't really know ANTIC at all).

Share this post


Link to post
Share on other sites

The A8 computers also give you a POKEY to work with, and the graphical display list concepts might be similar (I don't really know ANTIC at all).

Although The A8/5200 have "display lists" they bear little resemblence to the 7800 version. That's not to say that using the A8 to learn 6502 is a bad idea.

Share this post


Link to post
Share on other sites

The A8 is really a good platform to start with.

But you really have to invest some time to understand the 6502 it isn't done in a week if you never programmed assembler before.

Share this post


Link to post
Share on other sites
The A8 is really a good platform to start with.

 

Neat, I've always wanted to make a Blaster Master-type game for the 5200/8-bit, so maybe programming on the 800XL would give me a good start. What do you guys think?

Share this post


Link to post
Share on other sites
The A8 is really a good platform to start with.

 

Neat, I've always wanted to make a Blaster Master-type game for the 5200/8-bit, so maybe programming on the 800XL would give me a good start. What do you guys think?

 

The 8-bit/5200 is a great system to start with. I swear by this book.

 

http://www.atariarchives.org/alp/

 

Allan

Share this post


Link to post
Share on other sites

I agree...the above link to the book ASSEMBLY LANGUAGE PROGRAMMING FOR THE ATARI COMPUTERS is by far the best assembly language book on the 6502 chip I've ever came across. I was recently given an actual copy of this book and what I've read I've learned quite a bit. With this book I learned how to translate some BASIC codes (my first language) into some assembly instructions (with no purpose of course) and can also translate decimal numbers into binary numbers and vice versa. I'm new to assembly as well and for the same reason...to program the 7800. I too am going to have to find information on the MARIA graphics chip the 7800 has, but thank GOD it has the 6502 processor.

 

But then again, I'm going the hardcore route and using actual Atari equipment (a 520ST) to program the 7800. I still need to find a way to connect the two together so I can test some code. If I can find information to help you on the 800, I'll do it. Keep in mind one thing though, the XL line of Atari computers and the original 400/800 consoles are not the same...some games for the XLs will work on the 400/800 consoles, but not all software for the 400/800s will work on the XL line for reasons unknown (this is when the Tramel family bought up Atari and started, sorry to say, messing things up). If you are using this book on an 800XL, I recommend the ASSEMBLER/EDITOR CARTRIDGE for your Atari. I'm not sure where this cartridge can be found if you don't have one.

 

Good Luck on your programming adventure and remember, it's not going to be an overnight success. It will take time, practice and above all...patients. Trust me...it's still greek to me in some areas. Maybe we can help each other out as we go.

 

I forgot to add as well, the 5200 has 16K RAM , where the 800XL has 64K RAM. The 7800 from what I've read only has 4K on board...leaving you limited unless you used extra memory on the carts. Just something to keep in mind. Also, any program made on an Atari 8-bit computer can be converted to the 5200 with some extra codes for the joysticks and cartridge port.

Edited by kamakazi

Share this post


Link to post
Share on other sites

I'm not a code head, like you peeps but from what i remember...Whilst the 5200 and the 400/800 are electronically similar (exept for joystick ports and cartrdige ports), Atari changed some of the LOW RAM locations (i.e. 0000-8000h) and also changed everything in the hardware locations...i.e 800 pokey isn't in the same hardware locations as 5200 pokey and so on for antic and c/gtia

 

If you want help converting A8 to 5200 there was a couple of articles in Antic i think (a popular American Atari magazine at one time)

 

Also the reason why some 400/800 games won't work on the xl/xe is because they use different revisions of the o/s, unfortunately, programmers behind the orig.400/800 either used quick and dirty routines tied speciafically to the 400/800 o/s therefore won't work on an xl/xe also, some 400/'800 programmers used specific 400/800 o/s vectors to execute their routines instead of atari's published ones, which is also why those programs won't work on an xl or xe

Share this post


Link to post
Share on other sites
If you want help converting A8 to 5200 there was a couple of articles in Antic i think (a popular American Atari magazine at one time)

 

Are these articles available somewhere?

Share this post


Link to post
Share on other sites
If you want help converting A8 to 5200 there was a couple of articles in Antic i think (a popular American Atari magazine at one time)

 

Are these articles available somewhere?

They aren't that useful but they will help a little bit.. Check here: At the bottom of the page.

 

http://www.atarimuseum.com/videogames/cons...5200/A5200.html

 

Allan

Share this post


Link to post
Share on other sites

I don't like to bump old threads, but I've actually become interested in picking up the Cordoba Chronicles project again. I'm actually making an attempt to learn assembly, but I'm still absolutely confused. I thought I'd start on the Commodore 64 instead of the 7800 since I have an assembly editor for that and I'm thinking it would be easier to learn on than the 7800. I'm thinking once I get a grip on assembly on the C64, I could then move up and actually begin coding for the 7800. The reason I bring this up again is because I'm a bit tired of seeing people ask for arcade ports for the 7800 (no offense to those who do) and rarely asking about NES-style games like what I'm trying to work on. Don't get me wrong, I love seeing new homebrews for the 7800, but I have to yet to see any homebrews that really push the 7800.

Share this post


Link to post
Share on other sites
I'm actually making an attempt to learn assembly, but I'm still absolutely confused. I thought I'd start on the Commodore 64 instead of the 7800 since I have an assembly editor for that and I'm thinking it would be easier to learn on than the 7800. I'm thinking once I get a grip on assembly on the C64, I could then move up and actually begin coding for the 7800.

 

i always get accused of being a pessimist whenever i do this but... if you're starting up on a new platform and learning a new language, diving in with a relatively complex project at the same time might be one bridge too far; i personally feel that the C64 is a pretty easy machine to start working with but learning 6502 is going to be a challenge if you've no previous experience of either the platform or the language and adding a game design that relies on anything more complex than "move object A with joystick, shoot object B at object C to H" isn't a wise move at that stage.

 

Don't get me wrong, I love seeing new homebrews for the 7800, but I have to yet to see any homebrews that really push the 7800.

 

No offense, but until you're at least fairly well versed in a particular platform it can be quite difficult to judge what does and doesn't push it...

Share this post


Link to post
Share on other sites

Although the literature I read for the 6502 assembly language was for the Commodore 64, I actually wrote my first 6502 asm program on the Atari 2600. As you can probably imagine, it wasn't anything special (it put pink playfield stripes on the screen). Then I practiced a bit more on the 2600, which in retrospect really helped, since it allowed me to embrace things like timing issues. :-) So I cut my teeth on the 2600 for a while and then migrated over to the NES. Nowadays I kinda flit from platform to platform, even to non-6502 systems like the Colecovision...

Share this post


Link to post
Share on other sites

No offense, but until you're at least fairly well versed in a particular platform it can be quite difficult to judge what does and doesn't push it...

 

Good point. That said, I'm fairly convinced that SIRIUS pushes the 7800 while KARATEKA and CHOPLIFTER do not. :twisted:

Share this post


Link to post
Share on other sites
Good point. That said, I'm fairly convinced that SIRIUS pushes the 7800 while KARATEKA and CHOPLIFTER do not. :twisted:

I'm not convinced SIRIUS pushes the machine. I haven't reverse engineered the code but to me it looks like :-

 

First 2 zones are 16 pixels high for the fixed position status bar.

Next 20 zones are each 8 pixels high for the scrolling playfield area.

MARIA's double character mode is enabled.

Any moving sprites that are taller than the the zone height will need a DL entry for every 8 pixels of their height.

 

Background stars (fixed position) - 1 x 4 byte DL entry per zone (160A mode).

Rocks/obstacles (scrolling) - 2 x 5 byte DL entries per zone (160A indirect mode).

Moving enemy sprites - Fixed path 2/3* x 4 byte DL entry per sprite (160A mode).

Static enemy sprites - 2/3 x 4 byte DL entry per sprite (160A mode).

Player* - 2 x 4 byte DL entry (160A mode).

Missiles* - 1 x 4 byte DL entry (160A mode).

* Add an extra DL entry for movement over zone boundaries.

 

The full level data is probably created in the extra RAM in the cart. Using character mode will allow for easier collision detection with the player and the background. Its probably bounding box collision detection between the enemy and player sprites. To update the scrolling background in 1 pixel increments will require 40 writes per frame (changing the x coordinate in two DL entries over 20 zones) and an additional 80 writes (worst case and assuming no data alignment tricks) per 4 frames to move the indirect data pointers.

 

So... Not much work at all really ;).

Share this post


Link to post
Share on other sites

So... Not much work at all really ;).

 

Dude - I cannot wait to see what you pull off when you feel interested in 'pushing' the limits. ;-)

Share this post


Link to post
Share on other sites

Hang in there ApolloBoy......I know it's been a while since your original post but I am working on

a lib to make coding the 7800 a lot simpler for folks like you who have a bit of a rough go trying

to get their heads around the 7800. IT will simply allow you to write game logic and AI and not have

to worry much about the technical stuff.

 

 

EDIT: If it makes you feel better, I too had a rough time at first understanding MARIA.

;)

Edited by Gorf

Share this post


Link to post
Share on other sites

Hang in there ApolloBoy......I know it's been a while since your original post but I am working on

a lib to make coding the 7800 a lot simpler for folks like you who have a bit of a rough go trying

to get their heads around the 7800. IT will simply allow you to write game logic and AI and not have

to worry much about the technical stuff.

 

 

EDIT: If it makes you feel better, I too had a rough time at first understanding MARIA.

;)

If you create something similar to batari Basic and Visual batari Basic for making Atari 7800 games, I will lick your feet (in text form, not real tongue to toe action). :D

Share this post


Link to post
Share on other sites

Hang in there ApolloBoy......I know it's been a while since your original post but I am working on

a lib to make coding the 7800 a lot simpler for folks like you who have a bit of a rough go trying

to get their heads around the 7800. IT will simply allow you to write game logic and AI and not have

to worry much about the technical stuff.

 

 

EDIT: If it makes you feel better, I too had a rough time at first understanding MARIA.

;)

If you create something similar to batari Basic and Visual batari Basic for making Atari 7800 games, I will lick your feet (in text form, not real tongue to toe action). :D

 

A ) It's a lib, not a language. You will still need to know assembler.

B ) I admitedly don't have the balls to attempt my own language.

C ) The best it will do is give you a 32 sprite engine so all you need to do is write game logic and AI.

D ) It will be supplied with a well documented example.

E ) I'd be happy enough knowing it was useful to you so please dont lick my feet, text or otherwise. ;)

 

 

You'll essentially call some subroutines I supply. It will include features

like those in the Astrocade vector system. This is a fixed point method of

moving sprites smoothly around the screen. It will also include some math

stuff and scoring and lives libs. It wont be basic but it should go a long

way to help you concentrate on the game and not the technical.

 

Of course I'll help anyone with any questions on how to use the lib. It will

include a 32 sprite DLL with a 32 x 16 character display, joy input, math,

and some sound stuff(yes with POKEY in mind.)

 

I am essentially going to strip down the source code to WarBirds to a skeleton

so it should be pretty complete. Just write game code.

 

:)

Edited by Gorf

Share this post


Link to post
Share on other sites
I am essentially going to strip down . . .

Thanks, but foot licking is as far as I'd go. :D

 

If my brain power ever gets increased by aliens, I will learn assembler and use your useful lib to make Atari 7800 games.

 

 

Thanks.

Share this post


Link to post
Share on other sites
I am essentially going to strip down . . .

Thanks, but foot licking is as far as I'd go. :D

 

If my brain power ever gets increased by aliens, I will learn assembler and use your useful lib to make Atari 7800 games.

 

 

Thanks.

 

 

I 'll do my best to make the examples as understandable as possible. I dont think you'll

have too much of a hard time using it. I only wish Batari himself would consider a 7800

version of his awsome basic. I'd gladly contribute libs towards his efforts if he did.

Share this post


Link to post
Share on other sites
I only wish Batari himself would consider a 7800 version of his awsome basic. I'd gladly contribute libs towards his efforts if he did.

Cool. You never know what will happen in the future. That would be great.

Share this post


Link to post
Share on other sites
I only wish Batari himself would consider a 7800 version of his awsome basic. I'd gladly contribute libs towards his efforts if he did.

Cool. You never know what will happen in the future. That would be great.

 

If I had a decent clue about writing a language, the 7800 would have it and

Jaguar would already have one that uses the J-RISCS to there best possible

potential. I only wish I could do such a thing. Maybe someday I'll actually

try. I have enough on my plate for now though.

Edited by Gorf

Share this post


Link to post
Share on other sites

Hang in there Bro! I'm having a hard time learning Maria as well. If you do manage to get a sprite on the screen, let me know. Just remember that Maria reads graphics backwards. All efforts will be worth it in the end.

Share this post


Link to post
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...