Join the Ben Heck team every week for amazing hacks! Watch them build and mod community-inspired projects using electronics!
|The Learning Circuit|
|See All Episodes|
There hasn't been a man vs. machine battle like this since Luke turned off his targeting computer and trusted his feelings to hit a pinpoint target that blew up the Death Star. This isn't the first time that Todd Rogers 5.51 score has challenged computer models. After he submitted his Polaroid picture of his 5.51 score in 1982, Activision, who released Dragster as their first title and the first third party game ever, called him wanting to know how he shifted his Dragster comparative to their computer model. He was then invited to the 1982 Consumer Electronics Show in Chicago in June of 1982 where he performed his second 5.51 score in front of a live audience. They then invited him to the Electronic Things Show in Detroit where he again, for the second time in a live event, performed another 5:51 score.
In a previous episode, Ben made a hardware device that hooks up to a real Atari and allows you to look at the RAM and make decisions based off it. Today, they’re going to use Todd’s information and plug it into Ben’s system so it can repeat the kind of gameplay he did back in the 1980s, so if they give it the numbers to try it will do it every time it can always start on the right frame, a human only has a 1/16 chance of doing that, and it doesn’t get tired or have cramped hands, making it the ultimate video game playing machine. Ben goes over the basis of his analysis system. He’s programming a PIC32 using Microchip’s MPLABK IDE. Whenever the RAM is written to an interrupt is called on the PIC32 where it copies the contents of the RAM buffer into memory so it copies RAM into RAM. The other thing that happens is it looks for a change in the frame number. The second RAM position is the current frame counter, so if they see that number has changed from the last version of itself, they do all of their logic code. The next thing he looks at is disassembly in the stella emulator. They’re going to trace the frame counter and count how many machine cycles occur. He then takes out an oscilloscope to show you what that looks like.
The main loop of the program cycles around to check whether the RAM changed. That’s always going, but when there is an interrupt with the RAM, when there is new RAM, the time between the RAM changing and the program actually saying it should analyze the RAM, that can change. Now that he knows he’s analyzing things with time to spare, he can proceed with his coding knowing that fact. Ben’s code looks for a change in the frame counter and that’s when it does all its logic. The frame counter and the player count are actually inverse of each other. The player count is even while the frame number is odd. This is important because you want to push the reset button at just the right time so that player 2, which is player 1 in code, has the first time increment, not player 1. Now that he knows how that works he can be sure to push reset at the right time, so that the player that they are trying to test has the best chance of getting the best time. The system is doing 5.61 over and over, so Ben is going to put a button menu system onto his board set.
Ben takes all the single, simple variables and puts them into a menu system that will appear over the serial terminal, so he can make tweaks without having to flash the code every time. He diagrams the menu on a board. This will allow them to dial in the functions even faster than they are now. Todd sits down with Ben to advise him on how to make adjustments to gameplay in order to get 5.51. As they inch closer to the number, it's time to test Omnigamer’s spreadsheet together. Omnigamer is the speedrunner who theorized that a 5.51 may not be possible.