Jump to content

CurtisP

Members
  • Content Count

    259
  • Joined

  • Last visited

Posts posted by CurtisP


  1. You aren't the first person to think that, but if you add a "pfscroll up" to a program with a playfield you'll see that you are wrong. Read up on the Playfieldpos variable and Shakescreen to learn more about how vertical scrolling works in bB.

     

    I see now. Unfortunately PFCOLORS are tied directly to the PLAYFIELD lines, although a Kernel mod might get you what you want. I'll have to take a look.


  2. The demo posted Uses a 32x12 playfield, but the playfield scrolls at a much higher resolution; so a single horizontal playfield line requires multiple calls to pfscroll to scroll up or down the height of one horizontal playfield line. Is it possible to scroll the pfcolors as smoothly as the playfield?

    I'm pretty sure that the playfield scrolls at low resolution (whatever pfheight is set to). If you are seeing something different, I would like to see the code.


  3. there are 3 chapters now. and in the first there is spoken of many example codes and various gametypes that will be covered.

     

    is this to come?

     

    I have considered writing a tutorial for programming in Bb. If there is interest, I may go ahead and do it.


  4. I can't afford to keep buying blank cd's to burn one or two files so wish me luck.

     

    As long as both CD Drives recognize multi-session files, you don't have to burn a new CD everytime you need to copy files. If you leave the disc open when you burn it, then you can put it in the burner again, import the existing sessions, then put the new files on it. If the files have the same name as old files, then the old ones will simply no longer be accesible. Or if you want access to all the files, put them in different directories (named by date or something).

     

    This way you can use the same CD for multiple tries.


  5. Can anyone explain why, in the following code, does lives=lives-16 gets rid of one life instead of lives=lives-32? And while you're at it, make the cars never stop. ;)

     

    The lives variable is actually two variables in one. The top three bits are the number of lives. and the bottom five bits are a pointer to the sprite data, like so:

     

    128 64 32 16 8 4 2 1

    | Lives | Pointer |

     

     

    If the pointer data happens to be less than 15, then subtracting sixteen will cause a carry, which will then subtract 1 from the Lives portion. Of course this should also mess up your Pointer and make the sprite look all wrong.

     

    Why did you use =16 anyway?


  6. I donated a copy of my Pacman4K game for their auction. No other carts authorized be me will be made of this 4K game. All proceeds will go to the show. You can read more about it and see pictures in this blog entry.

     

    I wonded it. The precious is mines! And I gotsded to meet Albert too!


  7. I donated a copy of my Pacman4K game for their auction. No other carts authorized be me will be made of this 4K game. All proceeds will go to the show. You can read more about it and see pictures in this blog entry.

    If its a Chinese Auction like last year, I will be putting a WHOLE lot of tickets in that bowl...


  8. bB is not liking the fact that I put the following code into its program:

    I'm using the multisprite kernel, so player3 should be possible, but it's saying it's an unknown collision type.

    The Atari 2600 doesn't have a player3, so it has no way to detect any collisions involving player3. The multisprite kernel lets you display something it calls "player3," but which is actually player1.

     

    I'm pretty sure this is covered in the manual. You may want to go back and read it again. Now that you have an understanding of the system in general, the details will make a lot more sense.


  9. I'm not sure if this is Batari Basic's fault or not, but I'm using Windows to use 2600IDE/bB, and is there a way to have the black DOS screen that comes up last more than a nanosecond before it disappears and the thing that tells you how many bytes you have left in your program with two buttons to click on pop up? (Excuse my lack of technical terms.)

     

    What I did was to add a PAUSE at the end of 2600baside.bat (on the line after ":END"). Then you can see what ever happens to appear in the DOS box, then press Enter to continue on to the 2600IDE dialog box.


  10. Attached is the latest and most likely final verison of the game. I added in the scrolling colors thanks to a suggestion by CurtisP. I had originally wanted to slow the scrolling of the colors down a little bit as they scroll faster than the background, but I couldn't get it to work. Slowing the color scrolling down made the movement too jerky, it has to move faster in order to scroll smoothly. Either way, it still looks much better than how it was before. I also changed the background of the title screen to black, which definitely makes it look better.

    Steve

     

    Did you try scrolling the colors each time you scroll the screen? I only see pfscroll used in two different places, so it doesn't look that hard to work in.


  11. I don't know why, but it seems many Atari owners don't have the user's manuals anymore (that's strange since the VCS is only 30 years old). Since they're missing the one book that tells them, I imagine many folks scratch their heads for a while when they go to hook the system up.

     

    My first thought was, who the heck doesn't know how to hook up an Atari? But then I realized, that I have been hooking up systems like this for almost 30 years now.

     

    In fact, when I went to the electronic pecialty store (where the guys really know their stuff) to buy an RCA to F adapter so I could hook my 2600 to my TV, the salesman had no idea that the 2600 had an intenal RF modulator. I would say that anyone who's worked with audio/video for less than 10 years wold just try plugging the 2600 into the yellow video in jack, and then thnk it was broken, since there was no picture.


  12. There have been requests for two 3-digit scores before and they have been on the todo list since late 2005. I just haven't done anything about it :(

     

    Michael, if you write a working two 3-digit score minikernel, I'll see what I can do to support it formally.

     

    I would be happy with a two digit dual score minikernal. Seems this would be mush easier anyway. I'm just not comfortable with trying to write a minikernal yet.


  13. I haven't gotten all the way through yet either...but I find myself trying again and again. ;)

     

    Well since all the way through is 999,999 points, that will take some doing.


  14. Exactly one month later, I have added the last little bit and am calling the game complete.

     

    I added code to cycle colors after about 3 1/2 minutes of inactivity. Since redefining player1colors requires some brute force code, this ended up taking a good 400 bytes.

     

    I now have 15 bytes left after compiling, so I pretty much have to stop.

     

    Now I just have to play it a lot on the actual console, to make sure there's no bugs.

    Silhouette.bas

    Silhouette.bas.bin


  15. Okay, I finally got my keypad controller routine to work. I'm sure it could be done a lot better, and I intend to optimize it before putting it into a routine that could be included in a batari Basic program-- e.g., by adding "include keypads.asm" and "dim keypads = a" (or some other user variable) to the program. One way it can be optimized is by replacing the "sleep" statements with less ROM-hungry methods of wasting 476 cycles.

     

    One of my ideas was to use the paddle variables for the keyboard. However, since they are shared with missile0, this would require the kernel_option no_blank_lines to be set. I think I like the idea of dimming the variable better.

     

    The way I would have used vblank was to spread the reading of the controller out over multiple vblanks. Set the output register in one and read it in the next. The drawscreen in between would give you plenty of microseconds. This would require two variables, one for a counter and one for the results. The results variable would just stay 0 until the keypad read was done.

     

    Another possible issue is that this code forces both controllers to be a keypad, whereas some people would like to use a keypad plus a joystick.

     

    All that said, it's fantastic that you got the reading code to work!


  16. Is it true PAL clocks only have 50 seconds to a minute and

    50 minutes to an hour?

     

    Actually 50 - 60 - 60 makes much more sense when you consider that these are the same people that brought you 12 inches in a foot, 3 feet in a yard, and 5 1/2 yards in a rod.


  17. I've been interested in the keypad controllers, too, so I'll see if I can write a routine or some example code.

     

    I've considered writing a Keypad routine as well. My thought was to stick the reading code in the VBLANK routine, and store the results in the variables used by the paddle routine to be read by the program. Don't know when I'll get to it though.

     

    Or we could collaborate...

×
×
  • Create New...