Welcome!

General Emulation => General Emulation => Topic started by: Fighterchar on February 01, 2018, 02:56:18 pm

Title: How add roms hack neogeo?
Post by: Fighterchar on February 01, 2018, 02:56:18 pm
Hello I wana add some roms hacks Neogeo roms, same kof2k2omg, Kof98ice, Kof2k2oi, among others, but how is it posible?
I have the parent rom and the rom hack, this found in winkawaks whit loader but the emulator havent tool assisted for do TAS.
If it is posible what I need to do?

I shared the link kof2k2omg http://www.mediafire.com/.zip
and the parent zip
They found correctly in kawaks

Title: Re: How add roms hack neogeo?
Post by: iq_132 on February 01, 2018, 03:53:55 pm
For final burn alpha or mame you would have to compile the source. Not necessarily an easy task.
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 02, 2018, 12:44:07 am
Thank you, there are a tutorial for to learn to do it?
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 02, 2018, 03:35:40 am
So i got curious myself about this, and tried adding :
Code: [Select]
// Kof2002 (hack omg)

static struct BurnRomInfo kof2k2omgRomDesc[] = {
{ "265omg.p1",    0x100000, 0x62174834, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
{ "265omg.p2",    0x400000, 0x6fadc5c3, 1 | BRF_ESS | BRF_PRG }, //  1

{ "265omg.s1",    0x020000, 0x6145daf4, 2 | BRF_GRA },           //  2 Text layer tiles

{ "265xxx.c1",    0x800000, 0x745b343e, 3 | BRF_GRA },           //  3 Sprite data
{ "265xxx.c2",    0x800000, 0x2aab7f98, 3 | BRF_GRA },           //  4
{ "265ori.c3",    0x800000, 0xe5074eea, 3 | BRF_GRA },           //  5
{ "265ori.c4",    0x800000, 0xf6eb1ff2, 3 | BRF_GRA },           //  6
{ "265d.c5",      0x800000, 0x74bba7c6, 3 | BRF_GRA },           //  7
{ "265d.c6",      0x800000, 0xe20d2216, 3 | BRF_GRA },           //  8
{ "265ori.c7",    0x800000, 0x0e9f6adb, 3 | BRF_GRA },           //  9
{ "265ori.c8",    0x800000, 0x9961799e, 3 | BRF_GRA },           // 10

{ "265ori.m1",    0x020000, 0xab9d360e, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code

{ "265nu.v1",     0x400000, 0x13d98607, 5 | BRF_SND },           // 12 Sound data
{ "265nu.v2",     0x400000, 0x9cf74677, 5 | BRF_SND },           // 13
{ "265nu.v3",     0x400000, 0x8e9448b5, 5 | BRF_SND },           // 14
{ "265nu.v4",     0x400000, 0x067271b5, 5 | BRF_SND },           // 15
};

STDROMPICKEXT(kof2k2omg, kof2k2omg, neogeo)
STD_ROM_FN(kof2k2omg)

struct BurnDriver BurnDrvkof2k2omg = {
"kof2k2omg", "kof2002", "neogeo", NULL, "2002",
"Kof2002 (hack omg)\0", NULL, "bootleg", "KOF-ON Team",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO | HARDWARE_SNK_CMC50 | HARDWARE_SNK_ENCRYPTED_M1, GBF_VSFIGHT, FBF_KOF,
NULL, kof2k2omgRomInfo, kof2k2omgRomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
kof2002Init, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
0x1000, 304, 224, 4, 3
};

to d_neogeo.cpp (see https://github.com/Robbbert/hbmame/blob/master/src/hbmame/drivers/kof2002.cpp for the crc)

But for whatever reason, when i try launching it, it complains about the file 265omg.p1 (with crc 62174834) being missing, of course i made sure i had the right rom in the right folder with the right crc. What am i overlooking ?
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 02, 2018, 07:20:19 pm
I dont know, but wow, nice work, maybe the roms I shared the rom links

Need two roms to found correctly
kof2k2nd.zip is the parent rom

In Kawaks this found correcty only using two roms
Title: Re: How add roms hack neogeo?
Post by: iq_132 on February 02, 2018, 07:23:12 pm
I dont know, but wow, nice work, maybe the roms I shared the rom links

Need two roms to found correctly
kof2k2nd.zip is the parent rom

In Kawaks this found correcty only using two roms

No roms here please.
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 02, 2018, 07:32:13 pm
ok sorry  :wink:
Title: Re: How add roms hack neogeo?
Post by: Robert on February 03, 2018, 04:41:33 pm
The rom with CRC=62174834 has a length of 0x12bd4c1, not 0x1000000.

Code: [Select]
    ROM_LOAD16_WORD_SWAP( "265omg.p1", 0x000000, 0x100000, CRC(62174834) SHA1(7bdfa0260bba90b0325b90849fb8f9acef34c3f4) )
    ROM_IGNORE( 0x2bd4c1 )


If FBA can't simulate ROM_IGNORE, you could snip off the unwanted part from the rom with a tool. This will produce a different CRC which you'll have to add to your code.
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 04, 2018, 05:26:41 am
If FBA can't simulate ROM_IGNORE, you could snip off the unwanted part from the rom with a tool. This will produce a different CRC which you'll have to add to your code.
I checked a few games using this feature in hbmame against fba, it doesn't seem they exist in fba so i guess it means this feature doesn't exist ?

kof2k2omg8, kof2k2omg9 and kof2k2omg9b don't seem to use this though, so i'll check if i can get them to work in fba. Do you know if they are older or newer version of this hack ?
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 04, 2018, 06:23:41 am
kof2k2omg8, kof2k2omg9 and kof2k2omg9b don't seem to use this though, so i'll check if i can get them to work in fba. Do you know if they are older or newer version of this hack ?
I got kof2k2omg8 loading with this :
Code: [Select]
// Kof2002 (Omega v0.8)

static struct BurnRomInfo kof2k2omg8RomDesc[] = {
{ "265omg8.p1",   0x100000, 0x53086581, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
{ "265omg8.p2",   0x400000, 0x40228fe5, 1 | BRF_ESS | BRF_PRG }, //  1

{ "265omg8.s1",   0x020000, 0x65351d40, 2 | BRF_GRA },           //  2 Text layer tiles

{ "265omg8.c1",   0x800000, 0xe144302d, 3 | BRF_GRA },           //  3 Sprite data
{ "265omg8.c2",   0x800000, 0xb10c6958, 3 | BRF_GRA },           //  4
{ "265omg8.c3",   0x800000, 0x2367927c, 3 | BRF_GRA },           //  5
{ "265omg8.c4",   0x800000, 0x4ad48c29, 3 | BRF_GRA },           //  6
{ "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
{ "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
{ "265omg8.c7",   0x800000, 0x890c2a4a, 3 | BRF_GRA },           //  9
{ "265omg8.c8",   0x800000, 0xb726009d, 3 | BRF_GRA },           // 10

{ "265omg8.m1",   0x040000, 0x9a3d5c65, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code

{ "kf10-v1.bin",  0x800000, 0x0fc9a58d, 5 | BRF_SND },           // 12 Sound data
{ "kf10-v2.bin",  0x800000, 0xb8c475a4, 5 | BRF_SND },           // 13
};

STDROMPICKEXT(kof2k2omg8, kof2k2omg8, neogeo)
STD_ROM_FN(kof2k2omg8)

struct BurnDriver BurnDrvkof2k2omg8 = {
"kof2k2omg8", "kof2002", "neogeo", NULL, "2010",
"Kof2002 (Omega v0.8)\0", NULL, "bootleg", "KOF-ON Team",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
NULL, kof2k2omg8RomInfo, kof2k2omg8RomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
kof2002Init, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
0x1000, 304, 224, 4, 3
};
The graphics are messed up though, and i can't go past the select champ screen (i tried some additional HARDWARE_SNK_* flags, but all of them seemed to break the game further), so i guess it needs some additional things (i expected this), any idea what i should try doing next ?

PS : i'm mainly interested in the process of thought, not the final result :p.
Title: Re: How add roms hack neogeo?
Post by: Robert on February 04, 2018, 10:56:42 am
I'm not familiar with FBA programming, but the "kof2002Init" I suspect should not be there. The set is completely unencrypted. Find out what "eightman" uses in that field and give that a go.
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 04, 2018, 11:01:09 am
I'm not familiar with FBA programming, but the "kof2002Init" I suspect should not be there. The set is completely unencrypted. Find out what "eightman" uses in that field and give that a go.
Didn't thought about that. Yes it makes sense to use a init function which doesn't handle encryption.
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 04, 2018, 12:06:00 pm
Didn't thought about that. Yes it makes sense to use a init function which doesn't handle encryption.
Code: [Select]
// Kof2002 (Omega v0.8)

static struct BurnRomInfo kof2k2omg8RomDesc[] = {
{ "265omg8.p1",   0x100000, 0x53086581, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
{ "265omg8.p2",   0x400000, 0x40228fe5, 1 | BRF_ESS | BRF_PRG }, //  1

{ "265omg8.s1",   0x020000, 0x65351d40, 2 | BRF_GRA },           //  2 Text layer tiles

{ "265omg8.c1",   0x800000, 0xe144302d, 3 | BRF_GRA },           //  3 Sprite data
{ "265omg8.c2",   0x800000, 0xb10c6958, 3 | BRF_GRA },           //  4
{ "265omg8.c3",   0x800000, 0x2367927c, 3 | BRF_GRA },           //  5
{ "265omg8.c4",   0x800000, 0x4ad48c29, 3 | BRF_GRA },           //  6
{ "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
{ "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
{ "265omg8.c7",   0x800000, 0x890c2a4a, 3 | BRF_GRA },           //  9
{ "265omg8.c8",   0x800000, 0xb726009d, 3 | BRF_GRA },           // 10

{ "265omg8.m1",   0x040000, 0x9a3d5c65, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code

{ "kf10-v1.bin",  0x800000, 0x0fc9a58d, 5 | BRF_SND },           // 12 Sound data
{ "kf10-v2.bin",  0x800000, 0xb8c475a4, 5 | BRF_SND },           // 13
};

STDROMPICKEXT(kof2k2omg8, kof2k2omg8, neogeo)
STD_ROM_FN(kof2k2omg8)

struct BurnDriver BurnDrvkof2k2omg8 = {
"kof2k2omg8", "kof2002", "neogeo", NULL, "2010",
"Kof2002 (Omega v0.8)\0", NULL, "bootleg", "KOF-ON Team",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
NULL, kof2k2omg8RomInfo, kof2k2omg8RomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
0x1000, 304, 224, 4, 3
};
It works ! Except perhaps something missing on the title screen ? (see my screenshot)

To the OP :
- Follow the guide at http://neo-source.com/index.php?topic=2379.0 up to IV
- Copy/paste my code at the end of src/burn/drv/neogeo/d_neogeo.cpp
- Finish the instructions in the guide

I'll take a look at version 9 and 9b later (or you could try adding it yourself if you understood the general process)
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 06, 2018, 12:54:30 am
the process is so hard for me  :eek:
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 06, 2018, 01:54:34 am
the process is so hard for me  :eek:
Actually i wasn't able to get version 9 to work yet, the rom seems to load fine but the emulator crash, and my debug tools didn't give me any useful information, so i guess there is some kind of protection/encryption ?
I didn't try version 9b.
Title: Re: How add roms hack neogeo?
Post by: Robert on February 06, 2018, 06:59:08 pm
No protection or encryption, it's the same setup as omg8. Same applies to omg9b.

If you look in hbmame's source, find the GAME macro, and read the word just before ROT0. If it says "neogeo", then it's unencrypted and should just work.
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 06, 2018, 11:38:40 pm
if possible to patch IPS in this roms hacks? I have a rom called kof2k2ps2 but the sound is bad, I need a rom hack whit Orochi Iori, and the Kof2k2omg have a good Orochi Iori the voice is good and de sprites  :wink:
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 07, 2018, 02:07:12 am
No protection or encryption, it's the same setup as omg8. Same applies to omg9b.

If you look in hbmame's source, find the GAME macro, and read the word just before ROT0. If it says "neogeo", then it's unencrypted and should just work.

Then i have no clue why this one would crash :
Code: [Select]
// Kof2002 (Omega v0.9)

static struct BurnRomInfo kof2k2omg9RomDesc[] = {
{ "265-p1.p1",    0x100000, 0x9ede7323, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
{ "265omg9.p2",   0x400000, 0xcd503fcf, 1 | BRF_ESS | BRF_PRG }, //  1

{ "265omg9.s1",   0x020000, 0x4562fb20, 2 | BRF_GRA },           //  2 Text layer tiles

{ "265omg9b.c1",  0x800000, 0xc8314ae2, 3 | BRF_GRA },           //  3 Sprite data
{ "265omg9b.c2",  0x800000, 0xe0ddced5, 3 | BRF_GRA },           //  4
{ "265omg9b.c3",  0x800000, 0x6898f6e2, 3 | BRF_GRA },           //  5
{ "265omg9b.c4",  0x800000, 0x9232e491, 3 | BRF_GRA },           //  6
{ "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
{ "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
{ "265omg9b.c7",  0x800000, 0x6954ef57, 3 | BRF_GRA },           //  9
{ "265omg9b.c8",  0x800000, 0x3e394883, 3 | BRF_GRA },           // 10

{ "265ori.m1",    0x020000, 0xab9d360e, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code

{ "265nu.v1",     0x400000, 0x13d98607, 5 | BRF_SND },           // 12 Sound data
{ "265nu.v2",     0x400000, 0x9cf74677, 5 | BRF_SND },           // 13
{ "265nu.v3",     0x400000, 0x8e9448b5, 5 | BRF_SND },           // 14
{ "265nu.v4",     0x400000, 0x067271b5, 5 | BRF_SND },           // 15
};

STDROMPICKEXT(kof2k2omg9, kof2k2omg9, neogeo)
STD_ROM_FN(kof2k2omg9)

struct BurnDriver BurnDrvkof2k2omg9 = {
"kof2k2omg9", "kof2002", "neogeo", NULL, "2012",
"Kof2002 (Omega v0.9)\0", NULL, "bootleg", "KOF-ON Team",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
NULL, kof2k2omg9RomInfo, kof2k2omg9RomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
0x1000, 304, 224, 4, 3
};

Perhaps dink or iq_132 could tell me what i'm doing wrong ?
Title: Re: How add roms hack neogeo?
Post by: dink on February 07, 2018, 08:10:52 am
I'm not 100% sure about this, but something I've sorta noticed: but when a neogeo game has huge sound roms (like I see in this one), it might mean that the data size to be specified in neo_run.cpp: search for lasthope, duplicate the line and change it to the value of all 4 sound roms added up.

best regards,
- dink
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 07, 2018, 01:53:51 pm
I'm not 100% sure about this, but something I've sorta noticed: but when a neogeo game has huge sound roms (like I see in this one), it might mean that the data size to be specified in neo_run.cpp: search for lasthope, duplicate the line and change it to the value of all 4 sound roms added up.

best regards,
- dink
I confirm adding
Code: [Select]
if (!strcmp("kof2k2omg9", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x1600000;
solved this !

Thanks :)

PS : could you confirm there is no equivalent to ROM_IGNORE in fbalpha ?

Edit : also, how come lastblad (4x4Mo) and kof2k2omg8 (2x8Mo) don't need this line in neo_run.cpp ? Is it related to the Z80 bios file being different ?
Title: Re: How add roms hack neogeo?
Post by: dink on February 07, 2018, 06:54:25 pm
I'm not 100% sure on this answer (I havn't verified it), but from what I recon:
Some games need that adpcm line because the pcm format is different from standard neogeo samples. 

There is no ROM_IGNORE, but you don't need it.  first you'll need to create a loader callback.  search Alpham2pCallback() in d_neogeo, then do something like:
   BurnLoadRom(Neo68KROMActive + 0x000000, 0, 1);
   BurnLoadRom(Neo68KROMActive + 0x100000, 1, 1); // second rom will overwrite 0x100000+

if that doesn't work, pm me everything I need to run that game including your current code and I'll give it a try.

bye for now,
- dink

I confirm adding
Code: [Select]
if (!strcmp("kof2k2omg9", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x1600000;
solved this !

Thanks :)

PS : could you confirm there is no equivalent to ROM_IGNORE in fbalpha ?

Edit : also, how come lastblad (4x4Mo) and kof2k2omg8 (2x8Mo) don't need this line in neo_run.cpp ? Is it related to the Z80 bios file being different ?
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 08, 2018, 04:56:20 am
if that doesn't work, pm me everything I need to run that game including your current code and I'll give it a try.
It worked :). I'll post the code when i'm back from work.

Last thing i don't know about those games, perhaps Robert could confirm : is it normal that "King of Fighters 2002" don't appear on the title screen for versions 8, 9b and 9 ?
Title: Re: How add roms hack neogeo?
Post by: Robert on February 08, 2018, 08:32:28 am
Yes, the logo doesn't appear for those games. If you get kof2k2omg to work, the title screen is correct on that one.
Title: Re: How add roms hack neogeo?
Post by: barbudreadmon on February 08, 2018, 01:51:57 pm
Here is the full patch for those 4 games :
Code: [Select]
diff --git a/src/burn/drv/neogeo/d_neogeo.cpp b/src/burn/drv/neogeo/d_neogeo.cpp
index 3afea13..1c52fbe 100644
--- a/src/burn/drv/neogeo/d_neogeo.cpp
+++ b/src/burn/drv/neogeo/d_neogeo.cpp
@@ -14297,6 +14297,169 @@ struct BurnDriver BurnDrvkf2k4pls = {
  0x1000, 304, 224, 4, 3
 };
 
+// Kof2002 (hack omg)
+
+static struct BurnRomInfo kof2k2omgRomDesc[] = {
+ { "265omg.p1",    0x3bd4c1, 0x62174834, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
+ { "265omg.p2",    0x400000, 0x6fadc5c3, 1 | BRF_ESS | BRF_PRG }, //  1
+
+ { "265omg.s1",    0x020000, 0x6145daf4, 2 | BRF_GRA },           //  2 Text layer tiles
+
+ { "265xxx.c1",    0x800000, 0x745b343e, 3 | BRF_GRA },           //  3 Sprite data
+ { "265xxx.c2",    0x800000, 0x2aab7f98, 3 | BRF_GRA },           //  4
+ { "265ori.c3",    0x800000, 0xe5074eea, 3 | BRF_GRA },           //  5
+ { "265ori.c4",    0x800000, 0xf6eb1ff2, 3 | BRF_GRA },           //  6
+ { "265d.c5",      0x800000, 0x74bba7c6, 3 | BRF_GRA },           //  7
+ { "265d.c6",      0x800000, 0xe20d2216, 3 | BRF_GRA },           //  8
+ { "265ori.c7",    0x800000, 0x0e9f6adb, 3 | BRF_GRA },           //  9
+ { "265ori.c8",    0x800000, 0x9961799e, 3 | BRF_GRA },           // 10
+
+ { "265ori.m1",    0x020000, 0xab9d360e, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
+
+ { "265nu.v1",     0x400000, 0x13d98607, 5 | BRF_SND },           // 12 Sound data
+ { "265nu.v2",     0x400000, 0x9cf74677, 5 | BRF_SND },           // 13
+ { "265nu.v3",     0x400000, 0x8e9448b5, 5 | BRF_SND },           // 14
+ { "265nu.v4",     0x400000, 0x067271b5, 5 | BRF_SND },           // 15
+};
+
+STDROMPICKEXT(kof2k2omg, kof2k2omg, neogeo)
+STD_ROM_FN(kof2k2omg)
+
+static void kof2k2omgCallback()
+{
+ BurnLoadRom(Neo68KROMActive + 0x000000, 0, 1);
+ BurnLoadRom(Neo68KROMActive + 0x100000, 1, 1);
+}
+
+static INT32 kof2k2omgInit()
+{
+ NeoCallbackActive->pInitialise = kof2k2omgCallback;
+
+ return NeoInit();
+}
+
+struct BurnDriver BurnDrvkof2k2omg = {
+ "kof2k2omg", "kof2002", "neogeo", NULL, "2002",
+ "Kof2002 (hack omg)\0", NULL, "bootleg", "KOF-ON Team",
+ NULL, NULL, NULL, NULL,
+ BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
+ NULL, kof2k2omgRomInfo, kof2k2omgRomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
+ kof2k2omgInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
+ 0x1000, 304, 224, 4, 3
+};
+
+// Kof2002 (Omega v0.8)
+
+static struct BurnRomInfo kof2k2omg8RomDesc[] = {
+ { "265omg8.p1",   0x100000, 0x53086581, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
+ { "265omg8.p2",   0x400000, 0x40228fe5, 1 | BRF_ESS | BRF_PRG }, //  1
+
+ { "265omg8.s1",   0x020000, 0x65351d40, 2 | BRF_GRA },           //  2 Text layer tiles
+
+ { "265omg8.c1",   0x800000, 0xe144302d, 3 | BRF_GRA },           //  3 Sprite data
+ { "265omg8.c2",   0x800000, 0xb10c6958, 3 | BRF_GRA },           //  4
+ { "265omg8.c3",   0x800000, 0x2367927c, 3 | BRF_GRA },           //  5
+ { "265omg8.c4",   0x800000, 0x4ad48c29, 3 | BRF_GRA },           //  6
+ { "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
+ { "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
+ { "265omg8.c7",   0x800000, 0x890c2a4a, 3 | BRF_GRA },           //  9
+ { "265omg8.c8",   0x800000, 0xb726009d, 3 | BRF_GRA },           // 10
+
+ { "265omg8.m1",   0x040000, 0x9a3d5c65, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
+
+ { "kf10-v1.bin",  0x800000, 0x0fc9a58d, 5 | BRF_SND },           // 12 Sound data
+ { "kf10-v2.bin",  0x800000, 0xb8c475a4, 5 | BRF_SND },           // 13
+};
+
+STDROMPICKEXT(kof2k2omg8, kof2k2omg8, neogeo)
+STD_ROM_FN(kof2k2omg8)
+
+struct BurnDriver BurnDrvkof2k2omg8 = {
+ "kof2k2omg8", "kof2002", "neogeo", NULL, "2010",
+ "Kof2002 (Omega v0.8)\0", NULL, "bootleg", "KOF-ON Team",
+ NULL, NULL, NULL, NULL,
+ BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
+ NULL, kof2k2omg8RomInfo, kof2k2omg8RomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
+ NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
+ 0x1000, 304, 224, 4, 3
+};
+
+// Kof2002 (Omega v0.9 beta)
+
+static struct BurnRomInfo kof2k2omg9bRomDesc[] = {
+ { "265-p1.p1",    0x100000, 0x9ede7323, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
+ { "265omg9b.p2",  0x400000, 0xa171b684, 1 | BRF_ESS | BRF_PRG }, //  1
+
+ { "265omg9b.s1",  0x020000, 0x7e3f391a, 2 | BRF_GRA },           //  2 Text layer tiles
+
+ { "265omg9b.c1",  0x800000, 0xc8314ae2, 3 | BRF_GRA },           //  3 Sprite data
+ { "265omg9b.c2",  0x800000, 0xe0ddced5, 3 | BRF_GRA },           //  4
+ { "265omg9b.c3",  0x800000, 0x6898f6e2, 3 | BRF_GRA },           //  5
+ { "265omg9b.c4",  0x800000, 0x9232e491, 3 | BRF_GRA },           //  6
+ { "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
+ { "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
+ { "265omg9b.c7",  0x800000, 0x6954ef57, 3 | BRF_GRA },           //  9
+ { "265omg9b.c8",  0x800000, 0x3e394883, 3 | BRF_GRA },           // 10
+
+ { "265omg8.m1",   0x040000, 0x9a3d5c65, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
+
+ { "265nu.v1",     0x400000, 0x13d98607, 5 | BRF_SND },           // 12 Sound data
+ { "265nu.v2",     0x400000, 0x9cf74677, 5 | BRF_SND },           // 13
+ { "265nu.v3",     0x400000, 0x8e9448b5, 5 | BRF_SND },           // 14
+ { "265nu.v4",     0x400000, 0x067271b5, 5 | BRF_SND },           // 15
+};
+
+STDROMPICKEXT(kof2k2omg9b, kof2k2omg9b, neogeo)
+STD_ROM_FN(kof2k2omg9b)
+
+struct BurnDriver BurnDrvkof2k2omg9b = {
+ "kof2k2omg9b", "kof2002", "neogeo", NULL, "2011",
+ "Kof2002 (Omega v0.9 beta)\0", NULL, "bootleg", "KOF-ON Team",
+ NULL, NULL, NULL, NULL,
+ BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
+ NULL, kof2k2omg9bRomInfo, kof2k2omg9bRomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
+ NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
+ 0x1000, 304, 224, 4, 3
+};
+
+// Kof2002 (Omega v0.9)
+
+static struct BurnRomInfo kof2k2omg9RomDesc[] = {
+ { "265-p1.p1",    0x100000, 0x9ede7323, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
+ { "265omg9.p2",   0x400000, 0xcd503fcf, 1 | BRF_ESS | BRF_PRG }, //  1
+
+ { "265omg9.s1",   0x020000, 0x4562fb20, 2 | BRF_GRA },           //  2 Text layer tiles
+
+ { "265omg9b.c1",  0x800000, 0xc8314ae2, 3 | BRF_GRA },           //  3 Sprite data
+ { "265omg9b.c2",  0x800000, 0xe0ddced5, 3 | BRF_GRA },           //  4
+ { "265omg9b.c3",  0x800000, 0x6898f6e2, 3 | BRF_GRA },           //  5
+ { "265omg9b.c4",  0x800000, 0x9232e491, 3 | BRF_GRA },           //  6
+ { "365ru.c5",     0x800000, 0x11126545, 3 | BRF_GRA },           //  7
+ { "365ru.c6",     0x800000, 0xd225bb9b, 3 | BRF_GRA },           //  8
+ { "265omg9b.c7",  0x800000, 0x6954ef57, 3 | BRF_GRA },           //  9
+ { "265omg9b.c8",  0x800000, 0x3e394883, 3 | BRF_GRA },           // 10
+
+ { "265ori.m1",    0x020000, 0xab9d360e, 4 | BRF_ESS | BRF_PRG }, // 11 Z80 code
+
+ { "265nu.v1",     0x400000, 0x13d98607, 5 | BRF_SND },           // 12 Sound data
+ { "265nu.v2",     0x400000, 0x9cf74677, 5 | BRF_SND },           // 13
+ { "265nu.v3",     0x400000, 0x8e9448b5, 5 | BRF_SND },           // 14
+ { "265nu.v4",     0x400000, 0x067271b5, 5 | BRF_SND },           // 15
+};
+
+STDROMPICKEXT(kof2k2omg9, kof2k2omg9, neogeo)
+STD_ROM_FN(kof2k2omg9)
+
+struct BurnDriver BurnDrvkof2k2omg9 = {
+ "kof2k2omg9", "kof2002", "neogeo", NULL, "2012",
+ "Kof2002 (Omega v0.9)\0", NULL, "bootleg", "KOF-ON Team",
+ NULL, NULL, NULL, NULL,
+ BDF_GAME_WORKING | BDF_CLONE | BDF_BOOTLEG, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO, GBF_VSFIGHT, FBF_KOF,
+ NULL, kof2k2omg9RomInfo, kof2k2omg9RomName, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
+ NeoInit, NeoExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
+ 0x1000, 304, 224, 4, 3
+};
+
 // The King of Fighters '95 (Special 2017)
 // Modified by: GSC2007
 // Version number: Ver 1.0.0627
diff --git a/src/burn/drv/neogeo/neo_run.cpp b/src/burn/drv/neogeo/neo_run.cpp
index 6df6e80..94b155f 100644
--- a/src/burn/drv/neogeo/neo_run.cpp
+++ b/src/burn/drv/neogeo/neo_run.cpp
@@ -644,6 +644,9 @@ static INT32 LoadRoms()
  if (!strcmp("kotm2p", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x300000;
  if (!strcmp("sbp", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x800000;
  if (!strcmp("lasthope", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x600000;
+ if (!strcmp("kof2k2omg", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x1600000;
+ if (!strcmp("kof2k2omg9", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x1600000;
+ if (!strcmp("kof2k2omg9b", BurnDrvGetTextA(DRV_NAME))) nYM2610ADPCMASize[nNeoActiveSlot] = 0x1600000;
 
 // bprintf(PRINT_NORMAL, _T("%x\n"), nYM2610ADPCMASize[nNeoActiveSlot]);
 
I confirm the logo only appears on kof2k2omg. Is that the most recent version ?
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 13, 2018, 07:26:01 pm
I do not understand how to do this, you can help me, I do not know how to apply a patch to the game.
Title: Re: How add roms hack neogeo?
Post by: dink on February 13, 2018, 09:05:35 pm
Fighterchar, these aren't rom patches, they're code patches to add the games to FBalpha.  They will be in the next version of FBA, much thanks to barbudreadmon. 

best regards,
- dink
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 13, 2018, 11:07:12 pm
wow the work is excelent thank you so much.  ;p but there are more roms hack that no working in FBA I think that is important to say it. One example is metal slug series chinesse versions, this hack is more dificult and have a special sprites whit only knife and adding HP, this versions are called Metal Slug HP, one of my favourite is Metal Slug 5 HP version, is called Metal Slug Blue or Gren or Multifuntion version I no sure the correct name. And only posible to play in Gotvg.I think the rom name is mslug5w. I up load an example picture, the rom hack have a particular HP.

And other is kof98mix the game found in fbaN30 but no in FBA I dont know why

Sorry my english is bad  :biggrin:
Title: Re: How add roms hack neogeo?
Post by: Fighterchar on February 18, 2018, 11:42:10 pm
In Fba only found battletoads for megadrive, but no found the version super battletoads, this is an Arcade version, for rare production is posible to add in the next actualization of FBA?

Title: Re: How add roms hack neogeo?
Post by: dink on March 06, 2018, 10:42:38 am
FIghterchar, please check your PM :)