Pixel Shaders in Windows Terminal
github.com
github.com
Not having much love for text adventures, some of us got clever and figured out how to take over the buffer and draw characters. So, we made games with ascii heros, traps and enemies etc.
But one group took this to another level. They found the function to reduce the font size. They decreased it down to where it was about the size of a pixel or near enough. Then implemented a full CPU based renderer with perspective correct texture mapping and shaders.
Rather than keep a frame buffer of characaters, I was scanning and modifying specific "pixel" characters as needed for performance like game of life but home-brew for my character-based space invader type enemies.
The game had a major memory leak by the time I got to presenting but that served as a perfect timer for the next player to get a turn. We didn't demo any other games once we got to it.
After class, I was not happy how many times it crashed but somebody corrected me - it was the only actual video game anyone made. Most were card games or guessing games.
Lost the source code because my floppy disk somehow got corrupted on the way home from the last day of school.
Still keep a windows VM around to play Synaesthete.
BTW, every window on the screen should have this functionality. Reminds me of the "Out of Context Menus" I had on my PPC-based pre-OSX Macs. You could apply a gaussian blur to the window from the context menu. Or adjust the vertical sync.
Searching the repo for "curvature" shows you what they are doing with Qt: https://github.com/Swordfish90/cool-retro-term/search?q=curv...
Dammit... How I want to star my Windows box...
[0]: https://github.com/microsoft/terminal/blob/main/samples/Pixe... [1]: https://www.bleepingcomputer.com/news/microsoft/windows-term...
The other example you replied too looks so much better.
Other similar programs don't have the same type of white noise effect, they don't improve legibility at all.
Very light film grain makes videos easier to watch, one of the early complaints of all digital cinemas was that they were too "crisp".
None of the CRT presets are what I particularly like, but I've got it customized to an extent that IMHO it is super easy on the eyes.
(EDIT: There was a "retro terminal effect" released a year ago, and the announcement for that version [3] shows it affecting the whole window. A quick search through the Microsoft Terminal source suggests this new feature is an extended version.)
[1]: https://devblogs.microsoft.com/commandline/windows-terminal-...
[2]: https://github.com/Swordfish90/cool-retro-term
[3]: https://devblogs.microsoft.com/commandline/windows-terminal-...
I tried to update C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.5.10271.0_x64__8wekyb3d8bbwe\defaults.json but it requires SYSTEM privileges to edit... I wanted to check this out badly but I am at a loss...
[1] https://github.com/microsoft/terminal/tree/v1.5.3242.0/sampl... gives a 404 not found error.
A proper pixel framebuffer terminal standard fast enough to be updated at refresh rate would allow a lot of interesting terminal applications which would live somewhere between Curses UIs and "proper" UI applications which require a whole window system!
Current "render pixels to the terminal" standards like iTerm2's ability to display images, or the "Sixels" standard are unfortunately too slow to render colored images at display refresh rate (Sixels is just barely fast enough to render two colors).
I've been playing around with running home computer emulators in terminal windows (for instance here's a "C64 in Docker" limited to rendering characters: https://github.com/floooh/docker-c64), imagine if this could run with actual pixel graphics in terminal windows :)
PS: here's an abondend attempt to render the C64 framebuffer via Sixels (too slow unfortunately to be practical): https://github.com/floooh/chips-test/blob/master/examples/as...
Is the texture they operate on just the whole terminal window?
Also its overall a bit half baked in terms of its UX, which really boils down to not getting in the way so much. It seems to support for example tons of ways of pasting from the clipboard, involving "INS", or CTRL-V, etc. but lots of terminal applications actually depend on these shortcuts so Gnome-Terminal binds them to C-Shift-V or iterm/Terminal.app to CMD+V, on windows, CTRL-V is caught by Terminal and that means I cannot rectangle-select in vim, etc.
I must admit I haven't dived into the MS Terminal configuration very far other than looking at the color Schemes, nevertheless, there is a lot of room for improvement when coming from a Linux/Mac platform
They literally just launched (in preview) a settings GUI: https://github.com/microsoft/terminal/releases/tag/v1.6.1027...
https://github.com/microsoft/terminal/pull/7058
Of course the Microsoft developers did have to spend some time reviewing and merging the code, but at least they didn't have to write the code.