The Dink Network

Reply to Re: Bugfixes for freedink on Linux

If you don't have an account, just leave the password field blank.
Username:
Password:
Subject:
Antispam: Enter Dink Smallwood's last name (surname) below.
Formatting: :) :( ;( :P ;) :D >( : :s :O evil cat blood
Bold font Italic font hyperlink Code tags
Message:
 
 
August 6th 2022, 12:05 PM
peasantmb.gif
yeoldetoast
Peasant They/Them Australia
LOOK UPON MY DEFORMED FACE! 
I proposed something like this to Beuc some years ago, but he was always reluctant to implement it for reasons that are more obvious to me now. His goal with Freedink was always to emulate v1.08 perfectly to the point where D-mod developers wouldn't need a "get_freedink()" command to work around extant bugs or differences in behaviour, and that those would be slowly ironed out with each new release.

At this point, I would wager that the average amount of people still using 1.08 in complete ignorance is nil, and that nobody who still downloads and plays d-mods is in a position where they're still regularly using it with Windows XP as they have for the last 15 years with the expectation that new d-mod releases will work on it as they have in the past (except for Skorn being contrarian). Therefore at present and into the future, a call to get_version() with a return value of 108 is much more of an indication that the player is using Freedink than 1.08.

The main reason I am strongly against incrementing get_version() in Freedink or a fork, however, is because there are numerous d-mods that completely refuse to run if it returns >=109 due to the reputation of Dink "HD" having appalling compatibility with various DinkC techniques that the author didn't want to have to bother working around. Changing this would break a huge amount of them released in the last ten years without good reason, unless you were to implement it in a command line switch like 1.07 mode is.

If you're determined to implement something like this, I would suggest bringing across the two existing (documented) DinkC functions that are present in 1.09 and later that have never been used by anyone. Making get_platform() return 7 would be a way to determine that the user is definitely using Freedink, and for get_client_version() return the same sort of thing you would have used for get_fork().

In terms of SDL2, i'm using 2.0.10 and for Mixer also 2.0.4. My assumption is that if it's still crashing on that specific screen for you, and the MIDIs sound no different, then those environment variables aren't changing anything. In my case I set them with "export" in a standard Bash session.