What's new

caius

Grand Master
Joined
Nov 21, 2016
Messages
611
Reaction score
1,107
Location
Italy
The '315-5242' is a custom IC used on some Sega arcade systems :

  • System C/C2
  • System 18/24/32
  • System X
  • System Y
It's basically a video DAC connected to the color RAMs, which provides analog outputs for driving a monitor.It accomplishes also some special functions like making the video output grayscale instead of color or enabling shadow/highlight effect.It comes under the form of a ceramic module covered by black paint or epoxy :

315-5242-paint.jpg


315-5242-epoxy.jpg



The 'core' of the '315-5242' is a surface mounted IC (PQFP44 package) located on top of the module, the 'M71064' from OKI manufacturer :

OKI-M71064.jpg


No info or reference was available for this fully digital IC until some time ago when 'furrtek' decapped it and traced schematics from the silicon die revealing the internal structure and figuring out the functions :

M71064-die-trace.jpg



Most of the work was done so the step to a real replacement was the easy and logical consequence.And here we are!I designed a proper board based on a +5V CPLD :

315-5242-repro-Copia.jpg



Testing on all boards I could try was successful.


Columns II (System C2)



Michael Jackson's MoonWalker (System 18)



Spider-Man (System32)



Thanks again to 'furrtek', without his brilliant work none of this would have been possible.
 
Last edited:
@caius as you know I reproduced it with a few TTL chips. Are the schematics from the decapping available? I'm really curious to know what can be so different from my simple design. Even bootlegs replace it by a few TTL chips.
 
You all know I NEED to understand things :D

So this 315-5242 module is used on:
  • System C/C2
  • System 18/24/32
  • X board
  • Y board
  • And Game Gear TV converter used by Sega for development

If you look at the colour depth:
  • System C/C2: 4096, 4 bits per colour thus not using the full 5 bits per colour the module supports, shadow/highlight supported (tripling the palette)
  • System 18: 32768, 5 bits per colour, shadow/highlight supported (tripling the palette)
  • System 24: 32768, 5 bits per colour, shadow/highlight supported (tripling the palette)
  • System 32: not sure how that one works but I assume what goes through the module is 32768, 5 bits per colour, shadow/highlight supported (tripling the palette)
  • X board: 32768, 5 bits per colour, shadow/highlight supported (tripling the palette)
  • Y board: : again not sure how that one works but I assume what goes through the module is 32768, 5 bits per colour, shadow/highlight supported (tripling the palette)
  • Game Gear: 4096, 4 bits per colour thus not using the full 5 bits per colour the module supports, no shadow/highlight used either

So in some cases all functionalities of the module aren't used. For instance the Game Gear RGB output board can be reproduced using only few parts (mostly latches IIRC, just like in my 315-5242 repro design).

Then I was curious about that greyscale effect the OG OKI chip seems to support.
What can we find in MAME?
MAME said:
In segaic16.cpp



c) Resistor network and latches believed to be equivalent to the 315-5242 (referring to Space Harrier and System 16B hardware)


And in segas24.cpp


// 315-5242

READ16_MEMBER( segas24_state::sys16_paletteram_r )
{
return m_generic_paletteram_16[offset];
}

WRITE16_MEMBER( segas24_state::sys16_paletteram_w )
{
int r, g, b;
COMBINE_DATA (m_generic_paletteram_16 + offset);
data = m_generic_paletteram_16[offset];

r = (data & 0x00f) << 4;
if(data & 0x1000)
r |= 8;

g = data & 0x0f0;
if(data & 0x2000)
g |= 8;

b = (data & 0xf00) >> 4;
if(data & 0x4000)
b |= 8;

r |= r >> 5;
g |= g >> 5;
b |= b >> 5;

m_palette->set_pen_color(offset, rgb_t(r, g, b));

if(data & 0x8000) {
r = 255-0.6*(255-r);
g = 255-0.6*(255-g);
b = 255-0.6*(255-b);
} else {
r = 0.6*r;
g = 0.6*g;
b = 0.6*b;
}
m_palette->set_pen_color(offset+m_palette->entries()/2, rgb_t(r, g, b));
}



In segaxbd.cpp


//-------------------------------------------------
// palette_init - precompute weighted RGB values
// for each input value 0-31
//-------------------------------------------------

void segaxbd_state::palette_init()
{
//
// Color generation details
//
// Each color is made up of 5 bits, connected through one or more resistors like so:
//
// Bit 0 = 1 x 3.9K ohm
// Bit 1 = 1 x 2.0K ohm
// Bit 2 = 1 x 1.0K ohm
// Bit 3 = 2 x 1.0K ohm
// Bit 4 = 4 x 1.0K ohm
//
// Another data bit is connected by a tristate buffer to the color output through a
// 470 ohm resistor. The buffer allows the resistor to have no effect (tristate),
// halve brightness (pull-down) or double brightness (pull-up). The data bit source
// is bit 15 of each color RAM entry.
//

// compute weight table for regular palette entries
static const int resistances_normal[6] = { 3900, 2000, 1000, 1000/2, 1000/4, 0 };
double weights_normal[6];
compute_resistor_weights(0, 255, -1.0,
6, resistances_normal, weights_normal, 0, 0,
0, nullptr, nullptr, 0, 0,
0, nullptr, nullptr, 0, 0);

// compute weight table for shadow/hilight palette entries
static const int resistances_sh[6] = { 3900, 2000, 1000, 1000/2, 1000/4, 470 };
double weights_sh[6];
compute_resistor_weights(0, 255, -1.0,
6, resistances_sh, weights_sh, 0, 0,
0, nullptr, nullptr, 0, 0,
0, nullptr, nullptr, 0, 0);

// compute R, G, B for each weight
for (int value = 0; value < 32; value++)
{
int i4 = (value >> 4) & 1;
int i3 = (value >> 3) & 1;
int i2 = (value >> 2) & 1;
int i1 = (value >> 1) & 1;
int i0 = (value >> 0) & 1;
m_palette_normal[value] = combine_6_weights(weights_normal, i0, i1, i2, i3, i4, 0);
m_palette_shadow[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 0);
m_palette_hilight[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 1);
}
}


//-------------------------------------------------
// paletteram_w - handle writes to palette RAM
//-------------------------------------------------

WRITE16_MEMBER( segaxbd_state::paletteram_w )
{
// compute the number of entries
if (m_palette_entries == 0)
m_palette_entries = memshare("paletteram")->bytes() / 2;

// get the new value
uint16_t newval = m_paletteram[offset];
COMBINE_DATA(&newval);
m_paletteram[offset] = newval;

// byte 0 byte 1
// sBGR BBBB GGGG RRRR
// x000 4321 4321 4321
int r = ((newval >> 12) & 0x01) | ((newval << 1) & 0x1e);
int g = ((newval >> 13) & 0x01) | ((newval >> 3) & 0x1e);
int b = ((newval >> 14) & 0x01) | ((newval >> 7) & 0x1e);

// normal colors
m_palette->set_pen_color(offset + 0 * m_palette_entries, m_palette_normal[r], m_palette_normal[g], m_palette_normal);
m_palette->set_pen_color(offset + 1 * m_palette_entries, m_palette_shadow[r], m_palette_shadow[g], m_palette_shadow);
m_palette->set_pen_color(offset + 2 * m_palette_entries, m_palette_hilight[r], m_palette_hilight[g], m_palette_hilight);
}

And so on for other drivers...
What we learn here is no hardware or games amongst S18/24/32/X/Y use the greyscale effect. Actually they all use the module as a DAC (12 or 15 bits) plus optional shadow/highlight effect.

Sega probably had plans when designing that module but ended up never putting in application some of the functionalities.
It explains why, altough having a somewhat complicated die, the OKI chip can be reproduced with only a few TTL chips and have the games displaying colours correctly.
 
Last edited by a moderator:
Digging some more.

@caius pointed me to Japanese website with the pinout of the module:

https://w.atwiki.jp/arcadegames/pages/37.html

data:image/png;base64,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

So the extra function my reproduction isn't supporting is the greyscale effect. This is extremely interesting cause when I decapped the faulty module I got I found out pin 2 of the module had a trace going to the OKI chip but on the motherboard side it was unconnected (leading me to believe there's a pull-up resistor in the OKI chip for the /GRAY signal).

Now by looking at the schematics and probing the board I discovered that pin is either left unconnected or tied to +5V on the following hardware:
- System C/C2
- X board
- Y board
- System 24

But on S18 it's definitely connected to some logic. S32 I haven't checked yet but probaly same situation than S18.
I need to check MAME drivers to see which games on S18 on S32 actually use the greyscale effect.
It also means my reproduction is suitable for System C/C2, X board, Y board and S24 only. I will add a note:
https://www.arcade-projects.com/for...n.13335/post-215754&highlight=5242#post215754

[EDIT]
Confirmed by MAME drivers, some S18 & S32 games use the greyscale effect.
 
Last edited by a moderator:
Back
Top