Touhou Patch Center:Download: Difference between revisions

From Touhou Patch Center
Jump to navigation Jump to search
m (Fix Changelog link)
No edit summary
 
(45 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Project overview}}
{{Project overview/{{PAGELANGUAGE}}}}
<languages /><div style="float:right;">__TOC__</div>
<languages /><div style="float:right;">__TOC__</div>
<translate>
<translate>
== Main Package (Multi-Language, Multi-Game) == <!--T:1-->
== Main Package (Multi-Language, Multi-Game) == <!--T:1-->
</translate>
</translate>
::[[File:Gnome-dev-zipdisk.svg|24px|link=]] <big>[[Media:thcrap.zip|<translate><!--T:2-->
:[[File:Gnome-dev-zipdisk.svg|64px|link=]] <font size=26>[https://github.com/thpatch/thcrap/releases/latest/download/thcrap.zip <translate><!--T:3-->
Download from {{ns:4}}</translate>]] &bull; [[File:Gnome-dev-zipdisk.svg|24px|link=]] [https://github.com/thpatch/thcrap/releases/download/{{Image:thcrap.zip}}/thcrap_brliron.zip <translate><!--T:3-->
Download</translate>]</font>
Download from GitHub</translate>]</big>
:<span class="plainlinks">'''[https://github.com/thpatch/thcrap/releases <translate><!--T:5-->
:<big>'''<translate><!--T:4-->
Changelog</translate>]'''</span>
Latest build:</translate> [[Media:thcrap.zip|{{Image:thcrap.zip}}]]'''</big>
:<span class="plainlinks">'''[[Special:MyLanguage/{{ns:4}}:{{BASEPAGENAME}}/Changelog|<translate><!--T:5-->
Changelog</translate>]]'''</span>
:'''<translate><!--T:6-->
:'''<translate><!--T:6-->
Source code:</translate>''' [https://github.com/thpatch/thcrap @ GitHub]
Source code:</translate>''' [https://github.com/thpatch/thcrap @ GitHub]


<translate><!--T:53-->
<translate><!--T:53-->
:'''[[Standalone_Patches|Standalone Patches]]:''' Pre-packaged patches based on the [[Portal:en|English translation]]</translate>
:[[Standalone_Patches|Pre-packaged patches]] based on our [[Portal:en|English translation]] (not recommended).</translate>
 
:[https://github.com/thpatch/Universal-THCRAP-Launcher/releases Universal THCRAP Launcher, recommended quick launch addon], and [https://github.com/thpatch/Universal-THCRAP-Launcher#readme Read this for how to install]


<translate>
<translate>
== System Requirements == <!--T:7-->
 
<!--T:7-->
== System Requirements ==
* Windows XP with at least Service Pack 2, or a later version of Windows; also works with Wine
* Windows XP with at least Service Pack 2, or a later version of Windows; also works with Wine
* Internet connection only required for initial configuration and updating; without a connection, <tt>thcrap</tt> will simply use the last downloaded state
* Internet connection only required for initial configuration and updating; without a connection, <code>thcrap</code> will simply use the last downloaded state


== Setup Instructions== <!--T:8-->
== Setup Instructions== <!--T:8-->
</translate>
</translate>
=== [http://radlionheart.tumblr.com/post/51430332438/image-walkthrough-on-how-to-use-the-translation <translate><!--T:9-->
=== <translate><!--T:Walkthrough Video-->
Image walkthrough</translate>] <small>(<translate><!--T:10-->
[https://www.youtube.com/watch?v=7qENa8mvOto Video walkthrough]</translate> ===
slightly outdated, though)</translate></small> ===
=== <translate><!--T:Walkthrough Text-->
=== [https://www.youtube.com/watch?v=yr22qZudfzg <translate><!--T:11-->
[https://lilyremigia.github.io/installtouhou Alternative Text walkthrough on how to get just English]</translate> ===
Video walkthrough</translate>] ===
<translate>
<translate>
=== Concise === <!--T:12-->
<!--T:12-->
=== Concise ===
* First of all, you '''don't need to extract this into a specific game directory'''. The patcher can run from any directory.
* First of all, you '''don't need to extract this into a specific game directory'''. The patcher can run from any directory.


<!--T:13-->
<!--T:13-->
* Run <tt>thcrap_configure.exe</tt> and follow the instructions to create your patch configuration.
* Run <code>thcrap.exe</code> and follow the instructions to create your patch configuration.


<!--T:14-->
<!--T:14-->
* You'll end up with a .js file (the configuration itself) as well as links to start every Touhou game found on your system with this configuration. Note that thcrap does ''not'' modify any existing Touhou installation on your system.
* You'll end up with a .js file (the configuration itself) as well as links to start every Touhou game found on your system with this configuration. Note that thcrap does ''not'' modify any existing Touhou installation on your system.


=== Detailed === <!--T:15-->
<!--T:15-->
=== Detailed ===
# Download Patch and unzip (directory does not have to be specified; feel free to place wherever you want)
# Download Patch and unzip (directory does not have to be specified; feel free to place wherever you want)
# Run <tt>thcrap_configure</tt> to find the Touhou games.
# Run <code>thcrap</code> to find the Touhou games.
# Pick your language'''s'''.<br />Yes, plural. If you understand English to some degree, we recommend to ''always'' include <tt>lang_en</tt> at the bottom, and your native language on top of that. [[Special:MyLanguage/Project:Patch stacking|Read more on the topic of patch stacking here.]]
# Pick your language'''s'''.<br />Yes, plural. If you understand English to some degree, we recommend to ''always'' include <code>lang_en</code> at the bottom, and your native language on top of that. [[Special:MyLanguage/Project:Patch stacking|Read more on the topic of patch stacking here.]]
# Wait for the downloads to occur.
# Wait for the downloads to occur.
# In the browsing dialog, select the path where your Touhou games are located, or hit Cancel to search your whole system.
# In the browsing dialog, select the path where your Touhou games are located, or hit Cancel to search your whole system.
Line 49: Line 51:
# Enjoy.
# Enjoy.


=== Running on top of vpatch === <!--T:16-->
<!--T:16-->
This is possible as of the 2013-10-25 build. Due to the DLL-centric design of vpatch, thcrap_configure doesn't automate this yet, so this requires a few manual steps for now:
=== Running on top of vpatch ===
This is possible as of the 2013-10-25 build. Due to the DLL-centric design of vpatch, <code>thcrap</code> doesn't automate this yet, so this requires a few manual steps for now:


<!--T:17-->
<!--T:17-->
# In order to make {{GameLabel|th06}} run '''at all''', replace <tt>vpatch_th06.dll</tt> with our [[:File:vpatch_th06_unicode.zip|modified Unicode version]].
# '''If you don't have vpatch yet''', please download it from [https://en.touhouwiki.net/wiki/Game_Tools_and_Modifications#Vsync_Patches Touhou Wiki] or [https://ux.getuploader.com/swmplv75e/ from the author's download page].
# Configure your patch stack as usual. If you have multiple versions of the games installed, it is merely important to choose the correct directory at this point.
# Configure your patch stack as usual. If you have multiple versions of the games installed, it is merely important to choose the correct directory at this point.
# Open the generated <tt>games.js</tt> in a plaintext editor, and replace the game's .exe file names with <tt>vpatch.exe</tt> (or whatever the local vpatch executable is called).
# Open the generated <code>games.js</code> in a plaintext editor, and replace the game's .exe file names with <code>vpatch.exe</code> (or whatever the local vpatch executable is called).
# Starting the games through the shortcuts will then launch thcrap, vpatch and the game itself. thcrap will automatically enable support for Japanese characters and file names, so '''AppLocale is not required''' (yes, not even for 東方紅魔郷.exe).
# Starting the games through the shortcuts will then launch thcrap, vpatch and the game itself. thcrap will automatically enable support for Japanese characters and file names, so '''AppLocale is not required''' (yes, not even for 東方紅魔郷.exe).
<!--T:54-->
=== HALP! My {{GameLabel|th06}} runs like a Tengu jet fighter on steroids!!===
Getting Touhou 06 to run on Windows 10 requires vpatch.
<!--T:55-->
# Download this complete [[:File:vpatch_th06_for_thcrap.zip|vpatch th06 for thcrap package]]. It includes vpatch (rev4) and our [[:File:vpatch_th06_unicode.zip|modified Unicode vpatch DLL]].
# Extract the zip contents into your EoSD directory.
# If your EoSD directory already contains a file named <code>vpatch_th06.dll</code>, please remove it. You will only need <code>vpatch_th06_unicode.dll</code>.
# If your game executable is named <code>th06.exe</code>, rename it to <code>東方紅魔郷.exe</code>. This is necessary because <code>vpatch.exe</code> will expect to find only this file. If you only have <code>th06e.exe</code> and neither <code>東方紅魔郷.exe</code> or <code>th06.exe</code>, you are using the modified English static patch. We highly recommend that you use a proper Japanese original 1.02h version instead.
# Open <code>thcrap\config\games.js</code> with a text editor and make <code>th06</code> point to <code>vpatch.exe</code> instead of the game executable.
# If you encounter a lot of screen tearing, open <code>vpatch.ini</code> in a text editor and set <code><syntaxhighlight lang="json" inline>vsync = 0</syntaxhighlight></code> to <code><syntaxhighlight lang="json" inline>vsync = 1</syntaxhighlight></code>.


==Tricks== <!--T:18-->
==Tricks== <!--T:18-->


===File Output=== <!--T:19-->
<!--T:19-->
===File Output===
This will dump all the original, unpatched files loaded by a game as it runs.
This will dump all the original, unpatched files loaded by a game as it runs.


<!--T:20-->
<!--T:20-->
Steps:
Steps:
# Locate the .js file that is created when you run <code>thcrap_configure.exe</code> (this would be whatever you named your shortcuts, so if you called your shortcut "en" then the .js file will also be called en.js).
# Locate the .js file that is created when you run <code>thcrap.exe</code> (this would be whatever you named your shortcuts, so if you called your shortcut "en" then the .js file will also be called en.js).
# Open it with your text editor (notepad, editpadpro, etc)
# Open it with your text editor (notepad, editpadpro, etc)
# Change <tt><syntaxhighlight lang="javascript" enclose=none>"dat_dump": false</syntaxhighlight></tt> to either
# Change <code><syntaxhighlight lang="json" inline>"dat_dump": false</syntaxhighlight></code> to either
:* <tt><syntaxhighlight lang="javascript" enclose=none>"dat_dump": true</syntaxhighlight></tt> - this will output files to wherever you placed your original game, in a folder called <code>dat</code>
:* <code><syntaxhighlight lang="json" inline>"dat_dump": true</syntaxhighlight></code> - this will output files to wherever you placed your original game, in a folder called <code>dat</code>
:* <tt><syntaxhighlight lang="javascript" enclose=none>"dat_dump": "C:/name/to/dump/path/"</syntaxhighlight></tt> - this will output files into the given directory.
:* <code><syntaxhighlight lang="json" inline>"dat_dump": "C:/name/to/dump/path/"</syntaxhighlight></code> - this will output files into the given directory.


<!--T:21-->
<!--T:21-->
Then, run the shortcut.
Then, run the shortcut.


===Steam integration=== <!--T:22-->
<!--T:22-->
===Steam integration===
We'd actually need a new guide how to do this at this place!
We'd actually need a new guide how to do this at this place!


== Troubleshooting == <!--T:23-->
<!--T:23-->
== Troubleshooting ==
=== How to debug a game crash, freeze, or other issue unrelated to translation ===
=== How to debug a game crash, freeze, or other issue unrelated to translation ===
A complete patch setup is made up of a number of individual parts, any one of which will be responsible for the issue you're experiencing. If possible, please try to pin down the cause before reporting an issue to us.
A complete patch setup is made up of a number of individual parts, any one of which will be responsible for the issue you're experiencing. If possible, please try to pin down the cause before reporting an issue to us.
Line 87: Line 105:
<!--T:25-->
<!--T:25-->
* ''Try removing patches from your stack, one by one, starting at the bottom.''
* ''Try removing patches from your stack, one by one, starting at the bottom.''
:* To do this, edit the run configuration .js file generated by thcrap_configure in a plaintext editor like Notepad.
:* To do this, edit the run configuration .js file generated by <code>thcrap</code> in a plaintext editor like Notepad.
:: For example, if you only selected the English translation, you'd edit <tt>en.js</tt> (or whatever you've named it). You'd first remove the <syntaxhighlight lang="javascript">, { "archive": "thpatch/lang_en/" }</syntaxhighlight> section, then check whether that fixed your error, using your existing shortcuts or launchers. If it didn't, remove the next patch, and so on.
:: For example, if you only selected the English translation, you'd edit <code>en.js</code> (or whatever you've named it). You'd first remove the <syntaxhighlight lang="json">, { "archive": "thpatch/lang_en/" }</syntaxhighlight> section, then check whether that fixed your error, using your existing shortcuts or launchers. If it didn't, remove the next patch, and so on.
:: If you are unfamiliar with JSON, use [https://jsonlint.com/ JSONLint] or [https://jsonformatter-online.com JSON Formatter] to verify the syntax of your edited file. This site also gives you helpful error messages if you e.g. left a comma at the end of the <tt>"patches"</tt> section.
:: If you are unfamiliar with JSON, use [https://jsonlint.com/ JSONLint] or [https://jsonformatter-online.com JSON Formatter] to verify the syntax of your edited file. This site also gives you helpful error messages if you e.g. left a comma at the end of the <code>"patches"</code> section.
:* If necessary, repeat this until you have no patches left. Note that running thcrap with no patches is still ''different'' from running the original, unpatched game. It still applies the game-independent features of thcrap, like its locale independence code or its propagation to child processes, onto the game, which might be the cause of your bug.
:* If necessary, repeat this until you have no patches left. Note that running thcrap with no patches is still ''different'' from running the original, unpatched game. It still applies the game-independent features of thcrap, like its locale independence code or its propagation to child processes, onto the game, which might be the cause of your bug.
:: If the bug still appears with no patches, you're done. But if you ''could'' identify a patch that caused your issue:
:: If the bug still appears with no patches, you're done. But if you ''could'' identify a patch that caused your issue:
::* Temporarily delete or rename <tt>thcrap_update.dll</tt> in the thcrap directory in order to disable automatic updates.
::* Temporarily delete or rename <code>thcrap_update.dll</code> in the thcrap directory in order to disable automatic updates.
::* Look at <tt>thcrap_log.txt</tt> and check which files '''of that patch''' are actually loaded by the game. These are indicated by lines beginning with a <tt> + </tt>.
::* Look at <code>thcrap_log.txt</code> and check which files '''of that patch''' are actually loaded by the game. These are indicated by lines beginning with a <code> + </code>.
::* Delete those files one by one, until the bug doesn't appear any more.
::* Delete those files one by one, until the bug doesn't appear any more.
::: These files will be re-downloaded once you restore <tt>thcrap_update.dll</tt>.
::: These files will be re-downloaded once you restore <code>thcrap_update.dll</code>.


<!--T:26-->
<!--T:26-->
* Now that you know the exact cause, [[#HALP|report all the info you've gathered to the team]], and they will be happy about your detailed bug report, and certainly less frustrated than if you just posted one screenshot of the bug. ☺
* Now that you know the exact cause, [[#HALP|report all the info you've gathered to the team]], and they will be happy about your detailed bug report, and certainly less frustrated than if you just posted one screenshot of the bug. ☺


=== Known issues === <!--T:27-->
<!--T:27-->
=== Known issues ===
====My game isn't recognized by the configuration tool, and no shortcut is created====
====My game isn't recognized by the configuration tool, and no shortcut is created====
If that game happens to be {{GameLabel|th06}} or any of the older fighting games ({{GameLabel|th075}}, {{GameLabel|th105}} or {{GameLabel|th123}}): thcrap does not support them yet.
If that game happens to be {{GameLabel|th075}}: thcrap does not support it yet.
 
<!--T:27-1-->
If you're on Linux or MacOS with Wine, there seems to be a bug when when the game is in a subfolder of the selected folder (which happens when you add your folder with all your games in it). If this happens, you'll need to use the "Find games in a specific folder..." button to add each game one by one.


<!--T:28-->
<!--T:28-->
Line 109: Line 131:
====Dialog==== <!--T:29-->
====Dialog==== <!--T:29-->


=====Blank text when running on Wine===== <!--T:30-->
<!--T:30-->
<!-- Don't translate this until a Linux user has confirmed that the second one is still an issue in recent Wine! Because maybe a Wine update is the simple solution here. -->
=====Untranslated Japanese text appears blank on Wine=====
* First, try running thcrap on this game without selecting a translation patch, i.e., just using <tt>base_tsa</tt>. If you still get blank text, installing Japanese fonts for Wine should fix that.
This is a bug in Wine, and has not been fixed as of October 2017. ''Even if'' Japanese fonts are installed and work as intended on an unpatched game, Wine's font substitution is not sophisticated enough yet to use glyphs from these fonts in case the currently selected font (''[[:File:THBiolinum.otf|Touhou Biolinum]]'' for Latin script languages) does not contain Japanese glyphs.  
* If you then still get blank text ''with a translation patch'', Wine's glyph replacement system is not sophisticated enough to use Japanese glyphs from a default system font in case the currently selected font (''[[:File:THBiolinum.otf|Touhou Biolinum]]'' for Latin script languages) does not contain Japanese glyphs.


=====Dialogue does not fit in text box===== <!--T:31-->
<!--T:31-->
=====Dialogue does not fit in text box=====
Unfortunately, ZUN's engine has never been able to do automatic line breaks, and we don't want to combat this by having the wiki parser guess where to put a line break. This means that ''all of the line breaks have to be done manually''.
Unfortunately, ZUN's engine has never been able to do automatic line breaks, and we don't want to combat this by having the wiki parser guess where to put a line break. This means that ''all of the line breaks have to be done manually''.


Line 121: Line 143:


====Errors==== <!--T:33-->
====Errors==== <!--T:33-->
=====Could not load the function: thcrap_init===== <!--T:34-->
We don't know yet what exactly this causes - if you have this problem, please get in touch with us so that we can debug it. Probably some antivirus. Reinstalling thcrap and the affected game seems to help.


=====Japanese text error===== <!--T:35-->
=====Japanese text error===== <!--T:35-->
Line 135: Line 154:
<div style="clear: both;">
<div style="clear: both;">
<translate>
<translate>
===== Some translations are incomplete or missing ===== <!--T:38-->
<!--T:38-->
===== Some translations are incomplete or missing =====
Check the corresponding text page on this site; most likely, the translations there have not been finished yet.
Check the corresponding text page on this site; most likely, the translations there have not been finished yet.


Line 150: Line 170:
<div style="clear: both;">
<div style="clear: both;">
<translate>
<translate>
====The patch does not seem to update.==== <!--T:43-->
 
<!--T:56-->
====There a crash on Wine (Linux and Mac) when running a game====
Make sure you're using the last version, we fixed some important bugs with Wine in the version 2021-08-30.
 
<!--T:57-->
Also, if you previously applied the workaround where you copied some DLL files around, delete them. This workaround is no longer needed, and having old DLL files in the thcrap directory can cause a crash. You should not have any DLL file in the thcrap root folder.
 
<!--T:43-->
====The patch does not seem to update.====
A complete, manual reinstallation of the latest thcrap version usually fixes this.
A complete, manual reinstallation of the latest thcrap version usually fixes this.


====HALP==== <!--T:44-->
<!--T:44-->
====HALP====
Something not covered here? Everything just going wrong? We have the solution! (Most of the time.)
Something not covered here? Everything just going wrong? We have the solution! (Most of the time.)


<!--T:45-->
<!--T:45-->
Please visit our https://thpatch.net/w/logos/discord.png [https://discord.thpatch.net/ Discord] or IRC channel '''#thcrap''' on '''[http://webchat.freenode.net/?channels=#thcrap irc.freenode.net]'''. Things we would need are OS, game, what you were doing, and the patcher's log file (<tt>thcrap_log.txt</tt>).
Please visit our https://thpatch.net/w/logos/discord.png [https://discord.thpatch.net/ Discord] or IRC channel '''#thcrap''' on '''[http://webchat.freenode.net/?channels=#thcrap irc.freenode.net]'''. Things we would need are OS, game, what you were doing, and the patcher's log file (<code>thcrap_log.txt</code>).


== Run configuration parameters == <!--T:46-->
<!--T:46-->
== Run configuration parameters ==
=== Root level ===
=== Root level ===
==== <tt>dat_dump</tt> ====
==== <code>dat_dump</code> ====
:Dumps original game data from the .dat archive as it's loaded.
:Dumps original game data from the .dat archive as it's loaded.
:As of the 2013-07-29 build, this also dumps the sprite boundaries for all graphic files.
:As of the 2013-07-29 build, this also dumps the sprite boundaries for all graphic files.
:values: ''false'' to disable, directory string to specify directory, anything else will enable dumping into ''game directory/dat''
:values: ''false'' to disable, directory string to specify directory, anything else will enable dumping into ''game directory/dat''


==== <tt>console</tt> ==== <!--T:47-->
<!--T:47-->
==== <code>console</code> ====
:Enables or disables the on-screen patch debugging console.
:Enables or disables the on-screen patch debugging console.
:values: ''true'' / ''false''
:values: ''true'' / ''false''


==== <tt>font</tt> ==== <!--T:48-->
<!--T:48-->
==== <code>font</code> ====
:Changes the font used in the game to any other font installed on your system.
:Changes the font used in the game to any other font installed on your system.
:values: ''string''
:values: ''string''


=== Patch level === <!--T:49-->
<!--T:49-->
==== <tt>archive</tt> ====
=== Patch level ===
==== <code>archive</code> ====
:Specifies the base directory of this patch. Must end in a forward slash (/).
:Specifies the base directory of this patch. Must end in a forward slash (/).
:As of the 2014-01-03 build, this can be a directory relative to the one the run configuration is stored in.
:As of the 2014-01-03 build, this can be a directory relative to the one the run configuration is stored in.
:value: ''string''
:value: ''string''


==== <tt>ignore</tt> ==== <!--T:50-->
<!--T:50-->
==== <code>ignore</code> ====
:Ignores any files from this patch that match the given wildcard.
:Ignores any files from this patch that match the given wildcard.
:value: ''array'' of strings
:value: ''array'' of strings


===== Example: Disabling music title and spell card translations for a specific language ===== <!--T:51-->
<!--T:51-->
'''Example: Disabling music title and spell card translations for a specific language'''
</translate>
</translate>
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="json">
{
{
"archive": "thpatch/lang_en/"
"archive": "thpatch/lang_en/"
Line 196: Line 232:
</syntaxhighlight>
</syntaxhighlight>
<translate>
<translate>
==== <tt>update</tt> ==== <!--T:52-->
<!--T:52-->
:Set to <tt>false</tt> to disable automatic updates for this patch.
==== <code>update</code> ====
:Set to <code>false</code> to disable automatic updates for this patch.
:value: ''true/false''
:value: ''true/false''
Alternatively, you can safely delete <tt>thcrap_update.dll</tt> after configuration to remove all on-line functionality.
Alternatively, you can safely delete <code>thcrap_update.dll</code> after configuration to remove all on-line functionality.
</translate>
</translate>
[[Category:Tool]]
[[Category:Tools]]

Latest revision as of 13:14, 12 December 2023

Project overview
About Tutorial FAQ Download Patch servers github.png Bug tracker Wiki security

Main Package (Multi-Language, Multi-Game)

Gnome-dev-zipdisk.svg Download
Changelog
Source code: @ GitHub
Pre-packaged patches based on our English translation (not recommended).
Universal THCRAP Launcher, recommended quick launch addon, and Read this for how to install


System Requirements

  • Windows XP with at least Service Pack 2, or a later version of Windows; also works with Wine
  • Internet connection only required for initial configuration and updating; without a connection, thcrap will simply use the last downloaded state

Setup Instructions

Video walkthrough

Alternative Text walkthrough on how to get just English

Concise

  • First of all, you don't need to extract this into a specific game directory. The patcher can run from any directory.
  • Run thcrap.exe and follow the instructions to create your patch configuration.
  • You'll end up with a .js file (the configuration itself) as well as links to start every Touhou game found on your system with this configuration. Note that thcrap does not modify any existing Touhou installation on your system.

Detailed

  1. Download Patch and unzip (directory does not have to be specified; feel free to place wherever you want)
  2. Run thcrap to find the Touhou games.
  3. Pick your languages.
    Yes, plural. If you understand English to some degree, we recommend to always include lang_en at the bottom, and your native language on top of that. Read more on the topic of patch stacking here.
  4. Wait for the downloads to occur.
  5. In the browsing dialog, select the path where your Touhou games are located, or hit Cancel to search your whole system.
  6. Select your preferred version out of the Touhou games with multiple versions on your system.
  7. Use shortcuts.
  8. Enjoy.

Running on top of vpatch

This is possible as of the 2013-10-25 build. Due to the DLL-centric design of vpatch, thcrap doesn't automate this yet, so this requires a few manual steps for now:

  1. If you don't have vpatch yet, please download it from Touhou Wiki or from the author's download page.
  2. Configure your patch stack as usual. If you have multiple versions of the games installed, it is merely important to choose the correct directory at this point.
  3. Open the generated games.js in a plaintext editor, and replace the game's .exe file names with vpatch.exe (or whatever the local vpatch executable is called).
  4. Starting the games through the shortcuts will then launch thcrap, vpatch and the game itself. thcrap will automatically enable support for Japanese characters and file names, so AppLocale is not required (yes, not even for 東方紅魔郷.exe).

HALP! My Icon th06.png Embodiment of Scarlet Devil runs like a Tengu jet fighter on steroids!!

Getting Touhou 06 to run on Windows 10 requires vpatch.

  1. Download this complete vpatch th06 for thcrap package. It includes vpatch (rev4) and our modified Unicode vpatch DLL.
  2. Extract the zip contents into your EoSD directory.
  3. If your EoSD directory already contains a file named vpatch_th06.dll, please remove it. You will only need vpatch_th06_unicode.dll.
  4. If your game executable is named th06.exe, rename it to 東方紅魔郷.exe. This is necessary because vpatch.exe will expect to find only this file. If you only have th06e.exe and neither 東方紅魔郷.exe or th06.exe, you are using the modified English static patch. We highly recommend that you use a proper Japanese original 1.02h version instead.
  5. Open thcrap\config\games.js with a text editor and make th06 point to vpatch.exe instead of the game executable.
  6. If you encounter a lot of screen tearing, open vpatch.ini in a text editor and set vsync = 0 to vsync = 1.

Tricks

File Output

This will dump all the original, unpatched files loaded by a game as it runs.

Steps:

  1. Locate the .js file that is created when you run thcrap.exe (this would be whatever you named your shortcuts, so if you called your shortcut "en" then the .js file will also be called en.js).
  2. Open it with your text editor (notepad, editpadpro, etc)
  3. Change "dat_dump": false to either
  • "dat_dump": true - this will output files to wherever you placed your original game, in a folder called dat
  • "dat_dump": "C:/name/to/dump/path/" - this will output files into the given directory.

Then, run the shortcut.

Steam integration

We'd actually need a new guide how to do this at this place!

Troubleshooting

How to debug a game crash, freeze, or other issue unrelated to translation

A complete patch setup is made up of a number of individual parts, any one of which will be responsible for the issue you're experiencing. If possible, please try to pin down the cause before reporting an issue to us.

  • Does the issue appear in the original, unpatched game?
While thcrap fixes some of the bugs in the original games as part of its patch support, we sadly don't have the capacities to fix all of them, as we are mostly busy with thcrap's own bugs and features, first and foremost. Still, please report the issue, maybe it is trivial enough that one of our developers can look at it and fix it fairly quickly.
  • Try removing patches from your stack, one by one, starting at the bottom.
  • To do this, edit the run configuration .js file generated by thcrap in a plaintext editor like Notepad.
For example, if you only selected the English translation, you'd edit en.js (or whatever you've named it). You'd first remove the
, { "archive": "thpatch/lang_en/" }
section, then check whether that fixed your error, using your existing shortcuts or launchers. If it didn't, remove the next patch, and so on.
If you are unfamiliar with JSON, use JSONLint or JSON Formatter to verify the syntax of your edited file. This site also gives you helpful error messages if you e.g. left a comma at the end of the "patches" section.
  • If necessary, repeat this until you have no patches left. Note that running thcrap with no patches is still different from running the original, unpatched game. It still applies the game-independent features of thcrap, like its locale independence code or its propagation to child processes, onto the game, which might be the cause of your bug.
If the bug still appears with no patches, you're done. But if you could identify a patch that caused your issue:
  • Temporarily delete or rename thcrap_update.dll in the thcrap directory in order to disable automatic updates.
  • Look at thcrap_log.txt and check which files of that patch are actually loaded by the game. These are indicated by lines beginning with a + .
  • Delete those files one by one, until the bug doesn't appear any more.
These files will be re-downloaded once you restore thcrap_update.dll.

Known issues

My game isn't recognized by the configuration tool, and no shortcut is created

If that game happens to be Icon th075.png Immaterial and Missing Power: thcrap does not support it yet.

If you're on Linux or MacOS with Wine, there seems to be a bug when when the game is in a subfolder of the selected folder (which happens when you add your folder with all your games in it). If this happens, you'll need to use the "Find games in a specific folder..." button to add each game one by one.

Otherwise, please post the game's executable on either discord.png Discord or irc.png our IRC channel #thcrap on irc.freenode.net. We'll see what we can do.

Dialog

Untranslated Japanese text appears blank on Wine

This is a bug in Wine, and has not been fixed as of October 2017. Even if Japanese fonts are installed and work as intended on an unpatched game, Wine's font substitution is not sophisticated enough yet to use glyphs from these fonts in case the currently selected font (Touhou Biolinum for Latin script languages) does not contain Japanese glyphs.

Dialogue does not fit in text box

Unfortunately, ZUN's engine has never been able to do automatic line breaks, and we don't want to combat this by having the wiki parser guess where to put a line break. This means that all of the line breaks have to be done manually.

If you see such a line, just log in, look for the corresponding page and split it yourself. If it's a third-party patch, then e-mail the project leader about the issue, or tell them on GitHub or wherever they host their patch.

Errors

Japanese text error
The ZUN Mutex

The error to the right is shown whenever a Touhou game is started and there is another Touhou game process active, meaning that you cannot run two Touhou games at the same time. Check Task Manager for any zombie processes and kill them if necessary.

Some translations are incomplete or missing

Check the corresponding text page on this site; most likely, the translations there have not been finished yet.

Patch configuration

Why does Patch X not work with Patch Y?
Oops!

When you are using multiple patches, the order is important. For example one may want to use Gamer251's Mima patch for the Mima sprite and dialog, the Alphes patch for Alphes-style art, and our English patch to have the rest of the game translated to English. If one was to use the Mima patch first, then the Alphes patch, then the English one, they would discover that while the other patches were applied, the English title screen was applied to the Mima's custom title. So for a typical patch selection, the correct way to select a patch if it's not already not added for you (as seen with Nazeo's gangster patch) is using the main language first, then the mod.

There a crash on Wine (Linux and Mac) when running a game

Make sure you're using the last version, we fixed some important bugs with Wine in the version 2021-08-30.

Also, if you previously applied the workaround where you copied some DLL files around, delete them. This workaround is no longer needed, and having old DLL files in the thcrap directory can cause a crash. You should not have any DLL file in the thcrap root folder.

The patch does not seem to update.

A complete, manual reinstallation of the latest thcrap version usually fixes this.

HALP

Something not covered here? Everything just going wrong? We have the solution! (Most of the time.)

Please visit our discord.png Discord or IRC channel #thcrap on irc.freenode.net. Things we would need are OS, game, what you were doing, and the patcher's log file (thcrap_log.txt).

Run configuration parameters

Root level

dat_dump

Dumps original game data from the .dat archive as it's loaded.
As of the 2013-07-29 build, this also dumps the sprite boundaries for all graphic files.
values: false to disable, directory string to specify directory, anything else will enable dumping into game directory/dat

console

Enables or disables the on-screen patch debugging console.
values: true / false

font

Changes the font used in the game to any other font installed on your system.
values: string

Patch level

archive

Specifies the base directory of this patch. Must end in a forward slash (/).
As of the 2014-01-03 build, this can be a directory relative to the one the run configuration is stored in.
value: string

ignore

Ignores any files from this patch that match the given wildcard.
value: array of strings

Example: Disabling music title and spell card translations for a specific language

{
	"archive": "thpatch/lang_en/"
},
{
	"archive": "thpatch/lang_pt-br/",
	"ignore": ["*themes.js", "*spells.js"]
},

update

Set to false to disable automatic updates for this patch.
value: true/false

Alternatively, you can safely delete thcrap_update.dll after configuration to remove all on-line functionality.