diff --git a/cheats.cpp b/cheats.cpp index 6ce1fae..f48a5a7 100644 --- a/cheats.cpp +++ b/cheats.cpp @@ -128,6 +128,12 @@ void cheats_init(const char *rom_path, uint32_t romcrc) loaded = 0; cheat_zip[0] = 0; + // reset cheats + user_io_set_index(255); + user_io_set_download(1); + user_io_file_tx_write((const uint8_t*)&loaded, 2); + user_io_set_download(0); + if (!strcasestr(rom_path, ".zip")) { sprintf(cheat_zip, "%s/%s", getRootDir(), rom_path); @@ -140,7 +146,7 @@ void cheats_init(const char *rom_path, uint32_t romcrc) if (!mz_zip_reader_init_file(&_z, cheat_zip, 0)) { memset(&_z, 0, sizeof(_z)); - if (!pcecd_using_cd() || !find_in_same_dir(rom_path) || !mz_zip_reader_init_file(&_z, cheat_zip, 0)) + if (!(pcecd_using_cd() || is_megacd()) || !find_in_same_dir(rom_path) || !mz_zip_reader_init_file(&_z, cheat_zip, 0)) { memset(&_z, 0, sizeof(_z)); const char *rom_name = strrchr(rom_path, '/'); @@ -149,7 +155,7 @@ void cheats_init(const char *rom_path, uint32_t romcrc) sprintf(cheat_zip, "%s/cheats/%s%s%s", getRootDir(), CoreName, pcecd_using_cd() ? "CD" : "", rom_name); char *p = strrchr(cheat_zip, '.'); if (p) *p = 0; - if (pcecd_using_cd()) strcat(cheat_zip, " []"); + if (pcecd_using_cd() || is_megacd()) strcat(cheat_zip, " []"); strcat(cheat_zip, ".zip"); if (!mz_zip_reader_init_file(&_z, cheat_zip, 0)) diff --git a/menu.cpp b/menu.cpp index adb02a8..3b390a6 100644 --- a/menu.cpp +++ b/menu.cpp @@ -1768,6 +1768,7 @@ void HandleUI(void) mcd_reset(); } mcd_set_image(ioctl_index, SelectedPath); + cheats_init(SelectedPath, 0); } else if (is_pce()) {