thebezelproject / BezelProject

The Bezel Project installer script
207 stars 46 forks source link

MegaDrive Bezel Dimensions #11

Open chewvodka opened 6 years ago

chewvodka commented 6 years ago

I'm not sure if this is because of a setting in my system or not, but it always looks like the MegaDrive bezel artwork is too big for the game screen. Case in point (I will provide a screenshot if you like), when loading up "Sonic the Hedgehog (USA, Europe)", and starting a game.. the text in the top left corner (Score, Rings, etc) is cut off on the left. I noticed this right away. I found that if I go into RetroArch and change the Quick Menu -> Onscreen Overlay -> Overlay Scale to a setting of 1.10, it works out great. Seems to be this way with EVERY MegaDrive/Genesis game I tested. Other systems I tested, like Arcade (MAME/FBA) and NES look fine.

Is there another setting somewhere to control the size of the game screen, so the bezel would fit right? If not, is there a way to reconfigure the bezel to always load with the 1.10 scale for the MegaDrive only?

jmallen99 commented 5 years ago

I'm seeing the exact same thing! I started going through my games in Retroarch to see if they all work. Seeing no issues in NES, SNES, etc. But when I get to the Sega Master System (SMS) games I notice that the bezels were too large and covering the screen.

There are several that show the obvious overlap - bringing up "Gauntlet", for example, clearly shows the title cut off on both sides of the screen due to the bezel. I have not had the chance to pull up Genesis/MegaDrive yet, but it sounds like it will have the same problem.

I was hoping almost a year later (from the first post) there would be a fix for this. LOVE the bezels though. Excellent project!

EDIT: I tried the OP suggestion of changing the overlay scale in Retroarch to 1.1. This does indeed fix the problem, but it basically pushes the bezels to both sides so that the ends are cut off. This is too bad. I believe the overlays for Sega Master System were originally set up with the wrong size. Either that or different SMS games require different bezel sizes ("Gauntlet" is still a bit cut off, even with 1.1 scale, but the rest look good).

In answer to the OP, you can save all of these changes per core or per game in Retroarch. However, if you do it per CORE it will effect ALL the games used by that core. Since I have only a few of games that have issue with the overlays, I only plan to make changes in certain games.

chewvodka commented 5 years ago

I've played around with this and I think the problem isn't with the Bezel, it's with RetroArch and the default settings it uses for rendering aspect ratios of the games. MegaDrive/Genesis uses a different aspect ratio than Master System. But if you're using the same core (emulator), it will always be wrong for either system. If you save an override of the default configuration to have it use "Core Provided" aspect ratio, it fixes the problem.

As for the problem with it opening up the first bezel for a game that doesn't have one, it should actually load a default bezel for the system (like some NES games will show the NES bezel). I think the default configuration for your Atari 2600 system got messed up somewhere. You can recreate easily enough though. Just load a game, then go into the RetroArch Menu, then back out of the Quick Menu and go to Settings, then down to Onscreen Display, then Onscreen Overlay, then down to Overlay Preset, select it, and navigate towards the bottom of the list where it should have "Atari-2600.cfg". Select that, then go back to the game. It should show the generic Atari 2600 Bezel. Go back into the RetroArch menu, then in the Quick Menu go to the Overrides menu, then click on Save Core Overrides. That will save anything changed to RetroArch (like the changed bezel) as an override for that system. Then when you load up a game, it should load that bezel. That's how the bezels work in the first place, they're overrides that RetroArch loads when the game loads, one for each game (if it exists). If it doesn't, it loads the override for the core with the default system bezel.

If the menus I mention aren't available, let me know and I'll walk you through enabling them. Or if you're smart you might be able to figure it out, there is a menu item to configure what menus are visible. If you get an error trying to save the override, you probably don't have write privileges to the folder where the configurations are located. This was the biggest problem I had, because the script that installs the bezels just writes the files out using an admin account (using sudo) and never takes ownership of the folder. You can fix that easily too by getting to the console (through SSH/Putty or F5 in EmulationStation) and running a command like "sudo chown user:user /path/to/configs". I'm not at my system now to see what the path is. Let me know if you need it.

Good Luck!

ps; You can create an override on a per-game basis to not show a bezel if you want. Just go into that Onscreen Overlay menu and switch the setting that says "Display Overlay". Turn it to off, and it's gone. Then just save an override with it off and it'll never display again, until you turn it back on. I did this on a few games because it was distracting. These are all powerful tools, but once you get familiar with them and how they work, you can do all kinds of neat stuff. Like say you don't like the bezel for Sonic 1, and DO like the one for Sonic 2 (just an example here...) you can change the override to point to the Sonic 2.cfg file instead. Save an override if you love it, or just leave it for that gaming session. Hell, you could play Super Mario World on the SNES with the NES bezel for Contra if you wanted. :)

jmallen99 commented 5 years ago

Thanks! I took out my comment about the default bezel and was going to include it in a new post, but it looks like you answered my question! I'll try it.

I appreciate the response. Thanks again!

chewvodka commented 5 years ago

Yeah I forgot I created this issue. I can see why it was never addressed, because it wasn't an issue. It's because of the way RetroArch is configured with those cores. I honestly don't know why RetroPie and the others still use a specified ratio format like 8:6 and stuff because the core already knows what the aspect ratio should be in. Changing it to "Core Provided" worked for me. You might need to tweak it here and there, like picking "PAR" or even "4:3", but there is happy setting for all of them. Just gotta remember to save an override once you have it set the way you like it, or it'll go back to the standard settings.

jmallen99 commented 5 years ago

Well, I fixed the "load default bezels" issue, just like you said! Thanks! I don't know what happened to mess things up.

I'm still having your original issue though with the aspect ratios of the games. In mine, the Genesis games all look fine (I didn't go through all of them though), it's my SMS games that are out of whack. The thing is, all my settings are already in "core provided" mode. So I'm stumped, unless I go through each game and adjust them game per game. I'm OCD and stubborn enough to do that, just unsure what to change.

jmallen99 commented 5 years ago

Follow Up: Just for anyone having the same problem and reading this later.

I was working on this late last night, but could not find a solution with my SMS games. There are only limited toggles to change the screen image unfortunately. I could make the screen stretched more (when I set the video output to PAL), but couldn't shrink it to the proper ratio.

I had to resort to using a completely different core from Genesis. I went through all my Genesis games and they appear perfect. When I switched cores for SMS, I encountered a variety of issues. I had a couple of games totally not load with the Picodrive core. Others were even worse. I settled for the Gearsystem core, but even then I'm seeing some odd loadup screens, different from before, a couple are in Japanese. At least the aspect ratios are fixed, and I can make changes to the controls without affecting the Genesis layout.

I'll play around with it more tonight and see if I can force English startup screens. I just wanted to post my solution for the aspect ratios being off.

chewvodka commented 5 years ago

I just got home from work and saw this. Before your Followup I was about to ask if you're using the same core for both systems. I'm using Picodrive for all my Sega stuff. Something else I did (which I forgot) was to create a hard fix 'patch' that loads the proper setting per system. If you're using RetroPie (or similar build), EmulationStation launches a script "before launch", to do stuff like disable background music or display a loading video, etc. I tacked on some stuff to make the aspect ratio work. I'm sorry, I was wrong when I said use "Core Provided". That's only half true. You still have to tell the core what system your loading, and change the aspect ratio from there. You still should have it set to "Core Provided" for the RetroArch settings, but anything SMS should be "PAR" in the Quick Settings and Genesis/CD/32x should be "CRT". So my addition to the script is to see if the game being loaded belongs to one of those systems, if it does it moves the current system config to a temporary file and replaces it with one including the correct settings. When it's done running, the game loads. When the game is done, it runs an "on-end" script, where I have it reverting the original settings back and remove the temporary file.


/opt/retropie/configs/all/runcommand-onstart.sh

if [ "$1" = "genesis" ] || [ "$1" = "megadrive" ] || [ "$1" = "sega32x" ] || [ "$1" = "segacd" ]
then
sudo cp /opt/retropie/configs/all/retroarch-core-options.cfg /opt/retropie/configs/all/retroarch-core-options.backup
sudo echo 'picodrive_aspect = "CRT"
picodrive_drc = "enabled"
picodrive_input1 = "6 button pad"
picodrive_input2 = "6 button pad"
picodrive_overclk68k = "disabled"
picodrive_overscan = "disabled"
picodrive_ramcart = "enabled"
picodrive_region = "Auto"
picodrive_sprlim = "disabled"' | cat - /opt/retropie/configs/all/retroarch-core-options.cfg > temp && sudo mv temp /opt/retropie/configs/all/retroarch-core-options.cfg
fi

if [ "$1" = "mastersystem" ]
then
sudo cp /opt/retropie/configs/all/retroarch-core-options.cfg /opt/retropie/configs/all/retroarch-core-options.backup
sudo echo 'picodrive_aspect = "PAR"
picodrive_drc = "enabled"
picodrive_input1 = "3 button pad"
picodrive_input2 = "3 button pad"
picodrive_overclk68k = "disabled"
picodrive_overscan = "disabled"
picodrive_ramcart = "enabled"
picodrive_region = "Auto"
picodrive_sprlim = "disabled"' | cat - /opt/retropie/configs/all/retroarch-core-options.cfg > temp && sudo mv temp /opt/retropie/configs/all/retroarch-core-options.cfg
fi

/opt/retropie/configs/all/runcommand-onend.sh

if [ "$1" = "genesis" ] || [ "$1" = "megadrive" ] || [ "$1" = "sega32x" ] || [ "$1" = "segacd" ] || [ "$1" = "mastersystem" ]
then
sudo mv /opt/retropie/configs/all/retroarch-core-options.backup /opt/retropie/configs/all/retroarch-core-options.cfg
fi

The only other thing you have to do is edit out the "picodrive" lines from the original retroarch-core-options.cfg. If you are familiar with WinSCP or Putty or the terminal, this should be fairly easy to do. Let me know if you have any problems.

jmallen99 commented 5 years ago

I think I found a more elegant (i.e. easier) solution. I went back to my original core (genesis plus gx) for SMS and changed the video aspect ration to 4:3 and saved it to the core. Since Genesis was already showing 4:3 as the "core provided" ratio, it didn't change that, but it did change all my SMS aspects correctly. So now it works! There are still a few games that are still a bit too large for the overlays, such as "Gauntlet", but the rest are much better.

I gratefully appreciate your assistance. By the way, I'm running Retroarch in Win10 with LaunchBox as my frontend. Just for the sake of curiosity, where do you place the run commands you posted? I may find use of something like that down the line.

Thanks again for your help!

chewvodka commented 5 years ago

That's awesome you found a working solution for you. I'm not sure where the paths are for Windows 10. I'm using a Raspberry Pi running RetroPie. It uses EmulationStation as the frontend, RetroArch as the emulator, and PicoDrive as the core for Sega games. RetroArch can be run without any of the other stuff, with it's own frontend, so config files could really be located anywhere on your system. Sorry I don't know for sure. You outta give RetroPie a go though. It's free, except for the cost of a Raspberry Pi ($35) or an Odroid XU4 for GOOD N64/Saturn/Dreamcast gaming ($45). I always used GameEx and stand alone emulators on my computer, but since learning about RetroPie, I've not really done much else on my computer.

jmallen99 commented 5 years ago

I have a full size arcade-style piece of furniture with an arcade board for two players, so I went the PC route. I would like to tinker with Raspberry Pi someday though, maybe when my son is a little older.

For games that require more of an Xbox-style controller, I got an Alienware Alpha hooked up to a large flat panel that I got for the purpose of playing Steam games like a console. It's what I use for emulating systems that came out after the late 90s.

Thanks for sharing your expertise and experience. :)