7

I have a project where I aim to create a retro arcade game cabinet, the technology would be ~1988. For now I am planning to only simulate the system on my PC in order to develop the game. The dedicated hardware, if ever created, will come later. However I have to know what kind of video hardware to simulate in order to really start development.

My requirements would be the following (nothing is set in stone, those are just general ideas):

  • Composite output (possibly encoded from RGB with an external chip), X resolution 256 px, Y resolution between 192 and 240 px (more than 224 lines would be hidden by NTSC overscan anyway I guess)
  • One fully scrollable background layer capable of 3BP or 4BP graphics with either 8x8 or 16x16 character tiles.
  • Possibly one simpler non-scrollable background layer of 2BP graphics that could serve for backdrops or text overlays
  • A lot of 3BP or 4BP sprites, at least 16x16 in size (if larger is available it doesn't hurt) (if there's enough sprites available then only one background layer is necessary)
  • Palette: At least 32 colours simultaneously - (if either sprites or BG graphics are in 4BP it's enough to have a single palette (Sega Master System style))

Ideally I'd want to be able to create the system with parts if the need ever arises. If that is the case, I'd like to use retro parts, through-hole components and +5V parts whenever possible.

Was there a video chip available at that time that could be used?

  • 1
    I think recommendation questions are frowned upon on this site. But by 1988, I believe Sega had some advanced chipsets in their cabinets. You might want to look for some games made during that time and then search for the chipsets used in them to get an idea of what was available. – cbmeeks Oct 4 '17 at 14:03
  • 1
    Having had a quick look, the Sega Y Board is from 1988. That's the Galaxy Force and Power Drift board. So it's Sega's first foray into scaling and rotation and, Neo Geo-style, is so good at sprites that it has no tile layer. It's two generations on from Outrun, one from After Burner, Thunder Blade and Super Monaco GP. Three 68000s, one Z80, the GPU, PCM and FM synthesis audio, and some additional maths coprocessors. The GPU isn't off-the-shelf though, so sadly this comment does not provide material for an answer. Just an idea of where things were in 1988. – Tommy Oct 4 '17 at 14:36
  • I originally wouldn't have asked this here, but since I saw a similar question which looks popular in regard to its votes and answers I went ahead. – Bregalad Oct 4 '17 at 15:22
  • @Tommy I like the concept of sprite-only graphics, however those seems unfortunately to have been rare - the chip you mention seems to be used in 1st person racing games exclusively and that's not really what I aim to do. – Bregalad Oct 4 '17 at 19:13
  • @Bregald it's also a proprietary chip — and if you have to get hold of the Sega board anyway, why do more than a ROM swap? So I don't think it's good advice for a hardware project anyway. – Tommy Oct 4 '17 at 20:27
6

The Yamaha V9958 video chip was used in the MSX2+ (1988) and MSX Turbo-R (1990). It supports a resolution of 256x212 with up to 19,268 colors, 32 4BPP sprites, and horizontal and vertical scroll registers.

It's a successor of the TMS9918 which was the basis of the video chip used in the Sega Master System that you mentioned.

  • I do not see multiple bitplanes being mentionned in the documentation. Actually it explicitely explans single bitplane graphics, with a '0' transparent and a '1' selectable colour graphics. It expliticts how in "sprite 2 mode" you can pick up a different colour for each line, but it doesn't mention multiple bitplanes. It even says a pattern is 8 bytes, which means it's single bitplane. I do not understand. – Bregalad Oct 7 '17 at 14:19
  • @Bregalad I see what you mean. – snips-n-snails Oct 7 '17 at 17:41
  • Here's how to get up to 3 colors (+ transparent) per line per Sprite: msx.org/wiki/The_OR_Color – snips-n-snails Oct 7 '17 at 23:25
  • This is definitely interesting, but it requires 2 sprites on top of eachother in order to get two bitplanes, reducing the de-facto-sprites per-line limit to 4, right? Also, it is unecessarly complex. – Bregalad Oct 8 '17 at 8:08
9

Assuming you're happy with a forward-looking 1988 machine, how about the TMS34010 (from 1986) or '020 (from 1988)? It's a RISC CPU/GPU combination, so you're supposed to supply a frame buffer, and its instruction set includes 2d drawing. It became the basis of the solid polygon Hard Drivin' and STUN Runner in 1989 but was also later found in heavy sprite movers like Smash TV and Mortal Kombat, so it's adaptable to either style.

Probably your easiest solution for interfacing to one would be to pick up one of the ISA TIGA boards — that'll get you the processor and a frame buffer, behind a well-defined bus for which I'm sure a connector would be locatable.

  • Interesting chip, but it seems it's quite overkill for my case. However I can see the advantage of having a CPU and GPU in one chip, especially if I have to make it real hardware - but it's definitely not a chip that is easy to use directly on one's own motherboard. – Bregalad Oct 4 '17 at 15:20
  • Agreed, probably — besides anything else it doesn't actually generate the video, it just fills the frame buffer. Though I thought that perhaps a plain frame buffer plus that as a CPU/GPU might be no harder than a CPU plus some other GPU. Also it looks to be directly DRAM-aware, generating RAS and CAS for itself. Which also keeps the pin count down. – Tommy Oct 4 '17 at 16:05
  • I would not call it overkill for late 1980s. There is a bit of "disconnect" in the question in that it describes early 1980s capabilities for arcade machines while specifically wanting to target late 1980s hardware. – Brian H Oct 4 '17 at 16:11
  • 1
    @Bregalad Maybe you'd accept Forgotten Worlds as an example 1988 arcade game? Much better graphics capability than what you are describing - youtube.com/watch?v=blhNuc9Qh1A – Brian H Oct 5 '17 at 4:18
  • 1
    And one other thing: If you actually want to build a working board, these chips are pretty hard to come by. – Michael Kohne Oct 6 '17 at 16:21
4

Another approach, depending on what you really want to do (do you WANT to design your own board, or do you just want to program 1988-class hardware?), is to pick an existing arcade board, and try to develop for it. For instance, if you want all those features in a 1988-class arcade cabinet, I think the Namco System 2 hardware (which ran games such as Assault, released in 1988) would do the job.

I'm not able to dig around right now to find out if someone has already put together a toolchain or graphics libraries for it or not.

The 68K was supported in many compilers (current versions of GCC appear to still support it), and you can get most of the hardware info you need by looking at the MAME sources.

And, of course, you can use MAME as your simulator during development.

This is no good if you want to build many cabinets, but if you just want one, it's not that hard or that expensive to find a working Namco System 2 boardset.

3

Your requirements pretty well match the Amiga OCS, which was introduced with the Amiga 1000 in 1985 and widely popularized by the Amiga 500 in 1987. So by 1988, that level of graphics was already common in home computers.

Actually, the Amiga chipset might not be a bad target for your project. Good Amiga emulators like UAE are easily available, there a plenty of good native development tools and tutorials still around if you search a bit (Aminet has just about everything you could need; the challenge is knowing what to look for in that giant haystack), and once you're ready to move beyond emulators, real Amiga hardware is still quite practically obtainable. And sticking a plain off-the-shelf Amiga box into an arcade cabinet would not have been an altogether unprecedented move in 1988.

Anyway, here's how the OCS compares with your requirements:

Composite output (possibly encoded from RGB with an external chip), X resolution 256 px, Y resolution between 192 and 240 px (more than 224 lines would be hidden by NTSC overscan anyway I guess)

Check. NTSC output at a nominal 320×200 px or PAL at 320×256 px, more with overscan. Vertical resolution could be doubled via interlacing, horizontal resolution could also be doubled at the cost of reduced color palette and sprites.

Palette: At least 32 colours simultaneously - (if either sprites or BG graphics are in 4BP it's enough to have a single palette (Sega Master System style))

Check. Up to 6BP in lores mode (320 px horizontal resolution) or 4BP in hires mode (640 px), with 32 independent 12-bit color registers. Full 12-bit color space could be shown using a special 6BP "hold and modify" graphics mode, although with restrictions that made it rather impractical in games.

The display-synced Copper co-processor also allowed easy mid-screen palette changes, extending the available colors, and could even be used to split the screen vertically into multiple parts with separate palettes, frame buffers, sprites and even different graphics modes.

A lot of 3BP or 4BP sprites, at least 16x16 in size (if larger is available it doesn't hurt) (if there's enough sprites available then only one background layer is necessary)

Kind of. The Amiga chipset had only eight 16 px wide 2BP hardware sprites (which could be merged into four 4BP sprites), which might not count as "a lot" for you. However, you could easily multiplex them with the help of the Copper or just use blitter objects instead. So in practice, the real limitation was 8/4 sprites visible per scanline (possibly more with mid-scanline multiplexing), plus as many bobs as you could draw in a frame (which was quite a few, especially if they were small).

One fully scrollable background layer capable of 3BP or 4BP graphics with either 8x8 or 16x16 character tiles. Possibly one simpler non-scrollable background layer of 2BP graphics that could serve for backdrops or text overlays

Yes, kind of. The OCS had hardware support for two independent 3BP layers ("dual playfield mode"), so you could have simple hardware parallax scrolling at the cost of reduced colors. However, in practice, I believe most games would just use the blitter to draw all layers into a single 4/5/6BP raster buffer, allowing more colors and a potentially unlimited number of layers. As noted above, things like top/bottom status bars could also be done as separate subscreens with the copper.

Ps. Here's a random YouTube video I found by Googling for "best looking Amiga games" that shows off some examples of what the Amiga chipset is/was capable of. (I believe most of those are OCS compatible, although I haven't really checked. Not a lot of Amiga games really made use of the extra capabilities of the later AGA chipset even after it was introduced in 1992.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.