~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/video/yunsung8.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
 
38
38
***************************************************************************/
39
39
 
40
 
WRITE8_HANDLER( yunsung8_videobank_w )
 
40
WRITE8_MEMBER(yunsung8_state::yunsung8_videobank_w)
41
41
{
42
 
        yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
43
 
        state->m_videobank = data;
 
42
        m_videobank = data;
44
43
}
45
44
 
46
45
 
47
 
READ8_HANDLER( yunsung8_videoram_r )
 
46
READ8_MEMBER(yunsung8_state::yunsung8_videoram_r)
48
47
{
49
 
        yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
50
48
        int bank;
51
49
 
52
50
        /*  Bit 1 of the bankswitching register contols the c000-c7ff
53
51
        area (Palette). Bit 0 controls the c800-dfff area (Tiles) */
54
52
 
55
53
        if (offset < 0x0800)
56
 
                bank = state->m_videobank & 2;
 
54
                bank = m_videobank & 2;
57
55
        else
58
 
                bank = state->m_videobank & 1;
 
56
                bank = m_videobank & 1;
59
57
 
60
58
        if (bank)
61
 
                return state->m_videoram_0[offset];
 
59
                return m_videoram_0[offset];
62
60
        else
63
 
                return state->m_videoram_1[offset];
 
61
                return m_videoram_1[offset];
64
62
}
65
63
 
66
64
 
67
 
WRITE8_HANDLER( yunsung8_videoram_w )
 
65
WRITE8_MEMBER(yunsung8_state::yunsung8_videoram_w)
68
66
{
69
 
        yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
70
67
 
71
68
        if (offset < 0x0800)            // c000-c7ff    Banked Palette RAM
72
69
        {
73
 
                int bank = state->m_videobank & 2;
 
70
                int bank = m_videobank & 2;
74
71
                UINT8 *RAM;
75
72
                int color;
76
73
 
77
74
                if (bank)
78
 
                        RAM = state->m_videoram_0;
 
75
                        RAM = m_videoram_0;
79
76
                else
80
 
                        RAM = state->m_videoram_1;
 
77
                        RAM = m_videoram_1;
81
78
 
82
79
                RAM[offset] = data;
83
80
                color = RAM[offset & ~1] | (RAM[offset | 1] << 8);
84
81
 
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));
87
84
        }
88
85
        else
89
86
        {
90
87
                int tile;
91
 
                int bank = state->m_videobank & 1;
 
88
                int bank = m_videobank & 1;
92
89
 
93
90
                if (offset < 0x1000)
94
91
                        tile = (offset - 0x0800);               // c800-cfff: Banked Color RAM
97
94
 
98
95
                if (bank)
99
96
                {
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);
102
99
                }
103
100
                else
104
101
                {
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);
107
104
                }
108
105
        }
109
106
}
110
107
 
111
108
 
112
 
WRITE8_HANDLER( yunsung8_flipscreen_w )
 
109
WRITE8_MEMBER(yunsung8_state::yunsung8_flipscreen_w)
113
110
{
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);
115
112
}
116
113
 
117
114