-
Notifications
You must be signed in to change notification settings - Fork 392
AROS build fixes and code cleanup. #690
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
What's needed to get these fixes merged @DanielGibson? |
|
time and motivation (for review) on my side |
neo/libs/imgui/imgui.cpp
Outdated
| { | ||
| return (INT_PTR)::ShellExecuteA(NULL, "open", path, NULL, NULL, SW_SHOWDEFAULT) > 32; | ||
| } | ||
| #elif defined(__AROS__) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
patching Dear ImGui is problematic, because I usually just copy over the source files of new upstream versions..
Could you try to get this upstream so next time I update ImGui it doesn't break AROS?
|
I'll look into that, thanks.
…On Wed, 22 Oct 2025, 02:51 Daniel Gibson, ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In neo/libs/imgui/imgui.cpp
<#690 (comment)>:
> @@ -15037,6 +15037,12 @@ static bool Platform_OpenInShellFn_DefaultImpl(ImGuiContext*, const char* path)
{
return (INT_PTR)::ShellExecuteA(NULL, "open", path, NULL, NULL, SW_SHOWDEFAULT) > 32;
}
+#elif defined(__AROS__)
patching Dear ImGui is problematic, because I usually just copy over the
source files of new upstream versions..
Could you try to get this upstream so next time I update ImGui it doesn't
break AROS?
—
Reply to this email directly, view it on GitHub
<#690 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACWCNPFPLMF7T5JACNYMEQT3Y3PLDAVCNFSM6AAAAACDQC7VSWVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZTGNRTGM3TKOBSGI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
Any update on ImGui? Also, I just merged something that creates a merge conflict (I added functions for getting the the time and sleeping at higher resolutions), could you rebase to current master? Thanks :) |
# use libdynmod instead of including "dll" code # clean up code to use consistent formatting # use NewStackSwap to allocate 1MB stack, and handle exit() from the swapped stack gracefully. # dont use autoopened SocketBase and open it ourselves. # Check in the mod's directory first when opening files (se e.g. Rivensin can be installed in its own folder outside the doom folder).
move the timer init call to the AROS_EarlyInit function.
…sure it is used in the build. curl needs libzstd.a, in newer AROS builds.
|
Hi Daniel, I have rebased and reverted the imgui changes/adapted the build, so they are not necessary. I can confirm it successfully builds. |
|
Awesome, thank you! |
|
BTW, is it correct that AROS only has millisecond-precision in |
|
I believe so - but would need to look into it. We did have initial support for HPET, but I'm not sure how complete it is, or if it exposes higher precision. |
|
Note that dhewm3 doesn't necessarily need a high precision/high frequency scheduler, just a precise time source (where querying it has relatively low overhead). In the Windows implementation it does the last millisecond or so of waiting with a busy loop only slowed down by CPU PAUSE instructions: dhewm3/neo/sys/win32/win_main.cpp Lines 1121 to 1145 in 47ae272
On Linux it does the same for the last 100 microseconds |
Apply updates to the AROS build so that it works now that dhewm3 uses SDL2, and newer OpenAL requirements.
Use consistent formatting in the code, so it matches existing code.
Adjust startup code to allocate 1MB stack space.
Check in the directory the game has been launched from, for mod components before the game directory so it doesn't use dooms config instead of the mods.
Don't use auto-opened bsdsocket.library, but open it ourselves (and close on exit).
Remove old dll code - use the dynmodule library provided by AROS.