src/mess/drivers/genesis.c
| r2244 | r2245 | |
| 62 | 62 | static int is_mjlovr = 0; |
| 63 | 63 | static int is_squir = 0; |
| 64 | 64 | static int squirrel_king_extra = 0; |
| 65 | static int is_smous = 0; |
| 65 | 66 | |
| 66 | 67 | static UINT8 *genesis_sram; |
| 67 | 68 | static int genesis_sram_start; |
| r2244 | r2245 | |
| 189 | 190 | |
| 190 | 191 | genesis_sram = NULL; |
| 191 | 192 | genesis_sram_start = genesis_sram_len = genesis_sram_active = genesis_sram_readonly = 0; |
| 192 | | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = is_squir = 0; |
| 193 | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = is_squir = is_smous = 0; |
| 193 | 194 | |
| 194 | 195 | rawROM = memory_region(REGION_CPU1); |
| 195 | 196 | ROM = rawROM /*+ 512 */; |
| r2244 | r2245 | |
| 317 | 318 | is_squir = 1; |
| 318 | 319 | } |
| 319 | 320 | } |
| 321 | if (length == 0x80000) |
| 322 | { |
| 323 | static unsigned char smoussig[] = { 0x4d, 0xf9, 0x00, 0x40, 0x00, 0x02}; |
| 320 | 324 | |
| 325 | if (!memcmp(&ROM[0x08c8+relocate],&smoussig[0],sizeof(smoussig))) |
| 326 | { |
| 327 | is_smous = 1; |
| 328 | } |
| 329 | } |
| 321 | 330 | } |
| 322 | 331 | |
| 323 | 332 | ROM = memory_region(REGION_CPU1); /* 68000 ROM region */ |
| r2244 | r2245 | |
| 507 | 516 | return 0xd300; |
| 508 | 517 | } |
| 509 | 518 | |
| 519 | // Smart Mouse handler from HazeMD |
| 520 | READ16_HANDLER( smous_prot_r ) |
| 521 | { |
| 522 | switch (offset) |
| 523 | { |
| 524 | case 0: return 0x5500; |
| 525 | case 1: return 0x0f00; |
| 526 | case 2: return 0xaa00; |
| 527 | case 3: return 0xf000; |
| 528 | } |
| 529 | |
| 530 | return -1; |
| 531 | } |
| 532 | |
| 510 | 533 | // KOF99 handler from HazeMD |
| 511 | 534 | READ16_HANDLER( kof99_0xA13002_r ) |
| 512 | 535 | { |
| r2244 | r2245 | |
| 617 | 640 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400007, 0, 0, squirrel_king_extra_r); |
| 618 | 641 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400007, 0, 0, squirrel_king_extra_w); |
| 619 | 642 | } |
| 620 | | |
| 643 | if (is_smous) |
| 644 | { |
| 645 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400007, 0, 0, smous_prot_r ); |
| 646 | } |
| 621 | 647 | /* install NOP handler for TMSS */ |
| 622 | 648 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA14000, 0xA14003, 0, 0, genesis_TMSS_bank_w); |
| 623 | 649 | |