game-compatibility
game-compatibility copied to clipboard
4D5307ED - Banjo Kazooie: Nuts & Bolts
Tested with: xenia-project/xenia@08acb6b Marketplace
Plays through the intros fine, then TDRs in the loading screen and crashes.
Screenshots:
Also state-intro, but logos are displayed correctly. After displaying second logo Xenia crashes and memory leak occurs.
Log - http://www1.zippyshare.com/v/RvC76mOy/file.html 11,5MB after unpacking.
Screens:
mine plays music that is past rare logo but it freezes my computer so it didnt load
https://www.youtube.com/watch?v=0xlfJzZMZas
As of now, the memory leak no longer occures, but my CPU is maxed out and the performance is killed. The game makes some sounds after freezing, indicating that it might be still running and not completely hung.
Yeah - it gets in-game fine. Just give it about an hour to compile shaders (not kidding!)
Do you already have compiled shaders ?
Are precompiled shaders even possible? I don't think they are.
The game's been compiling the shaders for about 1 hour and 20 minutes now, and it's in fact still doing it. So if I leave it alone for about two forevers tomorrow, and it gets the compiling done, do I have to compile the shaders every time I boot the game up or can I just skip that part somehow?
really want to play this game haha. its been compiling already for 15 minutes on a i7 3770. idk how long it will take haha. It has a blackish screen but my cpu is under 80-90% load.
https://www.youtube.com/watch?v=GOxMu1uNj5U
It can get into the menus now, but no further than that. Crashes after a little while no matter what you do.
i tested the game out today with the 3/7/17 build and it only gets past the rare logo and crashes at a gray screen
As of the 13/03/17 build (master/3cae25f) the emulator runs through the intro videos smoothly, with correct audio, but past those, I get many assertion errors :
(Those two errors keep repeating themselves when I click ignore) I can still hear the music, then it will cut off, then I can only hear ambience sounds.
After clicking ignore many, many times, the errors stop for a while and the emulator is stuck on this screen :
Then I got errors again after about 5 minutes of waiting, and decided to close the emulator.
Intro cut scenes play fine and if I can hear the main menu music with some glitchy video of spiral mountain. If I press start, it works but text is a broken mess and Banjo's room is also very buggy with some models loading fine, but textures being broken. Crashes soon after.
https://www.youtube.com/watch?v=ZD-5zyl4OlE
I was able to get in game by spamming A at the menu
Runs at about 0.2fps and there isn't any visible 3d - but its progress :)
after a few times of starting and crashing, i actually was able to see the intro textured correctly and was able to listen to the music, but it's slow and crashes soon after but most of the time i get this
Some textures are being uploaded incorrectly. Possibly not handling mips correctly?
- I see textures where
mip_address == address
BC1_RGBA_UNORM_BLOCK
BC5_UNORM_BLOCK
Loading screen emulation isn't accurate enough.
Xenia
Xbox 360
Shaders
Vertex Shader
/* 0.0 */ exec
/* 8 */ vfetch_full r1.yxw1, r0.x, vf0, DataFormat=FMT_16_16_16_16_FLOAT, Stride=6, Signed=true, NumFormat=integer, PrefetchCount=6
/* 9 */ vfetch_mini r3.yxwz, Offset=2, DataFormat=FMT_16_16_16_16, Signed=true, NumFormat=integer
/* 10 */ vfetch_mini r2.xyz1, Offset=5, DataFormat=FMT_2_10_10_10, Signed=true
/* 11 */ vfetch_mini r0, Offset=4, DataFormat=FMT_8_8_8_8
/* 0.1 */ alloc interpolators
/* 1.0 */ exec
/* 12 */ vfetch_full r4, r3.x, vf10, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 13 */ vfetch_full r5, r3.x, vf10, Offset=4, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 14 */ vfetch_full r6, r3.x, vf10, Offset=8, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 15 */ serialize
mul r7, r4, r0.xxxx
/* 16 */ mul r8, r5, r0.xxxx
/* 17 */ mul r9, r6, r0.xxxx
/* 1.1 */ exec // PredicateClean=false
/* 18 */ setp_ne r3.x___, r0.y
/* 2.0 */ (p0) exec
/* 19 */ (p0) vfetch_full r4, r3.y, vf10, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 20 */ (p0) vfetch_full r5, r3.y, vf10, Offset=4, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 21 */ (p0) vfetch_full r6, r3.y, vf10, Offset=8, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 22 */ serialize
(p0) mad r7, r4, r0.yyyy, r7
/* 23 */ (p0) mad r8, r5, r0.yyyy, r8
/* 24 */ (p0) mad r9, r6, r0.yyyy, r9
/* 2.1 */ exec // PredicateClean=false
/* 25 */ setp_ne r3._y__, r0.z
/* 3.0 */ (p0) exec
/* 26 */ (p0) vfetch_full r4, r3.z, vf10, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 27 */ (p0) vfetch_full r5, r3.z, vf10, Offset=4, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 28 */ (p0) vfetch_full r6, r3.z, vf10, Offset=8, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 29 */ serialize
(p0) mad r7, r4, r0.zzzz, r7
/* 30 */ (p0) mad r8, r5, r0.zzzz, r8
/* 31 */ (p0) mad r9, r6, r0.zzzz, r9
/* 3.1 */ exec // PredicateClean=false
/* 32 */ setp_ne r3.__z_, r0.w
/* 4.0 */ (p0) exec
/* 33 */ (p0) vfetch_full r4, r3.w, vf10, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 34 */ (p0) vfetch_full r5, r3.w, vf10, Offset=4, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 35 */ (p0) vfetch_full r6, r3.w, vf10, Offset=8, DataFormat=FMT_32_32_32_32_FLOAT, Stride=16
/* 36 */ serialize
(p0) mad r7, r4, r0.wwww, r7
/* 37 */ (p0) mad r8, r5, r0.wwww, r8
/* 38 */ (p0) mad r9, r6, r0.wwww, r9
/* 4.1 */ exec
/* 39 */ dp4 r0.x___, r1, r7
/* 40 */ dp4 r0._y__, r1, r8
/* 41 */ dp4 r0.__z_, r1, r9
+ maxs r0.___w, r1.ww
/* 42 */ dp3 r1.x___, r2, r7
/* 43 */ dp3 r1._y__, r2, r8
/* 44 */ dp3 r1.__z_, r2, r9
/* 5.0 */ exec
/* 45 */ dp3 r1.___w, r1, r1
/* 46 */ rsqc r1.___w, r1.w
/* 47 */ mul r1.xyz_, r1, r1.wwww
/* 48 */ dp4 o0.x___, r0, c120
/* 49 */ dp4 o0._y__, r0, c121
/* 50 */ dp4 o0.__z_, r0, c122
/* 5.1 */ exec
/* 51 */ max o0.___w, c5.yyyy, c5.yyyy
/* 52 */ dp3 o1.x___, r1, c120
/* 53 */ dp3 o1._y__, r1, c121
/* 54 */ dp3 o1.__z_, r1, c122
/* 6.0 */ alloc position
/* 6.1 */ exec
/* 55 */ dp4 r1.x___, r0, c0
/* 56 */ dp4 r1._y__, r0, c1
/* 57 */ dp4 r1.__z_, r0, c2
/* 58 */ dp4 r1.___w, r0, c3
/* 59 */ max oPos, r1, r1
/* 7.0 */ exece
/* 7.1 */ cnop
Pixel Shader
/* 0.0 */ exec
/* 30 */ dp3 r1.___w, r1, r1
/* 31 */ rsqc r1.___w, r1.w
/* 32 */ mul r1.xyz_, r1, r1.wwww
/* 33 */ dp4 r3, r0, c55
+ mulsc r4.x___, c15.z, r2.x
/* 34 */ add r3.xyz_, -r3, -c47
+ mulsc r4._y__, c15.w, r2.y
/* 35 */ tfetch2D r4.xy__, r4.xy, tf12, FetchValidOnly=false
/* 0.1 */ exec // PredicateClean=false
/* 36 */ serialize
mad r4, r4.yxxy, c16.zzwz, -c16.xxyx
/* 37 */ setp_gt r4.___w, r3.z
/* 1.0 */ (p0) exec
/* 38 */ (p0) dp4 r3.x___, r0, c65
/* 39 */ (p0) dp4 r3._y__, r0, c66
/* 40 */ (p0) mad r3.xy__, r3.xyyy, c14.xyyy, c14.xxxx
/* 41 */ (p0) mul r4.xyz_, r4.xyzz, c17
/* 42 */ (p0) mad r5, c18.xxzz, r4.xyxy, r3.xyxy
/* 43 */ (p0) mad r5, c18.yyww, r4.zxzx, r5
/* 1.1 */ (p0) exec
/* 44 */ (p0) tfetch2D r5.x___, r5.xy, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 45 */ (p0) tfetch2D r5._x__, r5.zw, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 46 */ (p0) mad r6, c19.xxzz, r4.xyxy, r3.xyxy
/* 47 */ (p0) mad r6, c19.yyww, r4.zxzx, r6
/* 48 */ (p0) tfetch2D r5.__x_, r6.xy, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 49 */ (p0) tfetch2D r5.___x, r6.zw, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 2.0 */ (p0) exec
/* 50 */ (p0) mad r2, c20.xxzz, r4.xyxy, r3.xyxy
/* 51 */ (p0) mad r2, c20.yyww, r4.zxzx, r2
/* 52 */ (p0) tfetch2D r6.x___, r2.xy, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 53 */ (p0) tfetch2D r6._x__, r2.zw, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 54 */ (p0) mad r3, c21.xxzz, r4.xyxy, r3.xyxy
/* 55 */ (p0) mad r3, c21.yyww, r4.zxzx, r3
/* 2.1 */ (p0) exec
/* 56 */ (p0) tfetch2D r6.__x_, r3.xy, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 57 */ (p0) tfetch2D r6.___x, r3.zw, tf15, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 58 */ (p0) dp4 r0.___w, r0, c67
/* 59 */ (p0) add r0.___w, r0.wwww, -c46.wwww
/* 3.0 */ exec // PredicateClean=false
/* 60 */ setp_inv r4.___w, r4.w
/* 61 */ setp_gt_push r4.___w, r4.wwww, r3.yyyy
/* 3.1 */ (p0) exec
/* 62 */ (p0) dp4 r3.x___, r0, c61
/* 63 */ (p0) dp4 r3._y__, r0, c62
/* 64 */ (p0) mad r3.xy__, r3.xyyy, c14.xyyy, c14.xxxx
/* 65 */ (p0) mad r5, c18.xxzz, r4.xyxy, r3.xyxy
/* 66 */ (p0) mad r5, c18.yyww, r4.zxzx, r5
/* 67 */ (p0) tfetch2D r5.x___, r5.xy, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 4.0 */ (p0) exec
/* 68 */ (p0) tfetch2D r5._x__, r5.zw, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 69 */ (p0) mad r6, c19.xxzz, r4.xyxy, r3.xyxy
/* 70 */ (p0) mad r6, c19.yyww, r4.zxzx, r6
/* 71 */ (p0) tfetch2D r5.__x_, r6.xy, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 72 */ (p0) tfetch2D r5.___x, r6.zw, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 73 */ (p0) mad r2, c20.xxzz, r4.xyxy, r3.xyxy
/* 4.1 */ (p0) exec
/* 74 */ (p0) mad r2, c20.yyww, r4.zxzx, r2
/* 75 */ (p0) tfetch2D r6.x___, r2.xy, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 76 */ (p0) tfetch2D r6._x__, r2.zw, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 77 */ (p0) mad r3, c21.xxzz, r4.xyxy, r3.xyxy
/* 78 */ (p0) mad r3, c21.yyww, r4.zxzx, r3
/* 79 */ (p0) tfetch2D r6.__x_, r3.xy, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 5.0 */ (p0) exec
/* 80 */ (p0) tfetch2D r6.___x, r3.zw, tf14, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 81 */ (p0) dp4 r0.___w, r0, c63
/* 82 */ (p0) add r0.___w, r0.wwww, -c46.zzzz
/* 5.1 */ exec // PredicateClean=false
/* 83 */ setp_inv r4.___w, r4.w
/* 6.0 */ (p0) exec
/* 84 */ (p0) dp4 r3.x___, r0, c57
/* 85 */ (p0) dp4 r3._y__, r0, c58
/* 86 */ (p0) mad r3.xy__, r3.xyyy, c14.xyyy, c14.xxxx
/* 87 */ (p0) mad r5, c18.xxzz, r4.xyxy, r3.xyxy
/* 88 */ (p0) mad r5, c18.yyww, r4.zxzx, r5
/* 89 */ (p0) tfetch2D r5.x___, r5.xy, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 6.1 */ (p0) exec
/* 90 */ (p0) tfetch2D r5._x__, r5.zw, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 91 */ (p0) mad r6, c19.xxzz, r4.xyxy, r3.xyxy
/* 92 */ (p0) mad r6, c19.yyww, r4.zxzx, r6
/* 93 */ (p0) tfetch2D r5.__x_, r6.xy, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 94 */ (p0) tfetch2D r5.___x, r6.zw, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 95 */ (p0) mad r2, c20.xxzz, r4.xyxy, r3.xyxy
/* 7.0 */ (p0) exec
/* 96 */ (p0) mad r2, c20.yyww, r4.zxzx, r2
/* 97 */ (p0) tfetch2D r6.x___, r2.xy, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 98 */ (p0) tfetch2D r6._x__, r2.zw, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 99 */ (p0) mad r3, c21.xxzz, r4.xyxy, r3.xyxy
/* 100 */ (p0) mad r3, c21.yyww, r4.zxzx, r3
/* 101 */ (p0) tfetch2D r6.__x_, r3.xy, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 7.1 */ (p0) exec
/* 102 */ (p0) tfetch2D r6.___x, r3.zw, tf13, MagFilter=point, MinFilter=point, MipFilter=point, AnisoFilter=disabled
/* 103 */ (p0) dp4 r0.___w, r0, c59
/* 104 */ (p0) add r0.___w, r0.wwww, -c46.yyyy
/* 8.0 */ exec
/* 105 */ add r4.xyz_, c52, -r0
/* 106 */ dp3 r4.___w, r4, r4
/* 107 */ rsqc r4.___w, r4.w
/* 108 */ mul r4.xyz_, r4, r4.wwww
/* 109 */ dp3_sat r2, c51, r1
/* 110 */ add r7, r4, c51
/* 8.1 */ exec
/* 111 */ dp3 r7.___w, r7, r7
/* 112 */ rsqc r7.___w, r7.w
/* 113 */ mul r7.xyz_, r7, r7.wwww
/* 114 */ dp3_sat r7, r7, r1
/* 115 */ log r7, r7.x
/* 116 */ mul r7, r7, c0.xxxx
/* 9.0 */ exec
/* 117 */ exp r7, r7.x
/* 118 */ max r7.___w, c12.xxxx, c12.xxxx
/* 119 */ max r2.___w, c12.yyyy, c12.yyyy
/* 120 */ serialize
sge r5, r5, r0.wwww
/* 121 */ dp4 r5, r5, c23.wwww
/* 122 */ sge r6, r6, r0.wwww
/* 9.1 */ exec
/* 123 */ dp4 r6, r6, c23.wwww
/* 124 */ add r5, r5.xxxx, r6.xxxx
/* 125 */ mul r7.___w, r7.wwww, r5.xxxx
/* 126 */ mul r5.xyz_, r5.xyzz, c32.xyzz
/* 127 */ mul r2.xyz_, r2, r5
/* 128 */ mul r7.xyz_, r7, r5
/* 10.0 */ cjmp !b243, L50
/* 10.1 */ exec
/* 129 */ dp3 r3.x___, r4.xyzz, r1.xyzz
/* 130 */ mulsc r3.x___, c12.z, r3.x
/* 131 */ mad r3.xyz_, r1.xyzz, r3.xxxx, -r4.xyzz
/* 132 */ add r5.xyz_, -r0.xyzz, c83.xyzz
/* 133 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 134 */ sqrt r6.__z_, r5.w
/* 11.0 */ exec // PredicateClean=false
/* 135 */ mad_sat r5.___w, -r6.zzzz, c83.wwww, c84.wwww
/* 136 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 137 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 138 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 139 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 11.1 */ cexec b244 // PredicateClean=false
/* 140 */ (p0) dp3 r6.__z_, r5.xyzz, -c85.xyzz
/* 141 */ (p0) add_sat r6.__z_, -c85.wwww, r6.zzzz
/* 142 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 143 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 12.0 */ exec
/* 144 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 145 */ (p0) mad r2.xyz_, r6.zzzz, c84.xyzz, r2
/* 146 */ (p0) exp r6._y__, r6.y
/* 147 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 148 */ (p0) mad r7.xyz_, r6.zzzz, c84.xyzz, r7
/* 12.1 */ cjmp !b245, L50
/* 13.0 */ exec // PredicateClean=false
/* 149 */ add r5.xyz_, -r0.xyzz, c86.xyzz
/* 150 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 151 */ sqrt r6.__z_, r5.w
/* 152 */ mad_sat r5.___w, -r6.zzzz, c86.wwww, c87.wwww
/* 153 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 154 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 13.1 */ exec
/* 155 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 156 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 14.0 */ cexec b246 // PredicateClean=false
/* 157 */ (p0) dp3 r6.__z_, r5.xyzz, -c88.xyzz
/* 158 */ (p0) add_sat r6.__z_, -c88.wwww, r6.zzzz
/* 159 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 160 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 14.1 */ exec
/* 161 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 162 */ (p0) mad r2.xyz_, r6.zzzz, c87.xyzz, r2
/* 163 */ (p0) exp r6._y__, r6.y
/* 164 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 165 */ (p0) mad r7.xyz_, r6.zzzz, c87.xyzz, r7
/* 15.0 */ cjmp !b247, L50
/* 15.1 */ exec // PredicateClean=false
/* 166 */ add r5.xyz_, -r0.xyzz, c89.xyzz
/* 167 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 168 */ sqrt r6.__z_, r5.w
/* 169 */ mad_sat r5.___w, -r6.zzzz, c89.wwww, c90.wwww
/* 170 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 171 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 16.0 */ exec
/* 172 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 173 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 16.1 */ cexec b248 // PredicateClean=false
/* 174 */ (p0) dp3 r6.__z_, r5.xyzz, -c91.xyzz
/* 175 */ (p0) add_sat r6.__z_, -c91.wwww, r6.zzzz
/* 176 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 177 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 17.0 */ exec
/* 178 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 179 */ (p0) mad r2.xyz_, r6.zzzz, c90.xyzz, r2
/* 180 */ (p0) exp r6._y__, r6.y
/* 181 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 182 */ (p0) mad r7.xyz_, r6.zzzz, c90.xyzz, r7
/* 17.1 */ cjmp !b249, L50
/* 18.0 */ exec // PredicateClean=false
/* 183 */ add r5.xyz_, -r0.xyzz, c92.xyzz
/* 184 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 185 */ sqrt r6.__z_, r5.w
/* 186 */ mad_sat r5.___w, -r6.zzzz, c92.wwww, c93.wwww
/* 187 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 188 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 18.1 */ exec
/* 189 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 190 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 19.0 */ cexec b250 // PredicateClean=false
/* 191 */ (p0) dp3 r6.__z_, r5.xyzz, -c94.xyzz
/* 192 */ (p0) add_sat r6.__z_, -c94.wwww, r6.zzzz
/* 193 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 194 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 19.1 */ exec
/* 195 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 196 */ (p0) mad r2.xyz_, r6.zzzz, c93.xyzz, r2
/* 197 */ (p0) exp r6._y__, r6.y
/* 198 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 199 */ (p0) mad r7.xyz_, r6.zzzz, c93.xyzz, r7
/* 20.0 */ cjmp !b251, L50
/* 20.1 */ exec // PredicateClean=false
/* 200 */ add r5.xyz_, -r0.xyzz, c95.xyzz
/* 201 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 202 */ sqrt r6.__z_, r5.w
/* 203 */ mad_sat r5.___w, -r6.zzzz, c95.wwww, c96.wwww
/* 204 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 205 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 21.0 */ exec
/* 206 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 207 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 21.1 */ cexec b252 // PredicateClean=false
/* 208 */ (p0) dp3 r6.__z_, r5.xyzz, -c97.xyzz
/* 209 */ (p0) add_sat r6.__z_, -c97.wwww, r6.zzzz
/* 210 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 211 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 22.0 */ exec
/* 212 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 213 */ (p0) mad r2.xyz_, r6.zzzz, c96.xyzz, r2
/* 214 */ (p0) exp r6._y__, r6.y
/* 215 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 216 */ (p0) mad r7.xyz_, r6.zzzz, c96.xyzz, r7
/* 22.1 */ cjmp !b253, L50
/* 23.0 */ exec // PredicateClean=false
/* 217 */ add r5.xyz_, -r0.xyzz, c98.xyzz
/* 218 */ dp3 r5.___w, r5.xyzz, r5.xyzz
+ maxs r6.___w, c12.xx
/* 219 */ sqrt r6.__z_, r5.w
/* 220 */ mad_sat r5.___w, -r6.zzzz, c98.wwww, c99.wwww
/* 221 */ setp_gt_push r6.___w, r6.wwww, r5.wwww
+ rcp r6.__z_, r6.z
/* 222 */ (p0) mul r5.xyz_, r5.xyzz, r6.zzzz
/* 23.1 */ exec
/* 223 */ (p0) dp3_sat r6._y__, r5.xyzz, r3.xyzz
/* 224 */ (p0) dp3 r6.x___, r5.xyzz, r1.xyzz
+ (p0) log r6._y__, r6.y
/* 24.0 */ cexec b254 // PredicateClean=false
/* 225 */ (p0) dp3 r6.__z_, r5.xyzz, -c100.xyzz
/* 226 */ (p0) add_sat r6.__z_, -c100.wwww, r6.zzzz
/* 227 */ (p0) mulsc_sat r6.__z_, c12.w, r6.z
/* 228 */ setp_gt_push r6.___w, r6.wwww, r6.zzzz
+ muls_prev r5.___w, r5.w
/* 24.1 */ exec
/* 229 */ (p0) mul_sat r6.__z_, r6.xxxx, r5.wwww
+ (p0) mulsc r6._y__, c0.x, r6.y
/* 230 */ (p0) mad r2.xyz_, r6.zzzz, c99.xyzz, r2
/* 231 */ (p0) exp r6._y__, r6.y
/* 232 */ (p0) mul r6.__z_, r5.wwww, r6.yyyy
/* 233 */ (p0) mad r7.xyz_, r6.zzzz, c99.xyzz, r7
label L50
/* 25.0 */ exec
/* 234 */ mul r7.xyz_, r7, c5
/* 235 */ dp3_sat r1.___w, c82, r1
/* 236 */ mad r2.xyz_, r1.wwww, c81, r2
/* 237 */ max r3, c6, c6
/* 238 */ dp3 r5, r1, r4
/* 239 */ add r5.xyz_, r5, r5
/* 25.1 */ exec
/* 240 */ mad r5.xyz_, -r5, r4, r1
/* 241 */ dp3 r4.x___, r5, c53
/* 242 */ dp3 r4._y__, r5, c54
/* 243 */ mad r4.xy__, r4.xyyy, c76.xxxx, c76.yyyy
/* 244 */ tfetch2D r4, r4.xy, tf0
/* 245 */ serialize
mul r4.xyz_, r4.xyzz, c5.xyzz
/* 26.0 */ exec
/* 246 */ mad r7.xyz_, c7.xxxx, r4.xyzz, r7.xyzz
/* 247 */ max r1.___w, c12.yyyy, c12.yyyy
/* 248 */ dp4 r0.x___, r1.wyzx, c35
/* 249 */ dp4 r0._y__, r1.wyzx, c37
/* 250 */ dp4 r0.__z_, r1.wyzx, c39
/* 251 */ add r2.xyz_, r2.xyzz, r0.xyzz
/* 26.1 */ alloc colors
/* 27.0 */ cexec !b129
/* 252 */ max r2.___w, c8.wwww, c8.wwww
/* 27.1 */ cexec b129
/* 253 */ mul r3.xyz_, r3.xyzz, c45.xyzz
/* 254 */ max r3.___w, c45.wwww, c45.wwww
/* 28.0 */ exec
/* 255 */ mad r0, r3, r2, r7
/* 28.1 */ cexece b130
/* 256 */ mad r1.xyz_, r0, c45, c12.yyyy
/* 257 */ mul r0.xyz_, r0, c77.xxxx
+ rcpc r1.x___, r1.x
/* 258 */ mul r0, r0, c45
+ rcpc r1._y__, r1.y
/* 259 */ rcpc r1.__z_, r1.z
/* 260 */ mul oC0.xyz_, r0, r1
+ maxs oC0.___w, r0.ww
/* 29.0 */ cexece !b130
/* 261 */ max oC0, r0, r0
/* 29.1 */ exece
Aaand fixed the loading screen. 2_10_10_10 is actually 10_10_10_2.
Note: In the top half, there is a pixel-wide black line on the right edge. This appears to be because the depth clear is missing this edge (precision errors maybe?)
I got this far. my xbox one controller doesn't seem to work to push A.
What graphics card do you have Atvriders? On my radeon hd 7700 it crashes after intro videos.
I have the GTX 1080
Please try to spam start (it’s mapped to X button on keyboard) as soon as the rare logo starts. Someone was able to get to ingame menu by this. PS: I attached debugger to xenia and crash on my computer is caused by invalid or somehow corrupted shader if it helps. Sometimes i can see that grey screen like BSoD38 behind jiggies.
It's somehow working in benvanik/xenia@0cff9169. Some textures are correctly placed, but it runs for ~2 fps
and does not appear to display any text or image. I am trying to run it again now, so i can document it and take some screenshots.
IT'S HAPPENING Sorry image wasn't captured, but it somehow rendered main menu 3d bg. And then my computer crashed on VIDEO_DXGKRNL_FATAL_ERROR.
Does it really work now!
Yes, but my radeon 7700 isn't the best, which is probably cause of those BSODs (i was able to create new save and it played intro sequence for 5 seconds and then BSOD) EDIT: Recorded one video showing intro sequence. After 3 minutes, i got very very weird images on screen (recorded video and i am currently uncorrupting it) and after one minute my computer VIDEO_DXGKRNL_FATAL_ERRORed EDIT: ****! The mp4 is so corrupted, that even VLC cannot play it. Do you know how to uncorrupt mp4 file? For now i recorded another test run in avi, but it didn't show that funny stuff on screen :( EDIT: this is that another testrun. Too bad the first testrun is so corrupted. https://youtu.be/mGyYNm70YNE
Fonts
Font (originally 1920x1920)
The issue is that we're flipping color channels (k_4_4_4_4
) around, and the font embeds different characters on different channels.
Fixed as of xenia-project/xenia@f54ac240a49c91d7c6d65acbf0ab51e69b7c5f19
Vertex Shader
// /* 0.0 */ exec
// /* 3 */ vfetch_full r0._xy1, r0.x, vf0, DataFormat=FMT_32_32_FLOAT, Stride=6, Signed=true, NumFormat=integer, PrefetchCount=6
// /* 4 */ vfetch_mini r1.xy__, Offset=2, DataFormat=FMT_32_32_FLOAT, Signed=true, NumFormat=integer
// /* 5 */ vfetch_mini r1.__xy, Offset=4, DataFormat=FMT_32_32_FLOAT, Signed=true, NumFormat=integer
// /* 0.1 */ alloc position
// /* 1.0 */ exec
// /* 6 */ mad r2.xy__, r0.wwww, c6.xyyy, c255.yyyy
// /* 7 */ mad r0.xy__, r0.yyyy, c3.xyyy, r2.xyyy
// /* 8 */ mad r0.xy__, r0.zzzz, c4.xyyy, r0.xyyy
// /* 9 */ mul r0.xy__, r0.yxxx, c0.yxxx
// /* 10 */ add oPos.0y01, -r0.xxxx, c255.xxxx
// + subsc oPos.x___, -c255.x, -r0.y
// /* 1.1 */ alloc interpolators
// /* 2.0 */ exece
// /* 11 */ mul o0.xy__, r1.xyyy, c2.xyyy
// /* 12 */ max o2, c1, c1
// /* 13 */ mul o1.xy__, r1.zwww, c2.zwww
// /* 2.1 */ cnop
Pixel Shader
/* 0.0 */ exec
/* 9 */ add r0.___w, c1.xxxx, c1.xxxx
+ maxs r1.__z_, r0.xx
/* 10 */ add r6.x___, r0.wwww, r0.xxxx
+ maxs r2._, -r0.ww
/* 11 */ add r5._y__, r0.wwww, r0.yyyy
+ adds_prev r0.__z_, r0.y
/* 12 */ add r3.x_z_, -r0.wwww, r0.xyyy
+ maxs r5.___w, r5.yy
/* 13 */ max r5.x___, r3.xxxx, r3.xxxx
+ maxs r5.__z_, r6.xx
/* 14 */ dp3 r7.x___, c3.zyxx, c255.yyyy
+ maxs r3._y__, r0.yy
/* 0.1 */ exec
/* 15 */ max r6._yz_, r0.yyzz, r0.yyzz
+ maxs r1.___w, r5.yy
/* 16 */ tfetch2D r4.xyz_, r1.xy, tf1
/* 17 */ tfetch2D r8, r6.xy, tf0
/* 18 */ tfetch2D r9, r5.zw, tf0
/* 19 */ tfetch2D r10, r6.xz, tf0
/* 20 */ tfetch2D r11, r3.xy, tf0
/* 1.0 */ exec
/* 21 */ tfetch2D r12, r5.xy, tf0
/* 22 */ tfetch2D r3, r3.xz, tf0
/* 23 */ tfetch2D r13, r0.xy, tf0
/* 24 */ tfetch2D r14, r1.zw, tf0
/* 25 */ tfetch2D r1, r0.xz, tf0
/* 26 */ serialize
sgt r0.___w, c1.zzzz, c255.xxxx
/* 1.1 */ exec
/* 27 */ dp3 r5.x___, c4.zyxx, c255.yyyy
/* 28 */ dp3 r6.x___, c2.zyxx, c255.yyyy
/* 29 */ dp4 r1.x___, r1.wzxy, c0.wzxy
/* 30 */ dp4 r1._y__, r14.wzxy, c0.wzxy
/* 31 */ dp4 r1.__z_, r13.wzxy, c0.wzxy
/* 32 */ dp4 r3.x___, r3.wzxy, c0.wzxy
/* 2.0 */ exec
/* 33 */ dp4 r3._y__, r12.wzxy, c0.wzxy
/* 34 */ dp4 r3.__z_, r11.wzxy, c0.wzxy
/* 35 */ dp4 r0._y__, r10.wzxy, c0.wzxy
/* 36 */ dp4 r0.x___, r9.wzxy, c0.wzxy
/* 37 */ dp4 r0.__z_, r8.wzxy, c0.wzxy
/* 38 */ add r4.xyz_, r4.zyxx, -r2.zyxx
/* 2.1 */ exec
/* 39 */ mad r4.xyz_, r4.zyxx, c1.yyyy, r2.xyzz
/* 40 */ mul r7._yzw, r3.xxyz, c2.xxzy
+ mulsc r5._y__, c4.x, r0.y
/* 41 */ mul r6._yzw, r1.xxyz, c3.xxzy
+ mulsc r5.__z_, c4.z, r0.x
/* 42 */ add r6, r7.xzyw, r6.xzyw
+ mulsc r5.___w, c4.y, r0.z
/* 43 */ add r5, r6, r5.xzyw
/* 44 */ dp3 r2.__z_, r5.yzww, c255.yyyy
+ rcp r2.x___, r5.x
/* 3.0 */ exec // PredicateClean=false
/* 45 */ mul r2.__z_, r2.zzzz, r2.xxxx
/* 46 */ max_sat r2.x___, r2.zzzz, r2.zzzz
+ setp_ne r2._, r0.w
/* 3.1 */ (!p0) jmp L10
/* 4.0 */ exec // PredicateClean=false
/* 47 */ sgt r0.x___, r3.xxxx, r1.zzzz
/* 48 */ setp_ne r2._, r0.x
/* 49 */ (p0) mad r2.__z_, r3.xxxx, c5.wwww, r2.xxxx
/* 50 */ (p0) subsc r0.x___, c255.y, r2.x
/* 51 */ (p0) mul r0.xyz_, r0.xxxx, c5.xyzz
/* 52 */ (p0) mad r4.xyz_, r2.xxxx, r4.xyzz, r0.xyzz
/* 4.1 */ jmp L15
label L10
/* 5.0 */ exec // PredicateClean=false
/* 53 */ sgt r0.___w, c1.wwww, c255.xxxx
/* 54 */ setp_ne r2._, r0.w
/* 5.1 */ (!p0) jmp L15
/* 6.0 */ exec
/* 55 */ max r2._y__, r1.xxxx, r3.xxxx
/* 56 */ max r2._y__, r0.yyyy, r2.yyyy
/* 57 */ max r2._y__, r3.zzzz, r2.yyyy
/* 58 */ max r2._y__, r0.zzzz, r2.yyyy
/* 59 */ max r2._y__, r3.yyyy, r2.yyyy
/* 60 */ max r2._y__, r1.yyyy, r2.yyyy
/* 6.1 */ exec // PredicateClean=false
/* 61 */ max r2._y__, r0.xxxx, r2.yyyy
/* 62 */ sgt r0.x___, r2.yyyy, r1.zzzz
/* 63 */ setp_ne r2._, r0.x
/* 64 */ (p0) mad r2.__z_, r2.yyyy, c5.wwww, r2.xxxx
/* 65 */ (p0) subsc r0.x___, c255.y, r2.x
/* 66 */ (p0) mul r0.xyz_, r0.xxxx, c5.xyzz
/* 7.0 */ (p0) exec
/* 67 */ (p0) mad r4.xyz_, r2.xxxx, r4.xyzz, r0.xyzz
label L15
/* 7.1 */ alloc colors
/* 8.0 */ exece
/* 68 */ mul r4.___w, r2.zzzz, r2.wwww
/* 69 */ max oC0, r4, r4
/* 8.1 */ cnop
The game throws a "graphics device lost" error on me in the loading screen before the title screen loads. The build is 9a158963.
The log file reveals that the TextureCache staging buffer is too small. xenia.log
The game is being made playable, there are texture errors to review yet! Water for example, and in some worlds, appear either white or yellow The same is already a breakthrough for this game!
PC AMD: FX 8350 and R9 270X :D
I can't manage to get beyond the title screen, as the game crashes due to the loss of the graphics device.
How on earth did you manage to get to actual gameplay though? The game runs at about 1 frame every 10 seconds for me. I'm using an i5 3570k and a GTX 970.
Patience and an xbox 360 joystick hahaha Ami also goes to 1 FPS @CatoNator