src/mess/drivers/genesis.c
| r2221 | r2222 | |
| 59 | 59 | static int is_radica = 0; |
| 60 | 60 | static int is_kof99 = 0; |
| 61 | 61 | static int is_soulb = 0; |
| 62 | static int is_mjlovr = 0; |
| 62 | 63 | |
| 63 | 64 | static UINT8 *genesis_sram; |
| 64 | 65 | static int genesis_sram_start; |
| r2221 | r2222 | |
| 185 | 186 | unsigned char *ROM; |
| 186 | 187 | |
| 187 | 188 | genesis_sram = NULL; |
| 188 | | genesis_sram_start = genesis_sram_len = genesis_sram_active = genesis_sram_readonly = is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = 0; |
| 189 | genesis_sram_start = genesis_sram_len = genesis_sram_active = genesis_sram_readonly = 0; |
| 190 | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = 0; |
| 189 | 191 | |
| 190 | 192 | rawROM = memory_region(REGION_CPU1); |
| 191 | 193 | ROM = rawROM /*+ 512 */; |
| r2221 | r2222 | |
| 293 | 295 | } |
| 294 | 296 | } |
| 295 | 297 | |
| 298 | // detect Mahjong Lover unlicensed game |
| 299 | if (length == 0x100000) |
| 300 | { |
| 301 | static unsigned char mjlovrsig[] = { 0x13, 0xf9, 0x00, 0x40, 0x00, 0x00}; // move.b ($400000).l,($FFFF0C).l (partial) |
| 302 | |
| 303 | if (!memcmp(&ROM[0x01b24+relocate],&mjlovrsig[0],sizeof(mjlovrsig))) |
| 304 | { |
| 305 | is_mjlovr = 1; |
| 306 | } |
| 307 | } |
| 308 | |
| 296 | 309 | } |
| 297 | 310 | |
| 298 | 311 | ROM = memory_region(REGION_CPU1); /* 68000 ROM region */ |
| r2221 | r2222 | |
| 467 | 480 | return 0xc900; |
| 468 | 481 | } |
| 469 | 482 | |
| 483 | // Mahjong Lover handler from HazeMD |
| 484 | READ16_HANDLER( mjlovr_prot_1_r ) |
| 485 | { |
| 486 | return 0x9000; |
| 487 | } |
| 488 | |
| 489 | READ16_HANDLER( mjlovr_prot_2_r ) |
| 490 | { |
| 491 | return 0xd300; |
| 492 | } |
| 493 | |
| 470 | 494 | // KOF99 handler from HazeMD |
| 471 | 495 | READ16_HANDLER( kof99_0xA13002_r ) |
| 472 | 496 | { |
| r2221 | r2222 | |
| 554 | 578 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400004, 0x400005, 0, 0, redclif_prot_r ); |
| 555 | 579 | } |
| 556 | 580 | |
| 581 | if (is_mjlovr) |
| 582 | { |
| 583 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400001, 0, 0, mjlovr_prot_1_r ); |
| 584 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x401000, 0x401001, 0, 0, mjlovr_prot_2_r ); |
| 585 | } |
| 557 | 586 | |
| 558 | 587 | /* install NOP handler for TMSS */ |
| 559 | 588 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA14000, 0xA14003, 0, 0, genesis_TMSS_bank_w); |