1

Hello Yaronet members,

I've been working on this since May (and yet I don't really have too much to show for it, but various people have told me it's a good idea to post about this anyways, so)...

The freemlib for Neo-Geo is a set of assembly language routines for writing Neo-Geo programs/games. It's not to the level of the NeoBitz devkit or DATlib yet, sadly. It's also not provided as a library you could call from C programs at the moment, but that will probably come when the library is in a much better position.

It's open source, though I have not figured out what license I would like to use yet (preferably something allowing commercial use but not requiring developers to release the source code of their games on release. Ideally, I would like other devs to be able to contribute back to the library.) under the ISC License. You can follow along here: https://github.com/freem/freemlib-neogeo

Part of the reason it took a bit for me to talk about this publicly is Neo-Geo CD support; I didn't think about it until recently and didn't realize some of the 68K vectors needed to be different. Also, creating the various TITLE_*.SYS files for CDZ, but that hasn't stopped me yet. grin

The toolset this kit uses:
* GNU make (because I am a weirdo who has it available on his Windows system, as well as Linux)
* vasm (68K with Motorola syntax)
* vasm (Z80 with oldstyle syntax)
* furrtek's pad.c, though you could probably edit the makefiles to use my port of ROMWak.
* some byteswapping program I found on the internet (source code), but you might be able to use my port of ROMWak again...
* YY-CHR.NET with NeoFixFormat plugin (from my dev site) and those old encode16/decode16 tools because I haven't finished the Sprite plugins yet.
* mkisofs for creating ISO images (NGCD)
* chdman for creating CHD images (for use with the NGCD/Z emulation in MESS)

I've provided some vasm 32-bit Windows binaries on my dev site; there's also a byteswap.exe there too, but I can't recall where it is at the moment. (Out of town, away from most logins, don't have the info on the laptop, etc.)

There are a few example projects included with the library:

Example 01: Hello World on the Fix Layer
z7k3K7o.png
A simple test of writing text on the fix layer (via raw LSPC/GPU writes and various MESS_OUT commands).

Example 02: Hello World on the Sprite Layer
eJ8sTvr.png
This includes a movable sprite to show you how the fix layer and sprites interact. You can also cycle the color of the sprite with the A button.

Example 03: Palette Basics
ugLwuvo.png
A simple test of a single 15-color palette. I forget if I was supposed to do more with it or not... :s

The next example would be an input tester program, and then after that, I can't recall the order of the remaining examples. (There's a list of directories back home up to example 09, though.)

Ideally, I'm looking to make this a full-fledged library, including full sound support (FM+SSG+ADPCM-A+[ADPCM-B or CD-DA, depending on system]). Right now, there's still a lot of work to be done, and I'm still trying to hash out various details of data formats and how to handle certain things (e.g. background layering systems, sprite animations, collisions, the music and sound playback engines)... Most of my thoughts on these types of things are currently available in the doc directory of the repo; I'd like to get some discussion going on this.

The worst part of this is that I don't have any hardware to test on yet, so I'm going to have to rely on others to make sure my stuff works... (related/unrelated: I'm going to need to find my link to my "compile VIP2demo with vasm using devpac option" setup so I can have people test it, as emulators give results that I'm not sure are hardware accurate or not. that will end up in this thread too because I am lazy and don't feel like making too many threads here.)

[edited on 2014/11/14 to note the use of ISC License.]
avatar

2

It might help if I provide some of the examples as ROMs/ISOs/CHDs, so here's a link: http://www.ajworld.net/neogeodev/freemlib_NeoGeo_examples_1-3.7z
avatar

3

Why nodoby says anything as usual!

Well i'll do my part: great job man!

I'm very happy to see this kind o approach, now i'll check your links to find out what u've done so far!

Thanks 4 sharing!

4

great job !! top
RetroIsTheOnlyFuture!

5

freem (./1) :


Ideally, I'm looking to make this a full-fledged library, including full sound support (FM+SSG+ADPCM-A+[ADPCM-B or CD-DA, depending on system]).


amazing ! top
can't wait for it ! awesome work freem !

i'm gonna check vasm... boing

6

I probably should've posted this back in November, but I uploaded a work-in-progess input tester for example 4:
B2oTv5-CEAAA5h_.png:large

I'm also trying to figure out how decent this library is by trying to port The Last Eichhof to the Neo with it. turns out my sprite routines leave a lot to be desired...

some screenshots of the few things I have finished 100% (a small part of the intro, and the main menu):
6vnJkmM.png kdyMtoG.png
(screenshots in AES mode, CD version would probably do away with the credits and re-add option 6/exit to [not] dos)
avatar

7

Hi freem
First, I send the best wishes for you and yours to, for this new year 2015 smile
...'Bonne Année a tous les membres de ce Forum aussi' ... best wishes to all members of this section too !
Hope everything is going great for you !

Man, you respect exactly your 'todo' list, since few Months ... good job !
http://www.ajworld.net/neogeodev/neoguide/?p=7 Examples – Neo-Geo Programming Guide

Actualy, you work & trying to port The 'Last Eichhof' on NG system. It's a Good news for us !

to have an idea of this Game ...an little video
https://www.youtube.com/watch?v=bjZ_67Ttznk test of this FUN Shmup game - The Last Eichhof - Longplay

The Story So Far:
Long time ago, as far as beer is concerned, everything was just fine. There were plenty of little breweries, and there was almost no
competition between them.
In the first half of this century, time changed and the economical situation became quite bad. A lot of breweries produced only a weak lager
beer because there wasn't enough raw material.
Now, time is much better, but a few breweries still produce almost only lager and they become bigger and bigger ....
It's up to you to save the brewery of Eichhof (with its great beers) from the imperium of "big beers".
Good luck !

Grafix and fonts by Tweety
Code and levels by Tritone
Additional programming and music by Zynax of DarkSys


Regards,
Frederic /FRONT!

8

Hi,


i've the pleasure to follow the AJ's work quite close and i think that everyone (me 2) should learn from his way not only to approach the machine that unites us here, but also the desire to grow in relation to the community.

Go on like this!

9

Hello

If you want i could test your réalisation on the real Hardware
you could send the Iso to my adresse
avatar
La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/

10

Today, it's been a year since I've started the project:
DQ4fTG0.png

Things I've learned during this time:
* Making a good sprite system (involving multiple frames of animation, palette changes, and so on) is hard.
* Making a good sound driver is harder, but possible. (Currently have ADPCM-A and ADPCM-B playback for The Last Eichhof working; trying to get FM and SSG sequences playable so I can have the Neo-Geo logo and the coin sound)
* Reverse engineering is your best friend.

Kind of disappointed that I didn't get nearly as far as I would've liked, but not much I can do about the past wink
avatar

11

hello

I see your web page
Don't forget my listing homebrew cd page

http://neogeocdworld.info/html/basejeux/basecd.htm
avatar
La Neo Geo CD à son site (en tout cas elle essaye...): http://neogeocdworld.info/
Le forum de la Neo Geo sur Yaronet: forums/264

Un petit site sur l'Atari Falcon avec plein de trucs bon pour votre poussin: http://falcon.ti-fr.com/