Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/freem/freemlib-neogeo

library(-ish) and utils for programming the Neo-Geo
https://github.com/freem/freemlib-neogeo

assembly neo-geo neogeo

Last synced: about 2 months ago
JSON representation

library(-ish) and utils for programming the Neo-Geo

Awesome Lists containing this project

README

        

freemlib for Neo-Geo
====================
The freemlib for Neo-Geo is a set of functions and tools for those who want to
develop for the system in assembly language. Adapting the functions into a library
for use with C is planned, but I won't be doing so myself until the codebase is
better developed and battle tested.

Status
------
The primary goal right now is to get the library coded, as well as provide
examples that use the library. Overall, the tasks can be broken down as follows:

(All percentage completions are estimates as of 2023/04/02. No project is ever truly finished. :wink:)

### Library ###
These elements form the core of the freemlib for Neo-Geo.

* **Animation** – Sprite animation. 0%.
* **Backgrounds** – Routines for background sprites. 0%.
* **Collision** – Most every game needs some sort of collision. 0%.
* **Fix** – Fix layer functionality. Still needs work, ~23%?
* **Memory Card** – Handle Memory Cards (also Neo-Geo CD Backup Memory). 5%, needs testing.
* **Palette** – Palette functionality. ~10%.
* **Sound** – Fully-featured (FM, SSG, both ADPCM types, CD/DA) Z80 sound engine. 4%.
* **Sprites** – General sprite functionality. ~15%?, with restructuring to come.
* **System** – Various system functions. 1%.

Am I missing anything? Please let me know. (Input routines for non-standard controllers
and for other purposes might be provided later.)

### Tools ###
Various tools to help you produce content for the Neo-Geo. Special consideration
should be made for Linux (and OS X) compatibility whenever possible.

#### Available and/or Finished ####
* **NeoFixFormat** – Fix format tiles plugin for YY-CHR.NET. 100%, unless a bug comes up.
* **Sailor VROM** – V ROM/.PCM file builder and manager. 25%, but usable. ([Lua version available](https://github.com/freem/freemlib-neogeo/tree/master/tools/sailorvrom/lua))
* **4BPP SMS/GG/WSC to Neo-Geo ".c0" Format tool** – 100% for the time being. ([project repository](https://github.com/freem/NeoSpriteConv))

#### WIP ###
* **FM Studio** – On-console utility for testing and developing FM sounds. 1% (earliest stages of development)
* and others not listed here...
* A tool for Fix layer layout, similar to Shiru's NES Screen Tool. 10%
* A tool for animation data (various tools exist already, I'm aware.) 0%
* A tool for converting Tiled map data. 0%
* Various sound tools (ADPCM-A/B conversion; tools exist, but need unification.) ?%

### Documentation ###
The black sheep of any programming project, but also necessary because who the hell
is going to read a bunch of ASM to figure out the library? My main problem is that
I only really want to write it once.

* **Library Docs (text)** – The straight dope. See `doc/` folder.
* **Library Docs (HTML)** – The pretty version. Still very WIP.
* **Neo-Geo Programming Guide** – think of the Nerdy Nights (NES) tutorials,
but for Neo-Geo. The examples kind of cover this, but aren't nearly as accessible...

Navigation
----------
* `cdfiles/` – Files required for Neo-Geo CD games (aside from `IPL.TXT`)
* `doc/` – Documentation (both general and freemlib related)
* `examples/` – freemlib Usage Examples
* `src_68k/` – Main freemlib library code.
* `src_z80/` – freemlib sound engine code.
* `tools/` – Various tools.

You should read `doc/usage.txt` for how to setup a project with the freemlib.

Filing Bugs/Issues
------------------
Please use the [GitHub bug tracker](https://github.com/freem/freemlib-neogeo/issues)
to file any errors, issues, and/or feature requests.

License
-------
The freemlib for Neo-Geo is licensed under the [ISC License](http://opensource.org/licenses/ISC).
Full terms may be found in the "LICENSE" file.
Tools may be licensed differently from the main library, see each project for licensing details.

Contact
-------
The best way to reach me about this project is via IRC:
* irc.libera.chat – #neogeodev

but if IRC isn't your thing, you might want to try one (or more) of these options:
* [Yaronet forums](https://www.yaronet.com/sections/417-programmation-homebrew-sur-neo-geo)
* via e-mail: ajk187 at gmail (bad for attachments; contact me first without them
if you want to send any)