[0x1080] EmuMain: Cxbx-Reloaded Version 64aac86d (Mar 16 2017) [0x1080] EmuMain: Debug Console Allocated (DM_FILE). [0x1080] EmuMain: Debug Trace Disabled. CxbxDbg> ******************************************************************************* * Cxbx-Reloaded High Level Emulation database last modified Mon Mar 6 18:52:06 2017 ******************************************************************************* HLE: Detected Microsoft XDK application... HLE: Starting pass #1... HLE: * Searching HLE database for XAPILIB version 1.0.4627... Found HLE: 0x000F868E -> SetThreadPriorityBoost_4627 HLE: 0x000F85E8 -> SetThreadPriority_3911 HLE: 0x000F863A -> GetThreadPriority_4627 HLE: 0x000F879A -> XRegisterThreadNotifyRoutine_3911 HLE: 0x000F3188 -> XMountUtilityDrive_4432 HLE: 0x0018341E -> XInitDevices_3911 HLE: 0x00183D39 -> XGetDevices_4134 HLE: 0x00183DC8 -> XInputOpen_4361 HLE: 0x00186D81 -> XID_fCloseDevice_4928 (XRef) HLE: 0x00183E1E -> XInputClose_4928 HLE: 0x00184008 -> XInputGetState_4928 HLE: 0x00184074 -> XInputSetState_4928 HLE: 0x000F4727 -> GetTimeZoneInformation_3911 (Disabled) HLE: 0x000F42D5 -> GetOverlappedResult_4627 HLE: 0x000F2D2C -> XLaunchNewImageA_4928 HLE: 0x000F2C81 -> XGetLaunchInfo_4627 (Disabled) HLE: 0x000F8720 -> RaiseException_4627 HLE: 0x00183E2A -> XInputGetDeviceDescription_4831 HLE: 0x000F49B1 -> OutputDebugStringA_3911 HLE: 0x001423D8 -> EmuD3DDeferredRenderState HLE: 0x00142068 -> EmuD3DDeferredTextureState HLE: * Searching HLE database for D3D8 version 1.0.4627... Found HLE: 0x00137350 -> D3D_CreateDevice_4627 HLE: 0x00133080 -> D3DDevice_BeginVisibilityTest_4627 HLE: 0x00133120 -> D3DDevice_EndVisibilityTest_4627 HLE: 0x00132550 -> D3DDevice_GetVisibilityTestResult_3925 HLE: 0x00138E40 -> D3D_KickOffAndWaitForIdle_4627 HLE: 0x00132A20 -> D3DDevice_CopyRects_4627 HLE: 0x00132920 -> D3DDevice_GetBackBuffer2_4627 HLE: 0x00132D30 -> D3DDevice_SetViewport_4627 HLE: 0x001344D0 -> D3D_CommonSetRenderTarget_4627 (XRef) HLE: 0x00132370 -> D3DDevice_SetRenderTarget_4627 HLE: 0x00135BA0 -> D3DDevice_SetShaderConstantMode_4627 HLE: 0x00132CF0 -> D3DDevice_GetRenderTarget2_4627 HLE: 0x00132D10 -> D3DDevice_GetDepthStencilSurface2_4627 HLE: 0x00133180 -> D3DDevice_SetTileNoWait_4627 HLE: 0x00135660 -> D3DDevice_CreateVertexShader_3925 HLE: 0x001357C0 -> D3DDevice_SetVertexShaderConstant1_4627 HLE: 0x00135820 -> D3DDevice_SetVertexShaderConstant4_4627 HLE: 0x001359B0 -> D3DDevice_SetVertexShaderConstantNotInline_4627 HLE: 0x001366E0 -> D3DDevice_CreatePixelShader_3925 HLE: 0x00134EC0 -> D3DDevice_CreateTexture2C_4627 HLE: 0x00132E90 -> D3DDevice_SetTexture_4928 HLE: 0x001327A0 -> D3DDevice_GetDisplayMode_4627 HLE: 0x001365B7 -> D3DDevice_SetVertexData2f_4627 HLE: 0x001365F7 -> D3DDevice_SetVertexData4f_4627 HLE: 0x00136697 -> D3DDevice_End_4627 HLE: 0x00135F40 -> D3DDevice_Clear_4627 HLE: 0x00137E80 -> D3DDevice_Swap_4627 HLE: 0x00138020 -> D3DDevice_CreateVertexBuffer2_4627 HLE: 0x001325D0 -> D3DDevice_BlockUntilVerticalBlank_4627 HLE: 0x001325B0 -> D3DDevice_SetVerticalBlankCallback_4627 HLE: 0x00133E70 -> D3DDevice_SetTextureState_TexCoordIndex_4627 HLE: 0x00133F80 -> D3DDevice_SetTextureState_BumpEnv_4361 HLE: 0x00133FF0 -> D3DDevice_SetTextureState_BorderColor_4361 HLE: 0x00134030 -> D3DDevice_SetTextureState_ColorKeyColor_4134 HLE: 0x00133E20 -> D3DDevice_SetRenderState_VertexBlend_4361 [0x1080] EmuWarn: Found OOVPA on other address than in XRefDataBase! HLE: 0x001339D7 -> D3DDevice_SetRenderState_CullMode_4134 HLE: 0x001339E0 -> D3DDevice_SetRenderState_CullMode_4034 HLE: 0x00133A90 -> D3DDevice_SetRenderState_NormalizeNormals_4432 HLE: 0x00133AD0 -> D3DDevice_SetRenderState_TextureFactor_4361 HLE: 0x00133C20 -> D3DDevice_SetRenderState_ZBias_3925 HLE: 0x00133910 -> D3DDevice_SetRenderState_EdgeAntiAlias_4361 HLE: 0x00133D00 -> D3DDevice_SetRenderState_FillMode_4361 HLE: 0x00133D50 -> D3DDevice_SetRenderState_BackFillMode_4134 HLE: 0x00133990 -> D3DDevice_SetRenderState_FogColor_4134 HLE: 0x00133BA0 -> D3DDevice_SetRenderState_Dxt1NoiseEnable_4627 HLE: 0x00133610 -> D3DDevice_SetRenderState_Simple_4361 HLE: 0x00134A20 -> D3DDevice_SetRenderState_ZEnable_4627 HLE: 0x00134AB0 -> D3DDevice_SetRenderState_StencilEnable_4361 HLE: 0x00133B30 -> D3DDevice_SetRenderState_LineWidth_4627 HLE: 0x00134BE0 -> D3DDevice_SetRenderState_OcclusionCullEnable_4134 HLE: 0x00134DA0 -> D3DDevice_SetRenderState_MultiSampleAntiAlias_4627 HLE: 0x00133950 -> D3DDevice_SetRenderState_ShadowFunc_4134 HLE: 0x00134BB0 -> D3DDevice_SetRenderState_YuvEnable_4134 HLE: 0x00132390 -> D3DDevice_SetTransform_4134 HLE: 0x00135A30 -> D3DDevice_SetStreamSource_4361 HLE: 0x00135DE0 -> D3DDevice_SetVertexShader_4361 HLE: 0x00136520 -> D3DDevice_DrawVertices_4361 HLE: 0x001363C0 -> D3DDevice_DrawVerticesUP_4627 HLE: 0x00138070 -> D3DVertexBuffer_Lock2_4627 HLE: 0x001372B0 -> D3DResource_Register_3925 HLE: 0x00137100 -> D3DResource_AddRef_3925 HLE: 0x00137140 -> D3DResource_Release_3925 HLE: 0x00137220 -> D3DResource_IsBusy_4361 HLE: 0x0013AE00 -> Get2DSurfaceDesc_4627 HLE: 0x00135120 -> D3DSurface_GetDesc_4361 HLE: 0x00135140 -> D3DSurface_LockRect_3925 HLE: 0x00134F80 -> D3DBaseTexture_GetLevelCount_4361 HLE: 0x00134FA0 -> D3DTexture_GetSurfaceLevel2_4627 HLE: 0x00134FF0 -> D3DTexture_LockRect_3925 HLE: 0x001336A0 -> D3DDevice_GetViewportOffsetAndScale_4627 HLE: 0x001357A0 -> D3DDevice_GetVertexShader_4627 HLE: 0x001359F0 -> D3DDevice_GetVertexShaderConstant_4627 HLE: 0x00135AC0 -> D3DDevice_LoadVertexShader_4627 HLE: 0x00135B20 -> D3DDevice_SelectVertexShader_4627 HLE: 0x001324F0 -> D3DDevice_Release_4627 HLE: 0x00134B40 -> D3DDevice_SetRenderState_StencilFail_4134 HLE: 0x00136AC0 -> D3DDevice_SetPixelShader_4721 HLE: 0x00132870 -> D3DDevice_Reset_4134 HLE: 0x00133240 -> D3DDevice_SetScissors_4627 HLE: 0x0013B6C0 -> D3DDevice_Reset_4627 HLE: 0x00133560 -> D3DDevice_SetScreenSpaceOffset_4134 HLE: 0x00138539 -> D3DDevice_CreateStateBlock_4627 HLE: 0x00138F20 -> D3DDevice_InsertCallback_4627 HLE: 0x00132350 -> D3DDevice_GetDeviceCaps_3925 (Disabled) HLE: 0x00134E20 -> D3DDevice_SetRenderState_MultiSampleMask_4627 HLE: 0x00133CA0 -> D3DDevice_SetRenderState_LogicOp_4627 HLE: 0x00138A80 -> D3D_SetFence_4134 (XRef) HLE: 0x001326B0 -> D3DDevice_InsertFence_4627 HLE: 0x00138990 -> D3DDevice_KickOff_4627 HLE: 0x00136CC0 -> D3DDevice_SetPixelShaderConstant_4928 HLE: 0x00133DB0 -> D3DDevice_SetRenderState_TwoSidedLighting_4134 HLE: 0x00134CC0 -> D3DDevice_SetRenderState_RopZCmpAlwaysRead_4134 HLE: 0x00134CE0 -> D3DDevice_SetRenderState_RopZRead_4134 HLE: 0x00134D00 -> D3DDevice_SetRenderState_DoNotCullUncompressed_4134 HLE: 0x001333E0 -> D3DDevice_PersistDisplay_4928 HLE: 0x00133A50 -> D3DDevice_SetRenderState_FrontFace_4134 HLE: 0x00134D20 -> D3DDevice_SetRenderState_MultiSampleMode_4627 HLE: 0x00134D60 -> D3DDevice_SetRenderState_MultiSampleRenderTargetMode_4627 HLE: 0x00134C50 -> D3DDevice_SetRenderState_StencilCullEnable_4134 HLE: 0x00136600 -> D3DDevice_SetVertexData4f_4361 HLE: 0x00138B30 -> D3D_BlockOnTime_4627 (XRef) HLE: 0x00132540 -> D3DDevice_BlockOnFence_4627 HLE: 0x0013B100 -> Lock2DSurface_3925 HLE: 0x00132650 -> D3DDevice_SetSoftDisplayFilter_4627 HLE: 0x00132600 -> D3DDevice_SetFlickerFilter_4627 HLE: 0x00136730 -> D3DDevice_GetPixelShader_4627 HLE: 0x0013CDD0 -> D3D_LazySetPointParams_4627 HLE: * Searching HLE database for XGRAPHC version 1.0.4627... Found HLE: 0x0016A2EB -> XGIsSwizzledFormat_4361 (Disabled) HLE: 0x000F89E5 -> XGWriteSurfaceOrTextureToXPR_4627 HLE: * Searching HLE database for DSOUND version 1.0.4627... Found HLE: 0x001779DF -> DirectSoundCreate_4361 HLE: 0x0017776E -> DirectSound_CDirectSound_CreateSoundBuffer_4627 (XRef) HLE: 0x00176AE6 -> DirectSound_CDirectSoundBuffer_SetLoopRegion_4361 (XRef) HLE: 0x00176F5C -> IDirectSoundBuffer_SetLoopRegion_4361 HLE: 0x00176846 -> IDirectSoundBuffer_SetHeadroomA_4928 (XRef) HLE: 0x00176D83 -> IDirectSoundBuffer_SetHeadroom_4928 HLE: 0x0017670F -> DirectSound_CDirectSoundVoiceSettings_SetMixBins_4361 (XRef) HLE: 0x00176869 -> DirectSound_CDirectSoundVoice_SetMixBins_4432 (XRef) HLE: 0x00176DD1 -> DirectSound_CDirectSoundBuffer_SetMixBins_4432 (XRef) HLE: 0x00176EE8 -> IDirectSoundBuffer_SetMixBins_4432 HLE: 0x001766EA -> DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4627 (XRef) HLE: 0x00176886 -> DirectSound_CDirectSoundVoice_SetMixBinVolumes_4627 (XRef) HLE: 0x00176E1F -> DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4627 (XRef) HLE: 0x00176F04 -> IDirectSoundBuffer_SetMixBinVolumes_4627 HLE: 0x00177825 -> IDirectSound_CreateSoundBuffer_4627 HLE: 0x0017716D -> DirectSound_CDirectSoundVoice_SetFrequency_4627 (XRef) HLE: 0x001771E8 -> DirectSound_CDirectSoundBuffer_SetFrequency_4627 (XRef) HLE: 0x00177236 -> IDirectSoundBuffer_SetFrequency_4627 HLE: 0x00179D0E -> CMcpxVoiceClient_SetVolume_4627 (XRef) HLE: 0x0017682A -> DirectSound_CDirectSoundStream_SetVolume_4627 HLE: 0x00176BC0 -> IDirectSoundBuffer_LockA_4627 (XRef) HLE: 0x00176FD4 -> IDirectSoundBuffer_Lock_3936 HLE: 0x00177487 -> CMcpxBuffer_SetBufferData_4361 (XRef) HLE: 0x00177513 -> DirectSound_CDirectSoundBuffer_SetBufferData_4361 (XRef) HLE: 0x001775C1 -> IDirectSoundBuffer_SetBufferData_4361 HLE: 0x0017A710 -> CMcpxBuffer_GetStatusB_4627 (XRef) HLE: 0x00176A95 -> DirectSound_CDirectSoundBuffer_GetStatus_4627 (XRef) HLE: 0x00176F7C -> IDirectSoundBuffer_GetStatus_4627 HLE: 0x0017ACB7 -> CMcpxBuffer_SetCurrentPosition_4361 (XRef) HLE: 0x00176C96 -> DirectSound_CDirectSoundBuffer_SetCurrentPosition_4361 (XRef) HLE: 0x00176FB8 -> IDirectSoundBuffer_SetCurrentPosition_4361 HLE: 0x0017A752 -> CMcpxBuffer_GetCurrentPosition_4361 (XRef) HLE: 0x00176B6B -> DirectSound_CDirectSoundBuffer_GetCurrentPosition_4361 (XRef) HLE: 0x00176F98 -> IDirectSoundBuffer_GetCurrentPosition_3936 HLE: 0x0017AB59 -> CMcpxBuffer_Play_4928 (XRef) HLE: 0x001769F5 -> DirectSound_CDirectSoundBuffer_Play_4361 (XRef) HLE: 0x00176F20 -> IDirectSoundBuffer_Play_4361 HLE: 0x00176519 -> IDirectSound_Release_3936 HLE: 0x00176E6D -> IDirectSound_DownloadEffectsImage_3936 HLE: 0x00176F44 -> IDirectSoundBuffer_Stop_4627 HLE: 0x00176534 -> IDirectSoundBuffer_Release_3936 HLE: 0x0017A69D -> DirectSound_CMcpxBuffer_Pause_4928 (XRef) HLE: 0x0017A710 -> DirectSound_CMcpxBuffer_GetStatus_4721 (XRef) HLE: 0x00176A95 -> DirectSound_CDirectSoundBuffer_GetStatus_4721 (XRef) HLE: 0x00176811 -> DirectSound_CDirectSoundVoice_SetPitch_4627 (XRef) HLE: 0x00176D35 -> DirectSound_CDirectSoundBuffer_SetPitch_4627 (XRef) HLE: 0x00176EB0 -> IDirectSoundBuffer_SetPitch_4627 HLE: 0x00176CE7 -> DirectSound_CDirectSoundBuffer_SetVolume_4627 (XRef) HLE: 0x00176E94 -> IDirectSoundBuffer_SetVolume_4627 HLE: * Searching HLE database for XBOXKRNL version 1.0.4627... Skipped HLE: * Searching HLE database for LIBCMT version 1.0.4627... Skipped HLE: Starting pass #2... HLE: * Searching HLE database for XAPILIB version 1.0.4627... Found HLE: 0x00186D81 -> XID_fCloseDevice_4928 (XRef) HLE: * Searching HLE database for XGRAPHC version 1.0.4627... Found HLE: * Searching HLE database for DSOUND version 1.0.4627... Found HLE: 0x0017776E -> DirectSound_CDirectSound_CreateSoundBuffer_4627 (XRef) HLE: 0x00176AE6 -> DirectSound_CDirectSoundBuffer_SetLoopRegion_4361 (XRef) HLE: 0x00176D83 -> IDirectSoundBuffer_SetHeadroom_4928 HLE: 0x0017670F -> DirectSound_CDirectSoundVoiceSettings_SetMixBins_4361 (XRef) HLE: 0x00176DD1 -> DirectSound_CDirectSoundBuffer_SetMixBins_4432 (XRef) HLE: 0x001766EA -> DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_4627 (XRef) HLE: 0x00176E1F -> DirectSound_CDirectSoundBuffer_SetMixBinVolumes_4627 (XRef) HLE: 0x0017716D -> DirectSound_CDirectSoundVoice_SetFrequency_4627 (XRef) HLE: 0x001771E8 -> DirectSound_CDirectSoundBuffer_SetFrequency_4627 (XRef) HLE: 0x00179D0E -> CMcpxVoiceClient_SetVolume_4627 (XRef) HLE: 0x00176BC0 -> IDirectSoundBuffer_LockA_4627 (XRef) HLE: 0x00177487 -> CMcpxBuffer_SetBufferData_4361 (XRef) HLE: 0x00177513 -> DirectSound_CDirectSoundBuffer_SetBufferData_4361 (XRef) HLE: 0x001775C1 -> IDirectSoundBuffer_SetBufferData_4361 HLE: 0x0017A710 -> CMcpxBuffer_GetStatusB_4627 (XRef) HLE: 0x00176A95 -> DirectSound_CDirectSoundBuffer_GetStatus_4627 (XRef) HLE: 0x0017ACB7 -> CMcpxBuffer_SetCurrentPosition_4361 (XRef) HLE: 0x00176C96 -> DirectSound_CDirectSoundBuffer_SetCurrentPosition_4361 (XRef) HLE: 0x00176FB8 -> IDirectSoundBuffer_SetCurrentPosition_4361 HLE: 0x0017A752 -> CMcpxBuffer_GetCurrentPosition_4361 (XRef) HLE: 0x00176B6B -> DirectSound_CDirectSoundBuffer_GetCurrentPosition_4361 (XRef) HLE: 0x00176F98 -> IDirectSoundBuffer_GetCurrentPosition_3936 HLE: 0x0017AB59 -> CMcpxBuffer_Play_4928 (XRef) HLE: 0x001769F5 -> DirectSound_CDirectSoundBuffer_Play_4361 (XRef) HLE: 0x00176F20 -> IDirectSoundBuffer_Play_4361 HLE: 0x0017A69D -> DirectSound_CMcpxBuffer_Pause_4928 (XRef) HLE: 0x0017A710 -> DirectSound_CMcpxBuffer_GetStatus_4721 (XRef) HLE: 0x00176A95 -> DirectSound_CDirectSoundBuffer_GetStatus_4721 (XRef) HLE: 0x00176D35 -> DirectSound_CDirectSoundBuffer_SetPitch_4627 (XRef) HLE: 0x00176CE7 -> DirectSound_CDirectSoundBuffer_SetVolume_4627 (XRef) HLE: * Searching HLE database for XBOXKRNL version 1.0.4627... Skipped HLE: * Searching HLE database for LIBCMT version 1.0.4627... Skipped HLE: Resolved 34 cross reference(s) KeSetTimer forwarding to "KeSetTimerEx"... NtOpenFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x1C04] EmuWarn: MultiSampleType 0x00000011 is not supported! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c46.w mul r7.y, r2.y, c47.w dp3 r8.y, r6, r0 min r0.xy, r7, c38 max r2.xy, r0, c37 mad r3.xy, r8, c39, c39 mul r4.xy, r2, r3 mul r5.xyz, c45, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c3.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c142.w mul r7.y, r2.y, c143.w dp3 r8.y, r6, r0 min r0.xy, r7, c134 max r2.xy, r0, c133 mad r3.xy, r8, c135, c135 mul r4.xy, r2, r3 mul r5.xyz, c141, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c99.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r2, r8, c39, c39 mul r3, r0, r2 mul r0.xyz, c45, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c47, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c49, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c51, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c3.xyz, r0.x +mov oD0, r10 add oD1, c26, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r2, r8, c135, c135 mul r3, r0, r2 mul r0.xyz, c141, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c143, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c145, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c147, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c99.xyz, r0.x mov oD0, r10 add oD1, c122, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r3, r8, c39, c39 mul r4, r0, r3 mul r0.xyz, c45, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c47, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c49, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c51, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c52, -r2 add r11.xyz, c54, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 +rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c52.w mul r9.x, r8, c53.w +rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c54.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c55.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r11.xy, v4, c27 mul r6.xy, r4, r5 mul r5.xyz, c53, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c55, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c28 mul r10, c3.xyz, r9.x +mov oD0, r10 add oD1, c26, r10 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r3, r8, c135, c135 mul r4, r0, r3 mul r0.xyz, c141, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c143, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c145, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c147, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c148, -r2 add r11.xyz, c150, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c148.w mul r9.x, r8, c149.w rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c150.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c151.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r11.xy, v4, c123 mul r6.xy, r4, r5 mul r5.xyz, c149, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c151, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c124 mul r10, c99.xyz, r9.x mov oD0, r10 add oD1, c122, r10 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 mov r3, v2 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 +mov oD0, r3 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mul oT0.xy, v4, c40 mov r2.x, r3 +mov oPos, r8 mul r10.xy, v4, c27 mul r2, c3.xyz, r2.x add oD1, r2, c26 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 18 i = 19 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w mov r3, v2 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, r3 dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mul oT0.xy, v4, c136 mov r2.x, r3 mov oPos, r8 mul r10.xy, v4, c123 mul r2, c99.xyz, r2.x add oD1, r2, c122 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c46.w mul r7.y, r2.y, c47.w dp3 r8.y, r6, r0 min r0.xy, r7, c38 max r2.xy, r0, c37 mad r3.xy, r8, c39, c39 mul r4.xy, r2, r3 mul r5.xyz, c45, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c3.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c142.w mul r7.y, r2.y, c143.w dp3 r8.y, r6, r0 min r0.xy, r7, c134 max r2.xy, r0, c133 mad r3.xy, r8, c135, c135 mul r4.xy, r2, r3 mul r5.xyz, c141, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c99.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r2, r8, c39, c39 mul r3, r0, r2 mul r0.xyz, c45, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c47, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c49, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c51, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c3.xyz, r0.x +mov oD0, r10 add oD1, c26, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r2, r8, c135, c135 mul r3, r0, r2 mul r0.xyz, c141, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c143, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c145, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c147, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c99.xyz, r0.x mov oD0, r10 add oD1, c122, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r3, r8, c39, c39 mul r4, r0, r3 mul r0.xyz, c45, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c47, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c49, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c51, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c52, -r2 add r11.xyz, c54, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 +rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c52.w mul r9.x, r8, c53.w +rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c54.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c55.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r11.xy, v4, c27 mul r6.xy, r4, r5 mul r5.xyz, c53, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c55, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c28 mul r10, c3.xyz, r9.x +mov oD0, r10 add oD1, c26, r10 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r3, r8, c135, c135 mul r4, r0, r3 mul r0.xyz, c141, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c143, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c145, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c147, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c148, -r2 add r11.xyz, c150, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c148.w mul r9.x, r8, c149.w rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c150.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c151.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r11.xy, v4, c123 mul r6.xy, r4, r5 mul r5.xyz, c149, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c151, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c124 mul r10, c99.xyz, r9.x mov oD0, r10 add oD1, c122, r10 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mov r3, v2 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 +mov oD0, r3 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mul oT0.xy, v4, c40 mov r2.x, r3 +mov oPos, r8 mul r10.xy, v4, c27 mul r2, c3.xyz, r2.x add oD1, r2, c26 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 16 i = 17 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mov r3, v2 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, r3 dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mul oT0.xy, v4, c136 mov r2.x, r3 mov oPos, r8 mul r10.xy, v4, c123 mul r2, c99.xyz, r2.x add oD1, r2, c122 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c1.x, v3.w dp3 r5.x, r4, r4 +rsq r1.y, r0 mul oT2.xy, v4, c40 mul oT0.xy, v4, c40 +rsq r1.x, r5 mul r3.xyz, r2, -r1.y mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y add r5.xyz, c44, -r2 mad r9, r8.x, c17, c17 dp3 r7.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mul r7.w, c1.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c38 max r0.xy, r8, c37 dp3 r7.x, r6, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c39, c39 mul r3.xy, r0, r2 mul r5.xyz, c45, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c47, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 27 i = 30 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c97.x, v3.w dp3 r5.x, r4, r4 rsq r1.y, r0 mul oT2.xy, v4, c136 mul oT0.xy, v4, c136 rsq r1.x, r5 mul r3.xyz, r2, -r1.y mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y add r5.xyz, c140, -r2 mad r9, r8.x, c113, c113 dp3 r7.x, r5, r5 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mul r7.w, c97.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c134 max r0.xy, r8, c133 dp3 r7.x, r6, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c135, c135 mul r3.xy, r0, r2 mul r5.xyz, c141, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c143, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 73 i = 81 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w mul r6.x, r6.x, c53.w dp3 r7.x, r1, r5 add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 ; -- Passing the truncation limit -- mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 113 i = 117 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w mul r6.x, r6.x, c149.w dp3 r7.x, r1, r5 add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, v2 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r7.x, r2, r2 add r10.xyz, c44, -r2 dp3 r5.x, r4, r4 +rsq r1.y, r7 mul r10.w, c1.x, v3.w dp3 r11.x, r10, r10 +rsq r1.x, r5 mul r8.xyz, r2, -r1.y mul r6.xyz, r4, r1.x +rsq r1.y, r11 mul r3.w, c1.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c44.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c45.w mad r7.xyz, r9, r5.x, -r0 mul r6.w, c1.x, v3.w dp3 r10.x, r7, r8 mul oT0.xy, v4, c40 mad r10.y, r10.x, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul oT2.xy, v4, c40 +lit r1.z, r10 add r10.xyz, c46, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mad oPos.xyz, r12, r1.x, c-37 mul r10.w, c1.x, v3 +rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r4.y, r3.y, c47.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c48, -r2 mad r3.y, r3.x, c1.y, c1.y dp3 r10.z, r5, r5 +lit r1.z, r3 mov r7.y, r1.z +rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c48.w mul r4.z, r0.z, c49.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c50, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c1.y, c1.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y +lit r1.z, r10 mad r3.w, r0.w, -r1.y, c50.w mov r7.z, r1.z mul r4.w, r3.w, c51.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c38 max r9, r8, c37 mad r6.y, r6.x, c1.y, c1.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c26, r3.xyz mul r3.xy, v4, c27 add oT1.xy, r3, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 34 i = 40 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, v2 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r7.x, r2, r2 add r10.xyz, c140, -r2 dp3 r5.x, r4, r4 rsq r1.y, r7 mul r10.w, c97.x, v3.w dp3 r11.x, r10, r10 rsq r1.x, r5 mul r8.xyz, r2, -r1.y mul r6.xyz, r4, r1.x rsq r1.y, r11 mul r3.w, c97.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c140.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c141.w mad r7.xyz, r9, r5.x, -r0 mul r6.w, c97.x, v3.w dp3 r10.x, r7, r8 mul oT0.xy, v4, c136 mad r10.y, r10.x, c97.y, c97.y mul oT2.xy, v4, c136 lit r1.z, r10 add r10.xyz, c142, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mul r10.w, c97.x, v3 rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r4.y, r3.y, c143.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c144, -r2 mad r3.y, r3.x, c97.y, c97.y dp3 r10.z, r5, r5 lit r1.z, r3 mov r7.y, r1.z rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c144.w mul r4.z, r0.z, c145.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c146, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c97.y, c97.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y lit r1.z, r10 mad r3.w, r0.w, -r1.y, c146.w mov r7.z, r1.z mul r4.w, r3.w, c147.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c134 max r9, r8, c133 mad r6.y, r6.x, c97.y, c97.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c122, r3.xyz mul r3.xy, v4, c123 add oT1.xy, r3, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r7.w, c1.x, v3 +rsq r1.y, r0 mul oT0.xy, v4, c40 mul r3.xyz, r2, -r1.y +rsq r1.x, r5 add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oT2.xy, v4, c40 mul r10, r9, v2 +rsq r1.y, r7 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mad oPos.xyz, r12, r1.x, c-37 mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mul r7.w, c1.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c38 max r0.xy, r8, c37 dp3 r7.x, r6, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c39, c39 mul r3.xy, r0, r2 mul r5.xyz, c45, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c47, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 29 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r7.w, c97.x, v3 rsq r1.y, r0 mul oT0.xy, v4, c136 mul r3.xyz, r2, -r1.y rsq r1.x, r5 add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul oT2.xy, v4, c136 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mul r7.w, c97.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c134 max r0.xy, r8, c133 dp3 r7.x, r6, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c135, c135 mul r3.xy, r0, r2 mul r5.xyz, c141, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c143, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 69 i = 77 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w mul r6.x, r6.x, c53.w dp3 r7.x, r1, r5 add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 109 i = 113 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w mul r6.x, r6.x, c149.w dp3 r7.x, r1, r5 add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, v2 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r7.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r10.w, c1.x, v3 +rsq r1.y, r7 add r10.xyz, c44, -r2 mul r8.xyz, r2, -r1.y +rsq r1.x, r5 dp3 r11.x, r10, r10 mul r3.w, c1.x, v3.w mul r6.xyz, r4, r1.x +rsq r1.y, r11 mul r6.w, c1.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c44.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c45.w mad r7.xyz, r9, r5.x, -r0 mul oT0.xy, v4, c40 dp3 r10.x, r7, r8 mul oT2.xy, v4, c40 mad r10.y, r10.x, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w lit r1.z, r10 add r10.xyz, c46, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mad oPos.xyz, r12, r1.x, c-37 mul r10.w, c1.x, v3 +rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r4.y, r3.y, c47.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c48, -r2 mad r3.y, r3.x, c1.y, c1.y dp3 r10.z, r5, r5 +lit r1.z, r3 mov r7.y, r1.z +rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c48.w mul r4.z, r0.z, c49.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c50, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c1.y, c1.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y +lit r1.z, r10 mad r3.w, r0.w, -r1.y, c50.w mov r7.z, r1.z mul r4.w, r3.w, c51.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c38 max r9, r8, c37 mad r6.y, r6.x, c1.y, c1.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c26, r3.xyz mul r3.xy, v4, c27 add oT1.xy, r3, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 31 i = 36 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, v2 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r7.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r10.w, c97.x, v3 rsq r1.y, r7 add r10.xyz, c140, -r2 mul r8.xyz, r2, -r1.y rsq r1.x, r5 dp3 r11.x, r10, r10 mul r3.w, c97.x, v3.w mul r6.xyz, r4, r1.x rsq r1.y, r11 mul r6.w, c97.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c140.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c141.w mad r7.xyz, r9, r5.x, -r0 mul oT0.xy, v4, c136 dp3 r10.x, r7, r8 mul oT2.xy, v4, c136 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mul r10.w, c97.x, v3 rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r4.y, r3.y, c143.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c144, -r2 mad r3.y, r3.x, c97.y, c97.y dp3 r10.z, r5, r5 lit r1.z, r3 mov r7.y, r1.z rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c144.w mul r4.z, r0.z, c145.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c146, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c97.y, c97.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y lit r1.z, r10 mad r3.w, r0.w, -r1.y, c146.w mov r7.z, r1.z mul r4.w, r3.w, c147.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c134 max r9, r8, c133 mad r6.y, r6.x, c97.y, c97.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c122, r3.xyz mul r3.xy, v4, c123 add oT1.xy, r3, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c47.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r2.xy, v4, c27 mul r7.xy, r4, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c47, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c28 mul r0, c3.xyz, r11.x +mov oD0, r10 add oD1, c26, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c1.y, c1.y mad oT2.xy, r0.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c143.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r2.xy, v4, c123 mul r7.xy, r4, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c143, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c124 mul r0, c99.xyz, r11.x mov oD0, r10 add oD1, c122, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c97.y, c97.y mad oT2.xy, r0.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r2, r0, c37 mad r0, r8, c39, c39 mul r4, r2, r0 mul r5.xyz, c45, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c49, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c51, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c27 mul r4, c3.xyz, r2.x +mov oD0, r10 add oT1.xy, r5, c28 add oD1, r4, c26 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c1.y, c1.y mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r2, r0, c133 mad r0, r8, c135, c135 mul r4, r2, r0 mul r5.xyz, c141, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c145, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c147, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c123 mul r4, c99.xyz, r2.x mov oD0, r10 add oT1.xy, r5, c124 add oD1, r4, c122 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c97.y, c97.y mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r4, r0, c37 mad r0, r8, c39, c39 mul r5, r4, r0 mul r4.xyz, c45, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c47, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c49, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c51, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c52, -r2 add r0.xyz, c54, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 +rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c52.w mul r8.x, r11, c53.w +rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c54.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c55.w min r5.xy, r8, c38 max r8.xy, r5, c37 mad r5.xy, r11, c39, c39 mul r9.xy, r8, r5 mul r8.xyz, c53, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c55, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c3.xyz, r11.x +mov oD0, r10 mad oT0.xy, r2.xy, c1.y, c1.y add oD1, r0, c26 mul r3.xy, v4, c27 add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r4, r0, c133 mad r0, r8, c135, c135 mul r5, r4, r0 mul r4.xyz, c141, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c143, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c145, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c147, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c148, -r2 add r0.xyz, c150, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c148.w mul r8.x, r11, c149.w rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c150.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c151.w min r5.xy, r8, c134 max r8.xy, r5, c133 mad r5.xy, r11, c135, c135 mul r9.xy, r8, r5 mul r8.xyz, c149, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c151, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c99.xyz, r11.x mov oD0, r10 mad oT0.xy, r2.xy, c97.y, c97.y add oD1, r0, c122 mul r3.xy, v4, c123 add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 mov r4, v2 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, r4 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r6.x, r2, r2 mov r5.x, r4 +mov oPos, r3 mul r10.xy, v4, c27 mul r8, c3.xyz, r5.x +rsq r1.y, r6 add oT1.xy, r10, c28 mul r7.xy, r2, -r1.y add oD1, r8, c26 add r9.xy, -r7, r1 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r9.xy, c1.y, c1.y mad oT2.xy, r9.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 20 i = 23 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w mov r4, v2 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, r4 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r6.x, r2, r2 mov r5.x, r4 mov oPos, r3 mul r10.xy, v4, c123 mul r8, c99.xyz, r5.x rsq r1.y, r6 add oT1.xy, r10, c124 mul r7.xy, r2, -r1.y add oD1, r8, c122 add r9.xy, -r7, r1 mad oT0.xy, r9.xy, c97.y, c97.y mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c47.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r2.xy, v4, c27 mul r7.xy, r4, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c47, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c28 mul r0, c3.xyz, r11.x +mov oD0, r10 add oD1, c26, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c1.y, c1.y mad oT2.xy, r0.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c143.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r2.xy, v4, c123 mul r7.xy, r4, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c143, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c124 mul r0, c99.xyz, r11.x mov oD0, r10 add oD1, c122, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c97.y, c97.y mad oT2.xy, r0.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r2, r0, c37 mad r0, r8, c39, c39 mul r4, r2, r0 mul r5.xyz, c45, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c49, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c51, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c27 mul r4, c3.xyz, r2.x +mov oD0, r10 add oT1.xy, r5, c28 add oD1, r4, c26 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c1.y, c1.y mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r2, r0, c133 mad r0, r8, c135, c135 mul r4, r2, r0 mul r5.xyz, c141, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c145, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c147, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c123 mul r4, c99.xyz, r2.x mov oD0, r10 add oT1.xy, r5, c124 add oD1, r4, c122 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c97.y, c97.y mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r4, r0, c37 mad r0, r8, c39, c39 mul r5, r4, r0 mul r4.xyz, c45, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c47, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c49, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c51, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c52, -r2 add r0.xyz, c54, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 +rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c52.w mul r8.x, r11, c53.w +rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c54.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c55.w min r5.xy, r8, c38 max r8.xy, r5, c37 mad r5.xy, r11, c39, c39 mul r9.xy, r8, r5 mul r8.xyz, c53, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c55, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c3.xyz, r11.x +mov oD0, r10 mad oT0.xy, r2.xy, c1.y, c1.y add oD1, r0, c26 mul r3.xy, v4, c27 add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r4, r0, c133 mad r0, r8, c135, c135 mul r5, r4, r0 mul r4.xyz, c141, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c143, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c145, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c147, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c148, -r2 add r0.xyz, c150, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c148.w mul r8.x, r11, c149.w rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c150.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c151.w min r5.xy, r8, c134 max r8.xy, r5, c133 mad r5.xy, r11, c135, c135 mul r9.xy, r8, r5 mul r8.xyz, c149, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c151, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c99.xyz, r11.x mov oD0, r10 mad oT0.xy, r2.xy, c97.y, c97.y add oD1, r0, c122 mul r3.xy, v4, c123 add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4, v2 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, r4 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r6.x, r2, r2 mov r5.x, r4 +mov oPos, r3 mul r10.xy, v4, c27 mul r8, c3.xyz, r5.x +rsq r1.y, r6 add oT1.xy, r10, c28 mul r7.xy, r2, -r1.y add oD1, r8, c26 add r9.xy, -r7, r1 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r9.xy, c1.y, c1.y mad oT2.xy, r9.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 18 i = 21 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4, v2 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, r4 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r6.x, r2, r2 mov r5.x, r4 mov oPos, r3 mul r10.xy, v4, c123 mul r8, c99.xyz, r5.x rsq r1.y, r6 add oT1.xy, r10, c124 mul r7.xy, r2, -r1.y add oD1, r8, c122 add r9.xy, -r7, r1 mad oT0.xy, r9.xy, c97.y, c97.y mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c1.x, v3.w dp3 r5.x, r4, r4 +rsq r1.y, r0 mul r8.w, c1.x, v3 +rsq r1.x, r5 mul r3.xyz, r2, -r1.y add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c1.y, c1.y min r8.xy, r0, c38 +lit r1.z, r8 max r0.xy, r8, c37 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c39, c39 mul r4.xy, r0, r2 mul r7.xyz, c45, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c47, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c27 mul r9, r5.xyz, r8.x +mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c26 mad oT0.xy, r10.xy, c1.y, c1.y add oT1.xy, r11, c28 mad oT2.xy, r10.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 29 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c97.x, v3.w dp3 r5.x, r4, r4 rsq r1.y, r0 mul r8.w, c97.x, v3 rsq r1.x, r5 mul r3.xyz, r2, -r1.y add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c97.y, c97.y min r8.xy, r0, c134 lit r1.z, r8 max r0.xy, r8, c133 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c135, c135 mul r4.xy, r0, r2 mul r7.xyz, c141, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c143, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c123 mul r9, r5.xyz, r8.x mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c122 mad oT0.xy, r10.xy, c97.y, c97.y add oT1.xy, r11, c124 mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 105 i = 106 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x mov oD0, r3 mad oT0.xy, r9.xy, c97.y, c97.y add oD1, r2, c122 mul r10.xy, v4, c123 add oT1.xy, r10, c124 mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c1.y, c1.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c1.y, c1.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c53.w add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x ; -- Passing the truncation limit -- +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 114 i = 118 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c97.y, c97.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c97.y, c97.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c149.w add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 mov r7, v2 dp3 r5.x, r4, r4 +mov oD0, r7 add oD1, r10.xyz, c26 dp3 r8.x, r2, r2 +rsq r1.x, r5 mul r11.xy, v4, c27 +rsq r1.y, r8 mul r6.xy, r4, r1.x mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 add oT1.xy, r11, c28 mad oT0.xy, r10.xy, c1.y, c1.y mad oT2.xy, r10.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 27 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 mov r7, v2 dp3 r5.x, r4, r4 mov oD0, r7 add oD1, r10.xyz, c122 dp3 r8.x, r2, r2 rsq r1.x, r5 mul r11.xy, v4, c123 rsq r1.y, r8 mul r6.xy, r4, r1.x mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 add oT1.xy, r11, c124 mad oT0.xy, r10.xy, c97.y, c97.y mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r7.w, c1.x, v3 +rsq r1.y, r0 mul r8.w, c1.x, v3.w mul r3.xyz, r2, -r1.y +rsq r1.x, r5 add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c1.y, c1.y min r8.xy, r0, c38 +lit r1.z, r8 max r0.xy, r8, c37 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c39, c39 mul r4.xy, r0, r2 mul r7.xyz, c45, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c47, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c27 mul r9, r5.xyz, r8.x +mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c26 mad oT0.xy, r10.xy, c1.y, c1.y add oT1.xy, r11, c28 mad oT2.xy, r10.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 22 i = 25 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r7.w, c97.x, v3 rsq r1.y, r0 mul r8.w, c97.x, v3.w mul r3.xyz, r2, -r1.y rsq r1.x, r5 add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c97.y, c97.y min r8.xy, r0, c134 lit r1.z, r8 max r0.xy, r8, c133 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c135, c135 mul r4.xy, r0, r2 mul r7.xyz, c141, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c143, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c123 mul r9, r5.xyz, r8.x mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c122 mad oT0.xy, r10.xy, c97.y, c97.y add oT1.xy, r11, c124 mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 101 i = 102 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x mov oD0, r3 mad oT0.xy, r9.xy, c97.y, c97.y add oD1, r2, c122 mul r10.xy, v4, c123 add oT1.xy, r10, c124 mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c1.y, c1.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c1.y, c1.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c53.w add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 110 i = 114 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c97.y, c97.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c97.y, c97.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c149.w add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 mov r7, v2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r11.xy, v4, c27 +mov oD0, r7 dp3 r8.x, r2, r2 +rsq r1.x, r5 add oD1, r10.xyz, c26 mul r6.xy, r4, r1.x +rsq r1.y, r8 add oT1.xy, r11, c28 mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r10.xy, c1.y, c1.y mad oT2.xy, r10.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 20 i = 23 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w mov r7, v2 dp3 r5.x, r4, r4 mov oPos, r3 mul r11.xy, v4, c123 mov oD0, r7 dp3 r8.x, r2, r2 rsq r1.x, r5 add oD1, r10.xyz, c122 mul r6.xy, r4, r1.x rsq r1.y, r8 add oT1.xy, r11, c124 mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 mad oT0.xy, r10.xy, c97.y, c97.y mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 add r0.xy, v0, c2 mov r0.w, v0.z add r0.z, v0.z, -c36.x mov oD0, v2 mul r0.z, r0, c36.y +rcp r1.w, r0.w mul oT0.xy, v4, c40 mul r0.z, r0, r1.w +mov oD1, v3 mul oT1.xy, v4, c40 mul r0.z, r0.z, c36.w mov oPos, r0 mad oFog.x, v0.z, c41.x, c41.y ----------------------- [0x110C] EmuWarn: Applying screen space vertex shader patching hack! -- After conversion --- vs.1.1 add r0.xy, v0, c98 mov r0.w, v0.z add r0.z, v0.z, -c132.x mov oD0, v2 mul r0.z, r0, c132.y rcp r1.w, r0.w mul oT0.xy, v4, c136 mul r0.z, r0, r1.w mov oD1, v3 mul oT1.xy, v4, c136 mul r0.z, r0.z, c132.w mov r11, r0 mul r10, r11, c58 add oPos, r10, c59 mad oFog.x, v0.z, c137.x, c137.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c40 dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 add r5.xyz, c44, -r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT2.xy, v4, c40 +rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 +rsq r1.y, r6 mad oPos.xyz, r12, r1.x, c-37 mad r11.x, r10.x, c1.y, c1.y mul r7.xyz, r5, r1.y mad r0, r11.x, c17, c17 mad r8.x, r6.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c45.w dp3 r11.x, r9, r7 add r0.xyz, c46, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r4.xyz, r0, r1.y mad r5.y, r3.y, -r1.y, c46.w mul r10.y, r5.y, c47.w dp3 r11.y, r9, r4 min r4.xy, r10, c38 max r5.xy, r4, c37 mad r6.xy, r11, c39, c39 mul r7.xy, r5, r6 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, c3.xyz, r11.x +mov oD0, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 add oD1, r0, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c136 dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w add r5.xyz, c140, -r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT2.xy, v4, c136 rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 dp3 r10.x, r9, c112 rsq r1.y, r6 mad r11.x, r10.x, c97.y, c97.y mul r7.xyz, r5, r1.y mad r0, r11.x, c113, c113 mad r8.x, r6.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c141.w dp3 r11.x, r9, r7 add r0.xyz, c142, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r4.xyz, r0, r1.y mad r5.y, r3.y, -r1.y, c142.w mul r10.y, r5.y, c143.w dp3 r11.y, r9, r4 min r4.xy, r10, c134 max r5.xy, r4, c133 mad r6.xy, r11, c135, c135 mul r7.xy, r5, r6 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, c99.xyz, r11.x mov oD0, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 add oD1, r0, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c40 dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 add r5.xyz, c44, -r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT2.xy, v4, c40 +rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 +rsq r1.y, r6 mad oPos.xyz, r12, r1.x, c-37 mad r11.x, r10.x, c1.y, c1.y mul r7.xyz, r5, r1.y mad r0, r11.x, c17, c17 mad r8.x, r6.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c45.w dp3 r11.x, r9, r7 add r0.xyz, c46, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r5.xyz, r0, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r10.y, r6.y, c47.w dp3 r11.y, r9, r5 add r5.xyz, c48, -r4 dp3 r6.z, r5, r5 rsq r1.y, r6.z mul r7.xyz, r5, r1.y mad r8.z, r6.z, -r1.y, c48.w mul r10.z, r8.z, c49.w dp3 r11.z, r9, r7 add r7.xyz, c50, -r4 dp3 r8.w, r7, r7 rsq r1.y, r8.w mul r0.xyz, r7, r1.y mad r0.w, r8.w, -r1.y, c50.w mul r10.w, r0.w, c51.w dp3 r11.w, r9, r0 min r0, r10, c38 max r4, r0, c37 mad r5, r11, c39, c39 mul r6, r4, r5 mul r4.xyz, c45, r6.x mad r5.xyz, r4.xyz, v2.xyz, r2.xyz add r7.x, r3.x, r6.x mul r8.xyz, c47, r6.y mad r9.xyz, r8.xyz, v2.xyz, r5.xyz add r10.x, r7.x, r6.y mul r11.xyz, c49, r6.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r3.x, r10.x, r6.z mul r4.xyz, c51, r6.w mad r2.xyz, r4.xyz, v2.xyz, r0.xyz add r4.x, r3.x, r6.w mul r5, c3.xyz, r4.x +mov oD0, r2 add oD1, c26, r5 mul r5.xy, v4, c27 add oT1.xy, r5, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c136 dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w add r5.xyz, c140, -r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT2.xy, v4, c136 rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 dp3 r10.x, r9, c112 rsq r1.y, r6 mad r11.x, r10.x, c97.y, c97.y mul r7.xyz, r5, r1.y mad r0, r11.x, c113, c113 mad r8.x, r6.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c141.w dp3 r11.x, r9, r7 add r0.xyz, c142, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r5.xyz, r0, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r10.y, r6.y, c143.w dp3 r11.y, r9, r5 add r5.xyz, c144, -r4 dp3 r6.z, r5, r5 rsq r1.y, r6.z mul r7.xyz, r5, r1.y mad r8.z, r6.z, -r1.y, c144.w mul r10.z, r8.z, c145.w dp3 r11.z, r9, r7 add r7.xyz, c146, -r4 dp3 r8.w, r7, r7 rsq r1.y, r8.w mul r0.xyz, r7, r1.y mad r0.w, r8.w, -r1.y, c146.w mul r10.w, r0.w, c147.w dp3 r11.w, r9, r0 min r0, r10, c134 max r4, r0, c133 mad r5, r11, c135, c135 mul r6, r4, r5 mul r4.xyz, c141, r6.x mad r5.xyz, r4.xyz, v2.xyz, r2.xyz add r7.x, r3.x, r6.x mul r8.xyz, c143, r6.y mad r9.xyz, r8.xyz, v2.xyz, r5.xyz add r10.x, r7.x, r6.y mul r11.xyz, c145, r6.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r3.x, r10.x, r6.z mul r4.xyz, c147, r6.w mad r2.xyz, r4.xyz, v2.xyz, r0.xyz add r4.x, r3.x, r6.w mul r5, c99.xyz, r4.x mov oD0, r2 add oD1, c122, r5 mul r5.xy, v4, c123 add oT1.xy, r5, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mov r3, v2 dph r0.x, v0, c[a0.x] +mov oD0, r3 dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] mov a0.x, v5.w mul r0.xyz, v11.x, r0 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] mov a0.x, v7.w mad r0.xyz, v11.y, r8, r0 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] mov a0.x, v9.w mad r0.xyz, v11.z, r8, r0 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] mov r2.x, r3.x mad r0.xyz, v11.w, r8, r0 mul r2, c3.xyz, r2.x mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add oD1, r2, c26 mul r10.xy, v4, c27 +mov oPos, r8 mul oT0.xy, v4, c40 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 35 i = 36 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mov r3, v2 dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w mov oD0, r3 dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w mov a0.x, v5.w mul r0.xyz, v11.x, r0 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov a0.x, v7.w mad r0.xyz, v11.y, r8, r0 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov a0.x, v9.w mad r0.xyz, v11.z, r8, r0 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov r2.x, r3.x mad r0.xyz, v11.w, r8, r0 mul r2, c99.xyz, r2.x mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add oD1, r2, c122 mul r10.xy, v4, c123 mov oPos, r8 mul oT0.xy, v4, c136 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r10.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT0.xy, v4, c40 +rsq r1.y, r5 add r7.xyz, c44, -r4 mul r5.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r8.x, r7, r7 mul oT2.xy, v4, c40 mul r9.xyz, r6, r1.x +rsq r1.y, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 add r6.xyz, r9, r9 mad r11.x, r10.x, c1.y, c1.y mul r10.xyz, r7, r1.y mad r0, r11.x, c17, c17 mad r11.x, r8.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c45.w dp3 r7.x, r9, r10 mad oPos.xyz, r12, r1.x, c-37 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 add r10.xyz, c46, -r4 mul r10.w, c1.x, v3.w mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c46.w mul r0.y, r10.y, c47.w dp3 r7.y, r9, r4 mad r9.xyz, r6, r7.y, -r4 min r11.xy, r0, c38 max r0.xy, r11, c37 dp3 r10.x, r9, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 mov r8.y, r1.z mul r4.xy, r8, r0 mul r5.xyz, r4.x, v3 mad r6.xyz, r4.y, v3, r5 mad r5.xy, r7, c39, c39 mul r7.xy, r0, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, r6.xyz, r11.x +mov oD0, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 add oD1, r0, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 54 i = 65 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r10.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT0.xy, v4, c136 rsq r1.y, r5 add r7.xyz, c140, -r4 mul r5.xyz, r4, -r1.y rsq r1.x, r8 dp3 r8.x, r7, r7 mul oT2.xy, v4, c136 mul r9.xyz, r6, r1.x rsq r1.y, r8 dp3 r10.x, r9, c112 add r6.xyz, r9, r9 mad r11.x, r10.x, c97.y, c97.y mul r10.xyz, r7, r1.y mad r0, r11.x, c113, c113 mad r11.x, r8.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c141.w dp3 r7.x, r9, r10 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r4 mul r10.w, c97.x, v3.w mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c142.w mul r0.y, r10.y, c143.w dp3 r7.y, r9, r4 mad r9.xyz, r6, r7.y, -r4 min r11.xy, r0, c134 max r0.xy, r11, c133 dp3 r10.x, r9, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 mov r8.y, r1.z mul r4.xy, r8, r0 mul r5.xyz, r4.x, v3 mad r6.xyz, r4.y, v3, r5 mad r5.xy, r7, c135, c135 mul r7.xy, r0, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, r6.xyz, r11.x mov oD0, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 add oD1, r0, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r5.w, c1.x, v3.w dph r0.x, v0, c[a0.x] dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] dp3 r1.x, v1, c[a0.x] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+1] dp3 r1.z, v1, c[a0.x+2] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] dp3 r9.x, v6, c[a0.x] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+1] dp3 r9.z, v6, c[a0.x+2] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] dp3 r9.x, v8, c[a0.x] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+1] dp3 r9.z, v8, c[a0.x+2] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] dp3 r9.x, v10, c[a0.x] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+1] dp3 r9.z, v10, c[a0.x+2] mad oFog.x, r0.z, c41.x, c41.y mad r1.xyz, v11.w, r9, r1 dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz ; -- Passing the truncation limit -- add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 103 i = 111 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r5.w, c97.x, v3.w dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w dp3 r1.x, v1, c[a0.x+96] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+97] dp3 r1.z, v1, c[a0.x+98] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v6, c[a0.x+96] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+97] dp3 r9.z, v6, c[a0.x+98] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v8, c[a0.x+96] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+97] dp3 r9.z, v8, c[a0.x+98] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v10, c[a0.x+96] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+97] dp3 r9.z, v10, c[a0.x+98] mad oFog.x, r0.z, c137.x, c137.y mad r1.xyz, v11.w, r9, r1 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r2.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 +mov oD0, v2 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r10.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul r6.w, c1.x, v3 +rsq r1.y, r10 add r2.xyz, c44, -r4 mul r11.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r3.x, r2, r2 mul r9.w, c1.x, v3.w mul r9.xyz, r6, r1.x +rsq r1.y, r3 mul oT0.xy, v4, c40 add r0.xyz, r9, r9 mul r5.xyz, r2, r1.y mad r6.x, r3.x, -r1.y, c44.w dp3 r8.x, r9, r5 mul r7.x, r6.x, c45.w mad r10.xyz, r0, r8.x, -r5 mul oT2.xy, v4, c40 dp3 r2.x, r10, r11 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r2.y, r2.x, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 lit r1.z, r2 add r2.xyz, c46, -r4 mov r10.x, r1.z dp3 r3.y, r2, r2 mul r2.w, c1.x, v3 +rsq r1.y, r3.y mul r5.xyz, r2, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r7.y, r6.y, c47.w dp3 r6.y, r9, r5 mad r8.xyz, r0, r6.y, -r5 dp3 r6.x, r8, r11 add r8.xyz, c48, -r4 mad r6.y, r6.x, c1.y, c1.y dp3 r2.z, r8, r8 +lit r1.z, r6 mov r10.y, r1.z +rsq r1.y, r2.z mul r3.xyz, r8, r1.y mad r5.z, r2.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r2.z, r9, r3 mad r5.xyz, r0, r2.z, -r3 add r3.xyz, c50, -r4 dp3 r2.x, r5, r11 dp3 r4.w, r3, r3 mad r2.y, r2.x, c1.y, c1.y rsq r1.y, r4.w mul r5.xyz, r3, r1.y +lit r1.z, r2 mad r6.w, r4.w, -r1.y, c50.w mov r10.z, r1.z mul r7.w, r6.w, c51.w dp3 r8.w, r9, r5 mad r8.xyz, r0, r8.w, -r5 dp3 r9.x, r8, r11 min r11, r7, c38 max r0, r11, c37 mad r9.y, r9.x, c1.y, c1.y lit r1.z, r9 mov r10.w, r1.z mul r2, r10, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r5.xyz, r2.z, v3, r4 mad r6.xyz, r2.w, v3, r5 add oD1, c26, r6.xyz mul r6.xy, v4, c27 add oT1.xy, r6, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 64 i = 66 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r2.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w mov oD0, v2 dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r10.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul r6.w, c97.x, v3 rsq r1.y, r10 add r2.xyz, c140, -r4 mul r11.xyz, r4, -r1.y rsq r1.x, r8 dp3 r3.x, r2, r2 mul r9.w, c97.x, v3.w mul r9.xyz, r6, r1.x rsq r1.y, r3 mul oT0.xy, v4, c136 add r0.xyz, r9, r9 mul r5.xyz, r2, r1.y mad r6.x, r3.x, -r1.y, c140.w dp3 r8.x, r9, r5 mul r7.x, r6.x, c141.w mad r10.xyz, r0, r8.x, -r5 mul oT2.xy, v4, c136 dp3 r2.x, r10, r11 mad r2.y, r2.x, c97.y, c97.y lit r1.z, r2 add r2.xyz, c142, -r4 mov r10.x, r1.z dp3 r3.y, r2, r2 mul r2.w, c97.x, v3 rsq r1.y, r3.y mul r5.xyz, r2, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r7.y, r6.y, c143.w dp3 r6.y, r9, r5 mad r8.xyz, r0, r6.y, -r5 dp3 r6.x, r8, r11 add r8.xyz, c144, -r4 mad r6.y, r6.x, c97.y, c97.y dp3 r2.z, r8, r8 lit r1.z, r6 mov r10.y, r1.z rsq r1.y, r2.z mul r3.xyz, r8, r1.y mad r5.z, r2.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r2.z, r9, r3 mad r5.xyz, r0, r2.z, -r3 add r3.xyz, c146, -r4 dp3 r2.x, r5, r11 dp3 r4.w, r3, r3 mad r2.y, r2.x, c97.y, c97.y rsq r1.y, r4.w mul r5.xyz, r3, r1.y lit r1.z, r2 mad r6.w, r4.w, -r1.y, c146.w mov r10.z, r1.z mul r7.w, r6.w, c147.w dp3 r8.w, r9, r5 mad r8.xyz, r0, r8.w, -r5 dp3 r9.x, r8, r11 min r11, r7, c134 max r0, r11, c133 mad r9.y, r9.x, c97.y, c97.y lit r1.z, r9 mov r10.w, r1.z mul r2, r10, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r5.xyz, r2.z, v3, r4 mad r6.xyz, r2.w, v3, r5 add oD1, c122, r6.xyz ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y +rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c44, -r4 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 dp3 r7.x, r6, r6 mad r11.x, r10.x, c1.y, c1.y rsq r1.y, r7.x mad r0, r11.x, c17, c17 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c44.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c45.w add r6.xyz, c46, -r4 mad oPos.xyz, r12, r1.x, c-37 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r4.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r11.y, r6.y, c47.w dp3 r0.y, r9, r4 min r6.xy, r11, c38 max r7.xy, r6, c37 mad r8.xy, r0, c39, c39 mul r10.xy, r7, r8 mul r11.xyz, c45, r10.x mad r0.xyz, r11.xyz, v2.xyz, r2.xyz add r11.x, r3.x, r10.x mul r3.xyz, c47, r10.y mad r2.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r10.y mul r4, c3.xyz, r3.x +mov oD0, r2 add oD1, c26, r4 add r4.xy, -r5, r9 mul r5.xy, v4, c27 mad oT0.xy, r4.xy, c1.y, c1.y add oT1.xy, r5, c28 mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 62 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c140, -r4 dp3 r10.x, r9, c112 dp3 r7.x, r6, r6 mad r11.x, r10.x, c97.y, c97.y rsq r1.y, r7.x mad r0, r11.x, c113, c113 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c140.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c141.w add r6.xyz, c142, -r4 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r4.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r11.y, r6.y, c143.w dp3 r0.y, r9, r4 min r6.xy, r11, c134 max r7.xy, r6, c133 mad r8.xy, r0, c135, c135 mul r10.xy, r7, r8 mul r11.xyz, c141, r10.x mad r0.xyz, r11.xyz, v2.xyz, r2.xyz add r11.x, r3.x, r10.x mul r3.xyz, c143, r10.y mad r2.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r10.y mul r4, c99.xyz, r3.x mov oD0, r2 add oD1, c122, r4 add r4.xy, -r5, r9 mul r5.xy, v4, c123 mad oT0.xy, r4.xy, c97.y, c97.y add oT1.xy, r5, c124 mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y +rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c44, -r4 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 dp3 r7.x, r6, r6 mad r11.x, r10.x, c1.y, c1.y rsq r1.y, r7.x mad r0, r11.x, c17, c17 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c44.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c45.w add r6.xyz, c46, -r4 mad oPos.xyz, r12, r1.x, c-37 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r7.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r11.y, r6.y, c47.w dp3 r0.y, r9, r7 add r6.xyz, c48, -r4 dp3 r7.z, r6, r6 rsq r1.y, r7.z mul r8.xyz, r6, r1.y mad r10.z, r7.z, -r1.y, c48.w mul r11.z, r10.z, c49.w dp3 r0.z, r9, r8 add r10.xyz, c50, -r4 dp3 r10.w, r10, r10 rsq r1.y, r10.w mul r4.xyz, r10, r1.y mad r3.w, r10.w, -r1.y, c50.w mul r11.w, r3.w, c51.w dp3 r0.w, r9, r4 min r4, r11, c38 max r6, r4, c37 mad r4, r0, c39, c39 mul r7, r6, r4 mul r6.xyz, c45, r7.x mad r8.xyz, r6.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r0.xyz, r11.xyz, v2.xyz, r8.xyz add r11.x, r10.x, r7.y mul r3.xyz, c49, r7.z mad r4.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r7.z mul r6.xyz, c51, r7.w mad r2.xyz, r6.xyz, v2.xyz, r4.xyz add r6.x, r3.x, r7.w mul r8.xy, v4, c27 mul r7, c3.xyz, r6.x +mov oD0, r2 add oT1.xy, r8, c28 add oD1, r7, c26 add r7.xy, -r5, r9 mad oT0.xy, r7.xy, c1.y, c1.y mad oT2.xy, r7.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 62 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c140, -r4 dp3 r10.x, r9, c112 dp3 r7.x, r6, r6 mad r11.x, r10.x, c97.y, c97.y rsq r1.y, r7.x mad r0, r11.x, c113, c113 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c140.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c141.w add r6.xyz, c142, -r4 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r7.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r11.y, r6.y, c143.w dp3 r0.y, r9, r7 add r6.xyz, c144, -r4 dp3 r7.z, r6, r6 rsq r1.y, r7.z mul r8.xyz, r6, r1.y mad r10.z, r7.z, -r1.y, c144.w mul r11.z, r10.z, c145.w dp3 r0.z, r9, r8 add r10.xyz, c146, -r4 dp3 r10.w, r10, r10 rsq r1.y, r10.w mul r4.xyz, r10, r1.y mad r3.w, r10.w, -r1.y, c146.w mul r11.w, r3.w, c147.w dp3 r0.w, r9, r4 min r4, r11, c134 max r6, r4, c133 mad r4, r0, c135, c135 mul r7, r6, r4 mul r6.xyz, c141, r7.x mad r8.xyz, r6.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r0.xyz, r11.xyz, v2.xyz, r8.xyz add r11.x, r10.x, r7.y mul r3.xyz, c145, r7.z mad r4.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r7.z mul r6.xyz, c147, r7.w mad r2.xyz, r6.xyz, v2.xyz, r4.xyz add r6.x, r3.x, r7.w mul r8.xy, v4, c123 mul r7, c99.xyz, r6.x mov oD0, r2 add oT1.xy, r8, c124 add oD1, r7, c122 add r7.xy, -r5, r9 mad oT0.xy, r7.xy, c97.y, c97.y mad oT2.xy, r7.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] mov a0.x, v5.w mul r5.xy, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] mov a0.x, v7.w mad r9.xy, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] mov a0.x, v9.w mad r2.xy, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] mad oFog.x, r4.z, c41.x, c41.y mad r6.xy, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r10.x, r4, r4 mov r8, v2 +mov oPos, r7 mul r3.xy, v4, c27 mov r9.x, r8 +rsq r1.y, r10 add oT1.xy, r3, c28 mul r11.xy, r4, -r1.y +mov oD0, r8 mul r0, c3.xyz, r9.x add oD1, r0, c26 add r2.xy, -r11, r6 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r2.xy, c1.y, c1.y mad oT2.xy, r2.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] mov a0.x, v5.w mul r5.xy, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] mov a0.x, v7.w mad r9.xy, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] mov a0.x, v9.w mad r2.xy, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] mad oFog.x, r4.z, c137.x, c137.y mad r6.xy, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r10.x, r4, r4 mov r8, v2 mov oPos, r7 mul r3.xy, v4, c123 mov r9.x, r8 rsq r1.y, r10 add oT1.xy, r3, c124 mul r11.xy, r4, -r1.y mov oD0, r8 mul r0, c99.xyz, r9.x add oD1, r0, c122 add r2.xy, -r11, r6 mad oT0.xy, r2.xy, c97.y, c97.y mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r10.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul r11.w, c1.x, v3 +rsq r1.y, r5 add r7.xyz, c44, -r4 mul r5.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r8.x, r7, r7 mul r9.xyz, r6, r1.x +rsq r1.y, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 add r6.xyz, r9, r9 mad r11.x, r10.x, c1.y, c1.y mul r10.xyz, r7, r1.y mad r0, r11.x, c17, c17 mad r11.x, r8.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c45.w dp3 r7.x, r9, r10 mad oPos.xyz, r12, r1.x, c-37 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 add r10.xyz, c46, -r4 mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c46.w mul r0.y, r10.y, c47.w dp3 r7.y, r9, r4 mad r10.xyz, r6, r7.y, -r4 dp3 r11.x, r10, r5 mad r11.y, r11.x, c1.y, c1.y min r11.xy, r0, c38 +lit r1.z, r11 max r0.xy, r11, c37 mov r8.y, r1.z mul r4.xy, r8, r0 mul r6.xyz, r4.x, v3 mad r8.xyz, r4.y, v3, r6 mad r6.xy, r7, c39, c39 mul r7.xy, r0, r6 mul r10.xyz, c45, r7.x mad r11.xyz, r10.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r0.xyz, c47, r7.y mad r2.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r10.x, r7.y mul r3.xy, v4, c27 mul r0, r8.xyz, r11.x +mov oD0, r2 add r2.xy, -r5, r9 add oD1, r0, c26 mad oT0.xy, r2.xy, c1.y, c1.y add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 53 i = 64 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r10.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul r11.w, c97.x, v3 rsq r1.y, r5 add r7.xyz, c140, -r4 mul r5.xyz, r4, -r1.y rsq r1.x, r8 dp3 r8.x, r7, r7 mul r9.xyz, r6, r1.x rsq r1.y, r8 dp3 r10.x, r9, c112 add r6.xyz, r9, r9 mad r11.x, r10.x, c97.y, c97.y mul r10.xyz, r7, r1.y mad r0, r11.x, c113, c113 mad r11.x, r8.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c141.w dp3 r7.x, r9, r10 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r4 mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c142.w mul r0.y, r10.y, c143.w dp3 r7.y, r9, r4 mad r10.xyz, r6, r7.y, -r4 dp3 r11.x, r10, r5 mad r11.y, r11.x, c97.y, c97.y min r11.xy, r0, c134 lit r1.z, r11 max r0.xy, r11, c133 mov r8.y, r1.z mul r4.xy, r8, r0 mul r6.xyz, r4.x, v3 mad r8.xyz, r4.y, v3, r6 mad r6.xy, r7, c135, c135 mul r7.xy, r0, r6 mul r10.xyz, c141, r7.x mad r11.xyz, r10.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r0.xyz, c143, r7.y mad r2.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r10.x, r7.y mul r3.xy, v4, c123 mul r0, r8.xyz, r11.x mov oD0, r2 add r2.xy, -r5, r9 add oD1, r0, c122 mad oT0.xy, r2.xy, c97.y, c97.y add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r5.w, c1.x, v3.w dph r0.x, v0, c[a0.x] dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] dp3 r1.x, v1, c[a0.x] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+1] dp3 r1.z, v1, c[a0.x+2] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] dp3 r9.x, v6, c[a0.x] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+1] dp3 r9.z, v6, c[a0.x+2] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] dp3 r9.x, v8, c[a0.x] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+1] dp3 r9.z, v8, c[a0.x+2] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] dp3 r9.x, v10, c[a0.x] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+1] dp3 r9.z, v10, c[a0.x+2] mad oFog.x, r0.z, c41.x, c41.y mad r1.xyz, v11.w, r9, r1 dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 ; -- Passing the truncation limit -- mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 135 i = 136 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r5.w, c97.x, v3.w dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w dp3 r1.x, v1, c[a0.x+96] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+97] dp3 r1.z, v1, c[a0.x+98] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v6, c[a0.x+96] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+97] dp3 r9.z, v6, c[a0.x+98] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v8, c[a0.x+96] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+97] dp3 r9.z, v8, c[a0.x+98] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v10, c[a0.x+96] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+97] dp3 r9.z, v10, c[a0.x+98] mad oFog.x, r0.z, c137.x, c137.y mad r1.xyz, v11.w, r9, r1 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 mov r10, v2 dp3 r8.x, r6, r6 +mov oPos, r7 mul r3.xy, v4, c27 +mov oD0, r10 dp3 r11.x, r4, r4 +rsq r1.x, r8 add oD1, r10.xyz, c26 mul r9.xy, r6, r1.x +rsq r1.y, r11 add oT1.xy, r3, c28 mul r0.xy, r4, -r1.y add r2.xy, -r0, r9 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r2.xy, c1.y, c1.y mad oT2.xy, r2.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 54 i = 57 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w mov r10, v2 dp3 r8.x, r6, r6 mov oPos, r7 mul r3.xy, v4, c123 mov oD0, r10 dp3 r11.x, r4, r4 rsq r1.x, r8 add oD1, r10.xyz, c122 mul r9.xy, r6, r1.x rsq r1.y, r11 add oT1.xy, r3, c124 mul r0.xy, r4, -r1.y add r2.xy, -r0, r9 mad oT0.xy, r2.xy, c97.y, c97.y mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r5.w, c1.x, v3.w dph r0.x, v0, c[a0.x] dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] dp3 r1.x, v1, c[a0.x] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+1] dp3 r1.z, v1, c[a0.x+2] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] dp3 r9.x, v6, c[a0.x] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+1] dp3 r9.z, v6, c[a0.x+2] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] dp3 r9.x, v8, c[a0.x] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+1] dp3 r9.z, v8, c[a0.x+2] mad oFog.x, r0.z, c41.x, c41.y mad r1.xyz, v11.z, r9, r1 dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 max r8.x, r1.z, -r1.z mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r8.x, c0.w, -r8.x mul r2, r10.xyz, r2.x add r8.x, r8.x, -c31.x add oD1, r2, c26 mul r8.x, r8.x, c31.y ; -- Passing the truncation limit -- max r8.x, r8.x, c0.x mul r3.w, r3.w, r8.x mul r10.xy, v4, c27 +mov oD0, r3 mad oPos.xyz, r12, r1.x, c-37 add oT1.xy, r10, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 94 i = 131 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r5.w, c97.x, v3.w dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w dp3 r1.x, v1, c[a0.x+96] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+97] dp3 r1.z, v1, c[a0.x+98] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v6, c[a0.x+96] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+97] dp3 r9.z, v6, c[a0.x+98] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v8, c[a0.x+96] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+97] dp3 r9.z, v8, c[a0.x+98] mad oFog.x, r0.z, c137.x, c137.y mad r1.xyz, v11.z, r9, r1 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 max r8.x, r1.z, -r1.z mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c46.w mul r7.y, r2.y, c47.w dp3 r8.y, r6, r0 min r0.xy, r7, c38 max r2.xy, r0, c37 mad r3.xy, r8, c39, c39 mul r4.xy, r2, r3 mul r5.xyz, c45, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c3.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c142.w mul r7.y, r2.y, c143.w dp3 r8.y, r6, r0 min r0.xy, r7, c134 max r2.xy, r0, c133 mad r3.xy, r8, c135, c135 mul r4.xy, r2, r3 mul r5.xyz, c141, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c99.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r2, r8, c39, c39 mul r3, r0, r2 mul r0.xyz, c45, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c47, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c49, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c51, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c3.xyz, r0.x +mov oD0, r10 add oD1, c26, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r2, r8, c135, c135 mul r3, r0, r2 mul r0.xyz, c141, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c143, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c145, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c147, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c99.xyz, r0.x mov oD0, r10 add oD1, c122, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r3, r8, c39, c39 mul r4, r0, r3 mul r0.xyz, c45, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c47, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c49, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c51, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c52, -r2 add r11.xyz, c54, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 +rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c52.w mul r9.x, r8, c53.w +rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c54.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c55.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r11.xy, v4, c27 mul r6.xy, r4, r5 mul r5.xyz, c53, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c55, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c28 mul r10, c3.xyz, r9.x +mov oD0, r10 add oD1, c26, r10 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 30 i = 32 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r3, r8, c135, c135 mul r4, r0, r3 mul r0.xyz, c141, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c143, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c145, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c147, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c148, -r2 add r11.xyz, c150, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c148.w mul r9.x, r8, c149.w rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c150.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c151.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r11.xy, v4, c123 mul r6.xy, r4, r5 mul r5.xyz, c149, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c151, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c124 mul r10, c99.xyz, r9.x mov oD0, r10 add oD1, c122, r10 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 mov r3, v2 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 +mov oD0, r3 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mul oT0.xy, v4, c40 mov r2.x, r3 +mov oPos, r8 mul r10.xy, v4, c27 mul r2, c3.xyz, r2.x add oD1, r2, c26 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 18 i = 19 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w mov r3, v2 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, r3 dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mul oT0.xy, v4, c136 mov r2.x, r3 mov oPos, r8 mul r10.xy, v4, c123 mul r2, c99.xyz, r2.x add oD1, r2, c122 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c46.w mul r7.y, r2.y, c47.w dp3 r8.y, r6, r0 min r0.xy, r7, c38 max r2.xy, r0, c37 mad r3.xy, r8, c39, c39 mul r4.xy, r2, r3 mul r5.xyz, c45, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c3.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r2.y, r11.y, -r1.y, c142.w mul r7.y, r2.y, c143.w dp3 r8.y, r6, r0 min r0.xy, r7, c134 max r2.xy, r0, c133 mad r3.xy, r8, c135, c135 mul r4.xy, r2, r3 mul r5.xyz, c141, r4.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r4.y mul r9, c99.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r2, r8, c39, c39 mul r3, r0, r2 mul r0.xyz, c45, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c47, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c49, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c51, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c3.xyz, r0.x +mov oD0, r10 add oD1, c26, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r2, r8, c135, c135 mul r3, r0, r2 mul r0.xyz, c141, r3.x mad r2.xyz, r0.xyz, v2.xyz, r10.xyz add r4.x, r11.x, r3.x mul r5.xyz, c143, r3.y mad r6.xyz, r5.xyz, v2.xyz, r2.xyz add r7.x, r4.x, r3.y mul r8.xyz, c145, r3.z mad r9.xyz, r8.xyz, v2.xyz, r6.xyz add r11.x, r7.x, r3.z mul r0.xyz, c147, r3.w mad r10.xyz, r0.xyz, v2.xyz, r9.xyz add r0.x, r11.x, r3.w mul r2, c99.xyz, r0.x mov oD0, r10 add oD1, c122, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 add r0.xyz, c44, -r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul oT0.xy, v4, c40 dp3 r3.x, r0, r0 +rsq r1.x, r5 mul oT2.xy, v4, c40 +rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c1.y, c1.y mad r5.x, r3.x, -r1.y, c44.w mad r9, r8.x, c17, c17 mul r7.x, r5.x, c45.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c46, -r2 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r11.y, r9, r9 mad oPos.xyz, r12, r1.x, c-37 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r7.y, r3.y, c47.w dp3 r8.y, r6, r0 add r0.xyz, c48, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r8.z, r6, r4 add r4.xyz, c50, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c50.w mul r7.w, r9.w, c51.w dp3 r8.w, r6, r9 min r9, r7, c38 max r0, r9, c37 mad r3, r8, c39, c39 mul r4, r0, r3 mul r0.xyz, c45, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c47, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c49, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c51, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c52, -r2 add r11.xyz, c54, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 +rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c52.w mul r9.x, r8, c53.w +rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c54.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c55.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r11.xy, v4, c27 mul r6.xy, r4, r5 mul r5.xyz, c53, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c55, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c28 mul r10, c3.xyz, r9.x +mov oD0, r10 add oD1, c26, r10 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w add r0.xyz, c140, -r2 dp3 r5.x, r4, r4 mov oPos, r3 mul oT0.xy, v4, c136 dp3 r3.x, r0, r0 rsq r1.x, r5 mul oT2.xy, v4, c136 rsq r1.y, r3 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 mul r4.xyz, r0, r1.y mad r8.x, r7.x, c97.y, c97.y mad r5.x, r3.x, -r1.y, c140.w mad r9, r8.x, c113, c113 mul r7.x, r5.x, c141.w mul r10, r9, v2 mov r11.x, r10.x dp3 r8.x, r6, r4 add r9.xyz, c142, -r2 dp3 r11.y, r9, r9 rsq r1.y, r11.y mul r0.xyz, r9, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r7.y, r3.y, c143.w dp3 r8.y, r6, r0 add r0.xyz, c144, -r2 dp3 r3.z, r0, r0 rsq r1.y, r3.z mul r4.xyz, r0, r1.y mad r5.z, r3.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r8.z, r6, r4 add r4.xyz, c146, -r2 dp3 r5.w, r4, r4 rsq r1.y, r5.w mul r9.xyz, r4, r1.y mad r9.w, r5.w, -r1.y, c146.w mul r7.w, r9.w, c147.w dp3 r8.w, r6, r9 min r9, r7, c134 max r0, r9, c133 mad r3, r8, c135, c135 mul r4, r0, r3 mul r0.xyz, c141, r4.x mad r3.xyz, r0.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r7.xyz, c143, r4.y mad r8.xyz, r7.xyz, v2.xyz, r3.xyz add r7.x, r5.x, r4.y mul r9.xyz, c145, r4.z mad r11.xyz, r9.xyz, v2.xyz, r8.xyz add r9.x, r7.x, r4.z mul r0.xyz, c147, r4.w mad r3.xyz, r0.xyz, v2.xyz, r11.xyz add r0.x, r9.x, r4.w add r4.xyz, c148, -r2 add r11.xyz, c150, -r2 dp3 r5.x, r4, r4 dp3 r0.y, r11, r11 rsq r1.y, r5 mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c148.w mul r9.x, r8, c149.w rsq r1.y, r0.y dp3 r8.x, r6, r7 mul r2.xyz, r11, r1.y mad r11.y, r0.y, -r1.y, c150.w dp3 r8.y, r6, r2 mul r9.y, r11.y, c151.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r11.xy, v4, c123 mul r6.xy, r4, r5 mul r5.xyz, c149, r6.x mad r7.xyz, r5.xyz, v2.xyz, r3.xyz add r8.x, r0.x, r6.x mul r9.xyz, c151, r6.y mad r10.xyz, r9, v2, r7.xyz add r9.x, r8.x, r6.y add oT1.xy, r11, c124 mul r10, c99.xyz, r9.x mov oD0, r10 add oD1, c122, r10 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mov r3, v2 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 +mov oD0, r3 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mul oT0.xy, v4, c40 mov r2.x, r3 +mov oPos, r8 mul r10.xy, v4, c27 mul r2, c3.xyz, r2.x add oD1, r2, c26 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 16 i = 17 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mov r3, v2 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, r3 dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mul oT0.xy, v4, c136 mov r2.x, r3 mov oPos, r8 mul r10.xy, v4, c123 mul r2, c99.xyz, r2.x add oD1, r2, c122 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c1.x, v3.w dp3 r5.x, r4, r4 +rsq r1.y, r0 mul oT2.xy, v4, c40 mul oT0.xy, v4, c40 +rsq r1.x, r5 mul r3.xyz, r2, -r1.y mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y add r5.xyz, c44, -r2 mad r9, r8.x, c17, c17 dp3 r7.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mul r7.w, c1.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c38 max r0.xy, r8, c37 dp3 r7.x, r6, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c39, c39 mul r3.xy, r0, r2 mul r5.xyz, c45, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c47, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 27 i = 30 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c97.x, v3.w dp3 r5.x, r4, r4 rsq r1.y, r0 mul oT2.xy, v4, c136 mul oT0.xy, v4, c136 rsq r1.x, r5 mul r3.xyz, r2, -r1.y mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y add r5.xyz, c140, -r2 mad r9, r8.x, c113, c113 dp3 r7.x, r5, r5 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mul r7.w, c97.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c134 max r0.xy, r8, c133 dp3 r7.x, r6, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c135, c135 mul r3.xy, r0, r2 mul r5.xyz, c141, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c143, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 73 i = 81 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w mul r6.x, r6.x, c53.w dp3 r7.x, r1, r5 add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 ; -- Passing the truncation limit -- mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 113 i = 117 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w mul r6.x, r6.x, c149.w dp3 r7.x, r1, r5 add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, v2 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r7.x, r2, r2 add r10.xyz, c44, -r2 dp3 r5.x, r4, r4 +rsq r1.y, r7 mul r10.w, c1.x, v3.w dp3 r11.x, r10, r10 +rsq r1.x, r5 mul r8.xyz, r2, -r1.y mul r6.xyz, r4, r1.x +rsq r1.y, r11 mul r3.w, c1.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c44.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c45.w mad r7.xyz, r9, r5.x, -r0 mul r6.w, c1.x, v3.w dp3 r10.x, r7, r8 mul oT0.xy, v4, c40 mad r10.y, r10.x, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul oT2.xy, v4, c40 +lit r1.z, r10 add r10.xyz, c46, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mad oPos.xyz, r12, r1.x, c-37 mul r10.w, c1.x, v3 +rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r4.y, r3.y, c47.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c48, -r2 mad r3.y, r3.x, c1.y, c1.y dp3 r10.z, r5, r5 +lit r1.z, r3 mov r7.y, r1.z +rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c48.w mul r4.z, r0.z, c49.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c50, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c1.y, c1.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y +lit r1.z, r10 mad r3.w, r0.w, -r1.y, c50.w mov r7.z, r1.z mul r4.w, r3.w, c51.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c38 max r9, r8, c37 mad r6.y, r6.x, c1.y, c1.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c26, r3.xyz mul r3.xy, v4, c27 add oT1.xy, r3, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 34 i = 40 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, v2 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r7.x, r2, r2 add r10.xyz, c140, -r2 dp3 r5.x, r4, r4 rsq r1.y, r7 mul r10.w, c97.x, v3.w dp3 r11.x, r10, r10 rsq r1.x, r5 mul r8.xyz, r2, -r1.y mul r6.xyz, r4, r1.x rsq r1.y, r11 mul r3.w, c97.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c140.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c141.w mad r7.xyz, r9, r5.x, -r0 mul r6.w, c97.x, v3.w dp3 r10.x, r7, r8 mul oT0.xy, v4, c136 mad r10.y, r10.x, c97.y, c97.y mul oT2.xy, v4, c136 lit r1.z, r10 add r10.xyz, c142, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mul r10.w, c97.x, v3 rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r4.y, r3.y, c143.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c144, -r2 mad r3.y, r3.x, c97.y, c97.y dp3 r10.z, r5, r5 lit r1.z, r3 mov r7.y, r1.z rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c144.w mul r4.z, r0.z, c145.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c146, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c97.y, c97.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y lit r1.z, r10 mad r3.w, r0.w, -r1.y, c146.w mov r7.z, r1.z mul r4.w, r3.w, c147.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c134 max r9, r8, c133 mad r6.y, r6.x, c97.y, c97.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c122, r3.xyz mul r3.xy, v4, c123 add oT1.xy, r3, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r7.w, c1.x, v3 +rsq r1.y, r0 mul oT0.xy, v4, c40 mul r3.xyz, r2, -r1.y +rsq r1.x, r5 add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oT2.xy, v4, c40 mul r10, r9, v2 +rsq r1.y, r7 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mad oPos.xyz, r12, r1.x, c-37 mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mul r7.w, c1.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c38 max r0.xy, r8, c37 dp3 r7.x, r6, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c39, c39 mul r3.xy, r0, r2 mul r5.xyz, c45, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c47, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x +mov oD0, r10 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r9, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 29 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r7.w, c97.x, v3 rsq r1.y, r0 mul oT0.xy, v4, c136 mul r3.xyz, r2, -r1.y rsq r1.x, r5 add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul oT2.xy, v4, c136 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mul r7.w, c97.x, v3.w mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r6.xyz, r4, r9.y, -r2 min r8.xy, r0, c134 max r0.xy, r8, c133 dp3 r7.x, r6, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 mov r5.y, r1.z mul r2.xy, r5, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r2.xy, r9, c135, c135 mul r3.xy, r0, r2 mul r5.xyz, c141, r3.x mad r6.xyz, r5.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r3.x mul r8.xyz, c143, r3.y mad r10.xyz, r8.xyz, v2.xyz, r6.xyz add r8.x, r7.x, r3.y mul r9, r4.xyz, r8.x mov oD0, r10 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r9, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 69 i = 77 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w mul r6.x, r6.x, c53.w dp3 r7.x, r1, r5 add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 109 i = 113 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 dp3 r6.x, r5, r5 rsq r2.y, r6.x mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w mul r6.x, r6.x, c149.w dp3 r7.x, r1, r5 add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 add oD1, r2, c122 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, v2 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r7.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r10.w, c1.x, v3 +rsq r1.y, r7 add r10.xyz, c44, -r2 mul r8.xyz, r2, -r1.y +rsq r1.x, r5 dp3 r11.x, r10, r10 mul r3.w, c1.x, v3.w mul r6.xyz, r4, r1.x +rsq r1.y, r11 mul r6.w, c1.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c44.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c45.w mad r7.xyz, r9, r5.x, -r0 mul oT0.xy, v4, c40 dp3 r10.x, r7, r8 mul oT2.xy, v4, c40 mad r10.y, r10.x, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w lit r1.z, r10 add r10.xyz, c46, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mad oPos.xyz, r12, r1.x, c-37 mul r10.w, c1.x, v3 +rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c46.w mul r4.y, r3.y, c47.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c48, -r2 mad r3.y, r3.x, c1.y, c1.y dp3 r10.z, r5, r5 +lit r1.z, r3 mov r7.y, r1.z +rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c48.w mul r4.z, r0.z, c49.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c50, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c1.y, c1.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y +lit r1.z, r10 mad r3.w, r0.w, -r1.y, c50.w mov r7.z, r1.z mul r4.w, r3.w, c51.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c38 max r9, r8, c37 mad r6.y, r6.x, c1.y, c1.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c26, r3.xyz mul r3.xy, v4, c27 add oT1.xy, r3, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 31 i = 36 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, v2 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r7.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r10.w, c97.x, v3 rsq r1.y, r7 add r10.xyz, c140, -r2 mul r8.xyz, r2, -r1.y rsq r1.x, r5 dp3 r11.x, r10, r10 mul r3.w, c97.x, v3.w mul r6.xyz, r4, r1.x rsq r1.y, r11 mul r6.w, c97.x, v3.w add r9.xyz, r6, r6 mul r0.xyz, r10, r1.y mad r3.x, r11.x, -r1.y, c140.w dp3 r5.x, r6, r0 mul r4.x, r3.x, c141.w mad r7.xyz, r9, r5.x, -r0 mul oT0.xy, v4, c136 dp3 r10.x, r7, r8 mul oT2.xy, v4, c136 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r2 mov r7.x, r1.z dp3 r11.y, r10, r10 mul r10.w, c97.x, v3 rsq r1.y, r11.y mul r0.xyz, r10, r1.y mad r3.y, r11.y, -r1.y, c142.w mul r4.y, r3.y, c143.w dp3 r3.y, r6, r0 mad r5.xyz, r9, r3.y, -r0 dp3 r3.x, r5, r8 add r5.xyz, c144, -r2 mad r3.y, r3.x, c97.y, c97.y dp3 r10.z, r5, r5 lit r1.z, r3 mov r7.y, r1.z rsq r1.y, r10.z mul r11.xyz, r5, r1.y mad r0.z, r10.z, -r1.y, c144.w mul r4.z, r0.z, c145.w dp3 r10.z, r6, r11 mad r0.xyz, r9, r10.z, -r11 add r11.xyz, c146, -r2 dp3 r10.x, r0, r8 dp3 r0.w, r11, r11 mad r10.y, r10.x, c97.y, c97.y rsq r1.y, r0.w mul r2.xyz, r11, r1.y lit r1.z, r10 mad r3.w, r0.w, -r1.y, c146.w mov r7.z, r1.z mul r4.w, r3.w, c147.w dp3 r5.w, r6, r2 mad r5.xyz, r9, r5.w, -r2 dp3 r6.x, r5, r8 min r8, r4, c134 max r9, r8, c133 mad r6.y, r6.x, c97.y, c97.y lit r1.z, r6 mov r7.w, r1.z mul r10, r7, r9 mul r11.xyz, r10.x, v3 mad r0.xyz, r10.y, v3, r11 mad r2.xyz, r10.z, v3, r0 mad r3.xyz, r10.w, v3, r2 add oD1, c122, r3.xyz mul r3.xy, v4, c123 add oT1.xy, r3, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c47.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r2.xy, v4, c27 mul r7.xy, r4, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c47, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c28 mul r0, c3.xyz, r11.x +mov oD0, r10 add oD1, c26, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c1.y, c1.y mad oT2.xy, r0.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c143.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r2.xy, v4, c123 mul r7.xy, r4, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c143, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c124 mul r0, c99.xyz, r11.x mov oD0, r10 add oD1, c122, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c97.y, c97.y mad oT2.xy, r0.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r2, r0, c37 mad r0, r8, c39, c39 mul r4, r2, r0 mul r5.xyz, c45, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c49, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c51, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c27 mul r4, c3.xyz, r2.x +mov oD0, r10 add oT1.xy, r5, c28 add oD1, r4, c26 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c1.y, c1.y mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r2, r0, c133 mad r0, r8, c135, c135 mul r4, r2, r0 mul r5.xyz, c141, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c145, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c147, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c123 mul r4, c99.xyz, r2.x mov oD0, r10 add oT1.xy, r5, c124 add oD1, r4, c122 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c97.y, c97.y mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +rsq r1.y, r0 add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r4, r0, c37 mad r0, r8, c39, c39 mul r5, r4, r0 mul r4.xyz, c45, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c47, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c49, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c51, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c52, -r2 add r0.xyz, c54, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 +rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c52.w mul r8.x, r11, c53.w +rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c54.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c55.w min r5.xy, r8, c38 max r8.xy, r5, c37 mad r5.xy, r11, c39, c39 mul r9.xy, r8, r5 mul r8.xyz, c53, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c55, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c3.xyz, r11.x +mov oD0, r10 mad oT0.xy, r2.xy, c1.y, c1.y add oD1, r0, c26 mul r3.xy, v4, c27 add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 25 i = 28 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 rsq r1.y, r0 add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r4, r0, c133 mad r0, r8, c135, c135 mul r5, r4, r0 mul r4.xyz, c141, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c143, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c145, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c147, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c148, -r2 add r0.xyz, c150, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c148.w mul r8.x, r11, c149.w rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c150.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c151.w min r5.xy, r8, c134 max r8.xy, r5, c133 mad r5.xy, r11, c135, c135 mul r9.xy, r8, r5 mul r8.xyz, c149, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c151, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c99.xyz, r11.x mov oD0, r10 mad oT0.xy, r2.xy, c97.y, c97.y add oD1, r0, c122 mul r3.xy, v4, c123 add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 mov r4, v2 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, r4 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r6.x, r2, r2 mov r5.x, r4 +mov oPos, r3 mul r10.xy, v4, c27 mul r8, c3.xyz, r5.x +rsq r1.y, r6 add oT1.xy, r10, c28 mul r7.xy, r2, -r1.y add oD1, r8, c26 add r9.xy, -r7, r1 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r9.xy, c1.y, c1.y mad oT2.xy, r9.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 20 i = 23 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w mov r4, v2 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, r4 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r6.x, r2, r2 mov r5.x, r4 mov oPos, r3 mul r10.xy, v4, c123 mul r8, c99.xyz, r5.x rsq r1.y, r6 add oT1.xy, r10, c124 mul r7.xy, r2, -r1.y add oD1, r8, c122 add r9.xy, -r7, r1 mad oT0.xy, r9.xy, c97.y, c97.y mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c47.w min r2.xy, r9, c38 max r4.xy, r2, c37 mad r5.xy, r8, c39, c39 mul r2.xy, v4, c27 mul r7.xy, r4, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c47, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c28 mul r0, c3.xyz, r11.x +mov oD0, r10 add oD1, c26, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c1.y, c1.y mad oT2.xy, r0.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r2.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r2 mul r9.y, r0.y, c143.w min r2.xy, r9, c134 max r4.xy, r2, c133 mad r5.xy, r8, c135, c135 mul r2.xy, v4, c123 mul r7.xy, r4, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r7.x mul r11.xyz, c143, r7.y mad r10.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r7.y add oT1.xy, r2, c124 mul r0, c99.xyz, r11.x mov oD0, r10 add oD1, c122, r0 add r0.xy, -r3, r6 mad oT0.xy, r0.xy, c97.y, c97.y mad oT2.xy, r0.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r2, r0, c37 mad r0, r8, c39, c39 mul r4, r2, r0 mul r5.xyz, c45, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c47, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c49, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c51, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c27 mul r4, c3.xyz, r2.x +mov oD0, r10 add oT1.xy, r5, c28 add oD1, r4, c26 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c1.y, c1.y mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r2, r0, c133 mad r0, r8, c135, c135 mul r4, r2, r0 mul r5.xyz, c141, r4.x mad r7.xyz, r5.xyz, v2.xyz, r10.xyz add r5.x, r11.x, r4.x mul r8.xyz, c143, r4.y mad r9.xyz, r8.xyz, v2.xyz, r7.xyz add r8.x, r5.x, r4.y mul r11.xyz, c145, r4.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r8.x, r4.z mul r2.xyz, c147, r4.w mad r10.xyz, r2.xyz, v2.xyz, r0.xyz add r2.x, r11.x, r4.w mul r5.xy, v4, c123 mul r4, c99.xyz, r2.x mov oD0, r10 add oT1.xy, r5, c124 add oD1, r4, c122 add r4.xy, -r3, r6 mad oT0.xy, r4.xy, c97.y, c97.y mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c46, -r2 mul r3.xy, r2, -r1.y +rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, c44, -r2 mad r8.x, r7.x, c1.y, c1.y dp3 r5.x, r4, r4 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r5 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c44.w mul r9.x, r8, c45.w +rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c46.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c47.w add r4.xyz, c48, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c48.w mul r9.z, r7.z, c49.w dp3 r8.z, r6, r5 add r7.xyz, c50, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c50.w mul r9.w, r11.w, c51.w dp3 r8.w, r6, r0 min r0, r9, c38 max r4, r0, c37 mad r0, r8, c39, c39 mul r5, r4, r0 mul r4.xyz, c45, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c47, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c49, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c51, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c52, -r2 add r0.xyz, c54, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 +rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c52.w mul r8.x, r11, c53.w +rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c54.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c55.w min r5.xy, r8, c38 max r8.xy, r5, c37 mad r5.xy, r11, c39, c39 mul r9.xy, r8, r5 mul r8.xyz, c53, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c55, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c3.xyz, r11.x +mov oD0, r10 mad oT0.xy, r2.xy, c1.y, c1.y add oD1, r0, c26 mul r3.xy, v4, c27 add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 24 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 rsq r1.y, r0.x add r0.xyz, c142, -r2 mul r3.xy, r2, -r1.y rsq r1.x, r5 dp3 r11.y, r0, r0 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, c140, -r2 mad r8.x, r7.x, c97.y, c97.y dp3 r5.x, r4, r4 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r5 mov r11.x, r10.x mul r7.xyz, r4, r1.y mad r8.x, r5.x, -r1.y, c140.w mul r9.x, r8, c141.w rsq r1.y, r11.y dp3 r8.x, r6, r7 mul r4.xyz, r0, r1.y mad r0.y, r11.y, -r1.y, c142.w dp3 r8.y, r6, r4 mul r9.y, r0.y, c143.w add r4.xyz, c144, -r2 dp3 r3.z, r4, r4 rsq r1.y, r3.z mul r5.xyz, r4, r1.y mad r7.z, r3.z, -r1.y, c144.w mul r9.z, r7.z, c145.w dp3 r8.z, r6, r5 add r7.xyz, c146, -r2 dp3 r7.w, r7, r7 rsq r1.y, r7.w mul r0.xyz, r7, r1.y mad r11.w, r7.w, -r1.y, c146.w mul r9.w, r11.w, c147.w dp3 r8.w, r6, r0 min r0, r9, c134 max r4, r0, c133 mad r0, r8, c135, c135 mul r5, r4, r0 mul r4.xyz, c141, r5.x mad r7.xyz, r4.xyz, v2.xyz, r10.xyz add r8.x, r11.x, r5.x mul r9.xyz, c143, r5.y mad r11.xyz, r9.xyz, v2.xyz, r7.xyz add r9.x, r8.x, r5.y mul r0.xyz, c145, r5.z mad r4.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r9.x, r5.z mul r0.xyz, c147, r5.w mad r7.xyz, r0.xyz, v2.xyz, r4.xyz add r4.x, r11.x, r5.w add r5.xyz, c148, -r2 add r0.xyz, c150, -r2 dp3 r8.x, r5, r5 dp3 r2.y, r0, r0 rsq r1.y, r8 mul r9.xyz, r5, r1.y mad r11.x, r8.x, -r1.y, c148.w mul r8.x, r11, c149.w rsq r1.y, r2.y dp3 r11.x, r6, r9 mul r5.xyz, r0, r1.y mad r4.y, r2.y, -r1.y, c150.w dp3 r11.y, r6, r5 mul r8.y, r4.y, c151.w min r5.xy, r8, c134 max r8.xy, r5, c133 mad r5.xy, r11, c135, c135 mul r9.xy, r8, r5 mul r8.xyz, c149, r9.x mad r11.xyz, r8.xyz, v2.xyz, r7.xyz add r0.x, r4.x, r9.x mul r2.xyz, c151, r9.y mad r10.xyz, r2, v2, r11.xyz add r11.x, r0.x, r9.y add r2.xy, -r3, r6 mul r0, c99.xyz, r11.x mov oD0, r10 mad oT0.xy, r2.xy, c97.y, c97.y add oD1, r0, c122 mul r3.xy, v4, c123 add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4, v2 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 +mov oD0, r4 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r6.x, r2, r2 mov r5.x, r4 +mov oPos, r3 mul r10.xy, v4, c27 mul r8, c3.xyz, r5.x +rsq r1.y, r6 add oT1.xy, r10, c28 mul r7.xy, r2, -r1.y add oD1, r8, c26 add r9.xy, -r7, r1 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r9.xy, c1.y, c1.y mad oT2.xy, r9.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 18 i = 21 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4, v2 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w mov oD0, r4 dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r6.x, r2, r2 mov r5.x, r4 mov oPos, r3 mul r10.xy, v4, c123 mul r8, c99.xyz, r5.x rsq r1.y, r6 add oT1.xy, r10, c124 mul r7.xy, r2, -r1.y add oD1, r8, c122 add r9.xy, -r7, r1 mad oT0.xy, r9.xy, c97.y, c97.y mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c1.x, v3.w dp3 r5.x, r4, r4 +rsq r1.y, r0 mul r8.w, c1.x, v3 +rsq r1.x, r5 mul r3.xyz, r2, -r1.y add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c1.y, c1.y min r8.xy, r0, c38 +lit r1.z, r8 max r0.xy, r8, c37 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c39, c39 mul r4.xy, r0, r2 mul r7.xyz, c45, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c47, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c27 mul r9, r5.xyz, r8.x +mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c26 mad oT0.xy, r10.xy, c1.y, c1.y add oT1.xy, r11, c28 mad oT2.xy, r10.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 26 i = 29 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 dp3 r0.x, r2, r2 mul r7.w, c97.x, v3.w dp3 r5.x, r4, r4 rsq r1.y, r0 mul r8.w, c97.x, v3 rsq r1.x, r5 mul r3.xyz, r2, -r1.y add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c97.y, c97.y min r8.xy, r0, c134 lit r1.z, r8 max r0.xy, r8, c133 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c135, c135 mul r4.xy, r0, r2 mul r7.xyz, c141, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c143, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c123 mul r9, r5.xyz, r8.x mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c122 mad oT0.xy, r10.xy, c97.y, c97.y add oT1.xy, r11, c124 mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 105 i = 106 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x mov oD0, r3 mad oT0.xy, r9.xy, c97.y, c97.y add oD1, r2, c122 mul r10.xy, v4, c123 add oT1.xy, r10, c124 mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dp3 r1.x, v1, c8 mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 dp3 r1.y, v1, c9 mul r5.w, c1.x, v3 +mov oPos, r8 dp3 r1.z, v1, c10 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c1.y, c1.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c1.y, c1.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c53.w add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x ; -- Passing the truncation limit -- +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 114 i = 118 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r1.x, v1, c104 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w dp3 r1.y, v1, c105 mul r5.w, c97.x, v3 mov oPos, r8 dp3 r1.z, v1, c106 add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c97.y, c97.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c97.y, c97.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c149.w add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 dp3 r4.x, v1, c8 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r4.z, v1, c10 dp3 r4.y, v1, c9 +mov oPos, r3 mov r7, v2 dp3 r5.x, r4, r4 +mov oD0, r7 add oD1, r10.xyz, c26 dp3 r8.x, r2, r2 +rsq r1.x, r5 mul r11.xy, v4, c27 +rsq r1.y, r8 mul r6.xy, r4, r1.x mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 add oT1.xy, r11, c28 mad oT0.xy, r10.xy, c1.y, c1.y mad oT2.xy, r10.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 21 i = 27 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w dp3 r4.x, v1, c104 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r4.z, v1, c106 dp3 r4.y, v1, c105 mov oPos, r3 mov r7, v2 dp3 r5.x, r4, r4 mov oD0, r7 add oD1, r10.xyz, c122 dp3 r8.x, r2, r2 rsq r1.x, r5 mul r11.xy, v4, c123 rsq r1.y, r8 mul r6.xy, r4, r1.x mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 add oT1.xy, r11, c124 mad oT0.xy, r10.xy, c97.y, c97.y mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r7.w, c1.x, v3 +rsq r1.y, r0 mul r8.w, c1.x, v3.w mul r3.xyz, r2, -r1.y +rsq r1.x, r5 add r5.xyz, c44, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c16 add r4.xyz, r6, r6 mad r8.x, r7.x, c1.y, c1.y dp3 r7.x, r5, r5 mad r9, r8.x, c17, c17 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r10, r9, v2 +rsq r1.y, r7 mad oPos.xyz, r12, r1.x, c-37 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c44.w mul r0.x, r9.x, c45.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c1.y, c1.y lit r1.z, r7 add r7.xyz, c46, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c46.w mul r0.y, r7.y, c47.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c1.y, c1.y min r8.xy, r0, c38 +lit r1.z, r8 max r0.xy, r8, c37 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c39, c39 mul r4.xy, r0, r2 mul r7.xyz, c45, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c47, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c27 mul r9, r5.xyz, r8.x +mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c26 mad oT0.xy, r10.xy, c1.y, c1.y add oT1.xy, r11, c28 mad oT2.xy, r10.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 22 i = 25 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w dp3 r0.x, r2, r2 dp3 r5.x, r4, r4 mov oPos, r3 mul r7.w, c97.x, v3 rsq r1.y, r0 mul r8.w, c97.x, v3.w mul r3.xyz, r2, -r1.y rsq r1.x, r5 add r5.xyz, c140, -r2 mul r6.xyz, r4, r1.x dp3 r7.x, r6, c112 add r4.xyz, r6, r6 mad r8.x, r7.x, c97.y, c97.y dp3 r7.x, r5, r5 mad r9, r8.x, c113, c113 mul r10, r9, v2 rsq r1.y, r7 mov r11.x, r10.x mul r8.xyz, r5, r1.y mad r9.x, r7.x, -r1.y, c140.w mul r0.x, r9.x, c141.w dp3 r9.x, r6, r8 mad r5.xyz, r4, r9.x, -r8 dp3 r7.x, r5, r3 mad r7.y, r7.x, c97.y, c97.y lit r1.z, r7 add r7.xyz, c142, -r2 mov r5.x, r1.z dp3 r8.y, r7, r7 rsq r1.y, r8.y mul r2.xyz, r7, r1.y mad r7.y, r8.y, -r1.y, c142.w mul r0.y, r7.y, c143.w dp3 r9.y, r6, r2 mad r7.xyz, r4, r9.y, -r2 dp3 r8.x, r7, r3 mad r8.y, r8.x, c97.y, c97.y min r8.xy, r0, c134 lit r1.z, r8 max r0.xy, r8, c133 mov r5.y, r1.z mul r2.xy, r5, r0 mul r4.xyz, r2.x, v3 mad r5.xyz, r2.y, v3, r4 mad r2.xy, r9, c135, c135 mul r4.xy, r0, r2 mul r7.xyz, c141, r4.x mad r8.xyz, r7.xyz, v2.xyz, r10.xyz add r7.x, r11.x, r4.x mul r9.xyz, c143, r4.y mad r10.xyz, r9.xyz, v2.xyz, r8.xyz add r8.x, r7.x, r4.y mul r11.xy, v4, c123 mul r9, r5.xyz, r8.x mov oD0, r10 add r10.xy, -r3, r6 add oD1, r9, c122 mad oT0.xy, r10.xy, c97.y, c97.y add oT1.xy, r11, c124 mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 101 i = 102 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 mul r2, r10.xyz, r2.x mov oD0, r3 mad oT0.xy, r9.xy, c97.y, c97.y add oD1, r2, c122 mul r10.xy, v4, c123 add oT1.xy, r10, c124 mad oT2.xy, r9.xy, c97.y, c97.y ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 mul r5.w, c1.x, v3.w dph r8.x, r0, c32 +mov r1.xyz, v1 mad oFog.x, r0.z, c41.x, c41.y dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c52, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c1.y, c1.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c1.y, c1.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c52.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c53.w add r5.xyz, c54, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c54.w mul r6.y, r6.y, c55.w dp3 r7.y, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w min r6.xy, r6, c38 max r6.xy, r6, c37 mad r7.xy, r7, c39, c39 mad oPos.xyz, r12, r1.x, c-37 mul r6.xy, r6, r7 mul r5.xyz, c53, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c55, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 110 i = 114 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r0.xyz, v0 mul r5.w, c97.x, v3.w dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov r1.xyz, v1 mad oFog.x, r0.z, c137.x, c137.y dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c141, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c143, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c145, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c147, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r5.xyz, c148, -r0 add r9.xy, -r8, r1 dp3 r6.x, r5, r5 mad oT0.xy, r9.xy, c97.y, c97.y rsq r2.y, r6.x mad oT2.xy, r9.xy, c97.y, c97.y mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c148.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c149.w add r5.xyz, c150, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c150.w mul r6.y, r6.y, c151.w dp3 r7.y, r1, r5 min r6.xy, r6, c134 max r6.xy, r6, c133 mad r7.xy, r7, c135, c135 mul r6.xy, r6, r7 mul r5.xyz, c149, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c151, r6.y mad r3.xyz, r5, v2, r3.xyz add r2.x, r2.x, r6.y mul r2, r10.xyz, r2.x mov oD0, r3 mul r10.xy, v4, c123 add oT1.xy, r10, c124 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c41.x, c41.y dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 mov r7, v2 dp3 r5.x, r4, r4 +mov oPos, r3 mul r11.xy, v4, c27 +mov oD0, r7 dp3 r8.x, r2, r2 +rsq r1.x, r5 add oD1, r10.xyz, c26 mul r6.xy, r4, r1.x +rsq r1.y, r8 add oT1.xy, r11, c28 mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r10.xy, c1.y, c1.y mad oT2.xy, r10.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 20 i = 23 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov r2.xyz, v0 mov r4.xyz, v1 mad oFog.x, r2.z, c137.x, c137.y dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w mov r7, v2 dp3 r5.x, r4, r4 mov oPos, r3 mul r11.xy, v4, c123 mov oD0, r7 dp3 r8.x, r2, r2 rsq r1.x, r5 add oD1, r10.xyz, c122 mul r6.xy, r4, r1.x rsq r1.y, r8 add oT1.xy, r11, c124 mul r9.xy, r2, -r1.y add r10.xy, -r9, r6 mad oT0.xy, r10.xy, c97.y, c97.y mad oT2.xy, r10.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c40 dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 add r5.xyz, c44, -r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT2.xy, v4, c40 +rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 +rsq r1.y, r6 mad oPos.xyz, r12, r1.x, c-37 mad r11.x, r10.x, c1.y, c1.y mul r7.xyz, r5, r1.y mad r0, r11.x, c17, c17 mad r8.x, r6.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c45.w dp3 r11.x, r9, r7 add r0.xyz, c46, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r4.xyz, r0, r1.y mad r5.y, r3.y, -r1.y, c46.w mul r10.y, r5.y, c47.w dp3 r11.y, r9, r4 min r4.xy, r10, c38 max r5.xy, r4, c37 mad r6.xy, r11, c39, c39 mul r7.xy, r5, r6 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, c3.xyz, r11.x +mov oD0, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 add oD1, r0, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c136 dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w add r5.xyz, c140, -r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT2.xy, v4, c136 rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 dp3 r10.x, r9, c112 rsq r1.y, r6 mad r11.x, r10.x, c97.y, c97.y mul r7.xyz, r5, r1.y mad r0, r11.x, c113, c113 mad r8.x, r6.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c141.w dp3 r11.x, r9, r7 add r0.xyz, c142, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r4.xyz, r0, r1.y mad r5.y, r3.y, -r1.y, c142.w mul r10.y, r5.y, c143.w dp3 r11.y, r9, r4 min r4.xy, r10, c134 max r5.xy, r4, c133 mad r6.xy, r11, c135, c135 mul r7.xy, r5, r6 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, c99.xyz, r11.x mov oD0, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 add oD1, r0, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c40 dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 add r5.xyz, c44, -r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT2.xy, v4, c40 +rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 +rsq r1.y, r6 mad oPos.xyz, r12, r1.x, c-37 mad r11.x, r10.x, c1.y, c1.y mul r7.xyz, r5, r1.y mad r0, r11.x, c17, c17 mad r8.x, r6.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c45.w dp3 r11.x, r9, r7 add r0.xyz, c46, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r5.xyz, r0, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r10.y, r6.y, c47.w dp3 r11.y, r9, r5 add r5.xyz, c48, -r4 dp3 r6.z, r5, r5 rsq r1.y, r6.z mul r7.xyz, r5, r1.y mad r8.z, r6.z, -r1.y, c48.w mul r10.z, r8.z, c49.w dp3 r11.z, r9, r7 add r7.xyz, c50, -r4 dp3 r8.w, r7, r7 rsq r1.y, r8.w mul r0.xyz, r7, r1.y mad r0.w, r8.w, -r1.y, c50.w mul r10.w, r0.w, c51.w dp3 r11.w, r9, r0 min r0, r10, c38 max r4, r0, c37 mad r5, r11, c39, c39 mul r6, r4, r5 mul r4.xyz, c45, r6.x mad r5.xyz, r4.xyz, v2.xyz, r2.xyz add r7.x, r3.x, r6.x mul r8.xyz, c47, r6.y mad r9.xyz, r8.xyz, v2.xyz, r5.xyz add r10.x, r7.x, r6.y mul r11.xyz, c49, r6.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r3.x, r10.x, r6.z mul r4.xyz, c51, r6.w mad r2.xyz, r4.xyz, v2.xyz, r0.xyz add r4.x, r3.x, r6.w mul r5, c3.xyz, r4.x +mov oD0, r2 add oD1, c26, r5 mul r5.xy, v4, c27 add oT1.xy, r5, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul oT0.xy, v4, c136 dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w add r5.xyz, c140, -r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT2.xy, v4, c136 rsq r1.x, r8 mul r9.xyz, r6, r1.x dp3 r6.x, r5, r5 dp3 r10.x, r9, c112 rsq r1.y, r6 mad r11.x, r10.x, c97.y, c97.y mul r7.xyz, r5, r1.y mad r0, r11.x, c113, c113 mad r8.x, r6.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r10.x, r8.x, c141.w dp3 r11.x, r9, r7 add r0.xyz, c142, -r4 dp3 r3.y, r0, r0 rsq r1.y, r3.y mul r5.xyz, r0, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r10.y, r6.y, c143.w dp3 r11.y, r9, r5 add r5.xyz, c144, -r4 dp3 r6.z, r5, r5 rsq r1.y, r6.z mul r7.xyz, r5, r1.y mad r8.z, r6.z, -r1.y, c144.w mul r10.z, r8.z, c145.w dp3 r11.z, r9, r7 add r7.xyz, c146, -r4 dp3 r8.w, r7, r7 rsq r1.y, r8.w mul r0.xyz, r7, r1.y mad r0.w, r8.w, -r1.y, c146.w mul r10.w, r0.w, c147.w dp3 r11.w, r9, r0 min r0, r10, c134 max r4, r0, c133 mad r5, r11, c135, c135 mul r6, r4, r5 mul r4.xyz, c141, r6.x mad r5.xyz, r4.xyz, v2.xyz, r2.xyz add r7.x, r3.x, r6.x mul r8.xyz, c143, r6.y mad r9.xyz, r8.xyz, v2.xyz, r5.xyz add r10.x, r7.x, r6.y mul r11.xyz, c145, r6.z mad r0.xyz, r11.xyz, v2.xyz, r9.xyz add r3.x, r10.x, r6.z mul r4.xyz, c147, r6.w mad r2.xyz, r4.xyz, v2.xyz, r0.xyz add r4.x, r3.x, r6.w mul r5, c99.xyz, r4.x mov oD0, r2 add oD1, c122, r5 mul r5.xy, v4, c123 add oT1.xy, r5, c124 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mov r3, v2 dph r0.x, v0, c[a0.x] +mov oD0, r3 dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] mov a0.x, v5.w mul r0.xyz, v11.x, r0 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] mov a0.x, v7.w mad r0.xyz, v11.y, r8, r0 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] mov a0.x, v9.w mad r0.xyz, v11.z, r8, r0 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] mov r2.x, r3.x mad r0.xyz, v11.w, r8, r0 mul r2, c3.xyz, r2.x mad oFog.x, r0.z, c41.x, c41.y dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add oD1, r2, c26 mul r10.xy, v4, c27 +mov oPos, r8 mul oT0.xy, v4, c40 add oT1.xy, r10, c28 mul oT2.xy, v4, c40 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 35 i = 36 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mov r3, v2 dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w mov oD0, r3 dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w mov a0.x, v5.w mul r0.xyz, v11.x, r0 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov a0.x, v7.w mad r0.xyz, v11.y, r8, r0 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov a0.x, v9.w mad r0.xyz, v11.z, r8, r0 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w mov r2.x, r3.x mad r0.xyz, v11.w, r8, r0 mul r2, c99.xyz, r2.x mad oFog.x, r0.z, c137.x, c137.y dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add oD1, r2, c122 mul r10.xy, v4, c123 mov oPos, r8 mul oT0.xy, v4, c136 add oT1.xy, r10, c124 mul oT2.xy, v4, c136 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r10.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul oT0.xy, v4, c40 +rsq r1.y, r5 add r7.xyz, c44, -r4 mul r5.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r8.x, r7, r7 mul oT2.xy, v4, c40 mul r9.xyz, r6, r1.x +rsq r1.y, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 add r6.xyz, r9, r9 mad r11.x, r10.x, c1.y, c1.y mul r10.xyz, r7, r1.y mad r0, r11.x, c17, c17 mad r11.x, r8.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c45.w dp3 r7.x, r9, r10 mad oPos.xyz, r12, r1.x, c-37 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 add r10.xyz, c46, -r4 mul r10.w, c1.x, v3.w mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c46.w mul r0.y, r10.y, c47.w dp3 r7.y, r9, r4 mad r9.xyz, r6, r7.y, -r4 min r11.xy, r0, c38 max r0.xy, r11, c37 dp3 r10.x, r9, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 mov r8.y, r1.z mul r4.xy, r8, r0 mul r5.xyz, r4.x, v3 mad r6.xyz, r4.y, v3, r5 mad r5.xy, r7, c39, c39 mul r7.xy, r0, r5 mul r8.xyz, c45, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, r6.xyz, r11.x +mov oD0, r2 mul r2.xy, v4, c27 add oT1.xy, r2, c28 add oD1, r0, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 54 i = 65 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r10.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul oT0.xy, v4, c136 rsq r1.y, r5 add r7.xyz, c140, -r4 mul r5.xyz, r4, -r1.y rsq r1.x, r8 dp3 r8.x, r7, r7 mul oT2.xy, v4, c136 mul r9.xyz, r6, r1.x rsq r1.y, r8 dp3 r10.x, r9, c112 add r6.xyz, r9, r9 mad r11.x, r10.x, c97.y, c97.y mul r10.xyz, r7, r1.y mad r0, r11.x, c113, c113 mad r11.x, r8.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c141.w dp3 r7.x, r9, r10 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r4 mul r10.w, c97.x, v3.w mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c142.w mul r0.y, r10.y, c143.w dp3 r7.y, r9, r4 mad r9.xyz, r6, r7.y, -r4 min r11.xy, r0, c134 max r0.xy, r11, c133 dp3 r10.x, r9, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 mov r8.y, r1.z mul r4.xy, r8, r0 mul r5.xyz, r4.x, v3 mad r6.xyz, r4.y, v3, r5 mad r5.xy, r7, c135, c135 mul r7.xy, r0, r5 mul r8.xyz, c141, r7.x mad r9.xyz, r8.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r2.xyz, r11.xyz, v2.xyz, r9.xyz add r11.x, r10.x, r7.y mul r0, r6.xyz, r11.x mov oD0, r2 mul r2.xy, v4, c123 add oT1.xy, r2, c124 add oD1, r0, c122 ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r5.w, c1.x, v3.w dph r0.x, v0, c[a0.x] dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] dp3 r1.x, v1, c[a0.x] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+1] dp3 r1.z, v1, c[a0.x+2] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] dp3 r9.x, v6, c[a0.x] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+1] dp3 r9.z, v6, c[a0.x+2] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] dp3 r9.x, v8, c[a0.x] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+1] dp3 r9.z, v8, c[a0.x+2] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] dp3 r9.x, v10, c[a0.x] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+1] dp3 r9.z, v10, c[a0.x+2] mad oFog.x, r0.z, c41.x, c41.y mad r1.xyz, v11.w, r9, r1 dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c40 dp3 r5.x, r5, r8 mul oT2.xy, v4, c40 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 dp3 r5.x, r5, r8 max r6, r6, c37 mad r5.y, r5.x, c1.y, c1.y mad r7, r7, c39, c39 lit r5.z, r5 mad oPos.xyz, r12, r1.x, c-37 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz ; -- Passing the truncation limit -- add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w mul r2, r10.xyz, r2.x +mov oD0, r3 mul r10.xy, v4, c27 add oT1.xy, r10, c28 add oD1, r2, c26 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 103 i = 111 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r5.w, c97.x, v3.w dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w dp3 r1.x, v1, c[a0.x+96] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+97] dp3 r1.z, v1, c[a0.x+98] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v6, c[a0.x+96] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+97] dp3 r9.z, v6, c[a0.x+98] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v8, c[a0.x+96] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+97] dp3 r9.z, v8, c[a0.x+98] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v10, c[a0.x+96] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+97] dp3 r9.z, v10, c[a0.x+98] mad oFog.x, r0.z, c137.x, c137.y mad r1.xyz, v11.w, r9, r1 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 mul oT0.xy, v4, c136 dp3 r5.x, r5, r8 mul oT2.xy, v4, c136 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 dp3 r5.x, r5, r8 max r6, r6, c133 mad r5.y, r5.x, c97.y, c97.y mad r7, r7, c135, c135 lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r2.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 +mov oD0, v2 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r10.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul r6.w, c1.x, v3 +rsq r1.y, r10 add r2.xyz, c44, -r4 mul r11.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r3.x, r2, r2 mul r9.w, c1.x, v3.w mul r9.xyz, r6, r1.x +rsq r1.y, r3 mul oT0.xy, v4, c40 add r0.xyz, r9, r9 mul r5.xyz, r2, r1.y mad r6.x, r3.x, -r1.y, c44.w dp3 r8.x, r9, r5 mul r7.x, r6.x, c45.w mad r10.xyz, r0, r8.x, -r5 mul oT2.xy, v4, c40 dp3 r2.x, r10, r11 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad r2.y, r2.x, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 lit r1.z, r2 add r2.xyz, c46, -r4 mov r10.x, r1.z dp3 r3.y, r2, r2 mul r2.w, c1.x, v3 +rsq r1.y, r3.y mul r5.xyz, r2, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r7.y, r6.y, c47.w dp3 r6.y, r9, r5 mad r8.xyz, r0, r6.y, -r5 dp3 r6.x, r8, r11 add r8.xyz, c48, -r4 mad r6.y, r6.x, c1.y, c1.y dp3 r2.z, r8, r8 +lit r1.z, r6 mov r10.y, r1.z +rsq r1.y, r2.z mul r3.xyz, r8, r1.y mad r5.z, r2.z, -r1.y, c48.w mul r7.z, r5.z, c49.w dp3 r2.z, r9, r3 mad r5.xyz, r0, r2.z, -r3 add r3.xyz, c50, -r4 dp3 r2.x, r5, r11 dp3 r4.w, r3, r3 mad r2.y, r2.x, c1.y, c1.y rsq r1.y, r4.w mul r5.xyz, r3, r1.y +lit r1.z, r2 mad r6.w, r4.w, -r1.y, c50.w mov r10.z, r1.z mul r7.w, r6.w, c51.w dp3 r8.w, r9, r5 mad r8.xyz, r0, r8.w, -r5 dp3 r9.x, r8, r11 min r11, r7, c38 max r0, r11, c37 mad r9.y, r9.x, c1.y, c1.y lit r1.z, r9 mov r10.w, r1.z mul r2, r10, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r5.xyz, r2.z, v3, r4 mad r6.xyz, r2.w, v3, r5 add oD1, c26, r6.xyz mul r6.xy, v4, c27 add oT1.xy, r6, c28 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 64 i = 66 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r2.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w mov oD0, v2 dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r10.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul r6.w, c97.x, v3 rsq r1.y, r10 add r2.xyz, c140, -r4 mul r11.xyz, r4, -r1.y rsq r1.x, r8 dp3 r3.x, r2, r2 mul r9.w, c97.x, v3.w mul r9.xyz, r6, r1.x rsq r1.y, r3 mul oT0.xy, v4, c136 add r0.xyz, r9, r9 mul r5.xyz, r2, r1.y mad r6.x, r3.x, -r1.y, c140.w dp3 r8.x, r9, r5 mul r7.x, r6.x, c141.w mad r10.xyz, r0, r8.x, -r5 mul oT2.xy, v4, c136 dp3 r2.x, r10, r11 mad r2.y, r2.x, c97.y, c97.y lit r1.z, r2 add r2.xyz, c142, -r4 mov r10.x, r1.z dp3 r3.y, r2, r2 mul r2.w, c97.x, v3 rsq r1.y, r3.y mul r5.xyz, r2, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r7.y, r6.y, c143.w dp3 r6.y, r9, r5 mad r8.xyz, r0, r6.y, -r5 dp3 r6.x, r8, r11 add r8.xyz, c144, -r4 mad r6.y, r6.x, c97.y, c97.y dp3 r2.z, r8, r8 lit r1.z, r6 mov r10.y, r1.z rsq r1.y, r2.z mul r3.xyz, r8, r1.y mad r5.z, r2.z, -r1.y, c144.w mul r7.z, r5.z, c145.w dp3 r2.z, r9, r3 mad r5.xyz, r0, r2.z, -r3 add r3.xyz, c146, -r4 dp3 r2.x, r5, r11 dp3 r4.w, r3, r3 mad r2.y, r2.x, c97.y, c97.y rsq r1.y, r4.w mul r5.xyz, r3, r1.y lit r1.z, r2 mad r6.w, r4.w, -r1.y, c146.w mov r10.z, r1.z mul r7.w, r6.w, c147.w dp3 r8.w, r9, r5 mad r8.xyz, r0, r8.w, -r5 dp3 r9.x, r8, r11 min r11, r7, c134 max r0, r11, c133 mad r9.y, r9.x, c97.y, c97.y lit r1.z, r9 mov r10.w, r1.z mul r2, r10, r0 mul r3.xyz, r2.x, v3 mad r4.xyz, r2.y, v3, r3 mad r5.xyz, r2.z, v3, r4 mad r6.xyz, r2.w, v3, r5 add oD1, c122, r6.xyz ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y +rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c44, -r4 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 dp3 r7.x, r6, r6 mad r11.x, r10.x, c1.y, c1.y rsq r1.y, r7.x mad r0, r11.x, c17, c17 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c44.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c45.w add r6.xyz, c46, -r4 mad oPos.xyz, r12, r1.x, c-37 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r4.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r11.y, r6.y, c47.w dp3 r0.y, r9, r4 min r6.xy, r11, c38 max r7.xy, r6, c37 mad r8.xy, r0, c39, c39 mul r10.xy, r7, r8 mul r11.xyz, c45, r10.x mad r0.xyz, r11.xyz, v2.xyz, r2.xyz add r11.x, r3.x, r10.x mul r3.xyz, c47, r10.y mad r2.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r10.y mul r4, c3.xyz, r3.x +mov oD0, r2 add oD1, c26, r4 add r4.xy, -r5, r9 mul r5.xy, v4, c27 mad oT0.xy, r4.xy, c1.y, c1.y add oT1.xy, r5, c28 mad oT2.xy, r4.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 62 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c140, -r4 dp3 r10.x, r9, c112 dp3 r7.x, r6, r6 mad r11.x, r10.x, c97.y, c97.y rsq r1.y, r7.x mad r0, r11.x, c113, c113 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c140.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c141.w add r6.xyz, c142, -r4 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r4.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r11.y, r6.y, c143.w dp3 r0.y, r9, r4 min r6.xy, r11, c134 max r7.xy, r6, c133 mad r8.xy, r0, c135, c135 mul r10.xy, r7, r8 mul r11.xyz, c141, r10.x mad r0.xyz, r11.xyz, v2.xyz, r2.xyz add r11.x, r3.x, r10.x mul r3.xyz, c143, r10.y mad r2.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r10.y mul r4, c99.xyz, r3.x mov oD0, r2 add oD1, c122, r4 add r4.xy, -r5, r9 mul r5.xy, v4, c123 mad oT0.xy, r4.xy, c97.y, c97.y add oT1.xy, r5, c124 mad oT2.xy, r4.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y +rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c44, -r4 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 dp3 r7.x, r6, r6 mad r11.x, r10.x, c1.y, c1.y rsq r1.y, r7.x mad r0, r11.x, c17, c17 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c44.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c45.w add r6.xyz, c46, -r4 mad oPos.xyz, r12, r1.x, c-37 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r7.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c46.w mul r11.y, r6.y, c47.w dp3 r0.y, r9, r7 add r6.xyz, c48, -r4 dp3 r7.z, r6, r6 rsq r1.y, r7.z mul r8.xyz, r6, r1.y mad r10.z, r7.z, -r1.y, c48.w mul r11.z, r10.z, c49.w dp3 r0.z, r9, r8 add r10.xyz, c50, -r4 dp3 r10.w, r10, r10 rsq r1.y, r10.w mul r4.xyz, r10, r1.y mad r3.w, r10.w, -r1.y, c50.w mul r11.w, r3.w, c51.w dp3 r0.w, r9, r4 min r4, r11, c38 max r6, r4, c37 mad r4, r0, c39, c39 mul r7, r6, r4 mul r6.xyz, c45, r7.x mad r8.xyz, r6.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c47, r7.y mad r0.xyz, r11.xyz, v2.xyz, r8.xyz add r11.x, r10.x, r7.y mul r3.xyz, c49, r7.z mad r4.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r7.z mul r6.xyz, c51, r7.w mad r2.xyz, r6.xyz, v2.xyz, r4.xyz add r6.x, r3.x, r7.w mul r8.xy, v4, c27 mul r7, c3.xyz, r6.x +mov oD0, r2 add oT1.xy, r8, c28 add oD1, r7, c26 add r7.xy, -r5, r9 mad oT0.xy, r7.xy, c1.y, c1.y mad oT2.xy, r7.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 62 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 rsq r1.y, r5.x mul r5.xy, r4, -r1.y rsq r1.x, r8 mul r9.xyz, r6, r1.x add r6.xyz, c140, -r4 dp3 r10.x, r9, c112 dp3 r7.x, r6, r6 mad r11.x, r10.x, c97.y, c97.y rsq r1.y, r7.x mad r0, r11.x, c113, c113 mul r8.xyz, r6, r1.y mul r2, r0, v2 mov r3.x, r2.x mad r10.x, r7.x, -r1.y, c140.w dp3 r0.x, r9, r8 mul r11.x, r10.x, c141.w add r6.xyz, c142, -r4 dp3 r3.y, r6, r6 rsq r1.y, r3.y mul r7.xyz, r6, r1.y mad r6.y, r3.y, -r1.y, c142.w mul r11.y, r6.y, c143.w dp3 r0.y, r9, r7 add r6.xyz, c144, -r4 dp3 r7.z, r6, r6 rsq r1.y, r7.z mul r8.xyz, r6, r1.y mad r10.z, r7.z, -r1.y, c144.w mul r11.z, r10.z, c145.w dp3 r0.z, r9, r8 add r10.xyz, c146, -r4 dp3 r10.w, r10, r10 rsq r1.y, r10.w mul r4.xyz, r10, r1.y mad r3.w, r10.w, -r1.y, c146.w mul r11.w, r3.w, c147.w dp3 r0.w, r9, r4 min r4, r11, c134 max r6, r4, c133 mad r4, r0, c135, c135 mul r7, r6, r4 mul r6.xyz, c141, r7.x mad r8.xyz, r6.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r11.xyz, c143, r7.y mad r0.xyz, r11.xyz, v2.xyz, r8.xyz add r11.x, r10.x, r7.y mul r3.xyz, c145, r7.z mad r4.xyz, r3.xyz, v2.xyz, r0.xyz add r3.x, r11.x, r7.z mul r6.xyz, c147, r7.w mad r2.xyz, r6.xyz, v2.xyz, r4.xyz add r6.x, r3.x, r7.w mul r8.xy, v4, c123 mul r7, c99.xyz, r6.x mov oD0, r2 add oT1.xy, r8, c124 add oD1, r7, c122 add r7.xy, -r5, r9 mad oT0.xy, r7.xy, c97.y, c97.y mad oT2.xy, r7.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] mov a0.x, v5.w mul r5.xy, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] mov a0.x, v7.w mad r9.xy, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] mov a0.x, v9.w mad r2.xy, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] mad oFog.x, r4.z, c41.x, c41.y mad r6.xy, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r10.x, r4, r4 mov r8, v2 +mov oPos, r7 mul r3.xy, v4, c27 mov r9.x, r8 +rsq r1.y, r10 add oT1.xy, r3, c28 mul r11.xy, r4, -r1.y +mov oD0, r8 mul r0, c3.xyz, r9.x add oD1, r0, c26 add r2.xy, -r11, r6 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r2.xy, c1.y, c1.y mad oT2.xy, r2.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 49 i = 52 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] mov a0.x, v5.w mul r5.xy, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] mov a0.x, v7.w mad r9.xy, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] mov a0.x, v9.w mad r2.xy, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] mad oFog.x, r4.z, c137.x, c137.y mad r6.xy, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r10.x, r4, r4 mov r8, v2 mov oPos, r7 mul r3.xy, v4, c123 mov r9.x, r8 rsq r1.y, r10 add oT1.xy, r3, c124 mul r11.xy, r4, -r1.y mov oD0, r8 mul r0, c99.xyz, r9.x add oD1, r0, c122 add r2.xy, -r11, r6 mad oT0.xy, r2.xy, c97.y, c97.y mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r10.w, c1.x, v3.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 +mov oPos, r7 mul r11.w, c1.x, v3 +rsq r1.y, r5 add r7.xyz, c44, -r4 mul r5.xyz, r4, -r1.y +rsq r1.x, r8 dp3 r8.x, r7, r7 mul r9.xyz, r6, r1.x +rsq r1.y, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w dp3 r10.x, r9, c16 add r6.xyz, r9, r9 mad r11.x, r10.x, c1.y, c1.y mul r10.xyz, r7, r1.y mad r0, r11.x, c17, c17 mad r11.x, r8.x, -r1.y, c44.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c45.w dp3 r7.x, r9, r10 mad oPos.xyz, r12, r1.x, c-37 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c1.y, c1.y lit r1.z, r10 add r10.xyz, c46, -r4 mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c46.w mul r0.y, r10.y, c47.w dp3 r7.y, r9, r4 mad r10.xyz, r6, r7.y, -r4 dp3 r11.x, r10, r5 mad r11.y, r11.x, c1.y, c1.y min r11.xy, r0, c38 +lit r1.z, r11 max r0.xy, r11, c37 mov r8.y, r1.z mul r4.xy, r8, r0 mul r6.xyz, r4.x, v3 mad r8.xyz, r4.y, v3, r6 mad r6.xy, r7, c39, c39 mul r7.xy, r0, r6 mul r10.xyz, c45, r7.x mad r11.xyz, r10.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r0.xyz, c47, r7.y mad r2.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r10.x, r7.y mul r3.xy, v4, c27 mul r0, r8.xyz, r11.x +mov oD0, r2 add r2.xy, -r5, r9 add oD1, r0, c26 mad oT0.xy, r2.xy, c1.y, c1.y add oT1.xy, r3, c28 mad oT2.xy, r2.xy, c1.y, c1.y ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 53 i = 64 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r10.w, c97.x, v3.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w dp3 r5.x, r4, r4 dp3 r8.x, r6, r6 mov oPos, r7 mul r11.w, c97.x, v3 rsq r1.y, r5 add r7.xyz, c140, -r4 mul r5.xyz, r4, -r1.y rsq r1.x, r8 dp3 r8.x, r7, r7 mul r9.xyz, r6, r1.x rsq r1.y, r8 dp3 r10.x, r9, c112 add r6.xyz, r9, r9 mad r11.x, r10.x, c97.y, c97.y mul r10.xyz, r7, r1.y mad r0, r11.x, c113, c113 mad r11.x, r8.x, -r1.y, c140.w mul r2, r0, v2 mov r3.x, r2.x mul r0.x, r11.x, c141.w dp3 r7.x, r9, r10 mad r8.xyz, r6, r7.x, -r10 dp3 r10.x, r8, r5 mad r10.y, r10.x, c97.y, c97.y lit r1.z, r10 add r10.xyz, c142, -r4 mov r8.x, r1.z dp3 r11.y, r10, r10 rsq r1.y, r11.y mul r4.xyz, r10, r1.y mad r10.y, r11.y, -r1.y, c142.w mul r0.y, r10.y, c143.w dp3 r7.y, r9, r4 mad r10.xyz, r6, r7.y, -r4 dp3 r11.x, r10, r5 mad r11.y, r11.x, c97.y, c97.y min r11.xy, r0, c134 lit r1.z, r11 max r0.xy, r11, c133 mov r8.y, r1.z mul r4.xy, r8, r0 mul r6.xyz, r4.x, v3 mad r8.xyz, r4.y, v3, r6 mad r6.xy, r7, c135, c135 mul r7.xy, r0, r6 mul r10.xyz, c141, r7.x mad r11.xyz, r10.xyz, v2.xyz, r2.xyz add r10.x, r3.x, r7.x mul r0.xyz, c143, r7.y mad r2.xyz, r0.xyz, v2.xyz, r11.xyz add r11.x, r10.x, r7.y mul r3.xy, v4, c123 mul r0, r8.xyz, r11.x mov oD0, r2 add r2.xy, -r5, r9 add oD1, r0, c122 mad oT0.xy, r2.xy, c97.y, c97.y add oT1.xy, r3, c124 mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w mul r5.w, c1.x, v3.w dph r0.x, v0, c[a0.x] dph r0.y, v0, c[a0.x+1] dph r0.z, v0, c[a0.x+2] dp3 r1.x, v1, c[a0.x] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+1] dp3 r1.z, v1, c[a0.x+2] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dph r8.x, v5, c[a0.x] dph r8.y, v5, c[a0.x+1] dph r8.z, v5, c[a0.x+2] dp3 r9.x, v6, c[a0.x] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+1] dp3 r9.z, v6, c[a0.x+2] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dph r8.x, v7, c[a0.x] dph r8.y, v7, c[a0.x+1] dph r8.z, v7, c[a0.x+2] dp3 r9.x, v8, c[a0.x] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+1] dp3 r9.z, v8, c[a0.x+2] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dph r8.x, v9, c[a0.x] dph r8.y, v9, c[a0.x+1] dph r8.z, v9, c[a0.x+2] dp3 r9.x, v10, c[a0.x] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+1] dp3 r9.z, v10, c[a0.x+2] mad oFog.x, r0.z, c41.x, c41.y mad r1.xyz, v11.w, r9, r1 dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 add r5.xyz, c44, -r0 dp3 r4.x, r1, r1 +mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c16 dp3 r4.x, r0, r0 mad r2.x, r2.x, c1.y, c1.y rsq r4.y, r4.x mad r3, r2.x, c17, c17 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c44.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c45.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.x, r5.z add r5.xyz, c46, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c46.w mul r6.y, r6.y, c47.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.y, r5.z add r5.xyz, c48, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c48.w mul r6.z, r6.z, c49.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mul r5.w, c1.x, v3.w mov r9.z, r5.z add r5.xyz, c50, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c50.w mul r6.w, r6.w, c51.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c38 max r6, r6, c37 dp3 r5.x, r5, r8 mad r7, r7, c39, c39 mad r5.y, r5.x, c1.y, c1.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 mul r6, r6, r7 mul r5.xyz, c45, r6.x mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.x mul r5.xyz, c47, r6.y mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.y mad r10.xyz, r9.z, v3, r10 mad r10.xyz, r9.w, v3, r10 mul r5.xyz, c49, r6.z mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.z mul r5.xyz, c51, r6.w mad r3.xyz, r5.xyz, v2.xyz, r3.xyz add r2.x, r2.x, r6.w add r9.xy, -r8, r1 ; -- Passing the truncation limit -- mul r2, r10.xyz, r2.x +mov oD0, r3 mad oT0.xy, r9.xy, c1.y, c1.y add oD1, r2, c26 mul r10.xy, v4, c27 add oT1.xy, r10, c28 mad oT2.xy, r9.xy, c1.y, c1.y mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 135 i = 136 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w mul r5.w, c97.x, v3.w dp3 r0.x, v0, c[a0.x+96] add r0.x, r0.x, c[a0.x+96].w dp3 r0.y, v0, c[a0.x+97] add r0.y, r0.y, c[a0.x+97].w dp3 r0.z, v0, c[a0.x+98] add r0.z, r0.z, c[a0.x+98].w dp3 r1.x, v1, c[a0.x+96] mul r0.xyz, v11.x, r0 dp3 r1.y, v1, c[a0.x+97] dp3 r1.z, v1, c[a0.x+98] mov a0.x, v5.w mul r1.xyz, v11.x, r1 dp3 r8.x, v5, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v5, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v5, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v6, c[a0.x+96] mad r0.xyz, v11.y, r8, r0 dp3 r9.y, v6, c[a0.x+97] dp3 r9.z, v6, c[a0.x+98] mov a0.x, v7.w mad r1.xyz, v11.y, r9, r1 dp3 r8.x, v7, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v7, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v7, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v8, c[a0.x+96] mad r0.xyz, v11.z, r8, r0 dp3 r9.y, v8, c[a0.x+97] dp3 r9.z, v8, c[a0.x+98] mov a0.x, v9.w mad r1.xyz, v11.z, r9, r1 dp3 r8.x, v9, c[a0.x+96] add r8.x, r8.x, c[a0.x+96].w dp3 r8.y, v9, c[a0.x+97] add r8.y, r8.y, c[a0.x+97].w dp3 r8.z, v9, c[a0.x+98] add r8.z, r8.z, c[a0.x+98].w dp3 r9.x, v10, c[a0.x+96] mad r0.xyz, v11.w, r8, r0 dp3 r9.y, v10, c[a0.x+97] dp3 r9.z, v10, c[a0.x+98] mad oFog.x, r0.z, c137.x, c137.y mad r1.xyz, v11.w, r9, r1 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w add r5.xyz, c140, -r0 dp3 r4.x, r1, r1 mov oPos, r8 dp3 r6.x, r5, r5 rsq r4.x, r4.x rsq r2.y, r6.x mul r1.xyz, r1, r4.x dp3 r2.x, r1, c112 dp3 r4.x, r0, r0 mad r2.x, r2.x, c97.y, c97.y rsq r4.y, r4.x mad r3, r2.x, c113, c113 mul r8.xyz, r0, -r4.y mul r3, r3, v2 mov r2.x, r3.x add r11.xyz, r1, r1 mul r5.xyz, r5, r2.y mad r6.x, r6.x, -r2.y, c140.w dp3 r7.x, r1, r5 mul r6.x, r6.x, c141.w mad r5.xyz, r11, r7.x, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.x, r5.z add r5.xyz, c142, -r0 dp3 r6.y, r5, r5 rsq r2.y, r6.y mul r5.xyz, r5, r2.y mad r6.y, r6.y, -r2.y, c142.w mul r6.y, r6.y, c143.w dp3 r7.y, r1, r5 mad r5.xyz, r11, r7.y, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.y, r5.z add r5.xyz, c144, -r0 dp3 r6.z, r5, r5 rsq r2.y, r6.z mul r5.xyz, r5, r2.y mad r6.z, r6.z, -r2.y, c144.w mul r6.z, r6.z, c145.w dp3 r7.z, r1, r5 mad r5.xyz, r11, r7.z, -r5 dp3 r5.x, r5, r8 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mul r5.w, c97.x, v3.w mov r9.z, r5.z add r5.xyz, c146, -r0 dp3 r6.w, r5, r5 rsq r2.y, r6.w mul r5.xyz, r5, r2.y mad r6.w, r6.w, -r2.y, c146.w mul r6.w, r6.w, c147.w dp3 r7.w, r1, r5 mad r5.xyz, r11, r7.w, -r5 min r6, r6, c134 max r6, r6, c133 dp3 r5.x, r5, r8 mad r7, r7, c135, c135 mad r5.y, r5.x, c97.y, c97.y lit r5.z, r5 mov r9.w, r5.z mul r9, r9, r6 mul r10.xyz, r9.x, v3 mad r10.xyz, r9.y, v3, r10 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(1), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_REG(5, D3DVSDT_FLOAT4), D3DVSD_REG(6, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(7, D3DVSDT_FLOAT4), D3DVSD_REG(8, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(9, D3DVSDT_FLOAT4), D3DVSD_REG(10, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(11, D3DVSDT_FLOAT4), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov a0.x, v0.w dph r2.x, v0, c[a0.x] dph r2.y, v0, c[a0.x+1] dph r2.z, v0, c[a0.x+2] dp3 r4.x, v1, c[a0.x] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+1] dp3 r4.z, v1, c[a0.x+2] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dph r6.x, v5, c[a0.x] dph r6.y, v5, c[a0.x+1] dph r6.z, v5, c[a0.x+2] dp3 r8.x, v6, c[a0.x] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+1] dp3 r8.z, v6, c[a0.x+2] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dph r10.x, v7, c[a0.x] dph r10.y, v7, c[a0.x+1] dph r10.z, v7, c[a0.x+2] dp3 r0.x, v8, c[a0.x] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+1] dp3 r0.z, v8, c[a0.x+2] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dph r3.x, v9, c[a0.x] dph r3.y, v9, c[a0.x+1] dph r3.z, v9, c[a0.x+2] dp3 r5.x, v10, c[a0.x] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+1] dp3 r5.z, v10, c[a0.x+2] mad oFog.x, r4.z, c41.x, c41.y mad r6.xyz, v11.w, r5, r2 dph r7.x, r4, c32 dph r7.y, r4, c33 dph r7.z, r4, c34 dph r7.w, r4, c35 mov r10, v2 dp3 r8.x, r6, r6 +mov oPos, r7 mul r3.xy, v4, c27 +mov oD0, r10 dp3 r11.x, r4, r4 +rsq r1.x, r8 add oD1, r10.xyz, c26 mul r9.xy, r6, r1.x +rsq r1.y, r11 add oT1.xy, r3, c28 mul r0.xy, r4, -r1.y add r2.xy, -r0, r9 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oT0.xy, r2.xy, c1.y, c1.y mad oT2.xy, r2.xy, c1.y, c1.y mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 54 i = 57 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 mov a0.x, v0.w dp3 r2.x, v0, c[a0.x+96] add r2.x, r2.x, c[a0.x+96].w dp3 r2.y, v0, c[a0.x+97] add r2.y, r2.y, c[a0.x+97].w dp3 r2.z, v0, c[a0.x+98] add r2.z, r2.z, c[a0.x+98].w dp3 r4.x, v1, c[a0.x+96] mul r3.xyz, v11.x, r2 dp3 r4.y, v1, c[a0.x+97] dp3 r4.z, v1, c[a0.x+98] mov a0.x, v5.w mul r5.xyz, v11.x, r4 dp3 r6.x, v5, c[a0.x+96] add r6.x, r6.x, c[a0.x+96].w dp3 r6.y, v5, c[a0.x+97] add r6.y, r6.y, c[a0.x+97].w dp3 r6.z, v5, c[a0.x+98] add r6.z, r6.z, c[a0.x+98].w dp3 r8.x, v6, c[a0.x+96] mad r7.xyz, v11.y, r6, r3 dp3 r8.y, v6, c[a0.x+97] dp3 r8.z, v6, c[a0.x+98] mov a0.x, v7.w mad r9.xyz, v11.y, r8, r5 dp3 r10.x, v7, c[a0.x+96] add r10.x, r10.x, c[a0.x+96].w dp3 r10.y, v7, c[a0.x+97] add r10.y, r10.y, c[a0.x+97].w dp3 r10.z, v7, c[a0.x+98] add r10.z, r10.z, c[a0.x+98].w dp3 r0.x, v8, c[a0.x+96] mad r11.xyz, v11.z, r10, r7 dp3 r0.y, v8, c[a0.x+97] dp3 r0.z, v8, c[a0.x+98] mov a0.x, v9.w mad r2.xyz, v11.z, r0, r9 dp3 r3.x, v9, c[a0.x+96] add r3.x, r3.x, c[a0.x+96].w dp3 r3.y, v9, c[a0.x+97] add r3.y, r3.y, c[a0.x+97].w dp3 r3.z, v9, c[a0.x+98] add r3.z, r3.z, c[a0.x+98].w dp3 r5.x, v10, c[a0.x+96] mad r4.xyz, v11.w, r3, r11 dp3 r5.y, v10, c[a0.x+97] dp3 r5.z, v10, c[a0.x+98] mad oFog.x, r4.z, c137.x, c137.y mad r6.xyz, v11.w, r5, r2 dp3 r7.x, r4, c128 add r7.x, r7.x, c128.w dp3 r7.y, r4, c129 add r7.y, r7.y, c129.w dp3 r7.z, r4, c130 add r7.z, r7.z, c130.w dp3 r7.w, r4, c131 add r7.w, r7.w, c131.w mov r10, v2 dp3 r8.x, r6, r6 mov oPos, r7 mul r3.xy, v4, c123 mov oD0, r10 dp3 r11.x, r4, r4 rsq r1.x, r8 add oD1, r10.xyz, c122 mul r9.xy, r6, r1.x rsq r1.y, r11 add oT1.xy, r3, c124 mul r0.xy, r4, -r1.y add r2.xy, -r0, r9 mad oT0.xy, r2.xy, c97.y, c97.y mad oT2.xy, r2.xy, c97.y, c97.y ----------------------- [0x110C] EmuWarn: Trying fallback: vs.1.1 mov oPos, v0 DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_NORMPACKED3 /* xbox ext. nsp */), D3DVSD_REG(2, D3DVSDT_D3DCOLOR), D3DVSD_REG(3, D3DVSDT_D3DCOLOR), D3DVSD_REG(4, D3DVSDT_SHORT2), D3DVSD_END() }; NeedPatching: 1 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyz, v0 +mov oFog.x, c37 mul oT0.xy, v4, c40 dph r8.x, r0, c32 +mov oD0, v2 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mov oPos, r8 +rcc r1.x, r8.w mul r8.xy, r8, c-38 mad oT1.xy, r8, r1.x, c-37 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 10 i = 9 Deleted mad oPos.xyz, r12, r1.x, c-37 PosC38 = 10 i = 9 Deleted mad oPos.xyz, r12, r1.x, c-37 Deleted mul oPos.xyz, r12, c-38 PosC38 = 9 i = 10 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 [0x110C] EmuWarn: Applying screen space vertex shader patching hack! -- After conversion --- vs.1.1 mov r0.xyz, v0 mov oFog.x, c133 mul oT0.xy, v4, c136 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, v2 dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mov r11, r8 mul r10, r11, c58 add oPos, r10, c59 ----------------------- // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xFF4C461D; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(1,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, t0, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov r1.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |r1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, r1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, v1, r1 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 dp3 r1, t0, c1 ; Stage 1 mov r1.a, t0.a ; Stage 2 mul r1, v0, r1 ; Stage 3 add r0, v1, r1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xFF4C461D; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(1,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, t0, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov r1.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |r1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, r1 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, v1, r1 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 dp3 r1, t0, c1 ; Stage 1 mov r1.a, t0.a ; Stage 2 mul r1, v0, r1 ; Stage 3 mul_x2 r1, r1, t1 ; Stage 4 add r0, v1, r1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xFF4C461D; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(1,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, t0, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov r1.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |r1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, r1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, v1, r1 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 dp3 r1, t0, c1 ; Stage 1 mov r1.a, t0.a ; Stage 2 mul r1, v0, r1 ; Stage 3 add r0, v1, r1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFFFFF; pPSD.PSConstant0[5] = 0x00262626; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,2,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 ; Stage 5 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFF4C461D; pPSD.PSConstant0[5] = 0xFFFFFFFF; pPSD.PSConstant0[6] = 0x00262626; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(7, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,15,0,2,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 dp3 r1, r1, c1 ; Stage 4 mul r1.a, v0.a, t0.a ; Stage 5 mul r0, r1, c0 ; Stage 6 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFFFFF; pPSD.PSConstant0[5] = 0x00262626; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,2,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 ; Stage 5 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFCC99; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFF4C461D; pPSD.PSConstant0[5] = 0xFFFFCC99; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,15,0,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 dp3 r1, r1, c1 ; Stage 4 mul r1.a, v0.a, t0.a ; Stage 5 mul r0, r1, c0 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFCC99; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[1] = 0xFF998C4D; pPSD.PSConstant0[2] = 0xFF990000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,1,3,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c3| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: cnd r0, r0.a, c3, c15 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mul r0.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |v1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, v1 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 dp3 r0, r1, c1 ; Stage 2 cnd r0, r0.a, c3, c15 ; Stage 3 mul r0.a, v0.a, t0.a ; Stage 4 add r0, r0, v1 *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 9) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF998C4D; pPSD.PSConstant0[3] = 0xFF990000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,3,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c3| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: cnd r0, r0.a, c3, c15 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mul r0.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |v1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, v1 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 dp3 r0, r1, c1 ; Stage 3 cnd r0, r0.a, c3, c15 ; Stage 4 mul r0.a, v0.a, t0.a ; Stage 5 add r0, r0, v1 *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 11) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[1] = 0xFF998C4D; pPSD.PSConstant0[2] = 0xFF990000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,1,3,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c3| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: cnd r0, r0.a, c3, c15 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mul r0.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |v1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, v1 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 dp3 r0, r1, c1 ; Stage 2 cnd r0, r0.a, c3, c15 ; Stage 3 mul r0.a, v0.a, t0.a ; Stage 4 add r0, r0, v1 *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 9) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFFFFF; pPSD.PSConstant0[5] = 0x001A1A40; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,2,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 ; Stage 5 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFF4C461D; pPSD.PSConstant0[5] = 0xFFFFFFFF; pPSD.PSConstant0[6] = 0x001A1A40; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(7, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,15,0,2,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 dp3 r1, r1, c1 ; Stage 4 mul r1.a, v0.a, t0.a ; Stage 5 mul r0, r1, c0 ; Stage 6 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFF4C461D; pPSD.PSConstant0[4] = 0xFFFFFFFF; pPSD.PSConstant0[5] = 0x001A1A40; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,15,0,2,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mul r1.a, v0.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 dp3 r1, r1, c1 ; Stage 3 mul r1.a, v0.a, t0.a ; Stage 4 mul r0, r1, c0 ; Stage 5 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFFFCC99; pPSD.PSConstant0[3] = 0x00260000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFFFFCC99; pPSD.PSConstant0[4] = 0x00260000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,2,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 mul r0, r1, c1 ; Stage 4 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFFFCC99; pPSD.PSConstant0[3] = 0x00260000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFCC99FF; pPSD.PSConstant0[3] = 0x001A0026; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFFCC99FF; pPSD.PSConstant0[4] = 0x001A0026; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,2,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 mul r0, r1, c1 ; Stage 4 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFCC99FF; pPSD.PSConstant0[3] = 0x001A0026; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFFFE599; pPSD.PSConstant0[3] = 0x001A1700; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFFFFE599; pPSD.PSConstant0[4] = 0x001A1700; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,2,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 mul r0, r1, c1 ; Stage 4 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFFFE599; pPSD.PSConstant0[3] = 0x001A1700; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFB2FF99; pPSD.PSConstant0[3] = 0x00122600; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0xFFB2FF99; pPSD.PSConstant0[4] = 0x00122600; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,1,2,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |t1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul_x2 r1, r1, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul r1, v0, t0 ; Stage 1 mul_x2 r1, r1, t1 ; Stage 2 add r1, v1, r1 ; Stage 3 mul r0, r1, c1 ; Stage 4 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[2] = 0xFFB2FF99; pPSD.PSConstant0[3] = 0x00122600; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,1,2,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: mul r1, v0, t0 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v1| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, v1, r1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |c2| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, c2 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 mul r1, v0, t0 ; Stage 1 add r1, v1, r1 ; Stage 2 mul r0, r1, c1 ; Stage 3 add r0, r0, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_BUMPENVMAP, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(1, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c2 added: def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mov r0, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || *** RESULT: ps.1.3 def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f tex t0 texbem t1, t0 ; Stage 0 mov r0, t1 mov r0.a, t0.a *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_BUMPENVMAP, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(1, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c2 added: def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mov r0, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || *** RESULT: ps.1.3 def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f tex t0 texbem t1, t0 ; Stage 0 mov r0, t1 mov r0.a, t0.a *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_BUMPENVMAP, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(1, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c2 added: def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mov r0, t1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || *** RESULT: ps.1.3 def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c2, 1.000000f, 1.000000f, 1.000000f, 1.000000f tex t0 texbem t1, t0 ; Stage 0 mov r0, t1 mov r0.a, t0.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! EmuPatch_XInputGetDeviceDescription unimplemented! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: MEM_NOZERO flag is not supported! DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_D3DCOLOR), D3DVSD_REG(2, D3DVSDT_FLOAT2), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 dph r8.y, r0, c33 +mov oT0.xy, v2 dph r8.x, r0, c32 +mov oD0, v1 dph r8.z, r0, c34 dph r8.w, r0, c35 mov oPos, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 10 i = 11 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w mov oT0.xy, v2 dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w mov oD0, v1 dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mov oPos, r8 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_D3DCOLOR), D3DVSD_REG(2, D3DVSDT_FLOAT2), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 mov r0.xyw, v0.xyz add r0.z, v0.z, -c36.x mov oD0, v1 mul r0.z, r0, c36.y +rcp r1.w, r0.w mul r0.z, r0, r1.w +mov oT0.xy, v2 mul r0.z, r0.z, c36.w mov oPos, r0 ----------------------- [0x110C] EmuWarn: Applying screen space vertex shader patching hack! -- After conversion --- vs.1.1 mov r0.xyw, v0.xyz add r0.z, v0.z, -c132.x mov oD0, v1 mul r0.z, r0, c132.y rcp r1.w, r0.w mul r0.z, r0, r1.w mov oT0.xy, v2 mul r0.z, r0.z, c132.w mov r11, r0 mul r10, r11, c58 add oPos, r10, c59 ----------------------- DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r0.x, v0, c4 dph r0.y, v0, c5 dph r0.z, v0, c6 max r0.z, r0, c0.w +mov oD0, c0.x dph r8.x, r0, c32 dph r8.y, r0, c33 dph r8.z, r0, c34 dph r8.w, r0, c35 mov oPos, r8 mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 10 i = 11 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r0.x, v0, c100 add r0.x, r0.x, c100.w dp3 r0.y, v0, c101 add r0.y, r0.y, c101.w dp3 r0.z, v0, c102 add r0.z, r0.z, c102.w max r0.z, r0, c96.w mov oD0, c96.x dp3 r8.x, r0, c128 add r8.x, r8.x, c128.w dp3 r8.y, r0, c129 add r8.y, r8.y, c129.w dp3 r8.z, r0, c130 add r8.z, r8.z, c130.w dp3 r8.w, r0, c131 add r8.w, r8.w, c131.w mov oPos, r8 ----------------------- // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSConstant0[2] = 0x00000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,0,1,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |c0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0.a| new command: add r0.a, t0.a, c0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 0 Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |0| szInputAB2: |1| szInputCD1: |c0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0.a| new command: cnd r0.a, r0.a, c0.b, c2.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |c1| szInputCD1: |t0| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: lrp r0, r0.a, c1, t0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, c2.a *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 add r0.a, t0.a, c0.a ; Stage 1 cnd r0.a, r0.a, c0.b, c2.a ; Stage 2 lrp r0, r0.a, c1, t0 ; Stage 3 mov r0.a, c2.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (12) : (Assembly Error) invalid swizzle // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[3] = 0x00000000; pPSD.PSConstant0[4] = 0x00000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,0,1,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_T0, PS_COMBINEROUTPUT_SHIFTLEFT_2 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x4| szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |t0.a| [0x110C] EmuWarn: Pixel Shader: Destination modifier present! new command: add_x4 t0.a, t0.a, t0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_2 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x4| szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov_x4 r0.a, t0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |t0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0.a| new command: add r0.a, r0.a, t0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mul r0.a, r0.a, c0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |c1| szInputCD1: |t0| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: lrp r0, r0.a, c1, t0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, c2.a *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 add_x4 t0.a, t0.a, t0.a ; Stage 1 mov_x4 r0.a, t0.a ; Stage 2 add r0.a, r0.a, t0.a ; Stage 3 mul r0.a, r0.a, c0.a ; Stage 4 lrp r0, r0.a, c1, t0 ; Stage 5 mov r0.a, c2.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: D3DFMT_D24S8 is an unsupported texture format! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xE5080000; pPSD.PSConstant0[1] = 0xE5080000; pPSD.PSConstant0[4] = 0xFF000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(5, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,0,15,15,5,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, t0, c0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_EXPAND_NORMAL | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for -1 detected: -1.000000:c4 added: def c4, -1.000000f, -1.000000f, -1.000000f, -1.000000f ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_SHIFTLEFT_2 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x4| szInputAB1: |t0| szInputAB2: |1| szInputCD1: |c0| szInputCD2: |-1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| [0x110C] EmuWarn: Pixel Shader: Destination modifier present! new command: mad_x4 r1.a, c0.a, c4_bx2.a, t0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov_x2 r1.a, r1.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |r1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, r0, r1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |c5| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, c5.a *** RESULT: ps.1.3 def c4, -1.000000f, -1.000000f, -1.000000f, -1.000000f def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c5, 0.0f, 0.0f, 0.0f, 0.0f tex t0 ; Stage 0 dp3 r0, t0, c0 ; Stage 1 mad_x4 r1.a, c0.a, c4_bx2.a, t0.a ; Stage 2 mov_x2 r1.a, r1.a ; Stage 3 add r0, r0, r1.a ; Stage 4 mov r0.a, c5.a *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xE5080000; pPSD.PSConstant0[1] = 0xE5080000; pPSD.PSConstant0[4] = 0x45000000; pPSD.PSConstant0[5] = 0x00000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(8, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,0,15,15,3,1,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, t1, c0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_EXPAND_NORMAL | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for -1 detected: -1.000000:c5 added: def c5, -1.000000f, -1.000000f, -1.000000f, -1.000000f ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_SHIFTLEFT_2 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x4| szInputAB1: |t1| szInputAB2: |1| szInputCD1: |c0| szInputCD2: |-1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| [0x110C] EmuWarn: Pixel Shader: Destination modifier present! new command: mad_x4 r1.a, c0.a, c5_bx2.a, t1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov_x2 r1.a, r1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |r0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| new command: add r1.a, r1.a, r0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_EXPAND_NORMAL | PS_CHANNEL_ALPHA, Looking for 1 Looking for -1 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |c3| szInputCD2: |-1| szOutAB: || szOutCD: || szABCDOutput: |r0.a| new command: mad r0.a, c3.a, c5_bx2.a, r1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| new command: cnd r1.a, r0.a, c1.a, c15.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mov r0, t0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[7] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[7] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[7] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[7] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, r1.a *** RESULT: ps.1.3 def c5, -1.000000f, -1.000000f, -1.000000f, -1.000000f def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 dp3 r0, t1, c0 ; Stage 1 mad_x4 r1.a, c0.a, c5_bx2.a, t1.a ; Stage 2 mov_x2 r1.a, r1.a ; Stage 3 add r1.a, r1.a, r0.a ; Stage 4 mad r0.a, c3.a, c5_bx2.a, r1.a ; Stage 5 cnd r1.a, r0.a, c1.a, c15.a ; Stage 6 mov r0, t0 ; Stage 7 mov r0.a, r1.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 15) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0xE5080000; pPSD.PSConstant0[1] = 0xE5080000; pPSD.PSConstant0[4] = 0x45000000; pPSD.PSConstant0[5] = 0x00000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(8, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,0,15,15,3,1,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, t1, c0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_EXPAND_NORMAL | PS_CHANNEL_ALPHA, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for -1 detected: -1.000000:c5 added: def c5, -1.000000f, -1.000000f, -1.000000f, -1.000000f ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_SHIFTLEFT_2 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x4| szInputAB1: |t1| szInputAB2: |1| szInputCD1: |c0| szInputCD2: |-1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| [0x110C] EmuWarn: Pixel Shader: Destination modifier present! new command: mad_x4 r1.a, c0.a, c5_bx2.a, t1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_SHIFTLEFT_1 | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: |_x2| szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov_x2 r1.a, r1.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |r0| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| new command: add r1.a, r1.a, r0.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |c3| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0.a| new command: add r0.a, r1.a, c3.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, Looking for 1 Looking for 1 ); pPSD.PSAlphaOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1.a| new command: cnd r1.a, r0.a, c1.a, c15.a // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mov r0, t0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[6] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[6] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[7] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[7] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[7] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[7] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, r1.a *** RESULT: ps.1.3 def c5, -1.000000f, -1.000000f, -1.000000f, -1.000000f def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 dp3 r0, t1, c0 ; Stage 1 mad_x4 r1.a, c0.a, c5_bx2.a, t1.a ; Stage 2 mov_x2 r1.a, r1.a ; Stage 3 add r1.a, r1.a, r0.a ; Stage 4 add r0.a, r1.a, c3.a ; Stage 5 cnd r1.a, r0.a, c1.a, c15.a ; Stage 6 mov r0, t0 ; Stage 7 mov r0.a, r1.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 15) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(3, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, v0, t0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t1| szInputCD1: |1| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: mad r0, v0, t1, r0 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, v0.a *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f tex t0 tex t1 ; Stage 0 mul r0, v0, t0 ; Stage 1 mad r0, v0, t1, r0 ; Stage 2 mov r0.a, v0.a *** PIXEL SHADER CREATION FINISHED! DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_D3DCOLOR), D3DVSD_REG(2, D3DVSDT_FLOAT2), D3DVSD_REG(3, D3DVSDT_FLOAT2), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 add oPos, v0, c25 mov oD0, v1 mov oT0.xy, v2.xy mov oT1.xy, v3.xy ----------------------- [0x110C] EmuWarn: Applying screen space vertex shader patching hack! -- After conversion --- vs.1.1 add r11, v0, c121 mul r10, r11, c58 add oPos, r10, c59 mov oD0, v1 mov oT0.xy, v2.xy mov oT1.xy, v3.xy ----------------------- // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(4, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, v0, t0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t1| szInputCD1: |1| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: mad r0, v0, t1, r0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T2 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t2| szInputCD1: |1| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: mad r0, v0, t2, r0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_V0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_T3 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 1 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |v0| szInputAB2: |t3| szInputCD1: |1| szInputCD2: |r0| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: mad r0, v0, t3, r0 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f tex t0 tex t1 tex t2 tex t3 ; Stage 0 mul r0, v0, t0 ; Stage 1 mad r0, v0, t1, r0 ; Stage 2 mad r0, v0, t2, r0 ; Stage 3 mad r0, v0, t3, r0 *** PIXEL SHADER CREATION FINISHED! DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT4), D3DVSD_REG(1, D3DVSDT_D3DCOLOR), D3DVSD_REG(2, D3DVSDT_FLOAT2), D3DVSD_REG(3, D3DVSDT_FLOAT2), D3DVSD_REG(4, D3DVSDT_FLOAT2), D3DVSD_REG(5, D3DVSDT_FLOAT2), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 add oPos, v0, c25 mov oD0, v1 mov oT0.xy, v2.xy mov oT1.xy, v3.xy mov oT2.xy, v4.xy mov oT3.xy, v5.xy ----------------------- [0x110C] EmuWarn: Applying screen space vertex shader patching hack! -- After conversion --- vs.1.1 add r11, v0, c121 mul r10, r11, c58 add oPos, r10, c59 mov oD0, v1 mov oT0.xy, v2.xy mov oT1.xy, v3.xy mov oT2.xy, v4.xy mov oT3.xy, v5.xy ----------------------- NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC000003A) NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtOpenFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: EmuKrnl: IoCreateFile Failed! (0xC0000034) NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: MEM_NOZERO flag is not supported! NtCreateFile forwarding to "IoCreateFile"... XeLoadSection incomplete! XeLoadSection incomplete! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! DWORD dwVSHDecl[] = { D3DVSD_STREAM(0), D3DVSD_REG(0, D3DVSDT_FLOAT3), D3DVSD_REG(1, D3DVSDT_FLOAT2), D3DVSD_REG(2, D3DVSDT_FLOAT2), D3DVSD_END() }; NeedPatching: 0 NbrStreams: 1 -- Before conversion -- xvs.1.1 dph r2.x, v0, c4 dph r2.y, v0, c5 dph r2.z, v0, c6 mov r4.xy, v1.xy dph r3.x, r2, c32 dph r3.y, r2, c33 dph r3.z, r2, c34 dph r3.w, r2, c35 mov r5.z, c0.w +mov oPos, r3 rsq r1.w, r5.z mul oPos.xyz, r12, c-38 +rcc r1.x, r12.w mul r6.xy, r4.xy, r1.w mul r7.xy, r6.xy, c50.x add r8.xy, r7.xy, c51.xy add oT0.xy, v2.xy, r8.xy mul r9.xy, r6.xyz, c50.y add r10.xy, r9.xy, c51.zw add oT1.xy, v2.xy, r10.xy mad oPos.xyz, r12, r1.x, c-37 ----------------------- Deleted mul oPos.xyz, r12, c-38 PosC38 = 11 i = 19 Deleted +rcc r1.x, r12.w Deleted mad oPos.xyz, r12, r1.x, c-37 -- After conversion --- vs.1.1 dp3 r2.x, v0, c100 add r2.x, r2.x, c100.w dp3 r2.y, v0, c101 add r2.y, r2.y, c101.w dp3 r2.z, v0, c102 add r2.z, r2.z, c102.w mov r4.xy, v1.xy dp3 r3.x, r2, c128 add r3.x, r3.x, c128.w dp3 r3.y, r2, c129 add r3.y, r3.y, c129.w dp3 r3.z, r2, c130 add r3.z, r3.z, c130.w dp3 r3.w, r2, c131 add r3.w, r3.w, c131.w mov r5.z, c96.w mov oPos, r3 rsq r1.w, r5.z mul r6.xy, r4.xy, r1.w mul r7.xy, r6.xy, c146.x add r8.xy, r7.xy, c147.xy add oT0.xy, v2.xy, r8.xy mul r9.xy, r6.xyz, c146.y add r10.xy, r9.xy, c147.zw add oT1.xy, v2.xy, r10.xy ----------------------- // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(3, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,1,15,15,15,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_T0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |t0| szOutCD: || szABCDOutput: || new command: mul t0, t0, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_T1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |t1| szOutCD: || szABCDOutput: || new command: mul t1, t1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c3 added: def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, t0, t1 *** RESULT: ps.1.3 def c3, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul t0, t0, c0 ; Stage 1 mul t1, t1, c1 ; Stage 2 add r0, t0, t1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSConstant0[3] = 0xFF336666; pPSD.PSConstant0[5] = 0x66666666; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,1,15,2,15,3,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c4 added: def c4, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_T0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |t0| szOutCD: || szABCDOutput: || new command: mul t0, t0, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_T1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |t1| szOutCD: || szABCDOutput: || new command: mul t1, t1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c5 added: def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, t0, t1 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |c2| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r0, c2 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov r1.a, r0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_C0 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |c3| szInputAB2: |r0| szInputCD1: |r1| szInputCD2: |c3| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: lrp r0, c3, r0, r1 *** RESULT: ps.1.3 def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c4, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul t0, t0, c0 ; Stage 1 mul t1, t1, c1 ; Stage 2 add r0, t0, t1 ; Stage 3 dp3 r1, r0, c2 ; Stage 4 mov r1.a, r0.a ; Stage 5 lrp r0, c3, r0, r1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSConstant0[3] = 0x00000000; pPSD.PSConstant0[5] = 0x66666666; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,1,15,1,15,3,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c2 added: def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_T0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |t0| szOutCD: || szABCDOutput: || new command: mul t0, t0, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_T1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |t1| szOutCD: || szABCDOutput: || new command: mul t1, t1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c4 added: def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, t0, t1 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, r1, c1 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |t0| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mul r0.a, r1.a, t0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_C0 | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |c3| szInputAB2: |r0| szInputCD1: |r1| szInputCD2: |c3| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: lrp r0, c3, r0, r1 *** RESULT: ps.1.3 def c4, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c2, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul t0, t0, c0 ; Stage 1 mul t1, t1, c1 ; Stage 2 add r1, t0, t1 ; Stage 3 dp3 r0, r1, c1 ; Stage 4 mul r0.a, r1.a, t0.a ; Stage 5 lrp r0, c3, r0, r1 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSConstant0[3] = 0xFF336666; pPSD.PSConstant0[5] = 0xFFFFCC99; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,1,15,3,15,2,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c4 added: def c4, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_T0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |t0| szOutCD: || szABCDOutput: || new command: mul t0, t0, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_T1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |t1| szOutCD: || szABCDOutput: || new command: mul t1, t1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c5 added: def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: add r0, t0, t1 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |c3| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1| szOutCD: || szABCDOutput: || new command: dp3 r1, r0, c3 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_R0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_R1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r0| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r1.a| szOutCD: || szABCDOutput: || new command: mov r1.a, r0.a // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c2| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: mul r0, r1, c2 *** RESULT: ps.1.3 def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c4, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f def c3, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul t0, t0, c0 ; Stage 1 mul t1, t1, c1 ; Stage 2 add r0, t0, t1 ; Stage 3 dp3 r1, r0, c3 ; Stage 4 mov r1.a, r0.a ; Stage 5 mul r0, r1, c2 *** PIXEL SHADER CREATION FINISHED! // Xbox hard coded pixel shader // -------------------------- // Constants // -------------------------- pPSD.PSConstant0[0] = 0x00000000; pPSD.PSConstant0[1] = 0x00000000; pPSD.PSConstant0[3] = 0xFF99CCCC; pPSD.PSConstant0[4] = 0xFF999999; pPSD.PSFinalCombinerConstants = PS_FINALCOMBINERCONSTANTS(15,15,PS_GLOBALFLAGS_TEXMODE_ADJUST); // -------------------------- // Input Textures // -------------------------- pPSD.PSInputTexture = PS_INPUTTEXTURE(0,0,0,0); // -------------------------- // Texture Modes // -------------------------- pPSD.PSTextureModes = PS_TEXTUREMODES( PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_PROJECT2D, PS_TEXTUREMODES_NONE, PS_TEXTUREMODES_NONE); // -------------------------- // Combiner Count // -------------------------- pPSD.PSCombinerCount = PS_COMBINERCOUNT(6, PS_COMBINERCOUNT_MUX_MSB | PS_COMBINERCOUNT_UNIQUE_C0 | PS_COMBINERCOUNT_SAME_C1); // -------------------------- // Constant Mappings // -------------------------- pPSD.PSC0Mapping = PS_CONSTANTMAPPING(0,1,15,2,4,15,15,15); pPSD.PSC1Mapping = PS_CONSTANTMAPPING(15,15,15,15,15,15,15,15); // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[0] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 detected: 0.000000:c3 added: def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f Looking for 0 ); pPSD.PSRGBOutputs[0] = PS_COMBINEROUTPUTS( PS_REGISTER_T0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |c0| szInputCD1: |0| szInputCD2: |0| szOutAB: |t0| szOutCD: || szABCDOutput: || new command: mul t0, t0, c0 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[1] = PS_COMBINERINPUTS( PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[1] = PS_COMBINEROUTPUTS( PS_REGISTER_T1, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t1| szInputAB2: |c1| szInputCD1: |0| szInputCD2: |0| szOutAB: |t1| szOutCD: || szABCDOutput: || new command: mul t1, t1, c1 // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[2] = PS_COMBINERINPUTS( PS_REGISTER_T0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_T1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 detected: 1.000000:c5 added: def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f Looking for 1 ); pPSD.PSRGBOutputs[2] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R1, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |t0| szInputAB2: |1| szInputCD1: |t1| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r1| new command: add r1, t0, t1 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_DOT_PRODUCT | PS_COMBINEROUTPUT_CD_MULTIPLY | PS_COMBINEROUTPUT_AB_BLUE_TO_ALPHA); ---------- szOp: |dp3| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |c2| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0| szOutCD: || szABCDOutput: || new command: dp3 r0, r1, c2 // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[3] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_BLUE, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[3] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // RGB/Alpha // -------------------------- pPSD.PSRGBInputs[4] = PS_COMBINERINPUTS( PS_REGISTER_C1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, PS_REGISTER_C0 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_RGB, Looking for 1 Looking for 1 ); pPSD.PSRGBOutputs[4] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_R0, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_MUX | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |cnd| szMod: || szInputAB1: |c15| szInputAB2: |1| szInputCD1: |c4| szInputCD2: |1| szOutAB: || szOutCD: || szABCDOutput: |r0| new command: cnd r0, r0.a, c4, c15 // -------------------------- // RGB // -------------------------- pPSD.PSRGBInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_RGB, Looking for 0 Looking for 0 Looking for 0 Looking for 0 ); pPSD.PSRGBOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |0| szInputAB2: |0| szInputCD1: |0| szInputCD2: |0| szOutAB: || szOutCD: || szABCDOutput: || // -------------------------- // Alpha // -------------------------- pPSD.PSAlphaInputs[5] = PS_COMBINERINPUTS( PS_REGISTER_R1 | PS_INPUTMAPPING_SIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_INVERT | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, PS_REGISTER_ZERO | PS_INPUTMAPPING_UNSIGNED_IDENTITY | PS_CHANNEL_ALPHA, Looking for 1 Looking for 0 Looking for 0 ); pPSD.PSAlphaOutputs[5] = PS_COMBINEROUTPUTS( PS_REGISTER_R0, PS_REGISTER_ZERO, PS_REGISTER_ZERO, PS_COMBINEROUTPUT_IDENTITY | PS_COMBINEROUTPUT_AB_CD_SUM | PS_COMBINEROUTPUT_AB_MULTIPLY | PS_COMBINEROUTPUT_CD_MULTIPLY); ---------- szOp: |mul| szOp1: |mul| szOp2: |add| szMod: || szInputAB1: |r1| szInputAB2: |1| szInputCD1: |0| szInputCD2: |0| szOutAB: |r0.a| szOutCD: || szABCDOutput: || new command: mov r0.a, r1.a *** RESULT: ps.1.3 def c5, 1.000000f, 1.000000f, 1.000000f, 1.000000f def c3, 0.000000f, 0.000000f, 0.000000f, 0.000000f def c0, 0.0f, 0.0f, 0.0f, 0.0f def c1, 0.0f, 0.0f, 0.0f, 0.0f def c2, 0.0f, 0.0f, 0.0f, 0.0f def c4, 0.0f, 0.0f, 0.0f, 0.0f tex t0 tex t1 ; Stage 0 mul t0, t0, c0 ; Stage 1 mul t1, t1, c1 ; Stage 2 add r1, t0, t1 ; Stage 3 dp3 r0, r1, c2 ; Stage 4 cnd r0, r0.a, c4, c15 ; Stage 5 mov r0.a, r1.a *** PIXEL SHADER CREATION FINISHED! [0x110C] EmuWarn: Couldn't assemble recompiled pixel shader [0x110C] EmuWarn: (Statement 14) (Validation Error) Invalid reg num: 15 for third source param. Max allowed for this type is 7. EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! NtCreateFile forwarding to "IoCreateFile"... [0x110C] EmuWarn: D3DLOCK_TILED ignored! [0x110C] EmuWarn: MEM_NOZERO flag is not supported! [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! [0x110C] EmuWarn: Attempt to registered to another resource's data (eww!) EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012D ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000258 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000259 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000384 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000385 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000000 ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) NtOpenFile forwarding to "IoCreateFile"... NtCreateFile forwarding to "IoCreateFile"... NtOpenFile forwarding to "IoCreateFile"... NtCreateEvent incomplete! [0x110C] EmuWarn: Trying fixed or recompiled programmable pipeline pixel shader! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x00000001 ); [0x110C] EmuWarn: InsertCallback ignored! EmuD3D8: EmuD3DDevice_InsertCallback ( Type : 0x00000001 pCallback : 0x000BCF30 Context : 0x0000012C ); [0x110C] EmuWarn: InsertCallback ignored! [0x110C] EmuWarn: SetRenderTarget Failed! (0x8876086C) [0x110C] EmuMain: Recieved Exception (Code := 0xC0000005) EIP := 0x080447B2 EFL := 0x00210202 EAX := 0x00000000 EBX := 0x000001DF ECX := 0x0012C000 EDX := 0x00000001 ESI := 0x1008D000 EDI := 0x00000A04 ESP := 0x12C1FC80 EBP := 0x12C1FD70 CR2 := 0x00000000 [0x110C] EmuMain: Aborting Emulation