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 ) |