RED-Project icon indicating copy to clipboard operation
RED-Project copied to clipboard

Capcom Arcade Stadium + Capcom Arcade 2nd Stadium (Steam)

Open farmerbb opened this issue 1 year ago • 13 comments

Thanks to the excellent work of Ekey and some recent updates to their REE.PAK.Tool, it is now possible to extract games again from the Steam version of Capcom Arcade Stadium without having to download older depots. It is also now possible to extract the games from Capcom Arcade 2nd Stadium!

  1. Download REE.Unpacker.zip and REE.Rom.Cryptor.zip, and extract them to your Capcom Arcade Stadium or Capcom Arcade 2nd Stadium game folder.

  2. Create a folder called "Projects" alongside the extracted files, download CAS_STM_Release.list and CAS2_STM_Release.list from the REE.PAK.Tool repo, and place them in the "Projects" folder.

  3. For re_chunk_000.pak and all pak files in dlc directory, run REE.Unpacker.exe to unpack the game's pak files. If you have access to WSL, you can use the following shell command (use CAS_STM_Release for Capcom Arcade Stadium, and CAS2_STM_Release for Capcom Arcade 2nd Stadium):

for i in re_chunk_000.pak dlc/*.pak; do ./REE.Unpacker.exe CAS_STM_Release $i $i-unpacked; done
  1. Run REE.Rom.Cryptor.exe for every *.mameac.2 file found under natives/stm/streaming/roms/. Note that there will also be corresponding *.mameac.2 files under natives/stm/roms; these are not needed. Only run the tool on the files under natives/stm/streaming/roms/. Example shell command:
for i in re_chunk_000.pak dlc/*.pak; do find $i-unpacked/natives/stm/streaming/roms/ -type f -name "*.mameac.2" | xargs cp -t .; done
for i in *.mameac.2; do ./REE.Rom.Cryptor.exe $i $(echo $i | sed "s/mameac.2/zip/"); done

Notes:

  • I recommend running the extracted games through ClrMamePro afterward with a recent MAME DAT file, to correct any filename issues preventing the games from being run under FinalBurn Neo or MAME.

  • Certain games from Capcom Arcade Stadium (those found under a decryptionrom subdirectory) are not in a readily playable format for MAME, and require further conversion to potentially make them playable. These games are: 1944_d, 1944j_d, 19xx_d, 19xxj_d, batcir_d, batcirj_d, cybotsj_d, cybotsu_d, gigawing_d, gigawingj_d, progear_d, progearj_d, ssf2tu_d, ssf2xj_d.

farmerbb avatar Dec 06 '24 05:12 farmerbb

I'm having trouble running this exe (On Windows 10).

If I run REE.Unpacker.exe from the CAS1 install folder, nothing happens. image

If I run it from within the dlc folder, still nothing happens: image

Rot-gut avatar Dec 12 '24 19:12 Rot-gut

I'm having trouble running this exe (On Windows 10). (...)

I think you're missing the "Projects" folder in your CAS1 installation folder. You need to copy that folder including the file corresponding to your game and platform in order for the extraction to work.

RealRelativeEase avatar Dec 13 '24 00:12 RealRelativeEase

Yes, sorry, I forgot to include the Projects folder in the zip I posted earlier. You can just grab CAS_STM_Release.list and CAS2_STM_Release.list from the repo and stick them in a "Projects" folder alongside the rest of the files from that archive. I'll update the OP to make that clear.

farmerbb avatar Dec 21 '24 07:12 farmerbb

Hello, I am running this on windows 10 and get the following error : `RE Engine PAK Unpacker' (c) 2023 Ekey (h4x0r) / v0.0.1.24444

[WARNING]: Unable to load project file CAS2_STM_Release.list!

Exception non gérée : System.IO.DirectoryNotFoundException: Impossible de trouver une partie du chemin d'accès 'C:\games\Steam\steamapps\common\Capcom Arcade 2nd Stadium\dlc\Projects\CAS2_STM_Release.list'. à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) à System.IO.StreamReader..ctor(String path) à REE.Unpacker.PakList.iLoadProject(String m_ProjectFile) dans C:\Users\Braden\Desktop\REE.PAK.Tool-main\REE.Unpacker\REE.Unpacker\FileSystem\Package\PakList.cs:ligne 25 à REE.Unpacker.Program.Main(String[] args) dans C:\Users\Braden\Desktop\REE.PAK.Tool-'main\REE.Unpacker\REE.Unpacker\Program.cs:ligne 60`

In this error message there is path that don't belong to my setup. Regards

OfficerRyan1 avatar Feb 06 '25 17:02 OfficerRyan1

Hello, I am running this on windows 10 and get the following error : `RE Engine PAK Unpacker' (c) 2023 Ekey (h4x0r) / v0.0.1.24444

[WARNING]: Unable to load project file CAS2_STM_Release.list!

Exception non gérée : System.IO.DirectoryNotFoundException: Impossible de trouver une partie du chemin d'accès 'C:\games\Steam\steamapps\common\Capcom Arcade 2nd Stadium\dlc\Projects\CAS2_STM_Release.list'. à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) à System.IO.StreamReader..ctor(String path) à REE.Unpacker.PakList.iLoadProject(String m_ProjectFile) dans C:\Users\Braden\Desktop\REE.PAK.Tool-main\REE.Unpacker\REE.Unpacker\FileSystem\Package\PakList.cs:ligne 25 à REE.Unpacker.Program.Main(String[] args) dans C:\Users\Braden\Desktop\REE.PAK.Tool-'main\REE.Unpacker\REE.Unpacker\Program.cs:ligne 60`

In this error message there is path that don't belong to my setup. Regards

If I'm understanding the error message correct, you're missing the project file. You need to create a folder named "Projects" in your game installation folder and move [NameOfGame].list there in order for the extraction process to work. Where did you download the extraction files from and what command did you run? It looks like your error message references OP's file path.

RealRelativeEase avatar Feb 07 '25 08:02 RealRelativeEase

Hello, I am running this on windows 10 and get the following error : RE Engine PAK Unpacker' (c) 2023 Ekey (h4x0r) / v0.0.1.24444 [WARNING]: Unable to load project file CAS2_STM_Release.list! Exception non gérée : System.IO.DirectoryNotFoundException: Impossible de trouver une partie du chemin d'accès 'C:\games\Steam\steamapps\common\Capcom Arcade 2nd Stadium\dlc\Projects\CAS2_STM_Release.list'. à System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) à System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) à System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) à System.IO.StreamReader..ctor(String path) à REE.Unpacker.PakList.iLoadProject(String m_ProjectFile) dans C:\Users\Braden\Desktop\REE.PAK.Tool-main\REE.Unpacker\REE.Unpacker\FileSystem\Package\PakList.cs:ligne 25 à REE.Unpacker.Program.Main(String[] args) dans C:\Users\Braden\Desktop\REE.PAK.Tool-'main\REE.Unpacker\REE.Unpacker\Program.cs:ligne 60 In this error message there is path that don't belong to my setup. Regards

If I'm understanding the error message correct, you're missing the project file. You need to create a folder named "Projects" in your game installation folder and move [NameOfGame].list there in order for the extraction process to work. Where did you download the extraction files from and what command did you run? It looks like your error message references OP's file path.

I have created two \Projects folders one in CAS2 main folder and one in dlc folder and It solved the first error but get the following error :

' F:\games\Steam\steamapps\common\Capcom Arcade 2nd Stadium\dlc>.\REE.Unpacker.exe CAS2_STM_Release' '"F:\games\Steam\steamapps\common\Capcom Arcade 2nd Stadium\dlc\re_dlc_stm_1842960.pak"' 'RE Engine PAK Unpacker' '(c) 2023 Ekey (h4x0r) / v0.0.1.24444'

'[COLLISION]: <-> !'

'Exception non gérée : System.ArgumentException: Un élément avec la même clé a déjà été ajouté.' ' à System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)' ' à System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)' ' à REE.Unpacker.PakList.iLoadProject(String m_ProjectFile) dans C:\Users\Braden\Desktop\REE.PAK.Tool-'main\REE.Unpacker\REE.Unpacker\FileSystem\Package\PakList.cs:ligne 40' ' à REE.Unpacker.Program.Main(String[] args) dans C:\Users\Braden\Desktop\REE.PAK.Tool-'main\REE.Unpacker\REE.Unpacker\Program.cs:ligne 60'

It seems the error come from the CAS2 list itself.

OfficerRyan1 avatar Feb 12 '25 13:02 OfficerRyan1

So a few notes...

The following titles seem fine in modern MAME (.247):

CAS1: 
1941j.zip
1941u.zip
1942.zip
bionicc2.zip
captcomm.zip
captcommj.zip
chikij.zip
commandou.zip
daimakai.zip
dynwar.zip
dynwarj.zip
forgottnuaa.zip
ghoulsu.zip
gng.zip
higemaru.zip
lwings.zip
lwingsja.zip
makaimurg.zip
pgear.zip
sectionza.zip
sf2hfj.zip
sf2hfu.zip
sf2jl.zip
striderua.zip
varth.zip
varthj.zip
vulgusj.zip (Diff SHA1 on a file)
cawingj.zip (Diff SHA1 on a file)
cawingu.zip (Diff SHA1 on a file)
commandoj.zip (Diff SHA1 on a file)
lostwrld.zip (Diff SHA1 on a file)
mtwins.zip (Diff SHA1 on a file)
vulgus.zip (Diff SHA1 on a file)

CAS2:
3wondersu.zip
blkdrgon.zip
blktiger.zip
blockj.zip
blockr2.zip
csclubj.zip
dstlku.zip
ecofghtru.zip
exedexes.zip
gunsmokej.zip
gunsmokeu.zip
hsf2.zip
hsf2j.zip
knightsj.zip
knightsu.zip
lastduel.zip
lastduelj.zip
leds2011u.zip
megaman.zip
megaman2.zip
mswordj.zip
mswordu.zip
pnickj.zip
rockman2j.zip
rushcrsh.zip
savgbees.zip
sfa2u.zip
sfa3u.zip
sfz2j.zip
sfz3j.zip
sfzj.zip
sidearms.zip
sidearmsj.zip
sonson.zip
spf2tu.zip
spf2xj.zip
srumbler2.zip
tigeroad.zip
uecology.zip
vsavj.zip
vsavu.zip
wonder3.zip
toramich2.zip
sonsonj.zip (missing one file, loads OK)

The following titles will only play in FBNeo; they may be missing a file or just not recognized:

CAS1:
wofj.zip
wofu.zip
1943u.zip

CAS2:
kodu.zip
1943kai.zip
sfj.zip
sfua.zip

The 'decrypted' ROMs are just that; decrypted. Because the key isn't present, they can't be loaded - MAME doesn't know how to load the decrypted artifacts. My Game Extraction Toolbox is able to use the old pre-CAS1-rebuild files to make a decrypted ROM compatible with MAME 2010. I don't currently plan on redoing that work for these files, though the code should roughly equate:

CAS1:
1944
1944j
19xx
19xxj
batcir
batcirj
cybotsj
cybotsu
gigawing
gigawingj
progear
progearj
ssf2tu
ssf2xj

The following titles are missing files and don't work in either:

CAS1:
ffightj
ffightu
mercsj
trojanj
1943jc

CAS2:
megamanj (should be rockmanj, and it's missing 4 files)

But then we get into the weird ones; the ones that neither MAME nor FB Neo can't play, not because they are necessarily missing files, but because they are variants that they don't know about:

CAS1:
sf2ul.zip | Non-standard - unknown sf2u variant?
striderjr2.zip | Non-standard - unknown striderjr variant?

CAS2:
kodjr3.zip | Non-standard - unknown kodj variant?
slammastur1.zip | Non-standard - unknown slammastu variant?
mbomberjr1.zip | Non-standard - unknown mbomberj variant?
csclubu_971017.zip | Non-standard - unknown csclubu variant?
nwarre_950420.zip | Non-standard - 950420 is cybotsj, nwarre is an unknown dstlk variant?
pfghtj_970922.zip | Non-standard - typically 970904
sfau_950727.zip | Non-standard - typically 950627
sgemfu_970922.zip | Non-standard - typically 970904
vampj_940818.zip | Non-standard - typically 940705
vhuntj_950420.zip | Non-standard - typically 950316

The CAS2 ones are particularly interesting; the ones with a number are generally the wrong canonical number, according to the MAME DB at Arcade Italia. I suspect these are smashed together in some way; perhaps adding or removing censorship and mashing in translated text?

shawngmc avatar Feb 21 '25 07:02 shawngmc

@shawngmc Adding on to your fantastic notes with some of my findings:

buraiken - not listed in your notes, but the ROM is present in CAS2. Works fine as-is using MAME 2010.

ffightj - working fine for me as-is on latest MAME.

ffightu - set needs renamed to ffight, and the file FFU_43.12h renamed to ffe_43.12h. Should then load in latest MAME.

kodjr3 - set needs renamed to kodu, and the following files need renamed, then it should load in MAME 2010:

kd_06.bin -> kd-5m.4a
kd_05.bin -> kd-1m.3a
kd_14.bin -> kd-2m.3c
kdm_33.bin -> kd_33.6f
kd_07.bin -> kd-3m.5a
kd_15.bin -> kd-6m.4c
kdj_37(31b).bin -> kdu_31b.12e
kd_30(18).bin -> kd_18.11c
kd_31(19).bin -> kd_19.12c
kdj_42(37b).bin -> kdu_37b.11f
kd_17.bin -> kd-8m.6c
kd_16.bin -> kd-4m.5c
kdj_43(38b).bin -> kdu_38b.12f
kd_08.bin -> kd-7m.6a
kd_23(09).bin -> kd_09.12a
kdj_36(30b).bin -> kdu_30b.11e

megamanj - set needs renamed to rockmanj, and the following files need renamed, then should load in MAME:

rcmj_23c.bin -> rcm_23a.8f
rcm_04.bin   -> rcm_04.6a
rcm_14.bin   -> rcm_14.7c
rcm_11.bin   -> rcm_11.4c
rcm_15.bin   -> rcm_15.8c
rcm_03.bin   -> rcm_03.5a
rcm_08.bin   -> rcm_08.10a
rcm_06.bin   -> rcm_06.8a
rcm_09.bin   -> rcm_09.12a
rcm_02.bin   -> rcm_02.4a
rcm_19.bin   -> rcm_19.12c
rcm_13.bin   -> rcm_13.6c
rcm_05.bin   -> rcm_05.7a
rcm_10.bin   -> rcm_10.3c
rcm_17.bin   -> rcm_17.10c
rcm_12.bin   -> rcm_12.5c
rcm_16.bin   -> rcm_16.9c
rcmj_22c.bin -> rcm_22a.7f
rcmj_21b.bin -> rcm_21a.6f
rcm_07.bin   -> rcm_07.9a
rcm_01.bin   -> rcm_01.3a
rcm_18.bin   -> rcm_18.11c

nwarre_950420 - set needs renamed to nwarr, and file VPHE.03G renamed to vphe.03f, then it should load in MAME 2010.

pfghtj_970922 - set needs renamed to pfightj, then should load in MAME 2010.

sf2ul - set needs renamed to sf2um, and the following files need renamed, then it should load in either MAME or FB Neo:

sf2_16(m4).bin  -> sf2-4m.5c
sf2u_09.bin     -> sf2_09.12a
sf2_24(m9).bin  -> sf2-9m.3d
sf2j_36b.bin    -> sf-2u_36m.10f
sf2_06(m5).bin  -> sf2-5m.4a
sf2_35m.bin     -> sf-2u_35m.9f
sf2_08(m7).bin  -> sf2-7m.6a
sf2_14(m2).bin  -> sf2-2m.3c
sf2_30m.bin     -> sf-2u_30m.11e
sf2_15(m6).bin  -> sf2-6m.4c
sf2_07(m3).bin  -> sf2-3m.5a
sf2j_29b.bin    -> sf-2u_29m.10e
sf2_25(m13).bin -> sf2-13m.4d
sf2_17(m8).bin  -> sf2-8m.6c
sf2_31m.bin     -> sf-2u_31m.12e
sf2_27(m15).bin -> sf2-15m.6d
sf2u_18.bin     -> sf2_18.11c
sf2u_19.bin     -> sf2_19.12c
sf2_05(m1).bin  -> sf2-1m.3a
sf2u_37m.bin    -> sf-2u_37m.11f
sf2_28m.bin     -> sf-2u_28m.9e
sf2_38m.bin     -> sf-2u_38m.12f
sf2_26(m11).bin -> sf2-11m.5d

sfau_950727 - set needs renamed to sfau, and the following files renamed, then it should load in MAME 2010:

SFZ.05B  -> sfz.05a
SFZU.04C -> sfz.04a
sfzu.key -> sfau.key
SFZU.03D -> sfzu.03a

striderjr2 - set needs renamed to striderjr, then it should work in latest MAME.

vhuntj_950420 - set needs renamed to vhuntj, and the file VPHJ.03G renamed to vphj.03f, then it should work in MAME 2010.

farmerbb avatar Feb 24 '25 07:02 farmerbb

Thanks everyone for those updates. I was also able to get mbomberj (930901) to work, but only on the FBA lr-fbalpha2012 core on RetroPie.

The files need renamed as follows:

mbj_01.bin      -> mb_01.3a
mbj_02.bin      -> mb_02.4a
mbj_03.bin      -> mb_03.5a
mbj_04.bin      -> mb_04.6a
mbj_05.bin      -> mb_05.7a
mbj_06.bin      -> mb_06.8a
mbj_07.bin      -> mb_07.9a
mbj_08.bin      -> mb_08.10a
mbj_10.bin      -> mb_10.3c
mbj_11.bin      -> mb_11.4c
mbj_12.bin      -> mb_12.5c
mbj_13.bin      -> mb_13.6c
mbj_20a.bin     -> mbj_20a.5f
mbj_21a.bin     -> mbj_21a.6f
mbj_22b.bin     -> mbj_22b.7f
mbj_23h.bin     -> mbj_23e.8f

mb_q01.bin      -> mb-q1.1k
mb_q02.bin      -> mb-q2.2k
mb_q03.bin      -> mb-q3.3k
mb_q04.bin      -> mb-q4.4k
mb_q05.bin      -> mb-q5.1m
mb_q06.bin      -> mb-q6.2m
mb_q07.bin      -> mb-q7.3m
mb_q08.bin      -> mb-q8.4m
mb_q01.bin      -> mb_qa.5k

MrVexar avatar Feb 24 '25 22:02 MrVexar

Here's a few more:

trojanj - rename the following files, then the game should load in latest MAME:

tb03.8k     -> tb_03.8k
tb24.13n    -> tb_24.13n
tb08.4a     -> tb_08.4a
tb16.3l     -> tb_16.3l
tb07.3a     -> tb_07.3a
mb7114e.1e  -> tbb-1.1e
tb11.3b     -> tb_11.3b
tb15.2l     -> tb_15.2l
tb19.2n     -> tb_19.2n
tb13.6b     -> tb_13.6b
tb10.8a     -> tb_10.8a
tb22.7n     -> tb_22.7n
tb18.7l     -> tb_18.7l
tb14.8b     -> tb_14.8b
tb01.6d     -> tb_01.6d
troj-06.13n -> tb_06.13n
tb09.6a     -> tb_09.6a
tb17.5l     -> tb_17.5l
tb21.5n     -> tb_21.5n
tb23.9n     -> tb_23.9n
tb20.3n     -> tb_20.3n
troj-04.10n -> tb_04.10n
tb12.4b     -> tb_12.4b
tbp24s10.7j -> tbb-2.7j
tb05.12n    -> tb_05.12n
tb02.15h    -> tb_02.15h
tb25.15n    -> tb_25.15n

mercsj - requires a file named c628 to be added to the zip. The file can just be a dummy file, can even be 0 bytes, it just needs to be present in the zip. Then the game should load in latest MAME.

vampj_940818 - rename the set to vampj, and rename the following files, then the game should load in MAME 2010.

VAMJ.08B -> VAMJ.08A
VAMJ.07B -> VAMJ.07A
VAMJ.10B -> VAMJ.10A
VAMJ.03B -> VAMJ.03A
VAMJ.06B -> VAMJ.06A
VAMJ.09B -> VAMJ.09A
VAMJ.04C -> VAMJ.04B
VAMJ.05B -> VAMJ.05A

farmerbb avatar Feb 28 '25 06:02 farmerbb

Is there a video tutorial on how to do this? I think that would help me quite a bit

mintcandy701-sys avatar Aug 03 '25 16:08 mintcandy701-sys