summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2012-09-08 10:22:41 +0000
committer Curt Coder <curtcoder@mail.com>2012-09-08 10:22:41 +0000
commit15168cbf4d5d77780c4203a0699213a011c1f192 (patch)
treeb3a0fcb0d942d74c0085d677b9ccace804da75ec /src/mess
parent539cd6d083458d208a88c86e38c278e0b789134d (diff)
(MESS) mos7360: Refactored to use an rgb32 bitmap. (nw)
Diffstat (limited to 'src/mess')
-rw-r--r--src/mess/audio/mos7360.c208
-rw-r--r--src/mess/audio/mos7360.h6
2 files changed, 104 insertions, 110 deletions
diff --git a/src/mess/audio/mos7360.c b/src/mess/audio/mos7360.c
index ed51562ece2..777405a0c95 100644
--- a/src/mess/audio/mos7360.c
+++ b/src/mess/audio/mos7360.c
@@ -96,7 +96,7 @@ static int TEDTIME_TO_CYCLES(attotime t)
return (int)(d * clock());
}
-static const UINT8 PALETTE[] =
+static const rgb_t PALETTE[] =
{
/* black, white, red, cyan */
/* purple, green, blue, yellow */
@@ -104,45 +104,45 @@ static const UINT8 PALETTE[] =
/* light violett, light green, light blue, light yellow */
/* these 16 colors are 8 times here in different luminance (dark..light) */
/* taken from digitized tv screenshot */
- 0x06, 0x01, 0x03, 0x2b, 0x2b, 0x2b, 0x67, 0x0e, 0x0f, 0x00, 0x3f, 0x42,
- 0x57, 0x00, 0x6d, 0x00, 0x4e, 0x00, 0x19, 0x1c, 0x94, 0x38, 0x38, 0x00,
- 0x56, 0x20, 0x00, 0x4b, 0x28, 0x00, 0x16, 0x48, 0x00, 0x69, 0x07, 0x2f,
- 0x00, 0x46, 0x26, 0x06, 0x2a, 0x80, 0x2a, 0x14, 0x9b, 0x0b, 0x49, 0x00,
-
- 0x00, 0x03, 0x02, 0x3d, 0x3d, 0x3d, 0x75, 0x1e, 0x20, 0x00, 0x50, 0x4f,
- 0x6a, 0x10, 0x78, 0x04, 0x5c, 0x00, 0x2a, 0x2a, 0xa3, 0x4c, 0x47, 0x00,
- 0x69, 0x2f, 0x00, 0x59, 0x38, 0x00, 0x26, 0x56, 0x00, 0x75, 0x15, 0x41,
- 0x00, 0x58, 0x3d, 0x15, 0x3d, 0x8f, 0x39, 0x22, 0xae, 0x19, 0x59, 0x00,
-
- 0x00, 0x03, 0x04, 0x42, 0x42, 0x42, 0x7b, 0x28, 0x20, 0x02, 0x56, 0x59,
- 0x6f, 0x1a, 0x82, 0x0a, 0x65, 0x09, 0x30, 0x34, 0xa7, 0x50, 0x51, 0x00,
- 0x6e, 0x36, 0x00, 0x65, 0x40, 0x00, 0x2c, 0x5c, 0x00, 0x7d, 0x1e, 0x45,
- 0x01, 0x61, 0x45, 0x1c, 0x45, 0x99, 0x42, 0x2d, 0xad, 0x1d, 0x62, 0x00,
-
- 0x05, 0x00, 0x02, 0x56, 0x55, 0x5a, 0x90, 0x3c, 0x3b, 0x17, 0x6d, 0x72,
- 0x87, 0x2d, 0x99, 0x1f, 0x7b, 0x15, 0x46, 0x49, 0xc1, 0x66, 0x63, 0x00,
- 0x84, 0x4c, 0x0d, 0x73, 0x55, 0x00, 0x40, 0x72, 0x00, 0x91, 0x33, 0x5e,
- 0x19, 0x74, 0x5c, 0x32, 0x59, 0xae, 0x59, 0x3f, 0xc3, 0x32, 0x76, 0x00,
-
- 0x02, 0x01, 0x06, 0x84, 0x7e, 0x85, 0xbb, 0x67, 0x68, 0x45, 0x96, 0x96,
- 0xaf, 0x58, 0xc3, 0x4a, 0xa7, 0x3e, 0x73, 0x73, 0xec, 0x92, 0x8d, 0x11,
- 0xaf, 0x78, 0x32, 0xa1, 0x80, 0x20, 0x6c, 0x9e, 0x12, 0xba, 0x5f, 0x89,
- 0x46, 0x9f, 0x83, 0x61, 0x85, 0xdd, 0x84, 0x6c, 0xef, 0x5d, 0xa3, 0x29,
-
- 0x02, 0x00, 0x0a, 0xb2, 0xac, 0xb3, 0xe9, 0x92, 0x92, 0x6c, 0xc3, 0xc1,
- 0xd9, 0x86, 0xf0, 0x79, 0xd1, 0x76, 0x9d, 0xa1, 0xff, 0xbd, 0xbe, 0x40,
- 0xdc, 0xa2, 0x61, 0xd1, 0xa9, 0x4c, 0x93, 0xc8, 0x3d, 0xe9, 0x8a, 0xb1,
- 0x6f, 0xcd, 0xab, 0x8a, 0xb4, 0xff, 0xb2, 0x9a, 0xff, 0x88, 0xcb, 0x59,
-
- 0x02, 0x00, 0x0a, 0xc7, 0xca, 0xc9, 0xff, 0xac, 0xac, 0x85, 0xd8, 0xe0,
- 0xf3, 0x9c, 0xff, 0x92, 0xea, 0x8a, 0xb7, 0xba, 0xff, 0xd6, 0xd3, 0x5b,
- 0xf3, 0xbe, 0x79, 0xe6, 0xc5, 0x65, 0xb0, 0xe0, 0x57, 0xff, 0xa4, 0xcf,
- 0x89, 0xe5, 0xc8, 0xa4, 0xca, 0xff, 0xca, 0xb3, 0xff, 0xa2, 0xe5, 0x7a,
-
- 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xf2, 0xd1, 0xff, 0xff,
- 0xff, 0xe9, 0xff, 0xdb, 0xff, 0xd3, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xa3,
- 0xff, 0xff, 0xc1, 0xff, 0xff, 0xb2, 0xfc, 0xff, 0xa2, 0xff, 0xee, 0xff,
- 0xd1, 0xff, 0xff, 0xeb, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xed, 0xff, 0xbc
+ MAKE_RGB(0x06, 0x01, 0x03), MAKE_RGB(0x2b, 0x2b, 0x2b), MAKE_RGB(0x67, 0x0e, 0x0f), MAKE_RGB(0x00, 0x3f, 0x42),
+ MAKE_RGB(0x57, 0x00, 0x6d), MAKE_RGB(0x00, 0x4e, 0x00), MAKE_RGB(0x19, 0x1c, 0x94), MAKE_RGB(0x38, 0x38, 0x00),
+ MAKE_RGB(0x56, 0x20, 0x00), MAKE_RGB(0x4b, 0x28, 0x00), MAKE_RGB(0x16, 0x48, 0x00), MAKE_RGB(0x69, 0x07, 0x2f),
+ MAKE_RGB(0x00, 0x46, 0x26), MAKE_RGB(0x06, 0x2a, 0x80), MAKE_RGB(0x2a, 0x14, 0x9b), MAKE_RGB(0x0b, 0x49, 0x00),
+
+ MAKE_RGB(0x00, 0x03, 0x02), MAKE_RGB(0x3d, 0x3d, 0x3d), MAKE_RGB(0x75, 0x1e, 0x20), MAKE_RGB(0x00, 0x50, 0x4f),
+ MAKE_RGB(0x6a, 0x10, 0x78), MAKE_RGB(0x04, 0x5c, 0x00), MAKE_RGB(0x2a, 0x2a, 0xa3), MAKE_RGB(0x4c, 0x47, 0x00),
+ MAKE_RGB(0x69, 0x2f, 0x00), MAKE_RGB(0x59, 0x38, 0x00), MAKE_RGB(0x26, 0x56, 0x00), MAKE_RGB(0x75, 0x15, 0x41),
+ MAKE_RGB(0x00, 0x58, 0x3d), MAKE_RGB(0x15, 0x3d, 0x8f), MAKE_RGB(0x39, 0x22, 0xae), MAKE_RGB(0x19, 0x59, 0x00),
+
+ MAKE_RGB(0x00, 0x03, 0x04), MAKE_RGB(0x42, 0x42, 0x42), MAKE_RGB(0x7b, 0x28, 0x20), MAKE_RGB(0x02, 0x56, 0x59),
+ MAKE_RGB(0x6f, 0x1a, 0x82), MAKE_RGB(0x0a, 0x65, 0x09), MAKE_RGB(0x30, 0x34, 0xa7), MAKE_RGB(0x50, 0x51, 0x00),
+ MAKE_RGB(0x6e, 0x36, 0x00), MAKE_RGB(0x65, 0x40, 0x00), MAKE_RGB(0x2c, 0x5c, 0x00), MAKE_RGB(0x7d, 0x1e, 0x45),
+ MAKE_RGB(0x01, 0x61, 0x45), MAKE_RGB(0x1c, 0x45, 0x99), MAKE_RGB(0x42, 0x2d, 0xad), MAKE_RGB(0x1d, 0x62, 0x00),
+
+ MAKE_RGB(0x05, 0x00, 0x02), MAKE_RGB(0x56, 0x55, 0x5a), MAKE_RGB(0x90, 0x3c, 0x3b), MAKE_RGB(0x17, 0x6d, 0x72),
+ MAKE_RGB(0x87, 0x2d, 0x99), MAKE_RGB(0x1f, 0x7b, 0x15), MAKE_RGB(0x46, 0x49, 0xc1), MAKE_RGB(0x66, 0x63, 0x00),
+ MAKE_RGB(0x84, 0x4c, 0x0d), MAKE_RGB(0x73, 0x55, 0x00), MAKE_RGB(0x40, 0x72, 0x00), MAKE_RGB(0x91, 0x33, 0x5e),
+ MAKE_RGB(0x19, 0x74, 0x5c), MAKE_RGB(0x32, 0x59, 0xae), MAKE_RGB(0x59, 0x3f, 0xc3), MAKE_RGB(0x32, 0x76, 0x00),
+
+ MAKE_RGB(0x02, 0x01, 0x06), MAKE_RGB(0x84, 0x7e, 0x85), MAKE_RGB(0xbb, 0x67, 0x68), MAKE_RGB(0x45, 0x96, 0x96),
+ MAKE_RGB(0xaf, 0x58, 0xc3), MAKE_RGB(0x4a, 0xa7, 0x3e), MAKE_RGB(0x73, 0x73, 0xec), MAKE_RGB(0x92, 0x8d, 0x11),
+ MAKE_RGB(0xaf, 0x78, 0x32), MAKE_RGB(0xa1, 0x80, 0x20), MAKE_RGB(0x6c, 0x9e, 0x12), MAKE_RGB(0xba, 0x5f, 0x89),
+ MAKE_RGB(0x46, 0x9f, 0x83), MAKE_RGB(0x61, 0x85, 0xdd), MAKE_RGB(0x84, 0x6c, 0xef), MAKE_RGB(0x5d, 0xa3, 0x29),
+
+ MAKE_RGB(0x02, 0x00, 0x0a), MAKE_RGB(0xb2, 0xac, 0xb3), MAKE_RGB(0xe9, 0x92, 0x92), MAKE_RGB(0x6c, 0xc3, 0xc1),
+ MAKE_RGB(0xd9, 0x86, 0xf0), MAKE_RGB(0x79, 0xd1, 0x76), MAKE_RGB(0x9d, 0xa1, 0xff), MAKE_RGB(0xbd, 0xbe, 0x40),
+ MAKE_RGB(0xdc, 0xa2, 0x61), MAKE_RGB(0xd1, 0xa9, 0x4c), MAKE_RGB(0x93, 0xc8, 0x3d), MAKE_RGB(0xe9, 0x8a, 0xb1),
+ MAKE_RGB(0x6f, 0xcd, 0xab), MAKE_RGB(0x8a, 0xb4, 0xff), MAKE_RGB(0xb2, 0x9a, 0xff), MAKE_RGB(0x88, 0xcb, 0x59),
+
+ MAKE_RGB(0x02, 0x00, 0x0a), MAKE_RGB(0xc7, 0xca, 0xc9), MAKE_RGB(0xff, 0xac, 0xac), MAKE_RGB(0x85, 0xd8, 0xe0),
+ MAKE_RGB(0xf3, 0x9c, 0xff), MAKE_RGB(0x92, 0xea, 0x8a), MAKE_RGB(0xb7, 0xba, 0xff), MAKE_RGB(0xd6, 0xd3, 0x5b),
+ MAKE_RGB(0xf3, 0xbe, 0x79), MAKE_RGB(0xe6, 0xc5, 0x65), MAKE_RGB(0xb0, 0xe0, 0x57), MAKE_RGB(0xff, 0xa4, 0xcf),
+ MAKE_RGB(0x89, 0xe5, 0xc8), MAKE_RGB(0xa4, 0xca, 0xff), MAKE_RGB(0xca, 0xb3, 0xff), MAKE_RGB(0xa2, 0xe5, 0x7a),
+
+ MAKE_RGB(0x01, 0x01, 0x01), MAKE_RGB(0xff, 0xff, 0xff), MAKE_RGB(0xff, 0xf6, 0xf2), MAKE_RGB(0xd1, 0xff, 0xff),
+ MAKE_RGB(0xff, 0xe9, 0xff), MAKE_RGB(0xdb, 0xff, 0xd3), MAKE_RGB(0xfd, 0xff, 0xff), MAKE_RGB(0xff, 0xff, 0xa3),
+ MAKE_RGB(0xff, 0xff, 0xc1), MAKE_RGB(0xff, 0xff, 0xb2), MAKE_RGB(0xfc, 0xff, 0xa2), MAKE_RGB(0xff, 0xee, 0xff),
+ MAKE_RGB(0xd1, 0xff, 0xff), MAKE_RGB(0xeb, 0xff, 0xff), MAKE_RGB(0xff, 0xf8, 0xff), MAKE_RGB(0xed, 0xff, 0xbc)
};
@@ -321,9 +321,6 @@ void mos7360_device::device_start()
m_timer2 = timer_alloc(TIMER_ID_2);
m_timer3 = timer_alloc(TIMER_ID_3);
- // initialize palette
- initialize_palette();
-
// allocate screen bitmap
m_screen->register_screen_bitmap(m_bitmap);
@@ -445,19 +442,6 @@ void mos7360_device::device_timer(emu_timer &timer, device_timer_id id, int para
//-------------------------------------------------
-// initialize_palette - initialize palette
-//-------------------------------------------------
-
-void mos7360_device::initialize_palette()
-{
- int i;
-
- for (i = 0; i < sizeof(PALETTE) / 3; i++)
- palette_set_color_rgb(machine(), i, PALETTE[i * 3], PALETTE[i * 3 + 1], PALETTE[i * 3 + 2]);
-}
-
-
-//-------------------------------------------------
// sound_stream_update - handle update requests for
// our sound stream
//-------------------------------------------------
@@ -526,14 +510,14 @@ void mos7360_device::draw_character(int ybegin, int yend, int ch, int yoff, int
else
code = read_ram(m_chargenaddr + ch * 8 + y);
- m_bitmap.pix16(y + yoff, 0 + xoff) = color[code >> 7];
- m_bitmap.pix16(y + yoff, 1 + xoff) = color[(code >> 6) & 1];
- m_bitmap.pix16(y + yoff, 2 + xoff) = color[(code >> 5) & 1];
- m_bitmap.pix16(y + yoff, 3 + xoff) = color[(code >> 4) & 1];
- m_bitmap.pix16(y + yoff, 4 + xoff) = color[(code >> 3) & 1];
- m_bitmap.pix16(y + yoff, 5 + xoff) = color[(code >> 2) & 1];
- m_bitmap.pix16(y + yoff, 6 + xoff) = color[(code >> 1) & 1];
- m_bitmap.pix16(y + yoff, 7 + xoff) = color[code & 1];
+ m_bitmap.pix32(y + yoff, 0 + xoff) = PALETTE[color[code >> 7]];
+ m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[color[(code >> 6) & 1]];
+ m_bitmap.pix32(y + yoff, 2 + xoff) = PALETTE[color[(code >> 5) & 1]];
+ m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[color[(code >> 4) & 1]];
+ m_bitmap.pix32(y + yoff, 4 + xoff) = PALETTE[color[(code >> 3) & 1]];
+ m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[color[(code >> 2) & 1]];
+ m_bitmap.pix32(y + yoff, 6 + xoff) = PALETTE[color[(code >> 1) & 1]];
+ m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[color[code & 1]];
}
}
@@ -548,14 +532,14 @@ void mos7360_device::draw_character_multi(int ybegin, int yend, int ch, int yoff
else
code = read_ram(m_chargenaddr + ch * 8 + y);
- m_bitmap.pix16(y + yoff, 0 + xoff) =
- m_bitmap.pix16(y + yoff, 1 + xoff) = m_multi[code >> 6];
- m_bitmap.pix16(y + yoff, 2 + xoff) =
- m_bitmap.pix16(y + yoff, 3 + xoff) = m_multi[(code >> 4) & 3];
- m_bitmap.pix16(y + yoff, 4 + xoff) =
- m_bitmap.pix16(y + yoff, 5 + xoff) = m_multi[(code >> 2) & 3];
- m_bitmap.pix16(y + yoff, 6 + xoff) =
- m_bitmap.pix16(y + yoff, 7 + xoff) = m_multi[code & 3];
+ m_bitmap.pix32(y + yoff, 0 + xoff) =
+ m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_multi[code >> 6]];
+ m_bitmap.pix32(y + yoff, 2 + xoff) =
+ m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_multi[(code >> 4) & 3]];
+ m_bitmap.pix32(y + yoff, 4 + xoff) =
+ m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_multi[(code >> 2) & 3]];
+ m_bitmap.pix32(y + yoff, 6 + xoff) =
+ m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_multi[code & 3]];
}
}
@@ -567,14 +551,14 @@ void mos7360_device::draw_bitmap(int ybegin, int yend, int ch, int yoff, int xof
{
code = read_ram(m_bitmapaddr + ch * 8 + y);
- m_bitmap.pix16(y + yoff, 0 + xoff) = m_c16_bitmap[code >> 7];
- m_bitmap.pix16(y + yoff, 1 + xoff) = m_c16_bitmap[(code >> 6) & 1];
- m_bitmap.pix16(y + yoff, 2 + xoff) = m_c16_bitmap[(code >> 5) & 1];
- m_bitmap.pix16(y + yoff, 3 + xoff) = m_c16_bitmap[(code >> 4) & 1];
- m_bitmap.pix16(y + yoff, 4 + xoff) = m_c16_bitmap[(code >> 3) & 1];
- m_bitmap.pix16(y + yoff, 5 + xoff) = m_c16_bitmap[(code >> 2) & 1];
- m_bitmap.pix16(y + yoff, 6 + xoff) = m_c16_bitmap[(code >> 1) & 1];
- m_bitmap.pix16(y + yoff, 7 + xoff) = m_c16_bitmap[code & 1];
+ m_bitmap.pix32(y + yoff, 0 + xoff) = PALETTE[m_c16_bitmap[code >> 7]];
+ m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_c16_bitmap[(code >> 6) & 1]];
+ m_bitmap.pix32(y + yoff, 2 + xoff) = PALETTE[m_c16_bitmap[(code >> 5) & 1]];
+ m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_c16_bitmap[(code >> 4) & 1]];
+ m_bitmap.pix32(y + yoff, 4 + xoff) = PALETTE[m_c16_bitmap[(code >> 3) & 1]];
+ m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_c16_bitmap[(code >> 2) & 1]];
+ m_bitmap.pix32(y + yoff, 6 + xoff) = PALETTE[m_c16_bitmap[(code >> 1) & 1]];
+ m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_c16_bitmap[code & 1]];
}
}
@@ -586,35 +570,27 @@ void mos7360_device::draw_bitmap_multi(int ybegin, int yend, int ch, int yoff, i
{
code = read_ram(m_bitmapaddr + ch * 8 + y);
- m_bitmap.pix16(y + yoff, 0 + xoff) =
- m_bitmap.pix16(y + yoff, 1 + xoff) = m_bitmapmulti[code >> 6];
- m_bitmap.pix16(y + yoff, 2 + xoff) =
- m_bitmap.pix16(y + yoff, 3 + xoff) = m_bitmapmulti[(code >> 4) & 3];
- m_bitmap.pix16(y + yoff, 4 + xoff) =
- m_bitmap.pix16(y + yoff, 5 + xoff) = m_bitmapmulti[(code >> 2) & 3];
- m_bitmap.pix16(y + yoff, 6 + xoff) =
- m_bitmap.pix16(y + yoff, 7 + xoff) = m_bitmapmulti[code & 3];
+ m_bitmap.pix32(y + yoff, 0 + xoff) =
+ m_bitmap.pix32(y + yoff, 1 + xoff) = PALETTE[m_bitmapmulti[code >> 6]];
+ m_bitmap.pix32(y + yoff, 2 + xoff) =
+ m_bitmap.pix32(y + yoff, 3 + xoff) = PALETTE[m_bitmapmulti[(code >> 4) & 3]];
+ m_bitmap.pix32(y + yoff, 4 + xoff) =
+ m_bitmap.pix32(y + yoff, 5 + xoff) = PALETTE[m_bitmapmulti[(code >> 2) & 3]];
+ m_bitmap.pix32(y + yoff, 6 + xoff) =
+ m_bitmap.pix32(y + yoff, 7 + xoff) = PALETTE[m_bitmapmulti[code & 3]];
}
}
-#ifndef memset16
-static void *memset16 (void *dest, int value, size_t size)
-{
- register int i;
-
- for (i = 0; i < size; i++)
- ((short *) dest)[i] = value;
- return dest;
-}
-#endif
-
void mos7360_device::draw_cursor(int ybegin, int yend, int yoff, int xoff, int color)
{
int y;
for (y = ybegin; y <= yend; y++)
{
- memset16(&m_bitmap.pix16(yoff + y, xoff), color, 8);
+ for (int x = 0; x < 8; x++)
+ {
+ m_bitmap.pix32(y + yoff, x + xoff) = PALETTE[color];
+ }
}
}
@@ -638,7 +614,12 @@ void mos7360_device::drawlines(int first, int last)
if (!SCREENON)
{
for (line = first; (line < last) && (line < m_bitmap.height()); line++)
- memset16(&m_bitmap.pix16(line), 0, m_bitmap.width());
+ {
+ for (int x = 0; x < m_bitmap.width(); x++)
+ {
+ m_bitmap.pix32(line, x) = PALETTE[0];
+ }
+ }
return;
}
@@ -653,7 +634,12 @@ void mos7360_device::drawlines(int first, int last)
end = m_y_begin + YPOS;
{
for (line = first; line < end; line++)
- memset16(&m_bitmap.pix16(line), FRAMECOLOR, m_bitmap.width());
+ {
+ for (int x = 0; x < m_bitmap.width(); x++)
+ {
+ m_bitmap.pix32(line, x) = PALETTE[FRAMECOLOR];
+ }
+ }
}
if (LINES25)
vline = line - m_y_begin - YPOS;
@@ -745,8 +731,15 @@ void mos7360_device::drawlines(int first, int last)
for (i = ybegin; i <= yend; i++)
{
- memset16(&m_bitmap.pix16(yoff + i), FRAMECOLOR, xbegin);
- memset16(&m_bitmap.pix16(yoff + i, xend), FRAMECOLOR, m_bitmap.width() - xend);
+ for (int x = 0; x < xbegin; x++)
+ {
+ m_bitmap.pix32(yoff + i, x) = PALETTE[FRAMECOLOR];
+ }
+
+ for (int x = xend; x < m_bitmap.width(); x++)
+ {
+ m_bitmap.pix32(yoff + i, x) = PALETTE[FRAMECOLOR];
+ }
}
}
@@ -757,7 +750,10 @@ void mos7360_device::drawlines(int first, int last)
for (; line < end; line++)
{
- memset16(&m_bitmap.pix16(line), FRAMECOLOR, m_bitmap.width());
+ for (int x = 0; x < m_bitmap.width(); x++)
+ {
+ m_bitmap.pix32(line, x) = PALETTE[FRAMECOLOR];
+ }
}
}
@@ -1138,7 +1134,7 @@ WRITE8_MEMBER( mos7360_device::write )
// update_screen - update screen
//-------------------------------------------------
-UINT32 mos7360_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 mos7360_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
diff --git a/src/mess/audio/mos7360.h b/src/mess/audio/mos7360.h
index b97e0f708a6..810d59b0550 100644
--- a/src/mess/audio/mos7360.h
+++ b/src/mess/audio/mos7360.h
@@ -50,7 +50,6 @@
MCFG_SCREEN_SIZE(336, 216) \
MCFG_SCREEN_VISIBLE_AREA(0, 336 - 1, 0, 216 - 1) \
MCFG_SCREEN_UPDATE_DEVICE(_tag, mos7360_device, screen_update) \
- MCFG_PALETTE_LENGTH(128) \
MCFG_DEVICE_ADD(_tag, MOS7360, _clock) \
MCFG_DEVICE_CONFIG(_config) \
MCFG_DEVICE_ADDRESS_MAP(AS_0, _videoram_map)
@@ -125,7 +124,7 @@ public:
UINT8 bus_r();
- UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
// horrible crap code
WRITE_LINE_MEMBER( rom_switch_w );
@@ -161,7 +160,6 @@ protected:
inline UINT8 read_ram(offs_t offset);
inline UINT8 read_rom(offs_t offset);
- void initialize_palette();
void draw_character(int ybegin, int yend, int ch, int yoff, int xoff, UINT16 *color);
void draw_character_multi(int ybegin, int yend, int ch, int yoff, int xoff);
void draw_bitmap(int ybegin, int yend, int ch, int yoff, int xoff);
@@ -182,7 +180,7 @@ protected:
UINT8 m_reg[0x20];
UINT8 m_last_data;
- bitmap_ind16 m_bitmap;
+ bitmap_rgb32 m_bitmap;
int m_rom;