In 2013, the author encountered the common "black screen" issue in Basilisk II, an emulator for classic 68k Macintosh computers, when attempting to run old versions of Windows. After extensive troubleshooting involving various graphics settings and configurations within Basilisk II, they finally discovered the problem stemmed from using Basilisk II's built-in graphics acceleration with Windows. Disabling acceleration by forcing Basilisk II into software rendering mode completely resolved the black screen issue, allowing Windows to boot and display correctly within the emulator. This fix also highlighted a performance difference between Basilisk II and SheepShaver, another classic Mac emulator, as SheepShaver didn't exhibit the same issue with Windows and graphics acceleration.
In a 2025 blog post titled "How I fixed the infamous Basilisk II Windows “Black Screen” bug in 2013," author Doug Brown recounts his experience troubleshooting and ultimately resolving a persistent issue with the Basilisk II Macintosh emulator. This "black screen" bug manifested after a seemingly innocuous Windows update, rendering the emulator unusable by presenting only a black screen upon launching any MacOS virtual machine. This was a widespread problem impacting numerous users, yet a solution remained elusive.
Brown details his methodical approach to diagnosing the problem, initially suspecting a conflict with other software like display drivers or anti-virus programs. He systematically eliminated these possibilities through various tests, including disabling suspected software and booting in safe mode. When these efforts proved fruitless, he delved deeper, using tools like Sysinternals Process Monitor to meticulously analyze system activity during the emulator's startup. This detailed logging revealed that Basilisk II was successfully launching and even attempting to initialize the virtual video hardware, but the output was inexplicably failing to reach the display.
Further investigation led Brown to focus on changes introduced by the problematic Windows update. He discovered that the update had modified how the operating system handled certain graphics API calls, specifically related to DirectDraw, a technology Basilisk II relied upon for video output. The updated Windows code appeared to be incorrectly handling these calls when made by Basilisk II, effectively blocking the emulated video signal from being displayed.
Brown's solution involved patching Basilisk II’s source code. He identified the specific sections of code responsible for DirectDraw initialization and subtly modified them to bypass the conflicting behavior introduced by the Windows update. He described this as a "workaround" rather than a proper fix, acknowledging that it targeted the emulator's interaction with the flawed Windows code rather than addressing the root cause within Windows itself.
After recompiling Basilisk II with the applied patch, Brown was relieved to find that the black screen issue was resolved. He subsequently shared his patched version with the Basilisk II community, effectively providing a fix for numerous users experiencing the same problem. The post concludes by reflecting on the satisfaction derived from solving a challenging technical problem and contributing to a community reliant on the now-functional emulator.
Summary of Comments ( 6 )
https://news.ycombinator.com/item?id=43995501
Commenters on Hacker News largely praised the author's detective work in resolving the Basilisk II black screen bug, with several noting the satisfying nature of such deep dives into obscure technical issues. Some shared their own experiences with Basilisk II and similar emulators, reminiscing about older Mac software and hardware. A few commenters offered additional technical insights, suggesting potential contributing factors or alternative solutions related to graphics acceleration and virtual machine configurations. One commenter pointed out a potential error in the author's description of the MMU, while another questioned the use of "infamous" to describe the bug, suggesting it wasn't widely known. The overall sentiment, however, was one of appreciation for the author's effort and the nostalgic value of revisiting older technology.
The Hacker News post discussing the Basilisk II Windows black screen bug fix has a moderate number of comments, mostly focusing on technical details and sharing similar experiences.
Several commenters express appreciation for the author's work in fixing this long-standing issue, with some recalling their own struggles with the bug. One commenter highlights the dedication and persistence required to debug such complex problems, especially given the limited tools available at the time. This resonates with other users who have encountered similar challenges in retrocomputing or other specialized software development.
A few commenters delve into the technical aspects of the fix, discussing the intricacies of emulating older hardware and operating systems. One comment mentions the challenges of accurately replicating the timing and behavior of vintage hardware, leading to subtle bugs that are difficult to track down. Another points out the interplay between the emulator, the guest OS, and the host OS, adding further complexity to the debugging process. This thread highlights the expertise needed to diagnose and resolve issues in such environments.
Some users share their own anecdotes of using Basilisk II and other emulators, recounting their experiences with various compatibility issues and workarounds. One commenter mentions using Basilisk II to run older versions of software for which modern equivalents are unavailable or undesirable. Another discusses the nostalgia associated with retrocomputing and the satisfaction of getting older systems running smoothly.
There's a short discussion on the benefits of open-source software, with one commenter praising the ability to fix bugs in projects like Basilisk II, even years after their initial release. This highlights the value of community involvement and the long-term maintainability of open-source projects.
A few comments touch on the evolution of emulation technology, comparing Basilisk II to newer emulators like SheepShaver and QEMU. They discuss the trade-offs between accuracy, performance, and ease of use, illustrating the ongoing development in the field of emulation.
Overall, the comments section reflects a mix of appreciation for the author's work, technical discussion about emulation challenges, and nostalgic reflections on retrocomputing. While not containing groundbreaking revelations, the comments provide valuable context and insights into the world of vintage software emulation.