Collision Course (Compute's Gazette)

This fast-paced game drops you into the seat of a race car for a nerve-wracking driving experience. And your computer is not much help.
Keep your mind and eyes on the road and watch your enemy carefully...you're driving under extremely hazardous road conditions in "Collision Course". Your goal in this game is to score points by driving over dots on the road, thus removing them. Unfortunately, the computer's driver has orders to stop you, and it knows only one way to do that...by crashing into you.
The article for this game can be found on page 32 of Compute's Gazette Issue 30 (February 1987)

Why TAS This Game?

The continuation of TASing games from my all-time favorite magazine, Compute's Gazette. This makes my 74th TAS from this series.
I never played this game in my youth. Why? I never owned this issue. It was missed, because of random visits to the "Reid-A-Book" magainze store. I'm really sad that I missed this in my youth. It is a really good game, and one of the top games of this series.

Game Difficulty and Ending

As this games moves from level to level, the game gets faster and faster. This game makes it all the way to Level 9...where a mysterious error occurs. This completely ends the game, as I have found a another limitation of these Compute's Gazette games. Thus far, this has only occurred with games that are based in B.A.S.I.C. In this case, I'm shocked that it seemed to be from a low and unexpected value.

Effort In TASing (Not BOTed)

I was really surprised at TASing this game. This took a bit of thinking, where I had to plan out routes very carefully..otherwise, I would have had to let off the gas. Obviously, I didn't want that to happen...so I had to figure ways to keep it moving fast.

Human Comparison

Couldn't find one. This would have been something to compare against.

feos: Claiming for judging.
feos: Accepting.

despoa: Processing...


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15544
Location: 127.0.0.1
This topic is for the purpose of discussing #9082: nymx's C64 Collision Course in 07:49.85
GJTASer2018
He/Him
Joined: 1/24/2018
Posts: 299
Location: Stafford, NY
The error message indicates something wrong at line 260, this controls advancing the level number variable "LV" after beating each level according to the code listing at the end of the magazine you link to. Perhaps it doesn't work properly when going from 9 to 10? (E.g. Treated as going from 9 to 0 or 255 instead, which causes rollover errors and places unintended values in the variable...)
c-square wrote:
Yes, standard runs are needed and very appreciated here too
Dylon Stejakoski wrote:
Me and the boys starting over our games of choice for the infinityieth time in a row because of just-found optimizations
^ Why I don't have any submissions despite being on the forums for years now...
nymx
He/Him
Editor, Judge, Expert player (2229)
Joined: 11/14/2014
Posts: 927
Location: South Pole, True Land Down Under
GJTASer2018 wrote:
The error message indicates something wrong at line 260, this controls advancing the level number variable "LV" after beating each level according to the code listing at the end of the magazine you link to. Perhaps it doesn't work properly when going from 9 to 10? (E.g. Treated as going from 9 to 0 or 255 instead, which causes rollover errors and places unintended values in the variable...)
Yes...that is my conclusion...even though I haven't looked at the code. I'm just surprised that it was from 9 to 10 though.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
DrD2k9
He/Him
Editor, Judge, Expert player (2211)
Joined: 8/21/2016
Posts: 1086
Location: US
Would you be able to end input earlier by finishing in the blue lane and this have a longer distance to travel after the last turn, or does the gas/speed nullify that possibility?
nymx
He/Him
Editor, Judge, Expert player (2229)
Joined: 11/14/2014
Posts: 927
Location: South Pole, True Land Down Under
DrD2k9 wrote:
Would you be able to end input earlier by finishing in the blue lane and this have a longer distance to travel after the last turn, or does the gas/speed nullify that possibility?
I'm certainly open to an idea. I will say this...that last level was extremely difficult to manage that enemy car. I basically ended it this way, because I couldn't avoid it any more. But...there has to be something there. I'll give it another try now.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
nymx
He/Him
Editor, Judge, Expert player (2229)
Joined: 11/14/2014
Posts: 927
Location: South Pole, True Land Down Under
In regards to DrD2k9's question...I have given an good effort here. I can't find another frame. This is frustrating situation, where any changes you make to alter the enemy car...affects your own route. Its so fast, near the end, that I don't have time to adjust the color for the track change. This is due to the game code checking the inputs every so often (around 8 to 10 frames), presenting no chance for changing them on every frame. I'm not saying that ending input earlier can't be done...I just don't know how, if it is even possible.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15544
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [5996] C64 Collision Course by nymx in 07:49.85
Joined: 1/13/2007
Posts: 340
nymx wrote:
GJTASer2018 wrote:
The error message indicates something wrong at line 260, this controls advancing the level number variable "LV" after beating each level according to the code listing at the end of the magazine you link to. Perhaps it doesn't work properly when going from 9 to 10? (E.g. Treated as going from 9 to 0 or 255 instead, which causes rollover errors and places unintended values in the variable...)
Yes...that is my conclusion...even though I haven't looked at the code. I'm just surprised that it was from 9 to 10 though.
the error is probably here. 260 LV=LV+1:POKE 830,LV:POKE 171,PEEK(17l)+2:POKE 54276,0:GOSU8 460 at level 9, PEEK(171) is probably 254 or 255, and the +2 goes to 256 or 257, which is bigger than one byte, and can't be POKEd into a single byte memory location. the increment from 9 to 10 isn't what did it. that said, the game probably breaks either way at this point, even if the crash is dodged. Either that or fixing it will make the game endless.
nymx
He/Him
Editor, Judge, Expert player (2229)
Joined: 11/14/2014
Posts: 927
Location: South Pole, True Land Down Under
zaphod77 wrote:
Yes...that is my conclusion...even though I haven't looked at the code. I'm just surprised that it was from 9 to 10 though. the error is probably here. 260 LV=LV+1:POKE 830,LV:POKE 171,PEEK(17l)+2:POKE 54276,0:GOSU8 460 at level 9, PEEK(171) is probably 254 or 255, and the +2 goes to 256 or 257, which is bigger than one byte, and can't be POKEd into a single byte memory location. the increment from 9 to 10 isn't what did it. that said, the game probably breaks either way at this point, even if the crash is dodged. Either that or fixing it will make the game endless.
Yes, your conclusion is probably right. When I mentioned the level change from 9 to 10, I was surprised because most coders would use a dedicated variable to store that. So, the tipping over 255 absolutely can cause this. Way back then, games were written with difficulties that humans could never achieve. So they obviously would have never know that this problem existed. The games were insignificant, so they had to do something to beef it up. Today, I'm glad to have the opportunity to discover the real breaking point of most of these games...which usually occurs on B.A.S.I.C. written ones. The ML written games were much more stable and didn't act this way.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
nymx
He/Him
Editor, Judge, Expert player (2229)
Joined: 11/14/2014
Posts: 927
Location: South Pole, True Land Down Under
Found the answer. Address 171 was being used to hold the speed of the cars. This is ridiculous, since it starts on the value 238. Since it is an 8-bit value, 255 would be the maximum it can hold. Well, it busts when it goes from 254 to 256. Why would some program like this? LOL Thankfully, it was published this way and prevented me from having to go further with it. That line on 260, didn't have a limit...so it would have gotten faster and faster until something else broke.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Joined: 1/13/2007
Posts: 340
Since the game has no rng at all, if the game were fixed to properly cap the speed of the cars, beating the toughest level would count as a win anyway. Were i coding the game, i would have level 10 be the final level, with the maximum car speed of 255, and a congratulations screen upon beating it. The existing TAS is a probably perfect win.