Jump to content

Devin

Members
  • Content Count

    487
  • Joined

  • Last visited

Posts posted by Devin


  1. Is anyone interested on working on a Wikipedia article for homebrews? I recently worked on the basic homebrew article by adding a section on the Atari 2600 and adding a picture of Zach's Four Play.

     

    http://en.wikipedia.org/wiki/Homebrew_%28video_games%29

     

    Some of the other consoles have their own page. Atari should have one too. I would like the article to include a history of the Atari homebrews as well as a gallery of pictures of your projects.

     

    I would like to know who would like to have their work put on the page and if anyone would like to help me write an article.


  2. The "vcs.h" file needs to stay more generic, so it's actually safer to *avoid* explicit memory locations. Due to the way the TIA is connected with the address lines of the 6507 CPU, the TIA registers are mirrored numerous times throughout the Atari 2600's address space. Even though the locations at $0000 through $002C are considered to be the "main" addresses, at least one bankswitching scheme ("3F" or TigerVision) uses the addresses below $0040 to trigger bank switches. For that reason, the TIA read/write registers need to be easy to relocate. If you look at the "vcs.h" file, you'll notice that it contains three special variables-- TIA_BASE_ADDRESS, TIA_BASE_READ_ADDRESS, and TIA_BASE_WRITE_ADDRESS. If you don't declare these variables in your code before including the "vcs.h" file, they will automatically default to $0000, which means the TIA registers will be defined from $0000 through $002C as expected. But if you want to write a program that will use the TigerVision bankswitching scheme, then you should do the following:

     

    TIA_BASE_ADDRESS = $40; or $0040
    
      include "vcs.h"

    ...

     

    Ah. Thank you. That does make sense. I was completely unaware that there was that type of functionality in the system. I'll use the standard vcs.h file for my project. Thanks Michael.


  3. When you jump to a sub-routine, the processor pushes the current address on the stack. This allows multiple subroutines to be called.

     

    A
    JSR B
    ....
    
    B
    JSR C
    JSR D
    RTS
    
    C
    LDA #111
    RTS
    
    D
    LDA #222
    RTS

     

    The order of execution will be A B C D. The accumulator will contain 222. When RTS is encountered, the system will take whatever two bytes are on the stack - whether it is an address or data! Make sure that you *never* JMP to a subroutine instead of using JSR!


  4. Is there a table that I can download which contains the RGB color values for the Atari 2600?

    I know this isn't quite what you had in mind but this workshop chapter link does have a color chart for the 2600. maybe you can somehow check the RGB colors of the chart here

    http://www.atariage.com/forums/index.php?showtopic=27338

     

    edit: I was right. If you go to the chart and highlight a color, it shows the RGB values.

    I found that chart before - I even made a new version of it. However, I noticed that Stella displays the colors a tad different than the chart. For instance, the chart displays that $02 has a value of #404040. However, Stella shows #4a4a4a - a bit brighter.

     

    In any case, not a huge issue - though a tad confusing. :)


  5. Hello all,

     

    I'm sure this is a very common newbie question, but I was wondering if there is a solution.

     

    I'm positioning some sprites using the rather odd horizontal movement registers. When I call HMOVE immediately after WSYNC, about 6 or so pixels on the next scanline are black. Is there a solution to this?

     

    I'm currently tormenting the clock example.

    post-17256-1198234957_thumb.png


  6. It also might help to put together a quick-n-dirty batch file to save all that typing.

     

    @echo off
    dasm %1.asm -f3 -o%1.bin
    start %1.bin

     

    This assumes that you have registered .bin with Stella. I saved by batch file as asm.bat. If my file was called test.asm, I would only have to type

     

    asm test

     

    It will be assembled and then opened by Windows.


  7. It may be a bit late but I did one to see what I could do. He either looks like a wizard or someone sleep walking in their pajamas.

     

    Wow. Excellent work.

     

    Ya like that huh? Well what do you think of Super mario on the 2600? how is this one? I had to do blinds around the hands and double the width.

     

    super_mario_black_BD_atari_2600.bmp

     

    That is simply freakishly good! To be completely honest, that looks better than the NES version.


  8. Here is a sprite positioning routine that is a little easier to use than most of the others I have seen:

     

    PositionASpriteSubroutine
      sta HMCLR
      sec
      sta WSYNC;					  begin line 1
    DivideLoop
      sbc #15
      ...
      rts			;+6	  9

     

    EDIT: Excellent! My biggest worry about my first program was positioning sprite. With just a dozen or so lines - you dispelled my problems!

     

    Thank you.

×
×
  • Create New...