Neocore is a library and toolchain for developing on Neo Geo CD.
It provides high-level functions over Neo Dev Kit and DATlib 0.2, and includes tools and code that can help with projects on this platform.
The library is compatible with Windows 10 and Windows 11 for building.
I share my tools and my code, these could possibly help your projects on this platform.
- High abstraction level for Neo Geo CD development
- Tools and code to assist with projects
- Compatible with
Windows 10 andWindows 11
- Pong : https://github.com/David-Vandensteen/neogeo-cd-pong
- Flamble :
git clone git@github.com:David-Vandensteen/neocore.git
cd .\neocore\samples\hello
.\mak.bat run:mame
Warning: The mak script overrides the path environment variable during compilation.
If you encounter any problems after using it, simply close and restart a new command terminal.
- Clean the builded resources
.\mak.bat clean
- Build sprites
.\mak.bat sprite
- Build the program
.\mak.bat
- Build the ISO file
.\mak.bat iso
- Run with Raine
.\mak.bat run:raine
- Run with Mame
.\mak.bat run:mame
- Delivery ISO
.\mak.bat dist:iso
- Delivery MAME
.\mak.bat dist:mame
With powershell (you need to "be" in neocore folder root path)
$project = "c:\my-git\myGame"
- Replace
c:\my-git\myGame
with your real path.
xcopy /E /I src-lib $project\neocore\src-lib; copy manifest.xml $project\neocore; copy bootstrap\.gitignore $project\.gitignore; xcopy /E /I toolchain $project\neocore\toolchain; xcopy /E /I bootstrap\standalone $project\src; notepad $project\src\project.xml
Compile and run it
cd $project
.\mak.bat run:mame
See .\$project\project.xml
for settings.
Please note that the library is under development and the author is not responsible for any software damage.
This project is mainly tested on Raine and MAME emulators.
There is no guarantee or obligation from the author that anything will work on the real Neo-Geo hardware.
To test and improve compatibility with the hardware, I am searching for a Neo-Geo CD with an SD loader and HDMI capabilities.
You can contribute to this effort with a donation if you want.
Make a Paypal donation to help Neocore project
Here are other ways to contribute:
- If you own a Neo-Geo CD, you can test the examples and open or confirm issues on real hardware.
- If you are a developer, you can create tutorials or example code.
Any help is welcome.
From neocore\samples\hello
folder
.\mak.bat serve
Wait for the emulator to run and edit main.c
.
Now, remove loggerInfo("DAVID VANDENSTEEN");
(for example).
Save the file.
The hot-reload process will rebuild & run your project automaticaly.
Some problems currently:
- The process is not a real watcher (the rebuild is triggered only if the folder size change)
- When you break this process, path is not restored in the current terminal (close & reopen a new terminal)
From neocore\samples\CDDA
.\download-assets
.\mak.bat run:mame
In the emulator, use joypad right and left to change audio track.
See neocore\s\CDDA\project.xml
for understanding how to set the audio file.
For making your own graphics, see the DATlib ref available here: (you need to building a for init build folder)
.\neocore\build\neodev-sdk\doc\DATlib-LibraryReference.pdf
Launch the DATlib Framer application:
.\mak.bat framer
Launch the DATlib Animator application:
.\mak.bat animator
cd neocore\src-lib
.\build-neocore.bat -gccPath ..\build\gcc\gcc-2.95.2 -includePath ..\build\include -libraryPath ..\build\lib
This script override path environment variable during the compilation.
its avoid collisions with other bin, sdk, gcc...
If sdk was not found, build a sample (with mak script) to initialize cache (sdk will install in build folder).
BE CAREFUL : You need to remove build folder .\neocore\build
for supress cache files before compiling a project
- NeoDev
- DATlib
- DATimage
- NGFX SoundBuilder
- Raine
- Mame
- CHDMAN
- Doxygen
- MSYS2
- Mkisofs
- GCC
- mpg123
- ffmpeg
Neocore is licensed under the MIT license.
Copyright 2019 by David Vandensteen.
Some graphics by Grass.