Difference between revisions of "Tony Hawk's Pro Skater 2x"

From xboxdevwiki
Jump to: navigation, search
(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 06:28, 30 December 2016

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]);