thehardwarestore.ai

where AI agents shop for the right tools

── 99307 repos indexed ── | filtered by tag: sdl
diasurgical/DevilutionX ★ 9789 1049 APPLICATION

DevilutionX is a modern C++ source port of the 1996 action role-playing game Diablo and its Hellfire expansion. It is a monolithic game engine that reimplements the original game's logic, rendering, audio, and networking from scratch, requiring the original game data files (DIABDAT.MPQ or spawn.mpq) to run. The architecture is highly cross-platform, targeting modern desktops (Windows, Linux, macOS), consoles (PS4, PS5, Switch, Xbox, Vita, 3DS), retro platforms (Amiga, DOS), and embedded devices (Miyoo Mini, OpenDingux), all managed through a sophisticated CMake build system. The codebase is data-driven, loading game content (monsters, items, spells, levels) from tab-separated value (TSV) files and original MPQ archives. It features a robust Lua scripting engine for modding, a comprehensive input abstraction layer supporting keyboard, mouse, gamepad, and touch, and a modular networking stack supporting TCP and ZeroTier P2P multiplayer. The project maintains an extensive test suite using GoogleTest and GoogleBenchmark, including deterministic dungeon generation tests and performance benchmarks. While the codebase exhibits tight coupling inherent to game engine development and carries significant platform-specific conditional compilation (#ifdef sprawl), it contains several high-quality, isolated utility components that are safely reusable. These include a robust INI parser, a fixed-capacity static vector, endian-safe I/O helpers, an A* pathfinding implementation, and a KD-tree for color quantization. The code is written in modern C++ (C++17/20 style) with pervasive use of std::expected for error handling, demonstrating strong engineering practices despite the complexity of its domain.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
CorsixTH/CorsixTH ★ 4546 423 APPLICATION

CorsixTH is a high-fidelity open-source reimplementation of the 1997 Bullfrog game Theme Hospital, built as a cross-platform desktop application. The architecture is a hybrid: a C++ engine (SDL3, OpenGL) handles performance-critical rendering, audio, pathfinding, and file I/O, while the vast majority of game logic—including AI, UI, room mechanics, and disease behaviors—is implemented in Lua using a custom class system. The application loads original game assets (sprites, sounds, animations) from the Theme Hospital CD or GOG installation, and provides a full hospital management simulation with features like staff hiring, room construction, patient diagnosis/treatment, research, epidemics, and a save/load system with backward compatibility. The repository also includes auxiliary tools: a Java level editor, a C++ animation viewer, and a sprite encoder. The codebase is well-structured, with clean separation of concerns between the C++ engine and Lua scripting, and demonstrates strong engineering practices through reusable components like a modular A* pathfinder, an ISO9660 filesystem reader, a priority queue, and a lightweight Lua OOP system.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
allangood/rtlamr2mqtt ★ 631 97 APPLICATION

rtlamr2mqtt is a Home Assistant add-on and standalone Docker container that reads utility meters (electric, gas, water) using an RTL-SDR USB receiver and publishes readings to MQTT. The application runs rtl_tcp to interface with the SDR hardware and rtlamr to decode meter transmissions, parsing the JSON output and publishing formatted readings, HA auto-discovery payloads, and status to an MQTT broker. It supports sleep/wake cycles to conserve resources on Raspberry Pi, automatic process restart with backoff, USB device reset on timeout, and listen mode for discovering unknown meter IDs. The architecture is fully async (asyncio TaskGroup) with three independent tasks: MeterReader (rtlamr output parsing), MQTTPublisher (aiomqtt-based MQTT communication), and ManagedProcess (generic async subprocess lifecycle manager). It can run as a Home Assistant add-on (auto-discovers MQTT via Supervisor API) or standalone with a YAML config file.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
libsdl-org/sdl2-compat ★ 211 54 APPLICATION

This repository implements a binary- and source-compatible compatibility layer for SDL2 on top of SDL3. It provides the complete SDL2 public headers (under include/SDL2/) and a shared library that intercepts all SDL2 API calls and translates them to the corresponding SDL3 functions. The core implementation resides in src/sdl2_compat.c and src/sdl2_compat.h, which perform type mapping, event conversion, and function dispatch. A sophisticated dynamic API mechanism in src/dynapi/ allows runtime overriding of exported symbols. The project also includes an extensive test suite (under test/) covering every major SDL2 subsystem, a reusable test framework (src/test/), and a comprehensive release automation script (build-scripts/build-release.py). The build system supports CMake, legacy Makefiles, Android NDK, and MSVC across Linux, Windows, macOS, and more. This is a library—not an end-user application—meant to ease the transition from SDL2 to SDL3 without modifying existing SDL2-based programs.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
sdlpal/sdlpal ★ 1957 392 APPLICATION

SDLPAL is a cross-platform, open-source reimplementation of the classic Chinese RPG "Legend of Sword and Fairy" (PAL). The engine loads original game data (provided separately by the user) and reproduces the full game experience including battle systems, map exploration, menu interactions, script-driven events, and cutscenes. It is built as a monolithic C/C++ application using SDL for input, video, and audio, with optional OpenGL rendering and GLSL shader support. The codebase includes a comprehensive platform abstraction layer supporting Windows (desktop and UWP), Linux, macOS, Android, iOS, 3DS, Wii, Emscripten (web), and libretro. Audio is handled through a modular player interface that can use native MIDI, software synthesis (TiMidity, OPL emulation via MAME/DOSBox/Nuked cores), or compressed codecs (MP3 via libmad, Ogg Vorbis, Opus). The project is actively maintained, with recent commits and multiple CI workflows. While the core game logic is tightly coupled to PAL's data formats, many individual subsystems (configuration, audio players, OPL emulation wrappers, binary I/O, resamplers, font loaders, and decompression routines) are cleanly abstracted and could be reused in other projects with minimal adaptation.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 7 reusable components found
microsoft/DevSkim ★ 1005 131 APPLICATION

DevSkim is a security analysis framework that provides inline vulnerability detection during code development. It consists of a core .NET analysis engine, a CLI tool, Visual Studio and VS Code IDE extensions, and a language server for cross-editor support. The system scans code against JSON-based security rules, reports issues with fix suggestions, and supports comment-based suppression. Architecture follows a modular design where the core library is shared across CLI, language server, and IDE extensions, with output formats abstracted via a writer pattern. The tool integrates with development workflows to catch security issues at the point of code introduction.

RATING: 7.2/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: