trunk/src/mame/drivers/bowltry.c
| r29207 | r29208 | |
| 5 | 5 | (c)200? Atlus |
| 6 | 6 | |
| 7 | 7 | TODO: |
| 8 | | - needs H83008 core features kicked in to proceed. |
| 8 | - Tight loops at 0x60e090-0x60e093, control status from video chip? |
| 9 | - YGV631-B ... what's that? |
| 9 | 10 | |
| 10 | 11 | ATLUS PCB BT-208001 |
| 11 | 12 | ------------------------ |
| r29207 | r29208 | |
| 26 | 27 | |
| 27 | 28 | |
| 28 | 29 | #include "emu.h" |
| 29 | | #include "cpu/h8/h83002.h" |
| 30 | #include "cpu/h8/h83008.h" |
| 30 | 31 | |
| 32 | #define HACK_ENABLED 0 |
| 31 | 33 | |
| 32 | 34 | class bowltry_state : public driver_device |
| 33 | 35 | { |
| r29207 | r29208 | |
| 37 | 39 | m_maincpu(*this, "maincpu") |
| 38 | 40 | { } |
| 39 | 41 | |
| 40 | | UINT32 screen_update_bowltry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 42 | UINT32 screen_update_bowltry(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 43 | int m_test_x; |
| 44 | int m_test_y; |
| 45 | int m_start_offs; |
| 46 | #if HACK_ENABLED |
| 47 | DECLARE_READ16_MEMBER(hack_r); |
| 48 | DECLARE_WRITE16_MEMBER(hack_w); |
| 49 | UINT16 m_hack[2]; |
| 50 | #endif |
| 41 | 51 | |
| 42 | 52 | protected: |
| 43 | 53 | required_device<cpu_device> m_maincpu; |
| 44 | 54 | public: |
| 45 | 55 | }; |
| 46 | 56 | |
| 57 | #if HACK_ENABLED |
| 58 | READ16_MEMBER(bowltry_state::hack_r) |
| 59 | { |
| 60 | if(offset) |
| 61 | return m_hack[1] & ~0x20; |
| 47 | 62 | |
| 63 | m_hack[0]^=1; |
| 64 | return m_hack[0]; |
| 65 | } |
| 66 | |
| 67 | WRITE16_MEMBER(bowltry_state::hack_w) |
| 68 | { |
| 69 | COMBINE_DATA(&m_hack[offset]); |
| 70 | } |
| 71 | #endif |
| 72 | |
| 48 | 73 | static ADDRESS_MAP_START( bowltry_map, AS_PROGRAM, 16, bowltry_state ) |
| 74 | ADDRESS_MAP_UNMAP_HIGH |
| 49 | 75 | AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0) |
| 50 | | AM_RANGE( 0x080000, 0x08ffff ) AM_RAM |
| 76 | AM_RANGE( 0x080000, 0x083fff ) AM_RAM |
| 77 | #if HACK_ENABLED |
| 78 | AM_RANGE( 0x60e090, 0x60e093 ) AM_READWRITE(hack_r,hack_w) |
| 79 | #endif |
| 51 | 80 | AM_RANGE( 0x600000, 0x60ffff ) AM_RAM |
| 52 | | AM_RANGE( 0xfee000, 0xffffff ) AM_RAM // CPU i/o goes here? |
| 81 | |
| 53 | 82 | ADDRESS_MAP_END |
| 54 | 83 | |
| 55 | 84 | static INPUT_PORTS_START( bowltry ) |
| 56 | 85 | INPUT_PORTS_END |
| 57 | 86 | |
| 58 | | UINT32 bowltry_state::screen_update_bowltry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 87 | UINT32 bowltry_state::screen_update_bowltry(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 59 | 88 | { |
| 60 | 89 | return 0; |
| 61 | 90 | } |
| r29207 | r29208 | |
| 63 | 92 | |
| 64 | 93 | |
| 65 | 94 | static MACHINE_CONFIG_START( bowltry, bowltry_state ) |
| 66 | | MCFG_CPU_ADD("maincpu", H83002, 16000000 ) // H83008 (!) |
| 95 | MCFG_CPU_ADD("maincpu", H83008, 16000000 ) |
| 67 | 96 | MCFG_CPU_PROGRAM_MAP( bowltry_map ) |
| 68 | 97 | // MCFG_CPU_VBLANK_INT_DRIVER("screen", bowltry_state, irq0_line_hold) // uses vector $64, IMIAB according to the manual (timer/compare B, internal to the CPU) |
| 69 | 98 | |
| r29207 | r29208 | |
| 73 | 102 | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 74 | 103 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
| 75 | 104 | MCFG_SCREEN_UPDATE_DRIVER(bowltry_state, screen_update_bowltry) |
| 76 | | MCFG_SCREEN_PALETTE("palette") |
| 105 | //MCFG_SCREEN_PALETTE("palette") |
| 77 | 106 | |
| 78 | | MCFG_PALETTE_ADD("palette", 0x200) |
| 107 | //MCFG_PALETTE_ADD("palette", 65536) |
| 79 | 108 | |
| 80 | 109 | /* tt5665 sound */ |
| 81 | 110 | |
| r29207 | r29208 | |
| 85 | 114 | ROM_REGION( 0x080000, "maincpu", 0 ) |
| 86 | 115 | ROM_LOAD16_WORD_SWAP( "u30_v1.00.u30", 0x000000, 0x080000, CRC(2bd47419) SHA1(8fc975340e47ddeedf96e454a6c5372328f28b72) ) |
| 87 | 116 | |
| 88 | | ROM_REGION( 0x800000, "gfx", 0 ) |
| 117 | ROM_REGION( 0x800000, "gfx", 0 ) // ??? |
| 89 | 118 | ROM_LOAD16_BYTE( "u27_v1.00.u27", 0x000000, 0x400000, CRC(80f51c25) SHA1(53c21325e7796197c26ca0cf4f8e51bf1e0bdcd3) ) |
| 90 | 119 | ROM_LOAD16_BYTE( "u28_v1.00.u28", 0x000001, 0x400000, CRC(9cc8b577) SHA1(6ef5cbb83860f88c9c83d4410034c5b528b2138b) ) |
| 91 | 120 | |
| 92 | | ROM_REGION( 0x400000, "tt5665", 0 ) |
| 121 | ROM_REGION( 0x400000, "tt5665", 0 ) // sound |
| 93 | 122 | ROM_LOAD( "u24_v1.00.u24", 0x000000, 0x400000, CRC(4e082d58) SHA1(d2eb58bc3d8ade2ea556960013d580f0fb952090) ) |
| 94 | 123 | ROM_END |
| 95 | 124 | |