stella-emu / stella

A multi-platform Atari 2600 Emulator
https://stella-emu.github.io
GNU General Public License v2.0
618 stars 112 forks source link

Selected bankswitching type ignored for multigame ROMs #913

Closed thrust26 closed 2 years ago

thrust26 commented 2 years ago

Multigame ROMs seem to ignore the selected bankswitching type. The type will only be stored for the current ROM not for the multi game ROM.

Example: Start the attached ROM to Ice Hockey. Change the bankswitching from the autodetected 4in1 to e.g. 2in1 and exit Stella. Then start again. Ice Hockey will display 2in1 in game properties, the other games 4in1. And the ROM will continue to use 4in1. So the properties are stored per individual ROM, not for the whole ROM.

4 Game in One - Ice Hockey, Phantom UFO, Spy Vs. Spy, Cosmic Avenger (1983) (Bit Corporation) (PAL).zip

thrust26 commented 2 years ago

It seems to be a general issue, not only regarding bankswitching. The properties displayed/edited from the launcher are for the multi ROM, but from within a game, they are for the current game only.

I wonder if this is a bug or a feature. 😄 It makes sense to have properties per game. And for the multi cart too.

@sa666666 What do you think?

sa666666 commented 2 years ago

It sort of makes sense. For multi-ROM, Stella splits the binary internally and then starts the emulation on that ROM. At that point, it's a single ROM, and isn't really related to the fact that it came from a multi-ROM. And properties are saved for that single ROM. I consider that a feature :smiling_imp:

When you go to ROM properties in the launcher, you editing properties for that multi-ROM. Now, the properties are being edited/saved for the multi-ROM.

So we can have properties per-game. It's just that they're set in different places depending on if the ROM is a normal one, or a container for others (ie, a multi-ROM). I'm not sure how we could do it any other way.

thrust26 commented 2 years ago

They make sense, yes. But they are also irritating. E.g. the bankswitching belongs to the multi-ROM (xin1) and, if it is larger than 4K to the single ROM too. But e.g. phosphor makes no sense for the multi-ROM. So we have a mix of properties and I find that pretty confusing.

IMO we should disable property settings (or whole tabs) for multi-ROMs which only make sense for the single ROMs (don't think there is a vice versa). And maybe also add the edited ROMs name to the game properties dialog title. So that the user is always aware what (s)he is editing.

sa666666 commented 2 years ago

As always, I'm not opposed to changing this to be more intuitive. I just wonder how we can do it that doesn't make it more confusing. And since it only happens with multi-ROMs, and those types aren't that common, if it is even worth the effort.

thrust26 commented 2 years ago

I wondered about this too. I will have a look how much effort it will be when I do another change there. I want the bankswitching type list to be filtered so that only type which are possible for the ROM size are listed. For us the large list is no problem, but I figure most users have no clue and then have to test the whole list if a ROM fails (see #914).