The Viper (Compute's Gazette)

This is a fast, furious, hungry snake. It races about, devouring its favorite food-asterisks!. And the more it eats, the bigger it gets. Since snakes have a hard time growing wider, the Viper simply gets longer. Since the Viper has such sharp, venomous teeth, it must not in its haste accidentally run into its own lengthening body. To make things especially interesting, the Viper must maneuver through a maze with electric walls. One false move means certain doom.
The article for this game can be found on page 42 of Compute's Gazette Issue 2 (August 1983)

Why TAS This Game?

The continuation of TASing games from my all-time favorite magazine, Compute's Gazette. This makes my 46th TAS from this series. Additionally, a YouTuber responded to my publication of "Sky Diver". The statement was a response to someone asking "Why?". Basically..."It also sets up the competition that allows us to see what is possible in a game". So this is what I also agree with, with an extra of completing a "Compute's Gazette" library.
One other note. I was resistant to TASing this game, until I found that it had an "Machine Language" routine inserted into it to help the game run super fast. This suddendly made this game more appealing for me to tackle.
Previous Compute's Gazette submissions include (In order of submission):
1Astro-Panic!2Royal Rescue
3Miami Ice4Chopper 1
5Spike6Heat Seeker
7Omicron8Alien Armada
9Star Dragon10White Water
11Space Gallery12Bagdad
13Race Ace14Quolerus
15Trap16Maze-Mania
17Balloon Blitz18Bowling Champ
19Circuits20Going Up?
21Space Dock22Saloon Shootout
23Sno-Cat24Queens' Quarrel
25Stronghold26Lincoln Green
27Disc Blitz28SuperSprite
29Dunk30Basketball Sam & Ed
31Bee Zone32Q-Bird
33Space Worms34Powerball
35Castle Dungeon36Pool
37Snake Pit38RADs
39Spy Defense40The Forbidden Crypt
41Cosmic Combat42Canyon Cruiser
43Cell Runner44Sky Diver
45Snake Escape

Game Difficulty and Ending

The difficulty is set in two different settings. One...you must select the speed that your wish to operate at. The second one is having the choice of a maze to navigate through. By selecting the "Hard" maze, we can go for the most points possible, since the calculate for determining score is below:
No Maze: (Number of Asterisks Eaten) X (1) X (Speed Selection)
Easy Maze: (Number of Asterisks Eaten) X (2) X (Speed Selection)
Hard Maze: (Number of Asterisks Eaten) X (5) X (Speed Selection)
In this run, I choose the "Hard" maze, since it helps me to get the most points in a quicker manner.

Effort In TASing

This game started off looking easy, and I quickly realized that it was quite difficult. In fact, the version that I'm submitting here was my best effort of many times through. I tried multiple run-throughs with different concepts and only one come through.
There was a few things I found out about this run:
  • You cannot play this game on speed 20. I had to reduce it to 19, since 20 was impossible for a TAS to control. Its almost like it didn't have any throttling to allow control.
  • You cannot get a continuing growing snake. There is a programming error where the snake's length breaks an 8 bit value and crashed the ML (Machine Language) routine being used to help make the game run super fast. So the maximum score that can be achieved is 11970.
  • RNG is controlled by the B.A.S.I.C. written part of the game. This means that we will see each asterisk come up in an expected place; however, there is a way to control RNG in a small way. If you don't want an asterisk to show up in a place, you can put your snake in the pathway of it. In this case, the BASIC routine will just go to the next location...which is not directly controllable by any RNG manipulation.
  • After the snake length address hits 127, it will continuing growing in length. The length is not really increasing, but is a programming error in how to keep the length the same. Increasing the value past that point, it will break away and leave the original snake on the screen. It starts over with a 2 block length and you get to do it all over again...until it hits 256. This value breaks the ML routine, keeping the score from increasing.
Here is a version that proves that you cannot go any further, after the last asterisk is collected in this submission. https://tasvideos.org/UserFiles/Info/638370934146385855

Human Comparison

Special Thanks

Thanks to DrD2k9 for the talk over the way this game responded. For each surprising thing it threw at me, we had a discussion over it. Basically, he has the same problem as I do...I hate not figuring out why something happened.

DrD2k9: Claiming for judging.
DrD2k9: It could be argued that this run doesn't meet the definition for Maximum Score as it's still possible to eat one more star (thus theoretically further increasing the score), but doing so does crash the run. In this game, the score is not displayed during gameplay; it is only shown after the game has ended (via death of the snake). So a decision has to be made between accepting this submission as presented (containing an actual ending with the score displayed) or requiring one more star to crash the run as a type of kill-screen ending (which unfortunately prevents displaying the final score). Between the two options, I feel that actually displaying the final score is important and thus the better option.
Because it's theoretically possible to reach the final edible star or the crash/kill screen faster on a difficulty with less obstacles, I feel there could still be an any% branch/goal option for this game.
Accepting as a Maximum Score branch/goal.
Note to publisher: The magazine calls this game "The Viper" but the title screen in-game only says "Viper." I'm not sure what the policy is for naming the game when there's this type of discrepancy.

EZGames69: Processing...


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15582
Location: 127.0.0.1
This topic is for the purpose of discussing #8764: nymx's C64 The Viper "maximum score" in 01:46.41
GJTASer2018
He/Him
Joined: 1/24/2018
Posts: 304
Location: Stafford, NY
Looks like whoever did Snake Pit four years later learned from the programming mistakes made in this game. Either that, or their approach was simply more grounded in sanity than whatever's going on here... (shrug)
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...
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
I guess this is the kind of snake that sheds its skin!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
nymx
He/Him
Editor, Judge, Expert player (2234)
Joined: 11/14/2014
Posts: 932
Location: South Pole, True Land Down Under
Patashu wrote:
I guess this is the kind of snake that sheds its skin!
I like it!
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: 15582
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. ---- [5774] C64 The Viper "maximum score" by nymx in 01:46.41
Joined: 1/13/2007
Posts: 343
btw, if you are wondering why speed 20 was not picked, that's because the snake goes clear to the wall in one frame and will crash unless you hit a star. speed 20 was deliberately unplayable.
nymx
He/Him
Editor, Judge, Expert player (2234)
Joined: 11/14/2014
Posts: 932
Location: South Pole, True Land Down Under
zaphod77 wrote:
btw, if you are wondering why speed 20 was not picked, that's because the snake goes clear to the wall in one frame and will crash unless you hit a star. speed 20 was deliberately unplayable.
Exactly. It almost makes me believe that level 20 was completely un-throttled...where as 19 was subjected to the normal timing routine used for all levels right up to the fastest playable one.
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
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
Speed 20 could be done if you had sub-frame inputs or does it not poll often enough?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
nymx
He/Him
Editor, Judge, Expert player (2234)
Joined: 11/14/2014
Posts: 932
Location: South Pole, True Land Down Under
Patashu wrote:
Speed 20 could be done if you had sub-frame inputs or does it not poll often enough?
I've wondered that myself. I had talked with DwangoAC about the idea of sub-frame inputs, but he says the Commodore didn't operate that way to accommodate for it. Said something about "Racing The Beam". I can understand this, since the architecture wasn't controlled by timing devices like we have with modern consoles. I regards to polling, I'm not sure. The main program is written in B.A.S.I.C, but the handling of movement and joystick reading is done in a "machine language" routine. On Level 19, one block of movement can be handled by one frame of inputs. So, I am certain that the polling can pick up something faster...but the emulation would certainly need to be updated to allow that.
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