Source Code of Several Atari 7800 Games Released
jadoon88 writes to share a series of old Atari 7800 games that have been unofficially open sourced. "Remember Dig Dug or Centipede or Robotron? They used to be favorites when Atari's 7800 series was still around. Since the era of those consoles is over, and a different world of interactive reality gaming has taken over, Atari has unofficially released source code of over 15 games for the coders and enthusiasts to admire the state-of-the-art (because this is what it was back then). During those times, nobody would have imagined in their wildest dreams the games that Atari's developers floated into the gaming thirsty market and instantly swept across continental boundaries. But things changed soon after that and a company once regarded as one of the most successful gaming console manufacturers and developers faded away in the pages of our technology's hall-of-fame."
Well this is really great and I thank them for finally releasing code from like 40 years ago but what does 'unofficially released source code' mean exactly???
Is there a point to this besides just ooh-and-aahing over it? It looks like there are several 7800 emulators out there; could these projects build off the code and use it to design their own games? That would be a really cool model for other manufacturers to follow (ahem, Nintendo)...
Whatever the ATARI used for a processor, I don't recognize this ....
main: ;lock in 7800 mode
;
; initialize hardware
;
lda #$7
sta PTCTRL
sei ;block interrupts ;clear decimal mode
cld
lda #0 ;future expansion ;avoid joystick freeze
sta OFFSET
sta PTCTRL
ldx #$FF ;init stack ;clear score to zero ;clear hi sc
txs
;
; init high score
;
jsr initscore
jsr newhiscore
For people that played these games it must be pretty sentimental. I didn't play these games, but the hours I spent playing Crystal Castle on my Atari 520ST are still very alive. Thanks to whoever wrote it and please consider open sourcing this game. It has been away way too long.
Un-redacted phone numbers for the programmers in readme.doc files? They probably don't want to be getting calls about these games 21 years later from the internet at large.
-Lee
Anyone else read this something like.
.
1) Successful gaming console manfacturer posting record profit
2) . .
3) Bankruptcy!
Wheee! Poorly commented 6502 assembly with no other docs.
Mildy interesting in a retro way, but I don't see any great insight being taken from this. Most of these classic games are just ports anyhow. How about Joust source for the original Williams platform?
Anyway, source code is a bit of a misnomer here. All of these games were written in assembly, not any high level language. They are very well commented though, and it's more readable that most Python code I've seen...
I am TheRaven on Soylent News
Anyone else notice "ENCRYPTION CRAPOLA -- GO INTO MARIA" comment in main loop of centipede. Love it!
This is great news! I've almost finished building my MAME cabinet. I wonder how this will allow the Roms of those games to be released freely.
Kudos to Atari license holders for releasing this.
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
... we see our first CERT advisory for a buffer overflow exploit in Dig Dug, leading to a remote execution vulnerability in your 'net-enabled MAME console.
As a video-addicted teen, so many years ago, with too much time on his hands, I never imagined I would ever be able
to get my hands on this
Pain is merely failure leaving the body
This unofficial open source release signals that this will finally be the year of the cutting edge linux gaming platform.
A Magic the Gathering Article and Forum Aggregator
So like in only 40 years from now linux will become a gaming platform!
Should end in SPHINX.zip not Sphinx.zip. Beware the 404
Pain is merely failure leaving the body
* From the devkit readmes:
;GO TO SELECT MODE ;LOOK AT FIRE BUTTON INPUT
;THESE FOUR LINES MUST BE INCLUDED IN ;REMEMBER ;REMEMBER,. . ., ROSEBUD
2600/7800 DEVELOPMENT KIT<br>
CARE AND FEEDING INSTRUCTIONS<br>
[...]
Feel free to telephone John Feagans at Atari (U.S.) at area code
(408) 745-xxxx any time you have a question about using the
software. He wrote the download program and the transfer rom
code. He's the one who did not write any support documentation
to go with his software.
* From the base sw:
CPX #1 ;HACK: WE STOP AT 1
BEQ SELRTS
INX ;BIGGER HACK: PUSH X INTO RANGE.
LDA ZHACKMOD+2,X ;BIGGEST HACK: TABLE LOOKUP NEXT MODE.
* Ofcourse, we have explicit words:
CMP #$FF ;SEE IF ANY INPUT
BEQ FUCKYOU
JMP GOTOSEL
FUCKYOU BIT INPT4
BMI ATIT4
LDA #0 ;ENOUGH TIME HAS ELAPSED TO ALLOW CAPS
STA $1 ;TO DISCHARGE SO CONTINUE FUCKING WITH
LDA #$14 ;IO HARDWARE
STA AUDC0,X ;GO POUND SAND IN YOUR ASS
* Citizen Kane anyone?
LDA INPT0,Y
;THE FINAL VERSION
AND INPT1,Y
BMI FUCKBAR
* In Galaga, at 'a boss hit':
JSR ABOSSHIT ; HOW YOU PRONOUNCE IT IS YOUR OWN
;BUSINESS
* Liek wtf?
* GROUND TARGET SECRET CODES (SSHHHH!)
* 0 regular dome logram
* 1 regular pyramid barra
* 2 detector dome zolbak (and your mama, too)
*And finally, an original comment which couldn't be more to the point in 2009:
*PROGRAMMERS BEWARE: THIS CODE IS OLD AND VERY UGLY! TAMPER AT YOUR OWN RISK
It looks like Hattrick is written mostly in Forth btw. I personally didn't know they wrote games in that language!
Apparently Curt Vendel and Atarimuseum.com deserve the real credit for this release.
Seeing how it was done old-school is always refreshing. No C++, Java, C#, just hardcore assembly.
As an anecdote, I have a friend who used to work at MECC and worked on games for the Apple II like Oregon Trail and Odell Lake (find yourself a Way-Back Machine if you aren't familiar with those games). If memory serves me right, before leaving MECC, he wrote something akin to the following in one of those two programs:
[code]
; Important. Do NOT remove this. -- username
nop
nop
nop
; Proceed
[/code]
Years later it was apparently still in the code and he'd met up with an old colleague who asked, "What was up with the three nops? We didn't remove them because we didn't know what would happen". The response being, "Nothing, I just thought it would be funny to have this conversation a few years later".
CMP #$FF ;SEE IF ANY INPUT
;GO TO SELECT MODE
;LOOK AT FIRE BUTTON INPUT
;PREVENT FLAPPING IN LOADER
BEQ FUCKYOU
JMP GOTOSEL
FUCKYOU BIT INPT4
BMI ATIT4
JMP GOTORES
ATIT4 LDA #0
STA FLAP
JMP TITLOOP
Hmmm...
look, it's Ms Pacman
;MS RIGHT, HALF OPEN
DB $08,$00,$0A,$50,$A5,$54,$25,$D5,$17,$55,$15,$50
DB $15,$00,$15,$50,$15,$55,$05,$54,$01,$50,$00,$00
All the pixelfonts are in there too offcourse. If you're into remaking arcade classics, there's a lot of picture and sound data there just waiting to be recycled.
I quite like the way this blog by an old time Atari employee recalls the when and how of Atari developement. Something (Donkey Kong port on Atari consoles) that read
I should explain how Atari's Arcade conversions group worked. Basically, Atari's marketing folks would negotiate a license to ship GameCorp's "Foobar Blaster" on a cartridge for the Atari Home Computer System. That was it. That was the entirety of the deal.
made it clearer with :
We got ZERO help from the original developers of the games. No listings, no talking to the engineers, no design documents, nothing.
but, wait... there was even less:
In fact, we had to buy our own copy of the arcade machine and simply get good at the game (which was why I was playing it at the hotel our copy of the game hadn't even been delivered yet).
was for me a sure way to a plentiful of nostalgiaholic reading.
Al.
for those who where getting 404s
all code for 15 games plus the devkit (needs Atari ST/STE/STFM or Stella emulator for developing)
http://www.zshare.net/download/621984116ad0266d/
Didn't this console flop b/c nobody made new games for it? Who hasn't played all these titles on their MAME? I'd like to see some release code/remakes of the games that had some depth, how about Star Raiders or Countermeasure? Starflight for the Genesis was pretty wicked fun until you lost your map of the universe.
On that note, I'm off to find the magic dot and slay some dragons.
Imagination drew in bold strokes, instantly serving hopes and fears, while knowledge advanced by slow increments...
Seriously, that was a pretty great comment.
My hardcore gaming rig runs Lincade. We are talking serious commercial grade stuff here, HAPPS controls, Tornado spinners, and a 30" Wells/Gardner monitor in a SlickStik cabinet. If you are setting an arcade cabinet, make sure you get Lincade. There is no better gaming experience!
"Be grateful for what you have. You may never know when you may lose it."
instructions for pushing and popping the X/Y registers are what were missing from the original NMOS 6502 and added to the 65C02 (among other things). LDX #$FF was allowed from the beginning. The Atari 7800 used a 6502C which was not the same as a 65C02 (and had none of the bug fixes or new opcodes) but rather, was a 6502 that incorporated what had previously been some external glue logic used for halting the CPU when other chips needed to DMA.
No, but whomever wrote that headline is making a common mistake. The use of the term "open source" tells us that "open source" is apparently no more clear to people than what that movement tried to supplant—free software. While "free software" has an ambiguity problem, that problem is easily resolved by saying the "free" refers to freedoms to run, share, and modify the software, not a reference to price. "Open source" is also widely misunderstood:
but not easily cleared up. As that essay points out, "the explanation for "free software" is simple--a person who has grasped the idea of "free speech, not free beer" will not get it wrong again. There is no such succinct way to explain the official meaning of "open source" and show clearly why the natural definition is the wrong one.".
From what I can tell, there's no permission given to share any of these programs, no permission to modify any of these programs, and no permission to distribute these programs commercially.
The blog poster claims "In an official release, Atari has quoted that the purpose of the release is to give potential developers insight into the Atari's gaming platform so they may possibly build upon the 7800 series." but there is no link to the official release from the copyright holder. Therefore the provenance of this source code is unclear. I would consider these programs to be neither open source nor free software. This looks like an offer to download source code for proprietary software then make the mistake of distributing unauthorized derivative works based on these programs. It might be fun to program new Atari 7800 games, but copyright lasts a very long time and there's too little information to verify what the blogger claims.
Digital Citizen
Robotron is one of my favorite games, so I've been looking at the source to it. One odd thing I've seen is the table of points scored for each enemy. They stored the 150 value for (for example) an Enforcer as:
DB $01, $50
.
For those who aren't aware, the '$' prefix denoted a hex number in Motorola assembly. It's strange that the score values are stored in this weird BCD-ish way. Maybe it was more efficient to do BCD math than to convert the binary to decimal every time the score changed (which meant a screen update).
That might be true for most of the games but some were written in Commodore Basic and others were written with a combination of assembler and Basic. Also a very few were written using some of the higher language compilers of that day, e.g. Pascal and some Basic dialects.
http://www.atarimuseum.com/videogames/consoles/7800/games/ says:
"Note: If you are going to Mirror these sources or place them onto your own site, please have the respect and courtesy to include with them - Source: www.atarimuseum.com as these wouldn't exist if I hadn't of climbed into a filthy dumpster at 3am in the morning behind the old Atari building in Sunnyvale and salvaged them and restored them from their diskettes."
One of my tasks at work, around 1980 was to redo the source code to a gas chromatograph used in oil refinery control. The original development machine was a Unix that was limited on the number of variables, the size of the names and the size of files. Much of the code was hard coded to start at a location for each subroutine and the program used hard coded address for variables and data. It was so spaghetti, that They could no longer make any changes safely. So I took TWO years to re-do and test to a "modern" assembler. I had to use hardware manuals for the chips and schematics of the custom board to develop a hardware address table, and EQU statements for hardware commands. I would compile, then do a binary compare against the last know good prom image. Repeat until it all matched. Then I took out all of the hard coded subroutine addresses and hard coded variables. Test all of functionality. Then I had to do the same thing for each of the plug-in boards for serial communication. Back in those days, 90% of our programmers where EEs, that had had taken more than normal (FORTRAN) programming.
One of our programmers, got in BIG trouble. He had inserted a message to come up on the operators terminal (2 x 40 display) when an "impossible" condition occurred: "BANG YOUR DEAD". Murphy's law said that it would show up at the worst possible time. The President of an very BIG oil company called our President about how UNPROFESSIONAL this was, and safety was not a joke in a refinery.
Never trust a man wearing a coat and tie!
"free as in speech". I guarantee you that he will not infer copyleft.
Your freedom to swing your fist around stops at my nose. Your freedom to distribute software stops when you deprive others of freedom.
That seems easy enough to understand.
Also, you seem to misunderstand what the FSF says. Understand that "free software" and "copyleft('ed) software" are two different things. Copyleft is a licensing scheme that makes software licensed under a copyleft license Free Software (as the FSF defines it) for all users.
This is not true for permissive (bsd-style) licenses: you can relicense them and make them proprietary. What is free for you is not free for your users.
If you can't do anything you want with it, then it's not free as in freedom.
Again, your freedom to swing your fist stops at my nose.
I will concede that only saying "free as in free speech" makes people think certain things that are wrong. But those wrong conclusions are in the subtleties. The wrong conclusions people come to when they intuit meaning from "open source" are much bigger.
Whaddayamean, 7800 ? I remember playing these games on the Atatri 2600 console as a kid, released in 1977, although the 7800 was almost fully backward-compatible with the 2600.
...as well as the source to the Firepower pinball machine and the tools used to create those unforgettable classic Williams sound effects!
Say what you may about Eddie Van Halen and Jimi Hendrix... Jarvis was always god to me!
"The only legitimate use of a computer is to play games." - Eugene Jarvis
Somewhere in a box under my desk, I have an old book about programming arcade-style games on the C64. It includes all sorts of code examples :D
Friend: "The NIC is misconfigured..." Me: "No prob, I'll just telnet in and fix it." *Silence*
No images on Slashdot, so visualise that stock photo of 1950s guy with the caption "Aw geez, not this shit again."
Yes, we've had God knows how many rehashes of the endless "BSD is free, GPL isn't free because it forces conditions" / "GPL makes sure it remains free, BSD can become proprietary" argument / flamewar around here, so I'm *sure* we need another one.
As per usual, it'll include the exact same detailed and polarised arguments that we've already seen in great detail countless times previously, no new light will be shed on the subject, and no-one's opinion will be changed, but the thread will be filled with this offtopic crap to satisfy those involved anyway.
Yay.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).