{"id":19506632,"url":"https://github.com/david-vandensteen/neocore","last_synced_at":"2025-07-29T01:07:47.410Z","repository":{"id":50022580,"uuid":"193135876","full_name":"David-Vandensteen/neocore","owner":"David-Vandensteen","description":"Library \u0026 toolchain for Neo Geo CD develop. with C language","archived":false,"fork":false,"pushed_at":"2025-07-26T10:13:33.000Z","size":5483,"stargazers_count":38,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-26T13:13:26.389Z","etag":null,"topics":["c","game","homebrew","neo-geo","neogeo","powershell","sdk","toolchain"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","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/David-Vandensteen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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-21T17:21:37.000Z","updated_at":"2025-06-21T19:30:59.000Z","dependencies_parsed_at":"2023-11-12T17:54:36.338Z","dependency_job_id":"19c43576-9c17-4225-99f5-c1389f545ffb","html_url":"https://github.com/David-Vandensteen/neocore","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/David-Vandensteen/neocore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Vandensteen%2Fneocore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Vandensteen%2Fneocore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Vandensteen%2Fneocore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Vandensteen%2Fneocore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/David-Vandensteen","download_url":"https://codeload.github.com/David-Vandensteen/neocore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/David-Vandensteen%2Fneocore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267613324,"owners_count":24115611,"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-07-28T02:00:09.689Z","response_time":68,"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":["c","game","homebrew","neo-geo","neogeo","powershell","sdk","toolchain"],"created_at":"2024-11-10T22:37:47.210Z","updated_at":"2025-07-29T01:07:47.395Z","avatar_url":"https://github.com/David-Vandensteen.png","language":"PowerShell","funding_links":["https://www.paypal.com/donate/?hosted_button_id=YAHAJGP58TYM4"],"categories":[],"sub_categories":[],"readme":"# Neocore\n![Platform](https://img.shields.io/badge/platform-%20%7C%20windows-lightgrey) ![License: MIT](https://img.shields.io/badge/License-MIT-green.svg) ![GitHub last commit](https://img.shields.io/github/last-commit/David-Vandensteen/neocore) ![GitHub repo size](https://img.shields.io/github/repo-size/David-Vandensteen/neocore) ![NeoGeo-CD](https://img.shields.io/badge/target-NeoGeo%20CD-red) ![Uses Doxygen](https://img.shields.io/badge/docs-Doxygen-blue)\n\n![](https://media.giphy.com/media/TLfbmyW3523z24WONz/giphy.gif) ![](https://media.giphy.com/media/iFUh5AEPD4XfvpsvJh/giphy.gif) ![](https://media.giphy.com/media/iJObJsdx6ud4zI7cS1/giphy.gif)\n\n\nNeocore is a library and toolchain for developing on Neo Geo CD.  \nIt provides functions over Neo Dev Kit and DATlib 0.2, and includes tools and code that can help with projects on this platform.  \n\n - High abstraction level for Neo Geo CD development\n - Compatible with ~~Windows 10 and~~ Windows 11\n\n[discord](https://discord.com/channels/1330066799445676093/1330089958798790686)\n\n## 📚 Table of Contents\n- [🎮 Game, demo, code learning using Neocore](#examples)\n- [📋 Requirements](#requirements)\n- [📅 Roadmap](#roadmap)\n- [🚀 Init](#init)\n- [▶️ Build and run the hello sample](#build-and-run-the-hello-sample)\n- [⚙️ Mak rules](#mak-rules)\n- [📦 Create a project](#create-a-project)\n- [🆙 Upgrade an existing project](#upgrade-an-existing-project)\n- [📤 Release a project](#release-a-project)\n- [📖 Documentation of Neocore C lib](#documentation-of-neocore-c-lib)\n- [🤝 Contribute](#contribute)\n- [🎨 DATlib assets](#datlib-assets)\n- [🕹 Mame profiles](#mame-profiles)\n- [🧪 Raine configs](#raine-configs)\n- [🌿 Pull or checkout another branches](#pull-or-checkout-another-branches)\n- [♻️ Hot reload](#hot-reload)\n- [🔧 Compiling the lib (necessary if you develop or modify Neocore C lib)](#compiling-the-lib)\n- [📚 Dependencies](#dependencies)\n- [📝 Changelog](#changelog)\n\n### Game, demo, code learning using Neocore\u003ca name=\"examples\"\u003e\u003c/a\u003e\n\n  - Pong : https://github.com/David-Vandensteen/neogeo-cd-pong\n  - Flamble :\n    -  [https://twitter.com/i/status/1296434554526478336](https://twitter.com/i/status/1296434554526478336)\n    -  [https://www.youtube.com/embed/YjRmvMAfgbc](https://www.youtube.com/embed/YjRmvMAfgbc)\n    -  [http://azertyvortex.free.fr/flamble](http://azertyvortex.free.fr/flamble)\n\n## Requirements\n* Up to date Windows 11\n* Git [https://git-scm.com/download/win](https://git-scm.com/download/win)\n* Windows Terminal with cmd instance (shortcut win + r and type `wt cmd`)\n\n## 📅 Roadmap\u003ca name=\"roadmap\"\u003e\u003c/a\u003e\n\n### 🟡 Soon\n- [ ] Custom HUD / Fix layer\n  - [ ] Upgrade to Neocore v3 with DATlib 0.3 (**in progress**)\n\n### 🕓 Later\n- [ ] RGB palette handlers (**60% completed**)\n  - Samples: `pal_backdrop`, `pal_rgb`, `pal_rgb_mixer`\n- [ ] Joypad 2 support\n- [ ] Improve sound FX management\n- [ ] Palette bank switcher\n- [ ] DRAM asset management (unload/load from CD-ROM)\n\n### 🧐 Maybe\n- [ ] XML WYSIWYG editor\n- [ ] Memory card support\n- [ ] AES / MVS support (limited)\n- [ ] CLI-based asset packager\n\n## Init\n```cmd\ngit clone https://github.com/David-Vandensteen/neocore.git\n```\n    \n## Build and run the hello sample\n```cmd\ncd .\\neocore\\samples\\hello\n```\n```cmd\n.\\mak.bat run:mame\n```\n  \n## Mak rules\n⚠️ ___***Warning: The mak script overrides the path environment variable during compilation.  \nIf you encounter any problems after using it, simply close and restart a new command terminal.***___\n\n- Remove the builded resources\n```cmd\n.\\mak.bat clean\n```\n- Remove the build folder (remove tools, emulators, builded resources ...)\n```cmd\n.\\mak.bat clean:build\n```  \n- Build sprites\n```cmd\n.\\mak.bat sprite\n```\n- Build the program\n```cmd\n.\\mak.bat\n```\n- Build the ISO file\n```cmd\n.\\mak.bat iso\n```\n- **Run with Raine**\n```cmd\n.\\mak.bat run:raine\n```\n- **Run with Mame**\n```cmd\n.\\mak.bat run:mame\n```\n- Display version information\n```cmd\n.\\mak.bat --version\n```\n## Create a project\n* Go to the folder where you've cloned this Neocore repository (*replace `\u003cneocore\u003e` with your path in the following command*)\n```cmd\ncd \u003cneocore\u003e\\bootstrap\\scripts\\project\n```\n\n* Replace `myGame` and `c:\\temp\\myGame` with your data in the following command\n\n```cmd\n.\\create.bat -name myGame -projectPath c:\\temp\\myGame\n```\nThis script allow the -force parameter.   \nBe aware that in this case, existing resources will be overwritten.   \n```cmd\n.\\create.bat -name myGame -projectPath c:\\temp\\myGame -force\n```\n\n* Go to the `src` folder project (*replace `c:\\temp\\myGame\\src` with your path in the following command*)\n```cmd\ncd c:\\temp\\myGame\\src\n```\n\n* Compile and run it\n```cmd\n.\\mak.bat run:mame\n```\n\n## Upgrade an existing project\n*It's recommended to back up your project folder before starting.*   \n*This process does not upgrade your code, XML project definition, or assets and you must handle any breaking changes yourself.*   \n*The files mak.bat and mak.ps1 will be overwritten.*   \n*Neocore Toolchain will be replaced.*   \n*Neocore Lib C will be replaced.*   \n\n* Remove the `build` folder in your project (*replace `c:\\temp\\myGame\\build` with your path in the following command*)\n\n```cmd\nrd /S /Q c:\\temp\\myGame\\build\n```\n\n* Go to the folder where you've cloned this Neocore repository (*replace `\u003cneocore\u003e` with your path in the following command*)\n```cmd\ncd \u003cneocore\u003e\\bootstrap\\scripts\\project\n```\n\n* For upgrading your project, replace `c:\\temp\\myGame\\src` and `c:\\temp\\myGame\\neocore` with your data in the following command\n```cmd\n.\\upgrade.bat -projectSrcPath c:\\temp\\myGame\\src -projectNeocorePath c:\\temp\\myGame\\neocore\n```\n\n## Release a project\n* Go to your src folder project (*replace `c:\\temp\\myGame\\src` with your path in the following command*)\n```cmd\ncd c:\\temp\\myGame\\src\n```\n\n- ISO\n```cmd\n.\\mak.bat dist:iso\n```\n- MAME\n```cmd\n.\\mak.bat dist:mame\n```\n- EXE *(create a Windows standalone executable with the game project and Mame emulator embedded)*\n```cmd\n.\\mak.bat dist:exe\n```\n\n## Documentation of Neocore C lib\n\n  - Doxygen: [http://azertyvortex.free.fr/neocore-doxy/r11/neocore_8h.html](http://azertyvortex.free.fr/neocore-doxy/r11/neocore_8h.html)\n    \n## Contribute\n\nPlease note that the project is under development and the author is not responsible for any software damage.  \nThis library is mainly tested on Raine and MAME emulators.  \n  \n**There is no guarantee or obligation from the author that anything will work on the real Neo-Geo hardware.**  \n\nTo test and improve compatibility with the hardware, I am searching for a Neo-Geo CD with an SD loader and HDMI capabilities.  \nYou can contribute to this effort with a donation if you want.\n\n[Make a Paypal donation to help Neocore project](https://www.paypal.com/donate/?hosted_button_id=YAHAJGP58TYM4)\n\nHere are other ways to contribute:\n\n- If you own a Neo-Geo CD, you can test the examples and open or confirm issues on real hardware.  \n- If you are a developer, you can create tutorials or example code.\n\nAny help is welcome.  \n    \n## DATlib assets\nFor making graphics, see the DATlib ref available here: \n[http://azertyvortex.free.fr/download/DATlib-LibraryReference.pdf](http://azertyvortex.free.fr/download/DATlib-LibraryReference.pdf)   \n\nNeocore embed the content of `chardata.xml` in `project.xml`   \n\n```xml\n\u003cproject\u003e\n  \u003cgfx\u003e\n    \u003cDAT\u003e\n      \u003cchardata\u003e\n      \u003c/chardata\u003e\n    \u003c/DAT\u003e\n  \u003c/gfx\u003e\n\u003c/project\u003e\n```\n\nFor launching the DATlib Framer application:    \n```cmd\n.\\mak.bat framer\n```\nFor launching the DATlib Animator application:  \n```cmd\n.\\mak.bat animator\n```\n\n## Mame profiles\n\n```xml\n\u003cproject\u003e\n  \u003cemulator\u003e\n    \u003cmame\u003e\n      \u003cprofile\u003e\n        \u003cdefault\u003e-window -skip_gameinfo neocdz\u003c/default\u003e\n        \u003cfull\u003e-nowindow -skip_gameinfo neocdz\u003c/full\u003e\n        \u003cnosound\u003e-sound none -window -skip_gameinfo neocdz\u003c/nosound\u003e\n        \u003cdebug\u003e-debug -window -skip_gameinfo neocdz\u003c/debug\u003e\n      \u003c/profile\u003e\n    \u003c/mame\u003e\n  \u003c/emulator\u003e\n\u003c/project\u003e\n```\n\nTo use a named profile, launch mak run:mame:profileName   \nExample:\n- To run MAME in fullscreen.   \n```cmd\n.\\mak.bat run:mame:full\n```\n\nYou can add more custom profiles.\n\n## Raine configs\n```xml\n\u003cproject\u003e\n  \u003cemulator\u003e\n    \u003craine\u003e\n      \u003cconfig\u003e\n        \u003cdefault\u003e{{build}}\\raine\\config\\default.cfg\u003c/default\u003e\n        \u003cfull\u003e{{build}}\\raine\\config\\fullscreen.cfg\u003c/full\u003e\n        \u003cyuv\u003e{{build}}\\raine\\config\\yuv.cfg\u003c/yuv\u003e\n      \u003c/config\u003e\n    \u003c/raine\u003e\n  \u003c/emulator\u003e\n\u003c/project\u003e\n```\n\nTo use a named config, launch mak run:raine:configName   \nExample:\n- To run RAINE in fullscreen.   \n```cmd\n.\\mak.bat run:raine:full\n```\n\nYou can add more custom configs.\n\n## Pull or checkout another branches\n**BE CAREFUL : You need to remove build folder `.\\neocore\\build` for supress cache files before compiling a project**  \n\n## Hot reload\n* Go to the folder where you've cloned this Neocore repository (*replace `\u003cneocore\u003e` with your path in the following command*)\n```cmd\ncd \u003cneocore\u003e\\samples\\hello\n```\n```cmd\n.\\mak.bat serve:mame\n```\n  \nWait for the emulator to run and edit `main.c`.  \nNow, remove `nc_log_info(\"DAVID VANDENSTEEN\");` line.  \nSave the file.\n  \nThe hot-reload process will rebuild \u0026 run your project automaticaly.\n  \nSome problems currently:  \n* The process is not a real watcher (the rebuild is triggered only if the folder size change)  \n* When you break this process, path is not restored in the current terminal (close \u0026 reopen a new terminal)  \n\n## Compiling the lib (necessary if you develop or modify Neocore C lib)\u003ca name=\"compiling-the-lib\"\u003e\u003c/a\u003e\n\n```cmd\n.\\mak.bat lib\n```\n\n## Dependencies\n\n  - NeoDev\n  - DATlib\n  - DATimage\n  - NGFX SoundBuilder\n  - Raine\n  - Mame\n  - CHDMAN\n  - Doxygen\n  - MSYS2\n  - Mkisofs\n  - GCC\n  - mpg123\n  - ffmpeg\n  - NSIS\n\n## [Changelog](CHANGELOG.md)\n  - [link](CHANGELOG.md)\n\n## License\n\nNeocore is licensed under the MIT license.  \nCopyright 2019 by David Vandensteen.  \nSome graphics by **Grass**.    \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-vandensteen%2Fneocore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-vandensteen%2Fneocore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-vandensteen%2Fneocore/lists"}