(semi-tested) ManMan JA translation, config inis replacing templates, downgrade DivaSound and upgrade DivaMovie, fixes

This commit is contained in:
nastys
2021-11-10 22:44:23 +01:00
parent ab1b2f88c7
commit 332a5324ae
58 changed files with 40875 additions and 67165 deletions
+2 -1
View File
@@ -16,7 +16,7 @@ Code is licensed under the MIT License.
* Decompress everything into the **root folder** of the game.
* Install the official **"mdata"**.
**M215** to **M270** are supported, custom ones are also supported.
**M215** to **M271** are supported, custom ones are also supported.
To install them you have to drop each **"mdata"** update decompressed into the **"mdata\"** folder in the root folder of the game (create it if it doesn't exists).
@@ -28,6 +28,7 @@ To install them you have to drop each **"mdata"** update decompressed into the *
* M250
* M260
* M270
* M271
Files required to make **"mdata"** available in the game are included (**"ram\databank\PvList*"** files).
@@ -1,3 +1,5 @@
// Requires Allow_Custom_Freeplay=1
# Enable FREE PLAY
// Just in case it's disabled...
@1403BABEA:75 // ...enable it.
@@ -0,0 +1,46 @@
#########################################
# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#
#########################################
[General]
# You can choose 2 channel or 4 channel mode.
# 4 channels uses front channels for speakers and rear channels as headphones.
# 2 channels only has headphones output (with in-game volume bypassed).
Channels=2
# 16 or 24 bit integer and 32 bit float output are supported.
# If you don't know what this means, you should leave it at 16.
# On some versions of Windows floating point samples may increase latency.
Bit_Depth=16
# This can be WASAPI, DirectSound, WASAPI_Exclusive, or ASIO.
# Only use DirectSound if WASAPI doesn't work for some reason.
# WASAPI_Exclusive may not work with some hardware, but can have lower latency.
# ASIO requires special driver support.
# ASIO doesn't use the buffer settings. Use ASIO config instead.
# For full descriptions of the backends see https://github.com/somewhatlurker/DivaSound/wiki/Backends.
Backend=WASAPI
# If the game crashes when loading, try setting this to 0.
Alternate_Init=1
[Buffer]
# Sets the requested buffer size in milliseconds.
# Try increasing this if audio stutters or desyncs.
# WASAPI will usually provide a larger buffer than specified.
# You can check the actual buffer size by enabling debug_component.
Buffer_Size=10
# Sets how many periods to use.
# Fewer periods = lower latency, but it may cause issues.
# You probably shouldn't set this below 2, and increasing it probably isn't necessary.
Periods=2
[ASIO]
# Sets the device ID.
# 0=first device(...), -1=first available device
Device=-1
# When set to 1 the ASIO driver config will open alongside the game.
# Use this to adjust output settings, then disable it.
Show_Config=0
@@ -0,0 +1,40 @@
[Config]
# Patches to remove glitching with modern GPUs.
# Appropriate patches will automatically be selected based on your GPU.
Compat=1
# Lyb's toon shader improvements (24 sept 2019)
# Toon_Improve: Adjusts toon shader lighting
Toon_Improve=0
# Specular Multiplier
Toon_Improve_Val1=0.9
# Specular Offset
Toon_Improve_Val2=-0.5
# Lyb's toon shader improvements (24 sept 2019)
# Toon_Eyes_Improve: Adjusts toon shader eyes
Toon_Eyes_Improve=0
# Lyb's toon shader improvements (24 sept 2019)
# Toon_Hair_Improve: Adjusts toon shader hair
Toon_Hair_Improve=0
# Diffuse Brightness
Toon_Hair_Improve_Val1=1.25
# Lyb's toon shader improvements (24 sept 2019)
# Toon_Lines_Improve: Adjusts toon shader outlines
Toon_Lines_Improve=0
# ???
Toon_Lines_Improve_Val1=0.75
# Thickness Multiplier(?)
Toon_Lines_Improve_Val2=0.75
# Thickness Offset(?)
Toon_Lines_Improve_Val3=0.75
# Debug patches:
# Nametags
# Adds comments with the shader file name to the shader text. Useful for debugging issues.
# You only need to enable one of these.
# `nametags2` is a bit faster, but the tags are placed at the end of the file and you may not like that.
Nametags1=0
Nametags2=0
@@ -0,0 +1,51 @@
#########################################
# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#
#########################################
# components.ini
# defines which components will be enabled
[components]
# emulates game input through mouse and keyboard.
# controls can be set inside the keyconfig.ini file.
input_emulator = true
touch_slider_emulator = true
touch_panel_emulator = true
# freezes the PV select timer at 39 seconds.
sys_timer = true
# loads user defined const values from the playerdata.ini config
# and writes them to the game's PlayerData struct.
# required for modules selection
player_data_manager = true
# adjusts 2D and 3D animations to retain their original speed at different frame rates.
frame_rate_manager = false
# skip unnecessary DATA_INITIALIZE loading time, speed up SYSTEM_STARTUP and skip the startup WARNING message.
# further improvements can be achieved by shortening the duration of the pv_999 script file as it's test loaded during the SYSTEM_STARTUP.
fast_loader = true
# allows for a user controllable camera which can be toggled using F3,
# can be controlled using W/A/S/D to move, SPACE/CTRL to ascend/descend, Q/E to rotate, R/F to zoom in/out
# and holding SHIFT/ALT to speed up or slow down these controls.
camera_controller = false
# scales the framebuffer so that it will fit the current screen or window
# required to set resolutions in config.ini
scale_component = true
# lets the user change the current game state using the F4 - F8 keys, enable the dw_gui / DATA_TESTs
# and speed up 2D animations / menu navigation by holding SHIFT + TAB.
# enabling this component is not recommended for most users.
debug_component = false
# allows the usage of hold transfer
target_inspector = true
# saves high scores to plugins/scores.ini
score_saver = true
# adds a pause menu
pause = true
+157
View File
@@ -0,0 +1,157 @@
#########################################
# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#
#########################################
[Global]
# Load plugins including below options
Enable=1
# Enable built-in patches
Builtin_Patches=1
# Enable custom patches
Custom_Patches=1
# Enable built-in render
Builtin_Render=1
# PC
pc=
[GPU]
# Force GPU model -- -1=auto, 0=Kepler, 1=Maxwell, 2=Turing, 3=Ampere
Model=-1
[Launcher]
# Forces the launcher to be skipped, you can use the --launch parameter instead of this.
Skip=0
# Disables unsupported GPU warning dialogs.
No_GPU_Dialog=0
# Sets the dark colour scheme in the launcher.
Dark_Launcher=0
# Command line arguments
Command_Line=
# Launches divahook.bat intead of diva.exe.
Use_divahook_bat=0
# Language -- 0=auto, 1=en, 2=zh-Hans, 3=pt-BR, 4=it-IT, 5=ja-JP
Launcher_Language=0
[Patches]
# Disable movies (enable this if the game hangs when loading certain PVs)
No_Movies=0
# Enable or disable mouse cursor
Cursor=1
# Use 2 channels instead of 4 (when not using DivaSound)
Stereo=1
# Skip one or more menus -- 0=disabled, 1=guest, 2=guest+normal
Quick_Start=1
# Disable the scrolling sound effect
No_Scrolling_SFX=0
# Show "FREE PLAY" instead of "CREDIT(S)" and don't require credits
Freeplay=1
# Sing missed notes
Sing_Missed=0
# Hide the volume and SE control buttons
Hide_Volume=0
# Remove the photo controls during PV playback
No_PV_UI=0
# Hide the watermark that's usually shown in PV viewing mode
Hide_PV_Watermark=0
# Set the card reader and network status icons -- 0=default, 1=hidden, 2=error, 3=OK, 4=partial OK
Status_Icons=0
# Disable showing lyrics
No_Lyrics=0
# Disable the error banner
No_Error=1
# Hide "CREDIT(S)"/"FREE PLAY"
Hide_Freeplay=0
# Show "PD Loader" instead of "FREE PLAY"
PDLoaderText=1
# Allow plugins and patches to change "FREE PLAY"/"CREDIT(S)"
Allow_Custom_Freeplay=0
# Freeze the timer
No_Timer=1
# Disable the timer sprite
No_Timer_Sprite=1
# Disable Message Bar
No_Message_Bar=0
# Disable Stage Text
No_Stage_Text=0
# Unlock PSEUDO modules (incomplete, will default to Miku)
Unlock_Pseudo=0
# Enable the card menu (incomplete, it doesn't bypass the card prompt)
Card=0
# Disable Extended Data (may break physics in some edits) AKA Skyth's no-opd patch
No_Opd=0
# Scale Debug Windows above HD internal resolution AKA somewhatlurker's dwgui patch
Dwgui_Scaling=0
# Allow using a real arcade slider attached to COM11 (or PS4 official FT controller)
Hardware_Slider=0
# Prevent data deletion
Prevent_Data_Deletion=0
[Graphics]
# Lag Compensation
Lag_Compensation = 0
# Set to -1 to unlock the frame rate.
FPS.Limit=60
# Reduces FPS Limiter CPU usage
# (may have less consistent performance)
FPS.Limit.LightMode=1
# Enable debug warnings for lightweight limiter
FPS.Limit.Verbose=0
# Temporal Anti-Aliasing
TAA=1
# Morphological Anti-Aliasing
MLAA=1
# MAG Filter -- 0=default (bilinear), 1=nearest-neighbour, 2=sharpen, 3=cone (smooth)
MAG=0
# Depth of Field
DOF=1
# Reflections
Reflections=1
Reflect_Res_Width = 512
Reflect_Res_Height = 256
Refract_Res_Width = 512
Refract_Res_Height = 256
# Gamma -- 100=default, 125=console-like
Gamma = 100
# Shadows
Shadows=1
# Transparent Meshes
Punchthrough=1
# Glare
Glare=1
# Shader
Shader=1
# Toon shader (press F9 to toggle) -- 0=default, 1=force on, 2=force off
NPR1=0
# Disable all 3D passes. WARNING: The extended data will be deleted unless Prevent Data Deletion is enabled. Don't enable on Intel GPUs, enable no_opd instead.
2D=0
# FrameRateManager motion rate (fps)
FRM.Motion.Rate=400
[Resolution]
# 0 = Windowed, 1 = Fast, 2 = Exclusive, 3 = Safe
# For same as screen res: -1x-1
Display=1
Width=-1
Height=-1
# Fullscreen only options
BitDepth=32
RefreshRate=60
# Set a custom internal render resolution
# Same as window: -1x-1
# HD : 1280x720
# FHD : 1920x1080
# WQHD : 2560x1440
# 4K UHD: 3840x2160
# 5K UHD: 5120x2880
# 8K UHD: 7680x4320
r.Enable=0
r.Width=-1
r.Height=-1
[Plugins]
Launcher.dva=1
TLAC.dva=1
DivaSound.dva=1
Novidia.dva=1
ShaderPatch.dva=1
@@ -0,0 +1,158 @@
#########################################
# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#
#########################################
[keyconfig]
# keyconfig.ini
# defines the input_emulator key bindings
# multiple keys are to be specified comma separated
# Options:
# Allow the user to mouse wheel scroll through the PV selection list
mouse_scroll_pv_selection = true
# The interval it takes for the emulated slider touch points to move from one contact point to another.
# In most cases, this does not need editing.
touch_slider_emulation_speed = 750.0
# Preferred Xinput controller (0-3)
xinput_preferred =0
# DirectInput Vendor ID and Product ID
# Check them in Device Manager or dxdiag.exe
VID = 046D
PID = C216
# Rumble (Xinput)
rumble = true
# Rumble intensity (Xinput)
xinput_rumble_intensity_left = 8000
xinput_rumble_intensity_right = 4000
# Pause when focus is lost
autopause = true
# Allow using slider in menus
# Recommended to enable this and remove MENU_L/R bindings if you have a real slider.
# Also needed to see slider in input test
slider_in_menus = false
# Use the hardware slider from HORI FT official controller (PS4 version)
# Requires enabling hardware slider support.
# Warning: alpha feature, may not work properly
# Recommended to remove Ds4_L_Stick_* and Ds4_R_Stick_* from button bindings (JVS_LEFT, JVS_RIGHT, MENU_L, MENU_R).
ps4_official_slider = false
# JVS Buttons:
JVS_TEST = F1
JVS_SERVICE = F2
JVS_SW1 = F11
JVS_SW2 = F12
JVS_START = Enter, Ds4_Options, XINPUT_START, MouseMiddle
JVS_TRIANGLE = W, I, Ds4_Triangle, Ds4_DPad_Up, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_Y, XINPUT_UP, XINPUT_LT, XINPUT_RT
JVS_SQUARE = A, J, Ds4_Square, Ds4_DPad_Left, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_X, XINPUT_LEFT, XINPUT_LT, XINPUT_RT, MouseX2
JVS_CROSS = S, K, Ds4_Cross, Ds4_DPad_Down, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_A, XINPUT_DOWN, XINPUT_LT, XINPUT_RT, MouseX1
JVS_CIRCLE = D, L, Ds4_Circle, Ds4_DPad_Right, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_B, XINPUT_RIGHT, XINPUT_LT, XINPUT_RT
JVS_LEFT = Left, Up, Ds4_L1, Ds4_L_Stick_Up, Ds4_R_Stick_Up, XINPUT_LS
JVS_RIGHT = Right, Down, Ds4_R1, Ds4_L_Stick_Down, Ds4_R_Stick_Down, XINPUT_RS
MENU_L = Left, Up, Ds4_L1, XINPUT_LS, Ds4_DPad_Left, Ds4_DPad_Up, XINPUT_LEFT, XINPUT_UP, Q, U, Ds4_L_Stick_Left, XINPUT_LLEFT, Ds4_L_Stick_Up, XINPUT_LUP, Ds4_R_Stick_Left, XINPUT_RLEFT, Ds4_R_Stick_Up, XINPUT_RUP
MENU_R = Right, Down, Ds4_R1, XINPUT_RS, Ds4_DPad_Right, Ds4_DPad_Down, XINPUT_RIGHT, XINPUT_DOWN, E, O, Ds4_L_Stick_Right, XINPUT_LRIGHT, Ds4_L_Stick_Down, XINPUT_LDOWN, Ds4_R_Stick_Right, XINPUT_RRIGHT, Ds4_R_Stick_Down, XINPUT_RDOWN
MENU_CIRCLE = Spacebar
TOON = F9
COIN = F10
WIREFRAME = F12
# Touch Slider:
LEFT_SIDE_SLIDE_LEFT = Q, Ds4_L_Stick_Left, XINPUT_LLEFT
LEFT_SIDE_SLIDE_RIGHT = E, Ds4_L_Stick_Right, XINPUT_LRIGHT
RIGHT_SIDE_SLIDE_LEFT = U, Ds4_R_Stick_Left, XINPUT_RLEFT
RIGHT_SIDE_SLIDE_RIGHT = O, Ds4_R_Stick_Right, XINPUT_RRIGHT
# --- KEYBOARD KEY NAMES: ---
# - Standard Keys
# uppercase "A" to "Z", "0" to "9"
# - NumPad Keys
# "NumPad0" to "NumPad9"
# "Plus", "Minus", "Divide", "Multiply"
# - Function Keys
# "F1" to "F24"
# - Shift Keys
# "LeftShift", "RightShift"
# - Control Keys
# "LeftControl", "RightControl"
# - Arrow Keys
# "Up", "Down", "Left", "Right"
# - Special Keys (may vary depending on the layout)
# "Enter", "Tab", "Backspace", "Spacebar", "Insert", "Delete", "Home", "End", "PageUp", "PageDown", "Escape"
# "Comma", "Period", "Colon", "Slash", "Tilde", "LeftBracket", "Backslash", "RightBracket", "SingleDoubleQuote", "OEM_8"
# --- MOUSE BUTTON NAMES: ---
# "MouseLeft", "MouseMiddle", "MouseRight", "MouseX1", "MouseX2"
# --- DUALSHOCK 4 BUTTON NAMES: ---
# - Face Buttons
# "Ds4_Square", "Ds4_Cross", "Ds4_Circle", "Ds4_Triangle"
# - Standard Buttons
# "Ds4_Share", "Ds4_Options", "Ds4_PS", "Ds4_Touch", "Ds4_L1", "Ds4_R1"
# - D-Pad Directions
# "Ds4_DPad_Up", "Ds4_DPad_Right", "Ds4_DPad_Down", "Ds4_DPad_Left"
# - Trigger Buttons
# "Ds4_L_Trigger", "Ds4_R_Trigger"
# - Left Joystick
# "Ds4_L_Stick_Up", "Ds4_L_Stick_Right", "Ds4_L_Stick_Down", "Ds4_L_Stick_Left", "Ds4_L3"
# - Right Joystick
# "Ds4_R_Stick_Up", "Ds4_R_Stick_Right", "Ds4_R_Stick_Down", "Ds4_R_Stick_Left", "Ds4_R3"
# --- XINPUT BUTTON NAMES: ---
# - Face Buttons
# "XINPUT_A", "XINPUT_B", "XINPUT_X", "XINPUT_Y"
# - Standard Buttons
# "XINPUT_START", "XINPUT_BACK", "XINPUT_LS"/"XINPUT_LB", "XINPUT_RS"/"XINPUT_RB"
# - D-Pad Directions
# "XINPUT_UP", "XINPUT_DOWN", "XINPUT_LEFT", "XINPUT_RIGHT"
# - Trigger Buttons
# "XINPUT_LT", "XINPUT_RT"
# - Left Joystick
# "XINPUT_LLEFT", "XINPUT_LRIGHT", "XINPUT_LUP", "XINPUT_LDOWN", "XINPUT_LSB"
# - Right Joystick
# "XINPUT_RLEFT", "XINPUT_RRIGHT", "XINPUT_RUP", "XINPUT_RDOWN", "XINPUT_RSB"
# --- Generic USB BUTTON NAMES: ---
# - Standard Buttons (Button number in "Game controller settings", max allowed 13 buttons at the moment)
# "GU_BUTTON1", "GU_BUTTON2", "GU_BUTTON3", "GU_BUTTON4", "GU_BUTTON5", "GU_BUTTON6", "GU_BUTTON7", "GU_BUTTON8", "GU_BUTTON9", "GU_BUTTON10", "GU_BUTTON11", "GU_BUTTON12", "GU_BUTTON13"
# - D-Pad Directions
# "GU_DPAD_UP", "GU_DPAD_RIGHT", "GU_DPAD_DOWN", "GU_DPAD_LEFT"
# - Left Joystick
# "GU_L_STICK_UP", "GU_L_STICK_RIGHT", "GU_L_STICK_DOWN", "GU_L_STICK_LEFT"
# - Right Joystick
# "GU_R_STICK_UP", "GU_R_STICK_RIGHT", "GU_R_STICK_DOWN", "GU_R_STICK_LEFT"
@@ -0,0 +1,64 @@
[playerdata]
#########################################
# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#
#########################################
# playerdata.ini
# defines constant values to be loaded into the PlayerData struct
# this file has to be encoded using utf-8
player_name =NO-NAME
level_name =忘れないでね私の声を
level =1
vocaloid_point=0
# IDs defined in rom/gm_plate_tbl.farc/gm_plate_id.bin
level_plate_id =0
level_plate_effect=1
# IDs same as gam_skin%3d
skin_equip =0
# Allows for song specific skin settings which can be set in the file skins.ini
use_pv_skin_equip =true
# IDs defined in rom/gm_btn_se_tbl.farc/gm_btn_se_id.bin
btn_se_equip =-1
# Allows for song specific sound effect settings which can be set in the file sfx.ini
use_pv_sfx_equip =true
# IDs defined in rom/gm_slide_se_tbl.farc/gm_slide_se_id.bin
slide_se_equip =-1
# IDs defined in rom/gm_chainslide_se_tbl.farc/gm_chainslide_se_id.bin
chainslide_se_equip =-1
slidertouch_se_equip=-1
# "Shared Set" or "Original" setting, works similarly to PSP series module selection (Updates when changed in-game)
module_equip_cmn0=0
module_equip_cmn1=0
module_equip_cmn2=0
module_equip_cmn3=0
module_equip_cmn4=0
module_equip_cmn5=0
# Allows Song Specific module selections (values update when changed in-game in the file modules.ini) (May lag on song select and menu)
use_pv_module_equip=true
# Enable button/slider sounds & volume settings
act_toggle =true
act_vol =100
act_slide_vol=100
# Show clear borders on Progress Bar for:
# Great
border_great =true
# Excellent
border_excellent =true
# Rival
border_rival=true
# Allows module selection (WARNING: It may cause lag in the main menu and other places) (May be necessary for use_pv_equip settings!)
use_card =true
# Allows module selection without card and attempts to disable module refresh when sliding in PV select to reduce CPU and IO load.
module_card_workaround =false
# Allows use of game mode modifiers (hi-speed, hidden, and sudden)
gamemode_options =true
mylist_A=
mylist_B=
mylist_C=
@@ -118,13 +118,11 @@
<ClInclude Include="Patches\patches.h" />
<ClInclude Include="Render\render-framework.h" />
<ClInclude Include="Render\render.h" />
<ClInclude Include="templates.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="Patches\patches.cpp" />
<ClCompile Include="Render\render.cpp" />
<ClCompile Include="templates.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="x64.def" />
@@ -24,9 +24,6 @@
<ClInclude Include="exception.hpp">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="templates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Patches\PatchApplier.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -59,9 +56,6 @@
<ClCompile Include="Patches\patches.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="templates.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="x64.def">
@@ -179,15 +179,6 @@ class PatchApplier710 : public PatchApplier {
InjectCode((void*)0x00000001403BABEA, { 0x75 });
printf("[Patches] Show FREE PLAY instead of CREDIT(S)\n");
if (nPDLoaderText && !nHideFreeplay)
{
InjectCode((void*)0x00000001409F61F0, { 0x50, 0x44, 0x20 });
InjectCode((void*)0x00000001409F61F3, { 0x4C, 0x6F, 0x61 });
InjectCode((void*)0x00000001409F61F6, { 0x64, 0x65, 0x72 });
InjectCode((void*)0x00000001409F61F9, { 0x20, 0x00 });
printf("[Patches] Show PD Loader text\n");
}
}
@@ -300,36 +300,4 @@ void ApplyExPatches() {
InjectCode((void*)0x0000000140578E9D, { 0xC7, 0x47, 0x68, 0x28, 0x00, 0x00, 0x00 }); // skip back button error
}
}
// modpack redirection
{
wchar_t* mpstr = NULL;
mpstr = (wchar_t*)malloc(256);
memset(mpstr, 0, 256);
GetPrivateProfileStringW(L"Mods", L"Modpack", L"", mpstr, 256, CONFIG_FILE_NAME);
std::string modpack_name(std::filesystem::path(mpstr).string());
free(mpstr);
std::cout << "[Patches] Modpack name: " << modpack_name << std::endl;
if (modpack_name != "")
{
// ram
std::string modpack_path = "modpacks\\" + modpack_name;
std::cout << "[Patches] New ram path: " << modpack_path << std::endl;
char* mpstr_path = (char*)malloc(modpack_path.size());
memcpy(mpstr_path, modpack_path.c_str(), modpack_path.size());
InjectLong((void*)0x0000000014096C120, (long)mpstr_path);
// mdata
std::string modpack_mdata = "modpacks\\" + modpack_name + "\\mdata";
std::cout << "[Patches] New mdata path: " << modpack_mdata << std::endl;
char* mpstr_mdata = (char*)malloc(modpack_mdata.size());
memcpy(mpstr_mdata, modpack_mdata.c_str(), modpack_mdata.size());
InjectCode((void*)0x000000014066CEA0, { 0x48, 0xC7, 0xC2 });
InjectInt((void*)0x000000014066CEA3, (int)mpstr_mdata);
InjectCode((void*)0x000000014066CE9C, { (unsigned char)modpack_mdata.size() });
InjectCode((void*)0x000000014066CEAE, { (unsigned char)modpack_mdata.size() });
}
}
}
@@ -67,7 +67,7 @@ void InjectLong(void* address, const long data)
VirtualProtect(address, byteCount, oldProtect, nullptr);
}
const LPCWSTR CONFIG_FILE = L"plugins\\config.ini";
const LPCWSTR CONFIG_FILE = L"plugins_config\\config.ini";
const LPCWSTR CONFIG_FILE_NAME = L".\\config.ini";
@@ -238,6 +238,17 @@ void ApplyCustomPatches(std::wstring CPATCH_FILE_STRING)
fileStream.close();
}
void ApplyVerText()
{
if (nFreeplay && !nHideFreeplay && nPDLoaderText)
{
InjectCode((void*)0x00000001409F61F0, { 0x50, 0x44, 0x20 });
InjectCode((void*)0x00000001409F61F3, { 0x4C, 0x6F, 0x61 });
InjectCode((void*)0x00000001409F61F6, { 0x64, 0x65, 0x72 });
InjectCode((void*)0x00000001409F61F9, { 0x20, 0x00 });
printf("[Patches] Show PD Loader text\n");
}
}
/*using namespace PluginConfig;
@@ -3,3 +3,4 @@ void InjectCode(void* address, const std::vector<uint8_t> data);
void ApplyPatches();
void ApplyAllCustomPatches();
void ApplyCustomPatches(std::wstring CPATCH_FILE_STRING);
void ApplyVerText();
@@ -29,7 +29,7 @@ wstring DirPath() {
return wstring(buffer).substr(0, pos);
}
wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\config.ini";
wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\config.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
int nDisplay = GetPrivateProfileIntW(L"resolution", L"display", 0, CONFIG_FILE);
+63 -43
View File
@@ -2,7 +2,6 @@
#include "exception.hpp"
#include "Patches\patches.h"
#include "Render\render.h"
#include "templates.h"
#include <VersionHelpers.h>
#include <Shlwapi.h>
#pragma comment(lib, "Shlwapi.lib")
@@ -17,6 +16,7 @@ HMODULE hm;
std::vector<std::wstring> iniPaths;
unsigned short game_version = 710;
bool allowcustomfreeplay = false;
bool iequals(std::wstring_view s1, std::wstring_view s2)
{
@@ -274,7 +274,15 @@ void LoadPlugins()
}
}
ApplyPatches();
if (allowcustomfreeplay) ApplyVerText();
if (SetCurrentDirectoryW(szSelfPath.c_str())) ApplyAllCustomPatches();
if (!allowcustomfreeplay)
{
// we want to prevent both patches and plugins from changing it, not just patches
InjectCode((void*)0x1409F61F0, { 0x46, 0x52, 0x45, 0x45, 0x20, 0x50, 0x4C, 0x41, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x28, 0x53, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });
ApplyVerText();
}
ApplyRender(hm);
}
@@ -754,72 +762,84 @@ void Init()
modulePath.resize(modulePath.find_last_of(L"/\\") + 1);
iniPaths.emplace_back(modulePath + moduleName + L".ini");
const auto CONFIG_FILE = L"plugins\\config.ini";
const auto CONFIG_FILE = L"plugins_config\\config.ini";
iniPaths.emplace_back(modulePath + CONFIG_FILE);
// move old configuration files
// should probably be handled by the yet-to-be unified config manager
MoveFileW(L"plugins\\config.ini", CONFIG_FILE);
MoveFileW(L"plugins\\components.ini", L"plugins_config\\components.ini");
MoveFileW(L"plugins\\keyconfig.ini", L"plugins_config\\keyconfig.ini");
MoveFileW(L"plugins\\playerdata.ini", L"plugins_config\\playerdata.ini");
MoveFileW(L"plugins\\CustoMixer.ini", L"plugins_config\\CustoMixer.ini");
MoveFileW(L"plugins\\DivaWig.ini", L"plugins_config\\DivaWig.ini");
MoveFileW(L"plugins\\DSCRemote.ini", L"plugins_config\\DSCRemote.ini");
MoveFileW(L"plugins\\DivaMovie.ini", L"plugins_config\\DivaMovie.ini");
MoveFileW(L"plugins\\EnhancedStageManager.ini", L"plugins_config\\EnhancedStageManager.ini");
MoveFileW(L"plugins\\DivaSound.ini", L"plugins_config\\DivaSound.ini");
MoveFileW(L"plugins\\Novidia.ini", L"plugins_config\\Novidia.ini");
MoveFileW(L"plugins\\ShaderPatchConfig.ini", L"plugins_config\\ShaderPatchConfig.ini");
MoveFileW(L"plugins\\pv_equip\\", L"plugins_config\\pv_equip\\");
// initialize configuration files.
DeleteFileW(L"plugins\\config_template.bin");
DeleteFileW(L"plugins\\components_template.bin");
DeleteFileW(L"plugins\\DivaSound_template.bin");
DeleteFileW(L"plugins\\keyconfig_template.bin");
DeleteFileW(L"plugins\\playerdata_template.bin");
DeleteFileW(L"plugins\\ShaderPatchConfig_template.bin");
// initialize configuration files
WCHAR config_pcname[MAX_COMPUTERNAME_LENGTH + 1];
GetPrivateProfileStringW(L"global", L"pc", L"", config_pcname, MAX_COMPUTERNAME_LENGTH + 1, CONFIG_FILE);
WCHAR this_pcname[MAX_COMPUTERNAME_LENGTH + 1];
DWORD count = MAX_COMPUTERNAME_LENGTH + 1;
if(GetComputerNameW(this_pcname, &count) && PathFileExistsW(CONFIG_FILE) && wcscmp(config_pcname, this_pcname)!=0)
{
auto cfgsel = MessageBoxW(nullptr, L"Incompatible configuration found. This can happen if you are upgrading.\n\nIf you are not upgrading, then this version of PD Loader was likely hacked or used on another computer.\nIt is recommended to download the latest version from the official repository and do a clean installation (delete plugins/, patches/, dnsapi.dll and/or dinput8.dll, and restore glut32.dll).\n\nRestore the default settings?", L"PD Loader", MB_YESNOCANCEL | MB_ICONWARNING);
if (cfgsel == IDYES) if(!DeleteFileW(CONFIG_FILE))
{
MessageBoxW(nullptr, L"Cannot delete config.ini.\n\nThe file might be read-only or in use (is the game still running?).", L"PD Loader", MB_OK | MB_ICONERROR);
exit(1);
}
else if(cfgsel != IDNO) exit(1);
}
if (!PathFileExistsW(CONFIG_FILE))
{
writeTemplate(config_template, CONFIG_FILE);
WritePrivateProfileStringW(L"global", L"pc", this_pcname, CONFIG_FILE);
WritePrivateProfileStringW(L"plugins", L"Launcher.dva", L"1", CONFIG_FILE);
WritePrivateProfileStringW(L"plugins", L"TLAC.dva", L"1", CONFIG_FILE);
WritePrivateProfileStringW(L"plugins", L"DivaSound.dva", L"1", CONFIG_FILE);
WritePrivateProfileStringW(L"plugins", L"Novidia.dva", L"1", CONFIG_FILE);
WritePrivateProfileStringW(L"plugins", L"ShaderPatch.dva", L"1", CONFIG_FILE);
if (!(
CreateDirectoryW(L"plugins_config", NULL) &&
WritePrivateProfileStringW(L"global", L"pc", this_pcname, CONFIG_FILE) &&
WritePrivateProfileStringW(L"patches", L"allow_custom_freeplay", L"0", CONFIG_FILE) &&
WritePrivateProfileStringW(L"plugins", L"Launcher.dva", L"1", CONFIG_FILE) &&
WritePrivateProfileStringW(L"plugins", L"TLAC.dva", L"1", CONFIG_FILE) &&
WritePrivateProfileStringW(L"plugins", L"DivaSound.dva", L"1", CONFIG_FILE) &&
WritePrivateProfileStringW(L"plugins", L"Novidia.dva", L"1", CONFIG_FILE) &&
WritePrivateProfileStringW(L"plugins", L"ShaderPatch.dva", L"1", CONFIG_FILE)
))
{
MessageBoxW(0, L"Could not install configuration files. Is the game in a read-only folder?", L"PD Loader", MB_ICONERROR);
exit(1);
}
}
const auto COMPONENTS = L"plugins\\components.ini";
if (!PathFileExistsW(COMPONENTS)) writeTemplate(components_template, COMPONENTS);
const auto KEYCONFIG = L"plugins\\keyconfig.ini";
if (!PathFileExistsW(KEYCONFIG)) writeTemplate(keyconfig_template, KEYCONFIG);
const auto PLAYERDATA = L"plugins\\playerdata.ini";
if (!PathFileExistsW(PLAYERDATA)) writeTemplate(playerdata_template, PLAYERDATA);
const auto DIVASOUND = L"plugins\\DivaSound.ini";
if (!PathFileExistsW(DIVASOUND)) writeTemplate(divasound_template, DIVASOUND);
const auto SHADERPATCHCONFIG = L"plugins\\ShaderPatchConfig.ini";
if (!PathFileExistsW(SHADERPATCHCONFIG)) writeTemplate(shaderpatchconfig_template, SHADERPATCHCONFIG);
else if(GetComputerNameW(this_pcname, &count) && wcscmp(config_pcname, this_pcname)!=0)
{
if (!(
WritePrivateProfileStringW(L"global", L"pc", this_pcname, CONFIG_FILE) &&
WritePrivateProfileStringW(L"patches", L"allow_custom_freeplay", L"0", CONFIG_FILE)
))
{
MessageBoxW(0, L"Could not update configuration files. Is the game in a read-only folder?", L"PD Loader", MB_ICONERROR);
exit(1);
}
}
else allowcustomfreeplay = GetPrivateProfileIntW(L"patches", L"allow_custom_freeplay", FALSE, CONFIG_FILE) == 1;
if (!PathFileExistsW(CONFIG_FILE) ||
!PathFileExistsW(COMPONENTS) ||
!PathFileExistsW(KEYCONFIG) ||
!PathFileExistsW(PLAYERDATA) ||
!PathFileExistsW(DIVASOUND) ||
!PathFileExistsW(SHADERPATCHCONFIG))
MessageBoxW(0, L"Could not install configuration files. Is the game in a read-only folder?", L"PD Loader", MB_ICONWARNING);
CreateDirectoryW(L"plugins\\pv_equip", NULL);
const auto eq_modules = L"plugins\\pv_equip\\modules.ini";
CreateDirectoryW(L"plugins_config\\pv_equip", NULL);
const auto eq_modules = L"plugins_config\\pv_equip\\modules.ini";
if (!PathFileExistsW(eq_modules))
{
std::ofstream stream(eq_modules);
stream << "[modules]\n# Manual editing is NOT recommended as the game will save here during gameplay";
stream.close();
}
const auto eq_sfx = L"plugins\\pv_equip\\sfx.ini";
const auto eq_sfx = L"plugins_config\\pv_equip\\sfx.ini";
if (!PathFileExistsW(eq_sfx))
{
std::ofstream stream(eq_sfx);
stream << "[SFX]\n# INI Format = ' pv.xxx.btn = sfx id (ex. 5) '\n# pv.001.btn=2 for example\n# pv.xxx.btn, pv.xxx.chain, pv.xxx.slide & pv.xxx.touch can all be assigned using the format";
stream.close();
}
const auto eq_skins = L"plugins\\pv_equip\\skins.ini";
const auto eq_skins = L"plugins_config\\pv_equip\\skins.ini";
if (!PathFileExistsW(eq_skins))
{
std::ofstream stream(eq_skins);
@@ -1,13 +0,0 @@
#include <fstream>
using namespace std;
void writeTemplate(char* cfgtemplate, const wchar_t* filename)
{
ofstream out;
out.open(filename);
out << cfgtemplate;
out.close();
return;
}
-534
View File
@@ -1,534 +0,0 @@
#pragma once
void writeTemplate(char* cfgtemplate, const wchar_t* filename);
char config_template[] =
{"#########################################\n"
"# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#\n"
"#########################################\n"
"\n"
"[Global]\n"
"# Load plugins including below options\n"
"Enable=1\n"
"# Enable built-in patches\n"
"Builtin_Patches=1\n"
"# Enable custom patches\n"
"Custom_Patches=1\n"
"# Enable built-in render\n"
"Builtin_Render=1\n"
"# PC\n"
"pc=\n"
"\n"
"[GPU]\n"
"# Force GPU model -- -1=auto, 0=Kepler, 1=Maxwell, 2=Turing, 3=Ampere\n"
"Model=-1\n"
"\n"
"[Launcher]\n"
"# Forces the launcher to be skipped, you can use the --launch parameter instead of this.\n"
"Skip=0\n"
"# Disables unsupported GPU warning dialogs.\n"
"No_GPU_Dialog=0\n"
"# Sets the dark colour scheme in the launcher.\n"
"Dark_Launcher=0\n"
"# Command line arguments\n"
"Command_Line=\n"
"# Launches divahook.bat intead of diva.exe.\n"
"Use_divahook_bat=0\n"
"# Language -- 0=auto, 1=en, 2=zh-Hans, 3=pt-BR, 4=it-IT\n"
"Launcher_Language=0\n"
"\n"
"[Patches]\n"
"# Disable movies (enable this if the game hangs when loading certain PVs)\n"
"No_Movies=0\n"
"# Enable or disable mouse cursor\n"
"Cursor=1\n"
"# Use 2 channels instead of 4 (when not using DivaSound)\n"
"Stereo=1\n"
"# Skip one or more menus -- 0=disabled, 1=guest, 2=guest+normal\n"
"Quick_Start=1\n"
"# Disable the scrolling sound effect\n"
"No_Scrolling_SFX=0\n"
"# Show \"FREE PLAY\" instead of \"CREDIT(S)\" and don't require credits\n"
"Freeplay=1\n"
"# Sing missed notes\n"
"Sing_Missed=0\n"
"# Hide the volume and SE control buttons\n"
"Hide_Volume=0\n"
"# Remove the photo controls during PV playback\n"
"No_PV_UI=0\n"
"# Hide the watermark that's usually shown in PV viewing mode\n"
"Hide_PV_Watermark=0\n"
"# Set the card reader and network status icons -- 0=default, 1=hidden, 2=error, 3=OK, 4=partial OK\n"
"Status_Icons=0\n"
"# Disable showing lyrics\n"
"No_Lyrics=0\n"
"# Disable the error banner\n"
"No_Error=1\n"
"# Hide \"CREDIT(S)\"/\"FREE PLAY\"\n"
"Hide_Freeplay=0\n"
"# Show \"PD Loader\" instead of \"FREE PLAY\"\n"
"PDLoaderText=1\n"
"# Freeze the timer\n"
"No_Timer=1\n"
"# Disable the timer sprite\n"
"No_Timer_Sprite=1\n"
"# Disable Message Bar\n"
"No_Message_Bar=0\n"
"# Disable Stage Text\n"
"No_Stage_Text=0\n"
"# Unlock PSEUDO modules (incomplete, will default to Miku)\n"
"Unlock_Pseudo=0\n"
"# Enable the card menu (incomplete, it doesn't bypass the card prompt)\n"
"Card=0\n"
"# Disable Extended Data (may break physics in some edits) AKA Skyth's no-opd patch\n"
"No_Opd=0\n"
"# Scale Debug Windows above HD internal resolution AKA somewhatlurker's dwgui patch\n"
"Dwgui_Scaling=0\n"
"# Allow using a real arcade slider attached to COM11 (or PS4 official FT controller)\n"
"Hardware_Slider=0\n"
"# Prevent data deletion\n"
"Prevent_Data_Deletion=0\n"
"\n"
"[Graphics]\n"
"# Lag Compensation\n"
"Lag_Compensation = 0\n"
"# Set to -1 to unlock the frame rate.\n"
"FPS.Limit=60\n"
"# Reduces FPS Limiter CPU usage\n"
"# (may have less consistent performance)\n"
"FPS.Limit.LightMode=1\n"
"# Enable debug warnings for lightweight limiter\n"
"FPS.Limit.Verbose=0\n"
"# Temporal Anti-Aliasing\n"
"TAA=1\n"
"# Morphological Anti-Aliasing\n"
"MLAA=1\n"
"# MAG Filter -- 0=default (bilinear), 1=nearest-neighbour, 2=sharpen, 3=cone (smooth)\n"
"MAG=0\n"
"# Depth of Field\n"
"DOF=1\n"
"# Reflections\n"
"Reflections=1\n"
"Reflect_Res_Width = 512\n"
"Reflect_Res_Height = 256\n"
"Refract_Res_Width = 512\n"
"Refract_Res_Height = 256\n"
"# Gamma -- 100=default, 125=console-like\n"
"Gamma = 100\n"
"# Shadows\n"
"Shadows=1\n"
"# Transparent Meshes\n"
"Punchthrough=1\n"
"# Glare\n"
"Glare=1\n"
"# Shader\n"
"Shader=1\n"
"# Toon shader (press F9 to toggle) -- 0=default, 1=force on, 2=force off\n"
"NPR1=0\n"
"# Disable all 3D passes. WARNING: The extended data will be deleted unless Prevent Data Deletion is enabled. Don't enable on Intel GPUs, enable no_opd instead.\n"
"2D=0\n"
"# FrameRateManager motion rate (fps)\n"
"FRM.Motion.Rate=400\n"
"\n"
"[Resolution]\n"
"# 0 = Windowed, 1 = Fast, 2 = Exclusive, 3 = Safe\n"
"# For same as screen res: -1x-1\n"
"Display=1\n"
"Width=-1\n"
"Height=-1\n"
"# Fullscreen only options\n"
"BitDepth=32\n"
"RefreshRate=60\n"
"\n"
"# Set a custom internal render resolution\n"
"# Same as window: -1x-1\n"
"# HD : 1280x720\n"
"# FHD : 1920x1080\n"
"# WQHD : 2560x1440\n"
"# 4K UHD: 3840x2160\n"
"# 5K UHD: 5120x2880\n"
"# 8K UHD: 7680x4320\n"
"r.Enable=0\n"
"r.Width=-1\n"
"r.Height=-1\n"
"\n"
};
char components_template[] =
{
"#########################################\n"
"# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#\n"
"#########################################\n"
"\n"
"# components.ini\n"
"# defines which components will be enabled\n"
"[components]\n"
"\n"
"# emulates game input through mouse and keyboard.\n"
"# controls can be set inside the keyconfig.ini file.\n"
"input_emulator = true\n"
"touch_slider_emulator = true\n"
"touch_panel_emulator = true\n"
"\n"
"# freezes the PV select timer at 39 seconds.\n"
"sys_timer = true\n"
"\n"
"# loads user defined const values from the playerdata.ini config\n"
"# and writes them to the game's PlayerData struct.\n"
"# required for modules selection\n"
"player_data_manager = true\n"
"\n"
"# adjusts 2D and 3D animations to retain their original speed at different frame rates.\n"
"frame_rate_manager = false\n"
"\n"
"# skip unnecessary DATA_INITIALIZE loading time, speed up SYSTEM_STARTUP and skip the startup WARNING message.\n"
"# further improvements can be achieved by shortening the duration of the pv_999 script file as it's test loaded during the SYSTEM_STARTUP.\n"
"fast_loader = true\n"
"\n"
"# allows for a user controllable camera which can be toggled using F3,\n"
"# can be controlled using W/A/S/D to move, SPACE/CTRL to ascend/descend, Q/E to rotate, R/F to zoom in/out\n"
"# and holding SHIFT/ALT to speed up or slow down these controls.\n"
"camera_controller = false\n"
"\n"
"# scales the framebuffer so that it will fit the current screen or window\n"
"# required to set resolutions in config.ini\n"
"scale_component = true\n"
"\n"
"# lets the user change the current game state using the F4 - F8 keys, enable the dw_gui / DATA_TESTs\n"
"# and speed up 2D animations / menu navigation by holding SHIFT + TAB.\n"
"# enabling this component is not recommended for most users.\n"
"debug_component = false\n"
"\n"
"# allows the usage of hold transfer\n"
"target_inspector = true\n"
"\n"
"# saves high scores to plugins/scores.ini\n"
"score_saver = true\n"
"\n"
"# adds a pause menu\n"
"pause = true\n"
};
char playerdata_template[] =
{
"[playerdata]\n"
"#########################################\n"
"# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#\n"
"#########################################\n"
"\n"
"# playerdata.ini\n"
"# defines constant values to be loaded into the PlayerData struct\n"
"# this file has to be encoded using utf-8\n"
"player_name =NO-NAME\n"
"level_name =忘れないでね私の声を\n"
"level =1\n"
"vocaloid_point=0\n"
"\n"
"# IDs defined in rom/gm_plate_tbl.farc/gm_plate_id.bin\n"
"level_plate_id =0\n"
"level_plate_effect=1\n"
"# IDs same as gam_skin%3d\n"
"skin_equip =0\n"
"# Allows for song specific skin settings which can be set in the file skins.ini\n"
"use_pv_skin_equip =true\n"
"# IDs defined in rom/gm_btn_se_tbl.farc/gm_btn_se_id.bin\n"
"btn_se_equip =-1\n"
"# Allows for song specific sound effect settings which can be set in the file sfx.ini\n"
"use_pv_sfx_equip =true\n"
"# IDs defined in rom/gm_slide_se_tbl.farc/gm_slide_se_id.bin\n"
"slide_se_equip =-1\n"
"# IDs defined in rom/gm_chainslide_se_tbl.farc/gm_chainslide_se_id.bin\n"
"chainslide_se_equip =-1\n"
"slidertouch_se_equip=-1\n"
"# \"Shared Set\" or \"Original\" setting, works similarly to PSP series module selection (Updates when changed in-game)\n"
"module_equip_cmn0=0\n"
"module_equip_cmn1=0\n"
"module_equip_cmn2=0\n"
"module_equip_cmn3=0\n"
"module_equip_cmn4=0\n"
"module_equip_cmn5=0\n"
"# Allows Song Specific module selections (values update when changed in-game in the file modules.ini) (May lag on song select and menu)\n"
"use_pv_module_equip=true\n"
"# Enable button/slider sounds & volume settings\n"
"act_toggle =true\n"
"act_vol =100\n"
"act_slide_vol=100\n"
"# Show clear borders on Progress Bar for:\n"
"# Great\n"
"border_great =true\n"
"# Excellent\n"
"border_excellent =true\n"
"# Rival\n"
"border_rival=true\n"
"\n"
"# Allows module selection (WARNING: It may cause lag in the main menu and other places) (May be necessary for use_pv_equip settings!)\n"
"use_card =true\n"
"\n"
"# Allows module selection without card and attempts to disable module refresh when sliding in PV select to reduce CPU and IO load.\n"
"module_card_workaround =false\n"
"\n"
"# Allows use of game mode modifiers (hi-speed, hidden, and sudden)\n"
"gamemode_options =true\n"
"\n"
"\n"
"\n"
"mylist_A=\n"
"mylist_B=\n"
"mylist_C=\n"
};
char keyconfig_template[] =
{
"#########################################\n"
"# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#\n"
"#########################################\n"
"[keyconfig]\n"
"# keyconfig.ini\n"
"# defines the input_emulator key bindings\n"
"# multiple keys are to be specified comma separated\n"
"\n"
"# Options:\n"
"\n"
"# Allow the user to mouse wheel scroll through the PV selection list\n"
"mouse_scroll_pv_selection = true\n"
"# The interval it takes for the emulated slider touch points to move from one contact point to another.\n"
"# In most cases, this does not need editing.\n"
"touch_slider_emulation_speed = 750.0\n"
"\n"
"# Preferred Xinput controller (0-3)\n"
"xinput_preferred =0\n"
"\n"
"# DirectInput Vendor ID and Product ID\n"
"# Check them in Device Manager or dxdiag.exe\n"
"VID = 046D\n"
"PID = C216\n"
"\n"
"# Rumble (Xinput)\n"
"rumble = true\n"
"\n"
"# Rumble intensity (Xinput)\n"
"xinput_rumble_intensity_left = 8000\n"
"xinput_rumble_intensity_right = 4000\n"
"\n"
"# Pause when focus is lost\n"
"autopause = true\n"
"\n"
"# Allow using slider in menus\n"
"# Recommended to enable this and remove MENU_L/R bindings if you have a real slider.\n"
"# Also needed to see slider in input test\n"
"slider_in_menus = false\n"
"\n"
"# Use the hardware slider from HORI FT official controller (PS4 version)\n"
"# Requires enabling hardware slider support.\n"
"# Warning: alpha feature, may not work properly\n"
"# Recommended to remove Ds4_L_Stick_* and Ds4_R_Stick_* from button bindings (JVS_LEFT, JVS_RIGHT, MENU_L, MENU_R).\n"
"ps4_official_slider = false\n"
"\n"
"# JVS Buttons:\n"
"JVS_TEST = F1\n"
"JVS_SERVICE = F2\n"
"JVS_SW1 = F11\n"
"JVS_SW2 = F12\n"
"\n"
"JVS_START = Enter, Ds4_Options, XINPUT_START, MouseMiddle\n"
"JVS_TRIANGLE = W, I, Ds4_Triangle, Ds4_DPad_Up, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_Y, XINPUT_UP, XINPUT_LT, XINPUT_RT\n"
"JVS_SQUARE = A, J, Ds4_Square, Ds4_DPad_Left, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_X, XINPUT_LEFT, XINPUT_LT, XINPUT_RT, MouseX2\n"
"JVS_CROSS = S, K, Ds4_Cross, Ds4_DPad_Down, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_A, XINPUT_DOWN, XINPUT_LT, XINPUT_RT, MouseX1\n"
"JVS_CIRCLE = D, L, Ds4_Circle, Ds4_DPad_Right, Ds4_L_Trigger, Ds4_R_Trigger, XINPUT_B, XINPUT_RIGHT, XINPUT_LT, XINPUT_RT\n"
"\n"
"JVS_LEFT = Left, Up, Ds4_L1, Ds4_L_Stick_Up, Ds4_R_Stick_Up, XINPUT_LS\n"
"JVS_RIGHT = Right, Down, Ds4_R1, Ds4_L_Stick_Down, Ds4_R_Stick_Down, XINPUT_RS\n"
"\n"
"MENU_L = Left, Up, Ds4_L1, XINPUT_LS, Ds4_DPad_Left, Ds4_DPad_Up, XINPUT_LEFT, XINPUT_UP, Q, U, Ds4_L_Stick_Left, XINPUT_LLEFT, Ds4_L_Stick_Up, XINPUT_LUP, Ds4_R_Stick_Left, XINPUT_RLEFT, Ds4_R_Stick_Up, XINPUT_RUP\n"
"MENU_R = Right, Down, Ds4_R1, XINPUT_RS, Ds4_DPad_Right, Ds4_DPad_Down, XINPUT_RIGHT, XINPUT_DOWN, E, O, Ds4_L_Stick_Right, XINPUT_LRIGHT, Ds4_L_Stick_Down, XINPUT_LDOWN, Ds4_R_Stick_Right, XINPUT_RRIGHT, Ds4_R_Stick_Down, XINPUT_RDOWN\n"
"MENU_CIRCLE = Spacebar\n"
"\n"
"TOON = F9\n"
"\n"
"COIN = F10\n"
"\n"
"WIREFRAME = F12\n"
"\n"
"# Touch Slider:\n"
"LEFT_SIDE_SLIDE_LEFT = Q, Ds4_L_Stick_Left, XINPUT_LLEFT\n"
"LEFT_SIDE_SLIDE_RIGHT = E, Ds4_L_Stick_Right, XINPUT_LRIGHT\n"
"\n"
"RIGHT_SIDE_SLIDE_LEFT = U, Ds4_R_Stick_Left, XINPUT_RLEFT\n"
"RIGHT_SIDE_SLIDE_RIGHT = O, Ds4_R_Stick_Right, XINPUT_RRIGHT\n"
"\n"
"# --- KEYBOARD KEY NAMES: ---\n"
"\n"
"# - Standard Keys\n"
"# uppercase \"A\" to \"Z\", \"0\" to \"9\"\n"
"\n"
"# - NumPad Keys\n"
"# \"NumPad0\" to \"NumPad9\"\n"
"# \"Plus\", \"Minus\", \"Divide\", \"Multiply\"\n"
"\n"
"# - Function Keys\n"
"# \"F1\" to \"F24\"\n"
"\n"
"# - Shift Keys\n"
"# \"LeftShift\", \"RightShift\"\n"
"\n"
"# - Control Keys\n"
"# \"LeftControl\", \"RightControl\"\n"
"\n"
"# - Arrow Keys\n"
"# \"Up\", \"Down\", \"Left\", \"Right\"\n"
"\n"
"# - Special Keys (may vary depending on the layout)\n"
"# \"Enter\", \"Tab\", \"Backspace\", \"Spacebar\", \"Insert\", \"Delete\", \"Home\", \"End\", \"PageUp\", \"PageDown\", \"Escape\"\n"
"# \"Comma\", \"Period\", \"Colon\", \"Slash\", \"Tilde\", \"LeftBracket\", \"Backslash\", \"RightBracket\", \"SingleDoubleQuote\", \"OEM_8\"\n"
"\n"
"# --- MOUSE BUTTON NAMES: ---\n"
"# \"MouseLeft\", \"MouseMiddle\", \"MouseRight\", \"MouseX1\", \"MouseX2\"\n"
"\n"
"# --- DUALSHOCK 4 BUTTON NAMES: ---\n"
"\n"
"# - Face Buttons\n"
"# \"Ds4_Square\", \"Ds4_Cross\", \"Ds4_Circle\", \"Ds4_Triangle\"\n"
"\n"
"# - Standard Buttons\n"
"# \"Ds4_Share\", \"Ds4_Options\", \"Ds4_PS\", \"Ds4_Touch\", \"Ds4_L1\", \"Ds4_R1\"\n"
"\n"
"# - D-Pad Directions\n"
"# \"Ds4_DPad_Up\", \"Ds4_DPad_Right\", \"Ds4_DPad_Down\", \"Ds4_DPad_Left\"\n"
"\n"
"# - Trigger Buttons\n"
"# \"Ds4_L_Trigger\", \"Ds4_R_Trigger\"\n"
"\n"
"# - Left Joystick\n"
"# \"Ds4_L_Stick_Up\", \"Ds4_L_Stick_Right\", \"Ds4_L_Stick_Down\", \"Ds4_L_Stick_Left\", \"Ds4_L3\"\n"
"\n"
"# - Right Joystick\n"
"# \"Ds4_R_Stick_Up\", \"Ds4_R_Stick_Right\", \"Ds4_R_Stick_Down\", \"Ds4_R_Stick_Left\", \"Ds4_R3\"\n"
"\n"
"# --- XINPUT BUTTON NAMES: ---\n"
"\n"
"# - Face Buttons\n"
"# \"XINPUT_A\", \"XINPUT_B\", \"XINPUT_X\", \"XINPUT_Y\"\n"
"\n"
"# - Standard Buttons\n"
"# \"XINPUT_START\", \"XINPUT_BACK\", \"XINPUT_LS\"/\"XINPUT_LB\", \"XINPUT_RS\"/\"XINPUT_RB\"\n"
"\n"
"# - D-Pad Directions\n"
"# \"XINPUT_UP\", \"XINPUT_DOWN\", \"XINPUT_LEFT\", \"XINPUT_RIGHT\"\n"
"\n"
"# - Trigger Buttons\n"
"# \"XINPUT_LT\", \"XINPUT_RT\"\n"
"\n"
"# - Left Joystick\n"
"# \"XINPUT_LLEFT\", \"XINPUT_LRIGHT\", \"XINPUT_LUP\", \"XINPUT_LDOWN\", \"XINPUT_LSB\"\n"
"\n"
"# - Right Joystick\n"
"# \"XINPUT_RLEFT\", \"XINPUT_RRIGHT\", \"XINPUT_RUP\", \"XINPUT_RDOWN\", \"XINPUT_RSB\"\n"
"\n"
"# --- Generic USB BUTTON NAMES: ---\n"
"\n"
"# - Standard Buttons (Button number in \"Game controller settings\", max allowed 13 buttons at the moment)\n"
"# \"GU_BUTTON1\", \"GU_BUTTON2\", \"GU_BUTTON3\", \"GU_BUTTON4\", \"GU_BUTTON5\", \"GU_BUTTON6\", \"GU_BUTTON7\", \"GU_BUTTON8\", \"GU_BUTTON9\", \"GU_BUTTON10\", \"GU_BUTTON11\", \"GU_BUTTON12\", \"GU_BUTTON13\"\n"
"\n"
"# - D-Pad Directions\n"
"# \"GU_DPAD_UP\", \"GU_DPAD_RIGHT\", \"GU_DPAD_DOWN\", \"GU_DPAD_LEFT\"\n"
"\n"
"# - Left Joystick\n"
"# \"GU_L_STICK_UP\", \"GU_L_STICK_RIGHT\", \"GU_L_STICK_DOWN\", \"GU_L_STICK_LEFT\"\n"
"\n"
"# - Right Joystick\n"
"# \"GU_R_STICK_UP\", \"GU_R_STICK_RIGHT\", \"GU_R_STICK_DOWN\", \"GU_R_STICK_LEFT\"\n"
};
char divasound_template[] =
{
"#########################################\n"
"# /!\ WARNING: DO NOT EDIT WITH NOTEPAD!#\n"
"#########################################\n"
"\n"
"[General]\n"
"# You can choose 2 channel or 4 channel mode.\n"
"# 4 channels uses front channels for speakers and rear channels as headphones.\n"
"# 2 channels only has headphones output (with in-game volume bypassed).\n"
"Channels=2\n"
"\n"
"# 16 or 24 bit integer and 32 bit float output are supported.\n"
"# If you don't know what this means, you should leave it at 16.\n"
"# On some versions of Windows floating point samples may increase latency.\n"
"Bit_Depth=16\n"
"\n"
"# This can be WASAPI, DirectSound, WASAPI_Exclusive, or ASIO.\n"
"# Only use DirectSound if WASAPI doesn't work for some reason.\n"
"# WASAPI_Exclusive may not work with some hardware, but can have lower latency.\n"
"# ASIO requires special driver support.\n"
"# ASIO doesn't use the buffer settings. Use ASIO config instead.\n"
"# For full descriptions of the backends see https://github.com/somewhatlurker/DivaSound/wiki/Backends.\n"
"Backend=WASAPI\n"
"\n"
"# If the game crashes when loading, try setting this to 0.\n"
"Alternate_Init=1\n"
"\n"
"[Buffer]\n"
"# Sets the requested period size in milliseconds.\n"
"# Try increasing this if audio stutters or desyncs.\n"
"# WASAPI will usually provide a larger period than specified.\n"
"# You can check the actual period size by enabling debug_component.\n"
"Period_Size=10\n"
"\n"
"# Sets how many periods to use.\n"
"# Fewer periods = lower latency, but it may cause issues.\n"
"# You probably shouldn't set this below 2, and increasing it probably isn't necessary.\n"
"Periods=2\n"
"\n"
"[ASIO]\n"
"# Sets the device ID.\n"
"# 0=first device(...), -1=first available device\n"
"Device=-1\n"
"\n"
"# When set to 1 the ASIO driver config will open alongside the game.\n"
"# Use this to adjust output settings, then disable it.\n"
"Show_Config=0\n"
};
char shaderpatchconfig_template[] =
{
"[Config]\n"
"# Patches to remove glitching with modern GPUs.\n"
"# Appropriate patches will automatically be selected based on your GPU.\n"
"Compat=1\n"
"\n"
"# Lyb's toon shader improvements (24 sept 2019)\n"
"# Toon_Improve: Adjusts toon shader lighting\n"
"Toon_Improve=0\n"
"# Specular Multiplier\n"
"Toon_Improve_Val1=0.9\n"
"# Specular Offset\n"
"Toon_Improve_Val2=-0.5\n"
"\n"
"# Lyb's toon shader improvements (24 sept 2019)\n"
"# Toon_Eyes_Improve: Adjusts toon shader eyes\n"
"Toon_Eyes_Improve=0\n"
"\n"
"# Lyb's toon shader improvements (24 sept 2019)\n"
"# Toon_Hair_Improve: Adjusts toon shader hair\n"
"Toon_Hair_Improve=0\n"
"# Diffuse Brightness\n"
"Toon_Hair_Improve_Val1=1.25\n"
"\n"
"# Lyb's toon shader improvements (24 sept 2019)\n"
"# Toon_Lines_Improve: Adjusts toon shader outlines\n"
"Toon_Lines_Improve=0\n"
"# ???\n"
"Toon_Lines_Improve_Val1=0.75\n"
"# Thickness Multiplier(?)\n"
"Toon_Lines_Improve_Val2=0.75\n"
"# Thickness Offset(?)\n"
"Toon_Lines_Improve_Val3=0.75\n"
"\n"
"# Debug patches:\n"
"# Nametags\n"
"# Adds comments with the shader file name to the shader text. Useful for debugging issues.\n"
"# You only need to enable one of these.\n"
"# `nametags2` is a bit faster, but the tags are placed at the end of the file and you may not like that.\n"
"Nametags1=0\n"
"Nametags2=0\n"
};
@@ -23,5 +23,5 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\CustoMixer.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\CustoMixer.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -13,5 +13,5 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\DSCRemote.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\DSCRemote.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -54,8 +54,8 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-d2FH4- /utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>..\..\..\dependencies\simpleini;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -72,9 +72,9 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..\dependencies\simpleini;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<AdditionalOptions>-d2FH4- /utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@@ -10,8 +10,9 @@
#include <mfapi.h>
#include <mferror.h>
#include <mftransform.h>
#include <SimpleIni.h>
bool forceSoftwareDecoding = false, debug = false;
bool forceSoftwareDecoding = false, forceHybridDecoding = false, debug = false;
IDirect3DDeviceManager9* deviceManager;
@@ -146,6 +147,22 @@ VTABLE_HOOK(HRESULT, IMFTransform, ProcessMessage, MFT_MESSAGE_TYPE eMessage, UL
if (SUCCEEDED(result))
INSTALL_VTABLE_HOOK(This, ProcessOutput, 25);
}
else if (!forceHybridDecoding && eMessage == MFT_MESSAGE_SET_D3D_MANAGER && result == 0)
{
static bool warn = false;
if (!warn)
{
MessageBoxW(0, L"Your system supports DXVA hardware decoding.\nDivaMovie will be disabled.\n\nIt is highly recommended to restart the game now.", L"DivaMovie", MB_ICONWARNING);
CSimpleIniW ini_reader;
ini_reader.SetUnicode(false);
ini_reader.LoadFile(MASTER_CONFIG_FILE);
ini_reader.SetValue(L"plugins", L"DivaMovie.dva", L"0");
ini_reader.SaveFile(MASTER_CONFIG_FILE);
warn = true;
}
}
return result;
}
@@ -177,6 +194,7 @@ HOOK(HRESULT, DXVA2CreateDirect3DDeviceManager, PROC_ADDRESS("dxva2.dll", "DXVA2
void loadConfig() {
forceSoftwareDecoding = GetPrivateProfileIntW(L"general", L"force_software_decoding", 0, CONFIG_FILE) > 0 ? true : false;
forceHybridDecoding = GetPrivateProfileIntW(L"general", L"force_hybrid_decoding", 0, CONFIG_FILE) > 0 ? true : false;
debug = GetPrivateProfileIntW(L"general", L"debug", 0, CONFIG_FILE) > 0 ? true : false;
}
@@ -194,7 +212,8 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserv
PluginConfig::PluginConfigOption config[] = {
{ PluginConfig::CONFIG_BOOLEAN, new PluginConfig::PluginConfigBooleanData{ L"force_software_decoding", L"general", CONFIG_FILE, L"Force Software Decoding", L"Use software decoding even on systems that support DXVA hardware decoding.", false } },
{ PluginConfig::CONFIG_BOOLEAN, new PluginConfig::PluginConfigBooleanData{ L"debug", L"general", CONFIG_FILE, L"Debug", L"Enable PRINT (possibly at the cost of performance).", false } },
{ PluginConfig::CONFIG_BOOLEAN, new PluginConfig::PluginConfigBooleanData{ L"force_hybrid_decoding", L"general", CONFIG_FILE, L"Force Hybrid Decoding", L"Do not disable DivaMovie on systems that support DXVA hardware decoding.\nCan cause issues on recent drivers.", false } },
{ PluginConfig::CONFIG_BOOLEAN, new PluginConfig::PluginConfigBooleanData{ L"debug", L"general", CONFIG_FILE, L"Debug (slow!)", L"Enable PRINT (possibly at the cost of performance).", false } },
};
extern "C" __declspec(dllexport) LPCWSTR GetPluginName(void)
@@ -19,9 +19,12 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\DivaMovie.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\DivaMovie.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
std::wstring MASTER_CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\config.ini";
LPCWSTR MASTER_CONFIG_FILE = MASTER_CONFIG_FILE_STRING.c_str();
#define PRINT(value, ...) if (debug) printf(value, __VA_ARGS__);
#define PROC_ADDRESS(libraryName, procName) \
@@ -54,7 +54,7 @@
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;miniaudio;bassasio</AdditionalIncludeDirectories>
<AdditionalOptions>-d2FH4- /utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>detours.lib;syelog.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -72,7 +72,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;miniaudio;bassasio</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<AdditionalOptions>-d2FH4- /utf-8 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
File diff suppressed because it is too large Load Diff
@@ -296,7 +296,7 @@ bool maInit()
deviceConfig = ma_device_config_init(ma_device_type_playback);
deviceConfig.playback.channels = nChannels;
deviceConfig.sampleRate = 44100;
deviceConfig.periodSizeInMilliseconds = requestBuffer; // actual result may be larger
deviceConfig.bufferSizeInMilliseconds = requestBuffer; // actual result may be larger
deviceConfig.periods = nPeriods;
deviceConfig.dataCallback = audioCallback;
deviceConfig.pUserData = NULL;
@@ -339,7 +339,7 @@ void loadConfig()
if (bitDepth != 32 && bitDepth != 24) bitDepth = 16;
requestBuffer = GetPrivateProfileIntW(L"buffer", L"period_size", 10, CONFIG_FILE);
requestBuffer = GetPrivateProfileIntW(L"buffer", L"buffer_size", 10, CONFIG_FILE);
if (requestBuffer < 0) requestBuffer = 0;
@@ -462,11 +462,11 @@ void hookedAudioInit(initClass *cls, uint64_t unk, uint64_t unk2)
if (device.playback.internalSampleRate)
{
maInternalBufferSizeInMilliseconds = (device.playback.internalPeriodSizeInFrames * device.playback.internalPeriods) * 1000 / device.playback.internalSampleRate; // because miniaudio doesn't seem to have this
printf("[DivaSound] Output period size: %d (%dms at %dHz)\n", device.playback.internalPeriodSizeInFrames, maInternalBufferSizeInMilliseconds, device.playback.internalSampleRate);
maInternalBufferSizeInMilliseconds = device.playback.internalBufferSizeInFrames * 1000 / device.playback.internalSampleRate; // because miniaudio doesn't seem to have this
printf("[DivaSound] Output buffer size: %d (%dms at %dHz)\n", device.playback.internalBufferSizeInFrames, maInternalBufferSizeInMilliseconds, device.playback.internalSampleRate);
printf("[DivaSound] Buffer periods: %d\n", device.playback.internalPeriods);
divaBufSizeInFrames = (device.playback.internalPeriodSizeInFrames * device.playback.internalPeriods) * device.sampleRate / device.playback.internalSampleRate; // +128; // 128 is just a bit extra in case resampling needs it or something. idk
divaBufSizeInFrames = device.playback.internalBufferSizeInFrames * device.sampleRate / device.playback.internalSampleRate; // +128; // 128 is just a bit extra in case resampling needs it or something. idk
divaBufSizeInMilliseconds = divaBufSizeInFrames * 1000 / device.sampleRate;
printf("[DivaSound] PDAFT buffer size: %d (%dms at %dHz)\n", divaBufSizeInFrames, divaBufSizeInMilliseconds, device.sampleRate);
}
@@ -474,11 +474,11 @@ void hookedAudioInit(initClass *cls, uint64_t unk, uint64_t unk2)
{
printf("[DivaSound] Unable to determine output sample rate. Assuming 44100Hz.\n");
maInternalBufferSizeInMilliseconds = (device.playback.internalPeriodSizeInFrames * device.playback.internalPeriods) * 1000 / 44100; // because miniaudio doesn't seem to have this
printf("[DivaSound] Output period size: %d (%dms at %dHz)\n", device.playback.internalPeriodSizeInFrames, maInternalBufferSizeInMilliseconds, 44100);
maInternalBufferSizeInMilliseconds = device.playback.internalBufferSizeInFrames * 1000 / 44100; // because miniaudio doesn't seem to have this
printf("[DivaSound] Output buffer size: %d (%dms at %dHz)\n", device.playback.internalBufferSizeInFrames, maInternalBufferSizeInMilliseconds, 44100);
printf("[DivaSound] Buffer periods: %d\n", device.playback.internalPeriods);
divaBufSizeInFrames = (device.playback.internalPeriodSizeInFrames * device.playback.internalPeriods) * device.sampleRate / 44100;
divaBufSizeInFrames = device.playback.internalBufferSizeInFrames * device.sampleRate / 44100;
divaBufSizeInMilliseconds = divaBufSizeInFrames * 1000 / device.sampleRate;
printf("[DivaSound] PDAFT buffer size: %d (%dms at %dHz)\n", divaBufSizeInFrames, divaBufSizeInMilliseconds, device.sampleRate);
}
@@ -563,7 +563,7 @@ PluginConfigOption config[] = {
{ CONFIG_BOOLEAN, new PluginConfigBooleanData{ L"alternate_init", L"general", CONFIG_FILE, L"Use new init", L"Use the full initialisation replacement.\nTry unchecking this if DivaSound seems to cause crashes.", true, false } },
{ CONFIG_SPACER, new PluginConfigSpacerData{ 8 } },
{ CONFIG_GROUP_START, new PluginConfigGroupData{ L"WASAPI Buffer Settings", 75 } },
{ CONFIG_NUMERIC, new PluginConfigNumericData{ L"period_size", L"buffer", CONFIG_FILE, L"Target Period Size:", L"Sets the target period size in ms.\nWASAPI will often ignore this and adapt to your hardware config automatically.", 10, 1, 100 } },
{ CONFIG_NUMERIC, new PluginConfigNumericData{ L"buffer_size", L"buffer", CONFIG_FILE, L"Target Buffer Size:", L"Sets the target buffer size in ms.\nWASAPI will often ignore this and adapt to your hardware config automatically.", 10, 1, 100 } },
{ CONFIG_NUMERIC, new PluginConfigNumericData{ L"periods", L"buffer", CONFIG_FILE, L"Buffer Periods:", L"Sets how often the buffer should be filled.\nFewer periods usually allows for lower latency, but lowering this may cause issues.", 2, 1, 8 } },
{ CONFIG_GROUP_END, NULL },
{ CONFIG_SPACER, new PluginConfigSpacerData{ 8 } },
@@ -228,5 +228,5 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\DivaSound.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\DivaSound.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -13,5 +13,5 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\DivaWig.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\DivaWig.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -24,5 +24,5 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\EnhancedStageManager.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\EnhancedStageManager.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -128,6 +128,7 @@
<EmbeddedResource Include="Resources.zh-Hans.restext" />
<EmbeddedResource Include="Resources.pt-BR.restext" />
<EmbeddedResource Include="Resources.it-IT.restext" />
<EmbeddedResource Include="Resources.ja-JP.restext" />
<EmbeddedResource Include="ui.resx">
<DependentUpon>ui.h</DependentUpon>
<SubType>Designer</SubType>
@@ -141,6 +142,9 @@
<EmbeddedResource Include="ui.it-IT.resx">
<DependentUpon>ui.h</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ui.ja-JP.resx">
<DependentUpon>ui.h</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Image Include="FeelsThinkMan.gif" />
@@ -6,6 +6,7 @@ en=Inglese
zh-Hans=Cinese semplificato
pt-BR=Portoghese
it-IT=Italiano
ja-JP=Giapponese
# display
DISPLAY_NAME=Visualizza:
@@ -63,6 +64,7 @@ NPR1_HINT=Shader NPR1 (non fotorealistico)\n\nPremere F9 per attivare o disattiv
2D_HINT=Disabilita tutti i passaggi 3D.\n\nAVVISO: I dati estesi verranno cancellati se "Impedisci cancellazione dati" non è abilitato. Non abilitare con GPU Intel, al suo posto abilitare "Disattiva dati estesi".
# options
Keyboard/Controller Configuration=Configurazione tastiera/controller
Default=Predefinito
Force on=Forza attivazione
Force off=Forza disattivazione
@@ -121,6 +123,8 @@ HIDE_FREEPLAY_NAME=Nascondi "FREE PLAY"/"CREDIT(S)"
HIDE_FREEPLAY_HINT=Nasconde la scritta "FREE PLAY"/"CREDIT(S)".
PDLOADERTEXT_NAME=FREE PLAY di PD Loader
PDLOADERTEXT_HINT=Mostra "PD Loader" invece di "FREE PLAY".
ALLOWCUSTOMFREEPLAY_NAME=Abilita scritte personalizzate
ALLOWCUSTOMFREEPLAY_HINT=Permette ai plugin e alle patch di cambiare "FREE PLAY"/"CREDIT(S)".
NO_TIMER_NAME=Tempo illimitato
NO_TIMER_HINT=Ferma il timer.
NO_TIMER_SPRITE_NAME=Nascondi timer
@@ -188,8 +192,8 @@ LEVEL_PLATE_ID_NAME=Targhetta:
LEVEL_PLATE_ID_HINT=Imposta l'immagine del livello (targhetta) del giocatore.
LEVEL_PLATE_EFFECT_NAME=Effetto targhetta:
LEVEL_PLATE_EFFECT_HINT=Imposta l'effetto sulla targhetta del giocatore.
SKIN_EQUIP _NAME=Skin:
SKIN_EQUIP _HINT=Imposta la skin (stile dell'interfaccia) del gioco.
SKIN_EQUIP_NAME=Skin:
SKIN_EQUIP_HINT=Imposta la skin (stile dell'interfaccia) del gioco.
BTN_SE_EQUIP_NAME=Suono pulsanti:
BTN_SE_EQUIP_HINT=Imposta l'effetto sonoro per i pulsanti.\n\n-1 = predefinito della canzone
SLIDE_SE_EQUIP_NAME=Suono scorrimento:
@@ -236,14 +240,14 @@ FAST_LOADER_SPEED_NAME=Velocità di avvio
FAST_LOADER_SPEED_HINT=Usare 4 o inferiore quando si gioca online.\nPredefinita: 39
CAMERA_CONTROLLER_NAME=Controller telecamera
CAMERA_CONTROLLER_HINT=Abilita la telecamera libera (premendo F3).\nWASD per spostarsi, Barra spaziatrice/CTRL per salire/scendere, Q/R per ruotare la visuale, R/F per l'ingrandimento.\nTenere premuto SHIFT/ALT per cambiare la velocità.
SCALE_COMPONENT_NAME=Ingranditore
SCALE_COMPONENT_NAME=Scalatura
SCALE_COMPONENT_HINT=Aumenta o riduce le dimensioni del framebuffer di uscita della grafica per riempire lo schermo o la finestra.
DEBUG_COMPONENT_NAME=Componente di debug
DEBUG_COMPONENT_HINT=Permette di cambiare lo stato del gioco (tasti F4-F8), usare l'interfaccia e i test per sviluppatori, e velocizzare animazioni e menu 2D (tenendo premuti SHIFT+TAB).
TARGET_INSPECTOR_NAME=Analizzatore bersagli
TARGET_INSPECTOR_HINT=Permette di trasferire le note mantenute.
SCORE_SAVER_NAME=Salvapunti
SCORE_SAVER_HINT=Salva i record in plugin/scores.ini.
SCORE_SAVER_HINT=Salva i record in plugins_config/scores.ini.
PAUSE_NAME=Pausa
PAUSE_HINT=Aggiunge un menu di pausa.
@@ -257,7 +261,7 @@ CONFIG=Configura
CONFIRM_SAVE_SETTINGS=Salvare le impostazioni?
CONFIRM_DISCORD_OR_GUIDE=Aprire il manuale per la risoluzione di problemi?
HOWTO_CLEAN_INSTALL=Come fare un'installazione pulita
HOWTO_CLEAN_INSTALL_HINT=Cancellare:\n- dnsapi.dll o dinput8.dll\n- patches/\n- plugins/\n\nRipristinare:\n- glut32.dll\n\nDopodiché installare PD Loader dal repository ufficiale.
HOWTO_CLEAN_INSTALL_HINT=Cancellare:\n- dnsapi.dll o dinput8.dll\n- patches/\n- plugins/\n- plugins_config/\n\nRipristinare:\n- glut32.dll\n\nDopodiché installare PD Loader dal repository ufficiale.
# gpu
GPU_WINE_DISABLE_MOVIES=(disattivare i video!)
@@ -0,0 +1,290 @@
###############################################
# framework
LANG_AUTO=自動
en=英語
zh-Hans=中国語(簡体字)
pt-BR=ポルトガル語
it-IT=イタリア語
ja-JP=日本語
# display
DISPLAY_NAME=ディスプレイ:
DISPLAY_HINT=画面のモードを設定する。\n\n\nFast: ポップアップボーダーレスのウィンドウ (Windows 10/11のフルスクリーン最適機能が有効になっている場合、スクリーンショットに問題が生じる可能性があります)\n\nExclusive: 画面を制御して、解像度やリフレッシュレートを変更することができます。アプリケーションの切り替えが難しくなります\n\nSafe: ボーダーレスのシンプルなウィンドウです。「速い」に比べると少しラグがありますが、問題が少ない
RESOLUTION_NAME=画面解像度:
RESOLUTION_HINT=ディスプレイの解像度を設定する
REFRESHRATE_NAME=リフレッシュレート:
REFRESHRATE_HINT=ディスプレイのリフレッシュレートの設定
R.ENABLE_NAME=イネーブル
R.ENABLE_HINT=カスタム内部解像度を有効または無効にする
R.RESOLUTION_NAME=解像度:
R.RESOLUTION_HINT=内部の解像度を設定する(1280x720代わりに)
MATCH_WINDOW=ウィンドウをマッチ
MATCH_SCREEN=画面をマッチ
# graphics
MODEL_NAME=NVIDIA GPU:
MODEL_HINT=お使いのNVIDIA GPUのアーキテクチャを選択して、必要な回避策を適用して。\n\n注:自動検出は現在GNU/Linuxでは動作しません
MODEL_AUTOMATIC=自動
TAA_NAME=TAA
TAA_HINT=Temporal Anti-Aliasing
MLAA_NAME=MLAA
MLAA_HINT=Morphological Anti-Aliasing
MAG_NAME=フィルター:
MAG_HINT=イメージフィルターです。\n\nBilinear: デフォルトフィルタ\nNearest-neighbor: 最もシャープだが、ブロッキー\nSharpen: シャープフィルター\nCone: スムーズフィルター
MAG_BILINEAR=バイリニア (Bilinear)
MAG_NEAREST=ニアレストネイバー (Nearest-neighbor)
MAG_SHARPEN=シャープ (Sharpen)
MAG_CONE=コーン (Cone)
DOF_NAME=Depth of Field
DOF_HINT=背景をぼかする。パフォーマンスを向上させるためには無効にして
REFLECTIONS_NAME=反射
REFLECTIONS_HINT=反射を有効にするか無効にする
REFLECT_RES_WIDTH_NAME=反射の解像度:
REFLECT_RES_WIDTH_HINT=リフレクションバッファの解像度を設定する(512x256代わりに)
REFRACT_RES_WIDTH_NAME=屈折の解像度:
REFRACT_RES_WIDTH_HINT=屈折バッファの解像度を設定する(512x256代わりに)
GAMMA_NAME=Gamma:
GAMMA_HINT=影を濃くしたい場合は、この値を大きくする。\n125に設定すると、コンソールのようなゲーム体験ができます。\n\nデフォルト値: 100
SHADOWS_NAME=影
SHADOWS_HINT=影の有効、無効にする
PUNCHTHROUGH_NAME=透過メッシュ
PUNCHTHROUGH_HINT=透過メッシュを表示する
GLARE_NAME=グレア (Glare)
GLARE_HINT=グレアを有効または無効にする
SHADER_NAME=シェーダー (Shader)
SHADER_HINT=高品質なシェーダーを有効または無効にする
NPR1_NAME=Toon (F9):
NPR1_HINT=NPR1シェーダー\n\nF9を押してオン/オフを切り替え
2D_NAME=3Dレンダリングを無効にする
2D_HINT=全ての3Dパスを無効にする。\n\n警告:「データ消去を防止」が有効になっていないと、Extended Dataが削除されます。インテル製GPUの場合はこのオプション有効にせず、代わりに「Extended Dataを無効」を有効にしてください
# options
Keyboard/Controller Configuration=キーボードとコントローラーの設定
Default=デフォルト
Force on=強制的に「有効」にする
Force off=強制的に「無効」にする
SECTION_LOADER=ローダー
SECTION_COMPATIBILITY=互換性
SECTION_PV_SELECTOR=PVセレクター
SECTION_ESM=ステージ (曲)
SECTION_UI_ELM=UI要素
SECTION_PV_PATCHES=PVパッチ
SECTION_FRAMERATE=Framerate
SECTION_CONTROLLER_OPTIONS=コントローラーの設定
SECTION_LAUNCHER=Launcher
BUILTIN_PATCHES_NAME=内蔵パッチを有効にする
BUILTIN_PATCHES_HINT=このタブのオプションを含む、内蔵パッチを有効にします
CUSTOM_PATCHES_NAME=カスタムパッチを有効にする
CUSTOM_PATCHES_HINT=すべてのカスタムパッチを有効にします
BUILTIN_RENDER_NAME=内蔵のレンダーパッチを有効にする
BUILTIN_RENDER_HINT=これにより、内蔵のレンダリングパッチが有効になります
NO_MOVIES_NAME=動画を無効にする
NO_MOVIES_HINT=ムービーを無効にする (特定のPVをロードする際にゲームがフリーズする場合は、このオプションを有効にしてください)
CURSOR_NAME=カーソル
CURSOR_HINT=マウスカーソルの有効、無効を行います
STEREO_NAME=Stereo
STEREO_HINT=オーディオチャンネル数を4から2に変更 (Diva Soundを使用しない場合)
QUICK_START_NAME=Quick Start:
Disabled=無効
Guest=ゲスト
Guest + Normal=ゲスト+ノーマル
QUICK_START_HINT=一つまたは複数のメニューをスキップします
NO_SCROLLING_SFX_NAME=スクロールSFXを無効にする
NO_SCROLLING_SFX_HINT=「スクロール」の効果音を無効にします
SING_MISSED_NAME=ミスした音を歌う
SING_MISSED_HINT=ミスした音を歌う
HIDE_VOLUME_NAME=ボリュームボタンを隠す
HIDE_VOLUME_HINT=ボリュームとSEボタンを隠す
NO_PV_UI_NAME=PV UIを無効にする
NO_PV_UI_HINT=PV再生時のフォトコントロールを解除します
HIDE_PV_WATERMARK_NAME=PVウォーターマークを隠す
HIDE_PV_WATERMARK_HINT=PV再生モードで通常表示されるウォーターマークを隠すことができます
STATUS_ICONS_NAME=右上のネットワークアイコン:
STATUS_ICONS_HINT=カードリーダーとネットワークのステータスアイコンの状態を設定します
Hidden=隠し
Error=エラー
Partial OK=部分的にOK
NO_LYRICS_NAME=歌詞を無効にする
NO_LYRICS_HINT=歌詞の表示を無効にします
NO_ERROR_NAME=エラーバナーを無効にする
NO_ERROR_HINT=アトラクット画面のエラーバナーを無効にします
ALLOWCUSTOMFREEPLAY_NAME=カスタムテキストを有効にする
ALLOWCUSTOMFREEPLAY_HINT=プラグインやパッチで「FREE PLAY」や「CREDIT(S)」を変更することができます
HIDE_FREEPLAY_NAME=「FREE PLAY」/「CREDIT(S)」を隠す
HIDE_FREEPLAY_HINT=「FREE PLAY」/「CREDIT(S)」テキストを隠す
PDLOADERTEXT_NAME=PD Loader FREE PLAY
PDLOADERTEXT_HINT=「FREE PLAY」の代わりに「PD Loader」と表示する
NO_TIMER_NAME=タイマーを一時停止する
NO_TIMER_HINT=タイマーを無効にします
NO_TIMER_SPRITE_NAME=タイマースプライトを無効にする
NO_TIMER_SPRITE_HINT=タイマースプライトを無効にします
NO_MESSAGE_BAR_NAME=メッセージバーを隠す
NO_MESSAGE_BAR_HINT=上部のメッセージバーを隠す
NO_STAGE_TEXT_NAME=ステージテキストを無効にする
NO_STAGE_TEXT_HINT=Stage 1/2/Finalを無効にする
UNLOCK_PSEUDO_NAME=「PSEUDO」モジュールをアンロックする(未完了)
UNLOCK_PSEUDO_HINT=どのようなPVでも、どのようなパフォーマーででも演奏できるようになります。\n(不完全なので、おすすめのモジュールはミクになります)
CARD_NAME=アンロックカードメニュー (未完了)
CARD_HINT=カードメニューを有効にします。\n(不完全なので、カードプロンプトを回避することはできません)
NO_OPD_NAME=Extended Dataを無効
NO_OPD_HINT=別名Skythの 「No Osage Play Data」 パッチ。\n\nスペースを節約するために、エディットで定義済みのフィジックスを無効にします。\n一部のエディットのフィジクスが乱れる場合があります
DWGUI_SCALING_NAME=デバッグウィンドウを拡大
DWGUI_SCALING_HINT=別名somewhatlurkerの 「dwgui」 パッチ。\n\nHDの内部解像度以上にデバッグウィンドウを大きくする
FREEPLAY_NAME=FREE PLAY
FREEPLAY_HINT=「CREDIT(S)」の代わりに「FREE PLAY」と表示され、クレジットを要求しなくなります
FPS.LIMIT.LIGHTMODE_NAME=軽量のリミッターを使用
FPS.LIMIT.LIGHTMODE_HINT=FPSリミッターのCPU使用量を少なくします。\nパフォーマンスが安定しない場合があります
FPS.LIMIT_NAME=FPSの制限:
FPS.LIMIT_HINT=フレームレートの制限を設定できます。1に設定すると、フレームレートの制限が解除されます
FRM.MOTION.RATE_NAME=FRM モーションのレート:
FRM.MOTION.RATE_HINT=フレーム・レート・マニジャーのコンポーネントのモーションレート(FPS)を設定します。\nより大きな値を設定すると、よりスムーズになりますが、CPUからより多くのエネルギーを必要とするため、不安定になる可能性があります
AUTOPAUSE_NAME=自動的に一時停止する
AUTOPAUSE_HINT=ゲームのウィンドウのフォーカスが失われたときに一時停止します
RUMBLE_NAME=XInputのランブル
RUMBLE_HINT=チェンスライド時のランブルを有効にします
XINPUT_RUMBLE_INTENSITY_LEFT_NAME=左モーターの強さ
XINPUT_RUMBLE_INTENSITY_LEFT_HINT=デフォルト: 8000
XINPUT_RUMBLE_INTENSITY_RIGHT_NAME=右モーターの強さ
XINPUT_RUMBLE_INTENSITY_RIGHT_HINT=デフォルト: 4000
XINPUT_PREFERRED_NAME=優先的なXInputコントローラ:
XINPUT_PREFERRED_HINT=優先的なXInputのコントローラを設定します。\n利用できない場合は、次に接続されたコントローラが使用されます
HARDWARE_SLIDER_NAME=ハードウェアスライドを使う
HARDWARE_SLIDER_HINT=リアルのアーケードスライドーを使用する場合は有効にしてください。\n(スライドをCOM11ポートに設定した場合)
PREVENT_DATA_DELETION_NAME=データ消去を防止
PREVENT_DATA_DELETION_HINT=ゲームのファイルを削除することを防ぎます
COMMAND_LINE_NAME=コマンド・ライン:
COMMAND_LINE_HINT=ランチャーを使用する際に、ゲームのコマンド・ライン引数を設定できます。\nランチャーを無効にすると、この問題は回避されます
USE_DIVAHOOK_BAT_NAME=divahook.bat/start.bat
USE_DIVAHOOK_BAT_HINT=diva.exeではなく、divahook.batまたはstart.batを起動します
DARK_LAUNCHER_NAME=ダーク・ランチャー
DARK_LAUNCHER_HINT=ランチャーのカラースキームを「ダーク」に設定します
LAUNCHER_LANGUAGE_NAME=言語:
LAUNCHER_LANGUAGE_HINT=ランチャーの言語を設定します
NO_GPU_DIALOG_NAME=GPU警告を無効にする
NO_GPU_DIALOG_HINT=サポートされていないGPUの警告ダイアログを無効にします
QUICK_START_DIVAHOOK_SAME_TIME=「Quick Start」と「divahook.bat/start.batを使う」を同時に有効にすることはできません
NO_DIVAHOOK_BAT=divahook.bat/start.batが見つかりません。\nゲームは通常/オフラインで開始されます。\n\n注:この警告を避けるために、「divahook.bat/start.batを使う」を無効にしてください
# player data
PLAYER_NAME_NAME=プレーヤー名:
PLAYER_NAME_HINT=ゲーム中に表示されるプレイヤー名
LEVEL_NAME_NAME=レベル名:
LEVEL_NAME_HINT=ゲーム中に表示されるレベル(プレート)名
LEVEL_PLATE_ID_NAME=レベルプレート:
LEVEL_PLATE_ID_HINT=レベルの背景画像(プレート)を設定します
LEVEL_PLATE_EFFECT_NAME=レベルプレートの効果:
LEVEL_PLATE_EFFECT_HINT=レベルの背景画像(プレート)に対する効果を設定します
SKIN_EQUIP_NAME=スキン:
SKIN_EQUIP_HINT=ゲームプレイのUIスキンを設定します。
BTN_SE_EQUIP_NAME=ボタンの音:
BTN_SE_EQUIP_HINT=ボタンの効果音を設定します。\n\n-1 = 曲のデフォルト
SLIDE_SE_EQUIP_NAME=スライドの音:
SLIDE_SE_EQUIP_HINT=スライドの効果音を設定します。\n\n-1 = 曲のデフォルト
CHAINSLIDE_SE_EQUIP_NAME=チェーンスライドの音:
CHAINSLIDE_SE_EQUIP_HINT=チェーンスライドの効果音を設定します。\n\n-1 = 曲のデフォルト
SLIDERTOUCH_SE_EQUIP_NAME=スライダー・タッチの音:
SLIDERTOUCH_SE_EQUIP_HINT=音符がない状態でスライドをタッチしたときの効果音を設定します。\n\n-1 = 曲のデフォルト
ACT_TOGGLE_NAME=ボタンの効果音
ACT_TOGGLE_HINT=ボタン/スライドの音を有効にします
BORDER_GREAT_NAME=Great (クリアボーダー)
BORDER_GREAT_HINT=プログレスバーに「Great」評価のクリアボーダーを表示します
BORDER_EXCELLENT_NAME=Excellent (クリアボーダー)
BORDER_EXCELLENT_HINT=プログレスバーに「Excellent」の評価を示す透明な枠を表示します
BORDER_RIVAL_NAME=Rival (クリアボーダー)
BORDER_RIVAL_HINT=プログレスバーでライバルに勝つための明確なボーダーを表示します
USE_CARD_NAME=カードを使う
USE_CARD_HINT=ICカードを有効にします。これにより、モジュールの選択が可能になります
MODULE_CARD_WORKAROUND_NAME=モジュール選択の回避策
MODULE_CARD_WORKAROUND_HINT=カードなしでのモジュール選択を可能にし、メニューのパフォーマンスを向上させようとしています。\n(BETA)
USE_PV_MODULE_EQUIP_NAME=曲に特化したモジュール
USE_PV_MODULE_EQUIP_HINT=曲ごとにモジュールを選択できます
USE_PV_SKIN_EQUIP_NAME=曲別のスキン
USE_PV_SKIN_EQUIP_HINT=曲ごとのスキン設定を可能にします。\n値はskins.iniに格納されています
USE_PV_SFX_EQUIP_NAME=曲別の効果音
USE_PV_SFX_EQUIP_HINT=曲ごとの効果音を設定できます。\n値はsfx.iniに格納されています
GAMEMODE_OPTIONS_NAME=リズム・ゲーム・オプション
GAMEMODE_OPTIONS_HINT=リズム・ゲーム・オプションの使用が可能になります (hi-speed、 hidden、 とsudden)
# components
INPUT_EMULATOR_NAME=入力のエミュレータ
INPUT_EMULATOR_HINT=キーボードやマウスによる入力をエミュレートします
TOUCH_SLIDER_EMULATOR_NAME=スライドエミュレータ
TOUCH_SLIDER_EMULATOR_HINT=キーボードやマウスでスライドをエミュレートします
TOUCH_PANEL_EMULATOR_NAME=タッチパネルのエミュレータ
TOUCH_PANEL_EMULATOR_HINT=タッチパネルをマウスでエミュレートします
PLAYER_DATA_MANAGER_NAME=プレーヤー・データ・マネージャー
PLAYER_DATA_MANAGER_HINT=ユーザーに定義の値をPlayerData構造体にロードします。\nモジュールとリズム・ゲーム・オプションに必要
FRAME_RATE_MANAGER_NAME=フレーム・レート・マニジャー
FRAME_RATE_MANAGER_HINT=異なるフレームレートでのアニメーションを正しい速度に調整します。\nFPSが60に固定されていない場合のみ必要
FAST_LOADER_NAME=速いローダー
FAST_LOADER_HINT=不要な読み込みステップをスキップまたは高速化します
FAST_LOADER_SPEED_NAME=速いローダーのスピード:
FAST_LOADER_SPEED_HINT=オンライン対戦では4以下に設定してください。\nデフォルト: 39
CAMERA_CONTROLLER_NAME=カメラの制御
CAMERA_CONTROLLER_HINT=フリーキャムを有効にする (F3でトグル).\nWASDで移動、SPACE/CTRLで上下、Q/Rでカメラの回転、R/Fでズーム。\nSHIFT/ALTを押しながらだと、移動速度が変わります
SCALE_COMPONENT_NAME=スケール・コンポーネント
SCALE_COMPONENT_HINT=グラフィックス出力のフレームバッファを、画面/ウィンドウいっぱいになるようにスケーリングします
DEBUG_COMPONENT_NAME=ディーバグ・コンポーネント
DEBUG_COMPONENT_HINT=ゲームの状態を変えることができますになる (F4-F8キー)、 devのGUIとテストを使用し、2Dアニメーション/メニューを高速化(SHIFT+TABを押しながら)
TARGET_INSPECTOR_NAME=ターゲットインスペクター
TARGET_INSPECTOR_HINT=HOLD転送を有効にします
SCORE_SAVER_NAME=スコー・セーバー
SCORE_SAVER_HINT=ハイスコアをplugins_config/scores.iniに保存します
PAUSE_NAME=ポーズ
PAUSE_HINT=ポーズメニューを追加
#plugins
CONFIG=設定
###############################################
# ui
# dialog
CONFIRM_SAVE_SETTINGS=設定を保存しておきますか?
CONFIRM_DISCORD_OR_GUIDE=トラブルシューティングのためのユーザーガイドを読んでみませんか?
HOWTO_CLEAN_INSTALL=新規インストールの方法
HOWTO_CLEAN_INSTALL_HINT=- dnsapi.dllやdinput8.dll\n- patches/\n- plugins/\n- plugins_config/\n\nを削除\n\n- glut32.dll\nを復元\n\nその後、公式リポジトリからPD Loaderをインストールします
# gpu
GPU_WINE_DISABLE_MOVIES=(動画を無効にすることを忘れずに!)
GPU_INFO_NAME=GPU情報:
GPU_AMD_NOVIDIA_NAME=問題点: AMD GPUのサポートは非公式です
GPU_AMD_NOVIDIA_HINT=AMD製のGPUはモッドなしではサポートされません。\nNovidiaはインストールされているようですが、問題があるかもしれないので注意してください
GPU_AMD_NAME=問題点: AMDとの互換性を保つためにはモッドが必要です!
GPU_AMD_HINT=AMD製のGPUはモッドなしではサポートされません。\nNovidiaは、3Dレンダリング機能を持たせることができます。\n\nNVIDIA GPUを搭載したノートパソコンをお持ちで、検出されたGPUの代わりにNVIDIA GPUを使用したい場合は、Windowsの設定またはNVIDIA Control Panelでdiva.exeがそのGPUを使用するように設定する必要があります
GPU_UNSUPPORTED_NAME=問題点: サポートされていないGPU!
GPU_UNSUPPORTED_HINT=お使いのグラフィックカードはサポートされていません。NVIDIA社製のGPUのみを推奨します(ただし、モッドではAMD社製のGPUも使用可能です)。\nGPUはGTX600シリーズ以上のNVIDIA社製をご使用ください。\n\nNVIDIA GPUを搭載したノートパソコンをお持ちで、検出されたGPUの代わりにNVIDIA GPUを使用したい場合は、Windowsの設定またはNVIDIA Control Panelでdiva.exeがそのGPUを使用するように設定する必要があります
GPU_GA_NAME=問題点: AmpereのGPUを検出しました!騒音が入る場合があります\n(クリックすると詳細が表示されます)
GPU_GA_HINT=AmpereのGPU(RTX 30xx)において、一部の重要なキャラクターシェーダーに問題があり、線や騒音が発生しました。\nShaderPatchプラグインが有効になっていることを確認してください
GPU_TU_NAME=問題点: AmpereのGPUを検出しました!騒音が入る場合があります\n(クリックすると詳細が表示されます)
GPU_TU_HINT=TuringのGPUs(GTX 16xx/RTX 20xx)において、一部の重要なキャラクターシェーダーに問題があり、線や騒音が発生しました。\nShaderPatchプラグインが有効になっていることを確認してください
GPU_GM_NEWER_NAME=問題点: 一部のステージで軽微な騒音が発生する場合があります\n(クリックすると詳細が表示されます)
GPU_GM_NEWER_HINT=MaxwellのGPU(GTX900前後)以降では、一部のマイナーなステージシェーダーで騒音が発生します。\nShaderPatchプラグインが有効になっていることを確認してください
GPU_GK_NAME=問題点: なし
GPU_GK_HINT=お使いのGPUで問題なく動作するはずです
GPU_GF_DRIVER_OLD_NAME=問題点: ドライバーが古すぎる
GPU_GF_DRIVER_OLD_HINT=お使いのGPUはゲームを実行できるはずですが、OpenGLのバージョンが古すぎるようです。\nドライバのアップデートで解決するはずです
GPU_GF_NAME=問題点: 既知の問題はありません
GPU_GF_HINT=お使いのGPUで問題なく動作するはずですが、このゲームが本来想定していたGPU(GTX 650 Ti)よりも古いものです。\nグラフィックスに問題がある場合があります。\n問題があれば報告していただければ、分析して修正することができます
GPU_TOO_NEW_NAME=問題点: お使いGPUは新しすぎるかもしれません\n(クリックすると詳細が表示されます)
GPU_TOO_NEW_HINT=お使いのGPUが新しすぎるのではないかと思われます。現在はAmpere(RTX 30xx)までしか対応していません。\n朗報:ゲームは実行可能なはずですが、シェーダーパッチ(おそらく必要)がまだサポートされていないかもしれません。\n重要なキャラクターシェーダーや、いくつかのマイナーなステージシェーダーに線や騒音が出ることがあります。\nShaderPatchが更新されるように、問題があれば報告してください。\nまた、特定のGPUワークアラウンドタイプを強制的に使用することもできます
GPU_OLD_NAME=問題点: GPUが古すぎる。3Dレンダリングが機能していない可能性があります\n(クリックすると詳細が表示されます)
GPU_OLD_HINT=お使いのGPUが非常に古く、ゲームで使用されているレンダリング技術に対応していません。\nプレイはできるかもしれませんが、グラフィックには大きな問題があると思われます。\nGTX 600シリーズ以降のGPUにアップグレードしてください
GPU_UNKNOWN_NAME=問題点: GPUアーキテクチャを検出ができません。\n(クリックすると詳細が表示されます)
GPU_UNKNOWN_HINT=あなたはNVIDIA GPUをお持ちのようですが、GPUのアーキテクチャ(種類)を確認する際に何か問題が発生しました。\nバグによるものかもしれませんが、おそらく潜在的な問題を示しているものと思われます。\nGTX 600シリーズ以降のGPUをお持ちの方に限ります。(GTX 400シリーズ以降のGPUでも動作します。)
GPU_DRIVER_ISSUES_NAME=ドライバには既知の問題があります。
GPU_DRIVER_ISSUES_HINT=使用しているグラフィックドライバには既知の問題があります。GPUベンダーのWebサイトから最新のドライバをインストールしてください
SHOW_GPU_DIALOG_HINT=このメッセージは、 「Options」 タブで無効にすることができます
@@ -6,6 +6,7 @@ en=Inglês
zh-Hans=Chinês Simplificado
pt-BR=Português
it-IT=Italiano
ja-JP=Japonês
# display
DISPLAY_NAME=Modo de Exibição:
@@ -59,6 +60,7 @@ NPR1_HINT=Shader NPR1\n\nPressione a tecla F9 para habilitar ou desabilitar.
2D_HINT=Desativa todas as passagens 3D.\n\nAviso: A menos que "Impedir Apagamento de Arquivos" esteja ligado, isso irá apagar os dados extendidos. Não ative em placas gráficas Intel, nesse caso, habilite "Desativar Dados Extendidos".
# options
Keyboard/Controller Configuration=Configuração de Teclado/Controle
Default=Padrão
Force on=Forçar "Habilitado"
Force off=Forçar "Desabilitado"
@@ -117,6 +119,8 @@ HIDE_FREEPLAY_NAME=Hide "FREE PLAY"/"CREDIT(S)"
HIDE_FREEPLAY_HINT=Esconde a linha "FREE PLAY"/"CREDIT(S)".
PDLOADERTEXT_NAME=PD Loader FREE PLAY
PDLOADERTEXT_HINT=Mostra "PD Loader" ao invés de "FREE PLAY".
ALLOWCUSTOMFREEPLAY_NAME=Permitir texto customizado
ALLOWCUSTOMFREEPLAY_HINT=Permite plugins e patches a mudar "FREE PLAY"/"CREDIT (S)".
NO_TIMER_NAME=Congelar o Temporizador
NO_TIMER_HINT=Congela/para o temporizador.
NO_TIMER_SPRITE_NAME=Desabilitar o Ícone do Temporizador
@@ -239,7 +243,7 @@ DEBUG_COMPONENT_HINT=Permite mudar o estado do jogo (teclas "F4~F8"), usando int
TARGET_INSPECTOR_NAME=Inspetor de Objetos
TARGET_INSPECTOR_HINT=Permite transferências de botões para objetos "HOLD".
SCORE_SAVER_NAME=Gerenciador de Pontuação
SCORE_SAVER_HINT=Salva as pontuações mais altas em "scores.ini".
SCORE_SAVER_HINT=Salva as pontuações mais altas em "plugins_config/scores.ini".
PAUSE_NAME=Pausa
PAUSE_HINT=Adiciona um menu de pausa.
@@ -253,7 +257,7 @@ CONFIG=Configurações
CONFIRM_SAVE_SETTINGS=Gostaria de salvar suas configurações?
CONFIRM_DISCORD_OR_GUIDE=Gostaria de ler o guia de usuário para resolução de problemas?
HOWTO_CLEAN_INSTALL=Como fazer uma instalação limpa
HOWTO_CLEAN_INSTALL_HINT=Apague:\n- dnsapi.dll ou dinput8.dll\n- patches/\n- plugins/\n\nRestaure:\n- glut32.dll\n\nE então instale o PD Loader baixado do repositório oficial.
HOWTO_CLEAN_INSTALL_HINT=Apague:\n- dnsapi.dll ou dinput8.dll\n- patches/\n- plugins/\n- plugins_config/\n\nRestaure:\n- glut32.dll\n\nE então instale o PD Loader baixado do repositório oficial.
# gpu
GPU_WINE_DISABLE_MOVIES=(lembre-se de desativar os vídeos!)
@@ -6,6 +6,7 @@ en=English
zh-Hans=Simplified Chinese
pt-BR=Portuguese
it-IT=Italian
ja-JP=Japanese
# display
DISPLAY_NAME=Display:
@@ -107,6 +108,8 @@ HIDE_FREEPLAY_NAME=Hide "FREE PLAY"/"CREDIT(S)"
HIDE_FREEPLAY_HINT=Hide the "FREE PLAY"/"CREDIT(S)" text.
PDLOADERTEXT_NAME=PD Loader FREE PLAY
PDLOADERTEXT_HINT=Show "PD Loader" instead of "FREE PLAY".
ALLOWCUSTOMFREEPLAY_NAME=Allow Custom Text
ALLOWCUSTOMFREEPLAY_HINT=Allow plugins and patches to change "FREE PLAY"/"CREDIT(S)".
NO_TIMER_NAME=Freeze Timer
NO_TIMER_HINT=Disable the timer.
NO_TIMER_SPRITE_NAME=Disable Timer Sprite
@@ -229,7 +232,7 @@ DEBUG_COMPONENT_HINT=Allows for changing game state (F4-F8 keys), using dev GUI
TARGET_INSPECTOR_NAME=Target Inspector
TARGET_INSPECTOR_HINT=Enables hold transfers.
SCORE_SAVER_NAME=Score Saver
SCORE_SAVER_HINT=Saves high scores to plugins/scores.ini.
SCORE_SAVER_HINT=Saves high scores to plugins_config/scores.ini.
PAUSE_NAME=Pause
PAUSE_HINT=Adds a pause menu.
@@ -243,7 +246,7 @@ CONFIG=Config
CONFIRM_SAVE_SETTINGS=Do you want to save your settings?
CONFIRM_DISCORD_OR_GUIDE=Would you like to read the user guide for troubleshooting?
HOWTO_CLEAN_INSTALL=How to do a clean installation
HOWTO_CLEAN_INSTALL_HINT=Delete:\n- dnsapi.dll or dinput8.dll\n- patches/\n- plugins/\n\nRestore:\n- glut32.dll\n\nThen install PD Loader from the official repository.
HOWTO_CLEAN_INSTALL_HINT=Delete:\n- dnsapi.dll or dinput8.dll\n- patches/\n- plugins/\n- plugins_config/\n\nRestore:\n- glut32.dll\n\nThen install PD Loader from the official repository.
# gpu
GPU_WINE_DISABLE_MOVIES=(remember to disable movies!)
@@ -6,6 +6,7 @@ en=英语
zh-Hans=简体中文
pt-BR=葡萄牙语
it-IT=意大利语
ja-JP=日语
# display
DISPLAY_NAME=显示模式:
@@ -238,7 +239,7 @@ CONFIG=设定
CONFIRM_SAVE_SETTINGS=是否保存设置?
CONFIRM_DISCORD_OR_GUIDE=您是否想阅读用户指南,以排除故障?
HOWTO_CLEAN_INSTALL=如何清洁安装
HOWTO_CLEAN_INSTALL_HINT=删除:\n- dnsapi.dll 或 dinput8.dll\n- patches/\n- plugins/\n\n恢复:\n- glut32.dll\n\n然后从官方仓库下载安装 PD Loader。
HOWTO_CLEAN_INSTALL_HINT=删除:\n- dnsapi.dll 或 dinput8.dll\n- patches/\n- plugins/\n- plugins_config/\n\n恢复:\n- glut32.dll\n\n然后从官方仓库下载安装 PD Loader。
#gpu
GPU_INFO_NAME=显卡信息:
+12 -10
View File
@@ -40,18 +40,19 @@ wstring DIVA_EXECUTABLE_LAUNCH_STRING = DIVA_EXECUTABLE_STRING + L" --launch";
LPWSTR DIVA_EXECUTABLE_LAUNCH = const_cast<WCHAR*>(DIVA_EXECUTABLE_LAUNCH_STRING.c_str());
wstring PLUGINS_DIR = DirPath() + L"\\plugins";
wstring PLUGINS_CONFIG_DIR = DirPath() + L"\\plugins_config";
wstring PATCHES_DIR = DirPath() + L"\\patches";
wstring CONFIG_FILE_STRING = PLUGINS_DIR + L"\\config.ini";
wstring CONFIG_FILE_STRING = PLUGINS_CONFIG_DIR + L"\\config.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
wstring COMPONENTS_FILE_STRING = PLUGINS_DIR + L"\\components.ini";
wstring COMPONENTS_FILE_STRING = PLUGINS_CONFIG_DIR + L"\\components.ini";
LPCWSTR COMPONENTS_FILE = COMPONENTS_FILE_STRING.c_str();
wstring PLAYERDATA_FILE_STRING = PLUGINS_DIR + L"\\playerdata.ini";
wstring PLAYERDATA_FILE_STRING = PLUGINS_CONFIG_DIR + L"\\playerdata.ini";
LPCWSTR PLAYERDATA_FILE = PLAYERDATA_FILE_STRING.c_str();
wstring KEYCONFIG_FILE_STRING = PLUGINS_DIR + L"\\keyconfig.ini";
wstring KEYCONFIG_FILE_STRING = PLUGINS_CONFIG_DIR + L"\\keyconfig.ini";
LPCWSTR KEYCONFIG_FILE = KEYCONFIG_FILE_STRING.c_str();
LPCWSTR GLOBAL_SECTION = L"global";
@@ -67,7 +68,7 @@ int nSkipLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"skip", FALSE, CONF
int nNoGPUDialog = GetPrivateProfileIntW(LAUNCHER_SECTION, L"no_gpu_dialog", FALSE, CONFIG_FILE);
int nLanguage = GetPrivateProfileIntW(LAUNCHER_SECTION, L"launcher_language", FALSE, CONFIG_FILE);
std::vector<LPCWSTR> languages = std::vector<LPCWSTR>({ L"LANG_AUTO", L"en", L"zh-Hans", L"pt-BR", L"it-IT"});
std::vector<LPCWSTR> languages = std::vector<LPCWSTR>({ L"LANG_AUTO", L"en", L"zh-Hans", L"pt-BR", L"it-IT", L"ja-JP"});
void SetBackCol(Control^ elem, System::Drawing::Color color, System::Windows::Forms::FlatStyle cbxStyle)
{
@@ -263,6 +264,7 @@ ConfigOptionBase* options2Array[] = {
new BooleanOption(L"no_error", PATCHES_SECTION, CONFIG_FILE, L"NO_ERROR_NAME", L"NO_ERROR_HINT", true, false),
new BooleanOption(L"hide_freeplay", PATCHES_SECTION, CONFIG_FILE, L"HIDE_FREEPLAY_NAME", L"HIDE_FREEPLAY_HINT", false, false),
new BooleanOption(L"pdloadertext", PATCHES_SECTION, CONFIG_FILE, L"PDLOADERTEXT_NAME", L"PDLOADERTEXT_HINT", true, false),
new BooleanOption(L"allow_custom_freeplay", PATCHES_SECTION, CONFIG_FILE, L"ALLOWCUSTOMFREEPLAY_NAME", L"ALLOWCUSTOMFREEPLAY_HINT", false, false),
new BooleanOption(L"no_timer", PATCHES_SECTION, CONFIG_FILE, L"NO_TIMER_NAME", L"NO_TIMER_HINT", true, false),
new BooleanOption(L"no_timer_sprite", PATCHES_SECTION, CONFIG_FILE, L"NO_TIMER_SPRITE_NAME", L"NO_TIMER_SPRITE_HINT", true, false),
new BooleanOption(L"no_message_bar", PATCHES_SECTION, CONFIG_FILE, L"NO_MESSAGE_BAR_NAME", L"NO_MESSAGE_BAR_HINT", false, false),
@@ -277,7 +279,7 @@ ConfigOptionBase* playerdataArray[] = {
new NumericOption(L"level_plate_id", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"LEVEL_PLATE_ID_NAME", L"LEVEL_PLATE_ID_HINT", 0, 0, INT_MAX),
new NumericOption(L"level_plate_effect", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"LEVEL_PLATE_EFFECT_NAME", L"LEVEL_PLATE_EFFECT_HINT", -1, -1, 2),
new NumericOption(L"skin_equip ", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"SKIN_EQUIP_NAME", L"SKIN_EQUIP_HINT", 0, 0, INT_MAX),
new NumericOption(L"skin_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"SKIN_EQUIP_NAME", L"SKIN_EQUIP_HINT", 0, 0, INT_MAX),
new NumericOption(L"btn_se_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"BTN_SE_EQUIP_NAME", L"BTN_SE_EQUIP_HINT", -1, -1, INT_MAX),
new NumericOption(L"slide_se_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"SLIDE_SE_EQUIP_NAME", L"SLIDE_SE_EQUIP_HINT", -1, -1, INT_MAX),
@@ -291,9 +293,9 @@ ConfigOptionBase* playerdataArray[] = {
new BooleanOption(L"use_card", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_CARD_NAME", L"USE_CARD_HINT", false, true),
new BooleanOption(L"module_card_workaround", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"MODULE_CARD_WORKAROUND_NAME", L"MODULE_CARD_WORKAROUND_HINT", true, true),
new BooleanOption(L"use_pv_module_equip ", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_MODULE_EQUIP_NAME", L"USE_PV_MODULE_EQUIP_HINT", false, true),
new BooleanOption(L"use_pv_skin_equip ", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_SKIN_EQUIP_NAME", L"USE_PV_SKIN_EQUIP_HINT", false, true),
new BooleanOption(L"use_pv_sfx_equip ", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_SFX_EQUIP_NAME", L"USE_PV_SFX_EQUIP_HINT", false, true),
new BooleanOption(L"use_pv_module_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_MODULE_EQUIP_NAME", L"USE_PV_MODULE_EQUIP_HINT", false, true),
new BooleanOption(L"use_pv_skin_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_SKIN_EQUIP_NAME", L"USE_PV_SKIN_EQUIP_HINT", false, true),
new BooleanOption(L"use_pv_sfx_equip", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"USE_PV_SFX_EQUIP_NAME", L"USE_PV_SFX_EQUIP_HINT", false, true),
new BooleanOption(L"gamemode_options", PLAYERDATA_SECTION, PLAYERDATA_FILE, L"GAMEMODE_OPTIONS_NAME", L"GAMEMODE_OPTIONS_HINT", true, true),
};
@@ -320,7 +322,7 @@ ConfigOptionBase* componentsArray[] = {
new BooleanOption(L"target_inspector", COMPONENTS_SECTION, COMPONENTS_FILE, L"TARGET_INSPECTOR_NAME", L"TARGET_INSPECTOR_HINT", false, true),
new BooleanOption(L"score_saver", COMPONENTS_SECTION, COMPONENTS_FILE, L"SCORE_SAVER_NAME", L"SCORE_SAVER_HINT", false, true),
new BooleanOption(L"score_saver", COMPONENTS_SECTION, COMPONENTS_FILE, L"SCORE_SAVER_NAME", L"SCORE_SAVER_HINT", true, true),
new BooleanOption(L"pause", COMPONENTS_SECTION, COMPONENTS_FILE, L"PAUSE_NAME", L"PAUSE_HINT", false, true),
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

+11 -11
View File
@@ -156,7 +156,7 @@ namespace Launcher {
ScaleHeight = CurrentScaleSize.Height / BaseScaleSize;
}
keycfg_button->Scale(ScaleWidth, ScaleHeight);
keycfg_button->Text = gcnew String("Keyboard/Controller Configuration");
keycfg_button->Text = gcnew String(i18n::GetStringFallback("Keyboard/Controller Configuration"));
keycfg_button->Click += gcnew EventHandler(this, &ui::keycfg_button_Click);
panel_Patches->Controls->Add(keycfg_button);
@@ -1033,7 +1033,7 @@ private: System::Void SaveSettings() {
}
}
private: System::Void Button_Help_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki");
}
private: System::Void Button_Launch_Click(System::Object^ sender, System::EventArgs^ e) {
@@ -1155,7 +1155,7 @@ private: System::Void button_Discord_Click(System::Object^ sender, System::Event
switch (SkinnedMessageBox::Show(this, i18n::GetStringFallback("CONFIRM_DISCORD_OR_GUIDE"), "PD Launcher", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Information))
{
case System::Windows::Forms::DialogResult::Yes:
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki");
break;
case System::Windows::Forms::DialogResult::No:
@@ -1164,7 +1164,7 @@ private: System::Void button_Discord_Click(System::Object^ sender, System::Event
}
}
private: System::Void button_github_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader");
}
private: System::Void button_Apply_Click(System::Object^ sender, System::EventArgs^ e) {
SaveSettings();
@@ -1205,15 +1205,15 @@ private: System::Void trackBar_LagCompensation_ValueChanged(System::Object^ send
private: System::Void tabPage_Resolution_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button_Wiki_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki");
}
private: System::Void trackBar_LagCompensation_Scroll(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button_Releases_page_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/releases");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/releases");
}
private: System::Void button_Instructions_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki/2%29+Installation");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki/2%29+Installation");
}
private: System::Void button_Unstable_builds_Click(System::Object^ sender, System::EventArgs^ e) {
System::Diagnostics::Process::Start("https://ci.appveyor.com/project/nastys/pd-loader/build/artifacts");
@@ -1222,23 +1222,23 @@ private: System::Void button_Clean_installation_Click(System::Object^ sender, Sy
SkinnedMessageBox::Show(this, i18n::GetStringFallback("HOWTO_CLEAN_INSTALL_HINT"), i18n::GetStringFallback("HOWTO_CLEAN_INSTALL"), MessageBoxButtons::OK, MessageBoxIcon::Information);
}
private: System::Void linkLabel_Changelog_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki/Changelog");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki/Changelog");
}
private: System::Void linkLabel_Official_Discord_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
System::Diagnostics::Process::Start("https://discord.gg/cvBVGDZ");
}
private: System::Void linkLabel_Help_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader/wiki");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader/wiki");
}
private: System::Void linkLabel_Repo_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
System::Diagnostics::Process::Start("https://notabug.org/PDModdingCommunity/PD-Loader");
System::Diagnostics::Process::Start("https://github.com/PDModdingCommunity/PD-Loader");
}
private: System::Void checkBox_nofsopt_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {
*ResolutionConfigChanged = true;
}
private: System::Void keycfg_button_Click(System::Object^ sender, System::EventArgs^ e)
{
System::Diagnostics::Process::Start("\"" + System::Environment::GetEnvironmentVariable("WINDIR") + "\\write.exe\"", "plugins\\keyconfig.ini");
System::Diagnostics::Process::Start("\"" + System::Environment::GetEnvironmentVariable("WINDIR") + "\\write.exe\"", "plugins_config\\keyconfig.ini");
}
private: System::Void linkLabel_Console_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e) {
HWND consoleHandle = GetConsoleWindow();
@@ -156,30 +156,6 @@
<data name="tabPage_Plugins.Text" xml:space="preserve">
<value>Plugin e patch</value>
</data>
<data name="button_ModRename.Text" xml:space="preserve">
<value>Rinomina</value>
</data>
<data name="button_ModRescan.Text" xml:space="preserve">
<value>Riscansiona</value>
</data>
<data name="button_ModFiles.Text" xml:space="preserve">
<value>File...</value>
</data>
<data name="checkBox_ModPatches.Text" xml:space="preserve">
<value>Plugin e patch</value>
</data>
<data name="button_ModDelete.Text" xml:space="preserve">
<value>Cancella</value>
</data>
<data name="button_ModClone.Text" xml:space="preserve">
<value>Nuovo/Clona</value>
</data>
<data name="button_ModSetActive.Text" xml:space="preserve">
<value>Attiva</value>
</data>
<data name="tabPage_Modpacks.Text" xml:space="preserve">
<value>Modpack</value>
</data>
<data name="creditsTextBox.Text" xml:space="preserve">
<value>PD Loader è inteso a scopi didattici; non per pirateria.
Gli utenti devono possedere una copia del gioco ottenuta legalmente per usare questo software. Si prega di controllare le leggi/regolamenti locali per verificare la legalità del manipolare ed estrarre dati da macchine arcade protette.
@@ -326,7 +302,7 @@ AMD compatibilty pack dependencies have additional licenses, detailed in the AMD
<value>Build instabili</value>
</data>
<data name="button_Releases_page.Text" xml:space="preserve">
<value>Pagina aggiornamenti</value>
<value>Pagina rilasci</value>
</data>
<data name="label_Update_2.Text" xml:space="preserve">
<value>Si consiglia caldamente di scaricare gli aggiornamenti direttamente dal repository ufficiale.
@@ -0,0 +1,344 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="button_Launch.Text" xml:space="preserve">
<value>開始</value>
</data>
<data name="checkBox_nofsopt.Text" xml:space="preserve">
<value>フルスクリーンの最適化を無効にする</value>
</data>
<data name="checkBox_nofsopt.ToolTip" xml:space="preserve">
<value>Windows 10/11のフルスクリーン最適化を無効にします。
は、スクリーンショットやフレームレートの問題を引き起こす可能性があります</value>
</data>
<data name="groupBox_ScreenRes.Text" xml:space="preserve">
<value>画面解像度</value>
</data>
<data name="groupBox_Lag.Text" xml:space="preserve">
<value>レイテンシー補正</value>
</data>
<data name="groupBox_Details.Text" xml:space="preserve">
<value>グラフィックス</value>
</data>
<data name="groupBox_InternalRes.Text" xml:space="preserve">
<value>内部解像度(品質)</value>
</data>
<data name="tabPage_Resolution.Text" xml:space="preserve">
<value>画像</value>
</data>
<data name="tabPage_Patches.Text" xml:space="preserve">
<value>設定</value>
</data>
<data name="tabPage_Playerdata.Text" xml:space="preserve">
<value>プレーヤー</value>
</data>
<data name="linkLabel_Console.Text" xml:space="preserve">
<value>ターミナル</value>
</data>
<data name="tabPage_Components.Text" xml:space="preserve">
<value>コンポーネンテズ</value>
</data>
<data name="tabPage_Plugins.Text" xml:space="preserve">
<value>プラグインとパッチ</value>
</data>
<data name="button_ModRename.Text" xml:space="preserve">
<value>名前の変更</value>
</data>
<data name="button_ModRescan.Text" xml:space="preserve">
<value>再スキャン</value>
</data>
<data name="button_ModFiles.Text" xml:space="preserve">
<value>ファイル...</value>
</data>
<data name="checkBox_ModPatches.Text" xml:space="preserve">
<value>プラグインとパッチ</value>
</data>
<data name="button_ModDelete.Text" xml:space="preserve">
<value>削除</value>
</data>
<data name="button_ModClone.Text" xml:space="preserve">
<value>新規/クローン</value>
</data>
<data name="button_ModSetActive.Text" xml:space="preserve">
<value>起動</value>
</data>
<data name="tabPage_Modpacks.Text" xml:space="preserve">
<value>Modpacks</value>
</data>
<data name="creditsTextBox.Text" xml:space="preserve">
<value>PD Loaderは教育目的のみであり、海賊行為を目的としたものではありません。
本ソフトウェアを使用するには、合法的に入手したゲームのダンプを所有している必要があります。
業務用ゲーム機のデータを改ざんしたり、ダンプしたりすることの合法性については
データを改ざんしたり、保護されたアーケードマシンのハードウェアからデータをダンプすることの合法性を確認してください。
プロジェクト貢献者:
***REMOVED***, Brolijah, crash5b, ona, korenkonder, Kyberal, lybxlpsv, nastys,
Nezarn, samyuu, Skyth, somewhatlurker, Stewie1.0, SwigS-27, zsccat
Japanese Translation (日本語訳) by ManMan
PD Loader and the included plugins are distributed under MIT License:
Copyright (c) Project DIVA Modding 2nd Community
Copyright (c) samyuu (nop) (original TLAC code)
Copyright (c) ThirteenAG (original Ultimate ASI Loader code)
Copyright (c) Magicial Studio
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Microsoft Detours, utilized by many plugins, is licensed under MIT License:
# Copyright (c) Microsoft Corporation
All rights reserved.
# MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Launcher, Patches, Render and TLAC plugins utilize files from FreeGLUT:
Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Pawel W. Olszta shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Pawel W. Olszta.
Launcher uses SimpleIni, licensed under MIT License:
The MIT License (MIT)
Copyright (c) 2006-2013 Brodie Thiesfield
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DivaSound uses miniaudio (public domain or MIT-0) and BASSASIO (free for
non-commercial use only)
AMD compatibilty pack dependencies have additional licenses, detailed in the AMD</value>
</data>
<data name="tabPage_Credits.Text" xml:space="preserve">
<value>クレディット</value>
</data>
<data name="linkLabel_Repo.Text" xml:space="preserve">
<value>公式リポジトリ</value>
</data>
<data name="linkLabel_Help.Text" xml:space="preserve">
<value>ヘルプ</value>
</data>
<data name="linkLabel_Official_Discord.Text" xml:space="preserve">
<value>公式Discordサーバー</value>
</data>
<data name="linkLabel_Changelog.Text" xml:space="preserve">
<value>変更履歴</value>
</data>
<data name="button_Clean_installation.Text" xml:space="preserve">
<value>新規インストール</value>
</data>
<data name="button_Instructions.Text" xml:space="preserve">
<value>説明書</value>
</data>
<data name="button_Unstable_builds.Text" xml:space="preserve">
<value>不安定なバージョン</value>
</data>
<data name="button_Releases_page.Text" xml:space="preserve">
<value>アップデートページ</value>
</data>
<data name="label_Update_2.Text" xml:space="preserve">
<value>アップデートは公式リポジトリから直接ダウンロードすることを強くお勧めします。
他の場所からPD Loaderをダウンロードした場合は、クリーンインストールをお勧めします</value>
</data>
<data name="label_Update_1.Text" xml:space="preserve">
<value>PD Loaderを定期的にアップデートする
をクリックすると、最新の修正や新機能が表示されます</value>
</data>
<data name="tabPage_Update.Text" xml:space="preserve">
<value>アップデイト</value>
</data>
<data name="button_Apply.Text" xml:space="preserve">
<value>適用</value>
</data>
</root>
@@ -157,30 +157,6 @@ podem causar problemas com capturas de tela e/ou taxa de quadros.</value>
<data name="tabPage_Plugins.Text" xml:space="preserve">
<value>Plugins e Patches</value>
</data>
<data name="button_ModRename.Text" xml:space="preserve">
<value>Renomear</value>
</data>
<data name="button_ModRescan.Text" xml:space="preserve">
<value>Re-escanear</value>
</data>
<data name="button_ModFiles.Text" xml:space="preserve">
<value>Arquivos...</value>
</data>
<data name="checkBox_ModPatches.Text" xml:space="preserve">
<value>Plugins e Patches</value>
</data>
<data name="button_ModDelete.Text" xml:space="preserve">
<value>Apagar</value>
</data>
<data name="button_ModClone.Text" xml:space="preserve">
<value>Novo/Clonar</value>
</data>
<data name="button_ModSetActive.Text" xml:space="preserve">
<value>Ativar</value>
</data>
<data name="tabPage_Modpacks.Text" xml:space="preserve">
<value>Modpacks</value>
</data>
<data name="creditsTextBox.Text" xml:space="preserve">
<value>PD Loader is intended for educational purposes only; not for piracy.
Users should possess a legally-obtained dump of the game to use this software.
@@ -192,7 +168,7 @@ Project Contributors:
Nezarn, samyuu, Skyth, somewhatlurker, Stewie1.0, SwigS-27, zsccat
Brazilian Portuguese Translation (Tradução para o Português Brasileiro): _ScarletNeko
(revised by nastys)
(revised by nastys and ManMan)
PD Loader and the included plugins are distributed under MIT License:
File diff suppressed because it is too large Load Diff
@@ -84,7 +84,7 @@ std::wstring DirPath() {
return exepath.substr(0, pos);
}
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\Novidia.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\Novidia.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -124,6 +124,6 @@ std::wstring DirPath() {
std::wstring DATA_FILE_STRING = DirPath() + L"\\plugins\\ShaderPatch.ini";
LPCWSTR DATA_FILE = DATA_FILE_STRING.c_str();
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins\\ShaderPatchConfig.ini";
std::wstring CONFIG_FILE_STRING = DirPath() + L"\\plugins_config\\ShaderPatchConfig.ini";
LPCWSTR CONFIG_FILE = CONFIG_FILE_STRING.c_str();
@@ -6,7 +6,7 @@
namespace TLAC::Components
{
const std::string COMPONENTS_CONFIG_FILE_NAME = "components.ini";
const std::string COMPONENTS_CONFIG_FILE_NAME = "..\\plugins_config\\components.ini";
// Incomplete type
struct DwGuiDisplay
@@ -18,7 +18,7 @@ namespace TLAC::Components
virtual void UpdateInput() override;
private:
const std::string COMPONENTS_CONFIG_FILE_NAME = "components.ini";
const std::string COMPONENTS_CONFIG_FILE_NAME = "..\\plugins_config\\components.ini";
int updatesPerFrame = 39;
GameState currentGameState;
@@ -16,7 +16,7 @@
#include "../Pause.h"
#include "../../Utils.h"
const std::string KEY_CONFIG_FILE_NAME = "keyconfig.ini";
const std::string KEY_CONFIG_FILE_NAME = "..\\plugins_config\\keyconfig.ini";
using namespace TLAC::Input;
using namespace TLAC::Input::KeyConfig;
@@ -19,7 +19,7 @@ using namespace TLAC::Utilities;
namespace TLAC::Components
{
const std::string KEY_CONFIG_FILE_NAME = "keyconfig.ini";
const std::string KEY_CONFIG_FILE_NAME = "..\\plugins_config\\keyconfig.ini";
TouchSliderEmulator* TouchSliderEmulator::LatestInstance;
@@ -99,7 +99,7 @@ namespace TLAC::Components
panelState = (TouchPanelState*)TASK_TOUCH_ADDRESS;
componentsManager = manager;
TLAC::FileSystem::ConfigFile config(TLAC::framework::GetModuleDirectory(), "keyconfig.ini");
TLAC::FileSystem::ConfigFile config(TLAC::framework::GetModuleDirectory(), "\\..\\plugins_config\\keyconfig.ini");
config.OpenRead();
autoPause = config.GetBooleanValue("autopause");
@@ -8,7 +8,7 @@
#include <windows.h>
#include "GameState.h"
const std::string PLAYER_DATA_FILE_NAME = "playerdata.ini";
const std::string PLAYER_DATA_FILE_NAME = "..\\plugins_config\\playerdata.ini";
static WCHAR configPath[256];
int* headitemequip = (int*)0x0000000141804CDC;
int customheaditemequip;
@@ -237,7 +237,7 @@ namespace TLAC::Components
config.TryGetValue("level_name", &customPlayerData->LevelName);
// ScoreSaver copies & declaring non-playerdata values
std::string utf8path = TLAC::framework::GetModuleDirectory() + "/playerdata.ini";
std::string utf8path = TLAC::framework::GetModuleDirectory() + "\\..\\plugins_config\\playerdata.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, configPath, 256);
customPlayerData->LevelNum = config.GetIntegerValue("level");
@@ -18,15 +18,15 @@ namespace TLAC::Components
WCHAR ScoreSaver::sfx_configPath[256];
ScoreSaver::ScoreSaver()
{
std::string utf8path = TLAC::framework::GetModuleDirectory() + "/scores.ini";
std::string utf8path = TLAC::framework::GetModuleDirectory() + "../plugins_config/scores.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, configPath, 256);
utf8path = TLAC::framework::GetModuleDirectory() + "/rivalscores.ini";
utf8path = TLAC::framework::GetModuleDirectory() + "../plugins_config/rivalscores.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, rival_configPath, 256);
utf8path = TLAC::framework::GetModuleDirectory() + "/pv_equip/modules.ini";
utf8path = TLAC::framework::GetModuleDirectory() + "../plugins_config/pv_equip/modules.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, modules_configPath, 256);
utf8path = TLAC::framework::GetModuleDirectory() + "/pv_equip/skins.ini";
utf8path = TLAC::framework::GetModuleDirectory() + "../plugins_config/pv_equip/skins.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, skins_configPath, 256);
utf8path = TLAC::framework::GetModuleDirectory() + "/pv_equip/sfx.ini";
utf8path = TLAC::framework::GetModuleDirectory() + "../plugins_config/pv_equip/sfx.ini";
MultiByteToWideChar(CP_UTF8, 0, utf8path.c_str(), -1, sfx_configPath, 256);
}
@@ -5,7 +5,7 @@
#include "../../../FileSystem/ConfigFile.h"
#include <stdio.h>
const std::string GU_CONFIG_FILE_NAME = "keyconfig.ini";
const std::string GU_CONFIG_FILE_NAME = "..\\plugins_config\\keyconfig.ini";
namespace TLAC::Input
{
@@ -12,7 +12,7 @@ namespace TLAC::Input
Xinput::Xinput()
{
TLAC::FileSystem::ConfigFile config(TLAC::framework::GetModuleDirectory(), "keyconfig.ini");
TLAC::FileSystem::ConfigFile config(TLAC::framework::GetModuleDirectory(), "..\\plugins_config\\keyconfig.ini");
config.OpenRead();
xinput_num = config.GetIntegerValue("xinput_preferred");
rumble = config.GetBooleanValue("rumble");