Follow Slashdot stories on Twitter

 



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:
  • Great! (Score:3, Insightful)

    by ae1294 ( 1547521 ) on Friday July 03, 2009 @05:28PM (#28575721) Journal

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

    • Re:Great! (Score:4, Interesting)

      by Acapulco ( 1289274 ) on Friday July 03, 2009 @05:45PM (#28575831)
      My thoughts too. What does "unofficially released source code means" exactly?

      After some thinking I came to the conclusion that it means you can download the code, but without an open source license applied to it, such that if someone tries to buy the code from them (or the company), they can just stop giving away the files, state that it's still propietary and then still have the ability to sue someone who develops something based on those files. That's the only logical explanation I can come up with.

      Like saying "here, I'll give you my car as a gift" but not transfering the ownership via legal papers. If at some point someone wanted to buy my car I can just tell you "hey, that car I gave you for free....it's no longer yours, it's mine to sell now" and you would have (I presume...IANAL) no legal way of claiming otherwise.

      No?
      • Re:Great! (Score:4, Funny)

        by ae1294 ( 1547521 ) on Friday July 03, 2009 @06:00PM (#28575931) Journal

        Shaking head in disbelief... Still trying to get someone to pay for Dig Dug after all these years....

      • It's just like most everything else people put up on the Web. They're just saying you can download a copy and look at it but you can't distribute any copies or create any derivatives. I suppose some people might find it mildly amusing. Nothing to do with Open Source, at any rate.

      • by hldn ( 1085833 )

        Like saying "here, I'll give you my car as a gift" but not transfering the ownership via legal papers. If at some point someone wanted to buy my car I can just tell you "hey, that car I gave you for free....it's no longer yours, it's mine to sell now" and you would have (I presume...IANAL) no legal way of claiming otherwise

        i seem to recall something along these lines whereby if the person who was gifted the car by these terms could prove that they had sole possession of the car for a sufficient amount of ti

        • Re: (Score:3, Informative)

          by JWSmythe ( 446288 )

          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 fin

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

      by Mekabyte ( 678689 ) on Friday July 03, 2009 @06: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.
      • Re:Great! (Score:5, Insightful)

        by Acapulco ( 1289274 ) on Friday July 03, 2009 @06:25PM (#28576107)
        Then shouldn't it be "illegal" instead of "unofficial"?

        If Atari still has the copyright on some of those games, then it would be illegal to do so, isn't it? Even when they probably won't sue or anything, how can I "unofficially" release the source code to, say, MS-DOS without MS suing (suEing? sp?) me?
        • Re: (Score:2, Interesting)

          by armanox ( 826486 )
          SCOTUS ruled that what you throw out is public property...
          • Re:Great! (Score:4, Insightful)

            by hedwards ( 940851 ) on Friday July 03, 2009 @06:29PM (#28576133)
            Does that even apply? It's not the physical copy to which Atari has legal rights, they have the copyright to the code on the disks. And that's a huge difference, if that weren't the case then people would be perfectly free to copy disks as much as they liked, provided they could find one that had been tossed in the garbage bin.

            Somehow I don't think that theory would hold up in court, well either theory.
            • Re: (Score:3, Interesting)

              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.
              Furthermore, who really owns the copyright on that source? The original Atari has been bankrupted and merged and reverse-merged a number of times to the point where the current "Atari" is really nothing more than a company that bought the trademark 2nd or 3rd hand.
              Without a clear owner to file a copyright infringement case, this simple free distribution isn

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

            by osu-neko ( 2604 ) on Friday July 03, 2009 @06:33PM (#28576153)

            SCOTUS ruled that what you throw out is public property...

            Right, but that just means the discs are public property (assuming the data was on disc). If I throw away a book, someone can grab that book out of the trash and claim it for themselves. However, the author does not lose the copyright (even if it was the author who threw away the book).

            • by Duhavid ( 677874 )

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

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

              • Re: (Score:2, Informative)

                by osu-neko ( 2604 )

                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

          • SCOTUS ruled that what you throw out is public property...

            When and in what context? The betting here is that the property on question was retrieved from a trash can and introduced as evidence of a crime.

            The gun you tossed in the dumpster.

            Does your GPL'd project become public domain if someone reconstructs the code from the shards of paper that you ran through the shredder?

            That I doubt very much.

      • by skeeto ( 1138903 )
        Yup, which makes this !opensource, unlike the incorrect statement in the summary that further dilutes the meaning.
      • Someone might have dug this code out of the trash, but the RTFA implies there is an official press release from Atari where they allow this code to be distributed. (No link? Unfortuantely Atari's corporate site is only in French.)

        BTW, when the original Sunnyvale CA Atari folded, loads of amazing classic gaming crap was dug out of the garbage or found in abandon warehouses and so on.

  • by Anonymous Coward

    Whatever the ATARI used for a processor, I don't recognize this ....

    main:
    ;
    ; initialize hardware
    ;
    lda #$7 ;lock in 7800 mode
    sta PTCTRL

    sei ;block interrupts
    cld ;clear decimal mode

    lda #0
    sta OFFSET ;future expansion
    sta PTCTRL ;avoid joystick freeze

    ldx #$FF ;init s

    • Re: (Score:2, Informative)

      by Anonymous Coward

      Looks like 6502.

      • Re: (Score:3, Informative)

        by osu-neko ( 2604 )

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

        • Re: (Score:2, Informative)

          by osu-neko ( 2604 )

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

          • Loading immediate worked, otherwise indirect addressing with the accumulator would have been a giant pain in the ass. (assumption: INY and DEY would not be present if the silicon lacked direct load)

            LDY #$FF
            :label
            LDA buffer,Y
            STA newBuffer,Y
            DEY
            BEQ label

            was a fairly common idiom, IIRC. Maybe a CPY #0 before the BEQ, I forget if DEY set the zero flag. I'm about 90% sure it did, though.
            I'm certain you're thinking of PLA and PLP.

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

            I

        • by DoofusOfDeath ( 636671 ) on Friday July 03, 2009 @07:02PM (#28576319)

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

          I like compilers.

        • by AKAImBatman ( 238306 ) * <akaimbatman&gmail,com> on Friday July 03, 2009 @07:10PM (#28576379) Homepage Journal

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

          • by Xebikr ( 591462 )
            Wow. I feel so inadequate after reading that. Where do I turn in my geek card?
          • by dzfoo ( 772245 )

            Oh yeah?! Well, my dad can beat up your dad!

            P.S. Great comment. And here I was, fancying myself a geeky computer-history and techie buff. I feel so inadequate.

                    -dZ.

        • Incorrect - both X and Y registers support immediate mode loads, same as the accumulator.
        • 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.

          No, LDX #$FF is a perfectly valid 6502 opcode. 65C02 only added a few minor things like pushing and pulling index registers, and fixed a few minor hardware bugs. It's kind of irrelevant though, since the 7800 has a 6502C, which uses a plain 6502 core.

        • Re: (Score:2, Informative)

          by macs4all ( 973270 )

          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 f

    • Here http://www.6502.org/tutorials/6502opcodes.html [6502.org]

      the long hand stuff are just remarks

  • 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.
  • by Anonymous Coward

    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?

    • by butlerm ( 3112 ) on Friday July 03, 2009 @06: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: (Score:1, Interesting)

        by Anonymous Coward
        I can't speak for all SNES games, but as a (former) member of the Earthbound [wikipedia.org] hacking community, I can attest that Earthbound contains compiled code. I do not have it at my fingertips at the moment, but the ROM contains an ASCII (I think...) text string with the name of the compiler. Also, significant portions of the assembly code look like something no human would have ever written.
    • Wheee! Poorly commented 6502 assembly with no other docs.

      Hey! That's just like I used to write (with a little help from Lance Leventhal).

    • by dmomo ( 256005 )

      Looked decently documented to me. Assuming you are familiar with the op codes.

    • by dzfoo ( 772245 )

      I bet you that the original Joust from Williams was written in poorly commented M6809 assembly. And so was Defender and Robotron.

      Gosh, how I loved Joust. Damn you! Now I have to spend the 4th of July setting up and playing MAME.

              -dZ.

  • Unofficial? (Score:3, Informative)

    by TheRaven64 ( 641858 ) on Friday July 03, 2009 @05: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...

    • It probably means you get no rights to it use it in any way you choose and that they won't support it for when some noob wants help turn enemies into penis shaped creatures and wants someone to tell him what to copy & paste and how to get it to run on his emulator.
    • What does unofficially open sourced mean?

      Means somebody found the source code while dumpster diving.

  • Anyone notice... (Score:1, Interesting)

    by Anonymous Coward
    Anyone else notice "ENCRYPTION CRAPOLA -- GO INTO MARIA" comment in main loop of centipede. Love it!
    • Re: (Score:3, Funny)

      by hedwards ( 940851 )
      Well, if my knowledge of history by way of Hollywood is any help, that's the portion of the game that if accidentally accessed by a kid renders him in control of our nuclear arsenal.
  • 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.

    • by sjames ( 1099 )

      Perhaps in a round about way. I don't see any license or anything else, so the safe way would be to release a free Makefile that helps you download the source and then builds a ROM for you.

  • by Knowbuddy ( 21314 ) on Friday July 03, 2009 @05:50PM (#28575861) Homepage Journal

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

    • by dzfoo ( 772245 )

      Er, hold on there, cowboy!

      That's not THE Joust. That's the crappy Atari 7800 port.

      Though it was made by Williams, which kept it very faithful to the original.

      Ok, then, go on--do some cartwheels and stuff. It's cool!

              -dZ.

      • by b1t r0t ( 216468 )

        Er, hold on there, cowboy!

        That's not THE crappy Atari 7800 port. That's the even crappier 2600 port.

  • by basementman ( 1475159 ) on Friday July 03, 2009 @05:55PM (#28575895) Homepage
    This unofficial open source release signals that this will finally be the year of the cutting edge linux gaming platform.
    • My hardcore gaming rig runs Lincade [pc2jamma.org]. We are talking serious commercial grade stuff here, HAPPS controls, Tornado spinners, and a 30" Wells/Gardner [happcontrols.com] monitor in a SlickStik cabinet. If you are setting an arcade cabinet, make sure you get Lincade. There is no better gaming experience!
  • by haruchai ( 17472 ) on Friday July 03, 2009 @05:58PM (#28575909)

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

  • Some fun stuff... (Score:5, Interesting)

    by Sprite_tm ( 1094071 ) * on Friday July 03, 2009 @06:13PM (#28576011)
    * From the devkit readmes:

    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                ;GO TO SELECT MODE
    FUCKYOU   BIT     INPT4                  ;LOOK AT FIRE BUTTON INPUT
    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                ;THESE FOUR LINES MUST BE INCLUDED IN
                                             ;THE FINAL VERSION
    AND     INPT1,Y                ;REMEMBER
    BMI     FUCKBAR                ;REMEMBER,. . ., ROSEBUD

    * 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!
    • Re: (Score:3, Informative)

      by Spit ( 23158 )

      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.

    • by PCM2 ( 4486 )

      It looks like Hattrick is written mostly in Forth btw. I personally didn't know they wrote games in that language!

      There aren't many, but the poster children are Starflight and Starflight II [geocities.com] -- great games, btw.

    • Some of us still write games in Forth... get over it.
  • by silverspell ( 1556765 ) on Friday July 03, 2009 @06:23PM (#28576093)
    Apparently Curt Vendel and Atarimuseum.com [atarimuseum.com] deserve the real credit [atariage.com] for this release.
    • Indeed. For those that don't know, Curt has made it his life work to document and release as much Atari info and code and possible. He has forged links with developers and publishers and was responsible for the rereleased 2600 and 7800 consoles from a few years back as well as the current USB Atari original joystick for use with emulators. He has literally hundreds if not thousands of data cartridges, hard drives and floppies as well as many of Atari's original mainframes (well, vaxes) and the backups and i
    • Re: (Score:3, Informative)

      by dzfoo ( 772245 )

      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 g

  • by somenickname ( 1270442 ) on Friday July 03, 2009 @06:30PM (#28576139)

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

    • Re: (Score:1, Interesting)

      MECC

      Well their logo was quite prominent. The Minnesota Educational Computing Consortium, IIRC. Almost anyone my age in the US remembers things like Number Munchers. Unfortunately "carpet munchers hack" doesn't show up on google.

    • Re: (Score:3, Funny)

      by noidentity ( 188756 )
      Heh, reminds me when I used to break into the built-in monitor while a disk program was loading on the Apple II (which also uses a 6502 processor) and always saw a bunch of $EA bytes. I thought it was because it was an Electronic Arts game, that they used that hex value as some kind of signature. Only later did I learn that was the opcode for NOP. It's odd as on most other 8-bit processors $00 is NOP.
      • by PCM2 ( 4486 )

        I never thought about it. I think $00 is BRK on the 6502 -- that part seemed logical enough to me. Dunno why NOP would be such an odd value. Anyone?

        • Re: (Score:3, Insightful)

          by noidentity ( 188756 )

          I never thought about it. I think $00 is BRK on the 6502 -- that part seemed logical enough to me. Dunno why NOP would be such an odd value. Anyone?

          Perhaps so that accidental execution of a cleared area of memory would break rather than silently execute until it reached something non-zero. On the other hand, the 6502 didn't have any microcode, so opcodes were laid out based on the most efficient way to decode them. This $EA triggered the right combination of steps internally to do nothing. In other words,

    • (find yourself a Way-Back Machine if you aren't familiar with those games).

      You'll find that Oregon Trail remains a steady seller on Amazon.com - and that older versions are easy to find through sites like The Underdogs.

  • CMP #$FF ;SEE IF ANY INPUT
    BEQ FUCKYOU
    JMP GOTOSEL ;GO TO SELECT MODE
    FUCKYOU BIT INPT4 ;LOOK AT FIRE BUTTON INPUT
    BMI ATIT4
    JMP GOTORES
    ATIT4 LDA #0
    STA FLAP ;PREVENT FLAPPING IN LOADER
    JMP TITLOOP

    Hmmm...

  • Ms. PacMan (Score:5, Interesting)

    by thygate ( 1590197 ) on Friday July 03, 2009 @06:42PM (#28576209)
    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.
    • by Anonymous Coward on Friday July 03, 2009 @07:19PM (#28576425)

      Spoiling slashdot with Pacman porn again, are we?

    • Unfortunately, it seems that the legality of these is somewhat dubious. Copying the font data is likely to be illegal. Atari probably won't care, but it will stop your game being in most open source operating system repositories (see what happened to Blob Wars when they discovered that the author didn't have the rights to distribute the artwork). Note that, in the USA, you can't copyright a font, just a representation of a font (e.g. a font file or a set of bitmaps), so there's nothing stopping you from
  • by alnicodon ( 685283 ) on Friday July 03, 2009 @07:18PM (#28576419)

    I quite like the way this blog [dadhacker.com] by an old time Atari employee recalls the when and how of Atari developement. Something (Donkey Kong port [dadhacker.com] 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.

    • by PCM2 ( 4486 )

      Hell, anyone who has played Pac-Man on an Atari 2600 could have told you this much.

    • Re: (Score:2, Interesting)

      by PhysicalEd ( 744021 )
      yes, this is true. I was the lead on the port of Robotron to the 7800 at GCC, and all we had to go with was the arcade machine. So first of all we had to become expert players, at all difficulty levels. At GCC we started videotaping gameplay with a camera over the shoulder so we could study movement and derive rules for the "AI", and even just to know how many critters of the various kinds appeared on the different levels. Needless to say, becoming an expert Robotron player payed off over the years...
  • by jbn-o ( 555068 ) <mail@digitalcitizen.info> on Friday July 03, 2009 @10:40PM (#28577475) Homepage

    jadoon88 writes to share a series of old Atari 7800 games that have been unofficially open sourced.

    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 [gnu.org]:

    The official definition of "open source software," as published by the Open Source Initiative, is very close to our definition of free software; however, it is a little looser in some respects, and they have accepted a few licenses that we consider unacceptably restrictive of the users. However, the obvious meaning for the expression "open source software" is "You can look at the source code." This is a much weaker criterion than free software; it includes free software, but also includes semi-free programs such as Xv, and even some proprietary programs, including Qt under its original license (before the QPL).

    That obvious meaning for "open source" is not the meaning that its advocates intend. The result is that most people misunderstand what those advocates are advocating.

    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.

    • I still prefer Hippyware. It's far less ambiguous than either term.
  • 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)

    • Re: (Score:2, Interesting)

      by Sprite_tm ( 1094071 ) *

      It indeed is packed BCD. Some processors of that time have special instructions for that kind of notation, which makes calculating with them not much more difficult than normal binary. (Dunno if the 6502c has these kinds of opcodes, though; the Z80 for example does.) The advantage is that it makes blitting to screen really easy: instead of constantly dividing by 10, which is a processor-intensive task, you could just bitshift the number, which is much easier.

    • Back in the day, most if not all 6502 programmers books started out with tutorials on BCD maths - it was the best way as RAM was so limited.
    • That makes sense. I'm pretty certain the 6505/etc didn't have BCD opcodes, but I do vaguely remember now why BCD was used.

  • 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 "moder

  • 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

Avoid strange women and temporary variables.

Working...