Robotron CPU performance in relation to marathoning?
Thank you Patrick.
I consider this a done deal.
4164 it is.
I too consider this moot because all these marathoned games are now running switching power supplies for stability, too. Which isn't stock.
Lots of good technical insight pulled out of woodwork.
I'm going to have Tim record a game on a CPU that hasn't been updated, then record a similar game with an updated CPU. The proof will be in the pudding about CPU performance, then the tech guru's can explain it. I'm all ears. Cool stuff to learn about.
Scott. Please call me Scott.
Originally Posted by 1500points
We're at a point now where a lot of chips have been phased out with more modern compatible chips that replace them. On most games it makes no difference anyway, other than keeping them alive. Who'd want to marathon a Williams game with 4116s anyway? :mrgreen:
well i'm caught with your statement about marathoning. I'm more interested in tinkering with these games and learning what makes them tick, than playing them. I leave the marathoning to Mr. McVey.
So I'm trying to digest the blitter information at the link provided above. Fascinating. I'll paste some of it below.
I'm trying to understand. Does Williams CPU store video ram on the video decoder chips, or is it a facet of that 24 chip array of ram? If the blitter ram swapping happens from the 24 ram array, then i have my answer why i can visually observe the "perception" that game play is different. (To further test this if desired, I do have 2 brand new video decoder roms from bob roberts, and 2 sets of working original video decoders.)
"The early Williams games didn't have enough video RAM to do page flipping, so they had to be very aware of what scanline was currently being displayed. Once the scanning beam had passed below the area of video RAM they wanted to animate, then they could make their changes without fear of tearing. This is generally referred to as "drawing behind the beam".
So where does a blitter come into play? Well, in general it was entirely possible to sit there and muck about with the frame buffer using the main CPU. In fact, Defender doesn't have a blitter at all — it is all drawn by the main CPU. The problem is that it takes a lot of CPU power to draw lots of pixels on the screen. And although a CPU can certainly accomplish a lot, it is not specifically designed for drawing lots of pixels at high speeds. One solution to this could be to add a second CPU that is responsible for drawing the graphics, based on commands from the first CPU. In fact, a number of games such as Gyruss and the Cinematronics/Leland games (Quarterback, Ataxx, Super Off Road, etc) do just that.
However, a CPU is an expensive part. And it's not optimized for doing graphics. So a number of folks caught onto the idea of designing custom ICs that were dedicated to performing very fast graphics operations. In general, it's not enough to just draw pixels, these chips also had to do a lot of bit manipulation and address computations to handle things like X and Y flipping, transparency, scaling, etc. The term that has come up over time to describe this kind of operation (copying large arrays of data and manipulating them during the copy) is a "blit". And custom chips that are dedicated to this sort of work are called blitters.
So, you can think of a blitter as a custom chip that is designed to copy graphics (which are normally stored in ROM or RAM) to a frame buffer while manipulating the data in a programmed fashion. "
and these 2 quotes completely validate what is seen on 19-1 robotron where the game is evil by wave 28 and projectiles are blistering fast across the screen. Thanks for providing the link to this. Totally makes sense.
...in the hopes that Robotron might slow down enough to match the arcade (a number of folks have noticed that Robotron runs too fast in MAME at the higher levels).
......is the fact that blitters don't perform their operations instantaneously — it takes some time to actually shuffle through all that data and render it to the frame buffer. As a simplification, most blitters in MAME are implemented as "instantaneous" blitters, meaning they complete instantly. The problem is that many games rely on the speed of the blitter to limit their speed, or else overtax the blitter so that the original game slowed down when too much was being drawn at one time.
You're welcome, I struggled with the early mame emulation. Frustrated the **** out of me, I wasn't aware how much more difficult it was.
That's funny, I did the same thing!
My first serious exposure to robotron was 19-1. I was playing it compulsively and just couldn't survive past wave 28. I kept thinking it was a learning plateau so i kept playing. it was becoming ridiculously frustrating but I couldn't stop pushing.
Then i visited a friend with real robotron and immediately pulled off wave 40, in the 800K range.
I was shocked, and admittedly impressed with myself, that I was so much better.
Once I bought my own, it didn't take long before I figured out that repetition of wave 30 to 40 is pretty much the top of the game and pulled out that wave 105/2.7m game. That's all I wanted.
Off to learn defender... i started playing on 19-1 this week and I've already seen the green landers disappear out of the blue on wave 2. that's weird.
Originally Posted by dave88
2 updates on this topic-
1- Mame 0145 update 2 incorporates a fix to slow down Robotron game play to be closer to the real game. (observation- MAME hardness 0 is still a bit faster than Real hardness 5.)
2- Sean Riddle has incorporated the "Digital Eclipse patch" for the blue rom set on his website.
This fixes the problem where the game can reset when shooting enforcers on sidewalls due to a defect in the program code. (defect exists in all 80s robotron rom sets, orange and blue, and is why the game can't be played continuously on 1 game for many hours on end)
For MAME, you have to install the patched blue romset in your roms folder. Then edit with notepad and change the ....src\mame\drivers\williams.c entries to this below.
then recompile your mame.exe
ROM_LOAD( "robotron.sbb", 0x0e000, 0x1000, CRC(e83a2eda) SHA1(4A62FCD2F91DFB609C3D2C300BD9E6CB60EDF52E) )
ROM_LOAD( "robotron.sb5", 0x14000, 0x1000, CRC(827cb5c9) SHA1(1732D16CD88E0662F1CFFCE1AEDA5C8AA8C31338) )
Of course you can play Robotron continuously for many many hours without end. How do you think the current WORLD RECORD 348,691,680 by Brian King on the Twin Galaxies site was achieved??? The guy played for like 60 or 70 hours non-stop!!!!
Originally Posted by 1500points
I refuse to believe that the game resets and has defects in the code.
Originally Posted by Fellowroot