https://github.com/ozkl/doomgeneric Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} ozkl / doomgeneric Public forked from maximevince/fbDOOM * Notifications * Fork 1.7k * Star 485 Easily portable doom License GPL-2.0 license 485 stars 1.7k forks Star Notifications * Code * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Pull requests * Actions * Projects * Security * Insights ozkl/doomgeneric This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/o] Use Git or checkout with SVN using the web URL. [gh repo clone ozkl/d] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. This branch is 43 commits ahead, 7 commits behind maximevince:master. Latest commit @ozkl ozkl Update README.md ... bec8ced Jan 15, 2023 Update README.md bec8ced Git stats * 60 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time doomgeneric DG_sound_module Jan 11, 2023 screenshots Renamed all occurrences of 'osx' to 'sdl', deleted binary files (doom... Nov 26, 2020 .gitignore gitignore Jan 15, 2023 LICENSE Create LICENSE Aug 18, 2019 README.TXT renamed to doomgeneric Aug 4, 2019 README.md Update README.md Jan 15, 2023 doomgeneric.sln Windows GDI port Aug 4, 2019 View code [ ] doomgeneric porting sound platforms Windows X11 - Ubuntu X11 - FreeBSD SDL README.md doomgeneric The purpose of doomgeneric is to make porting Doom easier. Of course Doom is already portable but with doomgeneric it is possible with just a few functions. To try it you will need a WAD file (game data). If you don't own the game, shareware version is freely available (doom1.wad). porting Create a file named doomgeneric_yourplatform.c and just implement these functions to suit your platform. * DG_Init * DG_DrawFrame * DG_SleepMs * DG_GetTicksMs * DG_GetKey Functions Description DG_Init Initialize your platfrom (create window, framebuffer, etc...). DG_DrawFrame Frame is ready in DG_ScreenBuffer. Copy it to your platform's screen. DG_SleepMs Sleep in milliseconds. DG_GetTicksMs The ticks passed since launch in milliseconds. DG_GetKey Provide keyboard events. DG_SetWindowTitle Not required. This is for setting the window title as Doom sets this from WAD file. sound Sound is much harder to implement! If you need sound, take a look at SDL port. It fully supports sound and music! Where to start? Define FEATURE_SOUND, assign DG_sound_module and DG_music_module. platforms Ported platforms include Windows, X11, SDL, Soso. Just look at (doomgeneric_win.c or doomgeneric_xlib.c). Windows Windows X11 - Ubuntu Ubuntu X11 - FreeBSD FreeBSD SDL SDL About Easily portable doom Topics game doom Resources Readme License GPL-2.0 license Stars 485 stars Watchers 9 watching Forks 1.7k forks Releases No releases published Packages 0 No packages published Languages * C 99.3% * Other 0.7% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.