mirror of
https://github.com/holub/mame
synced 2025-07-05 09:57:47 +03:00
(MESS) g7400: Let's start displaying some things. (nw)
This commit is contained in:
parent
ee3329220a
commit
67c211dd92
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -7615,6 +7615,7 @@ src/mess/video/dai.c svneol=native#text/plain
|
||||
src/mess/video/dgn_beta.c svneol=native#text/plain
|
||||
src/mess/video/dl1416.c svneol=native#text/plain
|
||||
src/mess/video/dl1416.h svneol=native#text/plain
|
||||
src/mess/video/ef9341_chargen.h svneol=native#text/plain
|
||||
src/mess/video/ef9345.c svneol=native#text/plain
|
||||
src/mess/video/ef9345.h svneol=native#text/plain
|
||||
src/mess/video/electron.c svneol=native#text/plain
|
||||
|
@ -202,7 +202,7 @@ static MACHINE_CONFIG_START( odyssey2, odyssey2_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
|
||||
|
||||
MCFG_GFXDECODE( odyssey2 )
|
||||
MCFG_PALETTE_LENGTH(24)
|
||||
MCFG_PALETTE_LENGTH(32)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -231,7 +231,7 @@ static MACHINE_CONFIG_START( videopac, odyssey2_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
|
||||
|
||||
MCFG_GFXDECODE( odyssey2 )
|
||||
MCFG_PALETTE_LENGTH(24)
|
||||
MCFG_PALETTE_LENGTH(32)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( g7400, odyssey2_state )
|
||||
MCFG_VIDEO_START_OVERRIDE(odyssey2_state,g7400)
|
||||
|
||||
MCFG_GFXDECODE( odyssey2 )
|
||||
MCFG_PALETTE_LENGTH(24)
|
||||
MCFG_PALETTE_LENGTH(32)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
@ -136,13 +136,14 @@ protected:
|
||||
UINT8 m_ef934x_ext_char_ram[1024];
|
||||
bool m_g7400;
|
||||
|
||||
inline UINT16 ef9340_get_c_addr();
|
||||
inline UINT16 ef9340_get_c_addr(UINT8 x, UINT8 y);
|
||||
inline UINT16 ef9340_get_c_addr() { return ef9340_get_c_addr( m_ef9340.X, m_ef9340.Y ); };
|
||||
inline void ef9340_inc_c();
|
||||
// Calculate the external chargen address for a character and slice
|
||||
inline UINT16 external_chargen_address(UINT8 b, UINT8 slice);
|
||||
|
||||
void i824x_scanline(int vpos);
|
||||
void er9340_scanline(int vpos);
|
||||
void ef9340_scanline(int vpos);
|
||||
|
||||
/* timers */
|
||||
static const device_timer_id TIMER_LINE = 0;
|
||||
|
268
src/mess/video/ef9341_chargen.h
Normal file
268
src/mess/video/ef9341_chargen.h
Normal file
@ -0,0 +1,268 @@
|
||||
static const UINT8 ef9341_char_set[2][128][10] = {
|
||||
// Alphanumeric character set (128 characters)
|
||||
{
|
||||
{ 0x00,0x38,0x44,0x40,0x20,0x10,0x00,0x10,0x00,0x00 },
|
||||
{ 0x00,0x10,0x28,0x00,0x38,0x44,0x7c,0x44,0x00,0x00 },
|
||||
{ 0x00,0x08,0x10,0x3c,0x20,0x30,0x20,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x08,0x14,0x10,0x38,0x10,0x24,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x10,0x38,0x50,0x38,0x14,0x54,0x38,0x10,0x00 },
|
||||
{ 0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x10,0x20 },
|
||||
{ 0x00,0x28,0x28,0x7c,0x28,0x7c,0x28,0x28,0x00,0x00 },
|
||||
{ 0x00,0x20,0x18,0x00,0x38,0x44,0x7c,0x44,0x00,0x00 },
|
||||
{ 0x00,0x20,0x18,0x00,0x44,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x10,0x08,0x3c,0x20,0x30,0x20,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x3c,0x50,0x50,0x58,0x50,0x50,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x08,0x14,0x3c,0x20,0x30,0x20,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x00,0x10,0x20,0x7f,0x20,0x10,0x00,0x00,0x00 },
|
||||
{ 0x00,0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10,0x10 },
|
||||
{ 0x00,0x00,0x08,0x04,0xfe,0x04,0x08,0x00,0x00,0x00 },
|
||||
{ 0x10,0x10,0x10,0x10,0x10,0x10,0x54,0x38,0x10,0x00 },
|
||||
{ 0x00,0x18,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x7c,0x00,0x00 },
|
||||
{ 0x00,0x08,0x10,0x38,0x44,0x7c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x28,0x00,0x38,0x44,0x7c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x28,0x00,0x30,0x10,0x10,0x10,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x38,0x40,0x40,0x40,0x38,0x10,0x20 },
|
||||
{ 0x00,0x10,0x28,0x00,0x44,0x44,0x4c,0x34,0x00,0x00 },
|
||||
{ 0x00,0x20,0x10,0x34,0x4c,0x44,0x4c,0x34,0x00,0x00 },
|
||||
{ 0x00,0x00,0x10,0x00,0x7c,0x00,0x10,0x00,0x00,0x00 },
|
||||
{ 0x00,0x20,0x10,0x38,0x44,0x7c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x3c,0x52,0x5e,0x50,0x3e,0x00,0x00 },
|
||||
{ 0x00,0x10,0x28,0x38,0x44,0x7c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x40,0xc0,0x40,0x44,0x4c,0x14,0x3e,0x04,0x00 },
|
||||
{ 0x00,0x40,0xc0,0x40,0x4c,0x52,0x04,0x08,0x1e,0x00 },
|
||||
{ 0x00,0xe0,0x20,0x40,0x24,0xcc,0x14,0x3e,0x04,0x00 },
|
||||
{ 0x00,0x10,0x28,0x00,0x38,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00 },
|
||||
{ 0x00,0x28,0x28,0x28,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x28,0x00,0x3c,0x20,0x30,0x20,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x10,0x28,0x34,0x4c,0x44,0x4c,0x34,0x00,0x00 },
|
||||
{ 0x00,0x60,0x64,0x08,0x10,0x20,0x4c,0x0c,0x00,0x00 },
|
||||
{ 0x00,0x20,0x50,0x50,0x20,0x54,0x48,0x34,0x00,0x00 },
|
||||
{ 0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x08,0x10,0x20,0x20,0x20,0x10,0x08,0x00,0x00 },
|
||||
{ 0x00,0x20,0x10,0x08,0x08,0x08,0x10,0x20,0x00,0x00 },
|
||||
{ 0x00,0x10,0x54,0x38,0x10,0x38,0x54,0x10,0x00,0x00 },
|
||||
{ 0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x40,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00 },
|
||||
{ 0x01,0x02,0x02,0x04,0x08,0x10,0x20,0x20,0x40,0x80 },
|
||||
{ 0x00,0x10,0x28,0x44,0x44,0x44,0x28,0x10,0x00,0x00 },
|
||||
{ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x04,0x18,0x20,0x40,0x7c,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x04,0x08,0x18,0x04,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x08,0x18,0x28,0x48,0x7c,0x08,0x08,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x40,0x78,0x04,0x04,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x18,0x20,0x40,0x78,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x04,0x08,0x10,0x20,0x20,0x20,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x44,0x3c,0x04,0x04,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x20,0x40,0x00 },
|
||||
{ 0x00,0x04,0x08,0x10,0x20,0x10,0x08,0x04,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x7c,0x00,0x7c,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x04,0x08,0x10,0x00,0x10,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x5c,0x54,0x5c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x44,0x44,0x7c,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x78,0x44,0x44,0x78,0x44,0x44,0x78,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x40,0x40,0x70,0x40,0x40,0x7c,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x40,0x40,0x70,0x40,0x40,0x40,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x40,0x40,0x4c,0x44,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x44,0x7c,0x44,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00 },
|
||||
{ 0x00,0x1c,0x08,0x08,0x08,0x08,0x48,0x30,0x00,0x00 },
|
||||
{ 0x00,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00 },
|
||||
{ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7c,0x00,0x00 },
|
||||
{ 0x00,0x44,0x6c,0x54,0x44,0x44,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x64,0x54,0x4c,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x78,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00 },
|
||||
{ 0x00,0x78,0x44,0x44,0x78,0x50,0x48,0x44,0x00,0x00 },
|
||||
{ 0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x44,0x54,0x54,0x54,0x28,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00 },
|
||||
{ 0x00,0x7c,0x04,0x08,0x10,0x20,0x40,0x7c,0x00,0x00 },
|
||||
{ 0x00,0x1c,0x10,0x10,0x10,0x10,0x10,0x1c,0x00,0x00 },
|
||||
{ 0x80,0x40,0x40,0x20,0x10,0x08,0x04,0x04,0x02,0x01 },
|
||||
{ 0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x38,0x00,0x00 },
|
||||
{ 0x00,0x10,0x28,0x00,0x30,0x10,0x10,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff },
|
||||
{ 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x34,0x4c,0x44,0x4c,0x34,0x00,0x00 },
|
||||
{ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x38,0x40,0x40,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x04,0x04,0x3c,0x44,0x44,0x44,0x3c,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x38,0x44,0x7c,0x40,0x38,0x00,0x00 },
|
||||
{ 0x00,0x18,0x24,0x20,0x70,0x20,0x20,0x20,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x3c,0x44,0x44,0x3c,0x04,0x24,0x18 },
|
||||
{ 0x00,0x40,0x40,0x58,0x64,0x44,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x38,0x00,0x00 },
|
||||
{ 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x48,0x30 },
|
||||
{ 0x00,0x20,0x20,0x24,0x28,0x30,0x28,0x24,0x00,0x00 },
|
||||
{ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x68,0x54,0x54,0x54,0x54,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40 },
|
||||
{ 0x00,0x00,0x00,0x3c,0x44,0x44,0x44,0x3c,0x04,0x04 },
|
||||
{ 0x00,0x00,0x00,0x58,0x64,0x40,0x40,0x40,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x38,0x40,0x38,0x04,0x78,0x00,0x00 },
|
||||
{ 0x00,0x20,0x20,0x38,0x20,0x20,0x20,0x18,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x44,0x44,0x44,0x4c,0x34,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x44,0x44,0x54,0x54,0x28,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x44,0x44,0x4c,0x34,0x04,0x44,0x38 },
|
||||
{ 0x00,0x00,0x00,0x7c,0x08,0x10,0x20,0x7c,0x00,0x00 },
|
||||
{ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80 },
|
||||
{ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 },
|
||||
{ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 },
|
||||
{ 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }
|
||||
},
|
||||
|
||||
{
|
||||
// Separated semi-graphic character set (64 characters)
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00 },
|
||||
{ 0x70,0x70,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00 },
|
||||
{ 0x07,0x07,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00 },
|
||||
{ 0x77,0x77,0x00,0x70,0x70,0x70,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00 },
|
||||
{ 0x70,0x70,0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00 },
|
||||
{ 0x07,0x07,0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00 },
|
||||
{ 0x77,0x77,0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00 },
|
||||
{ 0x70,0x70,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00 },
|
||||
{ 0x07,0x07,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00 },
|
||||
{ 0x77,0x77,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x70,0x00 },
|
||||
{ 0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x70,0x00 },
|
||||
{ 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x70,0x70,0x00 },
|
||||
{ 0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x70,0x70,0x00 },
|
||||
{ 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x70,0x70,0x00 },
|
||||
{ 0x70,0x70,0x00,0x70,0x70,0x70,0x00,0x70,0x70,0x00 },
|
||||
{ 0x07,0x07,0x00,0x70,0x70,0x70,0x00,0x70,0x70,0x00 },
|
||||
{ 0x77,0x77,0x00,0x70,0x70,0x70,0x00,0x70,0x70,0x00 },
|
||||
{ 0x00,0x00,0x00,0x07,0x07,0x07,0x00,0x70,0x70,0x00 },
|
||||
{ 0x70,0x70,0x00,0x07,0x07,0x07,0x00,0x70,0x70,0x00 },
|
||||
{ 0x07,0x07,0x00,0x07,0x07,0x07,0x00,0x70,0x70,0x00 },
|
||||
{ 0x77,0x77,0x00,0x07,0x07,0x07,0x00,0x70,0x70,0x00 },
|
||||
{ 0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x70,0x70,0x00 },
|
||||
{ 0x70,0x70,0x00,0x77,0x77,0x77,0x00,0x70,0x70,0x00 },
|
||||
{ 0x07,0x07,0x00,0x77,0x77,0x77,0x00,0x70,0x70,0x00 },
|
||||
{ 0x77,0x77,0x00,0x77,0x77,0x77,0x00,0x70,0x70,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x00 },
|
||||
{ 0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x00 },
|
||||
{ 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x00 },
|
||||
{ 0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x00 },
|
||||
{ 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x07,0x07,0x00 },
|
||||
{ 0x70,0x70,0x00,0x70,0x70,0x70,0x00,0x07,0x07,0x00 },
|
||||
{ 0x07,0x07,0x00,0x70,0x70,0x70,0x00,0x07,0x07,0x00 },
|
||||
{ 0x77,0x77,0x00,0x70,0x70,0x70,0x00,0x07,0x07,0x00 },
|
||||
{ 0x00,0x00,0x00,0x07,0x07,0x07,0x00,0x07,0x07,0x00 },
|
||||
{ 0x70,0x70,0x00,0x07,0x07,0x07,0x00,0x07,0x07,0x00 },
|
||||
{ 0x07,0x07,0x00,0x07,0x07,0x07,0x00,0x07,0x07,0x00 },
|
||||
{ 0x77,0x77,0x00,0x07,0x07,0x07,0x00,0x07,0x07,0x00 },
|
||||
{ 0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x07,0x07,0x00 },
|
||||
{ 0x70,0x70,0x00,0x77,0x77,0x77,0x00,0x07,0x07,0x00 },
|
||||
{ 0x07,0x07,0x00,0x77,0x77,0x77,0x00,0x07,0x07,0x00 },
|
||||
{ 0x77,0x77,0x00,0x77,0x77,0x77,0x00,0x07,0x07,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00 },
|
||||
{ 0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00 },
|
||||
{ 0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00 },
|
||||
{ 0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00 },
|
||||
{ 0x00,0x00,0x00,0x70,0x70,0x70,0x00,0x77,0x77,0x00 },
|
||||
{ 0x70,0x70,0x00,0x70,0x70,0x70,0x00,0x77,0x77,0x00 },
|
||||
{ 0x07,0x07,0x00,0x70,0x70,0x70,0x00,0x77,0x77,0x00 },
|
||||
{ 0x77,0x77,0x00,0x70,0x70,0x70,0x00,0x77,0x77,0x00 },
|
||||
{ 0x00,0x00,0x00,0x07,0x07,0x07,0x00,0x77,0x77,0x00 },
|
||||
{ 0x70,0x70,0x00,0x07,0x07,0x07,0x00,0x77,0x77,0x00 },
|
||||
{ 0x07,0x07,0x00,0x07,0x07,0x07,0x00,0x77,0x77,0x00 },
|
||||
{ 0x77,0x77,0x00,0x07,0x07,0x07,0x00,0x77,0x77,0x00 },
|
||||
{ 0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x77,0x77,0x00 },
|
||||
{ 0x70,0x70,0x00,0x77,0x77,0x77,0x00,0x77,0x77,0x00 },
|
||||
{ 0x07,0x07,0x00,0x77,0x77,0x77,0x00,0x77,0x77,0x00 },
|
||||
{ 0x77,0x77,0x00,0x77,0x77,0x77,0x00,0x77,0x77,0x00 },
|
||||
|
||||
// Mosaic semi-graphic character set (64 characters)
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00 },
|
||||
{ 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00 },
|
||||
{ 0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00 },
|
||||
{ 0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00 },
|
||||
{ 0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00 },
|
||||
{ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00 },
|
||||
{ 0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00 },
|
||||
{ 0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0x00,0x00,0x00 },
|
||||
{ 0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00 },
|
||||
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0 },
|
||||
{ 0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0 },
|
||||
{ 0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0 },
|
||||
{ 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xf0,0xf0,0xf0 },
|
||||
{ 0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0 },
|
||||
{ 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0 },
|
||||
{ 0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0 },
|
||||
{ 0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0 },
|
||||
{ 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0 },
|
||||
{ 0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0 },
|
||||
{ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0 },
|
||||
{ 0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0xf0,0xf0,0xf0 },
|
||||
{ 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0 },
|
||||
{ 0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0 },
|
||||
{ 0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0 },
|
||||
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0 },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f },
|
||||
{ 0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f },
|
||||
{ 0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f },
|
||||
{ 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0f },
|
||||
{ 0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f },
|
||||
{ 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f },
|
||||
{ 0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f },
|
||||
{ 0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f },
|
||||
{ 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f },
|
||||
{ 0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f },
|
||||
{ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f },
|
||||
{ 0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f },
|
||||
{ 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f },
|
||||
{ 0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f },
|
||||
{ 0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f },
|
||||
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x0f,0x0f },
|
||||
{ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff },
|
||||
{ 0xf0,0xf0,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xff },
|
||||
{ 0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0xff,0xff,0xff },
|
||||
{ 0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff },
|
||||
{ 0x00,0x00,0x00,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff },
|
||||
{ 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff },
|
||||
{ 0x0f,0x0f,0x0f,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff },
|
||||
{ 0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xff,0xff,0xff },
|
||||
{ 0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff },
|
||||
{ 0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff },
|
||||
{ 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff },
|
||||
{ 0xff,0xff,0xff,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff },
|
||||
{ 0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
|
||||
{ 0xf0,0xf0,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
|
||||
{ 0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff },
|
||||
{ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }
|
||||
}
|
||||
};
|
||||
|
@ -12,6 +12,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/odyssey2.h"
|
||||
#include "video/ef9341_chargen.h"
|
||||
|
||||
|
||||
#define COLLISION_SPRITE_0 0x01
|
||||
@ -60,7 +61,17 @@ const UINT8 odyssey2_colors[] =
|
||||
0x50,0xAE,0xFF, /* Blue */
|
||||
0xa9,0x80,0xff, /* Violet */
|
||||
0x82,0xfb,0xdb, /* Lt Grey */
|
||||
0xff,0xff,0xff /* White */
|
||||
0xff,0xff,0xff, /* White */
|
||||
|
||||
/* EF9340/EF9341 colors */
|
||||
0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xFF,
|
||||
0x00, 0xFF, 0x00,
|
||||
0x00, 0xFF, 0xFF,
|
||||
0xFF, 0x00, 0x00,
|
||||
0xFF, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0x00,
|
||||
0xFF, 0xFF, 0xFF
|
||||
};
|
||||
|
||||
static const UINT8 o2_shape[0x40][8]={
|
||||
@ -134,7 +145,7 @@ void odyssey2_state::palette_init()
|
||||
{
|
||||
int i;
|
||||
|
||||
for ( i = 0; i < 24; i++ )
|
||||
for ( i = 0; i < 32; i++ )
|
||||
{
|
||||
palette_set_color_rgb( machine(), i, odyssey2_colors[i*3], odyssey2_colors[i*3+1], odyssey2_colors[i*3+2] );
|
||||
}
|
||||
@ -554,6 +565,10 @@ void odyssey2_state::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
case TIMER_LINE:
|
||||
// handle i824x line timer
|
||||
i824x_scanline(vpos);
|
||||
if ( m_g7400 )
|
||||
{
|
||||
ef9340_scanline(vpos);
|
||||
}
|
||||
break;
|
||||
|
||||
case TIMER_HBLANK:
|
||||
@ -708,17 +723,17 @@ STREAM_UPDATE( odyssey2_sh_update )
|
||||
Thomson EF9340/EF9341 extra chips in the g7400
|
||||
*/
|
||||
|
||||
UINT16 odyssey2_state::ef9340_get_c_addr()
|
||||
UINT16 odyssey2_state::ef9340_get_c_addr(UINT8 x, UINT8 y)
|
||||
{
|
||||
if ( ( m_ef9340.Y & 0x0C ) == 0x0C )
|
||||
if ( ( y & 0x0c ) == 0x0c )
|
||||
{
|
||||
return 0x318 | ( ( m_ef9340.X & 0x38 ) << 2 ) | ( m_ef9340.X & 0x07 );
|
||||
return 0x318 | ( ( x & 0x38 ) << 2 ) | ( x & 0x07 );
|
||||
}
|
||||
if ( m_ef9340.X & 0x20 )
|
||||
if ( x & 0x20 )
|
||||
{
|
||||
return 0x300 | ( ( m_ef9340.Y & 0x07 ) << 5 ) | ( m_ef9340.Y & 0x18 ) | ( m_ef9340.X & 0x07 );
|
||||
return 0x380 | ( ( y & 0x07 ) << 5 ) | ( y & 0x18 ) | ( x & 0x07 );
|
||||
}
|
||||
return ( m_ef9340.Y << 5 ) | m_ef9340.X;
|
||||
return y << 5 | x;
|
||||
}
|
||||
|
||||
|
||||
@ -849,6 +864,7 @@ void odyssey2_state::ef9341_w( UINT8 command, UINT8 b, UINT8 data )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UINT8 odyssey2_state::ef9341_r( UINT8 command, UINT8 b )
|
||||
{
|
||||
UINT8 data = 0xFF;
|
||||
@ -880,7 +896,7 @@ UINT8 odyssey2_state::ef9341_r( UINT8 command, UINT8 b )
|
||||
}
|
||||
|
||||
|
||||
void odyssey2_state::er9340_scanline(int vpos)
|
||||
void odyssey2_state::ef9340_scanline(int vpos)
|
||||
{
|
||||
if ( vpos < m_start_vpos )
|
||||
{
|
||||
@ -889,6 +905,55 @@ void odyssey2_state::er9340_scanline(int vpos)
|
||||
|
||||
if ( vpos < m_start_vblank )
|
||||
{
|
||||
int y = vpos - m_start_vpos;
|
||||
int y_row, slice;
|
||||
|
||||
if ( y < 10 )
|
||||
{
|
||||
// Displaying service row
|
||||
y_row = 31;
|
||||
slice = y;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Displaying regular row
|
||||
y_row = (y - 10) / 10;
|
||||
slice = (y - 10) % 10;
|
||||
}
|
||||
for ( int x = 0; x < 40; x++ )
|
||||
{
|
||||
UINT16 addr = ef9340_get_c_addr( x, y_row );
|
||||
UINT8 a = m_ef934x_ram_a[addr];
|
||||
UINT8 b = m_ef934x_ram_b[addr];
|
||||
UINT8 fg = 24;
|
||||
UINT8 bg = 24;
|
||||
UINT8 char_data = 0x00;
|
||||
|
||||
if ( a & 0x80 )
|
||||
{
|
||||
// Graphics
|
||||
}
|
||||
else
|
||||
{
|
||||
// Alphannumeric
|
||||
if ( b & 0x80 )
|
||||
{
|
||||
// Special (DEL or Extension)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Normal
|
||||
char_data = ef9341_char_set[0][b & 0x7f][slice];
|
||||
fg = 24 + ( a & 0x07 );
|
||||
}
|
||||
}
|
||||
|
||||
for ( int i = 0; i < 8; i++ )
|
||||
{
|
||||
m_tmp_bitmap.pix16(vpos, I824X_START_ACTIVE_SCAN*2 + x*8 + i ) = (char_data & 0x80) ? fg : bg;
|
||||
char_data <<= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user