Tutorial
Updated
Retroarch Wiiflow Plugins: independent cores and pixel perfect scanlines
This is a little guide for widescreen wiiflow users, on how to correctly configure all Retroarch cores to reproduce the old games as they appeared on their original displays (CRT and portable consoles screens).
With Retroarch Wii, saving separate configurations it's not as straightforward as you may think, you need to "mod" the cores first.
The RA cores in this pack are already modded to save ALL settings everytime you quit, like Hexaeco does. I've not included my .cfg files because they're set for SD only and all paths may be different from yours. However with these modded cores and this guide, you can easily set everything up. You can also learn how to "mod" the cores yourself to save their own configurations.
Everyone is free to test and add updated or missing RA cores and share them here with the community.
INSTALLATION AND CONFIGURATION:
1 - Backup and then delete all your existing Retroarch files within wiiflow/plugins and on root.
Do it in order to prevent conflicts with configurations and to be able to restore your previous RA setup anytime.
Seriously, do a backup! I take no responsability if you don't.
DON'T delete the .ini files.
Make sure to make a backup of these folders, then delete all .dol and .cfg files contained:
retroarch
retr52rch
wiiflow/plugins/Retroarch-Wii
wiiflow/plugins/Arcade/MAME_2003_plus/mame_dols
wiiflow/plugins/Arcade/MAME_2003_plus/mame_alt_dols
wiiflow/plugins/Arcade/FBA_VM/dols
wiiflow/plugins/RA-HEXAECO
2 - Download my Cores Pack. Extract it and copy the content of each folder to the following paths:
wiiflow/plugins/Retroarch-Wii
wiiflow/plugins/Arcade/MAME_2003_plus
wiiflow/plugins/Arcade/FBA_VM
wiiflow/plugins/RA-HEXAECO
private/VTREX
* Don't forget to put the Bios files in the system directory. They're not included in this pack.
**The 'private' folder is included only for Vectrex overlays but it can also contain your SD wii channels.
DON'T delete it, just add the VTREX folder and its content to your private folder.
3 - Some .dol filenames have been changed.
Open "RA_cores_hex-editing.txt" to see all file names.
Update your plugins .ini files with the new .dol names.
4 - Open "RA_settings.txt" and follow directions to change the required settings for each core.
-END.
ENJOY YOUR GAMES WITH THIS NEW SETUP!
Read the following tutorial to learn the process, if you want to add some missing cores or update them with new versions.
TUTORIAL: Retroarch Wii - per core configurations and pixel perfect scanlines
Preparing and hex editing the .dol files
Normally, all Retroarch cores save their settings in 2 global files: retroarch.cfg and retroarch-core-options.cfg.
This is where Retroarch fails, if you ask me. Some settings, like screen resolutions, can't be global because so many systems worked at different resolutions.
Furthermore, some cores like Genplus_GX or Gambatte, are each one emulating "groups" of machines, all requiring different video setups.
For example, all Sega consoles emulated by Genplus_GX use different resolutions, while Gambatte can use a different overlay grid and colorization for the DMG Game boy and the GBC. So, if you set Genplus_GX for the Game Gear, the same settings would then be used for the Megadrive too, forcing you to re-adjust settings each time. To prevent this madness, you first need to make duplicates of these cores and hex edit them so that they are treated as independent emulators.
- Make multiple copies of these cores, and rename them in a way that helps differentiate the platforms:
e.g.
gambatte_libretro_wii.dol
copied and renamed as:
gambatte_libretro_wii_DMG.dol
gambatte_libretro_wii_GBC.dol
All .dol files must be hex edited to save separate configurations, in order to prevent conflicts (thanks @Wiimpathy for his tutorial).
To make all cores completely independent, however, you must specify a new name for BOTH 'retroarch.cfg' AND 'retroarch-core-options.cfg':
- Open your .dol file with an hex editor
- In the search field, type .cfg and search for text
- Find and replace the text 'retroarch.cfg' with a name with the same lenght, which helps to identify it:
e.g.
retroarch.cfg --> original name
gamb_dmg_.cfg --> same lenght, name identifies Gambatte and DMG Game boy
There are multiple 'retroarch.cfg' entries, but the only one to change is the one next to 'system'
- Do the same with 'retroarch-core-options.cfg'.
In the file 'RA_cores_hex-editing.txt' you will see a complete list of the names I've used for .cfg files, as a reference.
e.g.
retroarch-core-options.cfg --> original name
gamb_dmg_-core-options.cfg --> same lenght, only the 'retroarch' part has been changed
- Save your file and copy this modified .dol to your sd card.
- Delete all residual .cfg files for that core in the retroarch root folder and retroarch/config
- Launch this dol. You should see a 'welcome' message on the first boot
1 - Disable all default filters
- Go to 'Settings' then 'Video'
- Set 'Bilinear filtering' to OFF
- Set 'Soft Filter' to OFF
- Set 'Deflicker' to OFF
- Go to 'Video' > 'Output' and click on 'Screen Resolution' to apply Deflicker OFF
Note: You can't really disable 'Bilinear Filtering' because of a little bug. Disabling Bilinear Filtering will just remove blur from menus, no changes in the game graphics. Sometimes it will occasionally disappear in Genplus_GX games, only to reappear later on when the game switches resolutions. Leave 'Bilinear Filtering' enabled only with Genplus_GX.
2 - Set up Screen Resolution (vertical Height)
The best result can be obtained if the game can be displayed at a pixel perfect scale (2x or 3x, depending on the case).
With some consoles (mostly Sega), before you work on the video resolution, you have to first set 'Borders' to 'FULL' in the 'Options' menu, because it will affect width and height in pixels.
- Launch your game and select 'Settings' > 'Video' > 'Scaling'
- Set 'Integer Scale' to ON.
- Select 'Custom Aspect Ratio height' and set it to 2x or 3x, depending on the original game resolution.
Take note of the chosen Height value (vertical resolution).
At this point, you will face 3 possible scenarios:
a) Vertical 2x resolution is 448px (e.g. Megadrive, SNES, many arcade games...).
This is optimal for the Wii, as it vertically takes up the entire screen and it's a pixel perfect scale.
- Change the 'Screen Resolution' from 'Default' to 640x448.
b) Vertical 2x resolution is bigger than 448px (e.g. NES, PC-engine, some arcade games, ...).
If the difference is minimal (e.g. 480 instead of 448 pixels) and you can see all the important stuff like health bars, inventory, etc.:
- Keep the default Screen Resolution (640x480)
If the difference is bigger, or you can't see important stuff like health bars, inventory, etc.:
- Reduce Screen Resolution to 640x448, renouncing to pixel perfect scaling
c) Portable consoles. A 3x scale will generally fit the screen, but if you find it too big and blocky, use a 2x custom scale.
- Use the default Screen Resolution (640x480)
- Choose a Custom Aspect Ratio of 2x or 3x
- Set 'Integer Scale' to OFF and adjust the X and Y position to center the picture
3 - Width adjustment
a) If your integer custom height is matching the vertical screen resolution (e.g. they're both 480px):
- Set 'Aspect Ratio' to 'Core Provided' or '4:3' or, '1:1 PAR', depending on the case. It will just shrink/stretch the picture horiontally.
Most emulators will look right in 4:3 mode but sometimes width proportions will not look right.
Try to find some circular or square shape in the game graphics, then try to switch between the above mentioned aspect ratios until they look correctly sized.
If it's still looking too thin, set 'Screen VI Width' to a greater value than 640, then click on 'Video' > 'Output' > 'Screen Resolution' to apply VI Width.
b) If your custom height is smaller than your vertical screen resolution (e.g. portable consoles at 2X scale), you have no other option than using:
- 'Aspect Ratio' = 'Custom'
On portable consoles the aspect ratio will look a little horizontally stretched, because the actual pixels aspect ratio was different. However, the difference is never too big and it's the only way to perfectly apply grid scanlines. In my opinion it's still better than a filtered image.
You can only try to adjust width by changing the appropriate settings on your TV, if available.
4 - Apply the correct scanlines overlay
- Go to 'Quick Menu' and select 'Onscreen Overlay' = 'ON'.
- Choose 'Overlay Preset' and select scanlines with the same resolution and scale of the game.
(open RA_settings.txt to see the correct overlays to use).
- Set 'Overlay Scale' to 1.00 and 'Overlay Opacity' to your liking (don't overdo it, or the screen will become too dark).
5 - Saving
Cores configuration files will be saved in the Retroarch folder on root
- When you quit the app, all settings are automatically saved in separate per-core .cfg files, similarly to RA Hexaeco.
- Make sure that 'Save Configuration on Exit' and 'Use Global Core Options File' are both set to 'ON'. They're generally found in 'Settings'>'Configuration' submenu.
Arcade games are a different story, each game is often a separate machine with its own resolution.
- Always use 'Save Game overrides' with Arcade games
See 'RA_cores_hex-editing.txt' for a full list of all the .cfg files that will be generated.
6 - "Locking" configuration
Once you're satisfied with the configuration, I suggest you to choose:
'Save Configuration on Exit' = 'OFF'.
This way you will prevent Retroarch to pointlessly save everytime.
You will also prevent to accidentally mess up with the configuration.
With Retroarch Wii, saving separate configurations it's not as straightforward as you may think, you need to "mod" the cores first.
The RA cores in this pack are already modded to save ALL settings everytime you quit, like Hexaeco does. I've not included my .cfg files because they're set for SD only and all paths may be different from yours. However with these modded cores and this guide, you can easily set everything up. You can also learn how to "mod" the cores yourself to save their own configurations.
Everyone is free to test and add updated or missing RA cores and share them here with the community.
-This guide assumes that both your Wii console and TV are set to 16:9 aspect ratio
-I'm not using the newest RA cores from the latest Wiiflow Plugins Pack, because I can't get the scanlines to work with them. I've currently re-edited the older RA cores from the Plugins Pack Rev 6 (RA 1.7.6 through 1.8.8) to TOTALLY save separate configurations. They work really good even if they're less recent versions.
-Menus are rearranged differently between the various RA versions, the important settings are generally found in submenus called: Video, Options, Overlays.
-In a few cases, it's not possible to achieve pixel perfect resolution and aspect ratio on the Wii, because some games require a bigger vertical resolution than the wii or different pixel's aspect ratio than your TV.
-I removed non-working cores from Retroarch-Wii (e.g. Fceumm, snes9x_next), but I've included their RA-Hexaeco counterparts, plus some other Hexaeco cores as an alternative. This pack is not complete by any means, but the "main" emulators should be there.
-This guide partially works with RA Hexaeco. I couldn't edit the cores to save separate core-options files, only regular settings. But it can be possible, I guess.
-I'm not using the newest RA cores from the latest Wiiflow Plugins Pack, because I can't get the scanlines to work with them. I've currently re-edited the older RA cores from the Plugins Pack Rev 6 (RA 1.7.6 through 1.8.8) to TOTALLY save separate configurations. They work really good even if they're less recent versions.
-Menus are rearranged differently between the various RA versions, the important settings are generally found in submenus called: Video, Options, Overlays.
-In a few cases, it's not possible to achieve pixel perfect resolution and aspect ratio on the Wii, because some games require a bigger vertical resolution than the wii or different pixel's aspect ratio than your TV.
-I removed non-working cores from Retroarch-Wii (e.g. Fceumm, snes9x_next), but I've included their RA-Hexaeco counterparts, plus some other Hexaeco cores as an alternative. This pack is not complete by any means, but the "main" emulators should be there.
-This guide partially works with RA Hexaeco. I couldn't edit the cores to save separate core-options files, only regular settings. But it can be possible, I guess.
INSTALLATION AND CONFIGURATION:
1 - Backup and then delete all your existing Retroarch files within wiiflow/plugins and on root.
Do it in order to prevent conflicts with configurations and to be able to restore your previous RA setup anytime.
Seriously, do a backup! I take no responsability if you don't.
DON'T delete the .ini files.
Make sure to make a backup of these folders, then delete all .dol and .cfg files contained:
retroarch
retr52rch
wiiflow/plugins/Retroarch-Wii
wiiflow/plugins/Arcade/MAME_2003_plus/mame_dols
wiiflow/plugins/Arcade/MAME_2003_plus/mame_alt_dols
wiiflow/plugins/Arcade/FBA_VM/dols
wiiflow/plugins/RA-HEXAECO
2 - Download my Cores Pack. Extract it and copy the content of each folder to the following paths:
wiiflow/plugins/Retroarch-Wii
wiiflow/plugins/Arcade/MAME_2003_plus
wiiflow/plugins/Arcade/FBA_VM
wiiflow/plugins/RA-HEXAECO
private/VTREX
* Don't forget to put the Bios files in the system directory. They're not included in this pack.
**The 'private' folder is included only for Vectrex overlays but it can also contain your SD wii channels.
DON'T delete it, just add the VTREX folder and its content to your private folder.
3 - Some .dol filenames have been changed.
Open "RA_cores_hex-editing.txt" to see all file names.
Update your plugins .ini files with the new .dol names.
4 - Open "RA_settings.txt" and follow directions to change the required settings for each core.
-END.
ENJOY YOUR GAMES WITH THIS NEW SETUP!
Post automatically merged:
Read the following tutorial to learn the process, if you want to add some missing cores or update them with new versions.
TUTORIAL: Retroarch Wii - per core configurations and pixel perfect scanlines
Preparing and hex editing the .dol files
Normally, all Retroarch cores save their settings in 2 global files: retroarch.cfg and retroarch-core-options.cfg.
This is where Retroarch fails, if you ask me. Some settings, like screen resolutions, can't be global because so many systems worked at different resolutions.
Furthermore, some cores like Genplus_GX or Gambatte, are each one emulating "groups" of machines, all requiring different video setups.
For example, all Sega consoles emulated by Genplus_GX use different resolutions, while Gambatte can use a different overlay grid and colorization for the DMG Game boy and the GBC. So, if you set Genplus_GX for the Game Gear, the same settings would then be used for the Megadrive too, forcing you to re-adjust settings each time. To prevent this madness, you first need to make duplicates of these cores and hex edit them so that they are treated as independent emulators.
- Make multiple copies of these cores, and rename them in a way that helps differentiate the platforms:
e.g.
gambatte_libretro_wii.dol
copied and renamed as:
gambatte_libretro_wii_DMG.dol
gambatte_libretro_wii_GBC.dol
All .dol files must be hex edited to save separate configurations, in order to prevent conflicts (thanks @Wiimpathy for his tutorial).
To make all cores completely independent, however, you must specify a new name for BOTH 'retroarch.cfg' AND 'retroarch-core-options.cfg':
- Open your .dol file with an hex editor
- In the search field, type .cfg and search for text
- Find and replace the text 'retroarch.cfg' with a name with the same lenght, which helps to identify it:
e.g.
retroarch.cfg --> original name
gamb_dmg_.cfg --> same lenght, name identifies Gambatte and DMG Game boy
There are multiple 'retroarch.cfg' entries, but the only one to change is the one next to 'system'
- Do the same with 'retroarch-core-options.cfg'.
In the file 'RA_cores_hex-editing.txt' you will see a complete list of the names I've used for .cfg files, as a reference.
e.g.
retroarch-core-options.cfg --> original name
gamb_dmg_-core-options.cfg --> same lenght, only the 'retroarch' part has been changed
- Save your file and copy this modified .dol to your sd card.
- Delete all residual .cfg files for that core in the retroarch root folder and retroarch/config
- Launch this dol. You should see a 'welcome' message on the first boot
1 - Disable all default filters
- Go to 'Settings' then 'Video'
- Set 'Bilinear filtering' to OFF
- Set 'Soft Filter' to OFF
- Set 'Deflicker' to OFF
- Go to 'Video' > 'Output' and click on 'Screen Resolution' to apply Deflicker OFF
Note: You can't really disable 'Bilinear Filtering' because of a little bug. Disabling Bilinear Filtering will just remove blur from menus, no changes in the game graphics. Sometimes it will occasionally disappear in Genplus_GX games, only to reappear later on when the game switches resolutions. Leave 'Bilinear Filtering' enabled only with Genplus_GX.
2 - Set up Screen Resolution (vertical Height)
The best result can be obtained if the game can be displayed at a pixel perfect scale (2x or 3x, depending on the case).
With some consoles (mostly Sega), before you work on the video resolution, you have to first set 'Borders' to 'FULL' in the 'Options' menu, because it will affect width and height in pixels.
- Launch your game and select 'Settings' > 'Video' > 'Scaling'
- Set 'Integer Scale' to ON.
- Select 'Custom Aspect Ratio height' and set it to 2x or 3x, depending on the original game resolution.
Take note of the chosen Height value (vertical resolution).
At this point, you will face 3 possible scenarios:
a) Vertical 2x resolution is 448px (e.g. Megadrive, SNES, many arcade games...).
This is optimal for the Wii, as it vertically takes up the entire screen and it's a pixel perfect scale.
- Change the 'Screen Resolution' from 'Default' to 640x448.
b) Vertical 2x resolution is bigger than 448px (e.g. NES, PC-engine, some arcade games, ...).
If the difference is minimal (e.g. 480 instead of 448 pixels) and you can see all the important stuff like health bars, inventory, etc.:
- Keep the default Screen Resolution (640x480)
If the difference is bigger, or you can't see important stuff like health bars, inventory, etc.:
- Reduce Screen Resolution to 640x448, renouncing to pixel perfect scaling
c) Portable consoles. A 3x scale will generally fit the screen, but if you find it too big and blocky, use a 2x custom scale.
- Use the default Screen Resolution (640x480)
- Choose a Custom Aspect Ratio of 2x or 3x
- Set 'Integer Scale' to OFF and adjust the X and Y position to center the picture
3 - Width adjustment
a) If your integer custom height is matching the vertical screen resolution (e.g. they're both 480px):
- Set 'Aspect Ratio' to 'Core Provided' or '4:3' or, '1:1 PAR', depending on the case. It will just shrink/stretch the picture horiontally.
Most emulators will look right in 4:3 mode but sometimes width proportions will not look right.
Try to find some circular or square shape in the game graphics, then try to switch between the above mentioned aspect ratios until they look correctly sized.
If it's still looking too thin, set 'Screen VI Width' to a greater value than 640, then click on 'Video' > 'Output' > 'Screen Resolution' to apply VI Width.
b) If your custom height is smaller than your vertical screen resolution (e.g. portable consoles at 2X scale), you have no other option than using:
- 'Aspect Ratio' = 'Custom'
On portable consoles the aspect ratio will look a little horizontally stretched, because the actual pixels aspect ratio was different. However, the difference is never too big and it's the only way to perfectly apply grid scanlines. In my opinion it's still better than a filtered image.
You can only try to adjust width by changing the appropriate settings on your TV, if available.
4 - Apply the correct scanlines overlay
- Go to 'Quick Menu' and select 'Onscreen Overlay' = 'ON'.
- Choose 'Overlay Preset' and select scanlines with the same resolution and scale of the game.
(open RA_settings.txt to see the correct overlays to use).
- Set 'Overlay Scale' to 1.00 and 'Overlay Opacity' to your liking (don't overdo it, or the screen will become too dark).
5 - Saving
Cores configuration files will be saved in the Retroarch folder on root
- When you quit the app, all settings are automatically saved in separate per-core .cfg files, similarly to RA Hexaeco.
- Make sure that 'Save Configuration on Exit' and 'Use Global Core Options File' are both set to 'ON'. They're generally found in 'Settings'>'Configuration' submenu.
Arcade games are a different story, each game is often a separate machine with its own resolution.
- Always use 'Save Game overrides' with Arcade games
See 'RA_cores_hex-editing.txt' for a full list of all the .cfg files that will be generated.
6 - "Locking" configuration
Once you're satisfied with the configuration, I suggest you to choose:
'Save Configuration on Exit' = 'OFF'.
This way you will prevent Retroarch to pointlessly save everytime.
You will also prevent to accidentally mess up with the configuration.
Attachments
Last edited by Tetsuo Shima,