Finally, I make it work: https://dos.zone/mp/?lobby=ut
вс, 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.
