Jump to content
IGNORED

Tetris


atari2600land

Recommended Posts

Added two three-digit scores instead of two two-digit scores. I also made a few other minor changes, like the joystick pictures on the title screen.

 

EDIT: Fixed score problem. Since nobody had uploaded the binary or bas file, I decided to just edit this post instead of posting again.

default.bas

default.bas.bin

Edited by atari2600land
Link to comment
Share on other sites

Wow. I've been away from the forums for a while, and didn't realize you had come so far with your version of this game. Even though we are both working on basically the same game, mine will never have a two-player mode like yours. Keep it up!

 

Can you tweak the controls so that you can turn continuously by holding the button?

Link to comment
Share on other sites

OK, I changed the controls so that holding fire keeps rotating the block. I've also changed the name of the game to "2600tris" after realizing that the word "Tetris" is trademarked, and not only that, they're still using it (Tetris DS, Tetris Evolution). I don't think they have a trademark on the -tris suffix (like T-Tris for the Lynx).

default.bas.bin

default.bas

Link to comment
Share on other sites

Looking good! :thumbsup:

 

Suggestion: in the pretty much all tetris variants, you get more points for more difficult fills. 4 consecutive single-line fills will give you less points than a tetris.

 

Some versions take this even further, and give more points for 2 consecutive tetrises than just 2x the points for a tetris. I'm not saying you need to go that far, but certainly a tetris should be worth more than 4 single lines.

 

http://en.wikipedia.org/wiki/Tetris#Scoring

Link to comment
Share on other sites

You can avoid having the pieces flash by avoiding all of those extra drawscreens you're doing when turning on/off the piece's pfpixels.

 

Unless you're doing them to avoid cycle issues, they're not necessary. Unlike Player/Missile positioning, changing the playfield pixels doesn't require a drawscreen for the change to take place.

 

I did the following to your last posted .bas, which made the pieces solid when pulled down, and I didn't see any cycle issues. That may or may not be true in 2 player mode, which I didn't test...

 

down
pfpixel c d off : pfpixel e f off : pfpixel g h off : pfpixel i j off
 COLUP1=var10 : COLUP0=var31
rem drawscreen
d=d+1 : f=f+1 : h=h+1 : j=j+1
COLUP1=var10 : COLUP0=var31
rem drawscreen
if pfread(c, d) then d=d-1 : f=f-1 : h=h-1 : j=j-1 : goto check_line bank3
if pfread(e, f) then d=d-1 : f=f-1 : h=h-1 : j=j-1 : goto check_line bank3

 COLUP1=var10 : COLUP0=var31
rem drawscreen

if pfread(g, h) then d=d-1 : f=f-1 : h=h-1 : j=j-1 : goto check_line bank3

if pfread(i, j) then d=d-1 : f=f-1 : h=h-1 : j=j-1 : goto check_line bank3

Edited by RevEng
Link to comment
Share on other sites

He probably is doing it to avoid cycle issues, especially in two player mode. What would help a lot I'm sure would be extremely optimized code and possibly some donated assembly-replacement equivalents. I bet there is quite a bit that could be faster with inline asm.

 

a2600l, I know you haven't been thrilled with suggestions from me, but I really wish you would consider using a score in this project. You've done a great job, but this game with no score doesn't work. You don't need the two-score mod for this, especially since it eliminates such an important feature. It's like pac-man with no ghosts.

Edited by MausGames
Link to comment
Share on other sites

I wish I could make a quick demo, but my dev computer is a laptop; the power cord shorted out and it'll take me another month or two to replace it.

 

I would change three of the extra score graphics to read "LINES:" Then choose a color to represent each player, that is a few shades down from the brightest hue.

 

When a player scores points, the scores turns white for a split second, then the brightest hue of their color, then the next down, etc, until it's back to their score color. This flash/fade effect looks cool and can distract/intimidate the other player. You can tell by the flash that points were scored, and by color whose score is being displayed. You can either alternate between the score of the last player to score points, and the lines display (so it would go flash score in white, fade, pause, show lines, pause, show score, etc) - or you can stick with the score and show each players line count at game over.

 

The only thing I can think of that might look better would be if you could use the 2-3score mod on even frames and a standard score on odd frames, I don't know if this is possible though. Either way, only showing the score of the last player to score points is better than no score at all. And since doing it requires that you use your own variables to store the scores, you could fairly easily create a high-score table and talk to batari about how to use Harmony/Melody to store it.

Link to comment
Share on other sites

I can't get the score to work correctly. In this example, if player 1 (player0) scores one line in 2-player mode, the score should read "ABC001" but instead reads "ABC067" (since I haven't defined the ABC sprites yet, the first three digits are garbled.) but anyway, here's what I'm doing:

if var34=1 then var36=var36+1
if var36<60 && var34=1 then score=s : byte1=$AB : byte2=$C0 : scorecolor=var31
if var36>59 then score=s+var38*10
if var36>119 then var36=120

where s=number of lines, and var38=bonus points, as defined here:

if t=1 then var38=var38+1
if t=2 then var38=var38+3
if t=3 then var38=var38+5
if t=4 then var38=var38+10

t equalling the number of lines made. I have attached the whole code so you can see it, but why is the score showing as 67 when it should be 1?

 

[/size][/size]

2600tris_112509.bas

Edited by atari2600land
Link to comment
Share on other sites

  • 9 months later...

Was looking through my old projects when I came across this. I came across a version that gets rid of the lines very quickly, but the scanline jumps to >290 while it's getting rid of the lines. I was just wondering if there was a way to make the scanline remain at 262 while getting rid of the lines quickly.

 

2600tris_091310.bas.bin

2600tris_091310.bas

Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...

Hey gang, I just decided to keep the slower line clearing code in. I did change it a little bit, though. The line now flashes before it clears. If there is more than one line cleared at the same time, the lowest line will flash. I also discovered and fixed a bug that forced a game over for player 2 if the next piece option was turned off.

2600tris20110401.bas

2600tris20110401.bas.bin

Link to comment
Share on other sites

  • 7 years later...

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...