mirror of
https://github.com/holub/mame
synced 2025-07-05 18:08:04 +03:00
gkigt.cpp: hookup ramdac (nw)
This commit is contained in:
parent
272b54b1b4
commit
7b3938d13b
@ -86,6 +86,7 @@ More chips (from eBay auction):
|
|||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/i960/i960.h"
|
#include "cpu/i960/i960.h"
|
||||||
#include "machine/nvram.h"
|
#include "machine/nvram.h"
|
||||||
|
#include "video/ramdac.h"
|
||||||
#include "sound/ymz280b.h"
|
#include "sound/ymz280b.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
@ -119,47 +120,22 @@ public:
|
|||||||
|
|
||||||
DECLARE_READ32_MEMBER(uart_status_r);
|
DECLARE_READ32_MEMBER(uart_status_r);
|
||||||
DECLARE_WRITE32_MEMBER(uart_w);
|
DECLARE_WRITE32_MEMBER(uart_w);
|
||||||
DECLARE_WRITE32_MEMBER(clut_w);
|
|
||||||
DECLARE_WRITE32_MEMBER(clut_mask_w);
|
|
||||||
|
|
||||||
void igt_gameking(machine_config &config);
|
void igt_gameking(machine_config &config);
|
||||||
private:
|
private:
|
||||||
int m_offset, m_r, m_g, m_b, m_state;
|
|
||||||
bool m_bToggle;
|
bool m_bToggle;
|
||||||
u8 m_clut_mask;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static INPUT_PORTS_START( igt_gameking )
|
void igt_gameking_state::video_start()
|
||||||
INPUT_PORTS_END
|
|
||||||
|
|
||||||
WRITE32_MEMBER(igt_gameking_state::clut_w)
|
|
||||||
{
|
{
|
||||||
if (mem_mask == 0x000000ff)
|
|
||||||
{
|
|
||||||
m_offset = data & 0xff;
|
|
||||||
m_state = 0;
|
|
||||||
}
|
|
||||||
else if (mem_mask == 0x00ff0000)
|
|
||||||
{
|
|
||||||
switch (m_state)
|
|
||||||
{
|
|
||||||
case 0: m_r = (data>>16) & 0xff; m_state++; break;
|
|
||||||
case 1: m_g = (data>>16) & 0xff; m_state++; break;
|
|
||||||
case 2:
|
|
||||||
m_b = (data>>16) & 0xff;
|
|
||||||
//printf("CLUT: color %d = R %d G %d B %d\n", m_offset, m_r, m_g, m_b);
|
|
||||||
m_palette->set_pen_color(m_offset, m_r<<18 | m_g<<10 | m_b<<2);
|
|
||||||
m_state = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE32_MEMBER(igt_gameking_state::clut_mask_w)
|
uint32_t igt_gameking_state::screen_update_igt_gameking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_clut_mask = data & 0xff;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
READ32_MEMBER(igt_gameking_state::uart_status_r)
|
READ32_MEMBER(igt_gameking_state::uart_status_r)
|
||||||
{
|
{
|
||||||
return 0x00040000;
|
return 0x00040000;
|
||||||
@ -177,17 +153,6 @@ void igt_gameking_state::machine_start()
|
|||||||
void igt_gameking_state::machine_reset()
|
void igt_gameking_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_bToggle = false;
|
m_bToggle = false;
|
||||||
m_offset = m_state = m_r = m_g = m_b = 0;
|
|
||||||
m_clut_mask = 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
void igt_gameking_state::video_start()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t igt_gameking_state::screen_update_igt_gameking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -210,13 +175,17 @@ static ADDRESS_MAP_START( igt_gameking_mem, AS_PROGRAM, 32, igt_gameking_state )
|
|||||||
AM_RANGE(0x28030000, 0x28030003) AM_READ(igt_gk_28030000_r)
|
AM_RANGE(0x28030000, 0x28030003) AM_READ(igt_gk_28030000_r)
|
||||||
AM_RANGE(0x28040000, 0x2804ffff) AM_RAM
|
AM_RANGE(0x28040000, 0x2804ffff) AM_RAM
|
||||||
AM_RANGE(0x28050000, 0x28050003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x00ff00ff)
|
AM_RANGE(0x28050000, 0x28050003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0x00ff00ff)
|
||||||
AM_RANGE(0x28060000, 0x28060003) AM_WRITE(clut_w)
|
AM_RANGE(0x28060000, 0x28060003) AM_DEVWRITE8("ramdac",ramdac_device, index_w, 0x000000ff )
|
||||||
AM_RANGE(0x28060004, 0x28060007) AM_WRITE(clut_mask_w)
|
AM_RANGE(0x28060000, 0x28060003) AM_DEVWRITE8("ramdac",ramdac_device, pal_w, 0x00ff0000 )
|
||||||
|
AM_RANGE(0x28060004, 0x28060007) AM_DEVWRITE8("ramdac",ramdac_device, mask_w, 0x000000ff )
|
||||||
|
|
||||||
AM_RANGE(0xa1000000, 0xa1011fff) AM_RAM // used by gkkey for restart IAC
|
AM_RANGE(0xa1000000, 0xa1011fff) AM_RAM // used by gkkey for restart IAC
|
||||||
|
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( igt_gameking )
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static const gfx_layout igt_gameking_layout =
|
static const gfx_layout igt_gameking_layout =
|
||||||
{
|
{
|
||||||
16,8,
|
16,8,
|
||||||
@ -233,7 +202,9 @@ static GFXDECODE_START( igt_gameking )
|
|||||||
GFXDECODE_ENTRY( "cg", 0, igt_gameking_layout, 0x0, 1 )
|
GFXDECODE_ENTRY( "cg", 0, igt_gameking_layout, 0x0, 1 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
static ADDRESS_MAP_START( ramdac_map, 0, 8, igt_gameking_state )
|
||||||
|
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w)
|
||||||
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
MACHINE_CONFIG_START(igt_gameking_state::igt_gameking)
|
MACHINE_CONFIG_START(igt_gameking_state::igt_gameking)
|
||||||
|
|
||||||
@ -253,8 +224,9 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking)
|
|||||||
MCFG_SCREEN_PALETTE("palette")
|
MCFG_SCREEN_PALETTE("palette")
|
||||||
// Xilinx used as video chip XTAL(26'666'666) on board
|
// Xilinx used as video chip XTAL(26'666'666) on board
|
||||||
|
|
||||||
MCFG_PALETTE_ADD("palette", 0x200)
|
MCFG_PALETTE_ADD("palette", 0x100)
|
||||||
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
|
|
||||||
|
MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
|
Loading…
Reference in New Issue
Block a user