Found an interesting raspberry pi project.
I have been gone working on my localhost video ‘website’ that I call personalwebplayer and rewatching some anime.
Famicom and Famicom Disk System MegaLab Arcade presets have been added to the repo.
Game Boy MegaLab Arcade presets have been added to the repo with some fixes to the other presets apparently.
I plan on making the Console Arcade Stick presets into overlays in the future. A quick idea:
Edit: image change with touchups.
I have what I want from the overlays and will work on them once I get done with the MegaLab Arcade presets.
Thought to do the overlays for systems that can be played on the raspberry pi and slower pcs.
There has been a change to the screen border which I made to look like a rubber gasket. I also wanted to see if a DS overlay would be possible and it is with core option Screen Gap.
Just a quick update, I changed the ball_alt of Console Stick to 50% gray to fix the gray colors and keep a good black color. The change will be added to the repo when I do the rest of the Game Boys.
Just messed around with the Ball Top and found a setting that makes it look better. Still learning along the way.
Made a few more adjustments to Console Arcade Stick. I will try to update everything as soon as I can with the backgrounds and the rest of MegaLab Arcade Game Boy presets.
Edit: made a few more tiny changes
After toying around with a decent amount of edits to Console Arcade Stick, I came up with more of what my original idea was. I did the cosmetic changes as well as changes to the reflection settings.
Edit: I made a few more adjustments to the inner frame and added an outline for the bezel. Just when I think I am done.
Hello hgoda,
thanks for your awesome work. i love these shaders. Actually this inspired me for making my gameboy core with 4 player support. I would love to see these shader as a gbc3player or gbc4shader. Is this possible?
you can check out my website or github for downloading the core.
Thanks for the comment. HyperspaceMadness’s Mega Bezel is special in of itself and is the shader, all I have done is graphics and some presets to be technical. I think he plans on doing 3 screen support in the future for Mega Bezel but 4 screen will still be possible by using two screens stacked.
I have tried to load the core but Retroarch crashes everytime.
[INFO] RetroArch 1.16.0 (Git 14cb373)
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2
[INFO] Version: 1.16.0
[INFO] Git: 14cb373
[INFO] Built: Oct 2 2023
[INFO] =================================================
[INFO] [Input]: Found input driver: "dinput".
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Core]: Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Set video size to: 1920x1080.
[INFO] [Vulkan]: Vulkan dynamic library loaded.
[INFO] [Vulkan]: Found vulkan context: "vk_w".
[INFO] [Vulkan]: Detecting screen resolution: 1920x1080.
[INFO] [Vulkan]: Found GPU at index 0: "NVIDIA GeForce GTX 1650".
[INFO] [Vulkan]: Found GPU at index 1: "Intel(R) HD Graphics 530".
[INFO] [Vulkan]: Using GPU index 0.
[INFO] [Vulkan]: Using GPU: "NVIDIA GeForce GTX 1650".
[INFO] [Vulkan]: Queue family 0 supports 16 sub-queues.
[INFO] [Vulkan]: Got 3 swapchain images.
[INFO] [Vulkan]: Using resolution 1920x1080.
[INFO] [Vulkan]: Using RGB565 format.
[INFO] [Vulkan]: Loading stock shader.
[INFO] [XInput]: Found XInput v1.4.
[WARN] [DInput]: Strong rumble unavailable.
[WARN] [DInput]: Weak rumble unavailable.
[INFO] [Joypad]: Found joypad driver: "dinput".
[INFO] [Autoconf]: GC101 GAMEPAD 1.03 configured in port 1.
[INFO] [Video]: Found display server: "win32".
[INFO] [XAudio2]: Requesting 64 ms latency, using 64 ms latency.
[INFO] [Audio]: Started synchronous audio driver.
[DEBUG] [WASAPI mic]: Initialized microphone driver context.
[INFO] [Microphone]: Initialized microphone driver.
[INFO] [Display]: Found display driver: "vulkan".
[INFO] [Playlist]: Loading history file: "A:\LaunchBox\Emulators\RetroArch\content_history.lpl".
[INFO] [Playlist]: Loading history file: "A:\LaunchBox\Emulators\RetroArch\content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "A:\LaunchBox\Emulators\RetroArch\content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "A:\LaunchBox\Emulators\RetroArch\content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "A:\LaunchBox\Emulators\RetroArch\content_favorites.lpl".
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[DEBUG] Subsystem ID: 0
Special game type: 2 Player Game Boy Link
Ident: gb_link_2p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Subsystem ID: 1
Special game type: 3 Player Game Boy with 4-Player Adapter
Ident: gb_3p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Subsystem ID: 2
Special game type: 4 Player Game Boy with 4-Player Adapter
Ident: gb_4p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Subsystem ID: 3
Special game type: 4 Player Game Boy 2x 2-Player Link
Ident: gb_2x2p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Subsystems: 4
[INFO] [Content]: Updating firmware status for: "A:\LaunchBox\Emulators\RetroArch\cores\DoubleCherryGB_libretro.dll" on "A:\LaunchBox\Emulators\RetroArch\system".
[INFO] [Core]: Using content: "A:\Nintendo Game Boy\F-1 Race (World) (Rev A).gb".
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[DEBUG] [Audio]: Stopped audio driver "xaudio"
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] RetroArch 1.16.0 (Git 14cb373)
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2
[INFO] Version: 1.16.0
[INFO] Git: 14cb373
[INFO] Built: Oct 2 2023
[INFO] =================================================
[INFO] [Input]: Found input driver: "dinput".
[INFO] [Core]: Loading dynamic libretro core from: "A:\LaunchBox\Emulators\RetroArch\cores\DoubleCherryGB_libretro.dll"
[DEBUG] [Environ]: SET_SUBSYSTEM_INFO.
[DEBUG] Special game type: 2 Player Game Boy Link
Ident: gb_link_2p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Special game type: 3 Player Game Boy with 4-Player Adapter
Ident: gb_3p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Special game type: 4 Player Game Boy with 4-Player Adapter
Ident: gb_4p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[DEBUG] Special game type: 4 Player Game Boy 2x 2-Player Link
Ident: gb_2x2p
ID: 257
Content:
[DEBUG] GameBoy #1 (optional)
[DEBUG] GameBoy #2 (optional)
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CONTENT_INFO_OVERRIDE.
[INFO] [Content Override]: File Extension: ' gb' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override]: File Extension: 'dmg' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override]: File Extension: 'gbc' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override]: File Extension: 'cgb' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Content Override]: File Extension: 'sgb' - need_fullpath: FALSE, persistent_data: TRUE
[INFO] [Overrides]: Redirecting save file to "A:\LaunchBox\Emulators\RetroArch\saves\F-1 Race (World) (Rev A).srm".
[INFO] [Overrides]: Redirecting save state to "A:\LaunchBox\Emulators\RetroArch\states\F-1 Race (World) (Rev A).state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: PERFORMANCE_LEVEL: 4.
[INFO] [Content]: Loading content file: "A:\Nintendo Game Boy\F-1 Race (World) (Rev A).gb".
[INFO] [Environ]: SET_VARIABLES.
[DEBUG] [Environ]: GET_VARIABLE: multitgb_emulated_gameboys = "1"
[DEBUG] [Environ]: GET_VARIABLE: tgbdual_gblink_enable = "disabled"
[ERROR] [Environ]: GET_VARIABLE: tgbdual_screen_placement - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_switch_screens - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_single_screen_mp - Invalid value.
[INFO] [Environ]: SET_GEOMETRY: 160x144, Aspect: 1.111.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_audio_output - Invalid value.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[DEBUG] Port 1:
[DEBUG] "D-Pad Up" => "D-Pad Up"
[DEBUG] "D-Pad Down" => "D-Pad Down"
[DEBUG] "D-Pad Left" => "D-Pad Left"
[DEBUG] "D-Pad Right" => "D-Pad Right"
[DEBUG] "B Button (Down)" => "B"
[DEBUG] "A Button (Right)" => "A"
[DEBUG] "Select Button" => "Select"
[DEBUG] "Start Button" => "Start"
[DEBUG] Port 2:
[DEBUG] "D-Pad Up" => "D-Pad Up"
[DEBUG] "D-Pad Down" => "D-Pad Down"
[DEBUG] "D-Pad Left" => "D-Pad Left"
[DEBUG] "D-Pad Right" => "D-Pad Right"
[DEBUG] "B Button (Down)" => "B"
[DEBUG] "A Button (Right)" => "A"
[DEBUG] "Select Button" => "Select"
[DEBUG] "Start Button" => "Start"
[DEBUG] Port 3:
[DEBUG] "D-Pad Up" => "D-Pad Up"
[DEBUG] "D-Pad Down" => "D-Pad Down"
[DEBUG] "D-Pad Left" => "D-Pad Left"
[DEBUG] "D-Pad Right" => "D-Pad Right"
[DEBUG] "B Button (Down)" => "B"
[DEBUG] "A Button (Right)" => "A"
[DEBUG] "Select Button" => "Select"
[DEBUG] "Start Button" => "Start"
[DEBUG] Port 4:
[DEBUG] "D-Pad Up" => "D-Pad Up"
[DEBUG] "D-Pad Down" => "D-Pad Down"
[DEBUG] "D-Pad Left" => "D-Pad Left"
[DEBUG] "D-Pad Right" => "D-Pad Right"
[DEBUG] "B Button (Down)" => "B"
[DEBUG] "A Button (Right)" => "A"
[DEBUG] "Select Button" => "Select"
[DEBUG] "Start Button" => "Start"
[INFO] [Environ]: SET_VARIABLES.
[INFO] [Core]: Saved core options file to "A:\LaunchBox\Emulators\RetroArch\config\DoubleCherryGB\DoubleCherryGB.opt".
[INFO] [Environ]: RETRO_ENVIRONMENT_GET_GAME_INFO_EXT.
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[DEBUG] [Environ]: GET_VARIABLE: multitgb_emulated_gameboys = "1"
[DEBUG] [Environ]: GET_VARIABLE: tgbdual_gblink_enable = "disabled"
[ERROR] [Environ]: GET_VARIABLE: tgbdual_screen_placement - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_switch_screens - Invalid value.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_single_screen_mp - Invalid value.
[INFO] [Environ]: SET_GEOMETRY.
[ERROR] [Environ]: GET_VARIABLE: tgbdual_audio_output - Invalid value.
[INFO] [Replay]: Found last replay slot: #0
Oh, thanks for the bug-report. i didn’t realize there’s a bug in single-player-mode (which is the default option, when first starting the core). As a hotfix i added my config file to the release. Now i should start with 4 emulated gameboys.
Wow. looks really cool thank you so for now it’s not possible to split into 4 screen, isn’t it? I mean this would be pretty cool for n64, dreamcast etc. splitscreen games also.
I found this post https://github.com/libretro/glsl-shaders/issues/129. Maybe this shader could be helpful?
I have set custom 2player Split-Screen presets to Duimon’s PVM20 and TM20 graphics for consoles, 3DS and DS.