Please see self-contained documentation in the header of update_ezflash_cheats.py
for the most up-to-date usage information.
This utility is intended to scrape and merge the libretro GBA cheat database with the one provided by EZ-Flash for their Omega line of devices. This will give better English descriptions, and many times higher-quality cheats.
The command-line interface is self-documented. Pass a --help
flag to the base script or after one of the subcommands for more information. Try a command like python3 update_ezflash_cheats.py --help
or python3 update_ezflash_cheats.py patch --help
for more information.
Not necessarily up to date:
% python3 update_ezflash_cheats.py patch --help
usage: update_ezflash_cheats.py patch [-h] -c CHEATS -d DATFILE -l LIBRETRODATABASE
options:
-h, --help show this help message and exit
-c, --cheats-db CHEATS
Path to pre-downloaded unzipped CHEATS directory as downloaded from ezflash.cn. THIS WILL BE MODIFIED.
-d, --dat DATFILE Path to a .dat file (basic xml-formatted) obtained from Dat-O-Matic (No-Intro).
-l, --libretro-database LIBRETRODATABASE
Path to libretro-database repository root, previously cloned or downloaded.
% python3 update_ezflash_cheats.py patch --cheats-db /path/to/downlaoded/CHEAT --dat /path/to/Nintendo\ -\ Game\ Boy\ Advance\ \(20250602-123637\).dat --libretro-database /path/to/libretro-database-master
...
Patched /path/to/downlaoded/CHEAT/Eng/0000/0037.cht successfully, added 7 cheats
Patched /path/to/downlaoded/CHEAT/Eng/0000/0038.cht successfully, added 7 cheats
Patched /path/to/downlaoded/CHEAT/Eng/0000/0039.cht successfully, added 2 cheats
Patched /path/to/downlaoded/CHEAT/Eng/0000/0040.cht successfully, added 4 cheats
...
Patches applied
Currently tested with libretro-database v1.8.2, and requires a recent Python 3. I have only tested the script with Python 3.8.5 on Ubuntu. Other than Python and the input files, there should be no other dependencies.
The flakiest part of this utility is the correlation between ROM names as listed in DAT files, and the corresponding libretro-database *.cht file. I've tried tracing how RetroArch does this in its *.rdb database, but I haven't yet found that functionality in the code.
- EZ-Flash Omega Definitive Edition kernel source
- Previous similar effort by largemoose421
- Overview on hardware-based game cheats
- Documentation of Code Breaker cheat format
- RetroArch cheat documentation (not too useful)
- EZ-Flash Omega cheat tutorial/guide
- EZ-Flash Omega cheat library download link (zipped)
- libretro-database master branch download link (zipped)
- DAT file download page
- NOTE: Make sure you don't accidentally fetch a "Game Boy Advance (e-Reader)"
.dat
file, only the plain Game Boy Advance file. The link above should bring you to the right place. A quick check is to Ctrl-F for "zelda" in the.dat
file. It should be contained in the file, but won't be if you accidentally grabbed the e-Reader version.
- NOTE: Make sure you don't accidentally fetch a "Game Boy Advance (e-Reader)"