My Dearest Data East: Why? Gate of Doom/Dark Seal!
I like it when hardware is a little weird. Give me two Master System VDPs overlaid on top of each other, a Neo Geo MVS with no cartridge, or even a modern device that outputs video via a cartridge port. But sometimes companies make decisions on their hardware that I just don’t understand. I’m not an expect, and I’m sure they have good reasons. Fun fact: This is a stealth PC Engine blog post!
Gate of Doom
Have you heard of Gate of Doom? No? But it was the most successful table arcade unit in June 1990 in Japan (under the name Dark Seal, not to be confused with evil marine life) according to Game Machine magazine!
Alright yeah, it’s not a well-known title these days. It kind of reminds me of an isometric take on the Gauntlet gameplay, but zoomed in a lot, and with two players max, so maybe it’s not much like Gauntlet at all.
Like with many games, the International Arcade Museum has a copy of the manual. Interestingly, the conversion kit manual suggests installing four buttons (for the two actions) in front of two eight-way joysticks, which seems like an uncomfortable arrangement. I guess Data East are the experts here. Or were.
Note that the JAMMA-standard edge connector only has one button each for attack and magic for each player, but I guess the included wiring harness would’ve been wired properly so that either button would work. I don’t have that wiring harness, but I do have the marquee, so that’s cool. You rarely find them with PCBs; if I happen to get an empty western-style cabinet, it’d be nice to give this a permanent home.
Hardware
Much like Konami’s Contra, the Gate of Doom arcade board is purpose-built for the task. Well, System16 claims it as part of a Caveman Ninja hardware family, but just like Contra, this is a pretty loose grouping, not something like the System E where I swapped games just by rewriting some EPROMs.
So to me the first and most obvious thing is that Data East, even moreso than Capcom, really likes custom labeled and numbered chips. Like, apparently this has a 68000 CPU, but I can’t find it. They did let Yamaha keep their labels, though, so we know this uses both a YM2151 (OPM, eight four-operator channels) and a YM2203 (OPN, three four-operator channels, used in my PC98) fm synthesizer chip.
This game uses a lot of sampled voices. Thankfully, with a lot more variety than Gang Wars with its one laugh used everywhere. Instead, two OKI M6295 ADPCM chips are used.
As for video, the star of the show are the two DECO 55 chips. (DECO, in this case, is a common acronym for Data East Co., and these chips are actually just labeled as being by Data East) These provide sprites and tilemaps, as you’d expect for an arcade game of this vintage. Somewhat surprisingly, they’re on opposite sides of the board. Perhaps most of that discrete logic is the glue logic?
The chips labeled MAC apparently are just mask ROMs. According to Mike’s Arcade, MAC is the Data East mask ROM code for both this game and its Dark Seal incarnation.
But what’s this weird chip hanging out by the audio circuit?
Hiding chip names is a common scheme to make arcade boards harder to clone. Well, Data East must have been really worried about this one, because even underneath, the chip’s markings are scratched off. I was able to get a little bit of a view by putting a bubble of isopropyl alcohol on the chip and adjusting the lighting.
Not good enough for you? Well, maybe breaking out the SuperGrafx will help.
The HuC6280A
So what is the HuC6280A? It’s the CPU, featuring a WDC 65C02 core, but it’s a bit more than that. It’s not quite a system on a chip, but it gets there:
- CPU, featuring a variable-frequency 65C02 core
- Primitive DMA (Direct Memory Access); built-in as block transfer instructions
- MMU (Memory Management Unit), featuring a 21-bit external address bus, mapped into the 16-bit address range of the 65C02
- Stereo APU, featuring six channels of wavetable sound
- 8-bit input port
- 8-bit output port
- PIC (Programmable Interrupt Controller), featuring an additional IRQ line not present on the 65C02
- Timer, with interrupt
If acquiring one in 2023 didn’t involve sacrificing a PC Engine, it might be a fun project to build a single board computer out of one of these with some RAM. You could definitely drive a character LCD screen and read some buttons, could make a simple PC Engine music player.
Back in the 1990’s, Hudson did sell these separately from the system, and also marketed the TurboGrafx chipset to several comers. But as far as I know, this is the only case where someone other than NEC took them up on it.
CPU and memory mapping
The 65C02, much like its NMOS predecessor, the 6502, has a 64kiB address bus. Everything has to fit in that bus, not only data, but also RAM, and the special registers used by hardware. The HuC6280 divides this into eight pages, each 8kiB. Interestingly, the zero page is moved to the second page. Unlike every other 6502-based system, zero page is at 0x2000
rather than 0x0000
. This is because the first page is usually used for hardware registers. (The stack is also moved, from 0x0100
to 0x2100
) Confusing, the physical “page” for hardware registers is 0xFF
.
It’s worth noting these are all virtual addresses. The real addresses might be elsewhere; the processor only sees what the mapper allows it to see. The exception is the reset vector, which has to put everything into a known state, including the mapper; it’s at address 00x001FFF
, because the chip maps page 00
into that last slot where the vectors are.
You might wonder why someone would bother with all this. Well, it’s because otherwise, your ROM sizes would be extremely limited. Even the NES had memory mapping capability; it’s just a lot easier to wrap your head around, since half the memory map could never change.
Anyway, the ROM for Gate of Doom is 64kiB on its own, so it definitely required some sort of memory map for use with a 6502. But not necessarily something this elaborate.
Other features
The APU outputs its audio from pins 17 and 18. These aren’t connected; all the sound is generated from the Yamaha and OKI sounds above. So right away, the hope that this was being used for its sound channels, which made sense on a sound CPU, is dashed.
The input port is pins 24-30, and the output port is pins 31-38. These are used for joystick reading on the PC Engine. Here, they’re not connected; the sound chips are attached in the usual way, through memory mapping.
The interrupts are used as well, with an 8-bit latch hooked up for communication to the main CPU, and another line hooked up to the YM2151. This does technically use the HuC6280-exclusive IRQ2
, but NMI
isn’t used. The timer interrupt is used, though.
Still, it really surprised me that so many of the defining features of the HuC6280A aren’t used here!
Secret messages?
Running the standard UNIX strings
tool on the audio ROM, you get a lot of garbage, but it also reveals a number of strings hidden in the ROM. It reveals a few things about Data East’s development process, like that the individual game music tracks had names like message.bgm
, typical of MS-DOS based systems. There are many instrument names as well, like piano_1
through piano_8
, followed by pia_casio
. I’m not sure if these are Data East-developed instrument patches or a library they used.
The letter A
I’m pretty happy that I was able to make out the letter “A” on the HuC6280A. That might not mean much to you, but let’s crack open another PC Engine I have, the PC Engine Duo-R. This is more or less the final model released; the later Duo-RX just changed the pack-in controller.
So there’s something interesting about the Hu6280A. I don’t want to go into it too much, but here’s a quick, roughly chronological order of major models of PC Engine hardware: (excluding weird things like the Shuttle or the TurboExpress)
Release year | Model | CPU |
---|---|---|
1987 | PC Engine | HuC6280 |
1989 | CoreGrafx | HuC6280A |
1991 | CoreGrafx II | HuC6280 |
1991 | PC Engine Duo | HuC6280 |
1993 | PC Engine Duo R | HuC6280 |
1993 | PC Engine Duo RX | HuC6280 |
The HuC6280 was used in every model, except for the CoreGrafx, which was contemporary to the SuperGrafx I have. It’s pretty unclear what the difference is, but it’s usually attributed to having no pops in the APU when changing frequencies while the sound is playing, which would’ve allowed the APU to play samples more cleanly using tricks like the Master System. But I’m not sure anyone’s produced a demo with an audible difference.
The thing is, not just 1990’s Gate of Doom, but every Data East circuit board I’ve seen that uses this CPU uses the “A” variant. It makes me wonder, if there is in fact a case where the APU change breaks things badly enough that Hudson decided to return to the original and sold their excess stock to Data East. But I’m pretty much making that up without any evidence whatsoever, so don’t go repeating that.
That’s the question
So Data East used a HuC6280 as a sound CPU. They didn’t just use it on Gate of Doom, either. It was their go-to sound CPU in many games up to their demise really, and I’m not sure they ever used its on-board audio.
It’s worth noting that Data East did do some development for the PC Engine; the port of Bloody Wolf is generally reported to have been done in-house. And that makes bloody sense: the arcade version of Bloody Wolf uses PC Engine based hardware; except, the APU is again not used in favor of external Yamaha and OKI synthesizers. (It apparently also doesn’t use the Video Color Encoder from the PC Engine chipset; I’m going to keep an eye out for this board, it sounds fascinating)
So, why did they keep using this particular CPU? I think there are a few reasons:
- Relatively obscure chip would be harder for pirates to reverse-engineer (clearly a high priority for Data East)
- Familiarity with the chip through work on Bloody Wolf
- Convenient timer interrupt
- You need to map memory anyways, so why not use a thorough built-in mapper
- Possibly some unknown APU issues with the “A” variant made Hudson give them away cheap?
Have a better idea than me? Or maybe you worked at Data East and know for certain– let me know if so! That’s all for today, though.