Two binaries generated:
- gw_retro_go_intflash.bin containing the internal flash, 0x08000000
- gw_retro_go_extflash.bin containing the external flash, 0x90000000
This enables us to use the openocd program command with "verify", as we force it to verify only the data at 0x08000000.
Previously, we would get warnings from openocd when programming the elf file (Warn : no flash bank found for address 0x90000000). These are now gone.
Makefile targets have been changed to be more clear:
- `make flash_intflash`: flashes the internal flash (0x08000000)
- `make flash_intflash_nc`: same as the above, but uses nc to communicate with a running openocd session
- `make flash_extflash`: flashes the external flash (0x90000000)
- `make flash`: Flashes both of the above
- `make flash_all`: Alias to flash (kept for legacy reasons, so users can keep running their old commands)
I found that compiling on one system, then rsync to a pi for flashing, the pi wanted to recompile since the `build/rom_files.txt` order varied since `find` returned the filenames in a different order. Adding a `sort` makes the order the same between filesystems so the pi no longer attempts an unnecessary recompile.
Sub-block erases should be aligned with the size: e.g. 32kB erase should
only be done on 32kB boundaries, 64Kb erase should only be done on block
boundaries.
This was originally written by Thomas Roth <code@stacksmashing.net> to
make it possible to support more emulators than what fits into memory at
the same time (commit c13aa09b).
Instead of generating a monolithic binary, the different emulators are
stored in flash and loaded into ram right before they are launched.
This is the basis for adding more emulators e.g. smsplusgx.