Jump to content
IGNORED

interested in programming for the 7800


Recommended Posts

Hi guys, I have some ideas that I would love to see become 7800 games. However I have *zero* experience in programming for that or any other system. What are some good resources for the regular guy? Thanks!

 

By the way, my ideas are a first person WWI dogfighter and a Super Mario Bros port.

 

Edit: I somehow missed the very top thread, which seems very conclusive!

Edited by toptenmaterial
Link to comment
Share on other sites

When you say "zero experience in programming", do you mean:

  1. You have no programming experience whatsoever. If so, there are far, far better places to start than the 7800. (Maybe batari Basic if you want to work on a console rather than a PC.)
  2. You have programming experience, but only with high level languages. Again, you might want to start somewhere else. IMHO the 7800 is tough to use because you have to write a lot of code to get things happening on screen.
  3. You've programmed in assembly, but not in 6502. See #2, although if you have experience in more than one ISA then picking up the 6502 isn't too bad. (Until you discover the index registers are only 8 bit.)
  4. You have 6502 experience, but have never programmed any games. I'd advise reading through the documentation linked to in the first thread before setting your heart on making a game for the 7800.

I know this may sound discouraging, but the only way a game gets done is if you want to do it and are willing to put in the time and effort and work through a lot of challenges.

 

Finally, my thoughts on your game ideas:

  • WWI dogfighter
    The 7800 GPU is sprite based with some tile abilities. There is no bitmap mode like the Apple ][ or C64. So anything on-screen has to be pre-rendered, not drawn with lines (ala vector graphics). Thus stuff which has to be at multiple angles is going to use up a lot of memory.
  • Super Mario Bros port
    Ahh.. the desire of many a 7800 fan. Although it might be possible to create a SMB style game on the 7800 (and even possibly re-use some NES assets), there's just too many differences between the systems to make a port feasible. See my comparison of the 7800 and the NES.

  • Like 2
Link to comment
Share on other sites

The 7800 GPU is sprite based with some tile abilities. There is no bitmap mode like the Apple ][ or C64. So anything on-screen has to be pre-rendered, not drawn with lines (ala vector graphics). Thus stuff which has to be at multiple angles is going to use up a lot of memory.

Not exactly true, although additional RAM (on cart, xboard, or XM) is needed to make a bitmap screen of any size and resolution that you want to be update-able.

  • Like 1
Link to comment
Share on other sites

I have discovered some nice step-by-step 2600 guides, perhaps that's a better place to start after all.

Are you talking about these:

 

www.randomterrain.com/atari-2600-memories.html#assembly_language

 

Or have you have you discovered others?

Edited by Random Terrain
  • Like 1
Link to comment
Share on other sites

I was initially referring to the ones by Andrew Davies. I do see that you have a comprehensive list as well.

 

My computer is soon to go into the shop to get it's very small keyboard repaired. When it returns, I would like to start work in earnest. I find that organizing some of this stuff is like math; I am capable but it's like my mind shuts down.

 

By the way RT, I saw the 2600 platformer demo you did on YouTube. I had no idea that was you until I visited your site again earlier tonight. I find that 2600 graphics can be quite pretty.

 

So, I'm getting the sense that the 7800, for a beginner, is tougher to write for than the 2600?

Link to comment
Share on other sites

Re: Is 2600 harder?

 

I submit that with Batari Basic, it really isn't. The thing is, bB only has a few features. You use them, or not, leaving the new programmer to focus on the game.

 

If expectations are too high, bB won't be rewarding. But, if the graphics are secondary, I think it's a great environment, because it's possible to make stuff happen in real time easily.

  • Like 1
Link to comment
Share on other sites

So, I'm getting the sense that the 7800, for a beginner, is tougher to write for than the 2600?

In my personal experience, yes; for the following reasons:

  1. I don't believe there is a high level language for the 7800 like bB for the 2600.
  2. The TIA is fundamentally easier to understand that MARIA. (Playfield + sprite registers versus display list.)
  3. It takes more code on the 7800 than the 2600 to get something other than a black screen.
  4. Stella has a built-in debugger, I don't believe any of the 7800 emulators have any significant debugging capabilities.
  5. More 2600 sample code available.

Link to comment
Share on other sites

I don't believe there is a high level language for the 7800 like bB for the 2600.

 

I'll have to disagree on that. I've been using "C" and my own assembly language games library for a couple of years now. My games Wasp!, Worm!, Harry's Hen House, Fruitarian, Monster! and Halloween are all developed using it.

 

It takes more code on the 7800 than the 2600 to get something other than a black screen.

 

Agreed. But once you get up and going on the system you can pretty much use the same code for most of your projects.

Link to comment
Share on other sites

I don't believe there is a high level language for the 7800 like bB for the 2600.
I'll have to disagree on that. I've been using "C" and my own assembly language games library for a couple of years now. My games Wasp!, Worm!, Harry's Hen House, Fruitarian, Monster! and Halloween are all developed using it.

Let me correct that. There is no publicly available HLL for the 7800. Not to say that you have any obligation to make your toolchain available to others, but your personal toolchain doesn't help the OP achieve his programming dreams. Thus, if he wants to program the 7800 in anything other than ASM, he will need to develop the necessary tools.

Link to comment
Share on other sites

Let me correct that. There is no publicly available HLL for the 7800. Not to say that you have any obligation to make your toolchain available to others, but your personal toolchain doesn't help the OP achieve his programming dreams.

 

I am fully intending to release the "C" development system (plus assorted tools). What's holding me back from doing so is that it has no documentation for the custom library or any example games to try out yet. Without documentation and examples people will find it hard going to get anything done, especially if they have to learn "C" on top of everything else.

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

I am fully intending to release the "C" development system (plus assorted tools). What's holding me back from doing so is that it has no documentation for the custom library or any example games to try out yet. Without documentation and examples people will find it hard going to get anything done, especially if they have to learn "C" on top of everything else.

Any change of releasing this to the public?

I have plenty of C experience but getting back to assembly after 20 some years is just torture :woozy:

Link to comment
Share on other sites

Any change of releasing this to the public?

 

Yep! When I've finished several other projects its on my list of things to do.

 

At the moment the games development system allows you to create your game in "C". The speed critical things like sprite zone cutting and X, Y placement are handled in assembler leaving "C" for the logic and AI. The assembly language library has nearly 60 functions and a load of variables, structures and #defines to use. The library handles sprites, MARIA zone control, joystick, sound, palette, PAL/NTSC detection and the XM. There are also command line programs to handle graphics conversion, A78 headers, ROM releases, etc. What it doesn't have is documentation or example games or templates.

 

To make it a more friendly environment (if "C" can ever be friendly :lol:) I also need to write some Windows apps to handle make files and create game templates and the like. Plus I'd like to change some of the command line tools into Windows GUI apps to make them easier to use because not everybody is happy in a command line environment. When you also add example games, templates, programming documentation, game making information, MARIA handling, etc its quite a hefty project.

 

Edit: Added more about what is needed to get everything into a releasable state.

Edited by GroovyBee
Link to comment
Share on other sites

I appreciate you thinking about releasing it. It would certainly help newbies like me to get in to the game again

Last time I did any assembly was on a 800xl and that was a long time ago.

I'll dig up my assembly code book and start reading again and try to find out how to get some sprites on the screen.

I think I've seen some examples posted around the site and will give them a try.

Link to comment
Share on other sites

Last time I did any assembly was on a 800xl and that was a long time ago.

I'll dig up my assembly code book and start reading again and try to find out how to get some sprites on the screen.

 

Sprite handling on the A8s and the 7800 are completely different. You'll need to read the appropriate MARIA technical documents. The one from GCC is the best one.

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