Jump to content
IGNORED

Atari 2600 BASIC compiler is here!


batari

Recommended Posts

I don't want to try this yet until it has settled down a bit, but it sounds like it's going to be cool. :thumbsup: Will this eventually be merged into an existing emulator so that you can instantly try out ideas (like you could with Blitz Basic) or will you have to compile it, then run it using an emulator? Blitz Basic instantly compiled your programs to ultra fast, 100% machine code before running each time, so you could have instant feedback. It would be cool if you could do something similar with this by integrating an emulator.

889404[/snapback]

 

You know a simple script and two open windows gets all of this done. I can edit a statement, then see the result less than 3 seconds later... that's pretty darn instant, if you ask me.

Link to comment
Share on other sites

You know a simple script and two open windows gets all of this done.  I can edit a statement, then see the result less than 3 seconds later...  that's pretty darn instant, if you ask me.

889420[/snapback]

Looks like Attendo has made it even more instant, with the possible addition of a sprite editor too.

 

Can we make multi-colored images yet with this?

Link to comment
Share on other sites

If this turned into a full fledged thing that can work to make different types of games, were to include features in the future as a sound maker, sprite maker, etc. I'd actually PURCHASE this.

 

I've been saying for awhile if I could take a class in school specially tailored to 2600 programming I would.

Link to comment
Share on other sites

If this turned into a full fledged thing that can work to make different types of games, were to include features in the future as a sound maker, sprite maker, etc. I'd actually PURCHASE this.

 

I've been saying for awhile if I could take a class in school specially tailored to 2600 programming I would.

889426[/snapback]

Yeah, if batari and attendo turn this into an easy to use mini version of Gary Kitchen's GameMaker with plenty of easy to use tools, I would pay money for it too and I might actually make a game or two with it (even if no one saw them but me).

Link to comment
Share on other sites

You know a simple script and two open windows gets all of this done.  I can edit a statement, then see the result less than 3 seconds later...  that's pretty darn instant, if you ask me.

889420[/snapback]

Looks like Attendo has made it even more instant, with the possible addition of a sprite editor too.

 

Can we make multi-colored images yet with this?

889425[/snapback]

No, because there aren't enough cycles in the current kernel. I'm thinking of writing a few more general kernels, one of which might support multicolored sprites. It would probably be that you can choose what objects you want to some extent, but you must make compromises, like in order to get in multicolored sprites you'd have to use a kernel without the missiles or with only allow a reflected (symmetric) playfield instead of an asymmetric one. Then for each kernel, there'd be a slightly different set of kernel variables and each would have its own limits. This probably won't happen for a little while.

Link to comment
Share on other sites

Yes, people are rushing WAY ahead of where Batari is with this, and maybe where it should ever go. I dont remember what kind of scripting gamemaker used, but what we have here is a version of BASIC. It's not likely to get simpler than that.

 

It'll be pretty easy to take the code generated from my own playerpal http://alienbill.com/2600/playerpalnext.html into a BASIC project. Honestly, I'm not too worried about all in one IDEs and all that stuff (though I will include all that stuff from the forum on the webpage, I'm running a little behind) We want to encourage newbie coders to get better and try more stuff, not coddle 'em to the point of braindeadness.

Link to comment
Share on other sites

Yes, people are rushing WAY ahead of where Batari is with this, and maybe where it should ever go. I dont remember what kind of scripting gamemaker used, but what we have here is a version of BASIC.  It's not likely to get simpler than that.

 

It'll be pretty easy to take the code generated from my own playerpal http://alienbill.com/2600/playerpalnext.html into a BASIC project.  Honestly, I'm not too worried about all in one IDEs and all that stuff (though I will include all that stuff from the forum on the webpage, I'm running a little behind)  We want to encourage newbie coders to get better and try more stuff, not coddle 'em to the point of braindeadness.

889468[/snapback]

 

I've been playing with this for a while. Honestly, it's cool and it does exactly what it says it does. Most basic things are possible: animation, movement, collisions, sounds (you can make really cool sounds), walls, etc...

 

After exploring a few game ideas, I've come to the realization the kernel limitations will pretty much place sharp limits on the games possible. IMHO, the best way forward would be a sort of game template where the various elements are fixed in the kernel, with their shapes, colors and interactions being determined by the programmer. (I could be wrong in this, but I don't think so.)

 

Honestly, I think this approach should be aimed at the 7800. The many possible sprites, combined with a limited graphics display would open up a lot of possibilities. Think 80 x 40 playfield, with a coupla colors, and a few sprites. All the sudden, a lot of potential exists while keeping the old school spirit alive.

 

Not to diminish this at all. It's a great accomplishment and a totally cool 2600 learning tool. I've learned a ton in the last couple of days. I'm to the point where I can jump into the generated assembly file and make other things happen. (That's no easy feat all things considered.) And I had a lot of fun while doing it!

 

Games can be written with this today. You have to push it a little and really think about what is happening, but that's the 2600 for you. I would trade the on-screen score for the two ball sprites because more game play options become a reality that way. Colors and sounds can be used to indicate these things, particularly in a two player environment.

 

Anyway, here is a little animation demo, showing yet another thing this little language can do.

 

1 rem smartbranching on
2 rem init code set intial values here
3 rem
10 x = 50 : y = 40 : w = 60 : v = 60 : c = 1 : d = 1 : e = 120 : f = 47
12 j = 0 : k = 0 : l = 1 : m = 0 : n = 0 : p = 0 : q = 0 : r = 0
50 rem begin display loop
51 rem
68 COLUPF = 78 : COLUP0 = e : scorecolor = 0 : COLUP1 = f
70 player1x = w : player1y = v : player0x = x : player0y = y
79 if c <> 1 then 83
80 player0:
%00010000
%01000010
%00011000
%10110101
%00011000
%01000010
%00001000
end
82 goto 90
83 if c <> 2 then 86
84 player0:
%00000000
%00100100
%00111000
%00111100
%00011100
%00100100
%00000000
end
85 goto 90
86 if c <> 3 then 89
87 player0:
%00001000
%00010000
%00011000
%00101100
%00011000
%00001000
%00010000
end
88 goto 90
89 player0:
%10000001
%00001000
%00011100
%00111100
%00111000
%00010000
%10000001
end
90 if c <> 1 then 93
91 player1:
%00111100
%01001010
%10100101
%10001001
%10100001
%01001010
%00111100
end
92 goto 105
93 if c <> 2 then 96
94 player1:
%00111100
%01000010
%10100011
%10001001
%11000101
%01010010
%00111100
end
95 goto 105
96 if c <> 3 then 99
97 player1:
%00111100
%01000010
%10000001
%10010001
%10001001
%01000010
%00111100
end
98 goto 105
99 player1:
%00111100
%01101010
%10000011
%10000001
%10000001
%01100010
%00111100
end
105 rem
100 rem display loop
101 rem
200 drawscreen
210 c = c + 1
220 if c = 5 then c = 1
230 d = d + 1 
240 if d < 10 then 300
245 d = 1
250 e = e - 1 : f = f - 1
253 if e = 112 then e = 127
254 if f = 32 then f = 47
300 rem
370 n = n + 1 : p = p + 1
380 if n < 5 then 440
390 n = 0
400 if joy0left then j = j - 1
410 if joy0right then j = j + 1
420 if joy0up then k = k - 1
430 if joy0down then k = k + 1
440 if k = 251 then k = 252
450 if k = 4 then k = 3
460 if j = 251 then j = 252
470 if j = 4 then j = 3
490 if p < 3 then 700
495 p = 0
500 x = x + j : y = y + k
700 goto 50

 

You've got to compile this one :)

Link to comment
Share on other sites

Yes, people are rushing WAY ahead of where Batari is with this, and maybe where it should ever go. I dont remember what kind of scripting gamemaker used, but what we have here is a version of BASIC.  It's not likely to get simpler than that.

 

It'll be pretty easy to take the code generated from my own playerpal http://alienbill.com/2600/playerpalnext.html into a BASIC project.  Honestly, I'm not too worried about all in one IDEs and all that stuff (though I will include all that stuff from the forum on the webpage, I'm running a little behind)  We want to encourage newbie coders to get better and try more stuff, not coddle 'em to the point of braindeadness.

889468[/snapback]

Nothing wrong with tools. Why build a house by pounding in nails with your fist when you can use a hammer or a nail gun? In this case I'm mentioning Gary Kitchen's GameMaker, not for its language, but for its built-in tools. It had a sprite editor and things like that. Just click on this link and you will see screen shots:

 

http://www.mts.net/~kbagnall/commodore/gamemaker/info.html

 

Go ahead, click on it, it won't bite.

 

I can see this turning into a mini Gary Kitchen's GameMaker, meaning that it has some very useful tools built in to make things easier and more fun. You might be able to see everything underneath the world like it's made of Matrix-like code, but many of us need a Graphical User Interface along with any built-in tools that will help make things as easy as possible. I know some would love to have to climb their roof or crawl under their house every time they want to raise or lower their window shades, but the rest of us just want to pull a string. Same result, less hassle.

Link to comment
Share on other sites

Nothing wrong with tools. Why build a house by pounding in nails with your fist when you can use a hammer or a nail gun? In this case I'm mentioning Gary Kitchen's GameMaker, not for its language, but for its built-in tools. It had a sprite editor and things like that. Just click on this link and you will see screen shots:

 

http://www.mts.net/~kbagnall/commodore/gamemaker/info.html

 

Go ahead, click on it, it won't bite.

 

I can see this turning into a mini Gary Kitchen's GameMaker, meaning that it has some very useful tools built in to make things easier and more fun. You might be able to see everything underneath the world like it's made of Matrix-like code, but many of us need a Graphical User Interface along with any built-in tools that will help make things as easy as possible. I know some would love to have to climb their roof or crawl under their house every time they want to raise or lower their window shades, but the rest of us just want to pull a string. Same result, less hassle.

889500[/snapback]

 

Ok, I think your point is valid where homebrew game making is concerned. I remember a similar program "Pinball Construction Set". It did the same thing in that you could distribute your executable games to others as standalone programs.

 

Having said that, aren't you in the wrong forum where point 'n click development / creativity tools are concerned?

 

This *is* the 2600 we are talking about here. It's an assembly language machine. I think this compiler could evolve into a set of game templates wrapped around this simple language that would together permit a fair number of games to be created, but that's really it.

 

Again, I'm not trying to diminish this tool because I think it's great actually. The learning I've gotten done was fast and fun. Way cool. And I know somebody with more time on their hands is going to use this to jumpstart their own homebrew 2600 game. Good stuff.

 

Man, if you want gamemaker so bad, why not start building it instead of hoping anything similar will become the tool you want to use bad enough to whine about, but not bad enough to actually help build? There are a lot of toolkits today, free languages, utilities and other software bits laying around for the taking. Why not feed the soul and learn something at the same time.

 

Afterall, that quality carpenter using a nail gun had to learn somewhere. Good tools don't make the user of them any better, just faster.

 

I'm going to stay off this line of discussion now, but I think it just had to be said.

Link to comment
Share on other sites

I'm going to stay off this line of discussion now, but I think it just had to be said.

889509[/snapback]

What just had to be said? You didn't say anything new. It's the same semi-elitist stuff that has been said before in other threads.

 

 

 

Ok, I think your point is valid where homebrew game making is concerned.  I remember a similar program "Pinball Construction Set".  It did the same thing in that you could distribute your executable games to others as standalone programs.

 

Having said that, aren't you in the wrong forum where point 'n click development / creativity tools are concerned?

889509[/snapback]

How could I be in the wrong forum when attendo has already created something that is going down that road in this forum?

 

 

 

This *is* the 2600 we are talking about here.  It's an assembly language machine.  I think this compiler could evolve into a set of game templates wrapped around this simple language that would together permit a fair number of games to be created, but that's really it.

889509[/snapback]

You can tie assembly language to more understandable code as I think batari is trying to do. You don't have to build a hugely different BASIC language on top, you just make it more human, more understandable. And various templates for different kinds of games would help too.

 

 

 

Man, if you want gamemaker so bad, why not start building it instead of hoping anything similar will become the tool you want to use bad enough to whine about, but not bad enough to actually help build?  There are a lot of toolkits today, free languages, utilities and other software bits laying around for the taking.  Why not feed the soul and learn something at the same time.

889509[/snapback]

Why don't you grow wings and fly? Come on, all you need is the will and those wings will sprout. Come on, what are you waiting for? Do you know how silly that sounds? This is an Atari 2600 related GameMaker-style thing that is forming in front of our eyes by people who know about such things. They have the skill and the knowledge to make it happen, so why not let them?

 

As you may have read in other threads, I also require a type of Gary Kitchen's GameMaker for making newer PC games (not Atari related) and what I mean by that is that it should be easy to understand and it should come with every tool you will need. No expensive third-party products will be necessary unless you want to use them. If I require a program like that to get anything done, how could I create it?

 

 

 

After all, that quality carpenter using a nail gun had to learn somewhere.  Good tools don't make the user of them any better, just faster.

889509[/snapback]

Good tools can save time, alleviate aggravation, and help those who cannot visualize things to see what they are creating. It seems some want people to make their own nails and pound them in with their fists while blindfolded. Life is too hard already. If skilled adventurers have hacked their way through the wilderness and built roads and bridges for lesser mortals to follow, what's it to you? We don't all have to hack our way through. Some of us can barely stay on our own side of the road as we follow along.

Link to comment
Share on other sites

My only point was this project won't be a game maker. It will end up being a great way to get started building 2600 games. (One can build them now with it today in fact.)

 

The template idea is a great one and will bring good results to the table where this project is concerned. No disagreement there.

 

I'll ask again, did you write a line of BASIC code for use with this compiler? Did you even compile anything?

 

Prior to this project 2600 programming took a lot of time, trials and brains mixed with pure willpower to complete a project. Hats off to those who have continued to pry ever better visuals from the machine. IMHO, that's what always attracted me to the VCS in the first place. It's limits are steep, but it's potential is just as high. The smarter you are, the better your visuals will appear. Very few classic systems are like that.

 

Why write some Basic?

 

Because you will learn something doing it. As the project matures, you will be ready to take advantage of what it has to offer, that's all. If that comes off as elitist, so be it. I grew up with these machines, programmed 'em then and love to poke at them now. The great projects you see for sale here are the result of folks taking that to the next step and following through.

 

Point and click (on the 2600) is never going to get you there --ever. However this project, just made that process 10 times easier than it was just a short time ago.

 

Will this thing be capable of some decent games? I think so. However, it might happen a bit quicker with a few more folks pushing the boundaries right now, learning how it works, finding bugs, etc... I'm sorry if this offends you, but your whole post reeks of (when this is finished, I'm gonna do great things with it.). Ok, you might. But I have a hard time with the high demand for "make it easy for me" without a little sweat in like kind, that's all.

 

As for how silly I sound, your analogy makes no sense.

 

A while back, I was told basically the same thing regarding 3D Opengl graphics. I scoffed then too. However a coupla months work and I managed to build a pretty decent 3D image viewer, complete with dynamic rotation, shaded solid images, etc... Did it on an old SGI workstation just because I always wanted to program on one of those. Was it hard? Yes. Worth it. Totally.

 

That project started with me not knowing a damn thing about how to do any kind of 3D graphics. My last serious programming was done on an old Atari 800 years ago.

 

My point being not to brag, but to make it clear that building something in software, that you love, is totally doable today. The necessary tools cost nothing and are there for the taking. The knowledge you need is there for the taking as well along with thousands of folks, located on forums just like this one, willing and able to lend a hand. Like I said, you want it really bad, but not bad enough to actually begin to do something about it. --Just like you want this compiler to evolve into something better, but not enough to actually take the time to see what it can do right now, today.

 

At least write a short program, or modify one of ones posted so far. Make a sprite move, or change shape, something...

 

Since I started it, you have the last word, I'll stay quiet on this matter and give whatever response you have some thought.

Edited by potatohead
Link to comment
Share on other sites

At least write a short program, or modify one of ones posted so far.  Make a sprite move, or change shape, something...

889552[/snapback]

Maybe I make it sound like I never did anything in my life, but I have been programming off and on since 1983. I made my own original games on the VIC-20 using an extra 8K cartridge and plain old BASIC. I studied assembly language for a while and bought a special cartridge, but it was too hard. I made some things for the Commodore 64 in BASIC, Simon's Basic, Gary Kitchen's GameMaker, and a couple of other game making programs. I tried to make some stuff using AMOS, EASY AMOS, AMOS PRO and the compiler for the Amiga 500, but didn't get much of anything finished. For the PC, I bought Blitz Basic and tried various free things and free trials of that supposedly easy to use click and crud garbage that is harder to understand than a simple BASIC language, but none of it comes with good tools and I can't do anything with them.

 

Cobra is supposed to be easier to use than Blitz Basic, but it doesn't look like it comes with tools either:

 

http://www.codersworkshop.com/viewproduct.php?id=24

 

I could make games the best on the VIC-20 and later using Gary Kitchen's GameMaker for the Commodore 64, but that was it so far. My brain does not seem to be getting better in this area, so I need all of the 'coddling' I can get. If Cobra isn't what I have been waiting for, I hope some type of program that is similar to Gary Kitchen's GameMaker (that is full of built-in tools) will be following soon. Someone has to be interested in making a program like that since it should rake in a lot of money from 'wanna-be' game designers.

 

Back on the topic of this thread and the Atari 2600, attendo and batari can coddle me all they want too. I hope they create something that is so intuitive and has such useful tools that just about anyone can walk up to it and jump right in and grasp the basics. I'm not going to try it yet because it's still in flux, so I'd have a hard time adjusting to the changes. I'll try it when it has solidified a little more.

Link to comment
Share on other sites

I think the project "just" gonna be a very nice basic language which newbies can pick up quickly to make pretty nice Atari 2600 games. There is however a big difference between just some tools to assist you and a full fledged point an click program. It will probally never become a PnP program. Like Potatohead i also want to keep seeing the actual code but also like Random Terrain id like to have plenty of tools to make development speed things up, dont think there limitating because they give more time to think about the idea of what your making, etc. etc.

 

Also i think its pretty much up to Batari to decide where it will evolve into.

 

(ok, ill stop editing this post now :) )

Edited by attendo
Link to comment
Share on other sites

I'm not going to try it yet because it's still in flux, so I'd have a hard time adjusting to the changes. I'll try it when it has solidified a little more.

IMO this is as solid as it can be. Yes there might be some additions or bugfixes, but it works NOW! And with more functionality it will only get more complicated again. Use your time to find out the current limitations and this will help you for any further development.

 

If someone was really eagerly awaiting such a tool, it's very hard to understand why he doesn't use the chance to try it ASAP. :?

Link to comment
Share on other sites

There is however a big difference between just some tools to assist you and a full fledged point an click program.

889599[/snapback]

Yeah, I don't know where the click and crap stuff keeps coming from. Did I even mention it in this thread? I don't remember. I know I keep mentioning Gary Kitchen's GameMaker for the easy to use tools, but the main part of it was a programming language, you just didn't type the stuff in, you selected it from a list. For this project, I'm just focused on integrated tools. Good tools can make a big difference.

 

 

If someone was really eagerly awaiting such a tool, it's very hard to understand why he doesn't use the chance to try it ASAP. :?

889601[/snapback]

Because I got messed up by changes in Blitz Basic. Everything was going along pretty good and then BAM! They changed something major and screwed up what I had already learned. I thought I'd wait at least a week to see if any brilliant ideas are added or more cool tools appear. I don't want to get used to anything that may not be that way a few days later.

Link to comment
Share on other sites

Sorry, but my definition of a programming language is that you do actually type things. But perhaps I need to change that.

 

Perhaps its just a matter of taste, id like to see the code and also have some tools to speed up development, thats all.

 

greets

Edited by attendo
Link to comment
Share on other sites

Sorry, but my definition of a programming language is that you do actually type things. But perhaps I need to change that.

 

Perhaps its just a matter of taste, id like to see the code and also have some tools to speed up development, thats all.

889618[/snapback]

It was a pain to do with the joystick, going up and down the list and selecting commands. But your program was listed there on the screen separately as if you typed it in.

post-13-1121073851_thumb.jpg

 

If someone did an updated version for the PC (totally non-Atari related) I would expect to be able to type in commands and select them from a list at the side (or top or bottom) using the mouse. Kiss that old joystick goodbye. Leave that for playing games.

Link to comment
Share on other sites

If someone was really eagerly awaiting such a tool, it's very hard to understand why he doesn't use the chance to try it ASAP. :?

889601[/snapback]

Because I got messed up by changes in Blitz Basic. Everything was going along pretty good and then BAM! They changed something major and screwed up what I had already learned. I thought I'd wait at least a week to see if any brilliant ideas are added or more cool tools appear. I don't want to get used to anything that may not be that way a few days later.

889616[/snapback]

I thought very hard about how to put this all together. I also considered long ago how this may improve over time, so I tried to make the first version I put out good enough that there would be no reason that future versions will "break" existing code.

Link to comment
Share on other sites

Because I got messed up by changes in Blitz Basic. Everything was going along pretty good and then BAM! They changed something major and screwed up what I had already learned.

Completely?

 

I thought I'd wait at least a week to see if any brilliant ideas are added or more cool tools appear. I don't want to get used to anything that may not be that way a few days later.

IF this tool gets extended to what is discussed above, then I would bet that something similar will (have to) happen here too.

Link to comment
Share on other sites

Yeah, Batari, the demos I'm going to be collecting are cool (good work potatohead!) but don't bend over too far backwards for backward-compatability...I can always publishe updated demos, or archive some old demos saying "use 0.1 for these"

 

I finally read the gamemaker link, and didn't realize how much scripting was already there. So I take back some of my kneejerk bias. An all in one tool wouldn't be too bad an idea, but I'd rather see powerful independent tools made so people coding in ASM could use them as well as people using Batari Basic. That's what I tried to start with my PlayerPal and PlayfieldPal.

Link to comment
Share on other sites

Well, from a language perspective, what I have seen so far is only loosely termed 'basic'. It's probably best to think of this as a really specialized basic-like language. I mean, you aren't going to add tons of stuff that is in other basics..like the string functions, IO functions, etc. One thing you might want to consider adding in is some kind of USR() function...that is, the ability to embed blocks of ML inside a string or other data area and then call it from basic. Maybe for this basic you would just allow the direct insert of opcodes with line numbers.

 

10 rem ml insert

20 LDA PFCOL0

30 etc...

 

 

Syntactically, the only thing that really jumps out at me is the inelegant way that the sprite data is laid out...having the line feeds embedded in the data is a little funky, although it makes visualization easier. You might want to look at the traditional basic DATA statement.

 

Anyways, it looks very nice overall.

Link to comment
Share on other sites

I don't want to try this yet until it has settled down a bit, but it sounds like it's going to be cool. :thumbsup: Will this eventually be merged into an existing emulator so that you can instantly try out ideas (like you could with Blitz Basic) or will you have to compile it, then run it using an emulator? Blitz Basic instantly compiled your programs to ultra fast, 100% machine code before running each time, so you could have instant feedback. It would be cool if you could do something similar with this by integrating an emulator.

889404[/snapback]

The next Stella version (2.0) could be a perfect companion to this. The external environment created by Attendo could be used to edit the program in Basic, call batari's compiler to convert to ASM, then call Stella to see the result.

 

And when the source-level debugger in Stella is complete, you could step through the generated assembly code in real time, making small changes by patching the ROM. Of course, if one is using Basic it's probably because they don't know assembler, but it could still be a useful tool.

 

Steve

Link to comment
Share on other sites

That animation demo didn't work for me in Stella. It just shows a black screen and sits there.

889713[/snapback]

Can someone provide a binary of that animation demo (I don't have Windows in front of me right now)? I'll see if it runs in the current Stella CVS code. Also, are you using the latest version (1.4.2)?

 

Steve

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