otavepto / gbe_fork

Fork of https://gitlab.com/Mr_Goldberg/goldberg_emulator
https://gitlab.com/Mr_Goldberg/goldberg_emulator
GNU Lesser General Public License v3.0
185 stars 54 forks source link

quit when a game requests a missing SDK interface #160

Closed otavepto closed 2 weeks ago

otavepto commented 1 month ago

currently, the emu just returns the latest interface version for any missing interface. instead, make it quit with an error, message boxes might not be practical for Linux, need to look into that.

requested here: https://github.com/otavepto/gbe_fork/pull/159#issuecomment-2094792132

otavepto commented 1 month ago

for a message box on linux found this: https://github.com/thegabman/native_message_box but it requires GTK library, as far as I can see linux kernel doesn't offer anything UI related out of the box.

maybe force-create a file MISSING_INTERFACE.txt beside the .so library ?

otavepto commented 3 weeks ago

@Detanup01 what do suggest for this given that Linux doesn't support UI message boxes by default. maybe we can create a file MISSING_IMPLEMENTATION.txt beside the .dll/.so whenever a game asks for a missing interface. additional with Windows macro we can display a message box

#if defined(__Windows_)
MessageBoxA("missing interface " + interface)

and finally exit the process

Detanup01 commented 3 weeks ago

Both should create a MISSING_INTERFACE.txt and inside the version and when and what API does it used. so like

APPID=480
TIME=2024 04 07 13:30:03 +00 00
INTERFACES:
TEST_THIS_V002
STEAMCLIENT031

And yes, next to the API. (.so, .dll)

in windows ye it could be call for MessageBox but mainly write out first then show message box. in linux you cannot show anything so maybe check if you running the game from console commands then print out the same things as the file, if that viable