Installing and running the patched game on Windows XP, in my case a virtual machine, works. This is despite the system requirements tool flagging my multicore processor as problematic:
Windows 10
There are a couple of issues here, only some of which we (at the time of writing) have solutions for: 1.) SafeDisc DRM and 2.) some kind of operating system-level incompatibility. To work around SafeDisc we can use SafeDiscShim or obtain a no-CD ("cracked") version of mainapp.exe. I'm aware of unSafedisc but haven't tried it myself. With one of these in place, you should be able to launch Madden - but you'll you hear a single menu SFX and perhaps a half-second of music over a black screen, and then the game crashes.
Interestingly the retail game produces an error log, a file called mainapp.StackDump.dat, upon crashes. It will look something like:
This doesn't give us much insight; it just means the program accessed some memory it wasn't "supposed" to, as enforced by the OS. We encounter this even when running as admin and/or installing Madden to the same drive as the OS. Running the game in a single-threaded (see above re: system requirements panel) fashion doesn't help, either:
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
The latest version of 2002 is apparently v.2.3.1. This includes changes to league.DAT and the main EXE files.
I couldn't find an official/vanilla patch download for 2002. My go-to, Patches Scrolls, doesn't have it. Ultimately though you won't be able to run vanilla Madden 2002 EXEs on Windows 10.
We can stack modified ("no-cd") patches for 2.21 (MyAbandonware or Archive) and 2.3.1 (elsewhere) to get a fully updated, Windows 10 ready installation. If you're uncomfortable with this, see the alternative solution described in Appendix 0.
Running the game
Neither game will start unmodified on Windows 10. The problem is that Madden's DRM isn't compatible with Windows 10. It seems that other classic versions e.g. 2004 crash here as well.
This thread from 2015 complains about framerate on Windows 7, and indeed we'll see the same issue on Windows 10. The solution to use a DirectX 8 -> 9 converter such as DgVoodoo. This will also fix various font rendering issues.
Appendix 0: Other solutions for SafeDisc DRM
To work around SafeDisc we can use SafeDiscShim or obtain a no-CD ("cracked") version of mainapp.exe. I'm aware of unSafedisc but haven't tried it myself.
Appendix 1: useful Football Idiot threads
First, there is a backup site - sounds like some drama unfolded.
The site has a plethora of mods - see the "files" megathread. Also this megathread for "useful links".
There is an area of the forums devoted to classic Madden games.
For 2002, tried getting patch from this FTP. I couldn't get it working using FileZilla though. I think this means the FTP is indexed by that site but is since no longer hosted.
Pinata was released natively for Windows; the discs can be purchased on second-hand stores or their ISO found on various archival sites. If you go the download route, you'll need a no-DVD crack.
You may also want a legitimate Games for Windows Live (GFWL) installation or one of the community workarounds.
Optimizing graphics
You can't set a 1080p resolution in-game, but it's doable via pinata.CFG:
To enhance certain effects (fur, grass, shadows) you should use the "HD patch" EXE included in SolarCookie's Cheat Menu releases. This patch also enables very high resolutions - see Appendix 2.
Capturing footage
You can use Cheat Menu to change time of day and more. Be sure to carefully read the setup instructions.
To toggle (most of) the HUD, press Q. Hold RMB to hide your cursor.
Extracting audio from PC
Use unxwb to extract WAVs from Pinata's xwavebank files. Since there are many XWBs, try using a Windows batch script e.g.
@echo off
setlocal
set "EXE_PATH=G:\Tools\Viva Pinata\unxwb-0.3.6\unxwb.exe"
set "TARGET_DIR=F:\Microsoft Games\Viva Pinata\xwavebank"
:: Change to the target directory
cd /d "%TARGET_DIR%"
:: Loop through each file in the directory
for %%F in (.) do (
echo Running on: %%F
mkdir "A:\Viva Pinata\sources\%%F"
"%EXE_PATH%" -d "A:\Viva Pinata\sources\%%F" "%%F"
)
endlocal
unxwb supports providing an XSB file for correct file naming; I didn't bother with this.
Extracting audio from Xbox 360
unxwb seemingly cannot handle Xbox Pinata's XWBs. I found that ffmpeg and vgmstream both disliked the XMA2 files that it dumps.
Thankfully vgmstream supports index-based playback for XWBs. Simply give your archive the XWB extension, and open it with foobar2000 after installing the vgmstream component:
Identifying sounds
As mentioned above, I didn't locate the XSB file - if there is one.
Inside the 0e42da04 sound archive, tracks at index 18 and 19 seem to be ambient streams for day and night respectively.
Appendix 1: Other notable mods
You can PinataCentral to extract PKG archives.
Mumbo's Motors is another tool focused on extracting assets from Rareware games, in this case specializing in Banjo-Kazooie: Nuts & Bolts. I couldn't seem to use it on Viva Pinata's archives. I gave up on it before trying one of its forks.
Appendix 2: Hex-editing for higher resolutions
For 4K resolutions, you'll need to hex-edit Viva Pinata.EXE:
80 07 00 00 B0 04 -> 00 0F 00 00 70 08
This capability, alongside other enchancements, is taken care of by the "HD Patch" included in the Cheat Menu mod.
Appendix 3: Other tools for extracting Xbox audio
xwbaudioreplacer is a PowerShell script that recursively calls into Xplorer's ToWav utility for extraction and conversion to WAV. While the script is simple and effective, it's hard for me to trust ToWav over vgmstream.
bnnm's XWB splitter tool is simple, while offering optional support for filenames (much like unxwb, xwb_split supports passing an XSB as input) if you desire:
xwb_split.exe -I 0e42da04.xwb
If you are looking for Trouble in Paradise sounds, you can simply download them from this Google Drive I found.
Appendix 4: TXTP playback with vgmstream
bnnm recommends using TXTP files for this:
In short, if you have bgm.xwb you can make an empty file named bgm.xwb#31.txtp and open that to play subsong 31.
Therefore, to extract all of 0e42da04.XWB's streams, we can generate a playlist file for each:
for /L %%i in (0,1,119) do (
echo. > "bgm.xwb#%%i.txtp"
)
Capturing the ambience of Splinter Cell: Blacklist (2013)
This game can run in DirectX 9 or DirectX 11 mode, via corresponding dedicated executables. I couldn't determine if there is a visual difference between the two. Perhaps Dx11 only promises better performance, like other contemporaneous Ubisoft titles which offer Dx11 (i.e. Assassin's Creed).
Blacklist must be launched through Ubisoft Connect. Be sure to specify offline mode via command line arguments:
-offline -offline_mode
Extract audio
We can use DecUbiSnd to extract Blacklist's UAX content into WAV/OGG files. For example, the sounds for Private Estate are contained by SG_MAP_06_NOURI.uax. You'll find the static ambient streams as well as positional and "detail" sounds.
Identifying sounds
There is a file called DareStudio.xml which lists all Blacklist's sound events. This file, which doesn't seem to be used at runtime, can nonetheless provide rudimentary clues about how the game's soundscapes are constructed.
In particular, look for Play_AMB_<Map Name> events, where Map Name is something like DeOps_Ghost_Seafort.
DARE is pretty advanced - I found rolloff configuration for specific sounds (e.g. SFX_3D_FishMarket_ShipHornSeq). It can play randomized detail sounds in addition to a base ambient layer - for example, several sounds are audible in the fishmarket's opening alley scene.
Removing the HUD
You can disable many UI components via in-game menu. However, this exclude numerous HUD elements, such as crosshairs and objective markers.
If you're playing in Dx11 mode, you can use my config for ReShade's ShaderToggler. However, it's not possible to disable only UI shaders using this method - you'll find the crosshair shader is also responsible for certain effects, like the 2D rain collecting in London.
You'll need other means for hiding the crosshair - perhaps a texture replacement mod. Or screengrab the pixels in the center of your screen while switching weapons (as this briefly fades out the crosshair).
Capturing free-camera footage
There is a Cheat Engine table available for Dx11.
SpikeTheMarmot's trainer, for Dx9, offers a free camera toggle.
Appendix 1: Unlocking content
Apparently the Deluxe edition is no longer available, but can be unlocked via the Fusion mod.
To get level-select it's straightforward to install game saves. See the PCGamingWiki entry for relevant directories. There are various Cheat Engine tables around for granting the player additional money, etc.
I also found some tricks for hand-editing binary save files to unlock content.
Appendix 2: Other HUD toggling mods
I found a few other ReShade-based mods. Some I tested were more thorough about hiding UI (for example, they were capable of hiding the in-space chapter titles), but unfortunately also remove some of Blacklist's 2D effects. Note the spotlights and red sniper glare in the "Fish Market" screenshot below.
Capturing the ambience of Disney's Hercules Action Game (1997)
This guide will look at the digital PC release, namely from Good Old Games. To replay levels, use F3 on the main menu once you've cleared some (you can use passwords to skip to the penultimate level).
Extracting music
This is easy on the PC version. MUSIC/track02.ogg contains Hercules's soundtrack.
You'll want to use the OGG file from the CD version, however.
(Not) Extracting sound effects
I couldn't figure this out. Presumably they are contained in the Playstation version's SND content (sound banks?), but I couldn't find a tool for extracting those. On PC, they must be nested somewhere inside the FD archive - see Appendix 1 below.
Extracting voice lines
Use jpsxdec to explore the game's PSX ISO, and dump the WAVs inside each XA.
Extracting in-game videos
To decode the PC version's ETV videos, use this. jpsxdec can convert the PSX's versions videos.
Capturing footage
I wanted to get HUD-less (and ideally, player-character free) footage of Hercules. I tried using Duckstation to dump and replace the UI textures, but couldn't seem to find them. I also tried using SpecialK to A.) disable shaders or B.) replace textures on the PC version, but these approach apparently don't work given the way Hercules draws its graphics.
Appendix 1: Extracting PC version files
GameExtractor is capable of dumps the FD archive, but the filetypes of the constituent files is unknown.
I also found an open-source extractor tool, written in Python.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Capturing the ambience of Disney's Animated Storybook: Hercules (1997)
Support for Hercules's engine is in-progress on the ScummVM project. In the meantime, I recommend running it on Windows XP.
Extracting assets
We can use MediaStation for graphical and sound assets. Context files seem to be ordered chronologically, for instance the early marketplace area will be found inside 103.CXT.
You can overlay these assets with footage to capture in-game animations.
Appendix 1: Installing Python packages on Windows
Install Python 3 (I recommend against installing from the Microsoft Store). Once complete, you'll have a pip3 EXE inside your install location, e.g. C:\Program Files\Python\Python313\scripts. Once located, run:
pip3.13.exe install MediaStation
Note the installation logs. The process should leave a MediaStation.exe command-line executable inside e.g. C:\Users\<UserName>AppData\Roaming\Python\Python313\Scripts.
You'll want the Deluxe edition of this game so that you will have all maps and be able to play online. TF|1 is abandonware outside of unclaimed licenses remaining on:
Physical media (base game only - see Appendix 1)
Walmart (digital)
Various grey-market key sites
I expect these legitimate options will be surpassed by the r1delta project over time, as it offers a free download of the Deluxe edition and an open-source server browser.
Extracting sounds
TF|1 infamously shipped digitally with OGG/MP3 files which are then decompressed into WAVs by the game's installer. This approach trades larger storage sizes for faster loading times.
We can access the WAVs directly using the PC DVD release - see Appendix 2. It's hard to say for certain but hopefully these assets were never compressed, unlike their digital-release counterparts.
Once extracted, we can explore VPK archives with Cra0kalo's VPK Tool or Harmony VPK Tool. The latter is capable of correctly extracting stereo sounds (e.g. leviathan_growl_2ch_v1_01). You'll want to open the "mp_common" VPK to explore ambient map sounds.
These results were almost perfect - I heard the occasional audio glitch, for example, in the rear channels of Outpost 207 and Angel City. For this and other reasons I looked into the Xbox 360 version - see Appendix 3. That said, the downmixed stereo result sounded fine. Perhaps these noises are artifacts from some kind of separation process, and disappear once all four channels are re-combined?
Identifying sounds
We can extract and inspect each map's "SND" entity. For example mp_angel_city_snd.ent contains:
We can use the Black Market Edition mod to start single-player private matches. Since this mod enables the developer console, we can also use this to hide the HUD and disable view-model sway.
Equip a weapon without a crosshair (such as the rocket launcher) and run something like:
set_cvar r_drawviewmodel 0
set_cvar viewDrift 0
I also noted cl_drawhud and r_drawvgui and r_screenoverlay but these didn't seem to do anything. I found some server-level noclip options (e.g. sv_noclipduringpause and sv_specnoclip) but didn't experiment with them.
Enhancing graphics
I couldn't find a solution for this. I tried adding CoD-like LOD commands to profile and settings CFG files, but none of them seemed to apply.
Appendix 0: Other notable mods
Titanfall Online Revive, still in development, promises to deliver a secure yet fully custom experience for TF|1 players.
Maxima is an open-source alternative to the EA launcher.
Appendix 1: Obtaining Titanfall DLC in mid-2025
This appears to be impossible. Previously there were loopholes which relied on the now-sunsetted Origin client. The contents of the DLC have been archived, however.
Appendix 2: Extracting Titanfall content from DVD(s)
The PC version's installer relies on Origin, which has been completely sunsetted by EA. However we can still manually copy desired game data from the discs.
Put Titanfall.z01 and Titanfall.z02 (from discs 1 and 2 respectively) in the same directory as Titanfall.zip (from disc 3). Open the ZIP with 7-Zip - it will automatically concatenate the parts together. We can then ask the program to extract the vpk folder.
Appendix 3: Extracting Titanfall content from Xbox 360
I checked this out hoping to find higher-quality assets. You can extract a TF|1 ROM with xdvdfs.
Wwise-Unpacker failed to produce usable sound assets from the game's PCK files - only unplayable files with "RIFX" and "WMA" in their headers. It seemed like ww2ogg might help but I also couldn't get it working.
What ultimately worked was Nicknine's QuickBMS script to extract WEMs files the from PCK archives, and then playing those with vgmstream, which recognizes them as Windows Media Audio 9 Professional files.
Sadly their filesizes are quite small; at 128kbps they are inferior in quality to the PC/XB1 versions.
I recommend using Frosty Editor, rather than scripts, to extract these assets. However Frosty's sound plugin isn't well-equipped to bulk-extract sounds. Plus, we have two different mass-extraction tasks we need to perform:
Dumping many variants at once (example SW01_Planets_Sullust_Shared_Ambience_BigWorld_Frog_FrogCalls_VAR_02)
Serializing the chunks of a longer stream (example SW01_Planets_Sullust_Shared_Ambience_SoundArea_SulfurBrook_03) together into a single WAV.
We can edit the Frosty source (specifically the FrostySoundEditor plugin) to modify the sound exporter to do what we want.
Add a simple loop inside SoundExportMenuItem_Click to implement goal A:
The current best way to capture multiplayer maps is to spectate an empty server, and use the Free Camera mode. Keep in mind that maps scenery and boundaries will vary slightly across game modes.
You can disable UI overlays via Battlefield's developer console. Press the ~ key and then enter UI.DrawEnable false.
Capturing campaign footage
In this mode, you can use Hattiwatti's Cinematic Tools for Battlefield 4 without fear of being banned. However, the tool was built for much older builds of BF4, so it may be unable to locate certain camera attributes in memory.
Extracting sounds
I recommend Frosty Editor. As with other Frostbite 3 games, we'll make some modifications to the sound plugin to facilitate extraction of chunked streams. Extract your desired "Big World" assets to overlay onto those streams.
Capturing the ambience of Blue's Birthday Adventure (1998)
This adventure game has four different quests, split across two discs.
We can use HEERip to dump all assets, namely WAV sounds and bitmaps. It took a little digging, but I found outdoor sounds dumped in at least room 13 and 18.
To identify sounds we can enable debugging and check the sound log. I found, however, that ambient sounds didn't map 1:1 to an asset, but rather a randomized set of sounds. The game runs on the SCUMM engine; we could investigate in more detail by placing breakpoints in ScummVM.
We can overlay background bitmaps to remove the player-character(s).
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Capturing the ambience of Tony Hawk's Pro Skater 4 (2002)
This guide uses the PC and Gamecube versions.
Running the game
I recommend PARTYMOD for its widescreen display, controller support, and other fixes. Other widescreen patches are also available.
Hiding the player-character
We can minimize skater display quite a bit using an unmodified game. Create a skater without clothing or accessories, and then activate the Invisible (and optionally, Kid Mode and Snowboard) cheats.
This will result in only your skateboard being rendered. You can then tilt your camera slightly to move it off-screen, but we can go further to prevent your 'board from being rendered altogether.
Hiding your board
Enter the debug menu (see appendix for instructions) and navigate to the Create-a-Skater -> Board submenu. Choose Remove Item.
We can use Special K to toggle vertex shaders so that your skater's rendering is skipped altogether. This has the drawback of hiding NPCs, cars, and other level actors however.
For another tactic, we can exploit the fact that your skateboard disappears during certain "bail" animations. Try taking a screenshot while the board is gone and then overlaying the relevant pixels onto your captured footage.
Hiding the HUD
We can hide the HUD by modifying the gamemenu.qb script. Set the HIDEHUD global variable to 1. Then, you can add a HUD toggle to your options menu:
options_menu_add_toggle_item text = "Toggle HUD" id = menu_toggle_hud pad_choose_script = screen_setup_hide_hud on_off_text = "Toggle HUD"
It might be possible to remove the HUD via Reshade or Special K shader toggles as well - see above.
Capturing Gamecube footage
This is quite a bit simpler than PC, thanks to the Dolphin emulator. First, set 16:9 inside THPS4's options menu. Start a level in Free Skate mode, and position your skater in your desired spot(s) for a while. You can use Dolphin's Free Look feature to fine-tune angles and/or position the player-character out of frame.
After enough time has elapsed, start a Replay from the pause menu. This will remove your HUD and allow you to record the spot you witnessed earlier. Be sure to uncheck Enable Dual Core if you're using Dolphin's Dump Frames feature.
Extracting sounds
You can get ambient streams for each level by extracting from the THPS4 release of your choice. For simplicity and quality reasons I recommend the Gamecube DTK streams, which can be extracted via Dolphin and played via vgmstream.
Appendix 0: Enabling debug menu(s)
We can also re-enable developer menus by changing scripts such that create_debug_menu is invoked.
make_sprite_menu_item text = "Debug Menu" id = debug_menu pad_choose_script = create_debug_menu Â
make_text_sprite texture = PA_model parent = debug_menu
These menus are expansive but ultimately offer little working functionality to help us capture footage. I also investigated debug_menu_create, found in debug.qb, but it seemingly does nothing. This is unfortunate because the script files make mention of alternate render modes which may have helped us e.g. freely move the camera.
Appendix 1: (Not) porting THPS3's First Person cheat
I revisited THPS3 in hopes that we could port its First Person cheat to THPS4, but got stuck where scripts interact with the game's executable. All I could find was that the CHEAT_ON_11 flag (aliased to CHEAT_FIRST_PERSON in cheats.qb) gets set to 195 in goal_scripts.qb. There is no mention of these flags, or "first person" inside THPS4's scripts.
Appendix 2: Capturing THPS4 via reTHAWed
This total-conversion mod for American Wasteland includes lots of faithfully-ported levels from earlier games. As of version 4.3, this includes THPS4. reTHAWed offers a robust free-camera suite for capturing footage, in high-resolution widescreen.
The PSX release seemed promising as that system was capable of CD-quality audio. But sadly, this version has no ambience. I only realized this after extracting the ISO contents and converting the various STR files.
Extracting sounds
Baller and HEERip are both capable of perfectly extracting BS's wave files. Unlike other games in the series, BS seemingly has no weather or randomized ambient sound effects.
Extracting visuals
See my Backyard Football instructions for using Baller and HEERip. These tools can extract background graphics (1280x480) and what must be collision maps of each field.
Unlike BF, BS seemingly has no spectator graphics on its standard fields.
The most challenging aspect to capture is the goals. These are rendered via component sprites - including the nets and their dynamic physics. You could re-assemble these sprites into a goal but I made do with simply screenshotting them, in their initial state, during a match. There are a few goal variants to be aware of.
Editing Neversoft Q scripts in Tony Hawk's Pro Skater 4
THPS4 ships with compiled QB binaries. To edit them, we must first decompile them into plaintext source.
Because the Q language isn't public, outside of some accidental leaks, it isn't exactly known what syntax decompilations should follow. Therefore we can expect different community QB tools to generate differing source interpretations.
ThpsQScriptEd
The product of THPS modding maven DCxDemo, this tool offers decompilation, editing, and compilation. It can directly save the Q scripts it generates. It can compile edited THPS4 scripts - note that you may need to dismiss some warning messages in the process.
NeverScript
This project endeavors to create a NS scripting standard, and offers compilation to QB, with very limited decompilation support as well. It supports THPS4 as a target game.
This is promising - if we can get another decompiler (e.g. ThpsQScriptEd) working to our satisfaction, we could then edit the results into the NS language, and compile it to QB.
THQBEditor
THQBEditor is still available to download on the LegacyTHPS Discord. It successfully decompiles, and offers a basic text editor, but seemingly cannot re-compile. This may be because it was built for THPS3.
QBexplorer
This tool seemingly dates from THUG1 modding. However, I found its outputs to be not quite human readable. I'm not sure if this is expected or not. It relies on the ROQ decompiler.
QueenBee
This program seems focused on exploring archives, with good support for QB files inside those archives. However it seemingly lacks standalone QB tooling.
Others
I found numerous other tools and utilities with "QB" in the name here.
DE is a Unity game and was released on multiple platforms; the easiest options are the Android version and Windows version. This guide will focus on the latter.
Running the game
Follow this post for instructions on fetching and side-loading the Windows Store assets for DE. You might find the relevant Reddit topic threads helpful for filling in knowledge gaps.
Extracting sounds
We can use AssetStudio, or one of its active forks, to extract DE's AudioClip assets into WAV format.
Capturing footage
I was planning on using Cinematic Unity Explorer to take free-camera screenshots, but I couldn't seem to get BepInEx to hook into DE. I tried BIE 5x and BIE 6x versions, but neither generated config/log files as documented after booting. I assumed that DE is a Mono Unity x64 game (I found MonoBehaviour assets inside), but this might be incorrect (the game lacks a "Managed" folder).
I have a feeling that injection didn't work because I wasn't running the DE EXE directly, but rather through the shortcut Windows creates for Store "apps". I tried to use the EXE, by copy-pasting the required DLLs (sourced from the dependency Appx archives) into the game directory; the game crashes on launch. The WER error reports label the faulty module as Windows.UI.Xaml.dll but don't provide crash details. I tried providing different versions of this DLL but still couldn't get the game to start.
My other theory is that the GO games include anti-tampering features which prevents tools like BIE or MelonLoader.
Presumably you can still follow my steps for Hitman GO to capture UI-free screenshots.
Appendix 1: Determining Unity version
By inspecting the BuildSettings asset inside the globalgamemanagers package, we see 5.4.1p4 under the m_version field. You can also find this information in your UnityPlayer.log file, found inside something like C:\Users\<Your Username>AppData\Local\Packages\39C668CD.DeusExGO_r7bfsmp40f67j\TempState.
ScummVM added support for this game in version 2.6.0. We can modify the relevant engine emulation code in order to run HC in an altered way.
Compiling ScummVM from source
We'll largely follow the official guidance for compiling on Windows, using vcpkg.
However, the guide is slightly out-of-date as it is written for the "classic" era of vcpkg. On modern versions you'll reference a vcpkg.json file - which thankfully is already inside the repository. If it's your first time using vcpkg you'll need to create a manifest with a baseline as well: vcpkg new --application.
The guide will instruct you to pass the --vcpkg flag to your create_project executable; you can also hard-code it in the create_project source. Your command (run directly or via an edited create_msvc.bat) will look something like the below. Note also the absence of the documentation-suggested fluidlite flag as I found this didn't ultimately work with the vcpkg approach):
create_project ../.. --msvc --vcpkg
Finally, I also found I needed to manually alter the Use Vcpkg Manifest setting of several projects in the generated scummvm solution in order for them to integrate with vcpkg.json: fetch, and then link to, the contents of vcpkg_installed.
You can apparently set this globally by passing a command line argument, which would look something like:
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality
Anya is LIVE right now
FREE
Free to watch • No registration required • HD streaming
Creating a runtime texture mod for Earthworm Jim 3D
In this post I'll share my struggles and successes with Special K and other wrapper tools in my attempts to prevent Jim's shadow from rendering. I'm running the GOG version of the game on Windows 10 with an Nvidia GeForce GTX 1070.
Running EWJ 3D with Special K
Special K is the self-appointed "Swiss Army Knife" of PC gaming in that it does "a bit of everything". In our case, this means texture modding and windowing fixes for EWJ 3D. Special K also offers upconversion of EWJ's DirectX 7 rendering calls via a DgVoodoo plugin.
Local versus global installation
We'll be using version 25.1.3.1, since (at the time of writing) subsequent releases contain input bugs impacting EWJ 3D.
Although the docs promote purely "local" Special K installations as an alternative to "global" injection performed through the Special K frontend UI, I couldn't get this working for EWJ.
I did however manage it by "converting" (a misnomer since installations created this way are actually partially global, and partially local) a global install to a local one - achieveable by holding Ctrl and Shift while click the Play button inside Special K's frontend.
This approach allows you to maintain per-game DLL and CONF files; you may prefer it if you're running other games with Special K. However I'll use a global installation throughout this guide, for simplicity.
Issues when customizing EWJ 3D's resolution via its menus
The game boots to an options menu which allows you to, among other things, change your display options: 1.) Color depth and 2.) Resolution. These settings will not persist unless we run the game in compatibility mode for Windows XP*, or thereabouts.
Oddly this menu wants to display at 640x480 no matter what resolution is selected. That is, EWJ only transitions to that resolution once it properly starts. This is typically harmless but seems to break Special K's injection of the game's process, resulting in the loss of Special K's on-screen display and possibly other things.
*This has the downside of requiring EWJ to be run as an administrator - which doesn't cooperate well with Special K, unless of course Special K frontend is also run as administrator (I don't recommend this). This is a possible motivation for running a "converted" local install, as that approach (along with purely local installs) does not require the Special K frontend.
Solution: Forcing EWJ 3D's resolution via DgVoodoo
To avoid this confounding resolution change, we can force EWJ to always run at our chosen resolution (example: 1920x1080) via DgVoodoo. First, set up DgVoodoo as a Special K plugin. Then, modify your CONF file in a text editor or via the control panel:
[DirectX]
Resolution = h:1920, v:1080
This means we don't need to rely on Windows XP compability mode to both run the game in our desired resolution and reliably inject Special K. That's good news, as I (anecdotally) found EWJ crashes more often when in compability mode.
Launch the game via Special K's frontend. Don't forget to insert an EWJ 3D disc before starting the game!
Thanks to our DgVoodoo setup, you should be able to edit the resolution and color depth in the options menu without losing Special K's injection. Once the game starts, open the overlay and click into Render Mod Tools.
You'll notice that for some reason, no assets are listed under Used Textures. This can apparently result from intrusive overlays, but I have a feeling that something else is going on. Highlight Selected Texture doesn't work either - presumably for the same reason.
Anyway, you'll find that you're still able to switch over to All Textures, and click Refresh, to see what the game has loaded. Find the texture you're looking to modify, make note of its format details, and click Dump Texture to Disk.
Editing textures
If you've been following this guide you'll find the DDS files inside a directory like <Special K path>\Profiles\Earthworm Jim 3D\SK_Res\dump\textures\EarthwormJim3D.exe. I tried two editing tools: Intel Texture Works (ITW) and Paint.NET. ITW doesn't Paint.NET offers support for a wide variety of formats but sadly doesn't seem to understand mipmaps.
There is also Nvidia Texture Tools Exporter (NTTE) for saving/compressing, but not editing.
If no single tool offers all of the features you need, you can combine them - for example we can edit a BC2 texture in ITW, export it to BC3, and then re-encode it as a BC2 using NTTE.
Injecting textures
Move your edited textures into <Special K path>\Profiles\Earthworm Jim 3D\SK_Res\inject\textures\EarthwormJim3D.exe and click Reload All Injected Textures. Or, restart the game.
Appendix 1: Other texture injectors?
See if we can use another texture modding tool, such as uMod or TexMod, alongside standalone DgVoodoo* upconversion of DirectX 7 -> DirectX 11 (I couldn't find any that did DirectX 7 -> DirectX 9). Other API wrappers, namely DXWrapper and WineD3D, did not perform well:
DXWrapper boots but there are severe graphical issues. I tried customizing every available option for D7->D9 in dxwrapper.ini. All did nothing or crashed the game.
WineD3D crashed unless I combined with DxWnd. After which it was very slow, and did not work besides.
Appendix 2: Modifying game data?
Instead of injecting altered textures at runtime, we can try to modify the textures.dat archive which EWJ loads from.
Appendix 3: Other Stuff
We might also need DxWnd to improve windowing - we'll see. Might be able to set hotkeys via uMod templates s.t. we don't need to visit its window at all.
There is a successor for uMod build for Guild Wars call gMod. Presumably it would have the same problem of requiring D9.
In this post I'll share what I learned using Claude and ChatGPT to analyze Earthworm Jim 3D's textures.dat archive. To follow along, you'll need access to those tools, plus a hex editor and Windows PowerShell.
First impressions
Claude is much more competent at this type of task than ChatGPT. Before attempting to write a script, it asked for me details about the archive:
Does it have a header with file count/offsets?
Are the BMP files stored with their original headers or are they raw pixel data?
Is there any compression used?
It also prompted me asking whether the archive likely uses offset tables or sequential storage. Together, we concluded that the tree structure apparent in filenames (e.g. Visual FX\Jims_shadow.bmp) makes offset tables more likely.
Would you be able to check if you see any patterns of 4-byte values that could be offsets near the start of the file? Offset tables typically have sequences of increasing 32-bit numbers.
Claude was also curious about a "magic number" in the initial bytes, implying this is a common way to identify archive formats. And separately it searched for a file count in the foremost data of the archive.
Providing sample hex
This is where I got stuck because I wanted to provide at least 1250 characters in order to include the (presumed) offset table as well as some file names. Sadly this exceeds the conversation length afforded to Claude's free tier.
I will probably eventually work up the nerve to upgrade. But until then, for posterity, here PowerShell script to get that sample data: