mirror of
https://github.com/holub/mame
synced 2025-06-23 21:06:38 +03:00
(MESS) gamecom : notes
This commit is contained in:
parent
b9a10780fa
commit
94eabd6ec7
@ -6,14 +6,25 @@ Driver file to handle emulation of the Tiger Game.com by
|
|||||||
Wilbert Pol
|
Wilbert Pol
|
||||||
|
|
||||||
Todo:
|
Todo:
|
||||||
everything
|
- Fix cpu and system problems that prevent the games from working.
|
||||||
- Finish memory map, fill in details
|
|
||||||
- Finish input ports
|
|
||||||
- Finish palette code
|
|
||||||
- Finish machine driver struct
|
|
||||||
- Finish cartslot code
|
|
||||||
- Etc, etc, etc.
|
|
||||||
|
|
||||||
|
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)
|
PORT_BIT( 0x200, IP_ACTIVE_HIGH, IPT_OTHER)
|
||||||
INPUT_PORTS_END
|
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)
|
PALETTE_INIT_MEMBER(gamecom_state, gamecom)
|
||||||
{
|
{
|
||||||
int index;
|
palette.set_pen_color(0, 0x00, 0x00, 0x00 ); // Black
|
||||||
for ( index = 0; index < 5; index++ )
|
palette.set_pen_color(1, 0x0F, 0x4F, 0x2F ); // Gray 1
|
||||||
{
|
palette.set_pen_color(2, 0x6F, 0x8F, 0x4F ); // Gray 2
|
||||||
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(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)
|
UINT32 gamecom_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
|
@ -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)
|
TIMER_CALLBACK_MEMBER(gamecom_state::gamecom_clock_timer_callback)
|
||||||
{
|
{
|
||||||
UINT8 * RAM = m_region_maincpu->base();
|
UINT8 * RAM = m_region_maincpu->base();
|
||||||
UINT8 val = ( ( RAM[SM8521_CLKT] & 0x3F ) + 1 ) & 0x3F;
|
UINT8 val = RAM[SM8521_CLKT] + 1;
|
||||||
RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | val;
|
RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | (val & 0x3f);
|
||||||
m_maincpu->set_input_line(sm8500_cpu_device::CK_INT, ASSERT_LINE );
|
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 )
|
READ8_MEMBER( gamecom_state::gamecom_internal_r )
|
||||||
{
|
{
|
||||||
if(SM8521_LCV == offset + 0x20)
|
// ToDo: Read from vblank bit
|
||||||
popmessage("Read from vblank bit, TODO");
|
// if(SM8521_LCV == offset + 0x20)
|
||||||
|
// popmessage("Read from vblank bit, TODO");
|
||||||
|
|
||||||
return m_p_ram[offset + 0x20];
|
return m_p_ram[offset + 0x20];
|
||||||
}
|
}
|
||||||
@ -473,7 +474,8 @@ WRITE8_MEMBER( gamecom_state::gamecom_handle_dma )
|
|||||||
m_dma.source_mask = 0x3FFF;
|
m_dma.source_mask = 0x3FFF;
|
||||||
if (RAM[SM8521_DMBR] < 16)
|
if (RAM[SM8521_DMBR] < 16)
|
||||||
m_dma.source_bank = m_region_kernel->base() + (RAM[SM8521_DMBR] << 14);
|
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.source_bank = m_cart_ptr + (RAM[SM8521_DMBR] << 14);
|
||||||
|
|
||||||
m_dma.dest_bank = &m_p_videoram[(RAM[SM8521_DMVP] & 0x02) ? 0x2000 : 0x0000];
|
m_dma.dest_bank = &m_p_videoram[(RAM[SM8521_DMVP] & 0x02) ? 0x2000 : 0x0000];
|
||||||
|
Loading…
Reference in New Issue
Block a user