I’ve been intensely interested in getting rips/conversions of the MvC2 stage backgrounds for some time.
Here’s my understanding of the CD composition.
What’s on the disc?
DPMODEL: (empty)
DPSS: VMU art IIRC
DPTEX: PVR/art files for the online version: convert with pvr2png
DPWWW: browser
0dummy.bin: dummy file to ensure correct disc size.
1st_read.bin: so it boots properly. Of interest:
–> 0x156d10 is PRESS START BUTTON and CONTINUE
–> 0x1648e0 PRESS START BUTTON
–> 0x17ae10 NEW HERO
adx_.bin: sound files. ADX plug-ins & conversion tools available, such as http://www.wav-mp3.com/
pl??_DAT.bin: character data: hitboxes, attack data, palettes. ?? corresponds to character index. Use PalMod to edit the palettes.
pl??_VOI.bin: collections of voice-over files in the DTPK format. ?? corresponds to character index. I have an extracted version of these. Use the Python-based script to convert DTPK to a collection of miniDSF files, and then use the WinAMP miniDSF plugin from Hypothetical Technologies to convert to MP3/WAV/etc.
se.bin: More DTPK sound files.
pl??_WIN.bin: the win screen art I THINK. ?? corresponds to character index. I don’t know how to play with these.
pl??FAC.bin: the face for the pre-match VS screen. ?? corresponds to character index. I don’t know how to play with these.
stg*.bin : Stage files. Looking forward to figuring these out.
See rest of thread for interesting notes from others. This is kind of the tip of the iceberg. Playing around with it in nullDC with artmoney/cheatengine to tweak values is exposing a variety of interesting data.
The pl##_dat files have more than just the palette data they have attack data and hitboxes as well. There probably is more like special moves.
I would of posted earlier if I seen this thread.
Starting to understand the vertices in the stages.
Each one is 32 bytes with texture mapping as the last 4 bytes. There is some parts i’m not sure about but can crash the game if edited. Words are joined together XXXX will be the X coordinate.
Here is what I got so far
X, Y, Z are the coordinates
BLND some type of blending is taking place
Universal
Stage Polygon file loaded in 0x0CEA0000 of the dreamcast memory (Unknown limit could be 256kb or 512kb I doubt it’s 1 mb)
Backgrounds are separate objects with it’s own lighting and filtering(Just a simple Bi-linear filter). Probably there is a max on objects as well.
Stages rotate as you go side to side, but the camera is different per stage from the looks of it so it could part of the DM files(which have a ton of pointers).
The camera is a little tricky as it’s mirrored all over the place.
Plans
Look into the textures
Look into the DM files
Active Background objects what makes them different.
100
Ryu
Guile
Cyke
Gambit
CapCom
Ruby Heart
Amingo
War Machine
Nash
Cable
Jin
Dict
Sakura
Venom
Iron Man
93
Doom
Tron
Thanos
Silver Samurai
Captain America
Omega
Rogue
87
Zangeif
Blackheart
Juggernaut
Hulk
81
Colossus
75
Sentinel
In case you want to edit the attack damage and double check my results.
Ryu
(In-File Location: 0x084E00)
(Ram Player 1 Slot 1 Location: 0x0C4A4E00)
Of course the stage order.
00 Air Ship Sky
01 Desert Evening
02 Inside a Factory
03 Carnival
04 Swamp
05 Water Cave
06 Clock Tower
07 Glacier
08 Temple Abyss
09 Air Ship Night Water
0A Day Desert
0B Training
0C Creepier Carnival
0D Meadow
0E Lava Cave
0F Winter Clock
10 Raft in River
Anthing else from my old notes are on my old computer.
Edit:
As for the character select All I know is that one of the camera data that is mirrored midmatch is the place for it in character select aka i haven’t messed with it.
I have to use Demul for memory editing and NullDC for the debugger and I’m always causing them to crash.
Edit 2: Forgot to mention all the data(besides textures) for the training menu is in the polygon file.
Edit 3: Fuck the NullDC Debugger thing is a piece of shit.
I get no credit here. I haven’t had any time yet to get into it myself: I posted what I was thinking about and it looks like several people have run with it or had previously been looking into it. I’m stoked about their work and look forward to getting set up to tinker again myself.
I’m probably going to just rearrange them so it’ll be quicker to select teams. Cause who knows somebody might want to troll with servbot assist in casuals.
That does make sense. However, consider the following examples:
If a full lifebar is 144 (not 143) then why did the exact combo that did 143 in training mode kill the same character in Versus mode?
Example 2:
The 6th hit kills Akuma in Versus mode and that is equal to 143 total damage in the combo.
Example 3:
Though there are some attacks that are different (in the Versus mode combo compared to training mode), the 20th hit of the combo reaches 143 damage and kills the character in Versus mode. The differences in terms of normal attacks are insignificant because both attacks do the same damage (i.e. hp and hk, lp and lk) and are late in the combo thereby damage scaling reduces the damage.