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.
