Page 1 of 1

Sega G80 Raster games

Posted: Thu Sep 23, 2021 4:04 pm
by armis2000

First time posting here, I hope I am posting such that the internet gods here don't pounce me.

I have long held that the G80 raster games have run too fast, verified running MAME side by side with the real machine. MAME runs this game at about the right speed if you slow CPU0 down to 70%. This is due to the video hardware generating wait states during video memory accesses.

I can comment about Astro Blaster, as its the machine I have access to, but would be willing to bet the change would be universal due to the architecture.

I have attempted to reach out to the owner of that driver to provide more information without any success. I am not a coder, but am into the hardware, so writing changes myself would not be a successful venture for me.

Currently, the emulation does not appear to utilize the PROM on the video board (I have dumped this) which is critical to memory timing. The schematics are actually MISSING jumpers at U12 that connect YRWT to MYWT and VRWT to RWT. Bouncing back and forth between the 2 pages indicates that WAIT is applied to the G80 bus much of the time VRAM is accessed. This was verified with a logic analyzer connected to a working boardset.

U52 PROM dump and notes for jumpers can be downloaded from:

Cheers - Chris

Re: Sega G80 Raster games

Posted: Thu Sep 23, 2021 5:47 pm
by cuavas
On the topic of speed, I believe it’s incomplete/inaccurate emulation of wait states or access time penalties. This is an area MAME doesn’t do so well in.

Re: Sega G80 Raster games

Posted: Wed Sep 29, 2021 7:21 pm
by armis2000
True, that would be hard to accommodate in real -time.

But, for a more accurate emulation, a pad on the CPU speed should be added. Those raster games run entirely too fast.

Re: Sega G80 Raster games

Posted: Wed Nov 10, 2021 12:54 am
by Haze
that would be considered a hack, and less accurate emulation.

results aren't the deciding factor, how those results are achieved is the basis on which accuracy is determined in the project.

the waitstates on accesses need emulating, which is more difficult than doing things in a hacky way