Jump to content

SvOlli

+AtariAge Subscriber
  • Posts

    399
  • Joined

Everything posted by SvOlli

  1. Just a quick one, before I head off to work. Not any more. With the most recent versions, if you're timing is slightly off, the output will become black'n'white. Thanks! That was a reference to Solaris. I'm really impressed on how Doug Neubauer drew the Saturn-like planet on the starting screen. That should be because I'm a German native. In German it's very uncommon to use the ...-hundred for anything above nineteen. What I also noticed, when I first owned my 2600, it was just called "The Atari". If I now point of in some chat that I did a talk about "the very first Atari console" almost everyone get's mistaken and assumes that it's an Atari ST that I'm talking about.
  2. Adventure is a very nice hack. I found one glitch, though. I was going for the easter egg, and noticed that color-cycling both playfield color and the "created by"-message leaves the "tt" from "Robinett" unreadable.
  3. Johnny, to might want to take a look at these two talks: About the 6502: http://www.youtube.com/watch?v=K5miMbqYB4E (The 6507 is a stripped down version of the 6502) About the 2600: http://www.youtube.com/watch?v=qvpwf50a48E These should provide you with enough information to give you an orientation about what you need to know. And also keep in mind, that running code on the Harmony is fun, but development usually takes place in an emulator, probably Stella, since there you got a debugger where you can single-step your code. Not only useful for finding bugs in your code, but also to learn from other people's code. Greetings, SvOlli
  4. Hello, for some weeks now I've had the idea of link cable for the Atari 2600 using on the controller ports. Today, I had the pleasure of seeing a prototype running. So I think this is the right time to share this with you. Here's what I've got so far The Hardware: The design is based upon the Ardiuno platform. I suggest you go for a clone of the Arduino Nano board. ( http://arduino.cc/en...rduinoBoardNano ) It's about $15 and cheaper than the current standard boards Duemilanove and Uno, and the layout fits the design of the cable slightly better. Duemilanove and Uno will also work, but either the wiring will be not so straight forward, or the software needs to be set up for the different pin layout you decide. This is the wiring I used for the software: .....__|USB|__ .D13| |___| |D12---B SUB-D 1 .3V3| _____ |D11---B SUB-D 2 AREF| | . . | |D10---B SUB-D 3 A7| | AVR | |D9----B SUB-D 4 A6| | MCU | |D8----B SUB-D 6 A5| |_____| |D7----B SUB-D 8 A4| . . . |D6----A SUB-D 1 A3| . . . |D5----A SUB-D 2 A2| . . . |D4----A SUB-D 3 A1| . . . |D3----A SUB-D 4 A0| . . . |D2----A SUB-D 6 .+5V| . . . |GND---A SUB-D 8 .RST| . . . |RST .GND| JTAG |D0RX .VIN|_________|D1TX All five lines of lines used for a standard joystick are also used for linking. Assume that the cable is plugged into the right controller port the cable is used like this: SWCHA & $08: write clock (toggled) SWCHA & $04: write data SWCHA & $02: read clock (toggled) SWCHA & $01: read data INPT5 & $80: high = buffer in the cable is empty Here's an example for reading a bit: bit INPT5 bmi @nodata asl data lda SWCHA pha and #$01 ora data sta data pla eor #$02 sta SWCHA @nodata: As you can see the data byte holds the last 8 databits, to give you an idea on how to (de)serialize data. Software: - The Arduino software is built using avr-gcc. - The Atari 2600 code is written using ca65 from the cc65-package. If both avr-gcc and cc65 are installed all the software necessary for testing the cable can be build just by running "make". There are five pieces of software included: bitsetter: Arduino test program for setting all GPIOs (for debugging) bittester: 2600 test programm displaying all io-ports firmware: The firmware for the link cable looptest: 2600 test programm for a loopback-test connecting link cable to both controller ports queuetest: a small test utility to verify functionality of the software queue. So, that's it for now, as I've got to head off. I'll be reading comments, but my next post will be in something like 20 hours. Until then, have fun! SvOlli atari2600link.zip
  5. [...] no, not yet. I want to have the separation between compiler and platform complete and tested before I add another compiler. Sounds sane.
  6. Hello, I just arrived back home from the congress like half an hour ago, and the recording of talk is already up. http://www.youtube.com/watch?v=qvpwf50a48E Or with better quality: http://mirror.fem-ne...e_talk_h264.mp4 The responses I've gotten on the congress were mostly positive. I removed the prototype for the development cartridge I'm working on from the slides, because it wouldn't fit in time, and it has the most potential for a follow-up talk. Anyway, during my time standing up there, it felt like I didn't suck. I haven't seen the recording in total yet, just clicked to some passages I liked best, and still feel quite pleased with the result. Of cause there are some things that could be done better, like I now feel, that I should be talking more to the audience and less to the slides, but I was really worried that I got thrown off stage, before I could complete my talk. Writing all this, I now want to get to the point: THANK YOU! For your support, for your input, for anything! If you feel, that this talk can work as an introduction to someone who hasn't done anything with the 2600 yet, I feel like my project "giving a talk" has come to an successful end. Greetings, SvOlli P.S.: During the congress we hacked a bit on the 2600 to find out that at least mine will behave indeterministic on the $8B (ANE) opcode. I will not just execute "A = (A | magic) & X & imm". I've prototyped a small program running the test and concentrating all 16 million combinations to some output that will give us at least some indications on how it's behaving. I want to complete and optimize this in the next couple of days, and I really hope that you are as interested in doing some basic research as we were there, as we need to find out if this only occurs on some or on all 6507s.
  7. Thanks for making me use Google dictionary! In fact, "-pedantic" is also a flag for the gcc. From the manpage: "-pedantic: Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++." So that's why I like when someone's being pedantic about my slides. A new version has been uploaded. The "Arcade" section has been updated, by changing the layout a bit a managed to add another name, so after dropping just Reactor, Space Invaders and Breakout could be added. I've dropped two bank-switching slides (carts F0: Dynacom Megaboy and E0: Parker Bros), to save some time, since they have nothing that cannot be explained using the other slides. Also another slide about homebrew game ROMs hacking has been added using screenshots of Nukey Shay work on both Pac Man ROMs as an example. This should be the last beta version. Everything that does not arrive within the next 24 hours will be ignored. Thanks for your support so far, SvOlli
  8. Hi, take a look at: http://dasm-dillon.sourceforge.net/ I prefer ca65 of the cc65 package: http://www.cc65.org/ It needs a special linker file, though. You can try google, or send me a pm. Greetings, SvOlli
  9. Done, Thanks! From Atari's point of view it flopped, because it got copied in a short time, and therefore not selling the amount that was expected. And with broad distribution I mean worldwide. I'm from Germany, I can't remember, a genuine "Home Pong" between the generic "Tele-Tennis" clones. Space on the slides is limited, all titles there came from the top of my mind, almost in one go. Space Invaders was intentionally left out, since gets a mention during the explanation of the sprites. Breakout I forgot, because I never had paddles. Since there's no space left, any suggestions on what they should replace?
  10. Hello Andrew! Thanks for being pedantic. These are included. Included on slide 9. From "Commodore: A Company on the Edge" by Brian Bagnall I know that these 3 designs were the ones that were evaluated. Changed the text to point this out. More than 16 different PCBs is a bit more than cosmetically, but I added a note about 100% compatible. That's the best image I've got. Sorry. I want to say this on the slides with the colors. Yes, I know. I added some slides at the end to motivate the people to go for them themselves. I want to mention during the talk that there are much more than these two, Supercharger being the first, Harmony the current state of art. This is to explain how a framebuffer works. That's how most other systems work and how it is *not* done on the Atari. The logo is displayed by an assember program from www.6502asm.com The line was calculated in the correct size of a complete line with 228 color clocks, but I changed it again to the CPU cycles of a line. It's more useful anyway. Technically you are right: "asymmetric" is better than "changed", but the later one fits better what I want to say: "the 20 bits can be mirrored, repeated or changed during display ... resulting in an asymmetric playfield". And Tutankham does not use an asymmetric playfield, by it switches between mirror and repeat in level design, that's why I chose "alternating". This is Combat, Game 20. As you've seen, almost all of your corrections are in. Thanks for your support. Updated version uploaded.
  11. Another update is online, which now has included all topics from the todo-list.
  12. The talk will be recorded and the video will be freely available, like the talk that inspired me to do mine, the ultimate Commodore 64 talk: http://media.ccc.de/...re_64_talk.html So for this I want to cramp in as much as possible. Well, not as much as impossible. And I'm pretty sure, that I don't get shot if the talk ends after 50 minutes. For the first part there slides, like the different cases for the 2600, that will be faster than the 2 slides / minute that I need to do in average. Most diagrams will show up animated, bit by bit, so that the viewer won't get hit with the information all at once. So my guess is, that this one should work. I probably won't make it in 45 minutes, but in something like 50, which should also be ok. I'll know more on the 27th.
  13. Thanks! Take a look at slide 52: the CPU accesses the stack at page $100, but this is just a mirror from the zero page. And it is also stated explicitly in the quote from the manual that the 128 bytes of RAM is shared. That's a good idea. Done. Nope, take a look at slide 48. The CPU addresses 8K: 4K IO-space with RAM and 4k of ROM. It's a description of the chip which is _capable_ of sending interrupts, but it is not connected. I wanted to state this in the lecture. But since it's the second time that this topic is mentioned, I put that remark also on the slides. Thanks for the note. I resized the arrows to fit scale (20 CPU clocks, 60 color clocks) That indication is done in the following slide. I changed it to "How to squeeze this 40 bit resolution into 3 bytes?" I wanted to stick to the commercial titles... I also wanted to have a examples that can be easily explained to the audience. Indeed they do. A new version is uploaded. It contains several small fixes as well as a new font. Still to be done: - rework first two audio slides - rework dev cart slides - find a better letter for "F" in RIOT mapping xxx0 xxFx 1NNN NNNN I also put up http://svolli.de/dow...8c3intro.bin.gz , the ROM I intend to run prior to the talk as the room fills. (If they let me.) If you want to run it on real hardware keep in mind, that it is coded for my PAL system. BTW: I've got 45 minutes for the talk + some minutes for questions. My guess is that going through the slides at normal speed will take 60 minutes.
  14. You can watch them yourself. The will be a live stream and that stream will be recorded as well. The later one I will post here. If you want to watch live, google for "28c3 live stream" or something like that. The only other system I went in depth this far is the Commodore 64. So here's some stuff I did expect, when I got the idea of digging through the manual. - an easier way to sync precisely than on the C=64 (got that, sta $02) - the registers are programmed line by line (got that as well, but from here I didn't get what I expected) - the background is organized in some comprehensible way (it isn't, ordering changes from register to register) - sprites are positioned by writing the X value to a register (the combo of RESxx, HMxx and HMOVE is nothing that I could ever thought of) - the "write" registers can be re-read (the read register has nothing to do with the write register at the same address) And these are only the big ones, I came up with in the first 5 minutes.
  15. Nope, this is correct, as the "F" selects the function, either RAM (F=0) or IOT (F=1). Thanks! I didn't know where to get the exact values, so I took the sound base frequencies from the manual and multiplied them with 114. The first two audio slides will be done from scratch again, and maybe extended into three, if necessary.
  16. These have been fixed. Thanks. But for Atari, Activision came out of nowhere. That statement was about the "game development company Atari" not the 2600, I changed it a bit hoping that less misleading now. That's not correct: technically SP register is 16 bits. The upper 8 bits are hardwired to $01. Still by reading with TSX you'll only get an 8 bit offset to $0100, changed it to that. That slide is about the RIOT, which is capable of sending timer interrupts. On the slide about the CPU it is stated that the interrupt lines are not available. I want to point this out during the presentation. Yes, but there's only 1 line left from 2x GND, so I chose r/w. Thanks for letting me know this. I'll change my timer wait code to this. And changed the slide to a more general "wait for timeout". This is stated in the playfield chapter. These two will be changed later, as it can't be corrected by just changing 2 or 3 words. Thanks for being so picky. That's what get the flaws out of the slides. An updated version is uploaded.
  17. New version: fixed some typos like AMD -> ARM.
  18. Thanks! I'm no native, so I'm thankful for every hint where I went wrong. Auto spell checking of OpenOffice did not show much. I took most of them via copy'n'paste from the stella mailing list archives, again please provide me with the correct names to fix them. There are only 45 minutes for the talk. I chose the Supercharger as the first, and the Harmony as the most sophisticated and for still being in production, so that's why I'm short on other dev-carts. The different Flashbacks are something that I want to explain during the slides. The FB 2+ is mentioned together with the FB2. FB1 and FB3 didn't get on the slides because they do not resemble the hardware, as the FB2(+) tries to. D'oh! Fixed. An updated version will go online after a couple of fixes are in.
  19. Hello, I'm giving a talk called "The Atari 2600 Video Computer System: The Ultimate Talk - The history, the hardware and how to write programs" (http://events.ccc.de...ts/4711.en.html) at the 28th Chaos Communication Congress in Berlin on 2011-12-27. Since I've put a lot of effort into creating this talk, I'd like to have to community here to take a look at the slides for comments, before I use them for the talk. Please keep in mind that on most slides the information is revealed piece by piece using animations. Since there's an upload quota for a single file, and I can't squeeze the PDF below 2.8MB please download it from http://svolli.de/dow...php/4711.pdf.gz . The final version of the slides will be released, once they're done. The talk itself will be available via streaming and recorded for later viewing. I'm thankful for your input! Greetings from Germany, SvOlli
  20. It never worked inside an Atari, neither 2600jr nor 7800. Only flashing via PC is working.
  21. Thanks for the help, Thomas (forgot this one in the first reply) and batari. I tried the harmony on an original Atari 2600jr and an original Atari 7800, both modded with composite output, since I've got no TV anymore. The 2600jr was the first try. When it didn't work there, I got my 7800 modded as well to make sure that it isn't just a fitting problem. I cleaned the connector, but the problems are still there.
  22. No, as I stated, I tried both, the normal SD card mode using the BIOS update, as well as development mode with Adventure. In both cases the result is the same.
  23. Hello, I'm trying to get my Harmony up and running on a PAL system with a 2600jr and a 7800. On both, it just won't start: - on the 2600jr, it has the same effect as no cartridge at all - on the 7800, I get a green/grey-ish screen and some noise out of the speakers, that's all I tried it with both, the current firmware eeloader_104e_PAL50.bin + hbios_105_PAL50.bin as well as flashing Adventure (PAL) in development mode. Flashing went fine, but "nothing" happens when I plug the cart in any of these two consoles, which work fine with any other module I have here. Is it broken, or is there anything else I can try? Greetings from Germany, SvOlli
×
×
  • Create New...