I gave SofaROM 1.1 a spin today. My results:
Working
- Pacman
- Magical Tree
- Xyxolog
Sort of working:
- Famicle Parodic: as before, detonated houses still show up in the wrong place.
Not working:
- Arkanoid: resets on launch.
- Crusader: resets on launch
- Darwin 4078: boots with corrupt graphics.
- Guardic: hangs on launch.
- Magical Wiz Kid: hangs on launch.
- Pacmania: as before, hangs on launch.
- Penguin Wars: boots with corrupt graphics.
- Penguins Wars 2: resets on launch.
- Zanac: hangs on launch.
I would still love a per-game option to control execution method (Loadrom, Sofarom, detected flash method). And as a complete aside, I miss being able to press enter to select an option in Sofarun (only space works now).
Thanks for the report, but note that SofaROM is aimed at MegaROMs, but not at all (for now) at small ROM games. SofaRun is way more reliable for that purpose.
I have a working patch for Famicle Parodic and some other MegaROMs, I'll put them on my website as .IPS files. I'll keep the SofaROM code generic, with no per-game patching. This might be handled in the future using external patch files loaded automatically (based on the ROM name or simplified CRC).
The per-game execution method setting is under study, it requires some refactoring in SofaRun, that might take some while.
i think Sofarom is just for Megaroms files
many files of mfeingol are just Rom files
some 16k rom works and start on ASCII mapper
please Louthrax : added a 16k 32k loader
please Louthrax : added a 16k 32k loader
"Just" need to copy/paste code from SofaRun. I was also thinking about moving that code completely out of SofaRun (to free some memory here), but that implies also moving the code that handles the Game Master / JoyMega / PSG2SCC etc... That would also make things more modular.
Yeah, sorry, I wasn't entirely sure whether you'd be interested in the smaller roms. :-)
Regarding your working ROM list, I wonder if it might make sense to also add the set of megaroms currently known to not work as well. That way at least you wouldn't get repeat submissions.
I agree that from a factoring perspective it definitely makes sense to have SofaRom be your universal ROM launcher, combining all ROM launching code. That's your call, obviously.
Regarding patches and such, I'd love a world where instead of maintaining a set of ROMs with different patches, like at least some of us do, we could instead apply them at runtime using SofaRun. You might even ship known patches with your SofaRun distros, perhaps functionally categorized (e.g. into R800 fixes, general bugfixes, translations, etc.), and then one might even be able to configure SofaRun policies where certain types of patches are auto-applied at launch.
Louthrax, When we launch a Rom, a message "Press button..." is displayed. Can you add the possibility to back to DOS by pressing ESC here? This would be useful when we have forgotten an option.
"Just" need to copy/paste code from SofaRun. I was also thinking about moving that code completely out of SofaRun (to free some memory here), but that implies also moving the code that handles the Game Master / JoyMega / PSG2SCC etc... That would also make things more modular.
This would be very appreciable and would add functions such as the ability to define multiple launcher for the same extension name, a command line with virtual keyboard, etc. (And I give as example only functions easy to do but very useful.)
Regarding patches and such, I'd love a world where instead of maintaining a set of ROMs with different patches, like at least some of us do, we could instead apply them at runtime using SofaRun. You might even ship known patches with your SofaRun distros, perhaps functionally categorized (e.g. into R800 fixes, general bugfixes, translations, etc.), and then one might even be able to configure SofaRun policies where certain types of patches are auto-applied at launch.
It complicates a lot for not much interesting. MEGAMU already has this function which is simple but almost nobody makes any patch.
Except the patch for Metal Gear 2, I am the only one to have made a few patches for MEGAMU.
http://www.msxvillage.fr/forum/topic.php?id=1045&pt=3#m22053
/Mx: Force mapper type
0: Automatic (default)
1: ASCII 16KB - Generic
2: ASCII 8KB - Generic
3: Konami - Generic
4: Konami SCC - Generic
5: ASCII 16KB - Wide
6: ASCII 8KB - Wide
This sounds strange. What do you mean by Generic or Wide?
The ASCII's mappers are only two (8/16K) with the SRAM pages in option.
The Konami's mappers are three (Game master 2, Megaroms without SCC and with SCC).
The mapper Generic8 and Generic16 also exist. The Generic8 (Zemina and others) is the same as Konami's mapper without SCC except the pages on bank 4000h~5FFFh can be selected (instead of the fixed page 0). The Generic16 is an mapper like Generic8 but with pages of 16kB (No game uses this mapper).
The others mappers are specific.
I think this option should be:
0: Automatic (default)
1: Konami without SCC
2: Konami SCC
3: ASCII 16kB
4: ASCII 8kB
5: ASCII 16kB with save on (FM-)PAC or Turbo R
6: ASCII 8kB with save on (FM-)PAC or Turbo R
7: Generic8
8: Generic16
9: Harry Fox
A: R-type
B: Super Lode Runner
C: Super Suwanggi
About 5 and 6, Tiny Yarou has already made a hack to save on (FM-)PAC or Turbo R:
http://www.tiny-yarou.com/kaizoumsx_ndsram.html
8~C are probably useless with the auto detection.
/Mx: Force mapper type
0: Automatic (default)
1: ASCII 16KB - Generic
2: ASCII 8KB - Generic
3: Konami - Generic
4: Konami SCC - Generic
5: ASCII 16KB - Wide
6: ASCII 8KB - Wide
This sounds strange. What do you mean by Generic or Wide?
"Generic" mappers are patching pokes at generic addresses only (6000,6800,7000,7800 for ASCII, 4000,6000,8000,A000 for Konami, 5000,7000,9000,B000 for Konami SCC). This avoid to "over patch" the games.
The "Wide" mappers are patching all pokes at valid mapper addresses (6000-67FF, 6800-6FFF, etc...). This allows to support more games, but is a bit more dangerous. That's why SofaROM does not need any patch for Andorogynus, Fantasy Zone, Ikari, etc... that Mega16 requires. I've seen no corruptions so far using the wide mappers, but I can't give no warranty on that.
Other mappers (R-Type and others) have not been implemented, but I'll give it a try.
About the other suggestions:
- ESC key makes sense, I'll add it (also for SofaRunIt).
- I really like the "external patch files" idea. I'd like to have those patches loaded "on the fly" for ROMs. This could also be applied for disk images.
So the development for SofaRun/It/ROM is far from beeing finished !
Except the patch for Metal Gear 2, I am the only one to have made a few patches for MEGAMU.
http://www.msxvillage.fr/forum/topic.php?id=1045&pt=3#m22053
Would be nice to have the newest English version of 'Metal Gear 2 Solid Snake' on DISK...
Mega16 requires patches because its "wide" method replace mapper addresses for all 16kB mapper types at same time. So it sometimes replaces data that should not be replaced.
Then its "generic" method patches only the mapper addresses 6000h and 7000h. In addition, Also, I corrected a problem that the developer has not anticipate. If the source code were available, compatibility could be improved without additional patch.
Maybe SofaRom needs an option to specify the offset address where the mapper addresses should not be replaced.