Christopher Drum has ported Infocom's Z-machine, specifically the Unix version 1.1, to a single executable using Cosmopolitan Libc. This allows classic Infocom text adventures, which were originally designed for various platforms, to run natively on modern operating systems (Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD) without emulation or VMs. The porting process involved minimal code changes, primarily focused on resolving system call discrepancies between the original Unix environment and Cosmopolitan's compatibility layer. This approach leverages Cosmopolitan's ability to build statically linked, universally compatible executables, effectively "resurrecting" these classic games for contemporary systems while preserving their original codebase.
NTATV is a project aiming to port Windows NT 4, along with later versions like Windows XP and Windows Server 2003, to the first-generation Apple TV. This involves creating custom drivers and leveraging the existing PowerPC architecture of the device. The goal is to achieve a functional Windows installation on the Apple TV, providing a unique and retro computing experience. The project is still under development, but progress is being documented, including details on hardware compatibility and the challenges encountered.
Hacker News users discussed the practicality and legality of running Windows NT on the original Apple TV, expressing skepticism about its usefulness given the hardware limitations. Some questioned the legality of distributing modified Apple firmware and using copyrighted Windows components. Others were curious about the technical challenges involved, particularly regarding driver support and performance. There was some interest in the project as a nostalgic exploration of older operating systems, but overall the comments were more focused on the project's limitations and potential legal issues than its potential benefits. A few users speculated about alternative approaches, such as using a virtual machine, which might offer a more efficient way to achieve similar results.
This project aims to port Windows NT 4.0 to the Nintendo GameCube and Wii. It utilizes a custom HAL (Hardware Abstraction Layer) built upon the already existing Wii and GameCube homebrew scene and leverages existing open-source drivers where possible. While still in its early stages, the project has achieved booting to the NT kernel and displaying the blue screen. Significant challenges remain, including implementing proper drivers for the consoles' unique hardware and optimizing performance. The goal is to eventually create a fully functional NT 4.0 environment on these platforms, showcasing the operating system's adaptability and offering a unique retro-computing experience.
Hacker News users discuss the "entii-for-workcubes" project, expressing fascination with the technical challenge and achievement of porting Windows NT 4 to the GameCube and Wii. Several commenters reminisce about the era of NT 4 and its perceived robustness. Some discuss the limitations of the port, like slow performance and lack of sound, acknowledging the hardware constraints. Others speculate about potential uses, such as retro gaming or running period-specific software. The practicality is questioned, with many recognizing it more as a fun technical exercise than a genuinely useful tool. There's also discussion of the legal implications of using copyrighted BIOS files. The project's clever name, a play on "Nintendo" and "entities," receives positive remarks.
Porting an OpenGL game to WebAssembly using Emscripten, while theoretically straightforward, presented several unexpected challenges. The author encountered issues with texture formats, particularly compressed textures like DXT, necessitating conversion to browser-compatible formats. Shader code required adjustments due to WebGL's stricter validation and lack of certain extensions. Performance bottlenecks emerged from excessive JavaScript calls and inefficient data transfer between JavaScript and WASM. The author ultimately achieved acceptable performance by minimizing JavaScript interaction, utilizing efficient memory management techniques like shared array buffers, and employing WebGL-specific optimizations. Key takeaways include thoroughly testing across browsers, understanding WebGL's limitations compared to OpenGL, and prioritizing efficient data handling between JavaScript and WASM.
Commenters on Hacker News largely praised the author's clear writing and the helpfulness of the article for those considering similar WebGL/WebAssembly projects. Several pointed out the challenges inherent in porting OpenGL code, especially around shader precision differences and the complexities of memory management between JavaScript and C++. One commenter highlighted the benefit of using Emscripten's WebGL bindings for easier texture handling. Others discussed the performance implications of various approaches, including using WebGPU instead of WebGL, and the potential advantages of libraries like glium for abstracting away some of the lower-level details. A few users also shared their own experiences with similar porting projects, offering additional tips and insights. Overall, the comments section provides a valuable supplement to the article, reinforcing its key points and expanding on the practical considerations for OpenGL to WebAssembly porting.
RT64 is a modern, accurate, and performant Nintendo 64 graphics renderer designed for both emulators and native ports. It aims to replicate the original N64's rendering quirks and limitations while offering features like high resolutions, widescreen support, and various upscaling filters. Leveraging a plugin-based architecture, it can be integrated into different emulator frontends and allows for custom shaders and graphics enhancements. RT64 also supports features like texture dumping and analysis tools, facilitating the study and preservation of N64 graphics. Its focus on accuracy makes it valuable for developers interested in faithful N64 emulation and for creating native ports of N64 games that maintain the console's distinctive visual style.
Hacker News users discuss RT64's impressive N64 emulation accuracy and performance, particularly its ability to handle high-poly models and advanced graphical effects like reflections that were previously difficult or impossible. Several commenters express excitement about potential future applications, including upscaling classic N64 games and enabling new homebrew projects. Some also note the project's use of modern rendering techniques and its potential to push the boundaries of N64 emulation further. The clever use of compute shaders is highlighted, as well as the potential benefits of the renderer being open-source. There's general agreement that this project represents a substantial advancement in N64 emulation technology.
Summary of Comments ( 39 )
https://news.ycombinator.com/item?id=43677909
Hacker News users generally praised the project for its clever use of Cosmopolitan Libc to create truly portable Z-machine binaries. Several commenters expressed nostalgia for Infocom games and appreciated the effort to preserve them. Some discussed the technical aspects, like the benefits of static linking and the challenges of porting old code. A few users offered suggestions, such as adding features like save/restore functionality and improving the command-line interface. One commenter pointed out the potential for running these games on embedded systems thanks to Cosmopolitan's small footprint. The overall sentiment was positive, with many excited about the possibility of playing classic text adventures on modern and diverse platforms.
The Hacker News post "Show HN: Resurrecting Infocom's Unix Z-Machine with Cosmopolitan" sparked a discussion with several interesting comments.
One commenter expressed excitement about the project, noting the historical significance of Infocom and the Z-machine and praising the elegance of using Cosmopolitan Libc to create a single executable that runs across multiple operating systems. They specifically highlighted the advantage of not needing to compile separate binaries for different platforms.
Another commenter delved into the technical details, explaining how Cosmopolitan Libc achieves its cross-platform compatibility. They described how it leverages the common subset of system calls present in various operating systems, effectively abstracting away the underlying platform differences. This commenter also touched on the clever use of "polyfills" within Cosmopolitan to bridge any gaps in functionality between different systems.
A further comment focused on the practical implications of this approach. They appreciated the simplified distribution process made possible by having a single executable. This, they pointed out, makes it significantly easier to share and run the software, eliminating the complexities of managing platform-specific builds.
Several commenters reminisced about their experiences with Infocom games and the Z-machine, showcasing the nostalgic appeal of this project. These comments added a personal touch to the discussion, highlighting the lasting impact of Infocom's work.
A more technically-inclined commenter questioned the performance implications of using Cosmopolitan Libc. They wondered if the abstraction layer introduced any overhead compared to native compilation. However, another commenter countered this concern, arguing that the performance impact is negligible in most cases, especially given the relatively low computational demands of running a Z-machine interpreter. This exchange offered a balanced perspective on the potential trade-offs involved.
Finally, a commenter inquired about the project's license and its implications for distribution and modification. This practical question highlighted the importance of licensing considerations in open-source projects.
Overall, the comments on the Hacker News post reflected a mix of technical appreciation, nostalgic enthusiasm, and practical considerations. They demonstrated a genuine interest in the project and its potential to bring classic Infocom games to a wider audience.