How to get Doom running in Windows’ notepad.exe

Date:

Share:


Enlarge / Doom as it was meant to be played.


Hackers of a certain age are intimately familiar with the “Will it run Doom” meme and the wide array of ports it has engendered (including a game of Doom that runs inside an instance of Doom itself). Still, this week’s viral video and eventual itch.io release of a Doom port running in Windows’ standard notepad.exe text editor left us with a number of questions.

Chief among them: “How?” and “Why?”

“My favorite kind of magic trick”

When it comes to the “How?” DoomPad coder Sam Chiet told Ars that the hack is “my favorite kind of magic trick,” the kind that “seems wild, but it’s super simple.”

Building off a C# port of the open-sourced Doom source code (and later shifted to Chocolate Doom for public release), Chiet’s program first converts every successive frame from the game into ASCII text. That’s done using a simple algorithm that figures out the “brightness” of each pixel (by averaging out the RGB color channel data), then converting that to a similarly dark ASCII character using a pre-set lookup table (ranging from “$” and “@” for the darkest pixels to “” and “.” for the lightest).

“[The] conversion is super simple and probably ‘incorrect,’ but it works, and that’s what matters,” Chiet said. “Magic tricks [like this] are always equal parts disappointing and cool!”

Because “the Notepad font is twice as tall as it is wide,” DoomPad initially throws out every other row of generated text to keep the resulting ASCII in the correct proportions. From there, Windows makes it relatively easy to insert that 360×240 array of text into Notepad at whatever font size your window and monitor can handle, Chiet said.

“I’m stealing a reference to the internal textbox and just sticking my memory into it via an operating system ‘message’ and forcing it to re-draw,” he said. As for reading player input, that’s “just something you can steal from anywhere in Windows; you don’t need your specific program ‘open.'”

Chiet said he was somewhat inspired by previous projects like the ASCII-based <a href=
Enlarge / Chiet said he was somewhat inspired by previous projects like the ASCII-based 1337d00m, which has a key advantage of using color characters.





Source link

━ more like this

There Aren’t a Lot of Reasons to Get Excited About a New Amazon Smartphone

“This is not a consumer device company that takes privacy very seriously,” Gamero-Garrido says. Since people use smartphones far more than Alexa or...

Microsoft is cutting down Copilot “bloat” in Windows 11

Microsoft is starting to rethink how much AI it really needs inside Windows 11, and that rethink includes dialing back Copilot. As part...

Google Messages adds two features your group chats desperately needed

If you’ve ever sent a message into a busy Google Messages group chat and watched it vanish into the void, you’re not alone....

Pinterest CEO says teens under 16 should be banned from social media (but not Pinterest)

Pinterest's CEO has thrown his support behind an Australia measure banning social media for younger teens and is calling for governments around the...

Google is using AI to make flights less harmful to the environment

Whenever there’s a conversation involving aviation and climate change, carbon emissions usually take centre stage. But Google says there’s another less obvious problem,...
spot_img