Hacker Newsnew | past | comments | ask | show | jobs | submit | LowLevelMahn's commentslogin

Tools: IDA Pro 5 (Freeware) is the last Freeware version able to handle DOS executeables (official available by the ScummVM devs https://www.scummvm.org/news/20180331/) - IDA Pro still supports DOS-stuff with latest release - but not the freeware

or Ghidra - but the DOS/16bit support is sometimes lacky - but the decompiler is builtin

here is a list of articles to read: https://forum.stunts.hu/index.php?topic=4287.0


the developer 'Wilczek' is posting the progress on his Railroad Tycoon reversing in this Vogons-Thread

This is such a shit AI comment, what's it even for? Trying to create some lame puppet accounts?

that is the inital post to explain what the link referes to...

Thank you. I appreciate the post. I'm about to dive into the 1987 Elite PC version so this is actually really helpful.

the developer Alberto Marnetto is responsible for creating this crazy mod extending the sight of view in Stunts making it look like a different game

Blog: https://marnetto.net/2026/01/27/camel

Youtube: https://www.youtube.com/watch?v=AF3stJfcK8A

Forum-Announcement: https://forum.stunts.hu/index.php?topic=4404.msg100046#msg10...

former SuperSight Blogs:

Part 1: https://marnetto.net/2025/02/20/broderbund-stunts-1.html

Part 2: https://marnetto.net/2025/08/08/broderbund-stunts-2.html

Part 3: https://marnetto.net/2025/08/13/broderbund-stunts-3.html


this Rust demo also uses PTX directly

  During the build, build.rs uses rustc_codegen_nvvm to compile the GPU kernel to PTX.
  The resulting PTX is embedded into the CPU binary as static data.
  The host code is compiled normally.


To be more technically correct, we compile to NVVM IR and then use NVIDIA's NVVM to convert it to PTX.


That’s not really the same thing; it compiles through PTX rather than using inline assembly.


FYI, you can drop down into ptx if need be:

https://github.com/Rust-GPU/Rust-CUDA/blob/aa7e61512788cc702...


not using a union: https://ojdip.net/2013/10/implementing-a-variant-type-in-cpp... because the union can't be extended with variadic template types


Actually, it does use a union, in both libstdc++ [0] and libc++ [1]. (Underneath a lengthy stack of base classes, since it wouldn't be C++ if it weren't painful to match the specified semantics.)

[0] https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3...

[1] https://github.com/llvm/llvm-project/blob/llvmorg-20.1.3/lib...


So instead it has a buffer large enough to hold all the types? That’s what union does.

Still waiting to hear the security concerns.


the .Net environment strongly depends on the runtime-ability of all .Net Languages - its feel like AOT (ahead-of-time/finaly compiled) but its not, so Rust woulnd fit good


It does now, yes.

This is a hypothetical that only looks at what .NET but in Rust would look like, ecosystem aside


rustc is written in Rust - for many years, start based on OCaml


so Spice86 helps in translating realmode 16bit DOS code into similar assembler looking like C# code - which got the exact same semantic and behavior but its pure C# - you can then use the normal Visual Studio debugger/IDE to port or extend the code - that is a huge benefit over beeing trapped using >30 years old DOS debuggers, compilers and IDEs for this already very hard work

its to ease the process of rewriting assembler code into high level code by having a highlevel-assembler-code in between

Spice86 is not intended for Binary exact reversing, like with https://www.scottsmitelli.com/projects/cosmore/ or Duke Nukem, ZZT or F15 Eeagle reversing project - these are using the same compiler and try to replicate every byte of the original exe - to prevent any reversing bugs at first - but this is the hardest form of reversing and takes easily years of hard work


there are so many reasons for that

-there is sometimes not a single statical exe (that means all code inside) but overlays(DOS like DLLs) or serveral other ways of loading code at runtime (example for sound/gfx-drivers) - DOS allows technicaly nearly everything so everything is done in games :)

-many game loaders combine code/data parts of a game in memory - for keeping floppy releases smaller

-self modifying code, also hard to disassemble statically with Gidrah/IDA

-good old segment/offset 16bit realmode games - a complete different beast compare to 32bit linear DOS games (Ghidra isn't very good at this, IDA is much much better)

some examples:

the Stunts loader combines several (in itself non valid) files in memory to create a exe (the single files are packed and the result in exe in memory is also packed) - not that easy to static disassemble something like that

Alpha Waves also got an loader and self modifying code that is not easy to reverse statical

its good to have the best disassemblers available and the best (or better dedicated) debuggers around to keep your reversing project shorter then decades :)


(found on vogons: https://www.vogons.org/viewtopic.php?p=1331177)

there is a team working on enhancing the original Syndicate Wars port (https://gynvael.coldwind.pl/?id=279) by Unavowed and Gynvael Coldwind

github: https://github.com/swfans/swars youtube: https://www.youtube.com/watch?v=eJOnGRdErpg


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: