38
38
***************************************************************************/
40
WRITE8_HANDLER( yunsung8_videobank_w )
40
WRITE8_MEMBER(yunsung8_state::yunsung8_videobank_w)
42
yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
43
state->m_videobank = data;
47
READ8_HANDLER( yunsung8_videoram_r )
46
READ8_MEMBER(yunsung8_state::yunsung8_videoram_r)
49
yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
52
50
/* Bit 1 of the bankswitching register contols the c000-c7ff
53
51
area (Palette). Bit 0 controls the c800-dfff area (Tiles) */
55
53
if (offset < 0x0800)
56
bank = state->m_videobank & 2;
54
bank = m_videobank & 2;
58
bank = state->m_videobank & 1;
56
bank = m_videobank & 1;
61
return state->m_videoram_0[offset];
59
return m_videoram_0[offset];
63
return state->m_videoram_1[offset];
61
return m_videoram_1[offset];
67
WRITE8_HANDLER( yunsung8_videoram_w )
65
WRITE8_MEMBER(yunsung8_state::yunsung8_videoram_w)
69
yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
71
68
if (offset < 0x0800) // c000-c7ff Banked Palette RAM
73
int bank = state->m_videobank & 2;
70
int bank = m_videobank & 2;
78
RAM = state->m_videoram_0;
80
RAM = state->m_videoram_1;
82
79
RAM[offset] = data;
83
80
color = RAM[offset & ~1] | (RAM[offset | 1] << 8);
85
82
/* BBBBBGGGGGRRRRRx */
86
palette_set_color_rgb(space->machine(), offset / 2 + (bank ? 0x400 : 0), pal5bit(color >> 0), pal5bit(color >> 5), pal5bit(color >> 10));
83
palette_set_color_rgb(machine(), offset / 2 + (bank ? 0x400 : 0), pal5bit(color >> 0), pal5bit(color >> 5), pal5bit(color >> 10));
91
int bank = state->m_videobank & 1;
88
int bank = m_videobank & 1;
93
90
if (offset < 0x1000)
94
91
tile = (offset - 0x0800); // c800-cfff: Banked Color RAM
100
state->m_videoram_0[offset] = data;
101
state->m_tilemap_0->mark_tile_dirty(tile);
97
m_videoram_0[offset] = data;
98
m_tilemap_0->mark_tile_dirty(tile);
105
state->m_videoram_1[offset] = data;
106
state->m_tilemap_1->mark_tile_dirty(tile);
102
m_videoram_1[offset] = data;
103
m_tilemap_1->mark_tile_dirty(tile);
112
WRITE8_HANDLER( yunsung8_flipscreen_w )
109
WRITE8_MEMBER(yunsung8_state::yunsung8_flipscreen_w)
114
space->machine().tilemap().set_flip_all((data & 1) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
111
machine().tilemap().set_flip_all((data & 1) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);