mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-29 12:54:15 +01:00
update some XCX mods and add some new mods
adding some new mods. sorry the character arts mod rules.txt is 11000 lines. it needs to be that way to work properly and it does currently work properly if I had better formatting I may be able to get it down to 9000 lines but not worth it also the conditional statements are so gnarly because I added support to change the mod behavior is another mod comes allong to either get a different weapon on the character or find a way arround the game preventing characters unlocking arts they shouldn't have. all it takes to activate that support is uncomment 4 pressets I was working on a similar mod for skills last year. knew what I was doing that time so formatted it cleanly and skills are less complicated than arts so it was 5000 lines but my harddrive died and I lost my motivation to return to it or graphics packs in general also hid the native aa option in the antialiasing pack that pack was all kinds of broken, aa removal didn't work, fixed that fxaa wasn't working fixed that tried to get native aa mod to not produce massive ammounts of artifacts but couldn't
This commit is contained in:
parent
46db482e22
commit
d789437df2
@ -26,47 +26,21 @@ uniform vec2 uf_fragCoordScale;
|
|||||||
#endif
|
#endif
|
||||||
// This shaders was auto-converted (and manually adjusted) from OpenGL to Cemu so expect weird code and possible errors.
|
// This shaders was auto-converted (and manually adjusted) from OpenGL to Cemu so expect weird code and possible errors.
|
||||||
|
|
||||||
// shader 59df1c7e1806366c - Anti-aliasing Shader - Dumped 1.14
|
// shader 59df1c7e1806366c - Anti-aliasing Shader - Dumped 1.21
|
||||||
|
|
||||||
#define preset 1
|
#define preset $Preset
|
||||||
#define moreaa 0.0
|
|
||||||
#define lessaa 0.0
|
|
||||||
|
|
||||||
#if (preset == 0) // Native AA Disabled
|
//#if (preset == 0) // AA Disabled
|
||||||
|
//return floatBitsToInt(0.0);
|
||||||
|
//#endif
|
||||||
|
|
||||||
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e12000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1
|
#if (preset == 1) // Native AA
|
||||||
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
layout(location = 1) in vec4 passParameterSem1;
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
int clampFI32(int v)
|
|
||||||
{
|
|
||||||
if( v == 0x7FFFFFFF )
|
|
||||||
return floatBitsToInt(1.0);
|
|
||||||
else if( v == 0xFFFFFFFF )
|
|
||||||
return floatBitsToInt(0.0);
|
|
||||||
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
|
||||||
}
|
|
||||||
float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
passPixelColor0 = texture(textureUnitPS1, passParameterSem1.xy); // textureunitps1 is the one with all the colors vs unitps0 which is red viewport
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (preset == 1) // Native AA Enabled
|
|
||||||
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4e12000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1
|
|
||||||
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf470a000 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1
|
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
|
||||||
layout(location = 1) in vec4 passParameterSem1;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
|
|
||||||
ivec2 resDim = textureSize(textureUnitPS0,0); // Retrieve texture dimensions
|
|
||||||
float resRatio = ( (float(resDim.x)/1280.0) + moreaa ) - lessaa; // retrieve resolution ratio, and calculate the total
|
|
||||||
float resX = (float(resDim.x)/1280.0);
|
|
||||||
float resY = (float(resDim.y)/720.0);
|
|
||||||
|
|
||||||
int clampFI32(int v)
|
int clampFI32(int v)
|
||||||
{
|
{
|
||||||
if( v == 0x7FFFFFFF )
|
if( v == 0x7FFFFFFF )
|
||||||
@ -104,11 +78,11 @@ activeMaskStackC[0] = true;
|
|||||||
activeMaskStackC[1] = true;
|
activeMaskStackC[1] = true;
|
||||||
vec3 cubeMapSTM;
|
vec3 cubeMapSTM;
|
||||||
int cubeMapFaceId;
|
int cubeMapFaceId;
|
||||||
R0i = floatBitsToInt(passParameterSem0 / resRatio); // Important line
|
R0i = floatBitsToInt(passParameterSem0);
|
||||||
R1i = floatBitsToInt(passParameterSem1);
|
R1i = floatBitsToInt(passParameterSem1);
|
||||||
if( activeMaskStackC[1] == true ) {
|
if( activeMaskStackC[1] == true ) {
|
||||||
R2i.xyzw = floatBitsToInt(textureGather(textureUnitPS0, intBitsToFloat(R0i.zw)).xyzw * resRatio); // Important line
|
R2i.xyzw = floatBitsToInt(textureGather(textureUnitPS0, vec2(0.0001) + intBitsToFloat(R0i.zw)).xyzw);
|
||||||
R0i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).x / resRatio); // Important line
|
R0i.x = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R1i.xy)).x);
|
||||||
}
|
}
|
||||||
if( activeMaskStackC[1] == true ) {
|
if( activeMaskStackC[1] == true ) {
|
||||||
activeMaskStack[1] = activeMaskStack[0];
|
activeMaskStack[1] = activeMaskStack[0];
|
||||||
@ -130,12 +104,12 @@ PV0i.z = R4i.z;
|
|||||||
// 3
|
// 3
|
||||||
backupReg0i = R0i.x;
|
backupReg0i = R0i.x;
|
||||||
backupReg0i = R0i.x;
|
backupReg0i = R0i.x;
|
||||||
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(uf_remappedPS[0].x) / resX); // Important line
|
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(uf_remappedPS[0].x));
|
||||||
PV1i.y = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y)));
|
PV1i.y = floatBitsToInt(max(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y)));
|
||||||
PV1i.z = floatBitsToInt(min(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z)));
|
PV1i.z = floatBitsToInt(min(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.z)));
|
||||||
// 4
|
// 4
|
||||||
R0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.y));
|
R0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.y));
|
||||||
R0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[0].y) / resY)); // Important line
|
R0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[0].y)));
|
||||||
// 5
|
// 5
|
||||||
backupReg0i = R0i.x;
|
backupReg0i = R0i.x;
|
||||||
predResult = (intBitsToFloat(R0i.w) > intBitsToFloat(backupReg0i));
|
predResult = (intBitsToFloat(R0i.w) > intBitsToFloat(backupReg0i));
|
||||||
@ -162,8 +136,8 @@ R127i.z = 0;
|
|||||||
PS0i = R127i.z;
|
PS0i = R127i.z;
|
||||||
// 1
|
// 1
|
||||||
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(-(1.0),1.0,-(1.0),1.0)));
|
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),intBitsToFloat(R2i.w)),vec4(-(1.0),1.0,-(1.0),1.0)));
|
||||||
PV1i.x = tempi.x; // Important
|
PV1i.x = tempi.x;
|
||||||
PV1i.y = tempi.x; // Important
|
PV1i.y = tempi.x;
|
||||||
PV1i.z = tempi.x;
|
PV1i.z = tempi.x;
|
||||||
PV1i.w = tempi.x;
|
PV1i.w = tempi.x;
|
||||||
R127i.y = tempi.x;
|
R127i.y = tempi.x;
|
||||||
@ -268,25 +242,27 @@ R4i.z = ((PV0i.w == 0)?(R126i.z):(R126i.w));
|
|||||||
// export
|
// export
|
||||||
passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
|
passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if (preset == 2) // Nvidia FXAA Enabled
|
#if (preset == 2) // Nvidia FXAA Enabled
|
||||||
|
|
||||||
/*-----------------------------settings-------------------------------------*/
|
/*-----------------------------settings-------------------------------------*/
|
||||||
|
|
||||||
#define Subpix 0.75 //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
|
#define Subpix $subPix //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
|
||||||
#define EdgeThreshold 0.166 //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
|
#define EdgeThreshold $edgeThreshold //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
|
||||||
#define EdgeThresholdMin 0.0312 //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.
|
#define EdgeThresholdMin $edgeThresholdMin //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#define FXAA_PC 1
|
#define FXAA_PC 1
|
||||||
#define FXAA_GLSL_130 1
|
#define FXAA_GLSL_130 1
|
||||||
#define FXAA_QUALITY_PRESET 14
|
#define FXAA_QUALITY_PRESET $FXAAQUALITYPRESET
|
||||||
|
|
||||||
#define FXAA_GREEN_AS_LUMA 1
|
#define FXAA_GREEN_AS_LUMA $FXAAGREENASLUMA
|
||||||
#define FXAA_DISCARD 0
|
#define FXAA_DISCARD $FXAADISCARD
|
||||||
#define FXAA_GATHER4_ALPHA 0 // Needs #extension GL_ARB_gpu_shader5 : enable
|
#define FXAA_GATHER4_ALPHA 0 // Needs #extension GL_ARB_gpu_shader5 : enable
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
@ -0,0 +1,316 @@
|
|||||||
|
[XCX_AntiAliasing]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
str_AntiAliasing: ;= ;0x3D
|
||||||
|
.string "AntiAliasing=" ;0x416E7469416C696173696E673D ;41 6E 74 69 41 6C 69 61 73 69 6E 67 3D
|
||||||
|
str_AA_Sharpness:
|
||||||
|
.string "AA_Sharpness=" ;0x41415F53686172706E6573733D ;41 41 5F 53 68 61 72 70 6E 65 73 73 3D
|
||||||
|
str_AA_Range:
|
||||||
|
.string "AA_Range=" ;0x41415F52616E67653D ;41 41 5F 52 61 6E 67 65 3D
|
||||||
|
str_AA_Threshold:
|
||||||
|
.string "AA_Threshold=" ;0x41415F5468726573686F6C643D ;41 41 5F 54 68 72 65 73 68 6F 6C 64 3D
|
||||||
|
str_AA_ThresholdMin:
|
||||||
|
.string "AA_ThresholdMin=";0x41415F5468726573686F6C644D696E3D ;41 41 5F 54 68 72 65 73 68 6F 6C 64 4D 69 6E 3D
|
||||||
|
|
||||||
|
str_AA_floating_precision:
|
||||||
|
.string "%.*f"
|
||||||
|
|
||||||
|
AAEnable:
|
||||||
|
.uint $AAEnable
|
||||||
|
AASharpness:
|
||||||
|
.float $AASharpness
|
||||||
|
AARange:
|
||||||
|
.float $AARange
|
||||||
|
AAThreshold:
|
||||||
|
.float $AAThreshold
|
||||||
|
AAThresholdMin:
|
||||||
|
.float $AAThresholdMin
|
||||||
|
|
||||||
|
; r22 == 0x23f0a100
|
||||||
|
;Free registers that do not need to be restored:
|
||||||
|
; r26 r25 r24 r28 r10
|
||||||
|
|
||||||
|
;creates a copy of the ini file so we can fix it after we edit it
|
||||||
|
_makeCopyofINIAA:
|
||||||
|
addi r10, r22, 0x1200-4
|
||||||
|
li r24, 0x1F2
|
||||||
|
_forLoopMakeCopyofINIAA:
|
||||||
|
lwz r28, -0x1200+4(r10)
|
||||||
|
stwu r28, 4(r10)
|
||||||
|
addic. r24, r24, -1
|
||||||
|
bne+ _forLoopMakeCopyofINIAA
|
||||||
|
blr
|
||||||
|
|
||||||
|
;reads the file to check for setting string
|
||||||
|
;gets the ram address of where the setting starts (r10)
|
||||||
|
_CheckForINIAASetting:
|
||||||
|
or r26, r25, r25
|
||||||
|
addi r10, r22, -1
|
||||||
|
_whileLoopSearchSettingAA:
|
||||||
|
lbzu r28, 1(r10)
|
||||||
|
lbz r24, 0(r25)
|
||||||
|
cmpwi r28, 0 ;if this activates the setting was not found
|
||||||
|
beq- _ExitEditINIforAAmod
|
||||||
|
cmpw r28, r24
|
||||||
|
beq- _Equal_SettingSearchAA
|
||||||
|
or r25, r26, r26
|
||||||
|
b _whileLoopSearchSettingAA
|
||||||
|
_Equal_SettingSearchAA:
|
||||||
|
lbzu r24, 1(r25)
|
||||||
|
cmpwi r24, 0 ;every string ends with a null byte
|
||||||
|
bne+ _whileLoopSearchSettingAA
|
||||||
|
stw r10, 0x1200+0x800+40(r22)
|
||||||
|
|
||||||
|
;gets the ram address of where the setting ends (r24)
|
||||||
|
_CheckForEndofSettingAA:
|
||||||
|
addi r24, r10, 0x1200
|
||||||
|
_whileLoop_FindEndOfSettingAA_0D:
|
||||||
|
lbzu r28, 1(r24)
|
||||||
|
cmpwi r28, 0x0D
|
||||||
|
bne+ _whileLoop_FindEndOfSettingAA_0D
|
||||||
|
_whileLoop_FindEndOfSettingAA_0A:
|
||||||
|
lbzu r28, 1(r24)
|
||||||
|
cmpwi r28, 0x0A
|
||||||
|
bne- _whileLoop_FindEndOfSettingAA_0D
|
||||||
|
blr
|
||||||
|
|
||||||
|
;copies the trailing part of the ini file copy back to the real ini file
|
||||||
|
_ChangeAntiAliasingSettingINIMod:
|
||||||
|
lwz r10, 0x1200+0x800+40(r22)
|
||||||
|
_whileLoopCheckAASettingLength:
|
||||||
|
lbzu r26, 1(r10)
|
||||||
|
cmpwi r26, 0
|
||||||
|
bne+ _whileLoopCheckAASettingLength
|
||||||
|
subi r24, r24, 4+1
|
||||||
|
subi r10, r10, 4
|
||||||
|
_whileLoopCopyINIAAModBackIn:
|
||||||
|
lwzu r26, 4(r24)
|
||||||
|
stwu r26, 4(r10)
|
||||||
|
andi. r25, r26, 0xFF
|
||||||
|
bne+ _whileLoopCopyINIAAModBackIn
|
||||||
|
blr
|
||||||
|
|
||||||
|
;deletes the copy of the ini file we made as to not mess with the games ram
|
||||||
|
_DeleteINIAACopy:
|
||||||
|
addi r10, r22, 0x1200-4
|
||||||
|
li r28, 0
|
||||||
|
_whileLoopDeleteINIAACopy:
|
||||||
|
stwu r28, 4(r10)
|
||||||
|
lwz r24, 4(r10)
|
||||||
|
cmpwi r24, 0
|
||||||
|
bne+ _whileLoopDeleteINIAACopy
|
||||||
|
blr
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_EditINIforAAmod:
|
||||||
|
;back up link register
|
||||||
|
mflr r26
|
||||||
|
stw r26, 0x1200+0x800+128(r22)
|
||||||
|
;AntiAliasing enable Setting ---------------------------------------------------------
|
||||||
|
_ChangeAAEnabledSettingINIMod:
|
||||||
|
bl _makeCopyofINIAA
|
||||||
|
|
||||||
|
;check for AntiAliasing=
|
||||||
|
;Load address of the "AntiAliasing=" string
|
||||||
|
lis r25, str_AntiAliasing@ha
|
||||||
|
ori r25, r25, str_AntiAliasing@l
|
||||||
|
;gets the ram address of where the setting starts and ends (starts r10, ends r24)
|
||||||
|
bl _CheckForINIAASetting
|
||||||
|
|
||||||
|
;loads the user preset AA enable setting and puts it into memory
|
||||||
|
lis r28, AAEnable@ha
|
||||||
|
lwz r28, AAEnable@l(r28)
|
||||||
|
stw r28, 1(r10)
|
||||||
|
;makes sure there is a null byte
|
||||||
|
li r26, 0
|
||||||
|
stb r26, 5(r10)
|
||||||
|
;fixes ini file after we mess it up
|
||||||
|
bl _whileLoopCheckAASettingLength
|
||||||
|
|
||||||
|
;checks if AA setting is set to native and if not exits the mod
|
||||||
|
_CheckifNativeAA:
|
||||||
|
li r25, $Preset
|
||||||
|
cmpwi r25, 1
|
||||||
|
bne _ExitEditINIforAAmod
|
||||||
|
|
||||||
|
|
||||||
|
;AA_Sharpness Setting ---------------------------------------------------------
|
||||||
|
_ChangeAASharpnessSettingINIMod:
|
||||||
|
;deletes our copy of the file and then recopies the file
|
||||||
|
;this is done because I don't feel like finding a better way of updating the file
|
||||||
|
bl _DeleteINIAACopy
|
||||||
|
bl _makeCopyofINIAA
|
||||||
|
|
||||||
|
;check for AA_Sharpness=
|
||||||
|
lis r25, str_AA_Sharpness@ha
|
||||||
|
ori r25, r25, str_AA_Sharpness@l
|
||||||
|
;gets the ram address of where the setting starts and ends (starts r10, ends r24)
|
||||||
|
bl _CheckForINIAASetting
|
||||||
|
|
||||||
|
;loads arguments for sprintf into r3, r4, and f1
|
||||||
|
lis r3, AASharpness@ha
|
||||||
|
lfs f1, AASharpness@l(r3)
|
||||||
|
addi r3, r10, 1
|
||||||
|
lis r4, str_AA_floating_precision@ha
|
||||||
|
ori r4, r4, str_AA_floating_precision@l
|
||||||
|
;updated the format string with the user specified decimal precision
|
||||||
|
li r25, 0x30+$AASharpnessDecimalPlaces
|
||||||
|
stb r25, 2(r4)
|
||||||
|
;sets condition register and branches to sprintf to convert the float in f1 to a string
|
||||||
|
;at the memory address in r3, using the string format pointed to by r4
|
||||||
|
CREQV 4*cr1+eq, 4*cr1+eq, 4*cr1+eq
|
||||||
|
mtctr r29 ;bl sprintf
|
||||||
|
bctrl
|
||||||
|
|
||||||
|
bl _ChangeAntiAliasingSettingINIMod
|
||||||
|
|
||||||
|
;AA_Range Setting ---------------------------------------------------------
|
||||||
|
_ChangeAARangeSettingINIMod:
|
||||||
|
bl _DeleteINIAACopy
|
||||||
|
bl _makeCopyofINIAA
|
||||||
|
|
||||||
|
lis r25, str_AA_Range@ha
|
||||||
|
ori r25, r25, str_AA_Range@l
|
||||||
|
bl _CheckForINIAASetting
|
||||||
|
|
||||||
|
lis r3, AARange@ha
|
||||||
|
lfs f1, AARange@l(r3)
|
||||||
|
addi r3, r10, 1
|
||||||
|
lis r4, str_AA_floating_precision@ha
|
||||||
|
ori r4, r4, str_AA_floating_precision@l
|
||||||
|
li r25, 0x30+$AARangeDecimalPlaces
|
||||||
|
stb r25, 2(r4)
|
||||||
|
CREQV 4*cr1+eq, 4*cr1+eq, 4*cr1+eq
|
||||||
|
mtctr r29 ;bl sprintf
|
||||||
|
bctrl
|
||||||
|
|
||||||
|
bl _ChangeAntiAliasingSettingINIMod
|
||||||
|
|
||||||
|
;AA_Threshold Setting ---------------------------------------------------------
|
||||||
|
_ChangeAAThresholdSettingINIMod:
|
||||||
|
bl _DeleteINIAACopy
|
||||||
|
bl _makeCopyofINIAA
|
||||||
|
|
||||||
|
lis r25, str_AA_Threshold@ha
|
||||||
|
ori r25, r25, str_AA_Threshold@l
|
||||||
|
bl _CheckForINIAASetting
|
||||||
|
|
||||||
|
lis r3, AAThreshold@ha
|
||||||
|
lfs f1, AAThreshold@l(r3)
|
||||||
|
addi r3, r10, 1
|
||||||
|
lis r4, str_AA_floating_precision@ha
|
||||||
|
ori r4, r4, str_AA_floating_precision@l
|
||||||
|
li r25, 0x30+$AAThresholdDecimalPlaces
|
||||||
|
stb r25, 2(r4)
|
||||||
|
CREQV 4*cr1+eq, 4*cr1+eq, 4*cr1+eq
|
||||||
|
mtctr r29 ;bl sprintf
|
||||||
|
bctrl
|
||||||
|
|
||||||
|
bl _ChangeAntiAliasingSettingINIMod
|
||||||
|
|
||||||
|
;AA_ThresholdMin Setting ---------------------------------------------------------
|
||||||
|
_ChangeAAThresholdMINSettingINIMod:
|
||||||
|
bl _DeleteINIAACopy
|
||||||
|
bl _makeCopyofINIAA
|
||||||
|
|
||||||
|
lis r25, str_AA_ThresholdMin@ha
|
||||||
|
ori r25, r25, str_AA_ThresholdMin@l
|
||||||
|
bl _CheckForINIAASetting
|
||||||
|
|
||||||
|
lis r3, AAThresholdMin@ha
|
||||||
|
lfs f1, AAThresholdMin@l(r3)
|
||||||
|
addi r3, r10, 1
|
||||||
|
lis r4, str_AA_floating_precision@ha
|
||||||
|
ori r4, r4, str_AA_floating_precision@l
|
||||||
|
li r25, 0x30+$AAThresholdMinDecimalPlaces
|
||||||
|
stb r25, 2(r4)
|
||||||
|
CREQV 4*cr1+eq, 4*cr1+eq, 4*cr1+eq
|
||||||
|
mtctr r29 ;bl sprintf
|
||||||
|
bctrl
|
||||||
|
|
||||||
|
bl _ChangeAntiAliasingSettingINIMod
|
||||||
|
|
||||||
|
|
||||||
|
;restores the game to how it was before the mod and exits the mod
|
||||||
|
_ExitEditINIforAAmod:
|
||||||
|
;delets the back up of the lib.ini file that we made to edit the original
|
||||||
|
bl _DeleteINIAACopy
|
||||||
|
;restore registers
|
||||||
|
lwz r25, 0x1200+0x800+128(r22)
|
||||||
|
mtlr r25
|
||||||
|
lmw r0, 0x1200+0x800(r22)
|
||||||
|
;delete register backup
|
||||||
|
li r28, 0
|
||||||
|
addi r26, r22, 0x1200+0x800-4
|
||||||
|
li r25, (128+4)/4
|
||||||
|
mtctr r25
|
||||||
|
_forloopClearRegistersAA:
|
||||||
|
stwu r28, 4(r26)
|
||||||
|
bdnz _forloopClearRegistersAA
|
||||||
|
|
||||||
|
;restores line we over wrote and returns to the game
|
||||||
|
;lwz r22, 0xa0(r31)
|
||||||
|
lis r26, 0x101c
|
||||||
|
blr
|
||||||
|
|
||||||
|
|
||||||
|
[XCX_AntiAliasing_V101E]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||||
|
.origin = codecave
|
||||||
|
_SprintfFunctionAddress_V101E_AA:
|
||||||
|
stmw r0, 0x1200+0x800(r22) ;backs up current registers
|
||||||
|
lis r29, 0x03B1
|
||||||
|
ori r29, r29, 0x8118 ;sprintf
|
||||||
|
b _EditINIforAAmod
|
||||||
|
|
||||||
|
0x02FF94C4 = bla _SprintfFunctionAddress_V101E_AA
|
||||||
|
|
||||||
|
|
||||||
|
[XCX_AntiAliasing_V102U]
|
||||||
|
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||||
|
.origin = codecave
|
||||||
|
_SprintfFunctionAddress_V102U_AA:
|
||||||
|
stmw r0, 0x1200+0x800(r22) ;backs up current registers
|
||||||
|
lis r29, 0x03B1
|
||||||
|
ori r29, r29, 0x8098 ;sprintf
|
||||||
|
b _EditINIforAAmod
|
||||||
|
|
||||||
|
0x02FF9464 = bla _SprintfFunctionAddress_V102U_AA
|
||||||
|
|
||||||
|
|
||||||
|
[XCX_AntiAliasing_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
.origin = codecave
|
||||||
|
_SprintfFunctionAddress_V102J_AA:
|
||||||
|
stmw r0, 0x1200+0x800(r22)
|
||||||
|
lis r29, 0x03B1
|
||||||
|
ori r29, r29, 0x34B0 ;sprintf
|
||||||
|
b _EditINIforAAmod
|
||||||
|
|
||||||
|
0x02FF498C = bla _SprintfFunctionAddress_V102J_AA
|
||||||
|
|
||||||
|
|
||||||
|
[XCX_AntiAliasing_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
.origin = codecave
|
||||||
|
_SprintfFunctionAddress_V100U_AA:
|
||||||
|
stmw r0, 0x1200+0x800(r22)
|
||||||
|
lis r29, 0x03B1
|
||||||
|
ori r29, r29, 0x7F18 ;sprintf
|
||||||
|
b _EditINIforAAmod
|
||||||
|
|
||||||
|
0x02FF92EC = bla _SprintfFunctionAddress_V100U_AA
|
||||||
|
|
||||||
|
|
||||||
|
[XCX_AntiAliasing_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
_SprintfFunctionAddress_V100J_AA:
|
||||||
|
stmw r0, 0x1200+0x800(r22)
|
||||||
|
lis r29, 0x03B0
|
||||||
|
ori r29, r29, 0xDEB0 ;sprintf
|
||||||
|
b _EditINIforAAmod
|
||||||
|
|
||||||
|
0x02FEF584 = bla _SprintfFunctionAddress_V100J_AA
|
@ -2,58 +2,518 @@
|
|||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
name = Anti-Aliasing Pack
|
name = Anti-Aliasing Pack
|
||||||
path = "Xenoblade Chronicles X/Enhancements/Anti-Aliasing"
|
path = "Xenoblade Chronicles X/Enhancements/Anti-Aliasing"
|
||||||
description = Enables or Disables Native Anti-Aliasing. Also includes an alternative FXAA implementation. Check the "Anti-Aliasing/rules.txt" file in your Botw AA graphicPack folder for info about the individual settings.
|
description = Dissable the game's native AA or replace it with nvidia's FXAA implementation. (FXAA works even without a nvidia card)||Made by SkalFate
|
||||||
version = 4
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$Preset:int = 0
|
||||||
|
$AAEnable = 0x6F6E0000 #on
|
||||||
|
|
||||||
|
$AASharpness = 8.0
|
||||||
|
$AARange = 0.5
|
||||||
|
$AAThreshold = 0.17
|
||||||
|
$AAThresholdMin = 0.05
|
||||||
|
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
|
||||||
|
$subPix:float = 0.75
|
||||||
|
$edgeThreshold:float = 0.166
|
||||||
|
$edgeThresholdMin:float = 0.0833
|
||||||
|
$FXAAQUALITYPRESET:int = 12
|
||||||
|
$FXAAGREENASLUMA:int = 0
|
||||||
|
$FXAADISCARD:int = 0
|
||||||
|
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Nvidias FXAA
|
name = NVIDIA's FXAA
|
||||||
$Preset:int = 2
|
$Preset:int = 2
|
||||||
#
|
$AAEnable = 0x6F6E0000 #on
|
||||||
$LessAA = 0.0 # Ignore
|
|
||||||
$MoreAA = 0.0 # Ignore
|
|
||||||
#
|
|
||||||
$subPix = 1.0
|
|
||||||
$edgeThreshold = 0.125
|
|
||||||
$edgeThresholdMin = 0.0156
|
|
||||||
|
|
||||||
[Preset]
|
#the native AA option creates artifacts and the options dont actually cause any noticable change in cemu
|
||||||
name = Enable Native AA
|
#[Preset]
|
||||||
$Preset:int = 1
|
#name = Native AA
|
||||||
#
|
#$Preset:int = 1
|
||||||
$LessAA = 0.0
|
#$AAEnable = 0x6F6E0000 #on
|
||||||
$MoreAA = 0.0
|
|
||||||
#
|
|
||||||
$subPix = 0.75 # Ignore
|
|
||||||
$edgeThreshold = 0.166 # Ignore
|
|
||||||
$edgeThresholdMin = 0.0312 # Ignore
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = Enable Native AA (MoreAA)
|
|
||||||
$Preset:int = 1
|
|
||||||
#
|
|
||||||
$LessAA = 0.0
|
|
||||||
$MoreAA = 1.0
|
|
||||||
#
|
|
||||||
$subPix = 0.75 # Ignore
|
|
||||||
$edgeThreshold = 0.166 # Ignore
|
|
||||||
$edgeThresholdMin = 0.0312 # Ignore
|
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Disable Native AA
|
name = Disable Native AA
|
||||||
$Preset:int = 0
|
$Preset:int = 0
|
||||||
#
|
$AAEnable = 0x6F666600 #off
|
||||||
$LessAA = 0.0 # Ignore
|
|
||||||
$MoreAA = 0.0 # Ignore
|
[Preset]
|
||||||
#
|
category = "AA Sharpness:"
|
||||||
$subPix = 0.75 # Ignore
|
condition = $Preset == 1
|
||||||
$edgeThreshold = 0.166 # Ignore
|
name = "20.0"
|
||||||
$edgeThresholdMin = 0.0312 # Ignore
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 20.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "16.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 16.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "12.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 12.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "10.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 10.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "8.0 (default)"
|
||||||
|
default = 1
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 8.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "6.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 6.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "4.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 4.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "2.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 2.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Sharpness:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.0"
|
||||||
|
$AASharpnessDecimalPlaces = 1 #0.0
|
||||||
|
$AASharpness = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "1.1"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 1.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.9"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.9
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.7"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.7
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.5 (default)"
|
||||||
|
default = 1
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.3"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.1"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Range:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.0"
|
||||||
|
$AARangeDecimalPlaces = 1 #0.0
|
||||||
|
$AARange = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "1.0"
|
||||||
|
$AAThresholdDecimalPlaces = 1 #0.0
|
||||||
|
$AAThreshold = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.50"
|
||||||
|
$AAThresholdDecimalPlaces = 1 #0.0
|
||||||
|
$AAThreshold = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.35"
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.35
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.25"
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.20"
|
||||||
|
$AAThresholdDecimalPlaces = 1 #0.0
|
||||||
|
$AAThreshold = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.17 (default)"
|
||||||
|
default = 1
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.17
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.11"
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.11
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.05"
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.02"
|
||||||
|
$AAThresholdDecimalPlaces = 2 #0.00
|
||||||
|
$AAThreshold = 0.02
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.0"
|
||||||
|
$AAThresholdDecimalPlaces = 1 #0.0
|
||||||
|
$AAThreshold = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.50"
|
||||||
|
$AAThresholdMinDecimalPlaces = 1 #0.00
|
||||||
|
$AAThresholdMin = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.25"
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.15"
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.10"
|
||||||
|
$AAThresholdMinDecimalPlaces = 1 #0.0
|
||||||
|
$AAThresholdMin = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.07"
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.07
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.05 (default)"
|
||||||
|
default = 1
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.03"
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.03
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.01"
|
||||||
|
$AAThresholdMinDecimalPlaces = 2 #0.00
|
||||||
|
$AAThresholdMin = 0.01
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "AA Threshold Minimum:"
|
||||||
|
condition = $Preset == 1
|
||||||
|
name = "0.00"
|
||||||
|
$AAThresholdMinDecimalPlaces = 1 #0.0
|
||||||
|
$AAThresholdMin = 0.0
|
||||||
|
|
||||||
|
|
||||||
# Adjust native AA implmentation - Only applies to Enabled preset
|
|
||||||
# --- keep one of the varaibles at 0 while adjusting the other one
|
|
||||||
# LessAA : Values - [0.0 - 1.0] - Recommended to Raise in increments of 0.1
|
|
||||||
# MoreAA : Values - [1.0 - 0.0] - Recommended to Lower in decrements of 0.1
|
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA sub-pixel aliasing removal:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "1.00 (upper limit, softer)"
|
||||||
|
default = 1
|
||||||
|
$subPix:float = 1.00
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA sub-pixel aliasing removal:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.75 (default amount of filtering)"
|
||||||
|
$subPix:float = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA sub-pixel aliasing removal:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.50 (lower limit, sharper, less sub-pixel aliasing removal)"
|
||||||
|
$subPix:float = 0.50
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA sub-pixel aliasing removal:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.25 (almost off)"
|
||||||
|
$subPix:float = 0.25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA sub-pixel aliasing removal:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.00 (completely off)"
|
||||||
|
$subPix:float = 0.00
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Edge detection threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.333 (too little, faster)"
|
||||||
|
$edgeThreshold:float = 0.333
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Edge detection threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.250 (low quality)"
|
||||||
|
$edgeThreshold:float = 0.250
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Edge detection threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.166 (default)"
|
||||||
|
$edgeThreshold:float = 0.166
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Edge detection threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.125 (high quality)"
|
||||||
|
default = 1
|
||||||
|
$edgeThreshold:float = 0.125
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Edge detection threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.063 (overkill, slower)"
|
||||||
|
$edgeThreshold:float = 0.063
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Darkness threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.0833 (upper limit, default, the start of visible unfiltered edges)"
|
||||||
|
$edgeThresholdMin:float = 0.0833
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Darkness threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.0625 (high quality, faster)"
|
||||||
|
$edgeThresholdMin:float = 0.0625
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Darkness threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.0312 (visible limit, slower)"
|
||||||
|
$edgeThresholdMin:float = 0.0312
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Darkness threshold:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "0.0156 (overkill)"
|
||||||
|
default = 1
|
||||||
|
$edgeThresholdMin:float = 0.0156
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "10 (default medium dither) (10=fastest)"
|
||||||
|
$FXAAQUALITYPRESET:int = 10
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "11 (default medium dither)"
|
||||||
|
$FXAAQUALITYPRESET:int = 11
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "12 (default medium dither)"
|
||||||
|
$FXAAQUALITYPRESET:int = 12
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "13 (default medium dither)"
|
||||||
|
$FXAAQUALITYPRESET:int = 13
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "14 (default medium dither)"
|
||||||
|
default = 1
|
||||||
|
$FXAAQUALITYPRESET:int = 14
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "15 (default medium dither) (15=highest quality)"
|
||||||
|
$FXAAQUALITYPRESET:int = 15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "20 (less dither, more expensive) (20=fastest)"
|
||||||
|
$FXAAQUALITYPRESET:int = 20
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "21 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 21
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "22 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 22
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "23 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 23
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "24 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 24
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "25 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "26 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 26
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "27 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 27
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "28 (less dither, more expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 28
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "29 (less dither, more expensive) (29=highest quality)"
|
||||||
|
$FXAAQUALITYPRESET:int = 29
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Quality Preset:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "39 (no dither, very expensive)"
|
||||||
|
$FXAAQUALITYPRESET:int = 39
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Green As Luma:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "On (will turn off AA on anything which lacks some amount of green)"
|
||||||
|
default = 1
|
||||||
|
$FXAAGREENASLUMA:int = 1
|
||||||
|
$FXAADISCARD:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA Green As Luma:"
|
||||||
|
condition = $Preset == 2
|
||||||
|
name = "Off"
|
||||||
|
$FXAAGREENASLUMA:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA discard on pixels which don't need AA:"
|
||||||
|
condition = ($Preset == 2)*($FXAAGREENASLUMA == 0) == 1
|
||||||
|
name = "On (not compatable with Green As Luma)"
|
||||||
|
$FXAADISCARD:int = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "FXAA discard on pixels which don't need AA:"
|
||||||
|
condition = ($Preset == 2)*($FXAAGREENASLUMA == 0) == 1
|
||||||
|
name = "Off"
|
||||||
|
default = 1
|
||||||
|
$FXAADISCARD:int = 0
|
||||||
|
|
||||||
# Subpix:
|
# Subpix:
|
||||||
# Choose the amount of sub-pixel aliasing removal.
|
# Choose the amount of sub-pixel aliasing removal.
|
||||||
@ -78,4 +538,15 @@ $edgeThresholdMin = 0.0312 # Ignore
|
|||||||
# 0.0625 - high quality (faster)
|
# 0.0625 - high quality (faster)
|
||||||
# 0.0312 - visible limit (slower)
|
# 0.0312 - visible limit (slower)
|
||||||
|
|
||||||
# Credits: SkalFate
|
# FXAA Quality Preset
|
||||||
|
# 10 to 15 - default medium dither (10=fastest, 15=highest quality)
|
||||||
|
# 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)
|
||||||
|
# 39 - no dither, very expensive
|
||||||
|
|
||||||
|
# Green As Luma
|
||||||
|
# This will turn off AA on anything which lacks some amount of green.
|
||||||
|
# Pure red and blue or combination of only R and B, will get no AA.
|
||||||
|
# 1 = On.
|
||||||
|
# 0 = Off.
|
||||||
|
|
||||||
|
# Credits: Shader made by SkalFate, asm patch that doesn't do its job made by intra
|
||||||
|
108
src/XenobladeChroniclesX/Enhancements/ansio/rules.txt
Normal file
108
src/XenobladeChroniclesX/Enhancements/ansio/rules.txt
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
|
name = Anisotropic Filtering
|
||||||
|
path = "Xenoblade Chronicles X/Enhancements/Anisotropic Filtering"
|
||||||
|
description = Enables anisotropic filtering for ground, wall, and vegetation textures.|Has a minimal performance impact. Made by Cremitif.
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
#Defined seprately so that they can be change individually if desired
|
||||||
|
$anisomount = 16
|
||||||
|
$anisorock = 16
|
||||||
|
$anisosand = 16
|
||||||
|
$anisotree = 16
|
||||||
|
$anisolargeplant = 16
|
||||||
|
$anisomidplant = 16
|
||||||
|
$anisosmallplant = 16
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Aniso: "
|
||||||
|
name = x2
|
||||||
|
$anisomount = 2
|
||||||
|
$anisorock = 2
|
||||||
|
$anisosand = 2
|
||||||
|
$anisotree = 2
|
||||||
|
$anisolargeplant = 2
|
||||||
|
$anisomidplant = 2
|
||||||
|
$anisosmallplant = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Aniso: "
|
||||||
|
name = x4
|
||||||
|
$anisomount = 4
|
||||||
|
$anisorock = 4
|
||||||
|
$anisosand = 4
|
||||||
|
$anisotree = 4
|
||||||
|
$anisolargeplant = 4
|
||||||
|
$anisomidplant = 4
|
||||||
|
$anisosmallplant = 4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Aniso: "
|
||||||
|
name = x8
|
||||||
|
$anisomount = 8
|
||||||
|
$anisorock = 8
|
||||||
|
$anisosand = 8
|
||||||
|
$anisotree = 8
|
||||||
|
$anisolargeplant = 8
|
||||||
|
$anisomidplant = 8
|
||||||
|
$anisosmallplant = 8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Aniso: "
|
||||||
|
name = x16 (recommended)
|
||||||
|
default = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Aniso: "
|
||||||
|
name = x32
|
||||||
|
$anisomount = 32
|
||||||
|
$anisorock = 32
|
||||||
|
$anisosand = 32
|
||||||
|
$anisotree = 32
|
||||||
|
$anisolargeplant = 32
|
||||||
|
$anisomidplant = 32
|
||||||
|
$anisosmallplant = 32
|
||||||
|
|
||||||
|
|
||||||
|
[TextureRedefine] # Mountain Textures
|
||||||
|
width = 2048
|
||||||
|
height = 1024
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisomount
|
||||||
|
|
||||||
|
[TextureRedefine] # Ground/Rock Textures
|
||||||
|
width = 1024
|
||||||
|
height = 1024
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisorock
|
||||||
|
|
||||||
|
[TextureRedefine] # Ground/Sand Textures
|
||||||
|
width = 512
|
||||||
|
height = 512
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisosand
|
||||||
|
|
||||||
|
[TextureRedefine] # Tree Textures
|
||||||
|
width = 128
|
||||||
|
height = 512
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisotree
|
||||||
|
|
||||||
|
[TextureRedefine] # Ground/Sand/Plant Textures
|
||||||
|
width = 256
|
||||||
|
height = 256
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisolargeplant
|
||||||
|
|
||||||
|
[TextureRedefine] # Grass/Plant Textures
|
||||||
|
width = 256
|
||||||
|
height = 128
|
||||||
|
formats = 0x031
|
||||||
|
overwriteAnisotropy = $anisomidplant
|
||||||
|
|
||||||
|
[TextureRedefine] # Grass/Plant Textures
|
||||||
|
width = 128
|
||||||
|
height = 128
|
||||||
|
formats = 0x033
|
||||||
|
overwriteAnisotropy = $anisosmallplant
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|||||||
name = Graphics
|
name = Graphics
|
||||||
path = "Xenoblade Chronicles X/Graphics"
|
path = "Xenoblade Chronicles X/Graphics"
|
||||||
description = Changes the resolution of the game and the quality of the other elements.||Made by getdls and Lemon King.
|
description = Changes the resolution of the game and the quality of the other elements.||Made by getdls and Lemon King.
|
||||||
version = 5
|
version = 7
|
||||||
|
|
||||||
[Default]
|
[Default]
|
||||||
$width = 1280
|
$width = 1280
|
||||||
|
@ -1,22 +1,38 @@
|
|||||||
[XCX_DAMAGES_V101E]
|
[XCX_DAMAGES]
|
||||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
0x02E0C5B0 = li r3, -1-$mult
|
.origin = codecave
|
||||||
0x025D896C = mulli r4, r31, $mult
|
|
||||||
|
|
||||||
[XCX_DAMAGES_V102U]
|
_divide_dmg:
|
||||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
li r4, $mult
|
||||||
0x02E0C550 = li r3, -1-$mult
|
divw r4, r31, r4
|
||||||
0x025D896C = mulli r4, r31, $mult
|
blr
|
||||||
|
|
||||||
;[XCX_DAMAGES_V102J]
|
_mult_or_divide:
|
||||||
;DO NOT port to JP 1.0.2 untill official game servers go offline
|
cmpwi r0, $multOrDivision
|
||||||
|
bne- _divide_dmg
|
||||||
|
mulli r4, r31, $mult
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_DAMAGES_V101E_102U]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.0E, 1.0.2U
|
||||||
|
0x025D896C = bla _mult_or_divide
|
||||||
|
|
||||||
|
[XCX_DAMAGES_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x025D7F48 = bla _mult_or_divide
|
||||||
|
|
||||||
[XCX_DAMAGES_V100U]
|
[XCX_DAMAGES_V100U]
|
||||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
0x02E0C3D8 = li r3, -1-$mult
|
0x025D88FC = bla _mult_or_divide
|
||||||
0x025D88FC = mulli r4, r31, $mult
|
|
||||||
|
|
||||||
[XCX_DAMAGES_V100J]
|
[XCX_DAMAGES_V100J]
|
||||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
0x02E03228 = li r3, -1-$mult
|
0x025CD268 = bla _mult_or_divide
|
||||||
0x025CD268 = mulli r4, r31, $mult
|
|
||||||
|
;kill online codes
|
||||||
|
;when this game still had online these used to be part of the mod
|
||||||
|
;0x02E0C5B0 = li r3, -1 ;1.0.1E, 1.0.0E
|
||||||
|
;0x02E0C550 = li r3, -1 ;1.0.2U
|
||||||
|
;0x02E07A78 = li r3, -1 ;1.0.2J
|
||||||
|
;0x02E0C3D8 = li r3, -1 ;1.0.1U, 1.0.0U
|
||||||
|
;0x02E03228 = li r3, -1 ;1.0.0J
|
||||||
|
@ -2,14 +2,45 @@
|
|||||||
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
name = "Ground damage multiplicator"
|
name = "Ground damage multiplicator"
|
||||||
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator"
|
path = "Xenoblade Chronicles X/Mods/Battle/Ground damage multiplicator"
|
||||||
description = Increase the damage done by your team. Doesn't affect the damage numbers that are shown.
|
description = Increase the damage done by your team. Doesn't affect the damage numbers that are shown.|Can also make the game more challenging by dividing damage.
|
||||||
version = 6
|
version = 7
|
||||||
|
|
||||||
[Default]
|
[Default]
|
||||||
|
$mult = 1
|
||||||
|
$multOrDivision = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage / 25
|
||||||
|
$mult = 25
|
||||||
|
$multOrDivision = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage / 10
|
||||||
|
$mult = 10
|
||||||
|
$multOrDivision = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage / 5
|
||||||
|
$mult = 5
|
||||||
|
$multOrDivision = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage / 3
|
||||||
|
$mult = 3
|
||||||
|
$multOrDivision = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage / 2
|
||||||
$mult = 2
|
$mult = 2
|
||||||
|
$multOrDivision = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Damage x1
|
||||||
|
default = 1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Damage x2
|
name = Damage x2
|
||||||
|
$mult = 2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Damage x3
|
name = Damage x3
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
[XCX_ENEMIESTATS_V101E]
|
|
||||||
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
|
; WHO : calcEnParam__3cfsFPQ2_3cfs7SChrPrmUiT2
|
||||||
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion)
|
; WHAT : Apply modificator on enemies stats (HP, Melee Attack, Melee Accuracy, Ranged Attack, Ranged Accuracy, Potential and Evasion)
|
||||||
@ -8,23 +6,15 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
|||||||
; 70% = 0.0007
|
; 70% = 0.0007
|
||||||
; 50% = 0.0005
|
; 50% = 0.0005
|
||||||
; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
|
; 1% = 0.00001 ; GAME CRASH (enemis are too weak)
|
||||||
0x02E0C5B0 = li r3, -3
|
|
||||||
|
[XCX_ENEMIESTATS_V101E_V102U_V100U]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07, 0xAB97DE6B, 0x676EB33E ; 1.0.1E, 1.0.2U, 1.0.0E, 1.0.1U, 1.0.0U
|
||||||
0x1003206C = .float $mod
|
0x1003206C = .float $mod
|
||||||
|
|
||||||
[XCX_ENEMIESTATS_V102U]
|
[XCX_ENEMIESTATS_V102J]
|
||||||
moduleMatches = 0x30B6E091 ; 1.0.2U
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
0x02E0C550 = li r3, -3
|
0x1003202C = .float $mod
|
||||||
0x1003206C = .float $mod
|
|
||||||
|
|
||||||
;[XCX_ENEMIESTATS_V102J]
|
|
||||||
;DO NOT port to JP 1.0.2 untill official game servers go offline
|
|
||||||
|
|
||||||
[XCX_ENEMIESTATS_V100U]
|
|
||||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
|
||||||
0x02E0C3D8 = li r3, -3
|
|
||||||
0x1003206C = .float $mod
|
|
||||||
|
|
||||||
[XCX_ENEMIESTATS_V100J]
|
[XCX_ENEMIESTATS_V100J]
|
||||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
0x02E03228 = li r3, -3
|
|
||||||
0x10031FDC = .float $mod
|
0x10031FDC = .float $mod
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
[XCX_FieldSkill]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
_FieldSkillLevelMod:
|
||||||
|
;applies our cheat ;~1B7C4038
|
||||||
|
li r0, $meclevel
|
||||||
|
stb r0,-0x7548(r30)
|
||||||
|
li r0, $biolevel
|
||||||
|
stb r0,-0x7547(r30)
|
||||||
|
li r0, $arclevel
|
||||||
|
stb r0,-0x7546(r30)
|
||||||
|
|
||||||
|
;fixes line we overwrote
|
||||||
|
lbzu r0,-0x7548(r30)
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_FeildSkill_V101E]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||||
|
0x02C1AA2C = bla _FieldSkillLevelMod
|
||||||
|
|
||||||
|
[XCX_FeildSkill_V102U]
|
||||||
|
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||||
|
0x02C1AA38 = bla _FieldSkillLevelMod
|
||||||
|
|
||||||
|
[XCX_FeildSkill_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x02C163D0 = bla _FieldSkillLevelMod
|
||||||
|
|
||||||
|
[XCX_FeildSkill_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
0x02C1A8C0 = bla _FieldSkillLevelMod
|
||||||
|
|
||||||
|
[XCX_FeildSkill_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
0x02C1344C = bla _FieldSkillLevelMod
|
113
src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt
Normal file
113
src/XenobladeChroniclesX/Mods/BladeFieldSkill/rules.txt
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
|
name = Field Skill Level
|
||||||
|
path = "Xenoblade Chronicles X/Mods/BLADE/Field Level"
|
||||||
|
description = "You can change your Mechanical, Archeaological, and Biological field skill level."
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$meclevel = 5
|
||||||
|
$arclevel = 5
|
||||||
|
$biolevel = 5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 4
|
||||||
|
$meclevel = 4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 3
|
||||||
|
$meclevel = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 2
|
||||||
|
$meclevel = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 1
|
||||||
|
$meclevel = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Mechanical Field Skill:
|
||||||
|
name = lv. 0
|
||||||
|
$meclevel = 0
|
||||||
|
|
||||||
|
###[Preset]
|
||||||
|
###category = Mechanical Field Skill:
|
||||||
|
###name = lv. 6 (Broken)
|
||||||
|
###$meclevel = 6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 4
|
||||||
|
$biolevel = 4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 3
|
||||||
|
$biolevel = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 2
|
||||||
|
$biolevel = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 1
|
||||||
|
$biolevel = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Biological Field Skill:
|
||||||
|
name = lv. 0
|
||||||
|
$biolevel = 0
|
||||||
|
|
||||||
|
###[Preset]
|
||||||
|
###category = Biological Field Skill:
|
||||||
|
###name = lv. 6 (Broken)
|
||||||
|
###$biolevel = 6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 4
|
||||||
|
$arclevel = 4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 3
|
||||||
|
$arclevel = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 2
|
||||||
|
$arclevel = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 1
|
||||||
|
$arclevel = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Archeaological Field Skill:
|
||||||
|
name = lv. 0
|
||||||
|
$arclevel = 0
|
||||||
|
|
||||||
|
###[Preset]
|
||||||
|
###category = Archeaological Field Skill:
|
||||||
|
###name = lv. 6 (Broken)
|
||||||
|
###$arclevel = 6
|
@ -91,7 +91,6 @@ moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
|||||||
|
|
||||||
;################## BLADE Home Terminal (for Squad Quest Selection)
|
;################## BLADE Home Terminal (for Squad Quest Selection)
|
||||||
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
0x02AC5C10 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||||
0x02E0C5B0 = li r3, -1
|
|
||||||
|
|
||||||
;################## Change Squad Mission using main menu
|
;################## Change Squad Mission using main menu
|
||||||
0x02B85134 = bla _savePtr
|
0x02B85134 = bla _savePtr
|
||||||
@ -113,7 +112,6 @@ moduleMatches = 0x30B6E091 ; 1.0.2U
|
|||||||
|
|
||||||
;################## BLADE Home Terminal (for Squad Quest Selection)
|
;################## BLADE Home Terminal (for Squad Quest Selection)
|
||||||
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
0x02AC5C00 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||||
0x02E0C550 = li r3, -1
|
|
||||||
|
|
||||||
;################## Change Squad Mission using main menu
|
;################## Change Squad Mission using main menu
|
||||||
0x02B85124 = bla _savePtr
|
0x02B85124 = bla _savePtr
|
||||||
@ -154,7 +152,6 @@ moduleMatches = 0x7672271D ; 1.0.2J
|
|||||||
0x0295B7F0 = li r0, 42
|
0x0295B7F0 = li r0, 42
|
||||||
0x02BF81D0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
0x02BF81D0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||||
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
0x02AC22D0 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||||
0x02E07A78 = li r3, -1
|
|
||||||
0x02B81070 = bla _savePtr
|
0x02B81070 = bla _savePtr
|
||||||
0x02B81088 = bla _savePtr
|
0x02B81088 = bla _savePtr
|
||||||
0x02B80FC0 = li r11, 1
|
0x02B80FC0 = li r11, 1
|
||||||
@ -192,7 +189,6 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
|||||||
0x0295E988 = li r0, 42
|
0x0295E988 = li r0, 42
|
||||||
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
0x02BFC6C0 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||||
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
0x02AC5B84 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||||
0x02E0C3D8 = li r3, -1
|
|
||||||
0x02B850A8 = bla _savePtr
|
0x02B850A8 = bla _savePtr
|
||||||
0x02B850C0 = bla _savePtr
|
0x02B850C0 = bla _savePtr
|
||||||
0x02B84FF8 = li r11, 1
|
0x02B84FF8 = li r11, 1
|
||||||
@ -230,7 +226,6 @@ moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
|||||||
;0x0295A060 = li r0, 42
|
;0x0295A060 = li r0, 42
|
||||||
;0x02BF5364 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
;0x02BF5364 = li r11, 1 ; garder affichée la liste des tasks en bas à droite ; keep displayed the list of tasks at the bottom right
|
||||||
;0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
;0x02AC04E8 = li r3, 0 ; menu::CTerminalMenu_SquadQuest::offline
|
||||||
;0x02E03228 = li r3, -1
|
|
||||||
;0x02B7EAC0 = bla _savePtr
|
;0x02B7EAC0 = bla _savePtr
|
||||||
;0x02B7EAD8 = bla _savePtr
|
;0x02B7EAD8 = bla _savePtr
|
||||||
;0x02B7EA10 = li r11, 1
|
;0x02B7EA10 = li r11, 1
|
||||||
|
58
src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm
Normal file
58
src/XenobladeChroniclesX/Mods/CharacterLevel/patch_level.asm
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
[XCX_level]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
; get lv 027e14f ; get exp 027e1504 ; set lv 027e1510 ; set exp 027e151c
|
||||||
|
|
||||||
|
_levelMemorJP100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x489c (r3)
|
||||||
|
b _charLevelCheat
|
||||||
|
|
||||||
|
_levelMemorUS100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x3e78 (r3)
|
||||||
|
b _charLevelCheat
|
||||||
|
|
||||||
|
_levelMemorJP102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x42b0 (r3)
|
||||||
|
b _charLevelCheat
|
||||||
|
|
||||||
|
_levelMemorEU101US102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x3d78 (r3)
|
||||||
|
|
||||||
|
_charLevelCheat:
|
||||||
|
; Character Level
|
||||||
|
li r4, $level
|
||||||
|
stb r4, $memoffset (r3)
|
||||||
|
|
||||||
|
;fixes the line we over wrote
|
||||||
|
addi r3,r1,0x8
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_Level_V101E_V102U]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||||
|
; Our code applies when the reqMenuCreateParty function is used
|
||||||
|
0x023429F0 = bla _levelMemorEU101US102
|
||||||
|
|
||||||
|
[XCX_Level_V102U]
|
||||||
|
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||||
|
0x023429F0 = bla _levelMemorEU101US102
|
||||||
|
|
||||||
|
[XCX_Level_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x02342224 = bla _levelMemorJP102
|
||||||
|
|
||||||
|
[XCX_Level_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
0x02342980 = bla _levelMemorUS100
|
||||||
|
|
||||||
|
[XCX_Level_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
0x023420B0 = bla _levelMemorJP100
|
228
src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt
Normal file
228
src/XenobladeChroniclesX/Mods/CharacterLevel/rules.txt
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
|
name = Character Level
|
||||||
|
path = "Xenoblade Chronicles X/Mods/Character/Character Level"
|
||||||
|
description = "You can change the level of any character.||***Activate by pressing START(+), then Party->Active Members->Confirm Changes."
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$memoffset = 0x122
|
||||||
|
$level = 1
|
||||||
|
|
||||||
|
$characterID = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Playable Avatar"
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Nagi"
|
||||||
|
$characterID = 2
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "L"
|
||||||
|
$characterID = 3
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Lao"
|
||||||
|
$characterID = 4
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "H.B."
|
||||||
|
$characterID = 5
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Gwin"
|
||||||
|
$characterID = 6
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Frye"
|
||||||
|
$characterID = 7
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Doug"
|
||||||
|
$characterID = 8
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Yelv"
|
||||||
|
$characterID = 9
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Boze"
|
||||||
|
$characterID = 10
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Phog"
|
||||||
|
$characterID = 11
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Elma"
|
||||||
|
$characterID = 12
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Lin"
|
||||||
|
$characterID = 13
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Celica"
|
||||||
|
$characterID = 14
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Irina"
|
||||||
|
$characterID = 15
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Murderess"
|
||||||
|
$characterID = 16
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Alexa"
|
||||||
|
$characterID = 17
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Hope"
|
||||||
|
$characterID = 18
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Mia"
|
||||||
|
$characterID = 19
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x122
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 5
|
||||||
|
$level = 5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 10
|
||||||
|
$level = 10
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 15
|
||||||
|
$level = 15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 20
|
||||||
|
$level = 20
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 25
|
||||||
|
$level = 25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 30
|
||||||
|
$level = 30
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 35
|
||||||
|
$level = 35
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 40
|
||||||
|
$level = 40
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 45
|
||||||
|
$level = 45
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 50
|
||||||
|
$level = 50
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 55
|
||||||
|
$level = 55
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 60
|
||||||
|
$level = 60
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 70
|
||||||
|
$level = 70
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 80
|
||||||
|
$level = 80
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 90
|
||||||
|
$level = 90
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 100
|
||||||
|
$level = 100
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 150
|
||||||
|
$level = 150
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 200
|
||||||
|
$level = 200
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 255
|
||||||
|
$level = 255
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Level:"
|
||||||
|
name = lv. 0
|
||||||
|
$level = 0
|
78
src/XenobladeChroniclesX/Mods/CharacterName/patch_name.asm
Normal file
78
src/XenobladeChroniclesX/Mods/CharacterName/patch_name.asm
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
[XCX_Name]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
_playerName:
|
||||||
|
;char 1-4
|
||||||
|
lis r8, $char0102
|
||||||
|
ori r8, r8, $char0304
|
||||||
|
stw r8, $memoffset+0x0 (r12)
|
||||||
|
;char 5-8
|
||||||
|
lis r8, $char0506
|
||||||
|
ori r8, r8, $char0708
|
||||||
|
stw r8, $memoffset+0x4 (r12)
|
||||||
|
;char 9-12
|
||||||
|
lis r8, $char0910
|
||||||
|
ori r8, r8, $char1112
|
||||||
|
stw r8, $memoffset+0x8 (r12)
|
||||||
|
;char 13-16
|
||||||
|
lis r8, $char1314
|
||||||
|
ori r8, r8, $char1516
|
||||||
|
stw r8, $memoffset+0xC (r12)
|
||||||
|
;char 17-20
|
||||||
|
lis r8, $char1718
|
||||||
|
ori r8, r8, $char1920
|
||||||
|
stw r8, $memoffset+0x10 (r12)
|
||||||
|
;char 21-24
|
||||||
|
lis r8, $char2122
|
||||||
|
ori r8, r8, $char2324
|
||||||
|
stw r8, $memoffset+0x14 (r12)
|
||||||
|
;char 25-28
|
||||||
|
lis r8, $char2526
|
||||||
|
ori r8, r8, $char2728
|
||||||
|
stw r8, $memoffset+0x18 (r12)
|
||||||
|
;char 29-32
|
||||||
|
lis r8, $char2930
|
||||||
|
ori r8, r8, $char3132
|
||||||
|
stw r8, $memoffset+0x1C (r12)
|
||||||
|
;char 33-36
|
||||||
|
lis r8, $char3334
|
||||||
|
ori r8, r8, $char3536
|
||||||
|
stw r8, $memoffset+0x20 (r12)
|
||||||
|
;char 37-40
|
||||||
|
lis r8, $char3738
|
||||||
|
ori r8, r8, $char3940
|
||||||
|
stw r8, $memoffset+0x24 (r12)
|
||||||
|
;char 41-44
|
||||||
|
lis r8, $char4142
|
||||||
|
ori r8, r8, $char4344
|
||||||
|
stw r8, $memoffset+0x28 (r12)
|
||||||
|
;char 45-48
|
||||||
|
lis r8, $char4546
|
||||||
|
ori r8, r8, $char4748
|
||||||
|
stw r8, $memoffset+0x2C (r12)
|
||||||
|
;char 49-52
|
||||||
|
lis r8, $char4950
|
||||||
|
ori r8, r8, $char5152
|
||||||
|
stw r8, $memoffset+0x30 (r12)
|
||||||
|
|
||||||
|
;fixes the line we over wrote
|
||||||
|
addi r8,r12,0xa7
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_Name_V101E_V102U]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||||
|
;GetMyAvatar__Q2_2fw4UtilFRQ2_2fw7SPcData
|
||||||
|
0x027F6EEC = bla _playerName
|
||||||
|
|
||||||
|
[XCX_Name_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x027F4A70 = bla _playerName
|
||||||
|
|
||||||
|
[XCX_Name_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
0x027F6E50 = bla _playerName
|
||||||
|
|
||||||
|
[XCX_Name_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
0x027F3A44 = bla _playerName
|
1048
src/XenobladeChroniclesX/Mods/CharacterName/rules.txt
Normal file
1048
src/XenobladeChroniclesX/Mods/CharacterName/rules.txt
Normal file
File diff suppressed because it is too large
Load Diff
104
src/XenobladeChroniclesX/Mods/CharacterSize/patch_Size.asm
Normal file
104
src/XenobladeChroniclesX/Mods/CharacterSize/patch_Size.asm
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
[XCX_CharacterSize]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
charHeight:
|
||||||
|
.float $height ;(Character Depth, Height, and Width)
|
||||||
|
bustX:
|
||||||
|
.float $bustX ;(Chest Depth)
|
||||||
|
bustY:
|
||||||
|
.float $bustY ;(Chest Height)
|
||||||
|
bustZ:
|
||||||
|
.float $bustZ ;(Chest Width)
|
||||||
|
|
||||||
|
_sizeMemorJP100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x489c (r3)
|
||||||
|
b _charSize
|
||||||
|
|
||||||
|
_sizeMemorUS100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x3e78 (r3)
|
||||||
|
b _charSize
|
||||||
|
|
||||||
|
_sizeMemorJP102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x42b0 (r3)
|
||||||
|
b _charSize
|
||||||
|
|
||||||
|
_sizeMemorEU101US102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r3, 0x103a
|
||||||
|
lwz r3, -0x3d78 (r3)
|
||||||
|
|
||||||
|
_charSize:
|
||||||
|
; Character Height (total character size)
|
||||||
|
lis r25, charHeight@ha
|
||||||
|
lfs f31, charHeight@l(r25)
|
||||||
|
stfs f31, $memoffset (r3)
|
||||||
|
|
||||||
|
li r25, 0xFFFF
|
||||||
|
cmpwi r25, $notexist
|
||||||
|
bne _charBustNormal
|
||||||
|
stw r25, $memoffset (r3)
|
||||||
|
|
||||||
|
_charBustNormal:
|
||||||
|
cmpwi r25, $invis
|
||||||
|
beq _invisBust
|
||||||
|
li r25, 0xD
|
||||||
|
cmpwi r25, $characterID
|
||||||
|
beq _resetMaleChar
|
||||||
|
|
||||||
|
lis r25, bustX@ha
|
||||||
|
lfs f31, bustX@l(r25)
|
||||||
|
stfs f31, $memoffset+0x4 (r3)
|
||||||
|
lis r25, bustY@ha
|
||||||
|
lfs f31, bustY@l(r25)
|
||||||
|
stfs f31, $memoffset+0x8 (r3)
|
||||||
|
lis r25, bustZ@ha
|
||||||
|
lfs f31, bustZ@l(r25)
|
||||||
|
stfs f31, $memoffset+0xC (r3)
|
||||||
|
b _leaveCharSize
|
||||||
|
|
||||||
|
_resetMaleChar:
|
||||||
|
lis r25, 0x3F42
|
||||||
|
ori r25, r25, 0x8F5C
|
||||||
|
stw r25, $memoffset+0x4 (r3)
|
||||||
|
lis r25, 0x3F47
|
||||||
|
ori r25, r25, 0xAE14
|
||||||
|
stw r25, $memoffset+0x8 (r3)
|
||||||
|
lis r25, 0x3F33
|
||||||
|
ori r25, r25, 0x3333
|
||||||
|
stw r25, $memoffset+0xC (r3)
|
||||||
|
b _leaveCharSize
|
||||||
|
|
||||||
|
_invisBust:
|
||||||
|
;bustXYZ = 0xFFFFFFFF
|
||||||
|
stw r25, $memoffset+0x4 (r3)
|
||||||
|
stw r25, $memoffset+0x8 (r3)
|
||||||
|
stw r25, $memoffset+0xC (r3)
|
||||||
|
|
||||||
|
_leaveCharSize:
|
||||||
|
;Restores the line we overwrote
|
||||||
|
lis r25, 0x103a
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_ChararacterSize_V101E_V102U]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||||
|
; Our code applies when the reqMenuCreateParty function is used
|
||||||
|
0x023428CC = bla _sizeMemorEU101US102
|
||||||
|
|
||||||
|
[XCX_ChararacterSize_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x02342100 = bla _sizeMemorJP102
|
||||||
|
|
||||||
|
[XCX_ChararacterSize_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
0x0234285C = bla _sizeMemorUS100
|
||||||
|
|
||||||
|
[XCX_ChararacterSize_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
0x02341F8C = bla _sizeMemorJP100
|
444
src/XenobladeChroniclesX/Mods/CharacterSize/rules.txt
Normal file
444
src/XenobladeChroniclesX/Mods/CharacterSize/rules.txt
Normal file
@ -0,0 +1,444 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
|
name = Character Size and Invisible Chest
|
||||||
|
path = "Xenoblade Chronicles X/Mods/Character/Character Size"
|
||||||
|
description = "You can change the height of any character and also make the chest of some characters not render.||Recomended to be combined with the 'No Fading When Close-up' mod (in Graphics).||***Activate by pressing START(+), then Party->Active Members->Confirm Changes."
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$memoffset = 0x110
|
||||||
|
|
||||||
|
$height = 1.0
|
||||||
|
$bustX = 1.0
|
||||||
|
$bustY = 1.0
|
||||||
|
$bustZ = 1.0
|
||||||
|
|
||||||
|
$notexist = 0
|
||||||
|
$invis = 0
|
||||||
|
|
||||||
|
$glitchheight = 0
|
||||||
|
$characterID = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Playable Avatar"
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Nagi"
|
||||||
|
$characterID = 2
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "L"
|
||||||
|
$characterID = 3
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Lao"
|
||||||
|
$characterID = 4
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "H.B."
|
||||||
|
$characterID = 5
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Gwin"
|
||||||
|
$characterID = 6
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Frye"
|
||||||
|
$characterID = 7
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Doug"
|
||||||
|
$characterID = 8
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Yelv"
|
||||||
|
$characterID = 9
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Boze"
|
||||||
|
$characterID = 10
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Phog"
|
||||||
|
$characterID = 11
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Elma"
|
||||||
|
$characterID = 12
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Lin"
|
||||||
|
$characterID = 13
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Celica"
|
||||||
|
$characterID = 14
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Irina"
|
||||||
|
$characterID = 15
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Murderess"
|
||||||
|
$characterID = 16
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Alexa"
|
||||||
|
$characterID = 17
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Hope"
|
||||||
|
$characterID = 18
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Character:"
|
||||||
|
name = "Mia"
|
||||||
|
$characterID = 19
|
||||||
|
$memoffset = (($characterID-1)*0x57C)+0x110
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Show Glitched Heights?"
|
||||||
|
name = No
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Show Glitched Heights?"
|
||||||
|
name = Yes
|
||||||
|
$glitchheight = 1
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Sky Destroying [character needs to be in water] (1000000)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = 1000000
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Only Shadows [Need to fly in skell to see] (2000)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = 2000
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Building Sized [Need to fly in skell to see] (100)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = 100
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Giant [Need to fly in skell to see] (50)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = 50
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Huge (15)
|
||||||
|
$height = 15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Large (3.5)
|
||||||
|
$height = 3.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Big (2.0)
|
||||||
|
$height = 2.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Size 100 in character creator
|
||||||
|
condition = $characterID == 1
|
||||||
|
$height = 1.06 #0x3F87AE14 #Young Boy A B, Boy A B, Man A B, Old Man, Woman A B
|
||||||
|
###$height = 1.0 #0x3F800000 #Young Girl A B, Girl A B
|
||||||
|
###$height = 0.95 #0x3F733333 #Young Girl C
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 1
|
||||||
|
Default = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Size 1 in character creator
|
||||||
|
condition = $characterID == 1
|
||||||
|
$height = 0.9214 #0x3F6BE0DF #Young Boy A B, Boy A B, Man A B, Old Man, Woman A B
|
||||||
|
###$height = 0.8911 #0x3F641F21 #Young Girl A B, Girl A B
|
||||||
|
###$height = 0.8906 #0x3F63FE5C #Young Girl C
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 2
|
||||||
|
Default = 1
|
||||||
|
$height = 0.97 #0x3F7851EC
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 3
|
||||||
|
Default = 1
|
||||||
|
$height = 1.17 #0x3F95C28F
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 4
|
||||||
|
Default = 1
|
||||||
|
$height = 0.98 #0x3F7AE148
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 5
|
||||||
|
Default = 1
|
||||||
|
$height = 0.99 #0x3F7D70A4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 6
|
||||||
|
Default = 1
|
||||||
|
$height = 0.97 #0x3F7851EC
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 7
|
||||||
|
Default = 1
|
||||||
|
$height = 1.03 #0x3F83D70A
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 8
|
||||||
|
Default = 1
|
||||||
|
$height = 1.06 #0x3F87AE14
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 9
|
||||||
|
Default = 1
|
||||||
|
$height = 1.01 0x3F8147AE
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 10
|
||||||
|
Default = 1
|
||||||
|
$height = 1.0 #0x3F800000
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 11
|
||||||
|
Default = 1
|
||||||
|
$height = 1.02 #0x3F828F5C
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 12
|
||||||
|
Default = 1
|
||||||
|
$height = 0.95 #0x3F733333
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 13
|
||||||
|
Default = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 14
|
||||||
|
Default = 1
|
||||||
|
$height = 0.87 #0x3F5EB852
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 15
|
||||||
|
Default = 1
|
||||||
|
$height = 0.93 #0x3F6E147B
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 16
|
||||||
|
Default = 1
|
||||||
|
$height = 0.95 #0x3F733333
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 17
|
||||||
|
Default = 1
|
||||||
|
$height = 0.92 #0x3F6B851F
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 18
|
||||||
|
Default = 1
|
||||||
|
$height = 0.97 #0x3F7851EC
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 19
|
||||||
|
Default = 1
|
||||||
|
$height = 0.88 #0x3F6147AE
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Short (0.7)
|
||||||
|
$height = 0.7
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Small (0.55)
|
||||||
|
$height = 0.55
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Tiny (0.35)
|
||||||
|
$height = 0.35
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Rat (0.15)
|
||||||
|
$height = 0.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Ant (0.05)
|
||||||
|
$height = 0.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Character Disapears (0)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Corrupt Hair [CRASHES the game after a bit] (-1)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = -1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Character Walks under ground [CRASHES the game after a bit] (-1.2)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = -1.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Character Walks under ground and is Giant [CRASHES the game after a bit] (-10000)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = -10000
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Character Walks under ground and is Massive [CRASHES the game after a bit] (-80000)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$height = -80000
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Height:"
|
||||||
|
name = Character Cant interact with terminals (NaN)
|
||||||
|
condition = $glitchheight == 1
|
||||||
|
$notexist = 0xFFFF
|
||||||
|
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
#[Preset]
|
||||||
|
#category = "Chest:"
|
||||||
|
#name = Size 100 in JP character creator
|
||||||
|
#condition = $characterID == 1
|
||||||
|
#$bustX = 1.4 #0x3FB33333
|
||||||
|
#$bustY = 1.4 #0x3FB33333
|
||||||
|
#$bustZ = 1.4 #0x3FB33333
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Chest:"
|
||||||
|
name = Normal #size 43 in JP character creator
|
||||||
|
condition = $characterID == 1
|
||||||
|
#Default = 1
|
||||||
|
$bustX = 1.001 #0x3F8020C4
|
||||||
|
$bustY = 1.001 #0x3F8020C4
|
||||||
|
$bustZ = 1.001 #0x3F8020C4
|
||||||
|
|
||||||
|
#[Preset]
|
||||||
|
#category = "Chest:"
|
||||||
|
#name = Size 1 in JP character creator
|
||||||
|
#condition = $characterID == 1
|
||||||
|
#$bustX = 0.707 #0x3F34FDF4
|
||||||
|
#$bustY = 0.707 #0x3F34FDF4
|
||||||
|
#$bustZ = 0.707 #0x3F34FDF4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Chest:"
|
||||||
|
name = Normal
|
||||||
|
condition = (($characterID == 12) + ($characterID >= 16)) == 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Chest:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 14
|
||||||
|
$bustX = 0.85 #0x3F59999A
|
||||||
|
$bustY = 0.85 #0x3F59999A
|
||||||
|
$bustZ = 0.85 #0x3F59999A
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Chest:"
|
||||||
|
name = Normal
|
||||||
|
condition = $characterID == 15
|
||||||
|
$bustX = 0.93 #0x3F6E147B
|
||||||
|
$bustY = 0.93 #0x3F6E147B
|
||||||
|
$bustZ = 0.93 #0x3F6E147B
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = "Chest:"
|
||||||
|
name = Invisible
|
||||||
|
condition = (($characterID == 1) + ($characterID == 12) + ($characterID >= 14)) == 1
|
||||||
|
$invis = 0xFFFF #bustXYZ = 0xFFFFFFFF
|
307
src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm
Normal file
307
src/XenobladeChroniclesX/Mods/CharacterUnlockArts/patch_arts.asm
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
[XCX_ArtsUnlock]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x7672271D, 0x218F6E07, 0xAB97DE6B, 0x676EB33E, 0x785CA8A9 ; 1.0.1E, 1.0.2U, 1.0.2J, 1.0.0E, 1.0.1U, 1.0.0U, 1.0.0J
|
||||||
|
.origin = codecave
|
||||||
|
|
||||||
|
_ArtsMemorJP100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r31, 0x103a
|
||||||
|
lwz r31, -0x489c (r31)
|
||||||
|
b _ArtsUnlockMod
|
||||||
|
|
||||||
|
_ArtsMemorUS100:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r31, 0x103a
|
||||||
|
lwz r31, -0x3e78 (r31)
|
||||||
|
b _ArtsUnlockMod
|
||||||
|
|
||||||
|
_ArtsMemorJP102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r31, 0x103a
|
||||||
|
lwz r31, -0x42b0 (r31)
|
||||||
|
b _ArtsUnlockMod
|
||||||
|
|
||||||
|
_ArtsMemorEU101US102:
|
||||||
|
;reads from the static address that stores the address for the start of character info memory section
|
||||||
|
lis r31, 0x103a
|
||||||
|
lwz r31, -0x3d78 (r31)
|
||||||
|
|
||||||
|
_ArtsUnlockMod: ;r30 r16 r17 r31 r0 r12
|
||||||
|
cmpw r4, r29
|
||||||
|
beq _forceArtsinCreateParty
|
||||||
|
|
||||||
|
addi r17, r31, $memoffset-1
|
||||||
|
li r16, $arts
|
||||||
|
li r0, $check
|
||||||
|
cmpwi r0, 1 ; <- conditional for what cheat to do
|
||||||
|
beq _ArtsUnlockALL
|
||||||
|
cmpwi r0, 5
|
||||||
|
beq _forceArtsEquiped123
|
||||||
|
li r12, 0
|
||||||
|
cmpwi r0, 2
|
||||||
|
beq _unlockunusedarts
|
||||||
|
cmpwi r0, 3
|
||||||
|
beq _whileLoopUseSpecificCharactersArts
|
||||||
|
cmpwi r0, 4
|
||||||
|
beq _unlockIndividualArts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_forceArtsEquiped123:
|
||||||
|
subi r17, r17, 0x24C
|
||||||
|
li r16, $artadr4+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art4
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr3+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art3
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr2+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr1+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $arts
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr8+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art8
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr7+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art7
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr6+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art6
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $artadr5+2
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $art5
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
li r16, $arts
|
||||||
|
addi r17, r31, $memoffset-1
|
||||||
|
b _unlockIndividualArts
|
||||||
|
|
||||||
|
|
||||||
|
_whileLoopUseSpecificCharactersArts:
|
||||||
|
addi r31, r31, $memoffset+0x9B
|
||||||
|
stbu r12, 1(r17)
|
||||||
|
cmpw r17, r31
|
||||||
|
blt+ _whileLoopUseSpecificCharactersArts
|
||||||
|
subi r17, r31, 0x9B+1
|
||||||
|
li r16, $art9
|
||||||
|
stb r16, $art2adr1+1(r17)
|
||||||
|
stb r16, $art2adr2+1(r17)
|
||||||
|
stb r16, $art2adr3+1(r17)
|
||||||
|
stb r16, $art2adr4+1(r17)
|
||||||
|
stb r16, $art2adr5+1(r17)
|
||||||
|
stb r16, $art2adr6+1(r17)
|
||||||
|
stb r16, $art2adr7+1(r17)
|
||||||
|
stb r16, $art2adr8+1(r17)
|
||||||
|
stb r16, $art2adr9+1(r17)
|
||||||
|
stb r16, $art2adr10+1(r17)
|
||||||
|
stb r16, $art2adr11+1(r17)
|
||||||
|
stb r16, $art2adr12+1(r17)
|
||||||
|
stb r16, $art2adr13+1(r17)
|
||||||
|
stb r16, $art2adr14+1(r17)
|
||||||
|
stb r16, $art2adr15+1(r17)
|
||||||
|
stb r16, $art2adr16+1(r17)
|
||||||
|
li r16, $arts
|
||||||
|
|
||||||
|
_unlockIndividualArts:
|
||||||
|
;li r16, $arts
|
||||||
|
stb r16, $artadr1+1(r17)
|
||||||
|
li r16, $art2
|
||||||
|
stb r16, $artadr2+1(r17)
|
||||||
|
li r16, $art3
|
||||||
|
stb r16, $artadr3+1(r17)
|
||||||
|
li r16, $art4
|
||||||
|
stb r16, $artadr4+1(r17)
|
||||||
|
li r16, $art5
|
||||||
|
stb r16, $artadr5+1(r17)
|
||||||
|
li r16, $art6
|
||||||
|
stb r16, $artadr6+1(r17)
|
||||||
|
li r16, $art7
|
||||||
|
stb r16, $artadr7+1(r17)
|
||||||
|
li r16, $art8
|
||||||
|
stb r16, $artadr8+1(r17)
|
||||||
|
li r16, $arts
|
||||||
|
stb r16, $artadr9+1(r17)
|
||||||
|
stb r16, $artadr10+1(r17)
|
||||||
|
stb r16, $artadr11+1(r17)
|
||||||
|
stb r16, $artadr12+1(r17)
|
||||||
|
stb r16, $artadr13+1(r17)
|
||||||
|
stb r16, $artadr14+1(r17)
|
||||||
|
stb r16, $artadr15+1(r17)
|
||||||
|
stb r16, $artadr16+1(r17)
|
||||||
|
b _exitArtsUnlockedMod
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_unlockunusedarts:
|
||||||
|
;li r16, $arts
|
||||||
|
stb r16, 0xD+1(r17) ;Full Burst
|
||||||
|
li r16, $art2
|
||||||
|
stb r16, 0x67+1(r17) ;Air Slash
|
||||||
|
b _exitArtsUnlockedMod
|
||||||
|
|
||||||
|
|
||||||
|
_ArtsUnlockALL:
|
||||||
|
;Unlocks ALL possible arts
|
||||||
|
lbz r12, 0x67+1(r17) ;saves the level of air slash
|
||||||
|
stb r12, $memoffset-0x337(r31) ;stores the level of air slash in memory
|
||||||
|
;airslash is stored where character name length is, the game auto fixes this value if its wrong
|
||||||
|
lbz r12, 0x0D+1(r17)
|
||||||
|
|
||||||
|
_RangedArtsClass123:
|
||||||
|
;li r16, $arts
|
||||||
|
li r0, $rclass
|
||||||
|
cmpwi r0, 1
|
||||||
|
bne _RangedArtsMission123
|
||||||
|
addi r30, r31, $memoffset+0x33
|
||||||
|
_whileLoopRangedArtsClass:
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
cmpw r17, r30
|
||||||
|
blt+ _whileLoopRangedArtsClass
|
||||||
|
stb r16, $memoffset+0x74(r31) ;Boost Barrel
|
||||||
|
stb r16, $memoffset+0x75(r31) ;Sniper Barrel
|
||||||
|
stb r16, $memoffset+0x76(r31) ;Missile Barrel
|
||||||
|
stb r16, $memoffset+0x77(r31) ;Cannon Barrel
|
||||||
|
|
||||||
|
_RangedArtsMission123:
|
||||||
|
;li r16, $arts
|
||||||
|
li r0, $rmission
|
||||||
|
cmpwi r0, 1
|
||||||
|
bne _MeleeArtsClass123
|
||||||
|
addi r17, r31, $memoffset+0x78-1
|
||||||
|
addi r30, r31, $memoffset+0x88
|
||||||
|
_whileLoopRangedArtsMission:
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
cmpw r17, r30
|
||||||
|
blt+ _whileLoopRangedArtsMission
|
||||||
|
|
||||||
|
_MeleeArtsClass123:
|
||||||
|
;li r16, $arts
|
||||||
|
li r0, $mclass
|
||||||
|
cmpwi r0, 1
|
||||||
|
bne _MeleeArtsMission123
|
||||||
|
addi r17, r31, $memoffset+0x35-1
|
||||||
|
addi r30, r31, $memoffset+0x72
|
||||||
|
_whileLoopMeleeArtsClass:
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
cmpw r17, r30
|
||||||
|
blt+ _whileLoopMeleeArtsClass
|
||||||
|
|
||||||
|
_MeleeArtsMission123:
|
||||||
|
;li r16, $arts
|
||||||
|
li r0, $mmission
|
||||||
|
cmpwi r0, 1
|
||||||
|
bne _ExitArtsUnlockALL
|
||||||
|
addi r17, r31, $memoffset+0x89-1
|
||||||
|
addi r30, r31, $memoffset+0x9B
|
||||||
|
_whileLoopMeleeArtsMission:
|
||||||
|
stbu r16, 1(r17)
|
||||||
|
cmpw r17, r30
|
||||||
|
blt+ _whileLoopMeleeArtsMission
|
||||||
|
|
||||||
|
_ExitArtsUnlockALL:
|
||||||
|
addi r31, r31, $memoffset
|
||||||
|
stb r12, 0x0D(r31) ; restores the level of full burst
|
||||||
|
lbz r12, -0x337(r31) ; grabs air slash's level
|
||||||
|
stb r12, 0x67(r31) ; restores the level of air slash
|
||||||
|
;fixes bytes that are supposed to be 00
|
||||||
|
li r16, 0x00
|
||||||
|
stb r16, -1(r31)
|
||||||
|
stb r16, 0x0E(r31)
|
||||||
|
stb r16, 0x16(r31)
|
||||||
|
stb r16, 0x1E(r31)
|
||||||
|
stb r16, 0x25(r31)
|
||||||
|
stb r16, 0x2D(r31)
|
||||||
|
stb r16, 0x34(r31)
|
||||||
|
stb r16, 0x3D(r31)
|
||||||
|
stb r16, 0x45(r31)
|
||||||
|
stb r16, 0x50(r31)
|
||||||
|
stb r16, 0x5A(r31)
|
||||||
|
stb r16, 0x68(r31)
|
||||||
|
stb r16, 0x73(r31)
|
||||||
|
|
||||||
|
_exitArtsUnlockedMod:
|
||||||
|
;fixes line we overwrote
|
||||||
|
or r30, r3, r3
|
||||||
|
blr
|
||||||
|
|
||||||
|
_forceArtsinCreateParty:
|
||||||
|
li r4, $check
|
||||||
|
cmpwi r4, 5
|
||||||
|
bne _exitForceArtsinCreateParty
|
||||||
|
|
||||||
|
addi r31, r31, $memoffset-0x24D
|
||||||
|
li r4, $artadr4+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art4
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr3+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art3
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr2+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr1+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $arts
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr8+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art8
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr7+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art7
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr6+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art6
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $artadr5+2
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
li r4, $art5
|
||||||
|
stbu r4, 1(r31)
|
||||||
|
|
||||||
|
_exitForceArtsinCreateParty:
|
||||||
|
addi r3, r1, 0x8
|
||||||
|
addi r4, r29, 0x14
|
||||||
|
blr
|
||||||
|
|
||||||
|
[XCX_ArtsUnlock_V101E]
|
||||||
|
moduleMatches = 0xF882D5CF, 0x218F6E07 ; 1.0.1E, 1.0.0E
|
||||||
|
0x02A923F4 = bla _ArtsMemorEU101US102
|
||||||
|
0x023428E8 = or r4, r29, r29
|
||||||
|
0x023428EC = bla _ArtsMemorEU101US102
|
||||||
|
|
||||||
|
[XCX_ArtsUnlock_V102U]
|
||||||
|
moduleMatches = 0x30B6E091 ; 1.0.2U
|
||||||
|
0x02A923E4 = bla _ArtsMemorEU101US102
|
||||||
|
0x023428E8 = or r4, r29, r29
|
||||||
|
0x023428EC = bla _ArtsMemorEU101US102
|
||||||
|
|
||||||
|
[XCX_ArtsUnlock_V102J]
|
||||||
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
|
0x02A8E95C = bla _ArtsMemorJP102
|
||||||
|
0x0234211C = or r4, r29, r29
|
||||||
|
0x02342120 = bla _ArtsMemorJP102
|
||||||
|
|
||||||
|
[XCX_ArtsUnlock_V100U]
|
||||||
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
|
0x02A92368 = bla _ArtsMemorUS100
|
||||||
|
0x02342878 = or r4, r29, r29
|
||||||
|
0x0234287C = bla _ArtsMemorUS100
|
||||||
|
|
||||||
|
[XCX_ArtsUnlock_V100J]
|
||||||
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
|
0x02A8CCA4 = bla _ArtsMemorJP100
|
||||||
|
0x02341FA8 = or r4, r29, r29
|
||||||
|
0x02341FAC = bla _ArtsMemorJP100
|
11118
src/XenobladeChroniclesX/Mods/CharacterUnlockArts/rules.txt
Normal file
11118
src/XenobladeChroniclesX/Mods/CharacterUnlockArts/rules.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,44 +1,22 @@
|
|||||||
[XCX_FREECAM_V101E_V102U]
|
[XCX_FREECAM_V101E_V102U]
|
||||||
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
moduleMatches = 0xF882D5CF, 0x30B6E091, 0x218F6E07 ; 1.0.1E, 1.0.2U, 1.0.0E
|
||||||
;this mod accesses the developer freecam used by the monolith soft devs
|
;this mod accesses the developer freecam used by the monolith soft devs
|
||||||
;'nop' makes it so that the specified line never executes
|
;we simply just prevent 2 functions from ever being called
|
||||||
|
|
||||||
; in func exe_normal__Q2_3Cam8CCamCtrlFv
|
0x025f4e00 = blr ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
||||||
0x022261BC = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
|
||||||
; in func isControl__Q2_3cfs9CfObjUtilSFPQ2_3cfs5CfObj
|
|
||||||
0x0244F930 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
|
||||||
; in func isControl__Q2_3cfs18CfCompoActionActorCFPQ2_3cfs5CfObj
|
|
||||||
0x02467090 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
|
||||||
; in func updateBefore__Q2_3cfs16CfCompoCtrlActorFf
|
|
||||||
0x025532E8 = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
|
||||||
; in func update__Q2_3cfs14CfSceneFreeCamFv
|
|
||||||
0x02601CFC = nop ;isFreeCamera__Q2_3cfs14CfSceneManagerCFv
|
|
||||||
; in func dispFieldCamera__Q2_2ev16CUIManagerAlwaysFb
|
|
||||||
0x0276A774 = nop ;MenuTask::openHudEventCamera
|
0x0276A774 = nop ;MenuTask::openHudEventCamera
|
||||||
|
|
||||||
[XCX_FREECAM_V102J]
|
[XCX_FREECAM_V102J]
|
||||||
moduleMatches = 0x7672271D ; 1.0.2J
|
moduleMatches = 0x7672271D ; 1.0.2J
|
||||||
0x02225C88 = nop
|
0x025F43DC = blr
|
||||||
0x0244EF70 = nop
|
|
||||||
0x024666D0 = nop
|
|
||||||
0x025528C4 = nop
|
|
||||||
0x026012D8 = nop
|
|
||||||
0x02768EEC = nop
|
0x02768EEC = nop
|
||||||
|
|
||||||
[XCX_FREECAM_V100U]
|
[XCX_FREECAM_V100U]
|
||||||
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
moduleMatches = 0xAB97DE6B, 0x676EB33E ; 1.0.1U, 1.0.0U
|
||||||
0x022261BC = nop
|
0x025f4d90 = blr
|
||||||
0x0244F8C0 = nop
|
|
||||||
0x02467020 = nop
|
|
||||||
0x02553278 = nop
|
|
||||||
0x02601C8C = nop
|
|
||||||
0x0276A714 = nop
|
0x0276A714 = nop
|
||||||
|
|
||||||
[XCX_FREECAM_V100J]
|
[XCX_FREECAM_V100J]
|
||||||
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
moduleMatches = 0x785CA8A9 ; 1.0.0J
|
||||||
0x02225A04 = nop
|
0x025f3900 = blr
|
||||||
0x0244E494 = nop
|
|
||||||
0x02465BF4 = nop
|
|
||||||
0x02551DE8 = nop
|
|
||||||
0x026007FC = nop
|
|
||||||
0x02767F7C = nop
|
0x02767F7C = nop
|
||||||
|
@ -3,7 +3,7 @@ titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
|||||||
name = "Force Weather"
|
name = "Force Weather"
|
||||||
path = "Xenoblade Chronicles X/Mods/Weather/Force Weather"
|
path = "Xenoblade Chronicles X/Mods/Weather/Force Weather"
|
||||||
description = Force selected weather. Just select a preset and unload/reload the pack.|Weather Lock works even when traveling into different regions.
|
description = Force selected weather. Just select a preset and unload/reload the pack.|Weather Lock works even when traveling into different regions.
|
||||||
version = 6
|
version = 7
|
||||||
|
|
||||||
[Default]
|
[Default]
|
||||||
$wtr = 1
|
$wtr = 1
|
||||||
@ -244,11 +244,10 @@ category = Weather
|
|||||||
condition = $region == 5
|
condition = $region == 5
|
||||||
$wtr = 6
|
$wtr = 6
|
||||||
|
|
||||||
###### uncommemt below to use different weather in the Barracks
|
[Preset] ###########################################
|
||||||
###[Preset] ###########################################
|
name = "Blade Barracks (unused)"
|
||||||
###name = "Blade Barracks (unused)"
|
category = Region
|
||||||
###category = Region
|
$region = 6
|
||||||
###$region = 6
|
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = "Clear [1]"
|
name = "Clear [1]"
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
- **Soul Challenges - Skell restored**: When your Skell is destroyed during battle, it is restored automatically (you may need to fast travel).
|
- **Soul Challenges - Skell restored**: When your Skell is destroyed during battle, it is restored automatically (you may need to fast travel).
|
||||||
|
|
||||||
### BLADE mods
|
### BLADE mods
|
||||||
- **BLADE Medal count mod** sets the number of BLADE Medals you currently have.
|
- **BLADE Medal Count Mod**: sets the number of BLADE Medals you currently have.
|
||||||
- **DLC quests unlocked**: DLC Support quests are unlocked and accessible as soon as you become a BLADE member.
|
- **DLC Quests Unlocked**: DLC Support quests are unlocked and accessible as soon as you become a BLADE member.
|
||||||
- **Gain Reward Tickets from DLC or Time Attack missions**: Add Exchange Tickets in reward for completing Blade missions.
|
- **Gain Reward Tickets from DLC or Time Attack missions**: Add Exchange Tickets in reward for completing Blade missions.
|
||||||
> There are 2 presets:
|
> There are 2 presets:
|
||||||
> 1. Adds (exp) tickets to Time Attack missions
|
> 1. Adds (exp) tickets to Time Attack missions
|
||||||
@ -22,6 +22,14 @@
|
|||||||
- **Offline Squad tasks and missions**: Squad tasks and missions become available for offline play! When the game starts, a Squad quest is randomly selected (with "Random" preset) and the timer is stopped.
|
- **Offline Squad tasks and missions**: Squad tasks and missions become available for offline play! When the game starts, a Squad quest is randomly selected (with "Random" preset) and the timer is stopped.
|
||||||
> Other presets allow to choose a specific tasks list. (c ) stands for collectible and (t) for Tyrant.
|
> Other presets allow to choose a specific tasks list. (c ) stands for collectible and (t) for Tyrant.
|
||||||
> When "Random" preset is selected, you can randomly change the active mission by opening the main menu and select "Social entry" > "Select Squad" command.
|
> When "Random" preset is selected, you can randomly change the active mission by opening the main menu and select "Social entry" > "Select Squad" command.
|
||||||
|
- **Field Skill Level Mod**: Can change your Mechanical, Biological, Archeaological field level.
|
||||||
|
|
||||||
|
### Character mods
|
||||||
|
- **Character Level**: Can change any characters current level.
|
||||||
|
- **Character Size**: Can change any characters size, and even has some glitch size values.
|
||||||
|
- **Change Character Name**: Can change any characters name and can rename your avatar.
|
||||||
|
- **Unlock Character Arts**: Can unlock any or all arts and can force arts to be equiped, even multiple of the same art.
|
||||||
|
|
||||||
|
|
||||||
### Collectibles mods
|
### Collectibles mods
|
||||||
- **Catch range mod**: Increase the distance from which you catch a collectible.
|
- **Catch range mod**: Increase the distance from which you catch a collectible.
|
||||||
|
@ -0,0 +1,111 @@
|
|||||||
|
#version 420
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 3cc7e98f78c258b4 //Brightness fix
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#ifdef VULKAN
|
||||||
|
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
|
||||||
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
|
||||||
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
|
||||||
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#else
|
||||||
|
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
|
||||||
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
|
||||||
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
|
||||||
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 2) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[1];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[1];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
TEXTURE_LAYOUT(1, 1, 1) uniform sampler3D textureUnitPS1;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
const float exposure = $exposure;
|
||||||
|
const float vibrance = $vibrance;
|
||||||
|
const float postExposure = $postExposure;
|
||||||
|
const float contrastCurve = $contrastCurve;
|
||||||
|
|
||||||
|
int clampFI32(int v)
|
||||||
|
{
|
||||||
|
if( v == 0x7FFFFFFF )
|
||||||
|
return floatBitsToInt(1.0);
|
||||||
|
else if( v == 0xFFFFFFFF )
|
||||||
|
return floatBitsToInt(0.0);
|
||||||
|
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
||||||
|
}
|
||||||
|
float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 R0f = vec4(0.0);
|
||||||
|
vec4 R1f = vec4(0.0);
|
||||||
|
vec4 R5f = vec4(0.0);
|
||||||
|
vec4 R127f = vec4(0.0);
|
||||||
|
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
||||||
|
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
||||||
|
float PS0f = 0.0, PS1f = 0.0;
|
||||||
|
vec4 tempf = vec4(0.0);
|
||||||
|
float tempResultf;
|
||||||
|
float tempResultf2;
|
||||||
|
int tempResulti;
|
||||||
|
ivec4 ARi = ivec4(0);
|
||||||
|
bool predResult = true;
|
||||||
|
vec3 cubeMapSTM;
|
||||||
|
int cubeMapFaceId;
|
||||||
|
R0f = passParameterSem0;
|
||||||
|
R0f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
||||||
|
R5f.xyzw = texture(textureUnitPS0, passParameterSem0.xy);
|
||||||
|
// 0
|
||||||
|
tempResultf = clamp(intBitsToFloat(uf_remappedPS[0].x), 0.0, exposure);
|
||||||
|
tempResultf2 = clamp(intBitsToFloat(uf_remappedPS[0].z), 0.0, 1.0);
|
||||||
|
R127f.x = R0f.z * tempResultf;//intBitsToFloat(uf_remappedPS[0].x);
|
||||||
|
R127f.x = clamp(R127f.x, 0.0, 1.0);
|
||||||
|
R127f.y = R0f.y * tempResultf;
|
||||||
|
R127f.y = clamp(R127f.y, 0.0, 1.0);
|
||||||
|
PV0f.z = R0f.x * tempResultf;
|
||||||
|
PV0f.z = clamp(PV0f.z, 0.0, 1.0);
|
||||||
|
R1f.w = 1.0;
|
||||||
|
// 1
|
||||||
|
tempResultf = max(0.0, PV0f.z);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS1f = tempResultf;
|
||||||
|
// 2
|
||||||
|
R127f.z = PS1f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
tempResultf = max(0.0, R127f.y);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS0f = tempResultf;
|
||||||
|
// 3
|
||||||
|
R127f.w = PS0f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
tempResultf = max(0.0, R127f.x);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS1f = tempResultf;
|
||||||
|
// 4
|
||||||
|
R127f.x = PS1f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
PS0f = exp2(R127f.z);
|
||||||
|
// 5
|
||||||
|
R0f.x = (PS0f * tempResultf2 + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
PS1f = exp2(R127f.w);
|
||||||
|
// 6
|
||||||
|
R0f.y = (PS1f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
PS0f = exp2(R127f.x);
|
||||||
|
// 7
|
||||||
|
R0f.z = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
R0f.xyz = clamp(R0f.xyz, 0.0, 1.0);
|
||||||
|
R1f.xyz = (texture(textureUnitPS1, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
||||||
|
// export
|
||||||
|
R5f = mix (R1f,R5f,vibrance)*postExposure;
|
||||||
|
R5f.xyz = mix(R5f.xyz, smoothstep(0.0, 1.0, R5f.xyz), contrastCurve);
|
||||||
|
passPixelColor0 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,124 @@
|
|||||||
|
#version 420
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader d936195db0dd8e7d //crossfade
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#ifdef VULKAN
|
||||||
|
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
|
||||||
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
|
||||||
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
|
||||||
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#else
|
||||||
|
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
|
||||||
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
|
||||||
|
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
|
||||||
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 3) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[1];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[1];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
TEXTURE_LAYOUT(1, 1, 1) uniform sampler3D textureUnitPS1;
|
||||||
|
TEXTURE_LAYOUT(2, 1, 2) uniform sampler3D textureUnitPS2;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
const float exposure = $exposure;
|
||||||
|
const float vibrance = $vibrance;
|
||||||
|
const float postExposure = $postExposure;
|
||||||
|
const float contrastCurve = $contrastCurve;
|
||||||
|
int clampFI32(int v)
|
||||||
|
{
|
||||||
|
if( v == 0x7FFFFFFF )
|
||||||
|
return floatBitsToInt(1.0);
|
||||||
|
else if( v == 0xFFFFFFFF )
|
||||||
|
return floatBitsToInt(0.0);
|
||||||
|
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
||||||
|
}
|
||||||
|
float mul_nonIEEE(float a, float b){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); }
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 R0f = vec4(0.0);
|
||||||
|
vec4 R1f = vec4(0.0);
|
||||||
|
vec4 R2f = vec4(0.0);
|
||||||
|
vec4 R5f = vec4(0.0);
|
||||||
|
vec4 R127f = vec4(0.0);
|
||||||
|
float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f;
|
||||||
|
vec4 PV0f = vec4(0.0), PV1f = vec4(0.0);
|
||||||
|
float PS0f = 0.0, PS1f = 0.0;
|
||||||
|
vec4 tempf = vec4(0.0);
|
||||||
|
float tempResultf;
|
||||||
|
float tempResultf2;
|
||||||
|
int tempResulti;
|
||||||
|
ivec4 ARi = ivec4(0);
|
||||||
|
bool predResult = true;
|
||||||
|
vec3 cubeMapSTM;
|
||||||
|
int cubeMapFaceId;
|
||||||
|
R0f = passParameterSem0;
|
||||||
|
R0f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
||||||
|
R5f.xyzw = texture(textureUnitPS0, passParameterSem0.xy);
|
||||||
|
// 0
|
||||||
|
backupReg0f = R0f.x;
|
||||||
|
tempResultf = clamp(intBitsToFloat(uf_remappedPS[0].x), 0.0, exposure);
|
||||||
|
tempResultf2 = clamp(intBitsToFloat(uf_remappedPS[0].z), 0.0, 1.0);
|
||||||
|
PV0f.x = backupReg0f * tempResultf; //intBitsToFloat(uf_remappedPS[0].x);
|
||||||
|
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
|
||||||
|
R127f.z = R0f.z * tempResultf;
|
||||||
|
R127f.z = clamp(R127f.z, 0.0, 1.0);
|
||||||
|
R127f.w = R0f.y * tempResultf;
|
||||||
|
R127f.w = clamp(R127f.w, 0.0, 1.0);
|
||||||
|
R2f.w = 1.0;
|
||||||
|
PS0f = R2f.w;
|
||||||
|
// 1
|
||||||
|
tempResultf = max(0.0, PV0f.x);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS1f = tempResultf;
|
||||||
|
// 2
|
||||||
|
R127f.x = PS1f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
tempResultf = max(0.0, R127f.w);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS0f = tempResultf;
|
||||||
|
// 3
|
||||||
|
R127f.y = PS0f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
tempResultf = max(0.0, R127f.z);
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
|
||||||
|
PS1f = tempResultf;
|
||||||
|
// 4
|
||||||
|
R127f.w = PS1f * intBitsToFloat(0x3ee8ba2e);
|
||||||
|
PS0f = exp2(R127f.x);
|
||||||
|
// 5
|
||||||
|
R0f.x = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
PS1f = exp2(R127f.y);
|
||||||
|
// 6
|
||||||
|
R0f.y = (PS1f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
PS0f = exp2(R127f.w);
|
||||||
|
// 7
|
||||||
|
R0f.z = (PS0f * intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[0].w));
|
||||||
|
R1f.xyz = (texture(textureUnitPS1, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
||||||
|
R0f.xyz = (texture(textureUnitPS2, vec3(R0f.x,R0f.y,R0f.z)).xyz);
|
||||||
|
// 0
|
||||||
|
backupReg0f = R0f.y;
|
||||||
|
backupReg1f = R0f.x;
|
||||||
|
PV0f.x = R1f.z + -(R0f.z);
|
||||||
|
PV0f.y = R1f.y + -(backupReg0f);
|
||||||
|
PV0f.z = R1f.x + -(backupReg1f);
|
||||||
|
// 1
|
||||||
|
R2f.x = (PV0f.z * intBitsToFloat(uf_remappedPS[0].y) + R0f.x);
|
||||||
|
R2f.y = (PV0f.y * intBitsToFloat(uf_remappedPS[0].y) + R0f.y);
|
||||||
|
R2f.z = (PV0f.x * intBitsToFloat(uf_remappedPS[0].y) + R0f.z);
|
||||||
|
|
||||||
|
R2f = mix (R2f,R5f,vibrance)*postExposure;
|
||||||
|
R2f.xyz = mix(R2f.xyz, smoothstep(0.0, 1.0, R2f.xyz), contrastCurve);
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
|
||||||
|
}
|
323
src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt
Normal file
323
src/XenobladeChroniclesX/Workarounds/BrightnessOLD/rules.txt
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010116100,00050000101C4C00,00050000101C4D00
|
||||||
|
name = Brightness fix with colour and contrast
|
||||||
|
path = "Xenoblade Chronicles X/Workarounds/Brightness OLD"
|
||||||
|
description = Old version of the XCX brightness Workaround. Some people like this version better than the more recent current version.|Made by getdls.
|
||||||
|
version = 7
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$contrastCurve:float = 0.0 # 0.0 no extra contrast to mix in
|
||||||
|
$exposure:float = 1.0 # 1.0 Full range without clipping pre mix - brightness fixed
|
||||||
|
$postExposure:float = 1.0 # 1.0 Full range without clipping - 1.1 -> slight clipping but nice
|
||||||
|
$vibrance:float = 0.0 # 0.0 no extra vibrance
|
||||||
|
$mixBalance:float = 1.0 # FXAA, bicubic sharpen or smooth pass -> Reserved for FX / Contrasty rework
|
||||||
|
$glare:float = 0.95 # Reflection shader raise/lower to balance clipping -> Reserved for FX / Contrasty rework
|
||||||
|
$lift:float = 0.002 # Raise shadows -> Reserved for FX / Contrasty rework
|
||||||
|
$isCustom:int = 0
|
||||||
|
|
||||||
|
##Pre packed settings
|
||||||
|
[Preset]
|
||||||
|
name = WiiU default - Brightness fix only
|
||||||
|
category = Standard presets
|
||||||
|
$contrastCurve:float = 0.0
|
||||||
|
$exposure:float = 1.0
|
||||||
|
$postExposure:float = 1.0
|
||||||
|
$vibrance:float = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Increased brightness levels 1.15
|
||||||
|
category = Standard presets
|
||||||
|
$contrastCurve:float = 0
|
||||||
|
$exposure:float = 1.15
|
||||||
|
$postExposure:float = 1.0
|
||||||
|
$vibrance:float = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Increased contrast no colour change
|
||||||
|
category = Standard presets
|
||||||
|
$contrastCurve:float = 0.2
|
||||||
|
$exposure:float = 1.1
|
||||||
|
$postExposure:float = 1.05
|
||||||
|
$vibrance:float = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Saturation and contrast 1.25 - Darker nights
|
||||||
|
category = Standard presets
|
||||||
|
$contrastCurve:float = 0
|
||||||
|
$exposure:float = 1.3
|
||||||
|
$postExposure:float = 1.1
|
||||||
|
$vibrance:float = 0.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Saturation and contrast 1.5 - Darker Nights
|
||||||
|
category = Standard presets
|
||||||
|
$contrastCurve:float = 0.0
|
||||||
|
$exposure:float = 1.55
|
||||||
|
$postExposure:float = 1.15
|
||||||
|
$vibrance:float = 0.45
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Custom
|
||||||
|
category = Standard presets
|
||||||
|
$isCustom:int = 1
|
||||||
|
|
||||||
|
|
||||||
|
##exposure
|
||||||
|
[Preset]
|
||||||
|
name = No extra exposure - Only brightness fix
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% less exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 0.9
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% less exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 0.85
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% less exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 5% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 30% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 75% more exposure
|
||||||
|
category = Exposure and brightness fix
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$exposure:float = 1.5
|
||||||
|
|
||||||
|
|
||||||
|
##Saturation
|
||||||
|
[Preset]
|
||||||
|
name = No extra saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 5% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 30% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 75% more saturation
|
||||||
|
category = Saturation - Darkens image
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$vibrance:float = 0.75
|
||||||
|
|
||||||
|
|
||||||
|
##Contrast curve
|
||||||
|
[Preset]
|
||||||
|
name = No extra contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20 % less contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = -0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 5% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 30% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 75% more contrast
|
||||||
|
category = Contrast
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$contrastCurve:float = 0.75
|
||||||
|
|
||||||
|
##postExposure curve
|
||||||
|
[Preset]
|
||||||
|
name = No post postExposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% less post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 0.9
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% less post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 0.85
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% less post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 5% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.05
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 15% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.15
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 30% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% more post Exposure
|
||||||
|
category = Exposure after colour grading
|
||||||
|
condition = $isCustom == 1
|
||||||
|
$postExposure:float = 1.5
|
Loading…
Reference in New Issue
Block a user