Page 1 of 1

Can't get MGL files to work

Posted: Fri Feb 25, 2022 4:33 am
by justaguy
I saw that the 20220224 Main update added support for MGL files, which per the changelog are like MRAs but for (almost) any core. I can't seem to get this feature to work on my fully up-to-date (ran update_all just today) MiSTer. My MGL file looks like this, modified from the example that Sorgelig provided on Patreon:

Code: Select all

<mistergamedescription>
	<rbf>snes</rbf>
	<!--
		delay: amount of seconds to wait before load/mount
		type:  f - loading, s - mounting
		index: index :)
		path:  path to file relative to core's home folder
	    
		All parameters must be present
		
		Note: some cores popup OSD menu on start. To prevent it to popup increase delay parameter. 
		Usually 2 seconds is enough.
	-->
	<file delay="2" type="f" index="0" path="test.sfc"/>
</mistergamedescription>
test.sfc is located in /media/fat/games/SNES (it's actually Super Mario World, if that matters). I can select and run the MGL from the MiSTer menu, but there's only a brief flash and nothing else happens. Has anyone had any luck getting this feature to work?

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 5:44 am
by Fallon
For Genesis, this works for me:

<mistergamedescription>
<rbf>_console/genesis</rbf>
<file delay="2" type="f" index="0" path="../../games/Genesis/Sonic the Hedgehog 2.md"/>
</mistergamedescription>

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 9:35 am
by onaryc
i think you have to put <rbf>_console/snes</rbf>

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 3:01 pm
by justaguy
Thanks for the quick responses, adding the _console path prefix did the trick. Unfortunately it doesn't seem to work with the bootcore setting in MiSTer.ini, so you can't use it to boot the MiSTer directly into a game (you can do this with cores that support loading boot#.rom at startup, but SRAM saves and save states don't work). It's still a great feature that I'll be using a lot.

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 4:34 pm
by edr
This mgl feature is a very nice improvement on the way to the graphical single-click carousel launcher with floating animated holographic box covers.

Only wish mras would launch when run outside of their default arcade location. If that worked, I would mix mra's and mgl's into a single favorites games dir for quick launch of current things I want to play, and move all cores to a cores dir, for ex.

Code: Select all

_Cores
    _Arcade
    _Consoles
    ...
_Games
    Donkey Kong.mra
    Ghouls'n Ghosts.mgl
(of course would require running scripts, which I'm already doing, before updates and after updates to undo and redo the new structure so that the downloader (updater) doesn't re-download all the stuff each update run).

An example mgl that works for me (I reorg my games in subdirs like Adventure, Platform etc, and I rename my cores for ex `Super NES`):

Code: Select all

<mistergamedescription>
	<rbf>_Console/Super NES</rbf>
	<!--
		delay: amount of seconds to wait before load/mount
		type:  f - loading, s - mounting
		index: index :)
		path:  path to file relative to core's home folder
	    
		All parameters must be present
		
		Note: some cores popup OSD menu on start. To prevent it to popup increase delay parameter. 
		Usually 2 seconds is enough.
	-->
	<file delay="2" type="f" index="0" path="Adventure/Ghouls'n Ghosts.sfc"/>
</mistergamedescription>
Note that `path` does not need to be a full path like `../../../something`. It's relative to the core's default game path.

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 7:48 pm
by Kopert
edr wrote: Fri Feb 25, 2022 4:34 pm Only wish mras would launch when run outside of their default arcade location. If that worked, I would mix mra's and mgl's into a single favorites games dir for quick launch of current things I want to play, and move all cores to a cores dir, for ex.
I think I figured out a workaround for this. I linked an .mra into my _Favorites folder and it didn't work, complained that there was no .rbf file. Then I just linked the _Arcade/cores folder into my _Favorites folder and it worked just fine. The cores folder does not show up on the menu when navigating the Favorites. Maybe give that a try, see if it works for your use case?

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 8:30 pm
by edr
@Kopert brilliant. Think I'd considered it but didn't want `cores` to show up in the menu and wasn't sure symlinks even work on an exfat system. It all works and it's great. Is it still MiSTer if it's easy and fast to launch games without having to care what core something is using?

Something like this structure works fine -

Code: Select all

# ls -al /media/fat/_Games/
...
lrwxr-xr-x  1 root root   24 Feb 25 12:20  cores -> /media/fat/_Arcade/cores
-rwxr-xr-x  1 root root 4.0K Nov 12 08:52 "Ghosts'n Goblins.mra"
-rwxr-xr-x  1 root root  499 Feb 25 08:20 "Ghouls'n Ghosts.mgl"
(btw tried using an mgl to launch a psx .cue, didn't work for me. Maybe mgl support for PSX .cue will come later. PSX core loaded, but went to the bios, did not load the cue.)

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 9:29 pm
by Kopert
Keep in mind you can also link the MRA instead of copying it. Might save space, and if it gets updated, so does the linked version, of course.

But yeah, it's working great like this. I'm happy with the functionality, as I've missed having favorites before.

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 10:28 pm
by onaryc
has someone find a way to use mgl files with zip files? (with just one file in a zip file or a complete zipped pack like htgdb)

Re: Can't get MGL files to work

Posted: Fri Feb 25, 2022 11:00 pm
by Kopert
You mean, having the mgl point to a rom inside a zip file?
If so, I had no issue with

Code: Select all

<file delay="2" type="f" index="0" path="usa-world.zip/Rock N' Roll Racing (USA).sfc"/>
It found the zip in the /media/fat/games/snes folder just fine.

Re: Can't get MGL files to work

Posted: Sat Feb 26, 2022 12:17 am
by onaryc
haaa, i did not think to put the zip extension, thank you so much :)

Re: Can't get MGL files to work

Posted: Sat Feb 26, 2022 3:17 am
by Lightwave
edr wrote: Fri Feb 25, 2022 8:30 pm (btw tried using an mgl to launch a psx .cue, didn't work for me. Maybe mgl support for PSX .cue will come later. PSX core loaded, but went to the bios, did not load the cue.)
Did you try type="s" index="1"?

Re: Can't get MGL files to work

Posted: Sat Feb 26, 2022 7:29 pm
by onaryc
for now, i have successfully made mgl file for snes, psx, mega cd and pc engine/turbografx16, but not for pcengine-cd :

Code: Select all

<mistergamedescription>
	<rbf>_Console/TurboGrafx16</rbf>
	<file delay="1" type="s" index="3" path="Shmup/Gate of Thunder (Japan)/Gate of Thunder (J).chd"/>
</mistergamedescription>
I've tried index 0, 1, 2, 3 and 4. From my understanding, it shall be superior or equal to 2, but no luck so far.

Re: Can't get MGL files to work

Posted: Sat Feb 26, 2022 9:02 pm
by Flandango
onaryc wrote: Sat Feb 26, 2022 7:29 pm for now, i have successfully made mgl file for snes, psx, mega cd and pc engine/turbografx16, but not for pcengine-cd :

Code: Select all

<mistergamedescription>
	<rbf>_Console/TurboGrafx16</rbf>
	<file delay="1" type="s" index="3" path="Shmup/Gate of Thunder (Japan)/Gate of Thunder (J).chd"/>
</mistergamedescription>
I've tried index 0, 1, 2, 3 and 4. From my understanding, it shall be superior or equal to 2, but no luck so far.
The index value for CD ISO/CHD for the core is 0.
Is the CHD stored on the SD card or external USB?

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 1:45 am
by onaryc
How do you know the index is 0 for this core? My theory was that it was the osd menu index.

The chd is stored in my sd card.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 2:42 am
by Flandango
The best way to tell the Index # is to look at the code for the core. To be exact, you look at the top level SV file for the particular core where the configuration string is defined.
For example, if you go the repo for the TurboGraphics core and look at the file TurboGrafx16.sv, look for a section that starts with "parameter CONF_STR". Then in that section look for the particular item you are loading/mounting. In this case it will be this string :

Code: Select all

"S0,CUECHD,Insert CD;",
Notice the S0, that is the "s" type with index of 0.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 9:24 am
by dfilskov
What about C64 or Amiga?

Have you had any MGL files work for computer core games at ALL?

I cannot make MGLs work for computer cores ... ONLY for console cores.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 9:42 am
by onaryc
ok thanks, checking the code make more sense now :

Code: Select all

"FS0,PCEBIN,Load TurboGrafx;",
When selecting "f" for loading a rom file, the index is 0.

Code: Select all

"S0,CUECHD,Insert CD;",
When selecting "s" for mounting a cue/chd file, the index is also 0.

I was confused the index for psx was 1 (although it is the first entry in the menu) but in the code :

Code: Select all

"S1,CUECHD,Load CD;",
My mgl file is still not working but i know the index is 0 now :)

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 10:44 am
by onaryc
ok, i manage to get it working by moving the chd file and the cd bios in the TGFX16 folder, seems like a bug

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 10:55 am
by dfilskov
onaryc wrote: Sun Feb 27, 2022 10:44 am ok, i manage to get it working by moving the chd file and the cd bios in the TGFX16 folder, seems like a bug
Great! Which path did you move the chd and cd bios from ... and to?

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 10:56 am
by dfilskov
I got Sorgelig's / Alexey's MGL file for C64 and it has these parameters:

<mistergamedescription>
<rbf>c64</rbf>
<file delay="1" type="f" index="1" path="scramble.prg"/>
</mistergamedescription>

... but it doesn't work for me.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 1:07 pm
by Flandango
MGL is still a new implementation and is really not ideal for the average user and there are things that may still need to be ironed out or worked around.
For example, the TG16 normally looks for CD images in a games folder named TGFX16-CD, but MGL looks under the core's name as specified in the <rbf> field so you either have to move the file into the core's games folder or you could specify the path to it in the MGL file. For example if both the TurboGrafx16 and the TGFX16-CD reside on your SD card under the games folder, simply add ../TGFX16-CD/ in front of the path to the rom/image.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 1:35 pm
by dfilskov
Flandango wrote: Sun Feb 27, 2022 1:07 pm MGL is still a new implementation and is really not ideal for the average user and there are things that may still need to be ironed out or worked around.
For example, the TG16 normally looks for CD images in a games folder named TGFX16-CD, but MGL looks under the core's name as specified in the <rbf> field so you either have to move the file into the core's games folder or you could specify the path to it in the MGL file. For example if both the TurboGrafx16 and the TGFX16-CD reside on your SD card under the games folder, simply add ../TGFX16-CD/ in front of the path to the rom/image.
"MGL looks under the core's name as specified in the <rbf> field" - more precisely: It looks for a folder with the core's name inside /games/ (or /Games/) :)
.

Re: Can't get MGL files to work

Posted: Sun Feb 27, 2022 2:08 pm
by dfilskov
SOLVED!

I needed to delete a file called C64.f7 inside /config/ to make my MGL files for C64 work - go figure :)

Re: Can't get MGL files to work

Posted: Thu Mar 03, 2022 3:59 am
by keith.f.kelly
MGL files seem like one step closer to a nice way to list and launch individual PC games directly from the OSD with the ao486 core. If the MGL could tell the ao486 core which virtual drives/cds/floppies to mount at which positions, then each game could go onto its own bootable VHD/floppy/CD (with its own AUTOEXEC.BAT and CONFIG.SYS files), with another/shared VHD holding the rest of the OS files (DOS or Windows, along with any TSRs/drivers) so they need not be duplicated for every game, and with any corresponding required game CD mounted as well. That way we wouldn't need to use a DOS-based or Windows-based game launcher, and we could easily give each game its own dedicated set of DOS configuration, and we could rely on the core completely resetting to initial state every time the user switches games. Is anyone thinking about extending the MGL format to support that kind of usage scenario?

Re: Can't get MGL files to work

Posted: Thu Mar 03, 2022 8:38 am
by LamerDeluxe
keith.f.kelly wrote: Thu Mar 03, 2022 3:59 am MGL files seem like one step closer to a nice way to list and launch individual PC games directly from the OSD with the ao486 core. If the MGL could tell the ao486 core which virtual drives/cds/floppies to mount at which positions, then each game could go onto its own bootable VHD/floppy/CD (with its own AUTOEXEC.BAT and CONFIG.SYS files), with another/shared VHD holding the rest of the OS files (DOS or Windows, along with any TSRs/drivers) so they need not be duplicated for every game, and with any corresponding required game CD mounted as well. That way we wouldn't need to use a DOS-based or Windows-based game launcher, and we could easily give each game its own dedicated set of DOS configuration, and we could rely on the core completely resetting to initial state every time the user switches games. Is anyone thinking about extending the MGL format to support that kind of usage scenario?
Similarly with VIC-20 cartridges, you could define which cartridge memory blocks to activate and which ROMs to load into them (16KB ones are split between ROM files). With VIC-20 games for expanded memory, you could define the correct expansion memory blocks to activate.

With the game selection menu of the The C64, The VIC-20 and C64 Mini systems they use save state snapshots of games (from the Vice emulator). The advantage is that those contain the mounted media and can optionally start straight at the main menu.

Re: Can't get MGL files to work

Posted: Fri Mar 04, 2022 4:56 pm
by 84mattcarter@gmail.com
edr wrote: Fri Feb 25, 2022 8:30 pm @Kopert brilliant. Think I'd considered it but didn't want `cores` to show up in the menu and wasn't sure symlinks even work on an exfat system. It all works and it's great. Is it still MiSTer if it's easy and fast to launch games without having to care what core something is using?

Something like this structure works fine -

Code: Select all

# ls -al /media/fat/_Games/
...
lrwxr-xr-x  1 root root   24 Feb 25 12:20  cores -> /media/fat/_Arcade/cores
-rwxr-xr-x  1 root root 4.0K Nov 12 08:52 "Ghosts'n Goblins.mra"
-rwxr-xr-x  1 root root  499 Feb 25 08:20 "Ghouls'n Ghosts.mgl"
Hi there, I'm new to the MiSTer and have been using is for a couple weeks, so please excuse my inexperience. I was wondering if someone can expand upon how to get the arcade .mgl files to work properly? I've successfully set up most all other cores .mgl files, but am getting stuck on the arcade cores .mgl files to load.

Also, has anyone got the GB/GBC .mgl files boot to game? I can boot the to the core but the game will not load. I've tried all the different type and index combinations but game will still not load. Thanks!

Re: Can't get MGL files to work

Posted: Tue Mar 08, 2022 1:31 am
by RegalCutlass
I don't think MGL files support arcade games. MiSTer already has MRA files for that, which serve the same function but have way more metadata about how to load the ROM.

I haven't tried loading GB or GBC games yet but I'll give it a shot tomorrow and report back.

Re: Can't get MGL files to work

Posted: Wed Mar 09, 2022 10:10 am
by AmintaMister
Hi all!

What about mounting a C64 disk ".D64"?

In the C64.csv files I've found:

Code: Select all

"H7S0,D64G64T64D81,Mount #8;",
"H0S1,D64G64T64D81,Mount #9;",

Re: Can't get MGL files to work

Posted: Wed Mar 09, 2022 10:27 am
by AmintaMister
Ok, I've figured out:

Code: Select all

<mistergamedescription>
	<rbf>_Computer/C64</rbf>
	<file delay="1" type="s" index="0" path="playing/time_of_silence_1.0.d64"/>
</mistergamedescription>
Problem is that games like "Time of silence" need the normal rom and not the Dolphin one, how can I set this in <mistergamedescription>?