src/mess/drivers/genesis.c
| r2284 | r2285 | |
| 68 | 68 | static int is_lionk2 = 0; |
| 69 | 69 | static UINT16 lion2_prot1_data, lion2_prot2_data; |
| 70 | 70 | static int is_rx3 = 0; |
| 71 | static int is_bugsl = 0; |
| 71 | 72 | |
| 72 | 73 | static UINT8 *genesis_sram; |
| 73 | 74 | static int genesis_sram_start; |
| r2284 | r2285 | |
| 195 | 196 | |
| 196 | 197 | genesis_sram = NULL; |
| 197 | 198 | genesis_sram_start = genesis_sram_len = genesis_sram_active = genesis_sram_readonly = 0; |
| 198 | | is_ssf2 = is_redcliff = is_radica = is_kof99 = is_soulb = is_mjlovr = is_squir = is_smous = is_elfwor = is_lionk2 = is_rx3 = 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; |
| 199 | 200 | |
| 200 | 201 | rawROM = memory_region(REGION_CPU1); |
| 201 | 202 | ROM = rawROM /*+ 512 */; |
| r2284 | r2285 | |
| 351 | 352 | } |
| 352 | 353 | } |
| 353 | 354 | |
| 355 | if (length == 0x100000) |
| 356 | { |
| 357 | static unsigned char bugslsig[] = { 0x20, 0x12, 0x13, 0xc0, 0x00, 0xff}; |
| 358 | |
| 359 | if (!memcmp(&ROM[0xee0d0+relocate],&bugslsig[0],sizeof(bugslsig))) |
| 360 | { |
| 361 | is_bugsl = 1; |
| 362 | } |
| 363 | } |
| 364 | |
| 354 | 365 | if (length == 0x100000 && !strncmp((char *)&ROM[0x0172+relocate], "GAME : ELF WOR", 14)) |
| 355 | 366 | { |
| 356 | 367 | is_elfwor = 1; |
| r2284 | r2285 | |
| 653 | 664 | return 0xc; |
| 654 | 665 | } |
| 655 | 666 | |
| 667 | |
| 668 | // Bug's Life handler from HazeMD |
| 669 | READ16_HANDLER( bugl_extra_r ) |
| 670 | { |
| 671 | return 0x28; |
| 672 | } |
| 673 | |
| 656 | 674 | // Elf Wor handler from HazeMD (DFJustin says the title is 'Spirit Taoist') |
| 657 | 675 | READ16_HANDLER( elfwor_0x400000_r ) |
| 658 | 676 | { |
| r2284 | r2285 | |
| 764 | 782 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA13000, 0xA13001, 0, 0, rx3_extra_r); |
| 765 | 783 | } |
| 766 | 784 | |
| 785 | if (is_bugsl) |
| 786 | { |
| 787 | memory_install_read16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA13000, 0xA13001, 0, 0, bugl_extra_r); |
| 788 | } |
| 767 | 789 | |
| 768 | 790 | /* install NOP handler for TMSS */ |
| 769 | 791 | memory_install_write16_handler(0, ADDRESS_SPACE_PROGRAM, 0xA14000, 0xA14003, 0, 0, genesis_TMSS_bank_w); |