libretro / libretro-uae

PUAE libretro
GNU General Public License v2.0
111 stars 60 forks source link

Action Replay #538

Closed zzedmore closed 1 year ago

zzedmore commented 2 years ago

Thanks for the updates. Unfortunately, the Action Replay III only seems to work when loading the core without content. If you load a game etc. then press the reset button it doesn't seem to do anything.

I made a quick .uae file called 'puae_libretro_A500' (as the Action Replay 3 only works on A500). Although not sure if that's the correct model to add to the filename as that will probably only work with 512 chip 512 slow.

If I just select 'Load Core' then press the reset button, it works.

sonninnos commented 2 years ago

That preset replacer file is currently only meant for replacing these critical blocks (debug level logging shows the full generated config):

cpu_model=68000
chipset=ocs
chipset_compatible=A500
chipmem_size=1
bogomem_size=2
fastmem_size=0

And since the current buffer is currently only 256 bytes, it is not hard to fill it up with a long path, resulting in truncation. I was able to add cart_file to that block easily though, and freezing works as expected with or without content, but still I guess I should create a similar core option for selecting carts from a certain directory like in VICE.

zzedmore commented 2 years ago

OK thanks.

A heads up on a different issue (without opening another thread), there is a WHDLoad game called 'SevenCitiesOfGold_v2.0_NTSC_0908' which requires a A1000 ROM kick31340.a1000 CRC32: ec86dae2.

sonninnos commented 2 years ago

Nice to know, but doing yet another KS copying hassle for both modes isn't yet looking worth it if it is used by only one game.. Copying the files (KS + RTB) manually is pretty simple luckily.

Also weirdly enough that CRC32 seems to be of the file called Kickstart v1.1 rev 32.34 (1986)(Commodore)(A1000)(PAL).rom and not Kickstart v1.1 rev 31.34 (1985)(Commodore)(A1000)(NTSC).rom as one might assume (since it says NTSC), which in turn is D060572A. Both of them are versioned 31.34 internally in UAE though, so maybe it is a typo in the Kickstart archive.

zzedmore commented 2 years ago

Yeah, I thought that too when I read the EAB thread. A PAL rom for an NTSC game ! Apparently the other one doesn't work.

https://eab.abime.net/showpost.php?p=1548936&postcount=1048

zzedmore commented 2 years ago

Hi, sorry, going back to this quickly. I created a file called puae_libretro_A500.uae (in the saves directory) and all that's inside it is the path to the cartridge - cart_file=.\system\Freezer - Action Replay Mk III v3.17 (256k).rom. The reset (freeze) button works when you load and start core without content but when I load a game the reset button doesn't trigger the Action Replay. Am I missing something ? How did you get it to work ?

zzedmore commented 2 years ago

Oh, I get it now. My .uae file was in the 'saves' directory but the game I was running was on the desktop so it needed to go in the saves\Desktop directory.

sonninnos commented 2 years ago

Having only the cart path in the preset file is wrong like I already said. It needs to have that above posted block in it to properly replace the preset. Otherwise all those hardware defines will be at their UAE defaults, which means it is pure luck that it even works.

And I have no idea why would it be saves/Desktop when savefile_directory is the only thing that matters. As in those files are searched from the same place regardless where the launched content is.

Also full absolute path to cart file might be best. And log will surely say best what is wrong.

zzedmore commented 2 years ago

So I tried loading a file from the Desktop.

This log is with the puae_libretro_A500.uae in the saves directory (AR doesn't work when pressing reset) - retroarch saves.log

This log is with puae_libretro_A500.uae in the saves/desktop directory (AR works) - retroarch saves desktop.log

A couple of things I noticed in the log, AR ROM patched for KS2.0+. So the AR Mk3 should work on A600 and above as well ? And it also said 'Action Replay Checksum is INVALID'.

sonninnos commented 2 years ago

Well you clearly have savefile_directory pointed to saves\Desktop, so that is what will be used:

[INFO] [Overrides]: No content-dir-specific overrides found at "C:\Games\RetroArch\config\PUAE\\Desktop.cfg".

[INFO] [Overrides]: Redirecting save file to "C:\Games\RetroArch\saves\\Desktop\Tinyus [Arcade conversion].srm".
[INFO] [Overrides]: Redirecting save state to "C:\Games\RetroArch\states\\Desktop\Tinyus [Arcade conversion].state".

[libretro INFO] Unzip: C:\Games\RetroArch\saves\\Desktop\TEMP\Tinyus [Arcade conversion].adf
[libretro INFO] ->M3U: C:\Games\RetroArch\saves\\Desktop\TEMP\Tinyus [Arcade conversion].m3u
[libretro INFO] No model specified in: 'C:\Games\RetroArch\saves\\Desktop\TEMP\Tinyus [Arcade conversion].m3u'

As in probably sort_savefiles_by_content_enable is enabled then. Nothing to be done here in the core.

zzedmore commented 2 years ago

Yes I think I have that option on to keep the saves directory tidy and so I know what saves are for what system. I'll just have to remember to put the .uae file in the directories that I run the games etc. from.

Thanks.

zzedmore commented 2 years ago

Did you say something about a core option ? This would make it more user friendly to just enable the option instead of using a .uae file in the correct saves directory. And also make it easy to disable in case a game detects the cart.

The log file said something about it patching to work with kickstart 2+ so maybe the AR Mk3 v3.17 rom would work with all models ?

zzedmore commented 2 years ago

Should I close this ? Not sure if you are interested in adding it as a core option. Maybe too many incompatibilities ?

sonninnos commented 2 years ago

I'll look into it at some point.