Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming Software IT Technology

Source Code of Several Atari 7800 Games Released 153

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."
This discussion has been archived. No new comments can be posted.

Source Code of Several Atari 7800 Games Released

Comments Filter:
  • by Anonymous Coward on Friday July 03, 2009 @06:36PM (#28575783)

    Looks like 6502.

  • Unofficial? (Score:3, Informative)

    by TheRaven64 ( 641858 ) on Friday July 03, 2009 @06:45PM (#28575825) Journal
    What does unofficially open sourced mean? Sounds like an official release, since it came with an accompanying press release..

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

  • by haruchai ( 17472 ) on Friday July 03, 2009 @06:58PM (#28575909)

    Should end in SPHINX.zip not Sphinx.zip. Beware the 404

  • by butlerm ( 3112 ) on Friday July 03, 2009 @07:00PM (#28575927)

    You can be sure that the original arcade versions were written in assembly language not that different from what you see here. As a rule, nobody wrote video games in C until the mid 1980s. Assembly language was king.

    I worked at a game software developer in the late 1980s, and all of the 2600 games, all of the 7800 games, all of the C-64 games, all of the Atari 800 games we developed or ported during the period were written in native assembly language. Only the Amiga, Atari ST, Macintosh, and the later PC games were written in C. NES and SuperNES games were written in assembly as well.

  • Re:Great! (Score:5, Informative)

    by Mekabyte ( 678689 ) on Friday July 03, 2009 @07:03PM (#28575945) Homepage
    It's unofficial because it wasn't released by Atari, as the post suggests, but by the Atari Historical Society [atarimuseum.com], copied from source disks recovered from Atari's trash.
  • by silverspell ( 1556765 ) on Friday July 03, 2009 @07:23PM (#28576093)
    Apparently Curt Vendel and Atarimuseum.com [atarimuseum.com] deserve the real credit [atariage.com] for this release.
  • by osu-neko ( 2604 ) on Friday July 03, 2009 @07:40PM (#28576195)

    Looks like 6502.

    Actually, it would have to be 65C02 or better. You couldn't do "ldx #$FF" on a 6502, you had to do "lda #$FF" and then "tax" (transfer A to X). The ability to load immediate into the X or Y registers was added on the 65C02. And, don't quote my on this, but I think the 7800 predated the 65816, so I suspect 65C02 is the right answer...

  • by osu-neko ( 2604 ) on Friday July 03, 2009 @07:50PM (#28576257)

    Okay, curse my failing memory, I believe I just "misremembered" that factoid. On the 6502, you couldn't push or pull X or Y from the stack, necessitating the cumbersome txa, push or pull, tax instead of simply pullings into the desired register. I don't recall now if loading immediate into X or Y worked on the 6502.

    The scary thing is that I remember ANY of this shit over 25 years later...

  • Re:Some fun stuff... (Score:3, Informative)

    by Spit ( 23158 ) on Friday July 03, 2009 @07:53PM (#28576269)

    John Feagans, he was part of the original Vic20 software team. He must have jumped ship to Atari with the rest of the talent when Tramiel left Commodore.

  • Re:Great! (Score:2, Informative)

    by osu-neko ( 2604 ) on Friday July 03, 2009 @08:00PM (#28576311)

    Isn't it more like if someone threw away the printing press used to make the book, rather than the book itself?

    Um, no. The equivalent to throwing away the printing press would be throwing away the disk drive.

    If they had thrown away the binaries, I would agree with your analogy.

    Let's refrain from using analogies then and stick to the facts. If you throw away a piece of media, that piece of media becomes available to whoever wants to fish it out of the trash. However, copyright for any intellectual property on said media is unaffected. This is the actual legal fact, and it makes no difference whether we're talking about a novel printed on the pages of a book or source code recorded on a floppy disk. You own the book or the disk, but the author retains the copyright of the novel or program. Neither situation is an analogy for the other, both are specific instances of the legal rule.

    And it goes well beyond fishing out of the trash. I can explicitly give you the source code for a program on a disk, and I still retain copyright. Unless I also give you a licensing agreement, I can sue your ass off if you publish what's on the disk I gave you.

  • 6502c, actually. It's a custom version of the 6502 that was integrated with various other system hardware and could dynamically adjust its clock depending on which memory address was being accessed. (That was how Atari gained 2600 compatibility, which was a custom 6507 chip.)

    It sounded all well and good on paper, but the actual implementation of the processor was a serious PITA. If you weren't careful, you'd accidentally drop the speed to 1.19MHz and throw all your timings off. Even more annoying was that many functions required you to access hardware that dropped the clock speed. The worst offender was the TIA sound hardware because Atari was too cheap to install a POKEY chip.

    Worse yet, the normal 1.79MHz was underpowered for the complex sprite hardware they'd paired it with. The sprite hardware basically processed lists of lists of sprites, requiring sophisiticated data structures to get good performance out of complex, fast moving scenes. And if that wasn't painful enough, you were wise to find a way to keep as much of the structure in ROM as possible so that you wouldn't blow through the mere 4K of RAM.

    The 7800 was an interesting and potentially even useful design, but it simply wasn't practical for most developers. (Many of whom were not computer scientists.)

  • Re:Great! (Score:3, Informative)

    by JWSmythe ( 446288 ) <jwsmythe@nospam.jwsmythe.com> on Friday July 03, 2009 @08:13PM (#28576389) Homepage Journal

        That would depend on where you live.

        Where I live, a vehicle can be considered a gift or abandon. If it's abandon and you can show that it's been on your property for such a period, you can petition the courts to title it to you. If it's a gift, you'd need to demonstrate that it was a gift. If the legal owner contests an action, then you'd be in a messy court battle. For example, they could say "I loaned him that car for a few weeks. He never returned it, and I couldn't find him or my car. I never reported it stolen, because I believed him to be a friend. Now he's trying to take ownership of the car." What was a simple gift now has put you on the bad end of a grand theft auto charge.

        The same wouldn't apply to software source code that was mysterious and unofficially released. This sounds like someone who had access to the source code leaked it, although way too late to be useful.

  • by Anonymous Coward on Saturday July 04, 2009 @02:07AM (#28578151)
    I would say 99% of Amiga games were 100% assembler and only later they began using C for multiplatform titles (Lucas adventures and whatnot). You cannot get the most out of the Amiga hardware with C. Most games didn't even use the OS at all but banged the hardware directly, so using C would have been moot anyway.
  • by dzfoo ( 772245 ) on Saturday July 04, 2009 @07:26AM (#28579197)

    His site says this at the bottom:

    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.

    I didn't see any mention of AtariMuseum.com in the ProgrammerFish article. Bastards!

    So here it is, on behalf of us grateful slashdotters: THANK YOU CURT VENDEL!

            -dZ.

  • Re:Great! (Score:5, Informative)

    by Jah-Wren Ryel ( 80510 ) on Saturday July 04, 2009 @07:28AM (#28579199)

    However, did they ever register the copyright for the source code? If not, then any damage awards for this "publication" won't amount to a hill of beans.

    -1, Basic Copyright Knowledge Fail

    Three smug ACs, all got it wrong.

    If you do not register the copyright you can only sue for actual losses, none of this $150K per copy stuff that the MAFIAA gets away with.

    Since this source code is assembly language for a decades old and long extinct game platform any actual losses due to publication and distribution of this source code won't amount to a hill of beans. The cost of the lawyer will probably dwarf any award, thus making it infeasible to file suit against the people who published it.

    Capiche?

  • by macs4all ( 973270 ) on Saturday July 04, 2009 @10:22AM (#28579941)

    Looks like 6502.

    Actually, it would have to be 65C02 or better. You couldn't do "ldx #$FF" on a 6502, you had to do "lda #$FF" and then "tax" (transfer A to X). The ability to load immediate into the X or Y registers was added on the 65C02. And, don't quote my on this, but I think the 7800 predated the 65816, so I suspect 65C02 is the right answer...

    BZZT! WRONG! Thanks for playing...

    I have written hundreds of pages of 6502 code, on systems old enough (Apple 1) to have original MOS Technologies 6502s in them, and the "immediate" addressing mode (denoted by the # symbol in the argument) was DEFINITELY in the original 6502.

    Don't believe me? Take a look at this listing [6502.org] of the (nearly completely unused) Floating Point routines that were included in the original Apple II monitor ROM. You will see an immediate load of the X register (LDX #$2) within the first couple of lines of code. This code was written by Steve Wozniak WAY before the Rockwell R65C02 was even on the drawing board!

    What you MAY be thinking of is the fact that you couldn't load the STACK POINTER REGISTER (S) "immediate". You had to do a LDX #STACKTOP (usually set to $FF), and then use the TXS instruction to get the value into the Stack Pointer. This listing of Microchess [6502.org] (originally written in 1976 for the MOS Technologies KIM-1 computer, shows (at the label "CHESS" near the top of the listing) the LDX #$FF then TXS instruction pair mantra used to initialize the stack pointer on the 6502. The comment mentioning "Two Stacks" is referring to a software PSEUDO "stack pointer" (variable "SP2") that doesn't have anything to do with the 6502's hardware-implemented Stack Pointer (S register).

    Now get off my lawn!!!

One man's constant is another man's variable. -- A.J. Perlis

Working...