src/mess/drivers/gba.c
| r9840 | r9841 | |
| 2301 | 2301 | UINT8 *ROM = memory_region(image.device().machine, "cartridge"); |
| 2302 | 2302 | int i; |
| 2303 | 2303 | UINT32 cart_size; |
| 2304 | UINT8 game_code[4] = { 0 }; |
| 2304 | 2305 | gba_state *state = image.device().machine->driver_data<gba_state>(); |
| 2305 | 2306 | |
| 2306 | 2307 | state->nvsize = 0; |
| r9840 | r9841 | |
| 2318 | 2319 | memcpy(ROM, image.get_software_region("rom"), cart_size); |
| 2319 | 2320 | } |
| 2320 | 2321 | |
| 2322 | if (cart_size >= 0xAC + 4) |
| 2323 | { |
| 2324 | memcpy(game_code, ROM + 0xAC, 4); |
| 2325 | } |
| 2326 | |
| 2321 | 2327 | for (i = 0; i < cart_size; i++) |
| 2322 | 2328 | { |
| 2323 | 2329 | if (!memcmp(&ROM[i], "EEPROM_", 7)) |
| r9840 | r9841 | |
| 2357 | 2363 | memory_install_write32_handler(cpu_get_address_space(image.device().machine->device("maincpu"), ADDRESS_SPACE_PROGRAM), 0xe000000, 0xe01ffff, 0, 0, flash_w); |
| 2358 | 2364 | break; |
| 2359 | 2365 | } |
| 2360 | | else if (!memcmp(&ROM[i], "FLASH", 5)) |
| 2366 | else if ((!memcmp(&ROM[i], "FLASH", 5)) && (memcmp(game_code, "BYHE", 4))) // "Backyard Hockey" false positive |
| 2361 | 2367 | { |
| 2362 | 2368 | state->nvptr = NULL; |
| 2363 | 2369 | state->nvsize = 0; |