Jump to content



1

A specialized kernel that will allow different colors on a playfield row?


No replies to this topic

#1 Random Terrain OFFLINE  

Random Terrain

    Visual batari Basic User

  • 20,910 posts
  • Controlled Randomness
    Replay Value
    Nonlinear
  • Location:North Carolina (USA)

Posted Sun Mar 30, 2008 11:43 PM

Take a look at this:

http://www.atariage....s...t&p=1492079

View Postsupercat, on Sun Mar 30, 2008 3:03 PM, said:

View Postjbs30000, on Sun Mar 30, 2008 5:32 AM, said:

At first I thought that maybe the top part of the cube that QBert lands on was right above or below the walls, so it's possible to use the technique of coloring rows separately like bB's pfcolors does, but upon closer inspection that can't be it because there are clearly pfpixels in the same row but are different colors. Maybe the parts that can change color are missiles?
Almost any TIA register may be changed at any point in a row to take immediate or almost-immediate effect. Most likely, Q*Bert works by changing the playfield color mid-line. This requires a specialized kernel; it most likely isn't a particularly complicated kernel, but none of bB's kernel options offer anything so specialized.

Incidentally, my very first Atari 2600 cartridge didn't use any sprites or playfield or anything. All it used was COLUBK; it displayed a nice grid showing all the 2600's colors (one row per chroma value; eight luma values per row, plus grey side borders).

OK, this may or may not be related, but batari recently made the following which allows any row color to be changed:

http://www.atariage....s...t&p=1486518

View Postbatari, on Thu Mar 20, 2008 4:46 AM, said:

OK, here is the 2600basic.h file, with some sample code.

You only get variables a-o. Variables p-z do not exist in this file. The row colors 1-11 may be set by row1, row2, row3, up to row11. "Row 0" is the topmost row, and it must be set using COLUPF every frame. Note that these variables are stored in RAM stepping by 4 bytes at a time, so if you instead want to assign mycolor to row "a", where a=1-11, you can do the following:

temp1=(a-1)*4:row1[temp1]=mycolor

The sample program (included) shows one way to set row colors based on a cursor position.

I understand that we always have to lose something, so what would we lose if we wanted to have more than one color to a row in specific positions? It would be useful for making games like Q*bert, but there would still have to be enough variables left to make a game.

Any ideas? Does anyone have time to make something that could be used in a game like Q*bert or any type of game where changing row colors in certain areas would be needed?


Thanks.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users