Atari 2600 Programming is a NIGHTMARE
HTML-код
- Опубликовано: 26 сен 2024
- Have you ever wanted to program games for an old console? Hopefully the answer is no because, if the Atari 2600 is anything to go off of, it's really difficult. In the Atari's case, it's because it has a very crappy video adapter, almost like it was made in the 70s or something...
LINKS:
SOURCE CODE: github.com/Tru...
2600 101 by Kirk Israel: www.atariage.c...
Let's Make a Game by Darrell Spice Jr (NOTE: I DONT ENDORSE OR AGREE WITH THE POLITICAL CONTENT ON THIS SITE): www.randomterr...
Stella Programmer's Guide (Official Atari 2600 Documentation) by Steve Wright: cdn.hackaday.i...
Old Atari Pong and Magnavox Odyssey Commercials: www.youtube.co...
Atari: Game Over: • Video
I made some errors when talking about NTSC frames so here's some corrections:
-The animation at 5:26 isn't actually showing interlacing. If it were it would be sending beams to every OTHER line, and then the next pass would fill those in.
-The 262 lines drawn by the Atari in NTSC are per interlaced field. Since interlacing skips every other line, it makes sense that the vertical resolution is half as tall as the total number of scanlines.
-The vertical blank and overscan are not "intended" to provide space for game logic, but to move the beam back to the top of the screen to draw the next frame. It's just a lucky coincidence that logic can be done there.
Thanks to Ashe for pointing those errors out. I'm not an expert on Atari programming, but I wanted to try it out and share what I was able to come up with.
discord: discord.com/invite/EKPBjjUc65
hi
Hello Hello Truttle1
Ive been watching your esolang series... and encouraged me to make me own esolang... love ya videos ❤
When the Atari 2600 came out the second gen consoles like the Channel F and the Odyssee 2 were already in existance and in peoples homes and they already had swapable cartridges.
Truttle, I was just discussing the 2600 in college 2 hours ago. Your timing horrifies me.
imagine not having this week as spring break in college
@@Truttle1 I'm in the UK so when I say college it's more like the end of high school I think. Also we had half term last week which is like spring break I think?
@@tazgirl_ *say college
Ah, thanks
One detail people often get wrong about the ET landfill is that it was to get rid of returned ET carts. What actually happened is they were liquidating a wearhouse for tax reasons. Among the copies of ET there was other games and console parts.
The game gets a bad rep. Its not that bad... Its just not that good either.
i just wolfed down [unspecified value] bagels and now i feel h
is that value an int ?
@@Lixxide i think so i forgoŧ
@@kornsuwin is that int >= 0 ?
@@Lixxideno
@@reas0 ok
Just goes to show how impressive games like Yar's Revenge are.
Let alone Solaris.
Or Kung Fu Master.
Or modern homebrew like Star Castle and Pac-Man 8kb.
Raiders of the Lost Ark i firsr console with an invetory s more than 1
There are loads of accomplished games on the ATARI 2600, the original Pac-Man from ATARI was one of the worst, not the best!
A couple of my favorites are 'Smurf: Rescue in Gargamels Castle' and 'Dark Chambers' a really striped down Gauntlet, or dandy, clone.
The beginning of the video having one full second of silence made me think my headphones weren't on during that second. I guess that's how rare it is for a video to not immediately start with some kind of noise.
We are so spoiled these days as programmers, especially game programmers. It's good to appreciate that by looking back at these kinds of things.
The 6502 has a BCD mode, or binary coded decimal, which works VERY well in contexts like this. You can use the same display logic you have now ..... worked very well in the 2600 games I've put together.
14:20 I'm pretty sure the 2600 supports BCD mode, which automatically skips A-F for exactly this reason
It absolutely does. Unless you're programming on the variant used in the NES.
Growing up my parents and sister were big gamers. We always had the newest systems, and got days off school for big releases. It was always a race to get to the systems after school. But one day I found an old 2600 and realized no one wanted to play it because it was ancient, so I got to see it up in my room and play when ever I wanted. It was my game console and I loved it.
My dream was to make a game for the archaic machines and I had notebooks full of tiny game ideas and sprites. I've tried so many times to make my childhood dreams a reality. And failed so many times. I'm glad to see someone explain why it's so hard.
It did lead to me make games for more modern hardware, though. So I still love my 2600.
I's not that difficult once you get your head around the basics of how it works. Look up what is refereed to as 'chasing the beam' any you learn to program in assembly. There are some good books on programming the ATARI 2600. Some things said on this video are not exactly best explained, or in some cases if not wrong then not entirely complete. I don't like the unnecessary sarcasm on this video.
16 Kilobytes of Ram back in 1977 was around $400 or more.. and that's 1977 dollars. the atari 2600 had 128 BYTES of ram, not even 1 KB
Good thing is, you don't have to worry about going outside the zeropage. It's all zeropage!
Back in the good old CRT days, when monitors didn't have a horizontal resolution
Color displays do.
CRTs have infinite resolution.
They did, you thinking is just wrong on this. It doesn't work like a modern display.
the turtle sprite looks like an amongus knocking on a door
I won’t be able to unsee that now
AMORGGULUS
@@Truttle1 i see an amongus smoking a pipe
@@retroboi128thegamedev "Ce n'est pas suspect"
hey, I've discovered you a few months ago on some of your 4 years old esolangs video and was wondering if you were planing on making more esolangs videos?
Probably
I've seen Retro Game Mechanics Explained's video on racing the beam, but this was a nice refresher on how hellish it is.
Just Discovered your channel, and it's uhh pretty neat!!
Never really seen programming structures for older consoles (even the NES!!)
1:12 the craziest thing about the Odyssey is that it was analog. The “cartridges” were just a set of jumpers that slightly altered how the console would behave.
The 2600 was basically just a pong machine that was accidentally capable of much more, since at first glance it barely seems capable of pong at all.
The atari was also the first and last console to use this method of display, because this is insane and stupid.
If it's stupid & it works, it's not stupid.
Far from insane and stupid, it was a stroke of genius. The Channel F showed pretty much the maximum of what was possible in 1976/77 using the 'traditional' video RAM method while still being somewhat affordable, which was itself was ahead of its time with colour graphics three years before that became common place in the arcades. And that was still absolutely blown out of the water by the 2600. When games are designed specifically to take advantage of the 2600 hardware and avoid its limitations, it can do things that no other home machine could do until the Amiga arrived, and using far more colours.
It was like that to keep production cost to a minimum. (RAM for screen memory would add expense)
4:17 I wonder if that beigeness was because the gap between ‘video game console’ and ‘professional A/V equipment’ was smaller back then.
not really, professional broadcasting equipment was typically large, heavy, mounted on 19" racks (or half-width ones) , and thus usually had metal frames.
From what I recall the Apple ][ did it first and everybody copied them.
*Lots* of stuff was beige in those days, even outside electronics.
The truttle1 lore grows deeoer with every episode.
Also please, if you ever get the opportunity, make a creaturey plushie.
I’ll launch a Creaturey plushie campaign at 30k subs
@@Truttle1 let's gooo!
Nintendo's Seal of Quality was also very anti-competition, particularly in North America, in that 3rd parties that wanted to develop for the NES could not develop for the competition. It's why in North America the Sega Master System had a limited, and partially what killed the Atari 7800, besides Jack Tramiel's cost and corner cutting that led to the aging Tia chip to remain for sound, rather than the much improved sound of the Pokey chip.If they were actually trying to compete with Nintendo, the 7800 was sadly tossed out to face the dragon with a wooden spoon.
Was a really fun watch!
Next, you should maybe try DS development!
What other consoles will you try? I think the GameBoy (just using ASM and Z80 instructions) or Pokemon Mini (a more obscure system) would be fun ones.
Probably doing Vic-20 next
@@Truttle1thing with you could just drectly doihe onitor or tv hooked up to it. same with most 6502 computer you could just use it with a tv. And all cold be run though tape or disk drives.
This is apparently the channel’s 127th video according to your channel info
1111111
By the end of the video I started laughing out loud at the absurdity, specifically during the segment about drawing the score. Great video!
Congrats on making a game for the Atari 2600 from the creator of Skeleton/Skeleton+.
The two biggest advantages of the TIA were its flexibility and that it is tightly coupled to the CPU. Because the TIA registers could be modified during active video, it allowed for games to reuse the sprite registers rather than having a fixed number of sprites. And because the TIA and CPU were tightly coupled, game could change the TIA registers at exact times during the scanline, allowing for even more flexibility.
Yes, horizontal positioning is difficult - a side effect of the use of LFSRs instead of counters. But LFSRs require only a trivial amount of transistors to implement, so it made sense for the TIA where every transistor was precious. (This is the same reason the Apple ][ graphics layout is weird - it saved logic and therefore money.)
Note: 192 lines is what was originally suggested to ensure the all lines were visible on TVs of the era. The VCS is capable of generating more, although more than 240 typically won't be visible even on modern TVs (maybe emulators).
Well, wasn't the Channel F the first with programmable cartridges?
Yes, I believe so
And the first home game system was the Magnavox Odyssey in 1972
@@matthewrease2376well with changable gams thing like poing whuich are one game existed
@@0011peace No, the Magnavox Odyssey predated Pong (and Pong may have been lifted from a Odyssey game shown in a trade show).
@@everynametaken actully rease with in 10 wees from each otehr and Tenis for 2 was released 14 years early.
Thank goodness the TIA's successor, the CTIA chip (and then GTIA) on the Atari 400 and 800 automatically DMA'd the player-missile sprite data onto the screen for you and all that was needed was setting the horizontal position register for all of them (and their DMA base address).
bonuspoints for the vvvvv soundtrack
Ahhh.. the days before display memory buffering..... by the way, what happens to a CRT if you get the timings wrong? Does it do any physical damage?
I’m not sure, I was using an emulator the whole time due to not having an actual Atari 2600 or cartridge writer…
I have one of those “Atari 2600 flashback” things that have a bunch of preloaded games on it somewhere in my basement though
if your number of lines is too far off or you set some of the related registers in the wrong order it fails to vsync so you usually get a distorted video output that "rolls" up or down
that's about it
No.
Awesome video! And fascinating process...!
Jeez, I don’t think I’ve ever seen Creaturey that mad, nor have I seen Obfuscate that sad. Great video!
yayyyyy new truttle1 vid dropped!!!
So im not supposed to assemble an nes entirely on a bread board
Not unless you have all the chips, a few hundred wires, and angelic patience of wrangling the latter...
That coding nightmare is indicative of the processor's and RAM's massive limitations. Well, I'm glad I didn't have that console for long until I got my C64 in the early 1980s! Great insight.
maaaan why don't you have seventy billion subscribers? You cracked my up while delivering excellent information. Now I have even less interest in developing my own 2600 game than I had previously (which was exactly zero) :D
It's actually surprising we have any form of video games at all. I say this as a game dev. Just watching this makes me want to pull out my hair.
You should look at programming the Vectrex then. You have to move the actual CRT gun around manually, no scan lines at all!
Nicely done - but what happens when you hit 99 (or 255) +1 points?
Because some people like a challenge, or just want to prove a point, a homebrewer coded a much better Atari 2600 port of Pac-Man, using the same cart size limit. It still had visible flicker, but it was much more faithful to the arcade game. They apparently went on to make an even more improved port for the Supercharger.
7:18 I remember putting an Atari 8 bit game and that pooped up and i though my emulator was broken.
128 bytes of ram.
ten hundred billion likes on this comment and i will buy an original atari 2600 and play this game on it
first like!
@@Truttle1 Second reply
i'll do it for free when i get home from work today
done lol ruclips.net/video/nEGFmhCoa2Y/видео.html
this was a really fun video!!
Definitely showing my (advanced) age here; to me this video serves as a reminder that we had some pretty amazing games back then given the limitations the programmers had to deal with. Yeah, there were clunkers, but there was some darned fun gameplay in that era as well (Activision's games raised the bar, IIRC. We *ALL* wanted their games when they came out).
If you haven't already, check out "GDC Classic Postmortem: Warren Robinett's Adventure" on YT. It's a fascinating lecture where Warren talks about some of the shortcuts and concessions he had to make in order to make Adventure happen.
Ive done some NES programming. I looked into the Atari when learning that, and never made anything for the system because its specs are a Nightmare. I'm impressed you got *anything* running on it, lol
Good video. Lots of stuff covered here but I think you over did the effects a little.
its honestly so sweet how obfuscate has gone from not wanting to make friends in fear of loosing them since he's immortal, to genuinely caring that creaturey accidentally insulted him.
I seem to recall something about Atari programming known as racing the scanline, or something to that effect.
I've heard that term too. It makes sense since scanline timing is really important.
Though I think the actual term is "racing the beam"
Thank you so much! Not only was this helpful, but I think this is the best video you have made! However, it would also be cool if you covered Visual Batari Basic. I’ve been trying to compile a game on there for the longest time but with disastrous results. Maybe you can help? The only tutorial that was available by tinkernut helps only so much. Regardless, videos like these are cool! Keep it up!
Because the Atari 2600 had an MOS Technologies 6502 processor, if you programmed for the Atari 2600, then you'd require very little training to program in Machine Language for the Commodore 64! This was because the Commodore 64 also used the 6502 processor! Atari 2600 machine language and Commodore 64 machine language therefore shared many, if not all, mnemonics such as INC, INA, INX, INY, JMP, JSR, STA, STX, STY, and so on.
Interesting.. so that's why all major UI information seemed to default to the top right for a while.
Of course, now there are better ways to display statistics.
and yet i still see a few(mainly retro like) games default to the top right. i mean it is a nice place to put information.
Still makes sense that it's a holdover from hardware limitations.@@kazii_the_avali
"this is like one of the 3 things it can do"
🤣🤣
Apparently the 6502 and some derivatives are still being made today by Western Design Center
E.T: is a quite good game on the Atari 2600! Dunno what you have. I loved it playing as kid with my friends.
Love your videos!
i had an atari developmwnt phase like 12 years ago lmao what a throwback. I developed a whole maze game in batari basic, its MUCH easier than assembler
Truttle Doesn't understand how to use what Jay Miner designed with the TIA.
Your video content is amazing, but the thrusting, heaving, constant exaggerated motion is slightly jarring. Could you maybe tone it down slightly, or maybe slow down the loops?
wooooo new truttle1 video! and about a 6502 based console?? amazing :))
My heart breaks for the guy they rushed to make ET
i just opened the video and i have barely any idea of how the 2600 works but i do know it doesnt have a video chip or vram and thr cpu has to do graphics so i already think its hell
WAH! ITS-A-ME! WALUIGI ON THE ATARI 2600! (unintelligible noise)
Can you make a video about the master system? Also love your content!
Dropped everything, Truttle1 video dropped...
As a game dev, this is terrifying
Man, if you're at the level of using delay loops and counting scanlines, you only a few steps away to just implementing the game on an FPGA and doing away with a CPU. It would probably look better too.
Oof, ROM Hacking for me its a nightmare, not only its there limited support for very few games and its harder than creating a full game, but theres barely any support of ROM Hacking at all and everything's like outdated, had to make a very simple Super Mario World hack because of this.
I remember trying to program for the Atari 2600 once. I failed miserably. Just... too much.
hell yeah, 2600 asm! I was almooost gonna learn C, but I saw a udemy course on 6502 assembly for the 2600 specifically and I went "ooo, let's do that instead" :3
c is way usefuller though
@@Truttle1 surprisingly more cursed, tho. Would've expected assembly to be the height of the "cursed build system" mountain
Nice video. The "SLEEP #26" should actually be "SLEEP 26" @ 15:38
People keep repeating this same wrong history about the NES. It wasn't even sold nationwide in the usa in 1985. Atari was still dominating the market, despite simple phrases like "crash" which are never actually quantified.
Given the quality of games for the Atari 2600, if you had sold "Survive" for it back when it was still big, it probably would've become the best selling Atari game there ever was.
Isn't there a game maker like program you can just use to make 2600 games???
10:09 why is it like this?
Fit a 6502 program into 4k. It's fun. But that was long, long ago.
there's better ways to move sprites on the x axis by using horizontal motion registers
what's the green camel
🐢?
Every time I think the 2600 couldn't get worse, it gets worse.
How do you understand the 2600s logic
Where is the "sleep" opcode coming from
it's a macro that inserts instructions that don't do anything for x amount of cycles
Never knew 2600 is so painful 😅
I think I'll stick to NES and PC Engine assembly, haha
6:39 agreed, 480i is superior.
Programming for the atari truly was nightmarish.
Think about how hard it was for the people who made the first games
please release season 2 of slithers software
holy crap
ive been doing this
but with the NES :3
et bryan beyblade beer
Now make this game in malbolge and see if that’s even any harder.
Agreed
Malbolge before there was Malbolge
You know they make Atari 2600 games until about 1990. Here is a game from 1989- ruclips.net/video/R7yr-T6nRZE/видео.html
I'd take this over Unity any day of the week
3:12
I think you mean extremely easy
Can I see your portfolio of 2600 games?
I wouldn't say easy, compared to say, Unity or Godot. But if you've programmed other 8-bit hardware, and providing you get your head around the concept of display kernals, it's not really harder - just different. The 8bitworkshop online IDE is absolutely fantastic for 2600 development as you can change one instruction and instantly see if that's had the desired effect or completely put your display kernal out of sync. I can see how if you were using a standalone assembler and waiting for that to assemble before sending it to Stella, that would be quite a bit more frustrating.
Obviously for the programmers working in the 1970s and 80s it was extremely difficult, iteration times would be measured in minutes rather than milliseconds and they didn't have the benefit of 40+ years of accumulated knowledge that we have. They didn't know what the tricks were, they had to invent them.
The ATARI 2600 did not last? Yeh, only around 15 years. Seriously practically everything said about the 2600 in this video is wrong Why?
Why do a video that mocks something you know little to nothing about!
Bruh, it's really not that difficult.
Cute cartoons :)
Sure, if you go with assembly. Batari BASIC makes it so much easier.