Nevermind, i found a way to read the error contents)
сб, 18 окт. 2025 г. в 00:44, Александр Гурьянов <[email protected]>:
> Thanks for the reply.
> I organized a hackathon and made pretty good progress on solving my task —
> I replaced Emscripten’s socket implementation with my own and managed to
> get through the initial handshake stage when connecting the client to the
> server.
>
> However, unfortunately, at some point an exception occurs on the server
> and it crashes.
>
> As the mentioned, exception catching is disabled, so I only see a very
> uninformative message:
>
> Exception catching is disabled, this exception cannot be caught. C...
>
> I did some digging and found that the UT99 engine throws exceptions like
> this:
>
> throw (TEXT("SOME TEXT"))
>
> I don’t yet know exactly what TEXT does, but let’s assume it’s equivalent
> to:
>
> throw "Some text"
>
> My question is: is there any way I can print this "Some text" to
> console.log?
> I tried debugging directly in WASM to find the pointer to "Some text",
> but haven’t succeeded yet.
>
> Here’s the _cxa_throw implementation:
>
> function ___cxa_throw(ptr, type, destructor) {
> EXCEPTIONS.infos[ptr] = {
> ptr: ptr,
> adjusted: ptr,
> type: type,
> destructor: destructor,
> refcount: 0,
> caught: false,
> rethrown: false
> };
> EXCEPTIONS.last = ptr;
> if (!("uncaught_exception" in __ZSt18uncaught_exceptionv)) {
> __ZSt18uncaught_exceptionv.uncaught_exception = 1
> } else {
> __ZSt18uncaught_exceptionv.uncaught_exception++
> }
> debugger
> console.warn("___cxa_throw", ptr, type, destructor);
> // throw ptr - " - Exception catching is disabled, this exception cannot
> be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or
> DISABLE_EXCEPTION_CATCHING=2 to catch."
> }
>
>
>
> чт, 16 окт. 2025 г. в 16:20, 'Sam Clegg' via emscripten-discuss <
> [email protected]>:
>
>>
>>
>> On Wed, Oct 15, 2025 at 2:13 PM Александр Гурьянов <[email protected]>
>> wrote:
>>
>>> Hi guys, I think you know there’s a browser port of *Unreal Tournament*
>>> made by *Ryan C. Gordon*. It works almost perfectly, but the *networking
>>> doesn’t*.
>>>
>>> I’m currently actively working on a *classic networked games project* —
>>> right now it’s already possible to play *HLDM, Quake 2/3, DOOM, and
>>> OpenTTD* in the browser. Naturally, I’d love to have *UT99* in my
>>> collection as well.
>>>
>>> I’ve spoken with Ryan — unfortunately, he can’t provide the source code
>>> since he doesn’t have the rights to it. So I have to work with what’s
>>> available, namely the *compiled WASM*.
>>>
>>> I suspect the game crashes when starting a network session because it *tries
>>> to open a port*, which obviously isn’t possible in the browser. My plan
>>> is to *intercept and replace the necessary WASM calls* with my own
>>> networking layer.
>>>
>>> The worst part is that the only available build is *fully obfuscated*
>>> and most likely *compiled without exceptions*, so the crash stacks are
>>> extremely uninformative. Still, I plan to gradually analyze the WASM and
>>> *reconstruct
>>> some of the networking logic*. It seems a good place to start is by
>>> analyzing *the Emscripten JS glue functions* — when and how they’re
>>> invoked.
>>>
>>> Now to my main question:
>>> 👉 *Is there any way to determine exactly which version of Emscripten
>>> this binary was built with?*
>>> Ideally down to a commit hash — or at least the major/minor version.
>>> That would be a great starting point, since I could then review the
>>> corresponding network stack implementation.
>>>
>>
>> Unfortunately (for you) there is no such thing, no. For debug builds I
>> think it's quite easy but it's an explicit non-goal of emscripten to embed
>> any of watermark or version information in release binaries.
>>
>>
>>> *P.S.* It would’ve been logical to just ask Ryan which version he used,
>>> but unfortunately, for some reason (I’m not sure why), he stopped replying.
>>>
>>> *P.S.2.* This is a port https://icculus.org/ut99-emscripten/
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "emscripten-discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion visit
>>> https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVEzn-n1yBNobvPL9J5L07XW%2BX-qEBG4j%2B7FtFaz0iw5qw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVEzn-n1yBNobvPL9J5L07XW%2BX-qEBG4j%2B7FtFaz0iw5qw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "emscripten-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion visit
>> https://groups.google.com/d/msgid/emscripten-discuss/CAL_va28wbT%3D71uYGSGQ2gK49HBmqnk5_K4hNiVFd4ESDRy%3Dr8Q%40mail.gmail.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va28wbT%3D71uYGSGQ2gK49HBmqnk5_K4hNiVFd4ESDRy%3Dr8Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFzLv28AroWD53GL-z2rjY7YJHvOBm%2BLP_tK0ZyzCR0Aw%40mail.gmail.com.