Giter Site home page Giter Site logo

david-vandensteen / neocore Goto Github PK

View Code? Open in Web Editor NEW
25.0 3.0 3.0 2.55 MB

Library & toolchain for Neo Geo CD develop. with C language

Makefile 2.47% Batchfile 3.41% Assembly 9.15% C 41.93% PowerShell 42.08% Shell 0.97%
c game homebrew neo-geo neogeo sdk toolchain powershell

neocore's Introduction

Neocore

Platform License: MIT

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 mainly tested on Raine and MAME emulators and 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.

Doc

Game, demo, code learning

Feature

  • High-level functions for Neo Geo CD development
  • Tools and code to assist with projects
  • Tested on Raine and MAME emulators
  • Compatible with Windows 10 and Windows 11

Note

Please note that the library is under development and unoptimized, and the author is not responsible for any software damage.

License

Neocore is licensed under the MIT license.
Copyright 2019 by David Vandensteen.
Some graphics by Grass.

Build and run (with Mame) a included example

cd samples\hello
.\mak.bat run

Mak rules

Warn : mak script override path environment variable during the compiling, if u have some problems after using it, just 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 raine
  • Run with Mame
.\mak.bat mame

or

.\mak.bat run
  • Delivery ISO
.\mak.bat dist:iso
  • Delivery MAME
.\mak.bat dist:mame

Create your first experimentation

xcopy /E /I bootstrap\sample samples\awesome_project

Edit project.xml and set the project name

notepad samples\awesome_project\project.xml
<project>
  <name>awesome_project</name>
...

Compile and run it

cd samples\awesome_project
.\mak.bat run

See .\samples\awesome_project\project.xml
for settings.

"Hot reload"

cd samples\hello
.\mak.bat serve

Wait the running of the emulator and edit projects\hello\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)

CDDA

cd samples\CDDA
.\download-assets
.\mak.bat run

In the emulator, use joypad right and left to change audio track.
See .\samples\CDDA\project.xml for understanding how to set the audio file.

Create a "standalone" project

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

DATlib assets (in progress)

For making your own graphics, see the DATlib ref available here: (you need to building a sample for init build folder)

.\build\neodev-sdk\doc\DATlib-LibraryReference.pdf

DATlib Framer tool is available here:

.\build\neodev-sdk\m68k\bin\Framer.exe

The Animator tool is available here:

.\build\neodev-sdk\m68k\bin\Animator.exe

Compiling the lib (necessary if you develop Neocore lib)

cd 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).

Pull or checkout another branches

BE CAREFUL : You need to remove build folder .\build for supress cache files before compiling a project

SoundFX ... (todo)

Use Neocore toolchain for DATlib project (without Neocore lib) (todo)

Use Neocore toolchain for Neodev vanilla project (without DATlib & Neocore lib) (todo)

neocore's People

Contributors

david-vandensteen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

neocore's Issues

Neo Geo AES Support?

hey, so anyways i was wondering is there going to be support for Neo Geo AES/MVS so lets say for example if I want to port a game to the Neo Geo mvs/aes. i can technically do that because the hardware is the same inside for the m68k and z80. so is there going to be support for mvs/aes?

Graphic conversion issue.

Hey, so anyways i was trying to convert a png file into a sprite using the buildchar program. but when i try to convert the sprite into a png, it gives me an error. the error says: Invalid character in the given encoding. Line 1, position 1.
Idk what this means so can you try to figure out what's causing the issue to pop up?

Can you help me with this error?

Hey yall, so anyways i installed the neocore sdk on my windows computer and it went well, but when i ran the mak run command it gave me a error, the error says: FATAL: Can't create /Users/thepl/AppData/Local/Temp/neocore/hello/crt0_cd.o: No such file or directory
make: *** [/Users/thepl/AppData/Local/Temp/neocore/hello/crt0_cd.o] Error 1
idk what to do for this error, so can you please help me!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.