trunk/src/mame/drivers/sangho.c
| r26350 | r26351 | |
| 37 | 37 | Sexy Boom's DSW setting verified via Z80 code by stephh |
| 38 | 38 | |
| 39 | 39 | TODO: |
| 40 | | - sexyboom hangs at snippet 0x2ca0-0x2ca9, patching 0x2ca7 branch makes it to be fully playable; |
| 41 | | - v9958 screen modes 10/11/12 aren't 100% perfect (wrong pixels in some places); |
| 40 | - pzlestar hangs at snippet 0x2ca0-0x2ca9, patching 0x2ca7 branch makes it to be fully playable (patched for now); |
| 41 | - pzlestar title screen uses sprites with screen 12, has wrong colors due of it; |
| 42 | - sexyboom presumably uses v9958 horizontal scrolling on title screen; |
| 43 | - sexyboom slows down dramatically, presumably bankswitch related; |
| 42 | 44 | |
| 43 | 45 | */ |
| 44 | 46 | |
| r26350 | r26351 | |
| 65 | 67 | DECLARE_WRITE8_MEMBER(pzlestar_mem_bank_w); |
| 66 | 68 | DECLARE_READ8_MEMBER(pzlestar_mem_bank_r); |
| 67 | 69 | DECLARE_WRITE8_MEMBER(sexyboom_bank_w); |
| 68 | | DECLARE_DRIVER_INIT(sangho); |
| 70 | DECLARE_DRIVER_INIT(pzlestar); |
| 71 | virtual void machine_start(); |
| 69 | 72 | DECLARE_MACHINE_RESET(pzlestar); |
| 70 | 73 | DECLARE_MACHINE_RESET(sexyboom); |
| 71 | 74 | TIMER_DEVICE_CALLBACK_MEMBER(sangho_interrupt); |
| r26350 | r26351 | |
| 78 | 81 | DECLARE_WRITE8_MEMBER(sec_slot_w); |
| 79 | 82 | }; |
| 80 | 83 | |
| 81 | | |
| 84 | /* |
| 85 | slot 0 selects RAM |
| 86 | slot 1 selects ? |
| 87 | slot 2 selects code ROMs |
| 88 | slot 3 selects data ROMs |
| 89 | */ |
| 82 | 90 | void sangho_state::pzlestar_map_banks() |
| 83 | 91 | { |
| 84 | 92 | int slot_select; |
| r26350 | r26351 | |
| 397 | 405 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) /* Dipswitch 1:1 Not shown in manual */ |
| 398 | 406 | INPUT_PORTS_END |
| 399 | 407 | |
| 408 | void sangho_state::machine_start() |
| 409 | { |
| 410 | m_ram = auto_alloc_array(machine(), UINT8, 0x20000); // TODO: define how much RAM these ones have (MSX2+ can potentially go up to 4MB) |
| 411 | } |
| 400 | 412 | |
| 401 | 413 | MACHINE_RESET_MEMBER(sangho_state,pzlestar) |
| 402 | 414 | { |
| r26350 | r26351 | |
| 534 | 546 | /* 15 empty */ |
| 535 | 547 | ROM_END |
| 536 | 548 | |
| 537 | | DRIVER_INIT_MEMBER(sangho_state,sangho) |
| 549 | DRIVER_INIT_MEMBER(sangho_state,pzlestar) |
| 538 | 550 | { |
| 539 | | m_ram = auto_alloc_array(machine(), UINT8, 0x20000); |
| 551 | UINT8 *ROM = memregion("user1")->base(); |
| 552 | |
| 553 | /* patch nasty looping check, related to sound? */ |
| 554 | ROM[0x12ca7] = 0x00; |
| 555 | ROM[0x12ca8] = 0x00; |
| 540 | 556 | } |
| 541 | 557 | |
| 542 | | GAME( 1991, pzlestar, 0, pzlestar, pzlestar, sangho_state, sangho, ROT270, "Sang Ho Soft", "Puzzle Star (Sang Ho Soft)", GAME_NOT_WORKING | GAME_IMPERFECT_COLORS ) |
| 543 | | GAME( 1992, sexyboom, 0, sexyboom, sexyboom, sangho_state, sangho, ROT270, "Sang Ho Soft", "Sexy Boom", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS ) |
| 558 | GAME( 1991, pzlestar, 0, pzlestar, pzlestar, sangho_state, pzlestar, ROT270, "Sang Ho Soft", "Puzzle Star (Sang Ho Soft)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) |
| 559 | GAME( 1992, sexyboom, 0, sexyboom, sexyboom, driver_device, 0, ROT270, "Sang Ho Soft", "Sexy Boom", GAME_IMPERFECT_GRAPHICS ) |