Request for multiple game list entries per game (for VMC choice)
Today I started experimenting with "RPG Maker 3" for which I have also downloaded a ton of user-created games from one of the sites specializing in these RPG engines. And after creating suitable VMC files for some of these games it struck me that there is NO convenient way of handling these in OPL.
Each time I want to switch from one VMC set to another I have to manually edit the VMC file name in the per-game options screen for that game entry, and then either use "Test" thus losing the new entry I just made for future use, or use "Save Changes" and lose the old entry for any future use. So I'll have to keep doing this every time... :(
For the time being I solved this by making VMC filenames that only differ from each other in some of the final characters, so it won't be too much work to re-edit them for each gameplay, but it is still quite irritating having to do it at all. And that would not even be helped if we had better selection tools. Even if we had a real SMB file browser that would still not alter the fact that I would have to make new settings each time I want to switch VMC. (No 'set it and forget it' here...)
Functionally each of these VMC files constitutes a separate game, so I would really want a separate entry in the game list for each choice of VMC files to be used by the RPGM3 disc.
And after considering this problem for a while I realized that there is another problem which is closely related to it and far more common, as it can apply to any normal PS2 game at all. This is simply the problem of multiple users of the same console and game collection, but needing separate VMC for separate gaming. This problem should be familiar to anyone coming from a large family (though even a single sibling can make the problem acute).
For this problem too, the only really good solution would be to have multiple game list entries for each game shared by more than one player (or even cases where one player has different ongoing 'campaigns' for a game).
Implementing such multiple entries could be done partly by slight variations to the existing configuration variables for VMC use, and partly by how these variables must then be used also by the code that constructs the combined game list for each core.
Currently such game lists are built by combining entries for games found in three places. Those being the USBA-style installed games plus ISO files in the "CD" and "DVD" subfolders, with each found game generating a single list entry.
But I suggest that for each game found this way for a given core, a check should also be made to see if the config file included a user request for extra VMC entries for that game in that core, in the form of some new config variable constructed in a similar way as the current VMC variables, so that it would start with something like "SCES_504.90_ETH", but instead of following that with a suffix for VMC slot we would use a new suffix, like "_Entries", so that the entire variable definition might look something like this:
SCES_504.90_ETH_Entries=3
This for the case where I want this particular game "FFX (UK)" to have three separate game list entries for the same game image, instead of just one as would be used if no such variable was found.
To separate the VMC definitions it would of course be necessary to use an index for each list entry of a game relative to its first one, and in this indexing the first one should be index 0, with the others following in order. So for the case of three entries the top index would be 2.
These index values would then be added as extra infix strings inside the variable names, except for index zero, which could be suppressed so as to use exactly the same VMC variable names as if no extra entries existed. So for the example above, all the possible variable names for these entries could then be something like this:
SCES_504.90_ETH_Entries=3
SCES_504.90_ETH_VMC0=Ronald_main_vmc0.bin
SCES_504.90_ETH_VMC1=Ronald_main_vmc1.bin
SCES_504.90_ETH_1_VMC0=Ronald_cheat_test_vmc0.bin
SCES_504.90_ETH_1_VMC1=Ronald_cheat_test_vmc1.bin
SCES_504.90_ETH_2_VMC0=Peter_vmc0.bin
SCES_504.90_ETH_2_VMC1=Peter_vmc1.bin
Note however that the code which generates the game listings only needs to bother with the first of those 7 variables, as it is the '_Entries' variable that defines how many extra entries are needed, and which index value each of them has relative to the base entry (possibly a new struct member may be needed for this).
That relative index value (here 0, 1 or 2) needs to be passed to the per-game options handler and also to the game launch handler in order to ensure that the correct VMC entries are chosen both in editing a setup and in using it for launches.
As an additional fluorish it would also be quite simple to add separate names for these entries, so that they don't all look identical, using a new config entry in the per-game menus relating to new config variables defined something like this: (for the example above)
SCES_504.90_ETH_Title=FFX (UK) Ronald's main game
SCES_504.90_ETH_1_Title=FFX (UK) Ronald's cheat tests
SCES_504.90_ETH_2_Title=FFX (UK) Peter's game
For these '_Title' variables the default entry (created by a new "Set Default" command) should be the normal title string as currently derived, but with the index number added to keep them unique. This effectively allows the user to rename the list titles for all games, even if no multiple entries are used, but the normal usage should be to just leave these '_Title' variables undefined when not needed, just like we do with unused "_VMC?" variables.
With this title usage there will of course be some added complexity for the game list construction, but well worth it in my opinion.
Best regards: dlanor