Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07196 Timing Minor Always Jan 4, 2019, 00:24 Nov 26, 2019, 21:22
Tester bobRetro View Status Public Platform MAME (Official Binary)
Assigned To AJR Resolution Fixed OS Windows 10 (32-bit)
Status [?] Resolved Driver snk6502.cpp
Version 0.205 Fixed in Version 0.217 Build 32-bit
Fixed in Git Commit Github Pull Request #
Summary 07196: nibbler: 2-player Slow Down
Description When playing in 2-player mode, the game slows down periodically. This only happens in 2-player mode. In 1-player mode the speed is constant. It happens for both player 1 and player 2.
Steps To Reproduce Insert 2 credits and choose a 2-player game. Immediately go to the right side of the screen then to the top of the screen to the top-right corner and continue to move the snake counter-clockwise around the small square in the top-right corner. You will notice that as the snake comes out of the corner, its speed is diminished. This is not the only place this occurs, but is just mentioned for comparison purposes.

Compare to inserting 1 credit and choosing a 1-player game. Perform the same actions described above and you will notice there is no slowdown.
Additional Information I've been able to reproduce this on both 32-bit and 64-bit builds, on multiple machines and versions as far back as 0.152. I'm not certain, but I think I had a version at one point where this didn't occur, but can't seem to find it.

Sometimes the slowdown is more pronounced than others. The entire game is slowing down and not just the speed of the snake as can be observed by watching the countdown timer when the slowdown is happening (easier to notice when you haven't eaten a dot for a while and the timer is counting down rapidly).
Github Commit
Regression Version 0.152
Affected Sets / Systems nibbler
Attached Files
There are no relationship linked to this issue.
User avatar
Jan 4, 2019, 01:13
edited on: Jan 5, 2019, 18:40
The issue could be the maincpu speed which was adjusted to match animations and audio correctly using a common divisor to the maincpu xtal crystal (for mame 0.152). I won't consider it a full bug until someone can confirm with an actual PCB either the speed of the maincpu to confirm MAME's setting, or documented proof that it does or does not happen in a real PCB. I've labeled it as possible.
User avatar
Jan 4, 2019, 04:04
I should have mentioned that I have played Nibbler on an original PCB (at the Galloping Ghost Arcade outside of Chicago) and am certain it does not occur. I played in both single and two-player mode and there was no difference in gameplay.
User avatar
Jan 5, 2019, 18:41
Hopefully we can get some proper speed measurements from someone who can read them and put this one to bed sooner or later.
User avatar
Nov 25, 2019, 00:55
Additional research (downloading each version and playing) revealed that the slowdown did indeed start in version 0.152 (0.151 does not have the slowdown) when the maincpu speed was changed from 930,000 to MASTER_CLOCK / 16 (11289000 / 16) = 705,562.5.
User avatar
Senior Tester
Nov 25, 2019, 08:47
edited on: Nov 25, 2019, 13:40
That's the regression version and it was already notified in the report.
User avatar
Nov 25, 2019, 13:36
edited on: Nov 25, 2019, 16:13
I believe I've fixed this in b3d6c08db221a9f426cf4a837434fc932e63dd27. Vanguard, Fantasy and Nibbler do appear to be running the 6502 twice as fast as the earlier games.

Further timing improvements have been made in 974e9714a4308f551621afdbbbdb0da692636e31.
User avatar
Nov 26, 2019, 12:53
Pulled commits and compiled. Looks like this fixes the speedup issue (this will make my daughter very happy!), but now there is a sound issue I haven't seen before. Sometimes the sound effect for the snake appearing at the beginning of the level doesn't work, sometimes it does. This only seems to happen during a 2-player game. I'll roll back the commits one at a time to see if it's a related issue and report back.
User avatar
Nov 26, 2019, 20:45
The sound issue is unrelated, I'll submit a new bug report). AJR's changes appear to have resolved this issue.