ApolloBoy Posted April 24, 2007 Share Posted April 24, 2007 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. Quote Link to comment Share on other sites More sharing options...
gdement Posted April 26, 2007 Share Posted April 26, 2007 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). Quote Link to comment Share on other sites More sharing options...
EricBall Posted April 26, 2007 Share Posted April 26, 2007 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. Quote Link to comment Share on other sites More sharing options...
Schmutzpuppe Posted April 26, 2007 Share Posted April 26, 2007 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. Quote Link to comment Share on other sites More sharing options...
ApolloBoy Posted April 26, 2007 Author Share Posted April 26, 2007 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? Quote Link to comment Share on other sites More sharing options...
+Allan Posted April 26, 2007 Share Posted April 26, 2007 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 Quote Link to comment Share on other sites More sharing options...
kamakazi Posted August 19, 2008 Share Posted August 19, 2008 (edited) 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 August 19, 2008 by kamakazi Quote Link to comment Share on other sites More sharing options...
carmel_andrews Posted August 20, 2008 Share Posted August 20, 2008 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 Quote Link to comment Share on other sites More sharing options...
Tom Posted August 21, 2008 Share Posted August 21, 2008 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? Quote Link to comment Share on other sites More sharing options...
+Allan Posted August 21, 2008 Share Posted August 21, 2008 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 Quote Link to comment Share on other sites More sharing options...
ApolloBoy Posted October 20, 2008 Author Share Posted October 20, 2008 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. Quote Link to comment Share on other sites More sharing options...
ApolloBoy Posted October 22, 2008 Author Share Posted October 22, 2008 Here's an updated version of the CC manual that I posted over a year ago on my blog; I still have yet to list the items you can acquire and stage descriptions. Cordoba_Chronicles_Manual_Draft.doc Quote Link to comment Share on other sites More sharing options...
TMR Posted October 23, 2008 Share Posted October 23, 2008 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... Quote Link to comment Share on other sites More sharing options...
doppel Posted November 27, 2009 Share Posted November 27, 2009 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... Quote Link to comment Share on other sites More sharing options...
DracIsBack Posted November 27, 2009 Share Posted November 27, 2009 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. Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted November 29, 2009 Share Posted November 29, 2009 Good point. That said, I'm fairly convinced that SIRIUS pushes the 7800 while KARATEKA and CHOPLIFTER do not. 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 . Quote Link to comment Share on other sites More sharing options...
DracIsBack Posted November 30, 2009 Share Posted November 30, 2009 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. Quote Link to comment Share on other sites More sharing options...
Gorf Posted January 11, 2010 Share Posted January 11, 2010 (edited) 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 January 11, 2010 by Gorf Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 11, 2010 Share Posted January 11, 2010 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). Quote Link to comment Share on other sites More sharing options...
Gorf Posted January 11, 2010 Share Posted January 11, 2010 (edited) 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). 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 January 11, 2010 by Gorf Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 11, 2010 Share Posted January 11, 2010 I am essentially going to strip down . . . Thanks, but foot licking is as far as I'd go. If my brain power ever gets increased by aliens, I will learn assembler and use your useful lib to make Atari 7800 games. Thanks. Quote Link to comment Share on other sites More sharing options...
Gorf Posted January 11, 2010 Share Posted January 11, 2010 I am essentially going to strip down . . . Thanks, but foot licking is as far as I'd go. 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. Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 11, 2010 Share Posted January 11, 2010 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. Quote Link to comment Share on other sites More sharing options...
Gorf Posted January 13, 2010 Share Posted January 13, 2010 (edited) 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 January 13, 2010 by Gorf Quote Link to comment Share on other sites More sharing options...
kamakazi Posted February 15, 2010 Share Posted February 15, 2010 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.