In order to edit this wiki, you must register and verify your account.
Bayonetta: Difference between revisions
No edit summary |
No edit summary |
||
Line 211: | Line 211: | ||
{{{testsection|1.18}} | {{{testsection|1.18}} | ||
{{testline|version=1.18.0c|OS=Windows 10|region=US|CPU=Intel Core i5-2300|GPU=NVidia GTX 560 1024MB|user=Glebman|FPS=50-60|rating=Playable|notes=Played on my old weak PC just fine. Walked through the whole game in 1K resolution OpenGL API. The game still has some graphical issues in cutscenes. Occasional flickering of graphics in menus and in gameplay.}} | {{testline|version=1.18.0c|OS=Windows 10|region=US|CPU=Intel Core i5-2300|GPU=NVidia GTX 560 1024MB|user=Glebman|FPS=50-60|rating=Playable|notes=Played on my old weak PC just fine. Walked through the whole game in 1K resolution OpenGL API. The game still has some graphical issues in cutscenes. Occasional flickering of graphics in menus and in gameplay.}} | ||
{{testend}} | |||
{{{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.}} | |||
{{testend}} | {{testend}} |
Latest revision as of 03:42, 21 September 2020
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