130
static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
130
WRITE32_MEMBER(silkroad_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
132
COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
133
palette_set_color_rgb(space->machine(),offset,pal5bit(space->machine().generic.paletteram.u32[offset] >> (10+16)),pal5bit(space->machine().generic.paletteram.u32[offset] >> (5+16)),pal5bit(space->machine().generic.paletteram.u32[offset] >> (0+16)));
132
COMBINE_DATA(&m_generic_paletteram_32[offset]);
133
palette_set_color_rgb(machine(),offset,pal5bit(m_generic_paletteram_32[offset] >> (10+16)),pal5bit(m_generic_paletteram_32[offset] >> (5+16)),pal5bit(m_generic_paletteram_32[offset] >> (0+16)));
136
136
static WRITE32_DEVICE_HANDLER(silk_6295_bank_w)
146
static WRITE32_HANDLER(silk_coin_counter_w)
146
WRITE32_MEMBER(silkroad_state::silk_coin_counter_w)
148
148
if (ACCESSING_BITS_16_23)
150
coin_counter_w(space->machine(), 0, data & 0x10000);
151
coin_counter_w(space->machine(), 1, data & 0x80000);
150
coin_counter_w(machine(), 0, data & 0x10000);
151
coin_counter_w(machine(), 1, data & 0x80000);
155
static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32 )
155
static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, silkroad_state )
156
156
AM_RANGE(0x000000, 0x1fffff) AM_ROM
157
AM_RANGE(0x40c000, 0x40cfff) AM_RAM AM_BASE_MEMBER(silkroad_state,m_sprram) // sprites
158
AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // palette
159
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(silkroad_fgram_w) AM_BASE_MEMBER(silkroad_state,m_vidram) // lower Layer
160
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(silkroad_fgram2_w) AM_BASE_MEMBER(silkroad_state,m_vidram2) // mid layer
161
AM_RANGE(0x808000, 0x80bfff) AM_RAM_WRITE(silkroad_fgram3_w) AM_BASE_MEMBER(silkroad_state,m_vidram3) // higher layer
157
AM_RANGE(0x40c000, 0x40cfff) AM_RAM AM_SHARE("sprram") // sprites
158
AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_SHARE("paletteram") // palette
159
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(silkroad_fgram_w) AM_SHARE("vidram") // lower Layer
160
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE(silkroad_fgram2_w) AM_SHARE("vidram2") // mid layer
161
AM_RANGE(0x808000, 0x80bfff) AM_RAM_WRITE(silkroad_fgram3_w) AM_SHARE("vidram3") // higher layer
162
162
AM_RANGE(0xc00000, 0xc00003) AM_READ_PORT("INPUTS")
163
163
AM_RANGE(0xc00004, 0xc00007) AM_READ_PORT("DSW")
164
AM_RANGE(0xc00024, 0xc00027) AM_DEVREADWRITE8_MODERN("oki1", okim6295_device, read, write, 0x00ff0000)
165
AM_RANGE(0xc00028, 0xc0002f) AM_DEVREADWRITE8("ymsnd", ym2151_r, ym2151_w, 0x00ff0000)
166
AM_RANGE(0xc00030, 0xc00033) AM_DEVREADWRITE8_MODERN("oki2", okim6295_device, read, write, 0x00ff0000)
167
AM_RANGE(0xc00034, 0xc00037) AM_DEVWRITE("oki1", silk_6295_bank_w)
164
AM_RANGE(0xc00024, 0xc00027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000)
165
AM_RANGE(0xc00028, 0xc0002f) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff0000)
166
AM_RANGE(0xc00030, 0xc00033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000)
167
AM_RANGE(0xc00034, 0xc00037) AM_DEVWRITE_LEGACY("oki1", silk_6295_bank_w)
168
168
AM_RANGE(0xc00038, 0xc0003b) AM_WRITE(silk_coin_counter_w)
169
AM_RANGE(0xc0010c, 0xc00123) AM_WRITEONLY AM_BASE_MEMBER(silkroad_state,m_regs)
169
AM_RANGE(0xc0010c, 0xc00123) AM_WRITEONLY AM_SHARE("regs")
170
170
AM_RANGE(0xfe0000, 0xffffff) AM_RAM