trunk/src/mess/drivers/gamecom.c
| r241946 | r241947 | |
| 6 | 6 | Wilbert Pol |
| 7 | 7 | |
| 8 | 8 | Todo: |
| 9 | | everything |
| 10 | | - Finish memory map, fill in details |
| 11 | | - Finish input ports |
| 12 | | - Finish palette code |
| 13 | | - Finish machine driver struct |
| 14 | | - Finish cartslot code |
| 15 | | - Etc, etc, etc. |
| 9 | - Fix cpu and system problems that prevent the games from working. |
| 16 | 10 | |
| 11 | Game Status: |
| 12 | - The DAC sound partially works, sound from ports 1,2,3 not done |
| 13 | - Inbuilt ROM and PDA functions all work |
| 14 | - When starting a cart, the graphic of the cart going into the slot is corrupt |
| 15 | - Due to an irritating message, the NVRAM is commented out in the machine config |
| 16 | - Cart games all have severe video issues such as flickering and nonsense gfx |
| 17 | - Lights Out works |
| 18 | - Centipede works with bad flickering |
| 19 | - Frogger works, but there are bugs on the 2nd row of cars (if you turn your |
| 20 | frog to the right it dies, and also one car goes in reverse), and not possible |
| 21 | to get the female frog. |
| 22 | - Wheel of Fortune 1&2, playable although the spinner is corrupt |
| 23 | - Jeopardy, playable with bad gfx |
| 24 | - Quiz Wiz works, but the final score doesn't show |
| 25 | - Tiger Web Link & Internet, they look ok, obviously aren't going to connect to anything |
| 26 | - Williams Arcade Classics, Robotron works, the rest are no use. |
| 27 | - The remaining carts are not functional to any useful degree. |
| 17 | 28 | |
| 18 | 29 | ***************************************************************************/ |
| 19 | 30 | |
| r241946 | r241947 | |
| 213 | 224 | PORT_BIT( 0x200, IP_ACTIVE_HIGH, IPT_OTHER) |
| 214 | 225 | INPUT_PORTS_END |
| 215 | 226 | |
| 216 | | static const unsigned char palette_gamecom[] = |
| 217 | | { |
| 218 | | 0xDF, 0xFF, 0x8F, /* White */ |
| 219 | | 0x8F, 0xCF, 0x8F, /* Gray 3 */ |
| 220 | | 0x6F, 0x8F, 0x4F, /* Gray 2 */ |
| 221 | | 0x0F, 0x4F, 0x2F, /* Gray 1 */ |
| 222 | | 0x00, 0x00, 0x00, /* Black */ |
| 223 | | }; |
| 224 | | |
| 225 | 227 | PALETTE_INIT_MEMBER(gamecom_state, gamecom) |
| 226 | 228 | { |
| 227 | | int index; |
| 228 | | for ( index = 0; index < 5; index++ ) |
| 229 | | { |
| 230 | | palette.set_pen_color(4-index, palette_gamecom[index*3+0], palette_gamecom[index*3+1], palette_gamecom[index*3+2] ); |
| 231 | | } |
| 229 | palette.set_pen_color(0, 0x00, 0x00, 0x00 ); // Black |
| 230 | palette.set_pen_color(1, 0x0F, 0x4F, 0x2F ); // Gray 1 |
| 231 | palette.set_pen_color(2, 0x6F, 0x8F, 0x4F ); // Gray 2 |
| 232 | palette.set_pen_color(3, 0x8F, 0xCF, 0x8F ); // Grey 3 |
| 233 | palette.set_pen_color(4, 0xDF, 0xFF, 0x8F ); // White |
| 232 | 234 | } |
| 233 | 235 | |
| 234 | 236 | UINT32 gamecom_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
trunk/src/mess/machine/gamecom.c
| r241946 | r241947 | |
| 8 | 8 | TIMER_CALLBACK_MEMBER(gamecom_state::gamecom_clock_timer_callback) |
| 9 | 9 | { |
| 10 | 10 | UINT8 * RAM = m_region_maincpu->base(); |
| 11 | | UINT8 val = ( ( RAM[SM8521_CLKT] & 0x3F ) + 1 ) & 0x3F; |
| 12 | | RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | val; |
| 11 | UINT8 val = RAM[SM8521_CLKT] + 1; |
| 12 | RAM[SM8521_CLKT] = ( RAM[SM8521_CLKT] & 0xC0 ) | (val & 0x3f); |
| 13 | 13 | m_maincpu->set_input_line(sm8500_cpu_device::CK_INT, ASSERT_LINE ); |
| 14 | 14 | } |
| 15 | 15 | |
| r241946 | r241947 | |
| 191 | 191 | |
| 192 | 192 | READ8_MEMBER( gamecom_state::gamecom_internal_r ) |
| 193 | 193 | { |
| 194 | | if(SM8521_LCV == offset + 0x20) |
| 195 | | popmessage("Read from vblank bit, TODO"); |
| 194 | // ToDo: Read from vblank bit |
| 195 | // if(SM8521_LCV == offset + 0x20) |
| 196 | // popmessage("Read from vblank bit, TODO"); |
| 196 | 197 | |
| 197 | 198 | return m_p_ram[offset + 0x20]; |
| 198 | 199 | } |
| r241946 | r241947 | |
| 473 | 474 | m_dma.source_mask = 0x3FFF; |
| 474 | 475 | if (RAM[SM8521_DMBR] < 16) |
| 475 | 476 | m_dma.source_bank = m_region_kernel->base() + (RAM[SM8521_DMBR] << 14); |
| 476 | | else if (m_cart_ptr) |
| 477 | else |
| 478 | if (m_cart_ptr) |
| 477 | 479 | m_dma.source_bank = m_cart_ptr + (RAM[SM8521_DMBR] << 14); |
| 478 | 480 | |
| 479 | 481 | m_dma.dest_bank = &m_p_videoram[(RAM[SM8521_DMVP] & 0x02) ? 0x2000 : 0x0000]; |