Jump to content
  • entries
    41
  • comments
    373
  • views
    63,858

B<X


Guest

398 views

A couple of months ago, someone suggested that Rally X might be possible on the 2600.Well, I thought I'd try to take it a step further and see if it were possible in bB. I found that a demo was possible but the full game wouldn't fit into 4k.But that was then and this is now, and bB supports bankswitching. So I've recently revisited this game between short bouts of coding for bB itself (which is sorely in need of an official release, but some objects are shinier than others...)So in order to get 4 cars on the screen at once, the car bodies are swapped between a player and missile on alternate frames, and the wheels flicker at 30 Hz. The result isn't so bad, as the wheels kind of appear to be moving/shaded or whatnot, hopefully giving the illusion of multicolored cars.Well, one problem here - you have a player car and three enemy cars, but one enemy car looks exactly the same as the player. So what to do? Drawing only two cars was suggested, but didn't want to make the game any simpler than it already is (the real game allows up to seven cars.) So I found a solution, I think: I strategically alternate car colors.Your car is blue with blue wheels. There are 3 enemy cars - one red with red wheels, one lavender with red wheels and one lavender with blue wheels. The two lavender car bodies really just alternate from red to blue, but persistence of vision comes to the rescue. So hopefully this adequately solves the problem...This demo is to show the above working. It's not playable yet (no collisions, flags appear in weird places, etc.)Another issue: the radar screen. I can make the game without it, but I think the game needs it. So to do the screen, I was thinking that you could see it by pressing Select (or something) and it would replace the main screen briefly. The next issue is HOW to display the radar screen, preferrably without a custom kernel or massive flicker...

6 Comments


Recommended Comments

This looks very good - the colouring on the enemy cars works well, and they are clearly distinguished from the player. How about placing an arrow at the top or bottom of the screen (ET style) to indicate the location of the nearest flag, rather than using a radar?

 

Chris

Link to comment

This isn't strictly applicable to a bB port, but I was thinking that a good way to get three enemy cars all differently colored from the player's car would be to use P1 for enemy cars, same method as now, and use P0 for your car and an enemy car, but change P0 color midscreen: if the enemy car is above the player car, set COLUP0 before the kernel begins and reset COLUP0 either immediately after drawing the enemy car or immediately before the player car, do the opposite if the enemy car is below the player car. If the enemy car and the player car overlap, then flicker the three enemy cars with P1.

 

I think this would look pretty good, as it would only flicker if all three enemy cars overlapped (vertically) with the player's car, which probably would happen pretty rarely. Of course, you can't do this in bB (yet?), but maybe it could be done with small modifications to the bB kernel? It would only require a single color change per screen.

 

I can't remember how much spare time there is in the standard bB kernel, but it could be done like...

   cpy ColorChangeLine
  bne NoColorChange
  lda NewColor
  sta COLUP0
ReturnToKernel

;--outside the kernel:
NoColorChange
  nop
  jmp ReturnToKernel

11 cycles. With some tricks, maybe could be done in fewer. Just a thought. ;)

 

EDIT: Okay, now I actually looked at your binary. ;)

 

Looks really good, the cars are easily distinguishable from each other. I also like your flag (the ball, I'm assuming).

 

And, depending on RAM, you could probably have more than 3 enemy cars; just have to devise a movement algorithm that keeps <= 3 on the screen at any one time. ;)

Link to comment

I think for a really close port you'll need some sort of intelligent flicker for the enemy cars. I think the Arcade adds one additional car each level. If you play to the bonus round (level 3?) there's lots of cars sitting there, on top and bottom, that might be the maximum. Might be less cars in "New Rally-X", at least it starts easier.

Link to comment
I think for a really close port you'll need some sort of intelligent flicker for the enemy cars. I think the Arcade adds one additional car each level. If you play to the bonus round (level 3?) there's lots of cars sitting there, on top and bottom, that might be the maximum. Might be less cars in "New Rally-X", at least it starts easier.

 

I agree intelligent flicker would be better, but that's clearly getting outside the realm of bB. Even tracking very many cars would be pushing the limits of variable storage. Still, it might be interesting to have more than three cars and having logic so that the extra cars would hang around near the edge of the player area.

Link to comment

This is only kind of related - but it occurred to me that a possible future kernel for bB might be one with *no* playfield!

 

But instead, uses all that RAM to store sprite data and has a big, 5-10 sprite flicker engine. 1 sprite non-flickered and 8-10 intelli-flickered. Plus missiles. Kinda like Manuel's Colony 7 kernel.

 

The lack of playfield would hurt a little, but having that many sprites might make up for it.

Link to comment
This is only kind of related - but it occurred to me that a possible future kernel for bB might be one with *no* playfield!

 

But instead, uses all that RAM to store sprite data and has a big, 5-10 sprite flicker engine.  1 sprite non-flickered and 8-10 intelli-flickered.  Plus missiles.  Kinda like Manuel's Colony 7 kernel.

 

The lack of playfield would hurt a little, but having that many sprites might make up for it.

Sure, a playfield-less kernel would be useful for some games. Lots of games use no playfield. Not sure when I'd have time to write a new kernel though... Maybe summertime.

 

As for adding extra cars, that might be possible eventually, as currently, around 15 bytes of RAM is free (though these can easily get used up by other things.) For now I will add more gameplay elements and see how things go. Maybe I can ramp up the difficulty without adding cars, like make them smarter. In the original game, the cars just give chase, and in higher levels they go faster, necessitating the smokescreen. Maybe in later levels I can make one enemy try to flank the player car.

 

Come to think of it, I am not sure quite how to implement the smokescreen. Maybe add a playfield block but flicker it at 30 Hz?

Link to comment
Guest
Add a comment...

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