Jump to content
IGNORED

Does using a multicolor player sprite always use up the missile too?


Recommended Posts

N00b question so I figured this would be the right forum for it.  When I got into the retro-Atari scene, I noticed that alot of games didn't seem to use the missile sprites (like Pitfall) which was odd to me since I felt using them would have opened up alot of gameplay options.  When looking at the Batari Basic kernel options, I saw that using a multicolor player sprite uses up the corresponding missile and then kind of figured it was used to change the color (store the upcoming color value?).  I'm curious if that is definitely the case both with or without Batari Basic and, if so, why that's a necessary trade off.   I'm not a programmer myself but I do understand some of the lingo (enough to muddle my way through my first hack at least) and am curious as to how that works in code.  Thanks in advance.

Link to comment
Share on other sites

A Player and Missile pair share the same color register (P0 with M0, P1 with M1), but are otherwise independent and you can use both on the same line.

 

It's more a matter of available display kernel time.  On average, you can only do 8 to 12 TIA register updates per line.  More can be done with some tricks, upto 15 with DPC+/CDFJ Fast Fetch option.

 

For Batari Basic, the Standard Kernel has a bunch of options allowing the user to choose which things they want to update: These options determine what TIA updates are done on a line for the entire display frame.

  • Like 1
Link to comment
Share on other sites

1 hour ago, splendidnut said:

A Player and Missile pair share the same color register (P0 with M0, P1 with M1), but are otherwise independent and you can use both on the same line.

 

It's more a matter of available display kernel time.  On average, you can only do 8 to 12 TIA register updates per line.  More can be done with some tricks, upto 15 with DPC+/CDFJ Fast Fetch option.

 

For Batari Basic, the Standard Kernel has a bunch of options allowing the user to choose which things they want to update: These options determine what TIA updates are done on a line for the entire display frame.

Thanks.  So, for example, would using a two line ASM kernel give a coder the updates per line necessary to use multicolor sprites and the corresponding missiles?  I was looking at random terrain's site including .bin files yesterday as well as youtube example videos and was impressed with what DPC+ is capable of on the 2600.  Is it the decrease in the CPU cycles taken by various activities (like drawing a sprite) that allows more updates or is the register update per line limit related to yet separate from the 76 machine cycle limit?

Edited by LatchKeyKid
Link to comment
Share on other sites

11 minutes ago, LatchKeyKid said:

So, for example, would using a two line ASM kernel give a coder the updates per line necessary to use multicolor sprites and the corresponding missiles? 

Yes... and actually, that's what the Multisprite Kernel in Batari Basic does.  It allows both player sprites, the missiles, and the ball to be used... but with the player sprites using double-line resolution and the missiles/ball limited to being 2-pixels high.

 

24 minutes ago, LatchKeyKid said:

Is it the decrease in the CPU cycles taken by various activities (like drawing a sprite) that allows more updates or is the register update per line limit related to yet separate from the 76 machine cycle limit?

Basically, updating TIA registers is done with a pair instructions, one to Load data from memory and the other to Store the data in a TIA register.  With DPC+/CDFJ, Fast Fetch mode allows a faster data load instruction to be used in which the data is part of the instruction and is replaced by the ARM chip as the 6502 is loading it.

 

  • Like 1
Link to comment
Share on other sites

You might want to take a look thru @SpiceWare's powerpoint:

 

http://www.spiceware.org/downloads/Atari 2600 Homebrew 2013.ppt

 

Slides 63-66 show some examples of how sprite drawing changes when moving from a standard cart -> DPC -> DPC+ -> Bus Stuffing.

Slides 67-71 show diagrams of how a single line kernel changes when moving thru those same cart hardware upgrades.

  • Like 1
Link to comment
Share on other sites

1 hour ago, splendidnut said:

Yes... and actually, that's what the Multisprite Kernel in Batari Basic does.  It allows both player sprites, the missiles, and the ball to be used... but with the player sprites using double-line resolution and the missiles/ball limited to being 2-pixels high.

 

Basically, updating TIA registers is done with a pair instructions, one to Load data from memory and the other to Store the data in a TIA register.  With DPC+/CDFJ, Fast Fetch mode allows a faster data load instruction to be used in which the data is part of the instruction and is replaced by the ARM chip as the 6502 is loading it.

 

Thanks.  I've been focusing mostly on the basic kernel because I assumed (apparently incorrectly) that it was the only one that could be used on base hardware without enhancement chips.  I didn't realize the multisprite kernel was two line as I actually prefer that look and use the square sprites in my hobby art sprite designs (like my avatar pic).  I had been hoping to use the ball to make additions to my main player sprite so the height limitation is definitely a tradeoff to the extra sprites available.  Can you still change the color of player sprites line to line as needed with multisprite kernel?  

 

1 hour ago, splendidnut said:

You might want to take a look thru @SpiceWare's powerpoint:

 

http://www.spiceware.org/downloads/Atari 2600 Homebrew 2013.ppt

 

Slides 63-66 show some examples of how sprite drawing changes when moving from a standard cart -> DPC -> DPC+ -> Bus Stuffing.

Slides 67-71 show diagrams of how a single line kernel changes when moving thru those same cart hardware upgrades.

Thanks again.  It looks like the 2013 presentation download doesn't work on both google docs or microsoft online (or open office) but he does have three other newer ones that I can try as well on icloud that hopefully will have the same content.

Edited by LatchKeyKid
Link to comment
Share on other sites

16 hours ago, LatchKeyKid said:

Thanks again.  It looks like the 2013 presentation download doesn't work on both google docs or microsoft online (or open office) but he does have three other newer ones that I can try as well on icloud that hopefully will have the same content

 

You should be able to access the original Keynote presentation online via iCloud, should work better than the export in PowerPoint format.

 

No iCloud account is required, you can enter anything when prompted for a name:

 

image.thumb.png.84f171f3a4d8d734f2fd209c83c83bd8.png

  • Like 1
Link to comment
Share on other sites

Thanks to you both for the links!  Wow, those are some serious savings with the newer tech and techniques.  The games are obviously still quintessentially Atari games IMO but I'm sure that extra time allows you to really let loose with more intricate gameplay ideas that people don't expect from what most consider the first console they remember hearing about.  

 

I've got alot to think about both in regards to how much I'm willing to (and to be honest capable of) learning as well as what is essential for potential gameplay.  It's good to see in table for that there is a variety of options with tangible benefits to choose from.  Just in case, I've started scaling down some ideas and making monotone versions of my sprites so far just in case.

Edited by LatchKeyKid
  • Like 1
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...