SoulCalibur IV (Xbox 360) Recompiled Windows port by FluffyQuack - v0.9.1

---------------------
------- Usage -------
---------------------

This requires files from a legit copy of the Xbox 360 version of SoulCalibur IV to function. You also need the second patch for the game.

Steps:
- Extract this anywhere (if you're replacing an older version of the recomp, then extract these files to the same location and let it overwrite files)
- Extract all files from the SoulCalibur IV disc to the same location.
- Copy your SoulCalibur IV patch package from your Xbox 360 to your PC (the best method for doing this is having a modded Xbox 360 where you install homebrew software letting you copy files from Xbox 360 to PC)
- Extract the SoulCalibur IV patch package (a program like wxPirs would do the trick) and place the files in the same location as sciv.exe
- Download xextool.exe and place it in the same location
- Run this command: xextool -p default.xexp default.xex
- Game is now patched
- Run sciv.exe

Installing DLC:
- Same with the game itself, you'll need to copy and extract DLC from your Xbox 360. Extract it to the same location as recomp and make sure it matches the following directory structure:
-- DLC/Additional Character Darth Vader/...
-- DLC/Customization Equipment 1/...
- Note: Each DLC needs to be in a subdirectory within "DLC" but the name of the subdirectory doesn't matter. Ie, you could put Vader DLC in "DLC/Vader/..." and that would work also.

------------------------------
------- Extra features -------
------------------------------

You can look at the INI file (generated after first run) for some customization options. Right now, the most notable feature is being able to turn off intro logos (that's done by default), though the feature could use some work. One small feature that's added is that you can toggle borderless fullscreen by pressing Alt+Enter. Another small feature is that you can press F12 to take a screenshot.

---------------------------------
------- What is a recomp? -------
---------------------------------

There are multiple methods for making a game run on a different system. The best method is a native port, but you need the game's source code for that. You can decompile it to get the source code, but that's a process that takes a long time -- potentially years. You can emulate it, but that introduces overhead (runs slower than a native port) and it's also difficult to do enhancements to the game. A recomp takes a game executable, and does a static recompilation where it extracts all of the machine code in the executable and converts that code to C++ using functions that's equivalent to machine code commands. It's drastically faster to accomplish than a decompilation, it runs faster than emulation, and it's possible to make bigger enhancements, with the downside being that the resulting code is hard to read due it looking similar to assembly code.

--------------------------------------------------------------------------------
------- What are enhancements you're planning to add to with the recomp? -------
--------------------------------------------------------------------------------

Here are some ideas I'm considering, but I'm not promising anything as I tend to juggle too many projects all the time:
- Keyboard controls.
- Support for achievements.
- Fullscreen support.
- Toggle for nearest-neighbour filter for ingame graphics.
- Very ambitious: online play (maybe even rollback netcode?)
- Even more ambitious: 60fps support. I like the idea of updating gameplay logic to run at 60fps as that would also result in lower input latency. Alternatively, I could go with the simpler idea of adding 60fps support by interpolating entities at render time.

------------------------------------------
------- Are you using AI for this? -------
------------------------------------------

This might be controversial, but yes. There's no way I would have had progress at this speed if I wasn't using AI. AI is well-suited for reverse-engineering projects as you can always compare against the original to verify something is working correctly or not, and AI is really fast at understanding assembly code.

---------------------------
------- Extra notes -------
---------------------------

Many thanks to the creators of rexglue-sdk as otherwise this port wouldn't have happened.