In order to edit this wiki, you must register and verify your account.
Bayonetta: Difference between revisions
No edit summary |
|||
Line 214: | Line 214: | ||
{{{testsection|1.21}} | {{{testsection|1.21}} | ||
{{testline|version=1.21.1b|OS=Windows 10|region=EU|CPU=AMD Ryzen 5 3600|GPU=NVidia GTX 1660 Super 6 GB|user=Bergory55|FPS=60|rating=Playable|notes=Flawless combat performance, lighting effects and such. Major visual glitches during cutscenes. Using Vulkan or OpenGL has no meaningful impact on performance, but the cutscenes audio seemed to de-synchronize more often with Vulkan.}} | {{testline|version=1.21.1b|OS=Windows 10|region=EU|CPU=AMD Ryzen 5 3600|GPU=NVidia GTX 1660 Super 6 GB|user=Bergory55|FPS=60|rating=Playable|notes=Flawless combat performance, lighting effects and such. Major visual glitches during cutscenes. Using Vulkan or OpenGL has no meaningful impact on performance, but the cutscenes audio seemed to de-synchronize more often with Vulkan.}} | ||
{{testend}} | |||
{{{testsection|2.0}} | |||
{{testline|version=2.0-86|OS=Linux (Fedora 40)|region=EU|CPU=Intel Core i5-4670K (OC 4.3GHz)|GPU=Nvidia GTX 1060 6 GB|user=MaroonHatHacker|FPS=60|rating=Playable|notes=Gameplay looks and plays great. Cutscenes have intermittent (but frequent) graphical glitches, and sometimes will even refuse to play, displaying a white screen instead. I didn't have issues with audio desyncing. Tested on Vulkan.}} | |||
{{testend}} | {{testend}} |
Latest revision as of 00:57, 19 June 2024
Bayonetta | |
---|---|
Developer(s) | PlatinumGames |
Publisher(s) | Nintendo |
Series | |
Release date(s) | JP September 20, 2014 NA October 24, 2014 EU October 24, 2014 AUS October 25, 2014 |
Genre(s) | |
Mode(s) | |
Input methods | GamePad |
Compatibility | Playable |
GameIDs | Missing IDs |
See also... |
Bayonetta is a third-person action game developed by PlatinumGames and published first by Sega for Xbox 360 and PlayStation 3, and later Nintendo for Wii U. The Wii U version was released alongside its sequel, Bayonetta 2, in September 2014 in Japan and October 2014 in North America and Europe.
Known Issues
Entering the Save/Load Game interface crashes Cemu
- Autosave functionality is unaffected by this error. Game progress can be resumed after exiting the game by selecting Continue from the Main menu.
Lighting is excessively bright
- See configuration below.
Cutscene audio and video is not synchronized
- Setting SpeedHack to 0.5 with the external program Cheat Engine can synchronize cutscene playback.
- The gallery can be previewed when it is first unlocked. Some selections in the gallery do not display correctly. Attempting to re-access the gallery after the first preview prompts this issue.
Loading Issues
- As of CEMU V1.11 the game will hang and slowly leak memory while loading. Tester let it run for an hour and it used 6 GB of RAM with no changes.
Configuration
To reduce the bloom lighting effect, first create a Graphics Pack for Bayonetta. Follow this tutorial. You will need to supply your rules.txt
file with the titleId for your game version. The following example can be used for all 3 game region titleIds:
titleIds = 5000010157f00, 5000010157e00, 500001014db00
Next create a new text file named c9b60c9de9de5e03_0000000000000079_ps_source.txt
. Copy the following into the file:
#version 400 #extension GL_ARB_texture_gather : enable // shader c9b60c9de9de5e03 const float bloomFactor = 0.99; // bloom strength uniform ivec4 uf_remappedPS[1]; uniform sampler2D textureUnitPS1;// Tex1 addr 0xf4e11800 res 320x176x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 0 border: 0 in vec4 passParameter0; layout(location = 0) out vec4 passPixelColor0; int clampFI32(int v) { if( v == 0x7FFFFFFF ) return floatBitsToInt(1.0); else if( v == 0xFFFFFFFF ) return floatBitsToInt(0.0); return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); } float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } void main() { ivec4 R0i = ivec4(0); ivec4 R1i = ivec4(0); ivec4 R2i = ivec4(0); ivec4 R3i = ivec4(0); ivec4 R4i = ivec4(0); ivec4 R5i = ivec4(0); ivec4 R123i = ivec4(0); int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; ivec4 PV0i = ivec4(0), PV1i = ivec4(0); int PS0i = 0, PS1i = 0; ivec4 tempi = ivec4(0); float tempResultf; int tempResulti; ivec4 ARi = ivec4(0); bool predResult = true; int loopStuckCounter = 0; vec3 cubeMapSTM; int cubeMapFaceId; R0i = floatBitsToInt(passParameter0); R4i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(((R0i.xy)).xyzw)*bloomFactor)-0.02); // 0 R1i.x = R0i.x; PV0i.x = R1i.x; R1i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3c400000)); PV0i.y = R1i.y; R2i.z = R0i.x; PV0i.z = R2i.z; R5i.w = uf_remappedPS[0].w; PV0i.w = R5i.w; R2i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(0x3bc00000)); PS0i = R2i.y; // 1 R3i.x = R0i.x; PV1i.x = R3i.x; R3i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(0x3c400000))); PV1i.y = R3i.y; R0i.z = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(0x3bc00000))); PV1i.z = R0i.z; R1i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.xy)).xyzw); R2i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zy)).xyzw); R3i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R3i.xy)).xyzw); R0i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xz)).xyzw); // 0 R123i.x = floatBitsToInt((intBitsToFloat(R1i.w) * intBitsToFloat(0x3ee66666) + intBitsToFloat(R4i.w))); PV0i.x = R123i.x; R123i.y = floatBitsToInt((intBitsToFloat(R1i.x) * intBitsToFloat(0x3ee66666) + intBitsToFloat(R4i.x))); PV0i.y = R123i.y; R123i.z = floatBitsToInt((intBitsToFloat(R1i.z) * intBitsToFloat(0x3ee66666) + intBitsToFloat(R4i.z))); PV0i.z = R123i.z; R123i.w = floatBitsToInt((intBitsToFloat(R1i.y) * intBitsToFloat(0x3ee66666) + intBitsToFloat(R4i.y))); PV0i.w = R123i.w; // 1 R123i.x = floatBitsToInt((intBitsToFloat(R2i.w) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.x))); PV1i.x = R123i.x; R123i.y = floatBitsToInt((intBitsToFloat(R2i.z) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.z))); PV1i.y = R123i.y; R123i.z = floatBitsToInt((intBitsToFloat(R2i.y) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.w))); PV1i.z = R123i.z; R123i.w = floatBitsToInt((intBitsToFloat(R2i.x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.y))); PV1i.w = R123i.w; // 2 R123i.x = floatBitsToInt((intBitsToFloat(R3i.z) * intBitsToFloat(0x3ee66666) + intBitsToFloat(PV1i.y))); PV0i.x = R123i.x; R123i.y = floatBitsToInt((intBitsToFloat(R3i.w) * intBitsToFloat(0x3ee66666) + intBitsToFloat(PV1i.x))); PV0i.y = R123i.y; R123i.z = floatBitsToInt((intBitsToFloat(R3i.y) * intBitsToFloat(0x3ee66666) + intBitsToFloat(PV1i.z))); PV0i.z = R123i.z; R123i.w = floatBitsToInt((intBitsToFloat(R3i.x) * intBitsToFloat(0x3ee66666) + intBitsToFloat(PV1i.w))); PV0i.w = R123i.w; // 3 R123i.x = floatBitsToInt((intBitsToFloat(R0i.z) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.x))); PV1i.x = R123i.x; R123i.y = floatBitsToInt((intBitsToFloat(R0i.y) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.z))); PV1i.y = R123i.y; R123i.z = floatBitsToInt((intBitsToFloat(R0i.x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.w))); PV1i.z = R123i.z; R123i.w = floatBitsToInt((intBitsToFloat(R0i.w) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(PV0i.y))); PV1i.w = R123i.w; // 4 PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(0x3e924925))); PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(0x3e924925))); PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(0x3e924925))); PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(0x3e924925))); // 5 PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.w))); PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.w))); PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.w))); // 6 R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(uf_remappedPS[0].x))); PV0i.x = R5i.x; R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[0].y))); PV0i.y = R5i.y; R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[0].z))); PV0i.z = R5i.z; // export passPixelColor0 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w)); }
Place this file in the new graphic pack folder along with the rules.txt
file, and run Cemu. In the Cemu interface, go to Options
-> Graphic Packs
and enable the graphic pack you created. If successful, the excessively bright lighting now should be dimmed to an appropriate level.
- OpenGL api recommended as of Cemu 1.17.0d
Gameplay Videos
Testing
Testing | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
- Pages using DynamicPageList3 parser function
- PlatinumGames (Developer)
- Nintendo (Publisher)
- Japan (Release region)
- North America (Release region)
- Europe (Release region)
- Australia (Release region)
- 2014 (Initial release year)
- Single-player only (Game mode)
- 1 (Players supported)
- GamePad (Input supported)
- Playable (Rating)
- List of games
- Tested on (Release): 1.4.0c
- Tested on (Release): 1.4.1
- Tested on (Release): 1.4.2b
- Tested on (Release): 1.5.1
- Tested on (Release): 1.5.2
- Tested on (Release): 1.6.0
- Tested on (Release): 1.6.1
- Tested on (Release): 1.6.2
- Tested on (Release): 1.7.3d
- Tested on (Release): 1.9.1
- Tested on (Release): 1.11.4b
- Tested on (Release): 1.15.0e
- Tested on (Release): 1.16.1
- Tested on (Release): 1.17.0d
- Tested on (Release): 1.18.0c
- Tested on (Release): 1.21.1b
- Tested on (Release): 2.0-86