Restoring saves doesn't work
jzobac opened this issue · 4 comments
Hi,
when trying to restore saves (seems that backup works) i get only "timeouts".
configuration
rpi 3, Zelda handheld, 64MB flash from Farnell (4MB original patched fw, 60MB retrogo)
Raspberry pi OS
2022-04-04-raspios-bullseye-armhf-lite.img.xz (32bit)
Linux raspberrypi 5.15.32-v7+ #1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l GNU/Linux
compile command of retrogo
export OPENOCD="/opt/openocd-git/bin/openocd"
export GCC_PATH=/home/pi/opt/xpack-arm-none-eabi-gcc-10.3.1-2.3/bin
export ADAPTER=rpi
export adapter=rpi
time make -j$(nproc) GNW_TARGET=zelda EXTFLASH_SIZE_MB=60 EXTFLASH_OFFSET=4194304 INTFLASH_BANK=2 ENABLE_SCREENSHOT=0 flash 2>&1 | tee log.txt
git describe --all --long --dirty=-dirty
heads/main-0-g1925eb6
retro-go-stm32; git describe --all --long --dirty=-dirty
heads/main-0-g5f1dd2b
Here is log from restoring saves
Programming save for:
rom_name="Alien 3"
save_address=67076096
save_size=28672
�[0;32mPreparing chunk 1 / 1 in file /tmp/flash_chunk.uxWgr8�[0m
�[0;32mFlashing!�[0m
Open On-Chip Debugger 0.11.0+dev-00685-g830d70bfc-dirty (2022-05-15-14:40)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'sysfsgpio swd_nums' not 'sysfsgpio_swd_nums'
DEPRECATED! use 'sysfsgpio srst_num' not 'sysfsgpio_srst_num'
none separate
Info : SysfsGPIO JTAG/SWD bitbang driver
Info : This adapter doesn't support configurable speed
Info : SWD DPIDR 0x6ba02477
Info : [stm32h7x.cpu0] Cortex-M7 r1p1 processor detected
Info : [stm32h7x.cpu0] target has 8 breakpoints, 4 watchpoints
Info : gdb port disabled
Info : starting gdb server for stm32h7x.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0801b64c msp: 0x2001b620
0x2001b620
0x0801b64d
msp (/32): 0x2001b620
pc (/32): 0x0801b64d
Starting flash app
State: FLASHAPP_INIT
//
'handheld powers off
//
State: UNKNOWN
State: UNKNOWN
State: UNKNOWN
State: UNKNOWN
State: UNKNOWN
State: UNKNOWN
//
'I power him on, from original fw switch to retro-go
//
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
State: FLASHAPP_INIT
//
'that's all, nothing restores, just init loop
With best regards
jzobac
restore command
export ADAPTER=rpi
export OPENOCD="/opt/openocd-git/bin/openocd"
export GCC_PATH=/home/pi/opt/xpack-arm-none-eabi-gcc-10.3.1-2.3/bin
export adapter=rpi
time ./scripts/saves_restore.sh build/gw_retro_go.elf 2>&1 | tee log-restore.txt
Same problem here - with the original 4MB Zelda flash chip.
Make sure to set the correct environment variables when you restore the save games, just like you do when you run make flash
.
It's likely you have not set e.g. INTFLASH_BANK=2
.
I just did a full test of a clean Zelda unit with 64MB flash and an ST-Link, and it works.
My commands:
export ADAPTER=stlink
export GNW_TARGET=zelda
export EXTFLASH_SIZE_MB=60
export EXTFLASH_OFFSET=4194304
export INTFLASH_BANK=2
# From game-and-watch-patch:
make PATCH_PARAMS="--device=zelda" flash_patched
# From game-and-watch-retro-go:
make -j8 flash
# Play some games, then backup saves
make flash_saves_backup
# Save some new state to know that you have a different save locally vs on the device
# Restore locally stored saves
make flash_saves_restore
# Verify on the device
Yes, works!
Thank you.