Minesweeper, but in every way possible
Global dependencies: build-essential cmake
Dependencies for main frontends:
ncurses: libncurses-dev
Xlib: libx11-dev
XCB: libxcb1-dev
Wayland: libwayland-dev
XForms: libforms-dev
Motif: libmotif-dev
Tcl/Tk:
SDL2: libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
SDL1.2: libsdl1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev
OpenGL 1.2: libgl-dev freeglut3-dev
OpenGL 3.3: libgl-dev libglfw3-dev
Vulkan: libvulkan-dev
Gtk3: libgtk-3-dev
Qt5: qtbase5-dev qttools5-dev qttools5-dev-tools
Java: openjdk-17-jdk-headless
Dependencies for kernel module: linux-headers-amd64
Dependencies for BIOS kernel: nasm
Dependencies for UEFI application: gnu-efi binutils-mingw-w64 gcc-mingw-w64 xorriso
Build
mkdir build && cd build
cmake ..
make
MAIN TARGET Linux BSD Mac Win
console DONE X X X X
vt100 escapes DONE X X X X
ANSI color escapes X X X X
ncurses X X X
fbdev WIP X
SVGA buffer
X11 Xlib DONE X X
X11 XCB WIP X X
Wayland WIP X X
XForms DONE X X
FLTK X X X X
Motif (Xm/Xt) WIP X X
XView (OpenLook/Xt) X X
Athena (Xaw/Xt) WIP X X
Xaw3d X X
X Toolkit (Xt) X X
Tcl/Tk X X X
raylib NO X X X X Redefines GLAD
SDL2 DONE X X X X
SDL1.2 WIP X X X X
DRI DRM fb WIP X
GLIDE (with Voodoo) X X X
OpenGL GLX X X
OpenGL 1.x FFP/FreeGLUT DONE X X X X
OpenGL 3.3/GLFW/GLAD WIP X X X X
ImGui X X X X
Vulkan/GLFW WIP X X X X
Metal X
Gtk3 DONE X X
Qt5 DONE X X X X
wxWidgets X X X X
WinAPI WIP X
Win32 GDI WIP X
Direct2D WIP X
.NET WinForms X
.NET WPF X
Win UWP X
WinUI 3 X
.NET MAUI X
Java JNI AWT X X X X
Java JNI Swing X X X X
Webapp DONE X X X X
LINUX MODULE TARGET
Kernel module DONE X
BIOS KERNEL TARGET BIOS UEFI
VGA text mode console DONE X X
VGA text mode DONE X X
VGA text w/graphic char DONE X X
VGA graphic mode WIP X X
VESA graphic mode X
UEFI APPLICATION TARGET
UEFI console X
HARDWARE TARGET
SystemVerilog FPGA
I apologize.
Does not work on Intel iGPUs apparently, for some god unknown reason, maybe the bit shit?
Currently I think it only builds correctly under MSVC
Exposes a character device at /dev/arfminesweeper.
cat
it to get the board, and send commands like echo 'c 0 0' > /dev/arfminesweer
Usage is c|f x y, c for clear f for flag