{"id":15424796,"url":"https://github.com/antoniond/nitro-engine","last_synced_at":"2025-10-20T02:57:28.048Z","repository":{"id":52717905,"uuid":"190101653","full_name":"AntonioND/nitro-engine","owner":"AntonioND","description":"3D engine for the Nintendo DS","archived":false,"fork":false,"pushed_at":"2025-08-21T22:37:18.000Z","size":4874,"stargazers_count":217,"open_issues_count":8,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-10-06T07:09:28.221Z","etag":null,"topics":["3d","devkitarm","engine","homebrew","libnds","nds"],"latest_commit_sha":null,"homepage":"https://www.skylyrac.net/nitro-engine/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AntonioND.png","metadata":{"files":{"readme":"readme.rst","changelog":"changelog.rst","contributing":null,"funding":null,"license":"licenses/cc0-1.0.txt","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,"zenodo":null}},"created_at":"2019-06-04T00:33:30.000Z","updated_at":"2025-10-03T09:41:31.000Z","dependencies_parsed_at":"2023-01-23T12:31:14.151Z","dependency_job_id":"ee875c69-917e-42f6-afdb-9da2dc3fd76f","html_url":"https://github.com/AntonioND/nitro-engine","commit_stats":{"total_commits":442,"total_committers":4,"mean_commits":110.5,"dds":0.009049773755656076,"last_synced_commit":"fe6e4a0dcc9f6b925d6abd8e1cb38975297d7036"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/AntonioND/nitro-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fnitro-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fnitro-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fnitro-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fnitro-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AntonioND","download_url":"https://codeload.github.com/AntonioND/nitro-engine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AntonioND%2Fnitro-engine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279991029,"owners_count":26255618,"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-10-20T02:00:06.978Z","response_time":62,"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":["3d","devkitarm","engine","homebrew","libnds","nds"],"created_at":"2024-10-01T17:48:47.698Z","updated_at":"2025-10-20T02:57:27.995Z","avatar_url":"https://github.com/AntonioND.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"############\nNitro Engine\n############\n\nIntroduction\n============\n\nThis is a 3D game engine, a lot of functions designed to simplify the process of\nmaking a 3D game. It isn't standalone, it needs libnds to work.\n\nYou can use Nitro Engine with `BlocksDS \u003chttps://blocksds.github.io/docs/\u003e`_.\n\nFeatures:\n\n- Support for static models, converted from OBJ files.\n- Support for animated models, thanks to the `DSMA library\n  \u003chttps://github.com/AntonioND/dsma-library\u003e`_, which converts MD5 models (with\n  skeletal animation) into a format that can be rendered with hardware\n  acceleration. It can also blend two animations together (for transitions).\n- Support for all format of textures (even compressed textures, thanks to\n  `ptexconv \u003chttps://github.com/Garhoogin/ptexconv\u003e`_).\n- Dual 3D (render 3D to both screens, but at 30 FPS instead of 60 FPS).\n- Functions to render 2D images accelerated by 3D hardware.\n- Text system based on `libDSF \u003chttps://github.com/AntonioND/libdsf\u003e`_, which is\n  based on `BMFont \u003chttps://www.angelcode.com/products/bmfont/\u003e`_.\n- Basic GUI elements like buttons and scrollbars.\n- Basic physic system: Axis-aligned bounding boxes (AABB) only.\n\nNitro Engine doesn't support any of the 2D hardware of the DS. In order to use\nthe 2D hardware you can use libnds directly, or you can use a library like\n`NFlib \u003chttps://github.com/knightfox75/nds_nflib\u003e`_. There is an example of how\nto integrate Nitro Engine and NFlib in the same project `here\n\u003c./examples/templates/using_nflib\u003e`_.\n\nSetup\n=====\n\nBlocksDS\n--------\n\nYou can install this library with ``wf-pacman`` directly:\n\n.. code:: bash\n\n    wf-pacman -Sy blocksds-nitroengine\n\nIf you want to build the library from source, follow the instructions:\n\n1. Clone this repository and run:\n\n   .. code:: bash\n\n       make install -j`nproc`\n\n   This should build the library in both debug and release modes and install it.\n\n2. If you want to check that everything is working as expected, open one of the\n   folders of the examples and run:\n\n   .. code:: bash\n\n       make\n\n   That should build an ``.nds`` file that you can run on an emulator or real\n   hardware.\n\nNote: The build system of the examples in this repository is make. The makefiles\naren't very flexible, and they don't support converting 3D models, or saving\ngraphics or models to the filesystem (you can only inject them as data to the\nARM9, which isn't acceptable for big games).\n\nYou can also try `ArchitectDS \u003chttps://github.com/AntonioND/architectds\u003e`_. This\nbuild system written in Python supports converting every format that Nitro\nEngine supports, and it lets you save everything in NitroFS so that your game\ncan grow as much as you want. ArchitectDS comes with plenty of examples of how\nto use it with Nitro Engine.\n\ndevkitPro\n---------\n\n**NOTE**: This option has been temporarily removed. The Makefiles that were\npresent in the repository were only valid in old versions of devkitARM,\nunsupported by their maintainers. The code and examples will also need changes\nto work with the new version of their libraries.\n\nUsage notes\n-----------\n\nNote that some features of the 3D hardware aren't emulated by most emulators, so\nyou may need to use an actual NDS to test some things. **melonDS** seems to\nemulate all features correctly. **DeSmuME** doesn't emulate the polygon/vertices\ncount registers, so the touch test feature of Nitro Engine doesn't work.\n\nNormally you should link your programs with ``-lNE``, which is the release\nversion of Nitro Engine. If you want to use the debug features of Nitro Engine,\nyou should link with ``-lNE_debug``, and add ``-DNE_DEBUG`` to the ``CFLAGS``\nand ``CPPFLAGS`` in your Makefile. Make sure to clean and rebuild your project\nafter doing the changes mentioned in this step. Check the **error_handling**\nexample to see how to use the debug mode of Nitro Engine.\n\nScreenshots\n===========\n\nScreenshots of some of the examples included with Nitro Engine:\n\n.. |animated_model| image:: screenshots/animated_model.png\n.. |box_tower| image:: screenshots/box_tower.png\n.. |fog| image:: screenshots/fog.png\n.. |specular_material| image:: screenshots/specular_material.png\n.. |screen_effects| image:: screenshots/screen_effects.png\n.. |shadow_volume| image:: screenshots/shadow_volume.png\n.. |sprites| image:: screenshots/sprites.png\n.. |text| image:: screenshots/text.png\n\n+------------------+-------------------+\n| Animated model   | Box tower physics |\n+------------------+-------------------+\n| |animated_model| | |box_tower|       |\n+------------------+-------------------+\n\n+------------------+---------------------+\n| Hardware fog     | Specular material   |\n+------------------+---------------------+\n| |fog|            | |specular_material| |\n+------------------+---------------------+\n\n+------------------+-------------------+\n| Text             | Shadow volume     |\n+------------------+-------------------+\n| |text|           | |shadow_volume|   |\n+------------------+-------------------+\n\n+------------------+-------------------+\n| Screen effects   | 2D sprites        |\n+------------------+-------------------+\n| |screen_effects| | |sprites|         |\n+------------------+-------------------+\n\nContact\n=======\n\nThis project is currently hosted on GitHub at:\n\n    https://github.com/AntonioND/nitro-engine\n\nIf you want to contact me (Antonio Niño Díaz) directly you can email me at:\n\n   antonio underscore nd at outlook dot com\n\nLicense\n=======\n\nThe code of this repository is under the MIT license. The examples are under the\nCC0-1.0 license.\n\nThe full text of the licenses can be found under the ``licenses`` folder.\n\nFuture work\n===========\n\n- Asynchronous loading of assets (loading textures during VBL).\n\nThanks to\n=========\n\n- **devkitPro**: https://devkitpro.org/\n- **DLDI**: https://www.chishm.com/DLDI/\n- **DeSmuME**: http://desmume.org/\n- **melonDS**: https://melonds.kuribo64.net/\n- **no$gba**: https://problemkaputt.de/gba.htm\n- **gbatek**: https://problemkaputt.de/gbatek.htm\n- **gbadev forums**: https://forum.gbadev.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniond%2Fnitro-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantoniond%2Fnitro-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantoniond%2Fnitro-engine/lists"}