libretro / libretro-uae

PUAE libretro
GNU General Public License v2.0
114 stars 61 forks source link

Support for expansion ROMs? #544

Closed rhester72 closed 2 years ago

rhester72 commented 2 years ago

Is this possible? I'm very specifically asking about A591/A2091 expansion ROM support. It's easy enough to get working in the UAE config, but no matter where I place the A2091 7.0 ROM dump, I still get the following:

[libretro INFO] Fastcard: mapped @$200000: 2MB fast memory
[libretro INFO]    Card 1 (ZorroII) done.
[libretro INFO] One of the following expansion boot ROMs is required:
Check the System ROM path in the Paths panel and click Rescan ROMs.
[libretro INFO] A590/A2091 Z2 autoconfigured at E90000

followed by a failed HD boot (obviously).

In WinUAE, this is solved via 'scanning' the ROMs...which obviously isn't possible in libretro (nor is there a registry or WinUAE.ini support, so far as I can tell). Is there any other solution possible?

sonninnos commented 2 years ago

Just use a custom .uae conf and set the path as you wish with a2091_rom_file=

Or replace the A2000 preset with the file saves/puae_libretro_A2000.uae and put the whole preset block plus that definition in it:

cpu_model=68000
chipset=ecs_agnus
chipset_compatible=A2000
chipmem_size=2
bogomem_size=0
fastmem_size=0

a2091_rom_file=whatever

There are already so much core options, that adding all these rarely needed/used expansions is not worth the effort. Because in addition to the added option clutter there would also have to be a standardized filename for the ROM so that it could be picked up automatically when needed.

And also why even bother when the other presets can use hard drives well enough without any tinkering.. Sure, it would be nice to be able to easily use hard drives with A2000 preset too, but since a ROM is required, it will get messy very quickly. Since once that expansion door is opened, adding just one is never enough, and adding everything is a nightmare.

rhester72 commented 2 years ago

The solution you offered was exactly what I'm looking for - apologies, I should have been more specific that I wasn't referring to UI elements, I'm very comfortable with direct manipulation of UAE files.

That being said, I'm assuming this only works with the 'newer' PUAE vs. 2.6.1 (I'm running on a Pi 4 via RetroPie)? I get the following:

[libretro INFO] unknown config entry: 'a2091_rom_file=/home/pi/RetroPie/BIOS/a590-a2091_7.0.rom'

If it's not supported in the older release (and can't/won't be), that's fine - what I'm trying to do is a bit on the esoteric side anyway, especially for a Raspberry Pi. (That being said, I can also confirm the MMU code in 2.6.1 crashes spectacularly when using it to support real Superkickstart boots from 1.4b3 LOL)

sonninnos commented 2 years ago

Huh. A2091 is built in and enabled in the older one too, and both versions are booting from HD here even without the ROM with A2000 + KS 3.1..

Maybe the old simply does not support the ROM (why is it even needed then..?), since I can't find what the config entry is supposed to be called.

rhester72 commented 2 years ago

Built in, yes, but not enabled.

Enabling it requires setting 'scsi_a2091=true", but it still requires the expansion ROM to function.

In WinUAE, this was done by ROM scanning, which added the expansion ROM (6.0, 6.6, 7.0, or Guru ROM) to the 'search list' when expansion ROMs are used, there's no means to explicitly specify the path/filename within the UAE configuration file itself. There doesn't appear to be an equivalent (or any) mechanism to do so in PUAE.

You can absolutely boot a hard drive without it, but not as SCSI.

In short, this config works (but without SCSI):

hardfile=read-write,0,0,0,512,/home/pi/RetroPie/roms/amiga/AmigaDOS/wb13.hdf

but this one does not (because you can't indicate where the A2091 expansion ROM is):

scsi_a2091=true
hardfile2=rw,DH0:/home/pi/RetroPie/roms/amiga/AmigaDOS/wb13.hdf,0,0,0,512,0,,scsi6

(note explicit declaration of SCSI unit 6 in the second example). This means (among other things) you can't use RDB/HDToolBox easily without first setting it up under WinUAE with A2091 support.

The same problem exists for the A4091 in the A4000, but likely isn't solvable in lr-puae because of the absence of scan/search functionality for expansion ROMs.

As I indicated earlier, I am fully aware this is WAY outside the intended scope of lr-puae, it would have just been nice. =) I wanted to be sure I wasn't missing something obvious (like the reference to a2091_rom_file above, because if that did exist, it would have solved the problem very nicely!).

sonninnos commented 2 years ago

Ok, but why is it necessary to do SCSI mode when hard drives are usable without it..?

And by "enabled" I meant sysconfig.h has

#define A2091 /* A590/A2091 SCSI */
rhester72 commented 2 years ago

Not necessary at all - was doing so to try to mimic original hardware behavior (i.e. PrepHD/HDToolBox) as closely as possible (particularly under 1.3). Easy enough to create the RDB image with WinUAE and transfer it over with the generic controller.

sonninnos commented 2 years ago

Ok, so that means this issue is solved then?

rhester72 commented 2 years ago

Agree - don't think it can be taken much further, question was asked and thoroughly answered. =)