game-compatibility icon indicating copy to clipboard operation
game-compatibility copied to clipboard

4D5307ED - Banjo Kazooie: Nuts & Bolts

Open DrChat opened this issue 9 years ago • 79 comments

Tested with: xenia-project/xenia@08acb6b Marketplace

Plays through the intros fine, then TDRs in the loading screen and crashes.

Screenshots:

DrChat avatar Jun 22 '15 21:06 DrChat

Also state-intro, but logos are displayed correctly. After displaying second logo Xenia crashes and memory leak occurs. memleak Log - http://www1.zippyshare.com/v/RvC76mOy/file.html 11,5MB after unpacking. Screens: 1st logo 2nd logo

krzysztof860 avatar Jan 14 '16 18:01 krzysztof860

mine plays music that is past rare logo but it freezes my computer so it didnt load

kobyaustin1 avatar Mar 13 '16 15:03 kobyaustin1

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.

CatoNator avatar May 01 '16 12:05 CatoNator

Yeah - it gets in-game fine. Just give it about an hour to compile shaders (not kidding!)

DrChat avatar May 01 '16 15:05 DrChat

Do you already have compiled shaders ?

SakataGintokiYT avatar May 02 '16 08:05 SakataGintokiYT

Are precompiled shaders even possible? I don't think they are.

CatoNator avatar May 02 '16 18:05 CatoNator

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?

CatoNator avatar May 02 '16 20:05 CatoNator

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.

xXHardGriefXx avatar May 06 '16 12:05 xXHardGriefXx

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.

CatoNator avatar Dec 17 '16 11:12 CatoNator

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

Atvriders avatar Mar 09 '17 06:03 Atvriders

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 : pic1

pic2

(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 : pic2

Then I got errors again after about 5 minutes of waiting, and decided to close the emulator.

BSoD38 avatar Mar 13 '17 17:03 BSoD38

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

MiniGrief avatar Aug 08 '17 11:08 MiniGrief

I was able to get in game by spamming A at the menu

image

Runs at about 0.2fps and there isn't any visible 3d - but its progress :)

jfarre20 avatar Aug 19 '17 20:08 jfarre20

57d84ce805888dc6f08c4ff5c30a8975 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

sentriegun16 avatar Feb 12 '18 03:02 sentriegun16

Some textures are being uploaded incorrectly. Possibly not handling mips correctly?

  • I see textures where mip_address == address

BC1_RGBA_UNORM_BLOCK b

BC5_UNORM_BLOCK c

DrChat avatar Feb 20 '18 00:02 DrChat

Loading screen emulation isn't accurate enough.

Xenia

nab

Xbox 360

download 1

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 

DrChat avatar Feb 21 '18 03:02 DrChat

Aaand fixed the loading screen. 2_10_10_10 is actually 10_10_10_2. a

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?)

DrChat avatar Feb 23 '18 00:02 DrChat

image

I got this far. my xbox one controller doesn't seem to work to push A.

Atvriders avatar Mar 02 '18 05:03 Atvriders

What graphics card do you have Atvriders? On my radeon hd 7700 it crashes after intro videos.

hubslave avatar Apr 06 '18 08:04 hubslave

I have the GTX 1080

Atvriders avatar Apr 10 '18 05:04 Atvriders

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.

hubslave avatar Apr 11 '18 09:04 hubslave

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.

hubslave avatar Apr 17 '18 14:04 hubslave

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.

hubslave avatar Apr 17 '18 14:04 hubslave

Does it really work now!

Atvriders avatar Apr 17 '18 14:04 Atvriders

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

hubslave avatar Apr 17 '18 16:04 hubslave

Fonts

b

Font (originally 1920x1920)

a

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

DrChat avatar May 03 '18 23:05 DrChat

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

CatoNator avatar May 06 '18 12:05 CatoNator

bk 12 terror wow bk 10 bk 1

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

xNano01x avatar May 24 '18 23:05 xNano01x

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.

CatoNator avatar May 28 '18 16:05 CatoNator

Patience and an xbox 360 joystick hahaha Ami also goes to 1 FPS @CatoNator

xNano01x avatar May 28 '18 21:05 xNano01x