mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-01-27 16:24:54 +00:00
OpenXR - Use per game stereo separation file
This commit is contained in:
parent
93202e47f4
commit
bdde5f0f7f
@ -8,6 +8,7 @@
|
||||
#include "Core/HLE/sceDisplay.h"
|
||||
#include "Core/Config.h"
|
||||
#include "Core/KeyMap.h"
|
||||
#include "Core/System.h"
|
||||
|
||||
|
||||
/*
|
||||
@ -239,7 +240,6 @@ bool PreVRRender() {
|
||||
VR_SetConfig(VR_CONFIG_6DOF_ENABLED, g_Config.bEnable6DoF);
|
||||
VR_SetConfig(VR_CONFIG_CANVAS_DISTANCE, g_Config.iCanvasDistance);
|
||||
VR_SetConfig(VR_CONFIG_FOV_SCALE, g_Config.iFieldOfViewPercentage);
|
||||
VR_SetConfig(VR_CONFIG_STEREO_SEPARATION, g_Config.iStereoSeparation);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -285,9 +285,19 @@ void UpdateVRProjection(float* projMatrix, float* leftEye, float* rightEye) {
|
||||
VR_TweakProjection(projMatrix, leftEye, VR_PROJECTION_MATRIX_LEFT_EYE);
|
||||
VR_TweakProjection(projMatrix, rightEye, VR_PROJECTION_MATRIX_RIGHT_EYE);
|
||||
VR_TweakMirroring(projMatrix);
|
||||
|
||||
// Set 6DoF scale
|
||||
float scale = pow(fabs(projMatrix[14]), 1.15f);
|
||||
if (PSP_CoreParameter().compat.vrCompat().UnitsPerMeter > 0) {
|
||||
scale = PSP_CoreParameter().compat.vrCompat().UnitsPerMeter;
|
||||
VR_SetConfig(VR_CONFIG_6DOF_PRECISE, true);
|
||||
} else {
|
||||
VR_SetConfig(VR_CONFIG_6DOF_PRECISE, false);
|
||||
}
|
||||
VR_SetConfig(VR_CONFIG_6DOF_SCALE, (int)(scale * 1000000));
|
||||
}
|
||||
|
||||
void UpdateVRView(float* projMatrix, float* leftEye, float* rightEye) {
|
||||
VR_TweakView(leftEye, projMatrix, VR_VIEW_MATRIX_LEFT_EYE);
|
||||
VR_TweakView(rightEye, projMatrix, VR_VIEW_MATRIX_RIGHT_EYE);
|
||||
void UpdateVRView(float* leftEye, float* rightEye) {
|
||||
VR_TweakView(leftEye, VR_VIEW_MATRIX_LEFT_EYE);
|
||||
VR_TweakView(rightEye, VR_VIEW_MATRIX_RIGHT_EYE);
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ bool IsMultiviewSupported();
|
||||
bool IsFlatVRScene();
|
||||
bool Is2DVRObject(float* projMatrix, bool ortho);
|
||||
void UpdateVRProjection(float* projMatrix, float* leftEye, float* rightEye);
|
||||
void UpdateVRView(float* projMatrix, float* leftEye, float* rightEye);
|
||||
void UpdateVRView(float* leftEye, float* rightEye);
|
||||
|
||||
#else //dummy integration
|
||||
|
||||
@ -47,6 +47,6 @@ inline bool IsMultiviewSupported() { return false; }
|
||||
inline bool IsFlatVRScene() { return true; }
|
||||
inline bool Is2DVRObject(float* projMatrix, bool ortho) { return false; }
|
||||
inline void UpdateVRProjection(float* projMatrix, float* leftEye, float* rightEye) {}
|
||||
inline void UpdateVRView(float* projMatrix, float* leftEye, float* rightEye) {}
|
||||
inline void UpdateVRView(float* leftEye, float* rightEye) {}
|
||||
|
||||
#endif
|
||||
|
@ -493,17 +493,16 @@ ovrMatrix4f VR_GetMatrix( VRMatrix matrix ) {
|
||||
}
|
||||
|
||||
output = ovrMatrix4f_CreateFromQuaternion(&invView.orientation);
|
||||
float scale = (float)VR_GetConfig(VR_CONFIG_6DOF_SCALE) * 0.001f;
|
||||
float scale = (float)VR_GetConfig(VR_CONFIG_6DOF_SCALE) * 0.000001f;
|
||||
if (vrConfig[VR_CONFIG_6DOF_ENABLED]) {
|
||||
output.M[0][3] -= hmdposition.x * (vrConfig[VR_CONFIG_MIRROR_AXIS_X] ? -1.0f : 1.0f) * scale;
|
||||
output.M[1][3] -= hmdposition.y * (vrConfig[VR_CONFIG_MIRROR_AXIS_Y] ? -1.0f : 1.0f) * scale;
|
||||
output.M[2][3] -= hmdposition.z * (vrConfig[VR_CONFIG_MIRROR_AXIS_Z] ? -1.0f : 1.0f) * scale;
|
||||
}
|
||||
if (matrix == VR_VIEW_MATRIX_RIGHT_EYE) {
|
||||
float ipdScale = (float)vrConfig[VR_CONFIG_STEREO_SEPARATION] * 0.1f * scale;
|
||||
output.M[0][3] += (invViewTransform[1].position.x - invViewTransform[0].position.x) * ipdScale;
|
||||
output.M[1][3] += (invViewTransform[1].position.y - invViewTransform[0].position.y) * ipdScale;
|
||||
output.M[2][3] += (invViewTransform[1].position.z - invViewTransform[0].position.z) * ipdScale;
|
||||
if (vrConfig[VR_CONFIG_6DOF_PRECISE] && (matrix == VR_VIEW_MATRIX_RIGHT_EYE)) {
|
||||
output.M[0][3] += (invViewTransform[1].position.x - invViewTransform[0].position.x) * scale;
|
||||
output.M[1][3] += (invViewTransform[1].position.y - invViewTransform[0].position.y) * scale;
|
||||
output.M[2][3] += (invViewTransform[1].position.z - invViewTransform[0].position.z) * scale;
|
||||
}
|
||||
} else {
|
||||
assert(false);
|
||||
|
@ -7,9 +7,9 @@ enum VRConfig {
|
||||
//switching between 2D and 3D
|
||||
VR_CONFIG_MODE, VR_CONFIG_3D_GEOMETRY_COUNT, VR_CONFIG_FORCE_2D,
|
||||
//camera setup
|
||||
VR_CONFIG_FOV_SCALE, VR_CONFIG_CANVAS_DISTANCE, VR_CONFIG_STEREO_SEPARATION,
|
||||
VR_CONFIG_FOV_SCALE, VR_CONFIG_CANVAS_DISTANCE,
|
||||
//6DoF
|
||||
VR_CONFIG_6DOF_ENABLED, VR_CONFIG_6DOF_SCALE,
|
||||
VR_CONFIG_6DOF_ENABLED, VR_CONFIG_6DOF_SCALE, VR_CONFIG_6DOF_PRECISE,
|
||||
VR_CONFIG_MIRROR_AXIS_X, VR_CONFIG_MIRROR_AXIS_Y, VR_CONFIG_MIRROR_AXIS_Z,
|
||||
VR_CONFIG_MIRROR_PITCH, VR_CONFIG_MIRROR_YAW, VR_CONFIG_MIRROR_ROLL,
|
||||
//2D canvas positioning
|
||||
|
@ -79,15 +79,11 @@ void VR_TweakProjection(float* src, float* dst, VRMatrix matrix) {
|
||||
memcpy(dst, hmdProjection.M, 16 * sizeof(float));
|
||||
}
|
||||
|
||||
void VR_TweakView(float* view, float* projMatrix, VRMatrix matrix) {
|
||||
void VR_TweakView(float* view, VRMatrix matrix) {
|
||||
// Get view matrix from the game
|
||||
ovrMatrix4f gameView;
|
||||
memcpy(gameView.M, view, 16 * sizeof(float));
|
||||
|
||||
// Set 6DoF scale
|
||||
float scale = pow(fabs(projMatrix[14]), 1.15f);
|
||||
VR_SetConfig(VR_CONFIG_6DOF_SCALE, (int)(scale * 1000));
|
||||
|
||||
// Get view matrix from the headset
|
||||
ovrMatrix4f hmdView = VR_GetMatrix(matrix);
|
||||
|
||||
|
@ -9,4 +9,4 @@ bool VR_TweakIsMatrixOneScale(float* matrix);
|
||||
bool VR_TweakIsMatrixOneTransform(float* matrix);
|
||||
void VR_TweakMirroring(float* projMatrix);
|
||||
void VR_TweakProjection(float* src, float* dst, VRMatrix matrix);
|
||||
void VR_TweakView(float* view, float* projMatrix, VRMatrix matrix);
|
||||
void VR_TweakView(float* view, VRMatrix matrix);
|
||||
|
@ -42,6 +42,14 @@ void Compatibility::Load(const std::string &gameID) {
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
IniFile compat;
|
||||
// This loads from assets.
|
||||
if (compat.LoadFromVFS("compatvr.ini")) {
|
||||
CheckSetting(compat, gameID, "UnitsPerMeter", &vrCompat_.UnitsPerMeter);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
IniFile compat2;
|
||||
// This one is user-editable. Need to load it after the system one.
|
||||
@ -54,6 +62,7 @@ void Compatibility::Load(const std::string &gameID) {
|
||||
|
||||
void Compatibility::Clear() {
|
||||
memset(&flags_, 0, sizeof(flags_));
|
||||
memset(&vrCompat_, 0, sizeof(vrCompat_));
|
||||
}
|
||||
|
||||
void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
|
||||
@ -110,3 +119,9 @@ void Compatibility::CheckSetting(IniFile &iniFile, const std::string &gameID, co
|
||||
*flag |= all;
|
||||
}
|
||||
}
|
||||
|
||||
void Compatibility::CheckSetting(IniFile &iniFile, const std::string &gameID, const char *option, float *flag) {
|
||||
std::string value;
|
||||
iniFile.Get(option, gameID.c_str(), &value, "0");
|
||||
*flag = stof(value);
|
||||
}
|
||||
|
@ -90,6 +90,10 @@ struct CompatFlags {
|
||||
bool ForceLowerResolutionForEffectsOn;
|
||||
};
|
||||
|
||||
struct VRCompat {
|
||||
float UnitsPerMeter;
|
||||
};
|
||||
|
||||
class IniFile;
|
||||
|
||||
class Compatibility {
|
||||
@ -101,13 +105,17 @@ public:
|
||||
// Flags enforced read-only through const. Only way to change them is to load assets/compat.ini.
|
||||
const CompatFlags &flags() const { return flags_; }
|
||||
|
||||
const VRCompat &vrCompat() const { return vrCompat_; }
|
||||
|
||||
void Load(const std::string &gameID);
|
||||
|
||||
private:
|
||||
void Clear();
|
||||
void CheckSettings(IniFile &iniFile, const std::string &gameID);
|
||||
void CheckSetting(IniFile &iniFile, const std::string &gameID, const char *option, bool *flag);
|
||||
void CheckSetting(IniFile &iniFile, const std::string &gameID, const char *option, float *value);
|
||||
|
||||
CompatFlags flags_{};
|
||||
VRCompat vrCompat_{};
|
||||
std::set<std::string> ignored_;
|
||||
};
|
||||
|
@ -1208,7 +1208,6 @@ static ConfigSetting vrSettings[] = {
|
||||
ConfigSetting("VREnableStereo", &g_Config.bEnableStereo, false),
|
||||
ConfigSetting("VRCanvasDistance", &g_Config.iCanvasDistance, 6),
|
||||
ConfigSetting("VRFieldOfView", &g_Config.iFieldOfViewPercentage, 100),
|
||||
ConfigSetting("VRStereoSeparation", &g_Config.iStereoSeparation, 10),
|
||||
|
||||
ConfigSetting(false),
|
||||
};
|
||||
|
@ -458,7 +458,6 @@ public:
|
||||
bool bEnableStereo;
|
||||
int iCanvasDistance;
|
||||
int iFieldOfViewPercentage;
|
||||
int iStereoSeparation;
|
||||
|
||||
// Debugger
|
||||
int iDisasmWindowX;
|
||||
|
@ -529,7 +529,7 @@ void LinkedShader::UpdateUniforms(u32 vertType, const ShaderID &vsid, bool useBu
|
||||
ConvertMatrix4x3To4x4Transposed(leftEyeView, gstate.viewMatrix);
|
||||
ConvertMatrix4x3To4x4Transposed(rightEyeView, gstate.viewMatrix);
|
||||
if (!flatScreen && !is2D) {
|
||||
UpdateVRView(gstate.projMatrix, leftEyeView, rightEyeView);
|
||||
UpdateVRView(leftEyeView, rightEyeView);
|
||||
}
|
||||
render_->SetUniformM4x4Stereo("u_view", &u_view, leftEyeView, rightEyeView);
|
||||
} else {
|
||||
|
@ -1122,8 +1122,6 @@ void GameSettingsScreen::CreateViews() {
|
||||
vrFieldOfView->SetEnabledPtr(&g_Config.bEnableVR);
|
||||
CheckBox *vrStereo = vrSettings->Add(new CheckBox(&g_Config.bEnableStereo, vr->T("Enable stereoscopic vision (Experimental)")));
|
||||
vrStereo->SetEnabledPtr(&g_Config.bEnableVR);
|
||||
PopupSliderChoice *vrStereoSepararation = vrSettings->Add(new PopupSliderChoice(&g_Config.iStereoSeparation, 1, 50, vr->T("Stereo separation (differs per game)", "Stereo separation (differs per game)"), 1, screenManager(), "x"));
|
||||
vrStereoSepararation->SetEnabledPtr(&g_Config.bEnableStereo);
|
||||
}
|
||||
}
|
||||
|
||||
|
620
assets/compatvr.ini
Normal file
620
assets/compatvr.ini
Normal file
@ -0,0 +1,620 @@
|
||||
# ========================================================================================
|
||||
# compatvr.ini for PPSSPP
|
||||
# ========================================================================================
|
||||
#
|
||||
# This file is not meant to be user-editable, although is kept as a separate ini
|
||||
# file instead of compiled into the code for debugging purposes.
|
||||
#
|
||||
# The uses cases are strict:
|
||||
# * Enable fixes for things we can't reasonably emulate without completely ruining
|
||||
# performance for other games, such as the screen copies in Dangan Ronpa
|
||||
# * Disabling accuracy features like 16-bit depth rounding, when we can't seem to
|
||||
# implement them at all in a 100% compatible way
|
||||
# * Emergency game-specific compatibility fixes before releases, such as the GTA
|
||||
# music problem where every attempted fix has reduced compatibility with other games
|
||||
# * Enable "unsafe" performance optimizations that some games can tolerate and
|
||||
# others cannot. We do not currently have any of those.
|
||||
#
|
||||
# This functionality should NOT be used for any of the following:
|
||||
# * Cheats
|
||||
# * Fun hacks, like enlarged heads or whatever
|
||||
# * Fixing general compatibility issues. First try to find a general solution. Try hard.
|
||||
#
|
||||
# Game IDs can be looked up at GameFAQs, for example:
|
||||
# http://www.gamefaqs.com/psp/925776-grand-theft-auto-liberty-city-stories/data
|
||||
# Sometimes the information may be incomplete though.
|
||||
#
|
||||
# ========================================================================================
|
||||
# Issue numbers refer to issues on https://github.com/hrydgard/ppsspp/issues
|
||||
# ========================================================================================
|
||||
|
||||
[UnitsPerMeter]
|
||||
# Values exported from https://github.com/CarlKenner/ppsspp/tree/VR/Sys/GameSettings
|
||||
ELF000000 = 10.0
|
||||
JRPG00001 = 80
|
||||
JRPG00002 = 80
|
||||
NPEG00001 = 1.0
|
||||
NPEG00003 = 1000.0
|
||||
NPEG00023 = 1.0
|
||||
NPEG90003 = 1.0
|
||||
NPEH00003 = 30.0
|
||||
NPEH00017 = 1.0
|
||||
NPEH00031 = 1.0
|
||||
NPEH00134 = 8.0
|
||||
NPEH00135 = 1.0
|
||||
NPEH00138 = 80
|
||||
NPEH90011 = 100.0
|
||||
NPEH90014 = 1.0
|
||||
NPEH90023 = 1000.0
|
||||
NPEH90028 = 128.0
|
||||
NPEX00005 = 1.0
|
||||
NPEZ00007 = 1.0
|
||||
NPEZ00008 = 20.0
|
||||
NPEZ00011 = 1.0
|
||||
NPEZ00023 = 1.0
|
||||
NPEZ00041 = 1.0
|
||||
NPEZ00044 = 1.0
|
||||
NPEZ00045 = 1.0
|
||||
NPEZ00081 = 1.0
|
||||
NPEZ00101 = 1.0
|
||||
NPEZ00104 = 1.0
|
||||
NPEZ00107 = 1.0
|
||||
NPEZ00108 = 1.0
|
||||
NPEZ00118 = 70.0
|
||||
NPEZ00127 = 1.0
|
||||
NPEZ00140 = 1.0
|
||||
NPHG00002 = 1.0
|
||||
NPHG00025 = 80.0
|
||||
NPHH00351 = 8.0
|
||||
NPJB40001 = 100.0
|
||||
NPJG00004 = 1000.0
|
||||
NPJG00045 = 80.0
|
||||
NPJG00103 = 1.0
|
||||
NPJG00122 = 100.0
|
||||
NPJH00002 = 30.0
|
||||
NPJH50040 = 1.0
|
||||
NPJH50045 = 1000.0
|
||||
NPJH50065 = 1.0
|
||||
NPJH50145 = 9.0
|
||||
NPJH50148 = 1.0
|
||||
NPJH50180 = 1.0
|
||||
NPJH50184 = 1000.0
|
||||
NPJH50352 = 100
|
||||
NPJH50401 = 1.0
|
||||
NPJH50414 = 1.0
|
||||
NPJH50443 = 100.0
|
||||
NPJH50444 = 100.0
|
||||
NPJH50448 = 80
|
||||
NPJH50457 = 1.0
|
||||
NPJH50475 = 4.0
|
||||
NPJH50515 = 8.0
|
||||
NPJH50625 = 1.8
|
||||
NPJH50626 = 8.0
|
||||
NPJH50701 = 1.0
|
||||
NPJH90066 = 1.0
|
||||
NPUG70008 = 1.0
|
||||
NPUG80086 = 1000.0
|
||||
NPUG80325 = 1.0
|
||||
NPUH10006 = 30.0
|
||||
NPUH10023 = 1.0
|
||||
NPUH10024 = 1.0
|
||||
NPUH10026 = 1.0
|
||||
NPUH10034 = 1.0
|
||||
NPUH10125 = 8.0
|
||||
NPUH10126 = 80
|
||||
NPUH90019 = 1.0
|
||||
NPUH90029 = 1.0
|
||||
NPUH90048 = 1.0
|
||||
NPUH90067 = 128.0
|
||||
NPUX80433 = 1.0
|
||||
NPUZ00002 = 1.0
|
||||
NPUZ00007 = 1.0
|
||||
NPUZ00010 = 1.0
|
||||
NPUZ00020 = 1.0
|
||||
NPUZ00021 = 1.0
|
||||
NPUZ00024 = 1.0
|
||||
NPUZ00027 = 20.0
|
||||
NPUZ00028 = 1.0
|
||||
NPUZ00031 = 1.0
|
||||
NPUZ00033 = 70.0
|
||||
NPUZ00034 = 1.0
|
||||
NPUZ00040 = 1.0
|
||||
NPUZ00056 = 1.0
|
||||
NPUZ00080 = 1.0
|
||||
UCAS40011 = 1.0
|
||||
UCAS40012 = 1.0
|
||||
UCAS40018 = 9.0
|
||||
UCAS40020 = 100.0
|
||||
UCAS40021 = 10.0
|
||||
UCAS40023 = 9.0
|
||||
UCAS40024 = 0.98
|
||||
UCAS40025 = 83
|
||||
UCAS40026 = 0.1
|
||||
UCAS40049 = 1.0
|
||||
UCAS40063 = 1.0
|
||||
UCAS40076 = 5.0
|
||||
UCAS40089 = 9.0
|
||||
UCAS40092 = 100.0
|
||||
UCAS40095 = 1000.0
|
||||
UCAS40098 = 0.96
|
||||
UCAS40099 = 1000.0
|
||||
UCAS40102 = 1.0
|
||||
UCAS40113 = 1000.0
|
||||
UCAS40116 = 9.0
|
||||
UCAS40119 = 1000.0
|
||||
UCAS40120 = 1.0
|
||||
UCAS40129 = 7.0
|
||||
UCAS40130 = 0.98
|
||||
UCAS40145 = 1.0
|
||||
UCAS40146 = 6.8
|
||||
UCAS40148 = 1.0
|
||||
UCAS40149 = 0.96
|
||||
UCAS40156 = 9.0
|
||||
UCAS40164 = 1000.0
|
||||
UCAS40165 = 1000.0
|
||||
UCAS40167 = 100.0
|
||||
UCAS40169 = 1.0
|
||||
UCAS40177 = 0.96
|
||||
UCAS40179 = 1.0
|
||||
UCAS40180 = 9.5
|
||||
UCAS40191 = 1.0
|
||||
UCAS40193 = 80.0
|
||||
UCAS40198 = 1.0
|
||||
UCAS40204 = 100.0
|
||||
UCAS40212 = 1.0
|
||||
UCAS40258 = 0.96
|
||||
UCAS40265 = 1.0
|
||||
UCAS40318 = 100.0
|
||||
UCED00432 = 1.0
|
||||
UCED00448 = 1000.0
|
||||
UCED00970 = 1.0
|
||||
UCED00971 = 1.0
|
||||
UCED90007 = 1.0
|
||||
UCES00001 = 1.0
|
||||
UCES00004 = 0.1
|
||||
UCES00010 = 100.0
|
||||
UCES00044 = 2.0
|
||||
UCES00109 = 5.0
|
||||
UCES00178 = 9.0
|
||||
UCES00249 = 1.0
|
||||
UCES00302 = 100.0
|
||||
UCES00304 = 1.0
|
||||
UCES00356 = 1000.0
|
||||
UCES00420 = 1.0
|
||||
UCES00422 = 1000.0
|
||||
UCES00423 = 1.0
|
||||
UCES00465 = 1.0
|
||||
UCES00842 = 1.0
|
||||
UCES00995 = 80.0
|
||||
UCES01245 = 1.0
|
||||
UCES01312 = 80.0
|
||||
UCES01401 = 1.0
|
||||
UCES01421 = 100.0
|
||||
UCES01473 = 1.0
|
||||
UCET00179 = 5.0
|
||||
UCET00247 = 9.0
|
||||
UCET00357 = 1.0
|
||||
UCET00424 = 1000.0
|
||||
UCET00713 = 1.0
|
||||
UCJB98011 = 1.0
|
||||
UCJM95402 = 9.0
|
||||
UCJS10007 = 1.0
|
||||
UCJS10008 = 1.0
|
||||
UCJS10010 = 9.0
|
||||
UCJS10011 = 10.0
|
||||
UCJS10017 = 0.98
|
||||
UCJS10018 = 83
|
||||
UCJS10019 = 0.1
|
||||
UCJS10028 = 5.0
|
||||
UCJS10041 = 1.0
|
||||
UCJS10042 = 0.96
|
||||
UCJS10047 = 9.0
|
||||
UCJS10048 = 7.0
|
||||
UCJS10052 = 1.0
|
||||
UCJS10057 = 0.96
|
||||
UCJS10061 = 9.5
|
||||
UCJS10077 = 80.0
|
||||
UCJS10082 = 0.96
|
||||
UCJS10085 = 1.0
|
||||
UCJS10092 = 1.0
|
||||
UCJS10093 = 0.96
|
||||
UCJS10100 = 1.0
|
||||
UCJS10106 = 1.0
|
||||
UCJS10114 = 1.0
|
||||
UCJS18005 = 1.0
|
||||
UCJS18010 = 0.98
|
||||
UCJS18014 = 7.0
|
||||
UCJS18015 = 0.96
|
||||
UCJX90019 = 7.0
|
||||
UCKS45007 = 10.0
|
||||
UCKS45008 = 1.0
|
||||
UCKS45011 = 9.0
|
||||
UCKS45018 = 1.0
|
||||
UCKS45020 = 1.0
|
||||
UCKS45022 = 1.0
|
||||
UCKS45027 = 1000.0
|
||||
UCKS45032 = 1000.0
|
||||
UCKS45034 = 9.0
|
||||
UCKS45038 = 1.0
|
||||
UCKS45050 = 10.0
|
||||
UCKS45052 = 100.0
|
||||
UCKS45056 = 6.8
|
||||
UCKS45067 = 1.0
|
||||
UCKS45071 = 9.5
|
||||
UCKS45076 = 80.0
|
||||
UCKS45120 = 1.0
|
||||
UCUS98612 = 1.0
|
||||
UCUS98618 = 2.0
|
||||
UCUS98623 = 9.0
|
||||
UCUS98632 = 1.0
|
||||
UCUS98633 = 1.0
|
||||
UCUS98647 = 5.0
|
||||
UCUS98648 = 1.0
|
||||
UCUS98653 = 1.0
|
||||
UCUS98654 = 2.0
|
||||
UCUS98662 = 1.0
|
||||
UCUS98671 = 5.0
|
||||
UCUS98681 = 1.0
|
||||
UCUS98700 = 7.0
|
||||
UCUS98706 = 7.0
|
||||
UCUS98711 = 80.0
|
||||
UCUS98712 = 1.0
|
||||
UCUS98713 = 1.0
|
||||
UCUS98717 = 80.0
|
||||
UCUS98732 = 80.0
|
||||
UCUS98737 = 1.0
|
||||
UCUS98740 = 80.0
|
||||
UCUS98751 = 100.0
|
||||
ULAS40129 = 7.0
|
||||
ULAS40155 = 1.0
|
||||
ULAS42007 = 1000.0
|
||||
ULAS42019 = 1.0
|
||||
ULAS42035 = 930.0
|
||||
ULAS42037 = 1.0
|
||||
ULAS42052 = 10.0
|
||||
ULAS42069 = 7.8
|
||||
ULAS42072 = 1.0
|
||||
ULAS42073 = 7.8
|
||||
ULAS42087 = 970.0
|
||||
ULAS42093 = 100.0
|
||||
ULAS42097 = 10.0
|
||||
ULAS42099 = 1.0
|
||||
ULAS42110 = 100.0
|
||||
ULAS42115 = 1.0
|
||||
ULAS42117 = 1.0
|
||||
ULAS42119 = 1.0
|
||||
ULES00008 = 1000.0
|
||||
ULES00011 = 10.0
|
||||
ULES00026 = 0.1
|
||||
ULES00033 = 0.005
|
||||
ULES00034 = 0.005
|
||||
ULES00035 = 0.005
|
||||
ULES00051 = 1.0
|
||||
ULES00118 = 0.1
|
||||
ULES00119 = 0.1
|
||||
ULES00125 = 1.0
|
||||
ULES00126 = 10.0
|
||||
ULES00135 = 83
|
||||
ULES00144 = 1.0
|
||||
ULES00151 = 1.0
|
||||
ULES00153 = 83
|
||||
ULES00168 = 1.0
|
||||
ULES00169 = 1.0
|
||||
ULES00170 = 1.0
|
||||
ULES00171 = 1.0
|
||||
ULES00172 = 1.0
|
||||
ULES00174 = 1.0
|
||||
ULES00181 = 1.0
|
||||
ULES00182 = 1.0
|
||||
ULES00183 = 1.0
|
||||
ULES00210 = 1.0
|
||||
ULES00214 = 1.0
|
||||
ULES00215 = 1.0
|
||||
ULES00216 = 1.0
|
||||
ULES00219 = 1.0
|
||||
ULES00223 = 1.0
|
||||
ULES00227 = 10.0
|
||||
ULES00233 = 1.0
|
||||
ULES00235 = 1.0
|
||||
ULES00277 = 100.0
|
||||
ULES00283 = 256.0
|
||||
ULES00284 = 930.0
|
||||
ULES00307 = 10.0
|
||||
ULES00319 = 1.0
|
||||
ULES00320 = 1.0
|
||||
ULES00321 = 1.0
|
||||
ULES00322 = 1.0
|
||||
ULES00323 = 1.0
|
||||
ULES00324 = 1.0
|
||||
ULES00325 = 1.0
|
||||
ULES00326 = 1.0
|
||||
ULES00327 = 1.0
|
||||
ULES00339 = 1.0
|
||||
ULES00363 = 1.0
|
||||
ULES00377 = 1.0
|
||||
ULES00382 = 1.0
|
||||
ULES00383 = 50.0
|
||||
ULES00419 = 7.8
|
||||
ULES00452 = 1.0
|
||||
ULES00474 = 0.1
|
||||
ULES00475 = 0.1
|
||||
ULES00479 = 47.0
|
||||
ULES00484 = 1.0
|
||||
ULES00502 = 1.0
|
||||
ULES00503 = 1.0
|
||||
ULES00522 = 1.0
|
||||
ULES00567 = 1.0
|
||||
ULES00601 = 1.0
|
||||
ULES00623 = 0.01
|
||||
ULES00640 = 1.0
|
||||
ULES00643 = 1.05
|
||||
ULES00644 = 1.05
|
||||
ULES00645 = 970.0
|
||||
ULES00704 = 1.0
|
||||
ULES00718 = 1.0
|
||||
ULES00722 = 10.0
|
||||
ULES00734 = 10.0
|
||||
ULES00735 = 10.0
|
||||
ULES00736 = 10.0
|
||||
ULES00737 = 10.0
|
||||
ULES00738 = 10.0
|
||||
ULES00741 = 10.0
|
||||
ULES00742 = 10.0
|
||||
ULES00743 = 10.0
|
||||
ULES00744 = 10.0
|
||||
ULES00745 = 10.0
|
||||
ULES00746 = 10.0
|
||||
ULES00747 = 10.0
|
||||
ULES00748 = 10.0
|
||||
ULES00749 = 10.0
|
||||
ULES00757 = 1.0
|
||||
ULES00765 = 1.0
|
||||
ULES00766 = 0.95
|
||||
ULES00772 = 1.0
|
||||
ULES00811 = 10.0
|
||||
ULES00813 = 0.5
|
||||
ULES00841 = 100.0
|
||||
ULES00850 = 1.0
|
||||
ULES00851 = 100.0
|
||||
ULES00869 = 1.0
|
||||
ULES00959 = 1.0
|
||||
ULES00975 = 1.0
|
||||
ULES00976 = 1.0
|
||||
ULES00977 = 1.0
|
||||
ULES00978 = 1.0
|
||||
ULES00979 = 1.0
|
||||
ULES00981 = 100.0
|
||||
ULES00982 = 100.0
|
||||
ULES00986 = 6.8
|
||||
ULES00987 = 1.0
|
||||
ULES01013 = 1.0
|
||||
ULES01037 = 1.0
|
||||
ULES01044 = 100.0
|
||||
ULES01045 = 100.0
|
||||
ULES01046 = 100.0
|
||||
ULES01047 = 100.0
|
||||
ULES01086 = 47.0
|
||||
ULES01151 = 1.0
|
||||
ULES01213 = 100.0
|
||||
ULES01237 = 10.0
|
||||
ULES01238 = 1.0
|
||||
ULES01239 = 1.0
|
||||
ULES01240 = 1.0
|
||||
ULES01270 = 1.0
|
||||
ULES01298 = 1.0
|
||||
ULES01347 = 1.0
|
||||
ULES01352 = 1.0
|
||||
ULES01357 = 1.0
|
||||
ULES01367 = 1.0
|
||||
ULES01370 = 47.0
|
||||
ULES01372 = 1000.0
|
||||
ULES01376 = 1000.0
|
||||
ULES01381 = 128.0
|
||||
ULES01417 = 9.0
|
||||
ULES01422 = 1.000999
|
||||
ULES01431 = 0.8
|
||||
ULES01441 = 1.0
|
||||
ULES01505 = 1.0
|
||||
ULES01513 = 100.0
|
||||
ULES01519 = 100
|
||||
ULES01521 = 1.0
|
||||
ULES01523 = 1.0
|
||||
ULES01526 = 1.0
|
||||
ULET00456 = 1.0
|
||||
ULET00919 = 1.0
|
||||
ULJM05001 = 1000.0
|
||||
ULJM05003 = 0.1
|
||||
ULJM05026 = 1.0
|
||||
ULJM05036 = 1.0
|
||||
ULJM05047 = 930.0
|
||||
ULJM05049 = 1.0
|
||||
ULJM05060 = 1.0
|
||||
ULJM05082 = 1.0
|
||||
ULJM05104 = 1.0
|
||||
ULJM05105 = 1.0
|
||||
ULJM05130 = 50.0
|
||||
ULJM05149 = 1.0
|
||||
ULJM05150 = 1.0
|
||||
ULJM05156 = 100.0
|
||||
ULJM05162 = 1.0
|
||||
ULJM05176 = 1.0
|
||||
ULJM05180 = 256.0
|
||||
ULJM05181 = 10.0
|
||||
ULJM05193 = 970.0
|
||||
ULJM05194 = 1.0
|
||||
ULJM05227 = 970.0
|
||||
ULJM05228 = 1.0
|
||||
ULJM05235 = 1.0
|
||||
ULJM05241 = 6.8
|
||||
ULJM05243 = 1.0
|
||||
ULJM05245 = 1.0
|
||||
ULJM05254 = 100.0
|
||||
ULJM05255 = 1.0
|
||||
ULJM05262 = 1.0
|
||||
ULJM05275 = 100.0
|
||||
ULJM05280 = 1.0
|
||||
ULJM05281 = 1.0
|
||||
ULJM05284 = 970.0
|
||||
ULJM05287 = 100.0
|
||||
ULJM05297 = 1.0
|
||||
ULJM05302 = 1.0
|
||||
ULJM05319 = 10.0
|
||||
ULJM05340 = 1.0
|
||||
ULJM05348 = 1.0
|
||||
ULJM05369 = 1.0
|
||||
ULJM05408 = 32.0
|
||||
ULJM05425 = 10.0
|
||||
ULJM05471 = 10.0
|
||||
ULJM05472 = 3.6
|
||||
ULJM05492 = 1.0
|
||||
ULJM05550 = 1.0
|
||||
ULJM05571 = 1.0
|
||||
ULJM05600 = 1.0
|
||||
ULJM05604 = 1.0
|
||||
ULJM05643 = 128.0
|
||||
ULJM05681 = 4.0
|
||||
ULJM05775 = 1.0
|
||||
ULJM05779 = 1.0
|
||||
ULJM05798 = 100.0
|
||||
ULJM05836 = 1.0
|
||||
ULJM05848 = 1.0
|
||||
ULJM05859 = 80
|
||||
ULJM06034 = 1.0
|
||||
ULJM08001 = 1000.0
|
||||
ULJM08011 = 930.0
|
||||
ULJM08027 = 10.0
|
||||
ULJS00003 = 1.0
|
||||
ULJS00018 = 100.0
|
||||
ULJS00033 = 1.0
|
||||
ULJS00048 = 1000.0
|
||||
ULJS00080 = 1000.0
|
||||
ULJS00086 = 1.0
|
||||
ULJS00158 = 1.0
|
||||
ULJS00202 = 1.0
|
||||
ULJS00224 = 1000.0
|
||||
ULJS00350 = 100
|
||||
ULJS19001 = 1.0
|
||||
ULJS19007 = 100.0
|
||||
ULJS19009 = 1.0
|
||||
ULJS19013 = 1000.0
|
||||
ULJS19018 = 1.0
|
||||
ULKS46003 = 1.0
|
||||
ULKS46012 = 0.1
|
||||
ULKS46021 = 1.0
|
||||
ULKS46023 = 10.0
|
||||
ULKS46027 = 1.0
|
||||
ULKS46057 = 10.0
|
||||
ULKS46065 = 930.0
|
||||
ULKS46071 = 50.0
|
||||
ULKS46116 = 1.0
|
||||
ULKS46119 = 970.0
|
||||
ULKS46122 = 32.0
|
||||
ULKS46139 = 1.0
|
||||
ULKS46142 = 1.0
|
||||
ULKS46152 = 100.0
|
||||
ULKS46155 = 100.0
|
||||
ULKS46189 = 1.0
|
||||
ULKS46190 = 1.0
|
||||
ULKS46236 = 1.0
|
||||
ULKS46240 = 1.0
|
||||
ULUS10004 = 0.1
|
||||
ULUS10006 = 1000.0
|
||||
ULUS10014 = 0.005
|
||||
ULUS10017 = 10.0
|
||||
ULUS10020 = 83
|
||||
ULUS10025 = 1.0
|
||||
ULUS10027 = 1.0
|
||||
ULUS10032 = 1.0
|
||||
ULUS10034 = 1.0
|
||||
ULUS10037 = 10.0
|
||||
ULUS10041 = 1.0
|
||||
ULUS10044 = 1.0
|
||||
ULUS10050 = 10.0
|
||||
ULUS10053 = 1.0
|
||||
ULUS10057 = 1.0
|
||||
ULUS10062 = 1.0
|
||||
ULUS10063 = 1.0
|
||||
ULUS10073 = 1.0
|
||||
ULUS10077 = 930.0
|
||||
ULUS10083 = 1.0
|
||||
ULUS10091 = 10.0
|
||||
ULUS10094 = 1.0
|
||||
ULUS10105 = 7.8
|
||||
ULUS10108 = 1.0
|
||||
ULUS10110 = 256.0
|
||||
ULUS10128 = 1.0
|
||||
ULUS10134 = 1.0
|
||||
ULUS10139 = 1000.0
|
||||
ULUS10146 = 0.1
|
||||
ULUS10150 = 0.01
|
||||
ULUS10155 = 47.0
|
||||
ULUS10156 = 1.0
|
||||
ULUS10158 = 1.0
|
||||
ULUS10160 = 1.0
|
||||
ULUS10175 = 1.0
|
||||
ULUS10176 = 1.0
|
||||
ULUS10184 = 1.0
|
||||
ULUS10185 = 1.0
|
||||
ULUS10186 = 1.0
|
||||
ULUS10202 = 970.0
|
||||
ULUS10207 = 50.0
|
||||
ULUS10218 = 1.05
|
||||
ULUS10223 = 10.0
|
||||
ULUS10227 = 1.0
|
||||
ULUS10238 = 1.0
|
||||
ULUS10241 = 0.95
|
||||
ULUS10245 = 1.0
|
||||
ULUS10247 = 10.0
|
||||
ULUS10248 = 0.5
|
||||
ULUS10251 = 6.8
|
||||
ULUS10263 = 1.0
|
||||
ULUS10266 = 100.0
|
||||
ULUS10273 = 1.0
|
||||
ULUS10277 = 100.0
|
||||
ULUS10285 = 1.0
|
||||
ULUS10295 = 1.0
|
||||
ULUS10297 = 1.0
|
||||
ULUS10311 = 1.0
|
||||
ULUS10316 = 1.0
|
||||
ULUS10319 = 10.0
|
||||
ULUS10325 = 1.0
|
||||
ULUS10335 = 1.0
|
||||
ULUS10336 = 100.0
|
||||
ULUS10345 = 100.0
|
||||
ULUS10363 = 1.0
|
||||
ULUS10365 = 47.0
|
||||
ULUS10380 = 1.0
|
||||
ULUS10391 = 100.0
|
||||
ULUS10400 = 1.0
|
||||
ULUS10403 = 1.0
|
||||
ULUS10405 = 1.0
|
||||
ULUS10419 = 10.0
|
||||
ULUS10431 = 1.0
|
||||
ULUS10437 = 1.0
|
||||
ULUS10439 = 1.0
|
||||
ULUS10450 = 1.0
|
||||
ULUS10451 = 1.0
|
||||
ULUS10455 = 1.0
|
||||
ULUS10457 = 1.0
|
||||
ULUS10463 = 3.28
|
||||
ULUS10466 = 1000.0
|
||||
ULUS10472 = 128.0
|
||||
ULUS10486 = 3.28
|
||||
ULUS10487 = 47.0
|
||||
ULUS10490 = 1.0
|
||||
ULUS10497 = 1.000999
|
||||
ULUS10505 = 1.0
|
||||
ULUS10509 = 1000.0
|
||||
ULUS10512 = 1.0
|
||||
ULUS10515 = 9.0
|
||||
ULUS10519 = 1.0
|
||||
ULUS10521 = 0.8
|
||||
ULUS10538 = 1.0
|
||||
ULUS10560 = 1.0
|
||||
ULUS10563 = 100
|
||||
ULUS10566 = 1.0
|
||||
ULUS10567 = 100.0
|
||||
ULUS10579 = 1.0
|
||||
ULUS10592 = 1.0
|
||||
ULUS90003 = 100.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user