Author Topic: How add roms hack neogeo?  (Read 19839 times)

Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
How add roms hack neogeo?
« 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

« Last Edit: February 01, 2018, 03:52:53 PM by iq_132 »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3728
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: How add roms hack neogeo?
« Reply #1 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.


Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
Re: How add roms hack neogeo?
« Reply #2 on: February 02, 2018, 12:44:07 AM »
Thank you, there are a tutorial for to learn to do it?

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #3 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 ?

Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
Re: How add roms hack neogeo?
« Reply #4 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
« Last Edit: February 02, 2018, 07:22:52 PM by iq_132 »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3728
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: How add roms hack neogeo?
« Reply #5 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.


Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
Re: How add roms hack neogeo?
« Reply #6 on: February 02, 2018, 07:32:13 PM »
ok sorry  :wink:

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #7 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 ?

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #8 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.

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #9 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.

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #10 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)

Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
Re: How add roms hack neogeo?
« Reply #11 on: February 06, 2018, 12:54:30 AM »
the process is so hard for me  :eek:

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #12 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.

Offline Fighterchar

  • Newbies
  • *
  • Posts: 20
  • Karma: +0/-0
Re: How add roms hack neogeo?
« Reply #13 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:

Offline barbudreadmon

  • Administrator
  • *****
  • Posts: 1091
  • Karma: +59/-1
  • Helper
Re: How add roms hack neogeo?
« Reply #14 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 ?