src/mess/drivers/genesis.c
| r2285 | r2286 | |
| 69 | 69 | static UINT16 lion2_prot1_data, lion2_prot2_data; |
| 70 | 70 | static int is_rx3 = 0; |
| 71 | 71 | static int is_bugsl = 0; |
| 72 | static int is_sbub = 0; |
| 72 | 73 | |
| 73 | 74 | static UINT8 *genesis_sram; |
| 74 | 75 | static int genesis_sram_start; |
| r2285 | r2286 | |
| 196 | 197 | |
| 197 | 198 | genesis_sram = NULL; |
| 198 | 199 | genesis_sram_start = genesis_sram_len = genesis_sram_active = genesis_sram_readonly = 0; |
| 199 | | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = is_squir = is_smous = is_elfwor = is_lionk2 = is_rx3 = is_bugsl = 0; |
| 200 | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = is_squir = is_smous = is_elfwor = is_lionk2 = is_rx3 = is_bugsl = is_sbub = 0; |
| 200 | 201 | |
| 201 | 202 | rawROM = memory_region(REGION_CPU1); |
| 202 | 203 | ROM = rawROM /*+ 512 */; |
| r2285 | r2286 | |
| 374 | 375 | is_rx3 = 1; |
| 375 | 376 | } |
| 376 | 377 | } |
| 378 | if (length == 0x100000) |
| 379 | { |
| 380 | static unsigned char sbubsig[] = { 0x0c, 0x39, 0x00, 0x55, 0x00, 0x40}; // cmpi.b #$55,($400000).l |
| 381 | if (!memcmp(&ROM[0x123e4+relocate],&sbubsig[0],sizeof(sbubsig))) |
| 382 | { |
| 383 | is_sbub = 1; |
| 384 | } |
| 385 | } |
| 377 | 386 | |
| 378 | 387 | } |
| 379 | 388 | |
| r2285 | r2286 | |
| 445 | 454 | /* we don't use the bios rom (its not needed and only provides security on early models) */ |
| 446 | 455 | |
| 447 | 456 | ROM_START(genesis) |
| 448 | | ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 457 | // ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 458 | ROM_REGION(0x0a00000, REGION_CPU1, ROMREGION_ERASEFF) |
| 449 | 459 | ROM_REGION( 0x10000, REGION_CPU2, ROMREGION_ERASEFF) |
| 450 | 460 | ROM_END |
| 451 | 461 | |
| 452 | 462 | ROM_START(gensvp) |
| 453 | | ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 463 | // ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 464 | ROM_REGION(0x0a00000, REGION_CPU1, ROMREGION_ERASEFF) |
| 454 | 465 | ROM_REGION( 0x10000, REGION_CPU2, ROMREGION_ERASEFF) |
| 455 | 466 | ROM_END |
| 456 | 467 | |
| 457 | 468 | ROM_START(megadriv) |
| 458 | | ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 469 | // ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 470 | ROM_REGION(0x0a00000, REGION_CPU1, ROMREGION_ERASEFF) |
| 459 | 471 | ROM_REGION( 0x10000, REGION_CPU2, ROMREGION_ERASEFF) |
| 460 | 472 | ROM_END |
| 461 | 473 | |
| 462 | 474 | ROM_START(megadrij) |
| 463 | | ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 475 | // ROM_REGION(0x1415000, REGION_CPU1, ROMREGION_ERASEFF) |
| 476 | ROM_REGION(0x0a00000, REGION_CPU1, ROMREGION_ERASEFF) |
| 464 | 477 | ROM_REGION( 0x10000, REGION_CPU2, ROMREGION_ERASEFF) |
| 465 | 478 | ROM_END |
| 466 | 479 | |
| r2285 | r2286 | |
| 585 | 598 | return -1; |
| 586 | 599 | } |
| 587 | 600 | |
| 601 | // Super Bubble Bobble MD handler from HazeMD |
| 602 | READ16_HANDLER( sbub_extra1_r ) |
| 603 | { |
| 604 | return 0x5500; |
| 605 | } |
| 606 | |
| 607 | READ16_HANDLER( sbub_extra2_r ) |
| 608 | { |
| 609 | return 0x0f00; |
| 610 | } |
| 611 | |
| 588 | 612 | // KOF99 handler from HazeMD |
| 589 | 613 | READ16_HANDLER( kof99_0xA13002_r ) |
| 590 | 614 | { |
| r2285 | r2286 | |
| 671 | 695 | return 0x28; |
| 672 | 696 | } |
| 673 | 697 | |
| 674 | | // Elf Wor handler from HazeMD (DFJustin says the title is 'Spirit Taoist') |
| 698 | // Elf Wor handler from HazeMD (DFJustin says the title is 'Linghuan Daoshi Super Magician') |
| 675 | 699 | READ16_HANDLER( elfwor_0x400000_r ) |
| 676 | 700 | { |
| 677 | 701 | return 0x5500; |
| r2285 | r2286 | |
| 787 | 811 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA13000, 0xA13001, 0, 0, bugl_extra_r); |
| 788 | 812 | } |
| 789 | 813 | |
| 814 | if (is_sbub) |
| 815 | { |
| 816 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400000, 0x400001, 0, 0, sbub_extra1_r); |
| 817 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0x400002, 0x400003, 0, 0, sbub_extra2_r); |
| 818 | } |
| 819 | |
| 790 | 820 | /* install NOP handler for TMSS */ |
| 791 | 821 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA14000, 0xA14003, 0, 0, genesis_TMSS_bank_w); |
| 792 | 822 | |