VPW Studio

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
Current Version: v0.0.0.32/pre-Alpha Preview 32 (released 2023/10/28)

VPW Studio is a tool that helps with ROM hacking the various games in the Virtual Pro-Wrestling series.

-- 2023/08/31 edit: most content below this line is outdated --

I had originally posted a blog about this, but it was suggested that a thread be made.

Current Features (not a complete list)
  • FileTable viewer/editor (re-building and re-writing the FileTable only works for Revenge, WM2K, VPW2, and No Mercy as of 2018/04/14)
  • AKI Archive viewer (still WIP)
  • Export Models to Wavefront OBJ (texture mapping is messed up and vertex colors are not supported)
  • GameShark Code Tool (very WIP)
  • Text Archive viewer (WM2K and later)
Planned Features
  • Arena Editor
  • Championship Editor (doubles as Story Mode Editor for World Tour, VPW64, Revenge)
  • Costume Editor
  • Menu Editor
  • Move Editor (properties, animations)
  • Sound/Music Editor
  • Stables Editor
  • Story Mode Editor (WM2K, VPW2, No Mercy only)
  • Weapon Editor
  • Wrestler Editor (includes profile, movesets, params, logic, default costumes)
Screenshots (some are from older versions)
Viewing TEX images from ROM:
preview_tex_from_rom.png


WCW/nWo Revenge Head/Mask display:
1rjyjbQ.png


Menu Background viewer, showing an unused background from WrestleMania 2000:
wwf_options.png


AKI man's mask imported into VPW2, with changeable colors:
akiman-vpw2-wip.png

diffcolors.png


CI4/16 color and CI8/256 color Palette Editors:
The CI8 Palette Editor represents the current design.
palette_editor_wip.png

palette_editor-ci8-2.png


CI4 Texture viewer with sub-palette support:
15b4-subpal.png


A font extracted from No Mercy:
4478.png
 
Last edited:
D

Deleted User

Crowd Member
Bump to stay at the top. This is really important.
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
It's not too bad; a lot of useful stuff is included in the language, including BinaryReader, BinaryWriter, the ability to encode and decode Shift-JIS strings (used in VPW2)...

I still haven't managed to figure out how to do the 3D parts yet, though. Was planning on using the SharpDX library.



Currently working on trying to make the FileTable re-builder (and related changes) to be more generic (a.k.a. work for games that aren't VPW2). (There's also a development log on Generation Hex that I update from time to time, if any of you have access to that board.)

<blockquote class='staff_blockquote'><dl><dt>[STAFF] Staff Only</dt><dd> </dd></dl><div>t staff: this is the dumbest question ever, but can I please be moved into "The Real" usergroup now? :p [/quote]
 
D

Deleted User

Crowd Member
To the people that don't quite understand what is happening here, this will be a program for AKI games that will allow you to edit it's data with ease. You will be able to manipulate many parts of the game to customize it to your liking.

This is probably the most ambitious AKI project to date. Ya'll should be a lot more excited about this than you are.

Ask questions. Get hype. Creators don't get paid, they do it for the community. The least we can do is tell them how awesome it is and inquire about it.
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
I figure they'll care more once a non-VPW2 game is fully supported, like No Mercy. :p

Edit: I probably should have mentioned that my main inspiration for this tool is the Goldeneye Setup Editor; might help more people understand what the end goal is.



Edit 2: In the comments of the blog post, marillmau5 asked if there's "anything we can do to help", and I still haven't fully figured out what I'd need help with at the moment.

Ideally, I wouldn't be the only person working on the program. If anyone here knows how to deal with C# and/or SharpDX/DirectX, please let me know, because 3D stuff scares me. (Despite this, I made the Wavefront OBJ export...)

A lot of the FileTableDB entries aren't filled in for various games...
<table><thead><tr><th colspan="2">FileTableDB coverage (as of April 13 2018)</th></tr></thead><tr><th>Game</th><th>Coverage</td></tr><tr><td>WCW vs. nWo World Tour</td><td>304/5499 (~5.5%)</td></tr><tr><td>Virtual Pro-Wrestling 64</td><td>741/9358 (~7.9%)</td></tr><tr><td>WCW/nWo Revenge</td><td>886/7657 (~11.5%)</td></tr><tr><td>WWF WrestleMania 2000 (NTSC-U, PAL)</td><td>1501/10311 (~14.5%)</td></tr><tr><td>WWF WrestleMania 2000 (NTSC-J)</td><td>97/10370 (~0.9%)</td></tr><tr><td>Virtual Pro-Wrestling 2</td><td>2148/13091 (~16.4%)</td></tr><tr><td>WWF No Mercy</td><td>842/19461 (~4.3%)</td></tr></table>
I should also note that not all entries covered include comments... That's another thing that would be helpful.
 

GTPunk

Lower Midcard
Joined
Jan 7, 2012
Messages
241
Reaction score
0
Website
wwe-gtaproject.ucoz.ru
freem said:
(Despite this, I made the Wavefront OBJ export...)
cool, so it will be very easy to remake no mercy on any modern engine? like with all standart resourses, anims, scripts, copied and inserted like on unreal or unity?
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
A lot of work still needs to be done in order to get move animations, etc. extracted.

Putting them together in another engine is a different story, and won't be easy (regardless).
freem said:
I figure they'll care more once a non-VPW2 game is fully supported, like No Mercy. :p
Progress is being made on this front...

WCW/nWo Revenge (NTSC-U, PAL)
hacked_by_freemtendo.png


WWF WrestleMania 2000 (NTSC-U and PAL only for now; NTSC-J will be filled in shortly)
wm2k_ok.png

self-explanatory megaton announcement
DaxR7HtU8AAeOUa.jpg
 

Fizanko

Midcard
Joined
Dec 28, 2015
Messages
265
Reaction score
0
That's rather impressive as from what i understand it looks like you're making "The Ultimate AKI game editor of Everything" :D that's a very ambitious project.

And i wasn't even aware of that Goldeneye editing tool that looks rather incredible as well.

I wonder how many modern games will still have this kind of modding work done on them 20 years in the future like those n64 games still get.
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
vpw64hack.png

Managed to get support for Virtual Pro-Wrestling 64 thanks to Zoinkity, and then I extrapolated that for WCW vs. nWo World Tour NTSC-U v1.1.

Not sure why World Tour NTSC-U v1.0 and PAL are being jerks...
 

hulkster

Opener
Joined
Oct 23, 2015
Messages
59
Reaction score
0
beautiful tool you created. this is so close to the source engine almost. i like how it targets the real hardware. this tool is a must. it is noob friendly.
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
Still working on this, of course. Not as much progress has been made since the last time I posted here.

* Implemented AkiTextEditor, allowing for editing of the text archives in WM2K, VPW2, and No Mercy. No Mercy's move name format (which is different from the normal AkiText archives) is still not implemented, however.

* Started work on VPW2 costume information viewer. Costume definitions for the latter 3 AKI games are different from the first 3, making this tougher than it has to be.

* Started working on a new ModelTool, but realized I know nothing about DirectX or SharpDX:
modeltool2-wip.png


* FileTable has "View Hex" option, so you can use the hex viewer even when a FileType has a defined editor.

* Created a new palette format (hacked up the JASC Paint Shop Pro Palette format) with support for CI4 sub-palettes and transparency.

* Started working on StableDefinition class for WM2K (joining the ones for Revenge and VPW2 (No Mercy uses the same format as VPW2)).

At this point, the things I think I'd need help with:
* 3D stuff (as mentioned in the ModelTool entry).
I can't manage to wrap my head around SharpDX and I don't want to use the RenderForm class, since I want to have UI controls on the same form.

* Identifying and cataloging the items in each game's FileTable.
This is a long and tedious process that requires some knowledge of deducing patterns. Essentially, VPW Studio works by having a FileTable Database for each game (6 + 1 for WM2K NTSC-J), which has entries in the following format:

<big>(fileID)=(filetype);(comment)</big>

An example from VPW2:
<big>0026=AkiTexture;[UI] Contents</big>

The main problem here is figuring out the FileType for each item. This is not exactly a straightforward task, but it is do-able once you know the patterns.

FileType names and descriptions are in the spoiler:
Binary // also used for any "Unknown" format.

AkiArchive // Archive of files ("TEXarc" counts as this)

AkiModel // Model data

AkiTexture // "TEX" file, AKI's wrapper around some N64 texture types
These files start with "TEX",0x00. Be careful that it's not a DoubleTex file (see below).

AkiText // Text bank
Only used in WM2K and later. Most AkiText banks have been identified already.

AkiLargeFont // Large font (24px wide character cells)
AkiSmallFont // Small font (16px wide character cells)
These two are hard to determine, so ignore them for now.

AkiFontChars // (not yet implemented; Shift-JIS encoded text file with all font characters)

MenuBackground // Menu background image (number and size are determined per-game)
ONLY THE FIRST FILE OF A MENU BACKGROUND SHOULD BE DEFINED AS A MenuBackground. This is due to the fact that the game expects the next X amount of files to be raw CI4 images (using the same palette as the first). VPW Studio's plan for replacing MenuBackground images involves a single PNG and some hacky code.

Ci4Palette // raw CI4 palette data (32 bytes)
Most CI4 palettes are 32 bytes. Sometimes, you'll find a larger CI4 palette; this is likely CI4 with sub-palettes.

Ci8Palette // raw CI8 palette data (512 bytes)
All CI8 palettes are 512 bytes. Sometimes they will be used in a similar manner to CI4 palettes...

Ci4Texture // CI4 texture data (with header)
Ci8Texture // CI8 texture data (with header)
These two are similar types, so the key is determining what pixel format is used. If you manage to see ascending numbers next to each other in the pixel data (e.g. 0x1A followed by 0x1C), that's a good sign it may be a CI8 texture.

I4Texture // raw I4 texture data
These things are a pain in the neck since they never include size data.
If you find one of these, please note the size at the beginning of the comment.

DoubleTex // (WCW/nWo Revenge) two TEX files, one after another, no headers or anything.

NoMercyText // WWF No Mercy text archives (used for move names)
These are a pain in the ass because I haven't figured out how to decode them.

Attached are the current FileTableDBs for each game as of April 26, 2018, so you have an idea of what's been done already.
2018/05/14:

At this point, I'd like to ask about any "pain points" that hack developers may run into during the creation process.

I already know that converting moves for all four players is one thing that could be easier to deal with, but I'm not really aware of others, having been out of the loop for so long.

Please let me know what I can possibly do with VPW Studio to make this stuff easier.

Attachments:
[/SPOILER]
 

KWG

Promoter
Staff member
Joined
Jun 18, 2011
Messages
3,028
Reaction score
4
Moveset editing for WM2000 for sure, I've made a tutorial last year but when you compare it to the tools VPW2 and NM have for moveset editing it's really complicated and time consuming.
 

freem

Opener
Joined
Feb 10, 2018
Messages
56
Reaction score
1
Website
vpw.ajworld.net
I'd like to deal with moveset editing (as well as params and logic), but it requires actually figuring out how the values are encoded, as well as making multiple databases to convert moves between games.

I don't want to rely on the "dump data from an Edit char" technique; I want to actually figure out how the stupid values are packed/unpacked.
(2018/05/21)
Progress continues... working on animation data. S.K. Stylez's animation editor spreadsheet is in the background, and VPW Studio's Animation Tool is on the right.

animtool_wip2.png
 
D

Deleted User

Crowd Member
This has me so jazzed. The future is very, very bright for AKI mods.

No more move splicing, just brand new animations!
 
Top