mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
Another lovely set-up, Seibu really loved to PAL-ize those addresses ...
This commit is contained in:
parent
47967ed9c6
commit
84e555f1a1
@ -425,7 +425,7 @@ static ADDRESS_MAP_START( totmejan_io_map, AS_IO, 16, goodejan_state )
|
|||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( goodejan_io_map, AS_IO, 16, goodejan_state )
|
static ADDRESS_MAP_START( goodejan_io_map, AS_IO, 16, goodejan_state )
|
||||||
AM_RANGE(0x8040, 0x807f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)
|
AM_RANGE(0x8000, 0x807f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read_xor, write_xor)
|
||||||
AM_IMPORT_FROM(common_io_map)
|
AM_IMPORT_FROM(common_io_map)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
@ -135,6 +135,7 @@ const device_type SEIBU_CRTC = &device_creator<seibu_crtc_device>;
|
|||||||
static ADDRESS_MAP_START( seibu_crtc_vregs, AS_0, 16, seibu_crtc_device )
|
static ADDRESS_MAP_START( seibu_crtc_vregs, AS_0, 16, seibu_crtc_device )
|
||||||
AM_RANGE(0x001c, 0x001d) AM_WRITE(layer_en_w)
|
AM_RANGE(0x001c, 0x001d) AM_WRITE(layer_en_w)
|
||||||
AM_RANGE(0x0020, 0x002b) AM_WRITE(layer_scroll_w)
|
AM_RANGE(0x0020, 0x002b) AM_WRITE(layer_scroll_w)
|
||||||
|
AM_RANGE(0x0000, 0x004f) AM_RAM
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
WRITE16_MEMBER( seibu_crtc_device::layer_en_w)
|
WRITE16_MEMBER( seibu_crtc_device::layer_en_w)
|
||||||
@ -161,8 +162,7 @@ WRITE16_MEMBER( seibu_crtc_device::layer_scroll_w)
|
|||||||
seibu_crtc_device::seibu_crtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
seibu_crtc_device::seibu_crtc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||||
: device_t(mconfig, SEIBU_CRTC, "Seibu CRT Controller", tag, owner, clock, "seibu_crtc", __FILE__),
|
: device_t(mconfig, SEIBU_CRTC, "Seibu CRT Controller", tag, owner, clock, "seibu_crtc", __FILE__),
|
||||||
device_memory_interface(mconfig, *this),
|
device_memory_interface(mconfig, *this),
|
||||||
m_space_config("vregs", ENDIANNESS_LITTLE, 16, 16, 0, NULL, *ADDRESS_MAP_NAME(seibu_crtc_vregs))
|
m_space_config("vregs", ENDIANNESS_LITTLE, 16, 7, 0, NULL, *ADDRESS_MAP_NAME(seibu_crtc_vregs))
|
||||||
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,3 +277,15 @@ WRITE16_MEMBER( seibu_crtc_device::write_alt )
|
|||||||
{
|
{
|
||||||
write_word(BITSWAP16(offset,15,14,13,12,11,10,9,8,7,6,5,3,4,2,1,0),data);
|
write_word(BITSWAP16(offset,15,14,13,12,11,10,9,8,7,6,5,3,4,2,1,0),data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Good E Jang / Seibu Cup Soccer Selection XOR bit 6 of the address bus */
|
||||||
|
READ16_MEMBER( seibu_crtc_device::read_xor )
|
||||||
|
{
|
||||||
|
return read_word(offset ^ 0x20);
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE16_MEMBER( seibu_crtc_device::write_xor )
|
||||||
|
{
|
||||||
|
write_word(offset ^ 0x20,data);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -46,8 +46,10 @@ public:
|
|||||||
// I/O operations
|
// I/O operations
|
||||||
DECLARE_WRITE16_MEMBER( write );
|
DECLARE_WRITE16_MEMBER( write );
|
||||||
DECLARE_WRITE16_MEMBER( write_alt );
|
DECLARE_WRITE16_MEMBER( write_alt );
|
||||||
|
DECLARE_WRITE16_MEMBER( write_xor );
|
||||||
DECLARE_READ16_MEMBER( read );
|
DECLARE_READ16_MEMBER( read );
|
||||||
DECLARE_READ16_MEMBER( read_alt );
|
DECLARE_READ16_MEMBER( read_alt );
|
||||||
|
DECLARE_READ16_MEMBER( read_xor );
|
||||||
DECLARE_WRITE16_MEMBER(layer_en_w);
|
DECLARE_WRITE16_MEMBER(layer_en_w);
|
||||||
DECLARE_WRITE16_MEMBER(layer_scroll_w);
|
DECLARE_WRITE16_MEMBER(layer_scroll_w);
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
Reference in New Issue
Block a user