Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4D5307ED - Banjo Kazooie: Nuts & Bolts #49

Open
DrChat opened this issue Jun 22, 2015 · 79 comments
Open

4D5307ED - Banjo Kazooie: Nuts & Bolts #49

DrChat opened this issue Jun 22, 2015 · 79 comments
Labels
gpu-slow splitscreen-working Split-screen local multiplayer is functional on Xenia in the title. state-gameplay Title has functional gameplay. tech-middleware-havok Title uses Havok middleware.

Comments

@DrChat
Copy link
Member

DrChat commented Jun 22, 2015

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

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

Screenshots:


@DrChat DrChat added the state-nothing Title is entirely nonfunctional. label Jun 22, 2015
@DrChat DrChat added gpu-shader-errors Graphics shader issues, such as things being too bright, dark, or the wrong color. state-intro Title has functional intro (logos, video) before any menu screens. and removed state-nothing Title is entirely nonfunctional. labels Dec 17, 2015
@krzysztof860
Copy link

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

@kobyaustin1
Copy link

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

@CatoNator
Copy link

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.

@DrChat
Copy link
Member Author

DrChat commented May 1, 2016

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

@SakataGintokiYT

This comment was marked as spam.

@CatoNator
Copy link

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

@CatoNator
Copy link

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?

@xXHardGriefXx
Copy link

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.

@CatoNator
Copy link

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.

@Atvriders
Copy link

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

@BSoD38
Copy link

BSoD38 commented Mar 13, 2017

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.

@MiniGrief
Copy link

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

@jfarre20
Copy link

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

@sentriegun16
Copy link

sentriegun16 commented Feb 12, 2018

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

@DrChat
Copy link
Member Author

DrChat commented Feb 20, 2018

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
Copy link
Member Author

DrChat commented Feb 21, 2018

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
Copy link
Member Author

DrChat commented Feb 23, 2018

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 DrChat added state-gameplay Title has functional gameplay. and removed state-intro Title has functional intro (logos, video) before any menu screens. labels Feb 28, 2018
@Atvriders
Copy link

image

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

@hubslave
Copy link

hubslave commented Apr 6, 2018

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

@Atvriders
Copy link

I have the GTX 1080

@FoxHunter267

This comment has been minimized.

@Stryxus
Copy link

Stryxus commented Jul 28, 2020

@FoxHunter267 legally.

@Tylertron1998

This comment was marked as off-topic.

@andrewspalato

This comment was marked as off-topic.

@Tylertron1998

This comment was marked as off-topic.

@Spokehedz
Copy link

I get better than 10FPS on my RX580 and FX8130... The opening sequence was 30fps for most of it, and Showdown Town is 18-22ish.

@Tylertron1998

This comment was marked as off-topic.

@mARvOEoUS
Copy link

mARvOEoUS commented Dec 20, 2020

Using the 3rd of December Canary build, I'm getting average 50 fps and near 60 with vsync off staring at a wall then staring at everthing else while not moving the camera getting 20fps average
nb

bn

i7-8700K running at 3.7Ghz
EVGA FTW3 1080ti at 1961mhz GPU Clock and 5508mhz Memory Clock
32GB (4x4) DDR4 Ram running at 2400mhz

@andrewspalato
Copy link

@Tylertron1998 I actually have Banjo Kazooie Nuts and Bolts title update 3 installed with xenia, which may help with performance just a little.

@mARvOEoUS

This comment has been minimized.

@andrewspalato
Copy link

andrewspalato commented Dec 20, 2020

@mARvOEoUS This works: You have to source the title updates yourself. Google can help you out though ;)
https://youtu.be/6EyaYWuml-c?t=301

EDIT: I think only Xenia Canary version currently supports title updates.

@mARvOEoUS
Copy link

mARvOEoUS commented Dec 20, 2020

@andrewspalato
Awesome, the update gave a tiny performance boost. Staring at wall now is average 60fps and 74fps average if zoomed into Banjo and before it was 50fps. Staring at "everything else" now average 23fps and sometimes 30fps and less stuttering. Good stuff :)

@mARvOEoUS
Copy link

The game starts to corrupt while after some playtime: textures start to become "missing no", models start spazzing and rarely cause crashes

@andrewspalato
Copy link

Me too, some parts like propellers/blocks etc on vehicles become partly corrupted and glitchy when leaving the training ground with a loaded vehicle. Loading the vehicle from inside a world doesn't cause these glitches. UI button sprites can glitch out from there also.

@Ch1pless
Copy link

Ch1pless commented Apr 1, 2021

On running the first time, experiences extreme stuttering issues. From looking at the log, appears to be related to loading textures. Warnings that repeated in multiple locations to assist:

  • F8000004 GPU: Write to unknown register (At beginning of launch)
  • F8000004 Texture fetch constant has "invalid" type! (Through most of the log)
    The game was ran from bootup to menu screen.
    xenia_log.zip

@jarodhine
Copy link

jarodhine commented May 26, 2021

As of xenia-project/xenia@1a228289 Banjo Kazooie Nuts & Bolts is fully playable to 100% completion excluding DLC and Stop N Swap with minimal crashes and errors on my system.

CPU: Stock Ryzen 3600
GPU: Nvidia 2060
Memory: 16 GB 3600 MHz
OS: Windows 10 Version 10.0.19042 Build 19042

Errors:
Fps dips to 20 facing busy sections of showdown town.
Vehicle part flickering and vertex minor vertex explosion occasionally when exiting Mumbo Motors, Fixed by reloading vehicle in world.
A total of 5 crashes took place during my 21 hour playtime.

Save Folder:
4D5307ED.zip

Log File:
xenia_log.zip

BanjoKazooieNandB

@Spokehedz
Copy link

Thanks for that save, really nails home the "works 100%" aspect.

@xZaino
Copy link

xZaino commented Jun 5, 2021

Okay, so I got Banjo Kazooie Nuts And Bolts working. I figured out what I had to do and it I launched the game. But, the game save didn’t work. Or the vehicles. When I pressed Y on the main menu screen to select a saved game, it told me the game file was corrupt and I needed to overwrite the game files to play. I found out that the vehicles were corrupt when I put in a 100 % game save into the documents folder and launched the game to see the vehicles. Mumbo told me that the vehicles were Corrupt lol. I think this may be because I’m downloading it from the cloud drive into the flash drive. I don’t know if it will change if I download it locally on the Xbox 360 drive and maybe see if it would work. Any thoughts?

@ZolaKluke
Copy link

Has working splitscreen
image

Labels:

splitscreen-working

@Triang3l Triang3l added the splitscreen-working Split-screen local multiplayer is functional on Xenia in the title. label Aug 9, 2021
@ChargingTurnip
Copy link

For some reason, this spot in Nutty Acres is not rendered, unlike on console. Not sure if this is actually something worthy enough to be posted here, but I just thought I'd give it a mention.
image

@xenia-project xenia-project deleted a comment from Wizerdz Jan 21, 2022
@xenia-project xenia-project deleted a comment from OneguyofOR Mar 1, 2022
@TheAshmanCometh
Copy link

The game has no major visual bugs for me on Master, but Canary has garbled squares on a parked vehicle, the minimap, and all over the screen during vehicle construction. The ground texture in Nutty Acres also flickers rapidly.

@goopstack
Copy link

was able to fully play through the game on canary without too many major issues. occasional white square in mumbos motors, some HUD not showing up at times, and a couple crashes in my 8 hours of game time. Definitely playable with the patch. I had consistent 60fps with vsync on (few seconds of slowdown when entering a world for the first time, re-entering did not slow down after that) with resolution x and y set to 2. my build:
RTX 3060ti
i7-9700k
32 GB RAM

save file
4D5307ED.zip

@samcarsonx
Copy link

Game normally runs almost perfectly. However, changing resolution x and y to 2 causes special effects (eg glow) to appear corrupt for me, and the characters' heads in dialogue boxes flicker. I understand that there is a warning regarding visual bugs with changing the resolution in the config file, but it seems other people have no issues so maybe it's worth noting.

My build: RTX 3070, i7 12700F, 32GB DDR4 RAM, 1TB NVMe SSD
Running Xenia v1.0.2808

Selected menu item:
banjo1
Minimap:
banjo2
Nearby object that can be picked up:
banjo5

@OneguyofOR
Copy link

OneguyofOR commented Feb 8, 2024 via email

@Enterprise12nx01
Copy link

Enterprise12nx01 commented May 19, 2024

Game normally runs almost perfectly. However, changing resolution x and y to 2 causes special effects (eg glow) to appear corrupt for me, and the characters' heads in dialogue boxes flicker. I understand that there is a warning regarding visual bugs with changing the resolution in the config file, but it seems other people have no issues so maybe it's worth noting.

My build: RTX 3070, i7 12700F, 32GB DDR4 RAM, 1TB NVMe SSD Running Xenia v1.0.2808

Selected menu item: banjo1 Minimap: banjo2 Nearby object that can be picked up: banjo5

i also had this issue currently, lots of stutter 5800x3d and 7900 xtx
how can i fix the stutter? any movement it freezes up like crazy. seems to be shader related.
after i went around spawn it stopped happening until i went to new areas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gpu-slow splitscreen-working Split-screen local multiplayer is functional on Xenia in the title. state-gameplay Title has functional gameplay. tech-middleware-havok Title uses Havok middleware.
Projects
None yet
Development

No branches or pull requests