{"id":21401811,"url":"https://github.com/dudejoe870/game-emu","last_synced_at":"2025-09-12T00:47:44.140Z","repository":{"id":115509401,"uuid":"452333416","full_name":"Dudejoe870/game-emu","owner":"Dudejoe870","description":"A cross-platform multi-system emulator / library (WIP)","archived":false,"fork":false,"pushed_at":"2022-07-05T21:29:59.000Z","size":129,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T16:18:33.224Z","etag":null,"topics":["cmake","cmakelists","cpp","cpp-library","cpp20","cpp20-library","emulator","emulator-programming","emulators"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dudejoe870.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-26T15:39:25.000Z","updated_at":"2022-04-11T16:38:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4864302-6660-47ad-9f4a-179be1b09ec4","html_url":"https://github.com/Dudejoe870/game-emu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Dudejoe870/game-emu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dudejoe870%2Fgame-emu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dudejoe870%2Fgame-emu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dudejoe870%2Fgame-emu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dudejoe870%2Fgame-emu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dudejoe870","download_url":"https://codeload.github.com/Dudejoe870/game-emu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dudejoe870%2Fgame-emu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274732523,"owners_count":25339345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cmakelists","cpp","cpp-library","cpp20","cpp20-library","emulator","emulator-programming","emulators"],"created_at":"2024-11-22T15:29:25.086Z","updated_at":"2025-09-12T00:47:44.044Z","avatar_url":"https://github.com/Dudejoe870.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# game-emu\n\n[![game-emu](https://github.com/Dudejoe870/game-emu/actions/workflows/game-emu.yml/badge.svg)](https://github.com/Dudejoe870/game-emu/actions/workflows/game-emu.yml)\n\nA cross-platform multi-system emulator / library\n\u003e Note: Heavily WIP\n\n# Folder Structure\n\n| Folder              | Description                                                                                                                                                        |\n|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| gameemu-cli        | A CLI UI for loading, running, and debugging game-emu cores with a runtime debugging CLI.                                                                          |\n| gameemu-core-*      | A game-emu core that is linked as a dynamic library, then loaded at runtime, invoked using a common API.                                                           |\n| gameemu-common     | The main folder of the project, this is the main library that all cores and UIs are built off of. Contains general utilities for making creating Emulators easier. |\n\n# Cores\n\n| Core               | Description                                                                         |\n|--------------------|-------------------------------------------------------------------------------------|\n| gameemu-core-gb    | A Core emulating the Gameboy                                                        |\n| gameemu-core-sm83  | A Core emulating the Sharp SM83 found on the Gameboy                                |\n\nMore cores are to come, currently it is very WIP.\n\nIf you want to contribute a Core that'd be greatly appreciated!\n\n# Pre-built Binaries\n\nCurrently this in development so it isn't really recommended to run the \nsoftware if you don't intend to use the source code.\n\nNevertheless there are Binaries that get built every commit to the main branch,\njust go to the ``Actions`` tab and click on the commit you want to download,\nif you scroll down there should be ZIP files you can download.\n(If there aren't that means the commit is too old, \nthis can happen even on the newest commit if there hasn't been \none in the while, so in that case you'll need to build from source).\n\n\u003e Note: It is NOT recommended to use the Linux build as it could heavily \ndepend on what version of the operating system you are using. For example, \nthe Ubuntu build won't work on Arch, due to LibC being a different version.\nIt also makes uninstalling a lot easier if you compile from source.\n\nJust download the correct one for your operating system and architecture, \nand run the software. (Currently only supports x86-64, \nARM support might come in the future most notably for Raspberry Pi / Android support\n\\+ perhaps even other architectures like PowerPC for porting \nto older consoles like the Wii / Xbox360)\n\n# Building\n\n## Dependencies\n\nDue to most of the dependencies being included as submodules, \nthere aren't actually really any to download \nother than CMake and a general building environment \n(MSVC, Clang, GCC) (Clang is untested but should(?) work)\n\n## CMake Options\n\n| Option             | Description                                                                                                                                                                                                                                                                                                |\n|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| CMAKE_BUILD_TYPE   | Set this to either \"Debug\", \"Release\", or \"RelWithDebInfo\" (Release with Debug Info) to compile with that configuration.                                                                                                                                                                                   |\n| GAME_EMU_CORE_LIST | A semicolon separated list of Cores you'd like to build (or alternatively can be \"all\"), the list can contain any of the core names listed above. This will automatically build the dependencies needed for each Core, so it is only required to list the system cores you want and the rest is automatic. |\n\nYou can use any of these options by passing ```-D(option)=(value)``` to CMake on the command line.\n\n## Windows\n\nIn Windows it's recommended to use Visual Studio 2022 with the CMake support installed.\n\nJust open the cloned repository as an external project, \nset your build configuration and build.\n\nFrom there to run it you can go to \nBuild \u003e Install game-emu, that will put the executable in \nout/install/bin with the required DLLs, you can run the EXE from there.\n\n## Linux\n\nUnder Linux it's also pretty straight forward, just have CMake installed, \nand GCC / Clang (again untested but should probably work) + either Ninja, \nor Make depending on which CMake generator you want to use (Ninja recommended as it's faster).\n\nTo build the project simply do\n```bash\ncmake -S ./ -B out/build -G Ninja\n```\nThen go into out/build and type\n```bash\nninja\n```\nto build the software.\n\nTo run the software you can install it using\n```bash\nsudo cmake --install . [--prefix (install prefix)]\nsudo ldconfig\n```\n\nYou can specify an install prefix if you don't want to install it to the normal directory (usually /usr/local (make sure it's in your /etc/ld.so.conf!))\n\nOnce it's in your path you can now use ```gameemu-cli``` to run the software.\n\u003e Note: If you specified a custom install prefix, \nyour LD_LIBRARY_PATH variable will have to \ninclude the lib subdirectory in the install path. \nOr you can add it to your /etc/ld.so.conf config.\n\nTo uninstall simply run\n```bash\nsudo ninja uninstall\n```\nfrom the build folder.\n\u003e Note: Doesn't get rid of all the subdirectories for security reasons \n(One misstep and we could accidentally delete your entire root drive!)\n\n# Contribution\n\nIf you want to contribute, be my guest! I'd love to see what other people have to bring, \neven if it's just cleaning up some of my more... interesting code. \n(Hopefully it's not too bad!)\n\nCurrently the main library is what needs the most work\n(the Cores that are currently being built are mostly \njust a testing ground for the library at the moment)\nSo any contributions to that (fixing up things, or \nadding new features, etc.) would be greatly appreciated!\n\n# Issues\n\nIf you've read some of the code and have some suggestions but don't have time to \ncontribute, opening an issue with any suggestions would be greatly appreciated as well!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdudejoe870%2Fgame-emu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdudejoe870%2Fgame-emu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdudejoe870%2Fgame-emu/lists"}