@@Tomlinsky Even worse with the SECAM version which only had eight colours. IIRC Atari simply tapped into the luminance values and assigned them to a colour encoder hence the funky palette.
Fantastic, the years go by (10 years ago), and as a php programmer I was always curious to know how it was made, this video will be legendary for many decades or more!
This is very generic and does not really teach how to create a game, but rather how to use that IDE you're using with an example program. There is a lot of stuff going on inside the hardware of a 2600 that needs to be understood in order to properly make games for a 2600. This video makes it look easier than it is. First of all, if you run into a problem, you need to debug your game. In order to debug it, you need to use the Debugger included with Stella. This debugger not only shows the whole memory map, but also the status of every register of the emulated 6507, as well as the flags, and the program being executed. And by the way, this information is not in basic. Then comes all the features of the Atari 2600. The video says "you can only have two sprites in the Atari". Which is partially correct. There are different kinds of sprites. Bitmapped sprites, which is the two mentioned (mostly meant for player one and player two, as the IDE suggests). Then two "one-pixel" "missile" sprites (for projectiles for both player one and two), and the 40 pixel playfield. Some games like Pacman go around these restrictions by placing the second bitmapped sprite into the position of each ghost, per "frame". You can notice the flickering this causes. Other games like frogger, has what looks like different sprites, such as trucks, cars, the trunks, etc. Some games do this through "multiplexing" sprites (drawing parts of different sprites in each sprite, then mixing them), or by drawing "software sprites" (The pacman trick, or using a ball to create a line that looks like a rope, etc). Another thing to point out is that everything you need to create an atari game, is a 6507 assembler. For example, DASM, which comes included with the program. Of course, for that, you need to know not only the instruction set, but the hardware, memory mapping, how an old CRT TV works, how colors work in a specific TV, interlacing, etc. It's more tedious, but you also gain full control on how your program works. If you are not interested in learning all this stuff because it's too complex for you, DON'T BOTHER. It's not going to be rewarding for someone who only want to create a game. Instead, try making regular games for Windows with a regular WYSIWYG IDE such as Game Maker, or Unity. With those you don't need nearly any advanced programming skills, or hardware knowledge, sine everything is managed for your convenience. I'm not criticising the video, which is good as a starting point. I'm just pointing this out for all these people who is having troubles during the process, or understanding how it works.
Lunar PRIX Go on and try. The moment you realize you can't do "this" and "that", that's when you will understand that everything I said, wasn't really bullshit. Do you think everything in the game industry is just grabbing a pirated SDK, placing some MS-PAINT sprites on it, and click on a button, to produce a game? No.
Ninjihaku Workshop You've made some really good points. I've heard 2600 programming is the absolute worst. Anyone out there who wants to make a game, don't start with homebrew, use a modern high-level programming language like Python (with the Pygame library installed).
As someone who actually did 2600 programming in the 6507 machine code it's really cool to see someone has developed an actual programming language for the machine.
I'm wondering, are you limited to the amount of RAM that the 2600 actually had when playing via the emulator? Could you write a game on a higher scale than what the standard cartridges held back in the day?
Hello, I'm not entirely sure. The basic limits are 4k of ROM and 128 bytes of RAM though they can both be exceeded through ways like bank switching and Superchip RAM. Beyond that though, I don't know much. Theoretically it's possible since emulators can be made to do more, but maybe it hasn't been done yet at least not that I know of.
SuperDeluxe80 i think that C# is easier. There is no shit like then, end if or dim. All you need in C# is {}[]&|=;. and some other stuff. Writing code is much faster this way and if you know C#, you can learn any other programming language in a few hours.
I learned basic on the c64. I Made a 3d maze/rpg game with leveling up when i was 13 ( with minimap and animations). All cuz of a basic book of the c64 Ah good old days:D
Cute game! BASIC was my first computer language. This one is different, but at least the atari is programmable in a high-level language. I did Z-80 and 8080 assembly languages, so I'm sure I could do the 6502 assembly, but the BASIC looks very capable of doing the job. Nice tutorial!
I just bought the Atari 2600+. I'm excited to be able to play the older games but also I wanna see more people making games for legacy hardware. I understand too many people making bland shovelware games is what killed the Atari but maybe things will be different this time now that we have a talented modding community.
for the first tutorial i did about making games, i did use game maker. this is actually my 3rd game making tutorial. also, you can port it to atari cartridges...there's a link on my forum for how to do that.
everytime i try to compile it anytime after setting the sprites on the coding page it comes up with an error and says syntax error. click play a popup comes up saying missing binary. message says could not locate default.bas.bin and could not recompile. please check to make sure it was compiled correctly. everything works perfectly fine before that, and it saves with no problem before and after that too.
@snasebrase coding style? that's just like saying you don't like the "style" of mathematics. coding doesn't have a style, you have to write what is necessary to get the desired output. if you change things around for the purpose of style, then the program doesn't work.
Can this be renamed to ‘How To Make An Atari Game Using BASIC’? I was expecting an Assembly tutorial. Btw: I’m always impressed how complicated simple INCs and DECs are in BASIC (7:40).
@chancescheatz ah, i see what you mean. thanks for the clarification! when i code projects for myself, i use those standards (as well as commenting), but when i'm teaching others, i find it makes more sense when you do it the long way.
Not really, todays games actually use better languages which lets them write at least 10 times lesser lines of codes, which is compared to the team size of the developers, atari was way harder to develop.
OKAY EVERYONE if you keep getting the error message "could not locate default.bas.bin i have a solution to fix that problem. when typing in: player1x=50:player1y=50 player0x=20:player0y=50 make sure you INDENT. that means putting a space before player1x=50:player1yblahblahblah. now save, compile and run, and everything should be fine.
matthew tarbard, unfortunately, no one has yet coded up a similar high level language for the NES or Gameboy. However, Batari Basic should prove that such a project should be doable in principle, so maybe we'll see that eventually someday. :)
Could not locate sed.exe. Please copy sed.exe to C:\Arari2600\bB. This will improve DASM error reporting Precompilation failed, aborted at 1/15/2015 10:55:56 PM HOW I FIX
Tinkernut, Great tutorial! Learned a lot about Batari Basic, and it inspired me to start working on a game called Galactic Recon which is basically a combination between Berzerk, Asteroids, and Combat. I even got a title screen going, I don't know how though, I did that like three years ago and forgot how I did it! I was wondering how you can make a missile shoot downward? Is this even possible? I know I could do this using sprites, but that seems like a lot of tedious coding for something so simple. I'm not trying to learn 6502 assembly! Thanks!
I used to program in z-80 and 8080 assembly, also APL and BASIC. I knew about the 6502, but didn't own one, but my friends had some Kim 1 and Apple computers so I've been exposed to the assembly on that. This is super interesting. The only thing I would recommend for future videos is to have no background music while you talk. just maybe for the intro and outro. Im autistic, and background music sounds like foreground music to me. I can't concentrate on what you are saying. Keep up the good work. I gave you a thumbs-up. All good wishes!
@OuterSpaceRave yeah, you did right. youtube isn't really the best way to help you out. go to my forum and post this question and a screenshot (if you can) and i'll help you out.
I want to make a game where you fire missiles horizontally, but it doesn't work! Here are the "missile shooting" parts of my code. missile0height=3:missile0x=255 NUSIZ0 = 16 ... if missile0x>240 then goto skip missile0x = missile0x-2:goto draw_loop skip if joy0fire then missile0x = player0x-2:missile0y=player0y+4 Could you doctor up these parts of code? Reply ASAP. Thanks in advance!
HELP!!!!! I keep getting errors when I try to compile/recompile a code? even if I never change anything? I have windows 7. Sometimes I get "system path does not include" or sed.exe not founde. I dont get what im missing? I have visual batari, batari basic, the sound library, why cant i compile and play game? I can play if I dont try to compile, and sometimes it deletes the bas.bin?
the problem with this Batari Basic is that it allows nerds to "enter the market" - Atari 2600 coding has been for years question of mastering the display kernel thus not allowing lazy Basic / Pascal geeks to flood the system with cheap rubbish although I admit it can be a good start to undestand the system and then start the real 2600 coding and create real games like Frosty, Lady Bug, Thrust, Juno First and many many others...!
I have tried to add the compiler path to the environment proporties and adding the compiler to the setting where it stands bB Compiler. However, this is the only thing I get when I compile:
i am following this tutorial to the letter, and yet there's errors and al sorts coming up, and i'm starting to feel stupid :( i can't even get past looking at my playing field, the compiler just wont and i dont know what to do :(
A problem I've encountered is I have not seen any way to make the atari 2600 make more than 2(edit:SPRITES) appear... at least in tutorials. Can someone help?
If you had stella before watching this video don't like this comment *you can like if you want* but just reply ''I had this emulator before watching this video''. *im not telling you to like*
someone know how i can put more colors in the code COLUPF? or well...in the playefield colors? i want to add shaders in the background but i don't know how i can
when i try to run a game proggram says: cloud not locate defult.bas.bin and not recompile. Please check to make sureit was correctly. What i should do??((((
i got an error message when i tried to compile it Could not locate sed.exe. Please copy sed.exe to c:\Documents. This will improve DASM error reporting Precompilation failed
Whenever i try to compile, it says that System path does not include C:\Atari2600\bB, when its there and i had it set up exactly like you. Can you, or anyone, help me?
no. retro games are really bad ;-) ... at least i dont play any. and dont tell me of any apps that are based on old stuff that i might play. i dont own a smartphone. i aint a zombie yet ^__^ maybe zombies are kind of retro...? but i think todays games are just bad (most off them not all), because they're thrown on the marked just too early (wich made old games suck, too). i dont like to buy a game for 50 bucks and patch it 100 times so it gets playable :( worst excamples ubisoft, redlynx, ea etc
You mention making any kind of game fun, but really, limiting yourself also limits possibilities. I'm not saying to make games high budget. Hell, some of the best games I've played were made with no budget at all. And while old games are certainly fun, I can't see the point in limiting yourself. That said, there's a reason I mentioned experimental purposes being a valid reason. If you want to play with it and no more, that works. I just don't see how you can use it from a serious standpoint.
I don't know why anyone would create an ATARI 2600 game for any reason other than experimental purposes in modern day. We all know that the ATARI 2600 has very, very ridiculous hardware limitations, and as a result, you cannot make your game very long, or interesting. If you want to make a game,I suggest PC development. Even if your game is ATARI style, you can do much more that way. As for how to actually develop it, everyone does things differently.
Can someone correct me if I'm wrong. I'm going to make a title screen for my game would I do it somewhat like this? I make my background with the title spelled out. I drag it to the top of the list of codes, set the colors, etc. then under it, I enter "if joy0fire then goto jump2" then jump2 would be above the rest of the code. Then for a gameover screen, since the score can go from 000000 to 999999, I'd set my game over screen like "if score=99999 then goto jump3. Next comment
This is broken. Dont use this tutorial. The edit was FILLED with bugs and was impossiable to run the code. I got errors all the time from stuff wrong with the editor.
today, atari games are old and simple. back in their day, they were new and complex. todays advanced games have the benefit of being leagues simpler to program, despite having tons of code in them. yesterday's programmers were the ones who were burdened with the task of solving many difficult algorithms which paved the way for programmers today.
How is this program getting out of the endless loop setup in drawing the playfield? Shouldn't there be a main loop that calls the playfield routine 60x a second? What's worse is that would only leave the time the beam is traveling from the lower right to the upper left to accomplish all other aspects of the game. This seems a terrible way to write an Atari game.
My .SPR and .PLA editors aren't working, but i coded them both out manually, and if you want to change the color of a sprite, type "COLUP" then the number of the sprite, like player 0 is "COLUP0" and player 1 is "COLUP1" and so on, then you set it equal to a color value the same way you did for the playfield color. Example: "COLUP1 = $DA" would set Player 1's color to green.
@gigafide i think he means like how you can program things in slightly different ways to get the same thing, like how in gml instead of something unnecessary like: variable=variable+1 you could just use variable+=1 im not sure if that is exactly what he meant, but i think he meant something like that
code. not gameplay. which if were on the subject of gameplay alone, its a strong case that many gamers will universally concur that retro games seem to possess a better gameplay experience than most of today's games. ....and they use less code,...much, much less code.
Thanks great vid, i went to your forum on atari. But i could not find how you can make sounds and stuff. Plz i think this is absolute amazin (i cant program:0) so it would be cool if you could help me. Keep it going p.s can u make some easy vids again for people like me!!
While Compiling what i had after doing my playfield size/color i got some goofy error via " Could not locate sed.exe. Please copy sed.exe to c:\bB. This will improve DASM error reporting Precompilation failed, aborted at (and the date/time) Anyone know why this is so and what i should do???
Could not locate sed.exe. Please copy sed.exe to C:\Atari2600. This will improve DASM error reporting Precompilation failed, aborted at 2/22/2013 12:29:08 PM got this error right after i did "goto draw_loop" i saved compiled and got this error HELP!!!!
Successfuly compiles but when I click run a popup displays the message "Could not locate default.bas.bin and could not recompile. Please check to make sure it was compiled correctly." Can anyone help?