Jump to content

Recommended Posts

2 hours ago, Thomas Jentzsch said:

Next update V0.3 (see 1st post). 

 

Major additions:

  • timer (30, 60 and 90s races) and start countdown
  • some sound (not final yet)
  • human vs computer players

With SELECT you can select a race time, RESET starts the game. During the countdown, the human players have to press their buttons, this will brighten their cars. The other, darker cars will be controlled by the computer. During a race, the position of a car represents its current placement (not distances between cars). The visible gaps slowly increase during a race and are maximized at the finish. 

 

Feedback welcome! The game still fits easily into 2K, so there is plenty space for further improvements.

Wow, there's so much to love in this update Thomas!

 

- How you verify human players

- Addition of computer opponents

- The animation for resetting of the cars for a new race

- Sounds are a great addition, I don't find anything wrong with them at all. It sounds like a cacophony of engines but I suspect it'll have to be like that with 8 players.

- Minimum speed is now reasonable

- Car colours for humans (light) and computer (dark)

- The demo mode it kicks into with 8 computer players if you leave it

 

Can't wait to play it again on next Tuesday's show!

 

- James

 

Edited by ZeroPage Homebrew
  • Like 2
Link to comment
Share on other sites

Looks good already.

I like the engines sounds too.

 

Do you plan to add auto detection so that it will work without a QuadTari too? Or even with "half" of it, that is connected only to one of the ports ("DuoTari"?)
I don't have one and currently I control 2 cars at once with each paddle.

 

  • Like 1
Link to comment
Share on other sites

3 hours ago, Thomas Jentzsch said:

I am not very talented when it comes to sound design. The current version uses two different engine sounds in parallel (AUDC0 = $3, AUDC1 = $f). The current noise is OK, but any useful help is welcome.

I tend to overcomplicate things, so don't let me sidetrack you. What you have sounds pretty good. After thinking about it some more, very little has to be done to shape the sound envelope when the sound is a function of the acceleration (or velocity or both). The math is already done in the car physics.

 

It might be worth an experiment to divide the 8 cars into 2 groups and bind 4 cars to each sound channel: Top 4 cars on the left channel and bottom 4 cars on the right channel. Each channel's volume could be computed from a base minimum plus the summation of the currently accelerating cars in its group. That way all players would be interactively contributing to the sound rather than the top 2 leaders and you'd still get throbbing ups and downs.

 

 

Edited by azure
Link to comment
Share on other sites

@alex_79

Hm, the paddle lines are used for switching. So how can I use them for detection? If they would work, paddles would work with a QuadTari too.

 

Or is only one lines (INPT0) used and INPT1 is still unaffected? Wouldn't that mean that the 2nd paddles of each pair would work with a QuadTari?

Edited by Thomas Jentzsch
Link to comment
Share on other sites

How would you keep score? At the end of the game toggle a difficulty or b/w switch to swap between displaying the track display and distance traveled? Or do it automatically at the end?

 

Maybe include a max & average speed if you care to..

 

Edited by Keatah
Link to comment
Share on other sites

4 minutes ago, azure said:

That way all players would be interactively contributing to the sound rather than the top 2 leaders and you'd still get throbbing ups and downs.

Effectively the values would be averaged. And since some cars are accelerating while others are slowing down, the ups and downs would mostly get lost.

Link to comment
Share on other sites

11 minutes ago, Keatah said:

How would you keep score? At the end of the game toggle a difficulty or b/w switch to swap between displaying the track display and distance traveled? Or do it automatically at the end?

 

Maybe include a max & average speed if you care to..

This is planned as a party game, where people a competing against each other. So why would it need a score?

 

However I could provide points based on positions and then the players could play e.g. 3 rounds and accumulate points (displayed on a separate screen). But I am not sure of that fits well to the target group.

Edited by Thomas Jentzsch
Link to comment
Share on other sites

2 hours ago, Thomas Jentzsch said:

Effectively the values would be averaged. And since some cars are accelerating while others are slowing down, the ups and downs would mostly get lost.

 

 

Hmm - how about use channel 0 for the engine sound, channel 1 for the braking sound. Then:

engine_vol = 0
braking_vol = 0

for each car
  if car accelerating then engine_vol = engine_vol + 2
  else if car braking then braking_vol = braking_vol + 2
  else engine_vol = engine_vol + 1 		; some engine noise as car is maintaining speed
next car

AUDV0 = engine_vol
AUDV1 = braking_vol

 

  • Like 1
Link to comment
Share on other sites

22 minutes ago, Thomas Jentzsch said:

Effectively the values would be averaged. And since some cars are accelerating while others are slowing down, the ups and downs would mostly get lost.

I'm assuming you wouldn't use deceleration as part of the function. It'd be only cars where acceleration > 0.

Link to comment
Share on other sites

:-oHoly crap!:-o Just tried this and it is an absolute blast. I can't wait to see how it progresses. This will be an amazing party game. Btw, I think the cars sound great as is. Would be cool if a photo finish (something akin to instant replay in Food Fight) could be incorporated..

 

Nice job so far?

Link to comment
Share on other sites

Quick update: Added V0.4 to the first post.

 

The only difference is the QuadTari detection. It works in Stella, but I do not have the hardware yet to test on the real thing. Can someone please test for me? 

  • Normal paddles (top 4 cars should be selectable during countdown)
  • QuadTari in left port (top 6 cars selectable)
  • QuadTari in right port (top 4 and bottom 2 cars selectable)
  • QuadTari in both ports (all 8 cars selectable)
  • Like 1
Link to comment
Share on other sites

10 hours ago, Thomas Jentzsch said:

This is planned as a party game, where people a competing against each other. So why would it need a score?

Just a thought. The game is good as it stands. And 8 players?!?! Ohh my ohh my! Never would have guessed that possible back in the day.

 

10 hours ago, Thomas Jentzsch said:

However I could provide points based on positions and then the players could play e.g. 3 rounds and accumulate points (displayed on a separate screen). But I am not sure of that fits well to the target group.

By default, if it's out of the way, it wouldn't do any harm. But do what you think is best and what matches the target audience.

Link to comment
Share on other sites

11 hours ago, Thomas Jentzsch said:

@alex_79

Hm, the paddle lines are used for switching. So how can I use them for detection? If they would work, paddles would work with a QuadTari too.

 

Or is only one lines (INPT0) used and INPT1 is still unaffected?

Late reply as I see you already posted a rom with auto-detection in place.
I will try the rom later today.

 

According to the description in the other thread, only one line (pin 9, that is INPT1/INPT3) is used as a select line, and it's connected to a small pullup resistor.
Pin 5 (INPT0/INPT2) from the Atari is not connected at all.

 

So detection in this case could work like this:

- set the DUMPPORTS bit in VBLANK to discharge the caps

- wait a little (the caps discharge very quickly, but not instantly. wait one or two scanlines to be sure)

- clear DUMPPORTS

- wait a few scanlines (just enough to let the caps charged by the small pullup)

- read paddles

- if INPT0 is HIGH and/or INPT1 is LOW, there's no QuadTari in the left port
- if INPT2 is HIGH and/or INPT3 is low, there's no QuadTari in the right port

- wait enough time to allow a standard paddle set to max resistance (1 Mohm) to charge the caps (I think this would take a few frames, like 2 or 3)

- read paddles again, and use the same conditions as above to check the presence of the quadtari.


The reason for checking the inputs twice is to avoid false positives in case of one paddle knob turned to minimum resistance and the other one turned to max.

 

 

11 hours ago, Thomas Jentzsch said:

 

Wouldn't that mean that the 2nd paddles of each pair would work with a QuadTari?

In theory the unused line could be connected to only one port of the QuadTari, so you could only use 2 paddles in total (from two separate sets) with it, so not very useful. And IIRC from the discussion in the other thread, pin 5 on the QuadTari ports is connected to +5V to allow powering a genesis controller.

 

  • Like 1
Link to comment
Share on other sites

31 minutes ago, alex_79 said:

So detection in this case could work like this:

- set the DUMPPORTS bit in VBLANK to discharge the caps

- wait a little (the caps discharge very quickly, but not instantly. wait one or two scanlines to be sure)

- clear DUMPPORTS

- wait a few scanlines (just enough to let the caps charged by the small pullup)

- read paddles

- if INPT0 is HIGH and/or INPT1 is LOW, there's no QuadTari in the left port
- if INPT2 is HIGH and/or INPT3 is low, there's no QuadTari in the right port

- wait enough time to allow a standard paddle set to max resistance (1 Mohm) to charge the caps (I think this would take a few frames, like 2 or 3)

- read paddles again, and use the same conditions as above to check the presence of the quadtari.


The reason for checking the inputs twice is to avoid false positives in case of one paddle knob turned to minimum resistance and the other one turned to max.

Thanks for the explanation. My current check is much simpler, I am only checking INPT1/3. And I am only waiting one scanline.

 

Now I have to wrap my head about your improved check (BTW: "and/or" means what? AND or OR?). I am not into hardware at all, so I have to understand from a software perspective. Let's see if I got it right (only considering left port here):

  • Directly (a few scanlines) after dumping:
    • Paddles: INPT0 and INPT1 are usually HIGH (both could be LOW if a knob is turned to maximum resistance)
    • QuadTari: INPT0 is HIGH, INPT1 is LOW (due to pull up)
  • After some frames:
    • Paddles: INPT0 and INPT1 are LOW
    • QuadTari: INPT0 is HIGH(?), INPT1 is LOW (due to pull up)

Note: LOW means INPTx, bit 7 is SET, right? The reversed result is quite confusing for me. :) 

 

Is this correct so far?

But then the logic is in INPT0 only, no? And then I only have to check INPT0 after some frames. If INPT0 is LOW, we have a paddle, if it is HIGH we have a QuadTari. INPT1 plays no role here, because it can be LOW either due to the pull up or due to the paddle.

 

But that doesn't fit to your logic, so where is my mistake?

Edited by Thomas Jentzsch
Link to comment
Share on other sites

53 minutes ago, Thomas Jentzsch said:

BTW: "and/or" means what? AND or OR?.

[...]

Note: LOW means INPTx, bit 7 is SET, right? The reversed result is quite confusing for me.

Yeah, sorry, after re-reading it, I realize my post is quite confusing...

With "and/or" I mean "OR" (non-exclusive)
And with INPTx "HIGH" or "LOW", I was actually referring to the logic level of the line, so I should really have written "bit 7 of INPTx". So if you're considering the value read from INPTx as a signed byte, replace "HIGH" with "negative" and "LOW" with positive.

 

53 minutes ago, Thomas Jentzsch said:

But then the logic is in INPT0 only, no?

[...]

But that doesn't fit to your logic, so where is my mistake?

No mistake, just a brain fart from my part...:dunce:

As you say, if the cap for INPT0 is charged (negative value) after a few frames, then it means that you have a paddle directly plugged in, else you have a Quadtari.

No need to check INPT1.

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, alex_79 said:

As you say, if the cap for INPT0 is charged (negative value) after a few frames, then it means that you have a paddle directly plugged in, else you have a Quadtari.

No need to check INPT1.

OK, I will post an new version with updated checks. Wait with your test until then, please.

  • Like 1
Link to comment
Share on other sites

17 hours ago, Thomas Jentzsch said:

Feedback welcome! The game still fits easily into 2K, so there is plenty space for further improvements.

If you have all of the features that you want, and still have space left over, a title screen might be nice. If one player hits the button to start, maybe it could start a countdown timer for other human players to hit the button if they want to participate, with those who didn't do so being computer opponents as it is now.

Link to comment
Share on other sites

Have a game variation where the speed boosts come in a predefined order (giving the potential for a "perfect run") and one where they are random (to help offset the skill difference of the players).

 

In keeping with the early Atari arcade theme, maybe a B&W mode (although it may be difficult to get all 8 with a unique shade).

Link to comment
Share on other sites

What about refueling?

 

This would involve a new "pit stop" zone on the track. On this zone pressing the button would brake, while releasing it would accelerate (to be able to restart after refueling).


Deceleration  should be greater than on normal "non boost" zones, and it should be possible to stop the car completely. When the car is stopped it should be refueld.


This zone should be short, so that you would miss it if running too fast. Therefore it should be preceded by a long enough "non boost" zone to be able to reduce speed.

 

There's not much room for a fuel gauge, maybe a simple indicator based on colors would suffice. (E.g. green,yellow,red). There are three scanlines without hblanks to the left of each track, before the lower curb that could be used for that.

 

Edited by alex_79
Link to comment
Share on other sites

1 hour ago, Bomberman94 said:

Maybe you can add a number „1“ (maybe left) next to the car the player chooses and „2“ to the second and so on - else it is hard to see what car a player controlls. 

The cars are fixed assigned to a controller. I suppose when this is played on a party, the controllers would be marked with colored stickers.

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

  • Recently Browsing   0 members

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