mateusbentes's Profile
Linux enthusiast, open-source contributor, and retro gaming fan. Currently working on a native Linux port of Dink Smallwood HD and developing OpenGalaxy (a DRM-free game client for Linux). Passionate about privacy, digital sovereignty, and cross-platform compatibility. Also interested in AI, database administration, and decentralized social networks. You can find my projects on GitHub under https://github.com/mateusbentes or contact me via mateusbentes@tuta.io for collaborations.
Hey Seth, thanks for merging the patches and setting up the linux_setup.sh script! That's a clever workaround for the assets. I tested the build on Ubuntu and everything you listed works great — playing the base game, browsing/installing DMODs, save states, audio with MP3 and MIDI. Regarding the things that don't work yet, I'd like to take a crack at some of them: Window resizing. The key pieces are:
An UpdateViewport() function that recalculates the OpenGL projection matrix to maintain the 4:3 aspect ratio with letterboxing/pillarboxing
Hooking into SDL_WINDOWEVENT_RESIZED to update the viewport and the engine's screen info (SetPrimaryScreenSize + SetupScreenInfo + SetupFakePrimaryScreenSize) so mouse coordinates stay correct after resize
Calling UpdateViewport() from OnScreenSizeChange() as well
Fullscreen toggle (F11) — I also had this working. The approach was:
OnFullscreenToggleRequestMultiplatform() using SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP) for borderless fullscreen
Using SDL_GetKeyboardState() to poll F11 since the Proton BaseApp doesn't have a GetKeyState() method on non-Windows platforms
The hotkey handlers needed to be moved outside the #ifdef C_DINK_KEYBOARD_INPUT block in CheckForHotkeys() since that macro is only defined for _WIN32
Controller support — I haven't looked into this yet but I see the GamepadManager and SDL2 gamepad code is already in the Proton SDK. Might just need some wiring up on the Linux side. I can submit PRs for the resize and fullscreen fixes if you're interested. Should I base them on the current master now that you've cleaned things up? Also great news about iOS, Android and HTML5 compiling out of the box — that lowers the barrier a lot for the community.
An UpdateViewport() function that recalculates the OpenGL projection matrix to maintain the 4:3 aspect ratio with letterboxing/pillarboxing
Hooking into SDL_WINDOWEVENT_RESIZED to update the viewport and the engine's screen info (SetPrimaryScreenSize + SetupScreenInfo + SetupFakePrimaryScreenSize) so mouse coordinates stay correct after resize
Calling UpdateViewport() from OnScreenSizeChange() as well
Fullscreen toggle (F11) — I also had this working. The approach was:
OnFullscreenToggleRequestMultiplatform() using SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP) for borderless fullscreen
Using SDL_GetKeyboardState() to poll F11 since the Proton BaseApp doesn't have a GetKeyState() method on non-Windows platforms
The hotkey handlers needed to be moved outside the #ifdef C_DINK_KEYBOARD_INPUT block in CheckForHotkeys() since that macro is only defined for _WIN32
Controller support — I haven't looked into this yet but I see the GamepadManager and SDL2 gamepad code is already in the Proton SDK. Might just need some wiring up on the Linux side. I can submit PRs for the resize and fullscreen fixes if you're interested. Should I base them on the current master now that you've cleaned things up? Also great news about iOS, Android and HTML5 compiling out of the box — that lowers the barrier a lot for the community.






