From 94eabd6ec79250ed74fb5e40126da8a1c9150cc1 Mon Sep 17 00:00:00 2001 From: Robert Date: Tue, 18 Nov 2014 19:56:15 +1100 Subject: (MESS) gamecom : notes --- src/mess/drivers/gamecom.c | 46 ++++++++++++++++++++++++---------------------- src/mess/machine/gamecom.c | 12 +++++++----- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/mess/drivers/gamecom.c b/src/mess/drivers/gamecom.c index 8778020fc35..30d19695b54 100644 --- a/src/mess/drivers/gamecom.c +++ b/src/mess/drivers/gamecom.c @@ -6,14 +6,25 @@ Driver file to handle emulation of the Tiger Game.com by Wilbert Pol Todo: - everything - - Finish memory map, fill in details - - Finish input ports - - Finish palette code - - Finish machine driver struct - - Finish cartslot code - - Etc, etc, etc. - +- Fix cpu and system problems that prevent the games from working. + +Game Status: +- The DAC sound partially works, sound from ports 1,2,3 not done +- Inbuilt ROM and PDA functions all work +- When starting a cart, the graphic of the cart going into the slot is corrupt +- Due to an irritating message, the NVRAM is commented out in the machine config +- Cart games all have severe video issues such as flickering and nonsense gfx +- Lights Out works +- Centipede works with bad flickering +- Frogger works, but there are bugs on the 2nd row of cars (if you turn your + frog to the right it dies, and also one car goes in reverse), and not possible + to get the female frog. +- Wheel of Fortune 1&2, playable although the spinner is corrupt +- Jeopardy, playable with bad gfx +- Quiz Wiz works, but the final score doesn't show +- Tiger Web Link & Internet, they look ok, obviously aren't going to connect to anything +- Williams Arcade Classics, Robotron works, the rest are no use. +- The remaining carts are not functional to any useful degree. ***************************************************************************/ @@ -213,22 +224,13 @@ static INPUT_PORTS_START( gamecom ) PORT_BIT( 0x200, IP_ACTIVE_HIGH, IPT_OTHER) INPUT_PORTS_END -static const unsigned char palette_gamecom[] = -{ - 0xDF, 0xFF, 0x8F, /* White */ - 0x8F, 0xCF, 0x8F, /* Gray 3 */ - 0x6F, 0x8F, 0x4F, /* Gray 2 */ - 0x0F, 0x4F, 0x2F, /* Gray 1 */ - 0x00, 0x00, 0x00, /* Black */ -}; - PALETTE_INIT_MEMBER(gamecom_state, gamecom) { - int index; - for ( index = 0; index < 5; index++ ) - { - palette.set_pen_color(4-index, palette_gamecom[index*3+0], palette_gamecom[index*3+1], palette_gamecom[index*3+2] ); - } + palette.set_pen_color(0, 0x00, 0x00, 0x00 ); // Black + palette.set_pen_color(1, 0x0F, 0x4F, 0x2F ); // Gray 1 + palette.set_pen_color(2, 0x6F, 0x8F, 0x4F ); // Gray 2 + palette.set_pen_color(3, 0x8F, 0xCF, 0x8F ); // Grey 3 + palette.set_pen_color(4, 0xDF, 0xFF, 0x8F ); // White } UINT32 gamecom_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mess/machine/gamecom.c b/src/mess/machine/gamecom.c index 730c334a204..39b346f7da0 100644 --- a/src/mess/machine/gamecom.c +++ b/src/mess/machine/gamecom.c @@ -8,8 +8,8 @@ static const int gamecom_timer_limit[8] = { 2, 1024, 2048, 4096, 8192, 16384, 32 TIMER_CALLBACK_MEMBER(gamecom_state::gamecom_clock_timer_callback) { UINT8 * RAM = m_region_maincpu->base(); - UINT8 val = ( ( RAM[SM8521_CLKT] & 0x3F ) + 1 ) & 0x3F; - RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | val; + UINT8 val = RAM[SM8521_CLKT] + 1; + RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | (val & 0x3f); m_maincpu->set_input_line(sm8500_cpu_device::CK_INT, ASSERT_LINE ); } @@ -191,8 +191,9 @@ READ8_MEMBER( gamecom_state::gamecom_pio_r ) READ8_MEMBER( gamecom_state::gamecom_internal_r ) { - if(SM8521_LCV == offset + 0x20) - popmessage("Read from vblank bit, TODO"); +// ToDo: Read from vblank bit +// if(SM8521_LCV == offset + 0x20) +// popmessage("Read from vblank bit, TODO"); return m_p_ram[offset + 0x20]; } @@ -473,7 +474,8 @@ WRITE8_MEMBER( gamecom_state::gamecom_handle_dma ) m_dma.source_mask = 0x3FFF; if (RAM[SM8521_DMBR] < 16) m_dma.source_bank = m_region_kernel->base() + (RAM[SM8521_DMBR] << 14); - else if (m_cart_ptr) + else + if (m_cart_ptr) m_dma.source_bank = m_cart_ptr + (RAM[SM8521_DMBR] << 14); m_dma.dest_bank = &m_p_videoram[(RAM[SM8521_DMVP] & 0x02) ? 0x2000 : 0x0000]; -- cgit v1.2.3