Jump to content
IGNORED

Unknown Atari 2600 racing game proto!?


Thomas Jentzsch

Recommended Posts

The secret to the digit display is in the gap between the sets of numbers. It is exactly 5 pixels. The 2 digits together in each pair are 11 pixels wide. ;) So I suspect the code is doing somehting like this:

 

 

; Set both sprites to 3 copies close.

 

.loop

STA WSYNC ; Sync to start of scanline.

LDX #11

TXS ; Point the SP at the RESP1 register.

 

LDA digit1gfx

STA GRP1

LDA digit2gfx

STA GRP0

LDA digit3gfx

LDY digit4gfx

 

; delay to desired horizontal position for 4 digit display.

 

JSR .resetP1P0

.resetP1P0 ; No real subroutine call just a quick write to RESP0

; and RESP1. This positions the sprites 3 pixels off

; from each other forming a 11 pixels (digits 1 and2) of

; gfx 5 pixels(gap) 11 pixels (digits 3 and 4)

 

STA GRP1 ; Note P1 is reset before P0!

STY GRP0

 

; Perform again in same scanline to produce 8 digits.

DEC LoopCounter

BPL .loop

 

 

Sorry I don't have time to make a working example, but I am sure this is what is being done in this proto based on the pixel spacings. There is no flicker necessary. 8)

 

Cheers!

Link to comment
Share on other sites

The secret to the digit display is in the gap between the sets of numbers.   It is exactly 5 pixels.  The 2 digits together in each pair are 11 pixels wide.    ;)

Yup.

 

Though my solution is different to yours (I hope we will find out who is right soon), I finally made it working (now with source!). :)

 

Both solutions use some quite advanced tricks, I wonder if they where known back then. :ponder:

score2x4.zip

Link to comment
Share on other sites

Great work, Thomas, but your score can't be used in an interactive game because you are not doing indirect Y loads. You are hardcoding the addresses to point to each digit. You would have to put the kernel in RAM and overwrite the base addresses.

 

I'm sure this would be a piece of cake in a game with extra RAM. If the game was to be a CBS RAM+ game then the score portion of the kernel could have been put into the extra RAM.

 

BTW, on a slightly different topic, do you think it's possible to do a Death Derby score using sprites: two-digit left, two-digit middle, two-digit right score with separate colors for left, right, middle?

 

I don't think it is.

Link to comment
Share on other sites

Great work, Thomas, but your score can't be used in an interactive game because you are not doing indirect Y loads.  You are hardcoding the addresses to point to each digit.  You would have to put the kernel in RAM and overwrite the base addresses.

Ah, finally someone looking at my code. :)

 

Yes, it needs some RAM, either for the kernel or to put the 8 digit datas into. Everything else would be impossible.

 

BTW, on a slightly different topic, do you think it's possible to do a Death Derby score using sprites: two-digit left, two-digit middle, two-digit right score with separate colors for left, right, middle?

 

I don't think it is.

Hm, a little calculation:

6 * 8 = 48 (lda(),y; sta GRPx)

3 * 9 = 27 (lda zp; sta COLUP0; sta COLUP1)

5 = 5 (dey; bne .loop)

------------------

total: 80 (plus various RESPx!)

 

No, I don't think it is.

 

Well, except you don't need to space the digits too much (3 copies wide, like in Manuel's Seawolf) and we can get away with only one color-write (inverted black digits pattern, colored PF) and unrolling the loop at least once. I'll can check it you want me too.

 

Does this mean you finally found the time to continue your work?

Link to comment
Share on other sites

No, I don't think it is.  

 

Well, except you don't need to space the digits too much (3 copies wide, like in Manuel's Seawolf) and we can get away with only one color-write (inverted black digits pattern, colored PF) and unrolling the loop at least once.

UPDATE: It is possible! (even without loop unrolling) :)

score3x2.zip

Link to comment
Share on other sites

Does this mean you finally found the time to continue your work?

 

Yes, but without a debugger I'm afraid it will take me 10x as long to get anywhere. I was kinda hoping during my most recent hiatis that someone would add that debugger to Z26 or Stella. I took a look at the Stella source and I get the gist of the debugger hooks but I'm no C++ programmer so I'm not going to attempt it myself.

 

UPDATE: It is possible! (even without loop unrolling) :)

 

I knew you can never resist a challenge.

 

This is fantastic. I wonder if any other games out there ever did this? I don't think there are any examples. This may be another first for you, Thomas.

 

I'll have to bring this discussion over to Stellalist.

Link to comment
Share on other sites

I wonder if any other games out there ever did this?  I don't think there are any examples.

Since I had to use "illegal" opcodes (LAX), which AFAIK were never used back then, I am quite sure no original game ever did this.

 

But maybe some modern homebrews did.

Link to comment
Share on other sites

I wonder if any other games out there ever did this?  I don't think there are any examples.

Since I had to use "illegal" opcodes (LAX), which AFAIK were never used back then, I am quite sure no original game ever did this.

 

But maybe some modern homebrews did.

 

I was wondering how you would check that illegal opcodes were never used in the old 2600 games. Would you use something like Clonespy?

 

I remember reading on the Stella list about if a certain programming techinque had been used previously by searching the 2600 ROMS for a certain sequence of opcodes. It was something Garry Kitchen created.

 

I'm guessing a program was written to search for the opcode for LAX or any of the other "illegals"?

Link to comment
Share on other sites

BTW: Can somebody please explain why the resulting bid is $565?

 

The 2nd highest bid is just $360.55, so I would assume the resulting bid should be around $370.  :?  :?  :?

Looks like Mayhem's max bid was about $560. It's just like eBay bidding, you enter your max

and Bidiot's bids on your behalf starting at the lowest possibel bid, so atarimuseum up'ed

the bidding by more than $200.

Link to comment
Share on other sites

BTW: Can somebody please explain why the resulting bid is $565?

 

The 2nd highest bid is just $360.55, so I would assume the resulting bid should be around $370.  :?  :?  :?

Looks like Mayhem's max bid was about $560. It's just like eBay bidding, you enter your max and Bidiot's bids on your behalf starting at the lowest possibel bid, so atarimuseum up'ed the bidding by more than $200.

 

It was $555 actually. I know, it looked strange to me as well. $360.55 is the bid I was winning with before AtariMuseum came back. Maybe Bidiots does it differently in their bidding history, and only lists what the bid someone used to be winning with instead of their maximum whenever that maximum is passed...?

Link to comment
Share on other sites

It was $555 actually. I know, it looked strange to me as well. $360.55 is the bid I was winning with before AtariMuseum came back. Maybe Bidiots does it differently in their bidding history, and only lists what the bid someone used to be winning with instead of their maximum whenever that maximum is passed...?

Thanks, that explains it.

Link to comment
Share on other sites

It was $555 actually. I know, it looked strange to me as well. $360.55 is the bid I was winning with before AtariMuseum came back. Maybe Bidiots does it differently in their bidding history, and only lists what the bid someone used to be winning with instead of their maximum whenever that maximum is passed...?

 

Since when do you bid on 2600 prototypes Mayhem? I thought your area was C-64 stuff. Are you branching out?

 

Tempest

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...