duncantoml #1 Posted January 2, 2007 I've got 4 copies of Berzerk and ALL 4 go "berzerk" any where between 50,000 and 100,000 and just reset. 2 regulars, 1 voice, and 1 on a multicart. They all do this. So I figure that others have had this problem. I know that there was the same issue on the Vectrex carts, but someone produced a "debugged" cart that fixed this problem. Looking for someone that can help me fix this problem on the 2600 cart. Quote Share this post Link to post Share on other sites
Lord Thag #2 Posted January 2, 2007 Never heard of this happening before. I'm sure you've probably already done this, but did you clean the contacts of both the carts and the VCS? Quote Share this post Link to post Share on other sites
Video #3 Posted January 2, 2007 Actually, on the first setting (whatever its set at on power on) it does seem to cut off around 70,000 or so. I posted a question a long time ago as to why the happy ball thing never came out and the game reset around there, and someone told me it was my settings (in real life, on the board, I don't think I got a single reply actually) Quote Share this post Link to post Share on other sites
duncantoml #4 Posted January 2, 2007 I tried it on a 2600, 7800 and on the CV atari adaptor. All the same. It was on Game 1, Difficulty B that it has been happening. Quote Share this post Link to post Share on other sites
Arcade #5 Posted January 2, 2007 This happens to me all the time, except it doesn't say anything. What happens to me is if I sit to long (actually just a few seconds) it just "resets" on me. I've read that it doesn't do this if you set it where Otto comes out. Quote Share this post Link to post Share on other sites
DEBRO #6 Posted January 2, 2007 I've got 4 copies of Berzerk and ALL 4 go "berzerk" any where between 50,000 and 100,000 and just reset. 2 regulars, 1 voice, and 1 on a multicart. They all do this. So I figure that others have had this problem. I know that there was the same issue on the Vectrex carts, but someone produced a "debugged" cart that fixed this problem. Looking for someone that can help me fix this problem on the 2600 cart. I didn't know this was happening so I didn't notice it when I was disassembling the game. The problem occurs when you accumulate over 127 lives. The game will reset if it reaches 128 and you press the fire button. Dan uses the D7 bit of this variable to determine if the game should be in attract mode. It should be an easy fix by limiting the number of lives to 127. Quote Share this post Link to post Share on other sites
Loccy #7 Posted January 2, 2007 Or play game 9, where you don't get any extra lives. Other game variations of Berzerk are for girls. Quote Share this post Link to post Share on other sites
Rev John #8 Posted September 30, 2009 (edited) Pardon me if I'm resurrecting an old thread, but this is my first post to AA so I plead ignorance! The resetting problem in Berzerk can occur if someone accrues more than 127 lives, but is more likely to be happening because of the piece of code below (with thanks to Dennis Debro who did the original dissassembly). Essentially Berzerk has an undocumented doomsday clock aka 'attractModeTimer' which increments if the joystick is in the neutral position every 256th frame. When the attractModeTimer rolls past 255 the game resets. I figure this gives the gamer a cumulative total of approx 17 minutes of 'not moving the joystick' time before the game resets. ReadJoystickValues lda #0 sta temp02 lda #127 sta randomNumberMax ; set random number ceiling lda SWCHA ; read the joystick values lsr ; shift player1's values to lower nybbles lsr lsr lsr eor #$0F ; flip the bits so high bit shows movement and #$0F ; mask the upper nybbles bne .setPlayerDirection lda #PLAYER_STAND_ANIM_OFFSET sta playerAnimationIndex sta playerGraphicLSB sta playerMotion ; reset player fractional movement delay lda frameCount ; get current frame count bne CheckForFireButtonPressed ; branch if not rolled over from 255 inc attractModeTimer ; increment attract mode timer bne CheckForFireButtonPressed ; branch if not rolled over from 255 lda gameSelection ; get current game selection jmp SetGameSelection ; make game go into attract mode Edited September 30, 2009 by Rev John Quote Share this post Link to post Share on other sites
disjaukifa #9 Posted September 30, 2009 Pardon me if I'm resurrecting an old thread, but this is my first post to AA so I plead ignorance! The resetting problem in Berzerk can occur if someone accrues more than 127 lives, but is more likely to be happening because of the piece of code below (with thanks to Dennis Debro who did the original dissassembly). Essentially Berzerk has an undocumented doomsday clock aka 'attractModeTimer' which increments if the joystick is in the neutral position every 256th frame. When the attractModeTimer rolls past 255 the game resets. I figure this gives the gamer a cumulative total of approx 17 minutes of 'not moving the joystick' time before the game resets. ReadJoystickValues lda #0 sta temp02 lda #127 sta randomNumberMax ; set random number ceiling lda SWCHA ; read the joystick values lsr ; shift player1's values to lower nybbles lsr lsr lsr eor #$0F ; flip the bits so high bit shows movement and #$0F ; mask the upper nybbles bne .setPlayerDirection lda #PLAYER_STAND_ANIM_OFFSET sta playerAnimationIndex sta playerGraphicLSB sta playerMotion ; reset player fractional movement delay lda frameCount ; get current frame count bne CheckForFireButtonPressed ; branch if not rolled over from 255 inc attractModeTimer ; increment attract mode timer bne CheckForFireButtonPressed ; branch if not rolled over from 255 lda gameSelection ; get current game selection jmp SetGameSelection ; make game go into attract mode Dude that is awesome!!! I surprised it wasn't mentioned in the original game manual because if I saw that I would think its a software bug and not part of the game itself. -Disjaukifa Quote Share this post Link to post Share on other sites
Rev John #10 Posted October 4, 2009 My thinking is that the programmer wanted to (or had to) put in some way for the game to get back into attract mode, to help prevent an image of the unfinished game being burnt permanently onto the screen. ie to go back into screen saver mode. The code is written to wait a suitably long time (approx 255 x 256 frames / 17 minutes) when someone stops playing and leaves the screen potentially vulnerable. However the 'attractModeTimer' variable never resets during normal play, so it appears to be a bug that the game will eventually reset during normal play when there is no problem of damage to the screen. I'm curious as to whether other Atari games have a similar reset / intervention feature to prevent the screen image from remaing the same during play? Quote Share this post Link to post Share on other sites
WatchVenusSpa #11 Posted October 4, 2009 A Berzerk KILL SCREEN??? Awesome!!!! Quote Share this post Link to post Share on other sites
tetrode kink #12 Posted October 4, 2009 ...I'm curious as to whether other Atari games have a similar reset / intervention feature to prevent the screen image from remaing the same during play? Starmaster will go into screen-saver mode whether you're playing a game or not. Well, playing a game isn't exactly the right way to put it, because to see the screen-saver activate in-game you have to leave the joystick alone. I can't remember how I discovered this, I think I got bored one day and wanted to see how long it would take for all of my space stations to be destroyed if I just sat there and didn't put up a fight. Also, just remembered this, doesn't Yars' Revenge have a screen-saver (of sorts)? It's been a while since I've played it so someone correct me, I seem to recall if you lose a life it waits for you to press the button to continue. If you don't press the button for a while the score dims. -tet Quote Share this post Link to post Share on other sites