On Fri, Nov 14, 2025 at 6:49 AM Александр Гурьянов <[email protected]>
wrote:

> Finally, I make it work:
>
> https://dos.zone/mp/?lobby=ut
>

Wow! This is really amazing.  How did you end up doing the networking in
end?   Some kind of websocket relay?



>
> вс, 19 окт. 2025 г. в 22:44, Александр Гурьянов <[email protected]>:
>
>> 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%3DVGpejKAQvc-%3D1eNVfLxeFiAe%2BgjQy_WD6X4bX7N-anSBg%40mail.gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVGpejKAQvc-%3D1eNVfLxeFiAe%2BgjQy_WD6X4bX7N-anSBg%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_va296N02j_OW0e7RfWY-Ym4zWc9qYZ0oJubVQnaRDuqWLUw%40mail.gmail.com.

Reply via email to