trunk/src/mame/drivers/3x3puzzl.c
| r18426 | r18427 | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | todo: |
| 27 | | sound banking |
| 28 | 27 | scrolling? |
| 29 | 28 | verify dips |
| 30 | 29 | |
| r18426 | r18427 | |
| 73 | 72 | DECLARE_WRITE16_MEMBER(videoram3_w); |
| 74 | 73 | TILE_GET_INFO_MEMBER(get_tile3_info); |
| 75 | 74 | |
| 75 | int m_oki_bank; |
| 76 | |
| 76 | 77 | DECLARE_READ16_HANDLER(_880000_r); |
| 77 | 78 | DECLARE_WRITE16_HANDLER(gfx_ctrl_w); |
| 78 | 79 | |
| 79 | 80 | protected: |
| 80 | 81 | virtual void video_start(); |
| 82 | virtual void machine_start(); |
| 83 | virtual void machine_reset(); |
| 81 | 84 | }; |
| 82 | 85 | |
| 83 | 86 | WRITE16_MEMBER(_3x3puzzle_state::videoram1_w) |
| r18426 | r18427 | |
| 133 | 136 | // bit 5 (0x20) cleared when palette is written |
| 134 | 137 | // bit 4 (0x10) screen width - 1: 512 pixels, 0: 320 pixels |
| 135 | 138 | // bit 3 (0x08) is set when 0x400000/0x480000 is written |
| 139 | // bit 1 (0x02) OKI banking |
| 136 | 140 | |
| 137 | 141 | if ( BIT(data,4) ) |
| 138 | 142 | { |
| r18426 | r18427 | |
| 142 | 146 | { |
| 143 | 147 | machine().primary_screen->set_visible_area(0*8, 40*8-1, 0*8, 30*8-1); |
| 144 | 148 | } |
| 149 | |
| 150 | if ( BIT(data, 1) != m_oki_bank ) |
| 151 | { |
| 152 | m_oki_bank = BIT(data,1); |
| 153 | m_oki->set_bank_base(m_oki_bank * 0x40000); |
| 154 | } |
| 145 | 155 | } |
| 146 | 156 | |
| 147 | 157 | void _3x3puzzle_state::video_start() |
| r18426 | r18427 | |
| 286 | 296 | GFXDECODE_ENTRY( "gfx3", 0, tiles8x8_layout, 0, 3 ) |
| 287 | 297 | GFXDECODE_END |
| 288 | 298 | |
| 299 | void _3x3puzzle_state::machine_start() |
| 300 | { |
| 301 | save_item(NAME(m_oki_bank)); |
| 302 | } |
| 289 | 303 | |
| 304 | void _3x3puzzle_state::machine_reset() |
| 305 | { |
| 306 | m_oki_bank = 0; |
| 307 | } |
| 308 | |
| 309 | |
| 290 | 310 | static MACHINE_CONFIG_START( _3x3puzzle, _3x3puzzle_state ) |
| 291 | 311 | |
| 292 | 312 | /* basic machine hardware */ |
| r18426 | r18427 | |
| 374 | 394 | ROM_END |
| 375 | 395 | |
| 376 | 396 | |
| 377 | | GAME( 199?, 3x3puzzl, 0, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace", "3X3 Puzzle (Enterprise)", GAME_IMPERFECT_SOUND ) |
| 378 | | GAME( 199?, 3x3puzzla, 3x3puzzl, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace", "3X3 Puzzle (Normal)", GAME_IMPERFECT_SOUND ) |
| 397 | GAME( 199?, 3x3puzzl, 0, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace", "3X3 Puzzle (Enterprise)", 0 ) |
| 398 | GAME( 199?, 3x3puzzla, 3x3puzzl, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace", "3X3 Puzzle (Normal)", 0 ) |