Jump to content

calamari

Members
  • Content Count

    369
  • Joined

  • Last visited

Posts posted by calamari


  1. I am thinking of adding floating point support to 5200BAS using the Atari 800 ROM routines, since they are already written up and pretty much ready to go (A few changes would have to be made to relocate them to 5200 ROM space).

     

    But, would we be able to use them in our games or do you think Atari would challenge that? I could get around any restrictions for the compiler by making the person compiling get the ROM and I could read the info from there, but it doesn't really matter if people aren't able to distribute their compiled game.

     

    I'm guessing that it all comes down to whether the Atari system ROMs were released to the public. Does anyone know if this is the case?

     

    Thanks,

    calamari


  2. To my great relief, 5200BAS 1.60 sprites are *NOT* broken!! :D |:)

     

    So, I guess that means you'll need to rework a few things in your code...

     

    I found an old River Racer example program that I never released (oops!), and it uses a sprite, so enjoy. I tried to spiff up the code a little to use some of the newer IF..END IF and DO...UNTIL/WHILE, but some of the original GOTO stuff remains. You'll be able to figure it out without too much trouble. It also uses character graphics.

     

    http://www.azstarnet.com/~jeffryj/5200exam.html

     

    You'll need to do some experimentation on your own with a real 5200 to figure out what you need for your joystick routine, I still haven't tackled that one, yet. You'll be getting an analog value for X and Y. The emulators will produce certain values for each direction, but these don't mean anything for the real console, not to mention calibration, etc.

     

    calamari


  3. I got your mail last night.. not sure why it said that it bounced.

     

    I was tweaking the sprite code and I may have damaged it prior to the 1.60 release of 5200BAS. I'll put up a sprite demo when I make sure everything is working again, no problem.

     

    I suppose some kind of BMP convertor would work for the Antic E (4 color) or Antic F modes (9 color, or the high rez 2 color), but you're looking at around 16k bytes per screen (without compression), and the max ROM size without bankswitching is only 32k. It's going to be a lot more efficient to use an Antic 4 screen (and you get 5 colors instead of 4). The character set will take 1k, and each screen you make with it is only 960 bytes. AlanD was able to compress his screens even further with a custom routine. I have an ANTIC4 screen designer program on my website.. it's not that bad using the blocks, you just have to get used to them. Give it a try!

     

    calamari


  4. I'd also been wanting to port Channel F's Dodge It (pretty similar to your game idea) to the 5200 for a while, but held off because juggling all those sprites will be a challenge. You'll probably need to write a special sprite algorithm, maybe something like this?

     

    1) Keep an array with info on each ball: position, rough vertical position, direction, speed, # of skips

     

    Before the screen is drawn:

    2) Update the position and direction of each ball in the array.

    3) Check for balls that are in the same vertical range using the rough vertical position value.

     

    Have the program construct a custom DLI routine for each frame:

    4) If there is more than one ball but less than 4 (or 8 if you use all sprites) in a particular line, multiple sprites will need to be assigned for that line, but # of skips will reset to 0 for each of these balls.

    5) If there are more than 4 (or 8) balls in a line, some will have to wait to be drawn until next time. If the # of skips value is >0 then that ball gets priority. For the balls that are left out: Increment their # of skips value, they will get priority next time.

    6) The DLI will need to continue to advance the sprites down the screen for each line they are needed on, and also do horizontal adjustments. This is the tricky part, it will be tough to fit that all with the time that is available.

     

    While the screen is being drawn:

    7) The above DLI's happen automatically for each line and the screen is drawn.

     

    Anyways these are just some rough notes.. those that have messed with sprites more than I have will hopefully let me know where I went wrong ;) I am probably making this harder than it needs to be.

     

    calamari


  5. Wow that's not too far off from my routine (of course it looks to be a little more efficient). That's cool.. it makes me feel like I know what I'm doing

     

    Thanks,

    calamari

     

    p.s. I haven't been doing much on Solitare lately.. All I've been doing is going to work and school. I still need to write my new sprite routine, and it's turning out to be more of a challenge than I expected. Once I get it, it will be great though!


  6. I also started off on the 8088. One of the hardest things starting off with 6502 that I remember was their method of accessing the 16-bit memory using two 8-bit memory addresses. The 6502 code:

     

    code:

    
    

    LDA ($80,Y)


     

    is similar to this double dereference in 8088 (if BH=00):

     

    code:

    
    

    MOV SI,[0080h] ; get real offset from word at 0080h

    MOV AL,[sI+BX] ; read a byte from offset+BX


     

    To match Y the BX really should be something like BL to make it an 8-bit offset, but that's not valid 8088.

     

    I also had lots of problems with the 6502 branch statements, but that was my own fault for misunderstanding signed vs. unsigned comparisons even on the 8088 (for example BPL/BMI vs. BCS/BCC).

     

    Since there is no plain ADD/SUB for 6502, you have to use ADC/SBC. Well, to do a "regular" add, you would use CLC then ADC. But, for a subtract you'll need to use SEC then SBC. Otherwise, you get the wrong results on your subtractions. Good luck with MUL/DIV. For multiplication use shifts with add, for division I recommend a binary division routine.

     

    The 6502 will set flags on more instructions than the 8088, which is pretty handy sometimes. For example, even right after doing a LDA/LDX/LDY you can branch on a zero/non-zero condition.

     

    Hope this info. was helpful,

    calamari

     

    [ 05-23-2002: Message edited by: calamari ]


  7. quote:

    Why would a third party make the cords to so closely resemble Atari 2600 controllers, and yet it looks like they actually could DAMAGE an Atari 2600????

     

    I don't get it. Sometimes Atari is just ****ed up, but I like it still.


     

    Actually, you're right. This was all part of an evil master plan by Atari (who didn't even make the competing WICO brand sticks). If they could destroy enough consoles, maybe that would boost sales and they could stay afloat.

     

    Atari proceeded with its plans and had some success, making it as far as the home computer market before their efforts were discovered and the company was shut down.

     

    However, the damage was permanent... Look at the back of your computer. There is an "Atari" port right there, enticing you to plug in your Wico stick! You must resist the temptation to do so for your sanity's sake.

     

    calamari


  8. Yeah! Actually a couple people have e-mailed me with projects or questions, and of course I'm using it (for Solitaire). So maybe not a huge user base, but thats to be expected for a narrowly focused program like this.

     

    Thanks for the nice posts! You all keep me motivated

     

    calamari


  9. Here is 5200BAS Version 1.60. This release adds quite a few useful commands and should result in more readable code.

     

    Version 1.60, 05May2002

    * Fix: END SUB bug

    * Fix: Keypad repeat! KEYPAD FIX updated.

    * Fix: More efficient string storage

    * Added DIV8, DIV16, MUL8. Removed DIV.

    * Added SELECT CASE, CASE/CASE_, END SELECT

    * Added DO/DO_ WHILE/UNTIL, LOOP/LOOP_ WHILE/UNTIL

    * Added multiline IF...THEN, ELSE, END IF

    * Added expressions NFLAG, >>=, <<, TRUE/FALSE

     

    All of the new commands have been added to the online documentation except SELECT CASE.

     

    Download from: http://www.azstarnet.com/~jeffryj/5200bas.html

     

    Best,

    calamari


  10. ...blah blah.. controllers suck.. blah blah blah

     

    Have you ever even used a 5200 with Wicos or a Masterplay interface? Oh..hmm, wait, maybe you've used a 5200 trakball? Really? Well, how about this: have you ever even used a 5200? No? Then what are you posting this crap here for? LOL, I give your post a huge fat "F".. get lost! Either that, or reform, make an effort to get some good sticks. The 5200 has a great amount of "A+" games that you are missing out on because of your ignorance.

     

    BTW, can anyone guess my favorite classic 5200 game? I'll give you one guess

     

    calamari


  11. Wow I think I found it!

     

    $000B PCOLR3 [$C015 COLPM3]

    Color of player and missile 3. When the four missiles are

    combined to make a fifth player, it takes on COLOR3.

     

    So, that's the answer I guess . Looks like I need to get busy and redesign my character -> sprite routines. Oh, and I'm glad they chose COLOR3, cuz thats where I alwready had white

     

    calamari


  12. Looks like I had this question before, and I forgot the answer Here's a partial log of what Dan Boris shared with me way back when:

     

    quote:

    *** Log file opened: 12/10/96 1:32:00 PM

    i only see 4 sprite color registers.. how do i change the color of sprite 5 ?

    the 5th sprite is just a combination of the 4 missiles...

    is there a missile color register ?

    yes there is a color register for each missile, and there is a bit in one of the registers that makes all 4 missiles take on the same color.


     

    So, at least I know it's possible!!

    I'll keep looking.

     

    calamari

     

    [ 04-10-2002: Message edited by: calamari ]


  13. Hi,

     

    I'm trying to get the sprites set up for drawing some cards, and I have to say that I'm a little stumped on how these missiles work as well.

     

    What I planned to have is players 0 & 1 as red, then players 2 & 3 as black (for the left & right halves of the card). The card image will be drawn with these 4 sprites).

     

    Then, I was planning on combining all 4 missiles as a 5th player at double width to be the white card background. However, I'm having trouble seeing how I can define the missiles to be white, independent of the red and black of the other 4 sprites. From what I'm seeing, the background will be black and red, instead of white.

     

    Any tips on how to get red, black, and white out of this mess would be great

     

    Thanks,

    calamari


  14. Update:

     

    Got 3 card mode working.

     

    Also got deck flipping done.. need to add restrictions on its use, but I need to figure out which game variations to do first.

     

    Fixed the bug with duplicate cards. It turns out that the discard pile count was not being cleared on deal, so old cards were immediately available. Weird that I didn't notice that before.

     

    I guess the next hurdle is making the moving 3 color card sprites.

     

    calamari


  15. Just a little progress report so I can keep track of what I'm doing with this game

     

    * Fixed the weird mouse pointer. It turns out that it was caused by the way I was assembling it. If I assemble and fill unused spaces with $FF instead of $00 it causes the bug. You might wonder why I'd even do that.. The reason is that when burning the image, $FF doesn't need to be written to a blank EPROM, so its FAST on usued sections. Of course the solution is to manually fill in the rest of the mouse pointer data with $00's like I should have the first time.

     

    * Got the $ scoring working. The range is -$32768 to $32767. It will wrap around right now. I think that's plenty of range though, you'd have to play a LOT of games to get that much cash.

     

    * I'm considering cutting out the standard scoring. Does anyone prefer standard scoring to the $ scoring? Don't worry, I'm still keeping the 3 cards at once option, and that's what I'm surrently working on. If I do cut out standard scoring, I'm considering adding another game, Poker Solitaire, which I came up some years ago. So, you guys that preordered might get 2 games for the price of one .

     

    * I'm also working on getting the source code legible, so that means I've been doing work on 5200BAS. Unreleased version 1.60 has new commands like SELECT CASE, WHILE/UNTIL on DO...LOOP's, and a multi-line IF...THEN/ELSE/ENDIF. I still need to add the ability to do muliple tests (i.e. AND and OR), but it will come. Also I'm thinking of adding EXIT SELECT, a command not even in normal basic, but useful.

     

    I still have some things to work on though (in order of least to most feared):

     

    * I'm in the middle of working on the 3 card mode and being able to flip the deck over.

     

    * Games after the first one will show duplicate cards. I'm hoping that fixing this is as as simple as zeroing out the card storage areas and card counts in between games, but we'll see.

     

    * Need to build the color card sprite routine.

     

    * Still need to add adaptive joystick routines. I have my new division routines up and running so this should be a little easier.

     

    * No cool ending, yet

     

    calamari

×
×
  • Create New...