I have a problem with a MAME launch-ready roms building. After 'make' using compiler outputs .map file, object files and dev_p1.rom only.

tromb Fichier joint : [img=https://www.mirari.fr/8ZLv]https://www.mirari.fr/i6QA[/img]

I asked HPMAN, how to add romwak commands in makefile. His answer was that:

HPMAN (./6):
Add you romwak commands/batch after $(OBJC) --gap-fill=$(PADBYTE) -R .data -O binary $< $@

You shouldn't need romwak anyway, mame can load the raw files with a driver properly set up.

But soon he posted in the topic:

HPMAN (./10):You need files for P/V/S/M/C data.

And I still don't understood, how to get this files without romwak.


furrtek has been invited on this topic.



P data from GCC
C/S from buildchar

M/V from whatever sound tools you use. Put whatever files from another game for the demo.


HPMAN (./3):
P data from GCC
C/S from buildchar

Looks like C/S files is char.bin and fix.bin, and P file is a dev_p1.rom, I understood right?




HPMAN (./5):

Thank you!


Sorry for coming to the party late!

Anyone looking to get started with Neo Geo Development needs a way of rapidly testing their creations.
Hoping this will be a guide that will help people get started.
We all had to get this figured out at one point or another.

I will probably misinform and get some terminologies wrong. I apologize in advance.
This comes from a place of love for the game literally and figuratively.

First off if you open an MVS/AES game from the golden area you will find two separate PCB boards with glorious chips!
If you download a .zip of the same game and extract it chances are you will find just about as many files as you have chips on the physical boards.

P - Program data
C - Character or GFX data (Characters, Backgrounds etc)
S - Fix or Top Level GFX data (Power Bars, Timers etc)
M - Sound Logic
V - Sound Data

Now that we know the standard chips we will relate them to HPMAN's most recent DATlib 0.3 demo

P = dev_p1.rom
C = char.bin
S = fix.bin
M = Not included (We can take any M rom and use it as a place holder)
V = Not included (We can take any V rom and use it as a place holder)

Now we must navigate to our Mame directory.
This assumes that mame is installed and you are able to successfully run a Neo Geo game.

ProTip: If you are serious about developing you should use The Universe Bios made by a Mega Shocker named Razoola. It can be found here http://unibios.free.fr/
The reason this kicks so much ass is you can quickly test your projects in AES/MVS modes or change the Regions very quickly and easily. This may not be necessary
if you just want to mess around and make some demo's. I said ProTip not because I am a Pro but because if you want to make a professional game and test it under all possible
scenarios then this is your weapon of choice. I digress from the topic at hand.

1. In your "working" mame directory create a folder called whatever you want. I will call it "datdmo"
2. Copy and paste all the files listed above plus your place holder M and V roms.

You must let mame know how to identify your rom.

3. Navigate C:\mame\hash\NeoGeo.xml

Under the line that says:

<softwarelist name="neogeo" description="SNK Neo-Geo cartridges">

paste these lines xml of code and save the neogeo.xml file

<software name="datdmo"> <description>DatDemo</description> <year>2018</year> <publisher>HPMAN</publisher> <sharedfeat name="release" value="MVS,AES" /> <sharedfeat name="compatibility" value="MVS,AES" /> <part name="cart" interface="neo_cart"> <dataarea name="maincpu" width="16" endianness="big" size="0x400000"> <rom loadflag="load16_word" name="dev_p1.rom" offset="0x000000" size="0x100000" crc="bdda2c6e" sha1="6a94dee2d22feb07ea68a90ce67d5cac1b17b9c9" /> </dataarea> <dataarea name="fixed" size="0x040000"> <rom offset="0x000000" size="0x020000" name="fix.bin" crc="0e6a7c73" sha1="31b1194524dcc80ec4d63bac088b6fb4909f496c" /> </dataarea> <dataarea name="audiocpu" size="0x040000"> <rom offset="0x000000" size="0x040000" name="m1.rom" crc="da4878cf" sha1="ce13d18a4c5d01974df8542c67c4df00dbc6e7c1" /> </dataarea> <dataarea name="ymsnd" size="0x100000"> <rom offset="0x000000" size="0x100000" name="v1.rom" crc="149a5c2f" sha1="d52eac230f7aaa1d70cbb8d50a2513f180c65e4d" /> </dataarea> <dataarea name="sprites" size="0x2800000"> <rom loadflag="load16_word" name="char.bin" offset="0x000000" size="0x800000" crc="a9bdc000" sha1="93b0dfcd2121ddf6ea1fe99514a176d76e4b0c98" /> </dataarea> </part> </software>

4. Navigate to a your mame directory via a command prompt and issue this command

mame neogeo -cart1 datdmo

With any luck you are up and running the key is my folder was named "datdmo" and all the file names must correspond with the code above.


Side note: You can change the names of the files if you want but our demo program outputs the files that way so it is easiest to leave the names alone.
So now we can test HPMAN's demo in Mame but we can't rapidly test it and that is a key element to development.

You are very close now. Not to just testing but to rapid testing!

One way is to have a .bat file that copies the compiled demo files to the mame directory after the codes have been successfully compiled and then executes mame.

From where your source files are located you could launch something similar to this....
Many Thanks to JMKurtz for some crazy BAT shit I sadly don't understand but works very well....
he detects an error and doesn't let the script execute further if the compile fails...this is key.

make clean

//now copy your 3 files to the mame directory you made "datdmo"

copy dev_p1.rom %MAMEROMPATH%%ROMNAME%"
cd out
copy char.bin %MAMEROMPATH%%ROMNAME%"
copy fix.bin %MAMEROMPATH%%ROMNAME%"

//now navigate to and launch mame

mame neogeo -cart1 %ROMNAME%

//now ensure your command prompt remains in your source directory

There you have it I hope this is helpful to someone. I definitely had help, keep getting help and want to help where I can.
I hope we can now direct people in the direction of this post if this topic comes up in the future.



Thank you for all the information, it was really helpful for new developers joining the party late like me smile

So now that we are able to run custom sized roms with mame and so on ; i've got more questions ^^

How to test and run this kind of custom cart roms on real hardware ?? (maybe it should be posted as another topic?)

In which order of magnitude can we extend different roms parts (named as 'data areas' (from neogeo.xml)

For instance , the vx roms (ymsnd data) can be extended to 16MB (i have read somewhere that 32MB should be possible in theory)

What about the cx roms (sprites data) ? what is the maximum 128MB? (i've read that it can also be extended with bank switching but i have no idea on how to do it)


I use the NeoSD to test my neo games


ozzyyzzo (./8) :
For instance , the vx roms (ymsnd data) can be extended to 16MB (i have read somewhere that 32MB should be possible in theory)

What about the cx roms (sprites data) ? what is the maximum 128MB? (i've read that it can also be extended with bank switching but i have no idea on how to do it)

16MB max for each ADPCM-A/B pools.

C data 128MB max.


Did you succeed in the mission to load Neo Geo Rom's ( https://www.retrostic.com/roms/neo-geo ) in Mame Emulator? In these days you can use the same emulator like RetroArch to play all the games like Neo Geo, Mame, Saturn, and some other game console because you can find an emulator for all purposes.


Thank you Mega Shocked, very useful detailed information


Thanks to all of you
Custom roms can now be loaded and tested
Very helpfull