Difference between revisions of "Tony Hawk's Pro Skater 2x"
From xboxdevwiki
(→Demo) |
(→Skater) |
||
Line 11: | Line 11: | ||
Shader: | Shader: | ||
+ | |||
+ | <code> | ||
+ | /* Slot 0: 0x00000000 0x00320000 0x0C36106C 0x21200FF8 */ | ||
+ | MOV(R2,w, c[144].x); | ||
+ | /* Slot 1: 0x00000000 0x005600FF 0x2554186C 0x21300FF8 */ | ||
+ | MUL(R3,w, R2.w, c[176].z); | ||
+ | /* Slot 2: 0x00000000 0x00960000 0x0C3413FC 0xDE400FF8 */ | ||
+ | MAD(R4,xyz, c[176].x, v0.xyz, R3.w); | ||
+ | /* Slot 3: 0x00000000 0x007002AA 0x0C361400 0x28500FF8 */ | ||
+ | ADD(R5,x, c[128].z, -v1.x); | ||
+ | /* Slot 4: 0x00000000 0x0ACC001B 0x0836186D 0x18640FF8 */ | ||
+ | DPH(R6,x, v0, c[96]); | ||
+ | EXP(R1,y, R4.x); | ||
+ | /* Slot 5: 0x00000000 0x00CC201B 0x0836186C 0x24600FF8 */ | ||
+ | DPH(R6,y, v0, c[97]); | ||
+ | /* Slot 6: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ | ||
+ | MUL(R1,x, R1.y, R1.y); | ||
+ | /* Slot 7: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ | ||
+ | MUL(R1,z, R1.x, R1.y); | ||
+ | /* Slot 8: 0x00000000 0x00B0801A 0x1436186C 0x28700FF8 */ | ||
+ | DP3(R7,x, R1.xyz, c[132]); | ||
+ | /* Slot 9: 0x00000000 0x0ACC401B 0x08361955 0x12640FF8 */ | ||
+ | DPH(R6,z, v0, c[98]); | ||
+ | EXP(R1,y, R4.y); | ||
+ | /* Slot 10: 0x00000000 0x00CC601B 0x0836186C 0x28800FF8 */ | ||
+ | DPH(R8,x, v0, c[99]); | ||
+ | /* Slot 11: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ | ||
+ | MUL(R1,x, R1.y, R1.y); | ||
+ | /* Slot 12: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ | ||
+ | MUL(R1,z, R1.x, R1.y); | ||
+ | /* Slot 13: 0x00000000 0x00B0801A 0x1436186C 0x24700FF8 */ | ||
+ | DP3(R7,y, R1.xyz, c[132]); | ||
+ | /* Slot 14: 0x00000000 0x0ACC801B 0x08361AA9 0x14840FF8 */ | ||
+ | DPH(R8,y, v0, c[100]); | ||
+ | EXP(R1,y, R4.z); | ||
+ | /* Slot 15: 0x00000000 0x00CCA01B 0x0836186C 0x22800FF8 */ | ||
+ | DPH(R8,z, v0, c[101]); | ||
+ | /* Slot 16: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ | ||
+ | MUL(R1,x, R1.y, R1.y); | ||
+ | /* Slot 17: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ | ||
+ | MUL(R1,z, R1.x, R1.y); | ||
+ | /* Slot 18: 0x00000000 0x00B0801A 0x1436186C 0x22700FF8 */ | ||
+ | DP3(R7,z, R1.xyz, c[132]); | ||
+ | /* Slot 19: 0x00000000 0x0040021A 0x6400106C 0x2E900FF8 */ | ||
+ | MUL(R9,xyz, R6.xyz, v1.x); | ||
+ | /* Slot 20: 0x00000000 0x0080001A 0x8400A86A 0x5EA00FF8 */ | ||
+ | MAD(R10,xyz, R8.xyz, R5.x, R9.xyz); | ||
+ | /* Slot 21: 0x00000000 0x00560655 0x08AA186C 0x21B00FF8 */ | ||
+ | MUL(R11,w, v3.y, c[176].y); | ||
+ | /* Slot 22: 0x00000000 0x005780FF 0xB5FE186C 0x21000FF8 */ | ||
+ | MUL(R0,w, R11.w, c[188].w); | ||
+ | /* Slot 23: 0x00000000 0x0080001A 0x75FE086A 0x9E200FF8 */ | ||
+ | MAD(R2,xyz, R7.xyz, R0.w, R10.xyz); | ||
+ | /* Slot 24: 0x00000000 0x0097871A 0x0D541068 0x9E300FF8 */ | ||
+ | MAD(R3,xyz, -c[188].xyz, v3.z, R2.xyz); | ||
+ | /* Slot 25: 0x00000000 0x00AC041B 0x0836186C 0x28400FF8 */ | ||
+ | DP3(R4,x, v2, c[96]); | ||
+ | /* Slot 26: 0x00000000 0x00AC241B 0x0836186C 0x24400FF8 */ | ||
+ | DP3(R4,y, v2, c[97]); | ||
+ | /* Slot 27: 0x00000000 0x00AC441B 0x0836186C 0x22400FF8 */ | ||
+ | DP3(R4,z, v2, c[98]); | ||
+ | /* Slot 28: 0x00000000 0x00AC641B 0x0836186C 0x28600FF8 */ | ||
+ | DP3(R6,x, v2, c[99]); | ||
+ | /* Slot 29: 0x00000000 0x00AC841B 0x0836186C 0x24600FF8 */ | ||
+ | DP3(R6,y, v2, c[100]); | ||
+ | /* Slot 30: 0x00000000 0x00ACA41B 0x0836186C 0x22600FF8 */ | ||
+ | DP3(R6,z, v2, c[101]); | ||
+ | /* Slot 31: 0x00000000 0x0040021A 0x4400106C 0x2E700FF8 */ | ||
+ | MUL(R7,xyz, R4.xyz, v1.x); | ||
+ | /* Slot 32: 0x00000000 0x0080001A 0x6400A869 0xDE800FF8 */ | ||
+ | MAD(R8,xyz, R6.xyz, R5.x, R7.xyz); | ||
+ | /* Slot 33: 0x00000000 0x00CEA01B 0x3436186C 0x20708800 */ | ||
+ | DPH(oPos,x, R3, c[117]); | ||
+ | /* Slot 34: 0x00000000 0x00CEC01B 0x3436186C 0x20704800 */ | ||
+ | DPH(oPos,y, R3, c[118]); | ||
+ | /* Slot 35: 0x00000000 0x00CEE01B 0x3436186C 0x20702800 */ | ||
+ | DPH(oPos,z, R3, c[119]); | ||
+ | /* Slot 36: 0x00000000 0x00CF001B 0x3436186C 0x20701800 */ | ||
+ | DPH(oPos,w, R3, c[120]); | ||
+ | /* Slot 37: 0x00000000 0x00A0001A 0x8435086C 0x21800FF8 */ | ||
+ | DP3(R8,w, R8.xyz, R8.xyz); | ||
+ | /* Slot 38: 0x00000000 0x00CD321B 0x0836186C 0x20708848 */ | ||
+ | DPH(oT0,x, v9, c[105]); | ||
+ | /* Slot 39: 0x00000000 0x0833401B 0x0C3613FE 0x1F910FF8 */ | ||
+ | MOV(R9,xyzw, c[154]); | ||
+ | RSQ(R1,w, R8.w); | ||
+ | /* Slot 40: 0x00000000 0x00CD521B 0x0836186C 0x20704848 */ | ||
+ | DPH(oT0,y, v9, c[106]); | ||
+ | /* Slot 41: 0x00000000 0x0040001A 0x85FE286C 0x2EA00FF8 */ | ||
+ | MUL(R10,xyz, R8.xyz, R1.w); | ||
+ | /* Slot 42: 0x00000000 0x00B3001B 0xA636186C 0x28B00FF8 */ | ||
+ | DP3(R11,x, R10, -c[152]); | ||
+ | /* Slot 43: 0x00000000 0x00B3201B 0xA636186C 0x24B00FF8 */ | ||
+ | DP3(R11,y, R10, -c[153]); | ||
+ | /* Slot 44: 0x00000000 0x00CF001B 0x3436186C 0x20708828 */ | ||
+ | DPH(oFog,x, R3, c[120]); | ||
+ | /* Slot 45: 0x00000000 0x01500015 0xB400186C 0x2C000FF8 */ | ||
+ | MAX(R0,xy, R11.xy, c[128].x); | ||
+ | /* Slot 46: 0x00000000 0x00936000 0x0436186E 0x5F200FF8 */ | ||
+ | MAD(R2,xyzw, R0.x, c[155], R9); | ||
+ | /* Slot 47: 0x00000000 0x00938055 0x0436186C 0x9F300FF8 */ | ||
+ | MAD(R3,xyzw, R0.y, c[156], R2); | ||
+ | /* Slot 48: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */ | ||
+ | MUL(oPos,xyz, R12, c[58]); | ||
+ | RCC(R1,x, R12.w); | ||
+ | /* Slot 49: 0x00000000 0x0057401B 0x3436186C 0x2070F818 */ | ||
+ | MUL(oD0,xyzw, R3, c[186]); | ||
+ | /* Slot 50: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */ | ||
+ | MAD(oPos,xyz, R12, R1.x, c[59]); | ||
+ | </code> | ||
==== HUD ==== | ==== HUD ==== |
Revision as of 14:28, 30 December 2016
Contents
Demo
There was a demo released for ??? on ???.
Rendering in the Demo
This is a rundown of how the scene is being rendered in the THPS2X Demo version
World
Skater
Shader:
/* Slot 0: 0x00000000 0x00320000 0x0C36106C 0x21200FF8 */ MOV(R2,w, c[144].x); /* Slot 1: 0x00000000 0x005600FF 0x2554186C 0x21300FF8 */ MUL(R3,w, R2.w, c[176].z); /* Slot 2: 0x00000000 0x00960000 0x0C3413FC 0xDE400FF8 */ MAD(R4,xyz, c[176].x, v0.xyz, R3.w); /* Slot 3: 0x00000000 0x007002AA 0x0C361400 0x28500FF8 */ ADD(R5,x, c[128].z, -v1.x); /* Slot 4: 0x00000000 0x0ACC001B 0x0836186D 0x18640FF8 */ DPH(R6,x, v0, c[96]); EXP(R1,y, R4.x); /* Slot 5: 0x00000000 0x00CC201B 0x0836186C 0x24600FF8 */ DPH(R6,y, v0, c[97]); /* Slot 6: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ MUL(R1,x, R1.y, R1.y); /* Slot 7: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ MUL(R1,z, R1.x, R1.y); /* Slot 8: 0x00000000 0x00B0801A 0x1436186C 0x28700FF8 */ DP3(R7,x, R1.xyz, c[132]); /* Slot 9: 0x00000000 0x0ACC401B 0x08361955 0x12640FF8 */ DPH(R6,z, v0, c[98]); EXP(R1,y, R4.y); /* Slot 10: 0x00000000 0x00CC601B 0x0836186C 0x28800FF8 */ DPH(R8,x, v0, c[99]); /* Slot 11: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ MUL(R1,x, R1.y, R1.y); /* Slot 12: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ MUL(R1,z, R1.x, R1.y); /* Slot 13: 0x00000000 0x00B0801A 0x1436186C 0x24700FF8 */ DP3(R7,y, R1.xyz, c[132]); /* Slot 14: 0x00000000 0x0ACC801B 0x08361AA9 0x14840FF8 */ DPH(R8,y, v0, c[100]); EXP(R1,y, R4.z); /* Slot 15: 0x00000000 0x00CCA01B 0x0836186C 0x22800FF8 */ DPH(R8,z, v0, c[101]); /* Slot 16: 0x00000000 0x00400055 0x14AA286C 0x28100FF8 */ MUL(R1,x, R1.y, R1.y); /* Slot 17: 0x00000000 0x00400000 0x14AA286C 0x22100FF8 */ MUL(R1,z, R1.x, R1.y); /* Slot 18: 0x00000000 0x00B0801A 0x1436186C 0x22700FF8 */ DP3(R7,z, R1.xyz, c[132]); /* Slot 19: 0x00000000 0x0040021A 0x6400106C 0x2E900FF8 */ MUL(R9,xyz, R6.xyz, v1.x); /* Slot 20: 0x00000000 0x0080001A 0x8400A86A 0x5EA00FF8 */ MAD(R10,xyz, R8.xyz, R5.x, R9.xyz); /* Slot 21: 0x00000000 0x00560655 0x08AA186C 0x21B00FF8 */ MUL(R11,w, v3.y, c[176].y); /* Slot 22: 0x00000000 0x005780FF 0xB5FE186C 0x21000FF8 */ MUL(R0,w, R11.w, c[188].w); /* Slot 23: 0x00000000 0x0080001A 0x75FE086A 0x9E200FF8 */ MAD(R2,xyz, R7.xyz, R0.w, R10.xyz); /* Slot 24: 0x00000000 0x0097871A 0x0D541068 0x9E300FF8 */ MAD(R3,xyz, -c[188].xyz, v3.z, R2.xyz); /* Slot 25: 0x00000000 0x00AC041B 0x0836186C 0x28400FF8 */ DP3(R4,x, v2, c[96]); /* Slot 26: 0x00000000 0x00AC241B 0x0836186C 0x24400FF8 */ DP3(R4,y, v2, c[97]); /* Slot 27: 0x00000000 0x00AC441B 0x0836186C 0x22400FF8 */ DP3(R4,z, v2, c[98]); /* Slot 28: 0x00000000 0x00AC641B 0x0836186C 0x28600FF8 */ DP3(R6,x, v2, c[99]); /* Slot 29: 0x00000000 0x00AC841B 0x0836186C 0x24600FF8 */ DP3(R6,y, v2, c[100]); /* Slot 30: 0x00000000 0x00ACA41B 0x0836186C 0x22600FF8 */ DP3(R6,z, v2, c[101]); /* Slot 31: 0x00000000 0x0040021A 0x4400106C 0x2E700FF8 */ MUL(R7,xyz, R4.xyz, v1.x); /* Slot 32: 0x00000000 0x0080001A 0x6400A869 0xDE800FF8 */ MAD(R8,xyz, R6.xyz, R5.x, R7.xyz); /* Slot 33: 0x00000000 0x00CEA01B 0x3436186C 0x20708800 */ DPH(oPos,x, R3, c[117]); /* Slot 34: 0x00000000 0x00CEC01B 0x3436186C 0x20704800 */ DPH(oPos,y, R3, c[118]); /* Slot 35: 0x00000000 0x00CEE01B 0x3436186C 0x20702800 */ DPH(oPos,z, R3, c[119]); /* Slot 36: 0x00000000 0x00CF001B 0x3436186C 0x20701800 */ DPH(oPos,w, R3, c[120]); /* Slot 37: 0x00000000 0x00A0001A 0x8435086C 0x21800FF8 */ DP3(R8,w, R8.xyz, R8.xyz); /* Slot 38: 0x00000000 0x00CD321B 0x0836186C 0x20708848 */ DPH(oT0,x, v9, c[105]); /* Slot 39: 0x00000000 0x0833401B 0x0C3613FE 0x1F910FF8 */ MOV(R9,xyzw, c[154]); RSQ(R1,w, R8.w); /* Slot 40: 0x00000000 0x00CD521B 0x0836186C 0x20704848 */ DPH(oT0,y, v9, c[106]); /* Slot 41: 0x00000000 0x0040001A 0x85FE286C 0x2EA00FF8 */ MUL(R10,xyz, R8.xyz, R1.w); /* Slot 42: 0x00000000 0x00B3001B 0xA636186C 0x28B00FF8 */ DP3(R11,x, R10, -c[152]); /* Slot 43: 0x00000000 0x00B3201B 0xA636186C 0x24B00FF8 */ DP3(R11,y, R10, -c[153]); /* Slot 44: 0x00000000 0x00CF001B 0x3436186C 0x20708828 */ DPH(oFog,x, R3, c[120]); /* Slot 45: 0x00000000 0x01500015 0xB400186C 0x2C000FF8 */ MAX(R0,xy, R11.xy, c[128].x); /* Slot 46: 0x00000000 0x00936000 0x0436186E 0x5F200FF8 */ MAD(R2,xyzw, R0.x, c[155], R9); /* Slot 47: 0x00000000 0x00938055 0x0436186C 0x9F300FF8 */ MAD(R3,xyzw, R0.y, c[156], R2); /* Slot 48: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */ MUL(oPos,xyz, R12, c[58]); RCC(R1,x, R12.w); /* Slot 49: 0x00000000 0x0057401B 0x3436186C 0x2070F818 */ MUL(oD0,xyzw, R3, c[186]); /* Slot 50: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */ MAD(oPos,xyz, R12, R1.x, c[59]);
HUD
Shadow
Skater
Skater shadows are rendered into a 256x256 texture after the entire scene has been rendered
Shader
/* Slot 0: 0x00000000 0x007002AA 0x0C361400 0x28200FF8 */ ADD(R2,x, c[128].z, -v1.x); /* Slot 1: 0x00000000 0x00CC001B 0x0836186C 0x28300FF8 */ DPH(R3,x, v0, c[96]); /* Slot 2: 0x00000000 0x00CC201B 0x0836186C 0x24300FF8 */ DPH(R3,y, v0, c[97]); /* Slot 3: 0x00000000 0x00CC401B 0x0836186C 0x22300FF8 */ DPH(R3,z, v0, c[98]); /* Slot 4: 0x00000000 0x00CC601B 0x0836186C 0x28400FF8 */ DPH(R4,x, v0, c[99]); /* Slot 5: 0x00000000 0x00CC801B 0x0836186C 0x24400FF8 */ DPH(R4,y, v0, c[100]); /* Slot 6: 0x00000000 0x00CCA01B 0x0836186C 0x22400FF8 */ DPH(R4,z, v0, c[101]); /* Slot 7: 0x00000000 0x0040021A 0x3400106C 0x2E500FF8 */ MUL(R5,xyz, R3.xyz, v1.x); /* Slot 8: 0x00000000 0x0080001A 0x44004869 0x5E600FF8 */ MAD(R6,xyz, R4.xyz, R2.x, R5.xyz); /* Slot 9: 0x00000000 0x00CEA01B 0x6436186C 0x20708800 */ DPH(oPos,x, R6, c[117]); /* Slot 10: 0x00000000 0x00CEC01B 0x6436186C 0x20704800 */ DPH(oPos,y, R6, c[118]); /* Slot 11: 0x00000000 0x00CEE01B 0x6436186C 0x20702800 */ DPH(oPos,z, R6, c[119]); /* Slot 12: 0x00000000 0x00CF001B 0x6436186C 0x20701800 */ DPH(oPos,w, R6, c[120]); /* Slot 13: 0x00000000 0x0647401B 0xC4361BFF 0x1078E800 */ MUL(oPos,xyz, R12, c[58]); RCC(R1,x, R12.w); /* Slot 14: 0x00000000 0x0087601B 0xC400286C 0x3070E801 */ MAD(oPos,xyz, R12, R1.x, c[59]);