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
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
|
1.4
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.4.0c
|
Windows 10
|
EUR
|
Intel Core i7 6700K @ 4.2GHz
|
NVIDIA GeForce GTX 970
|
chrisfand
|
N/A
|
Unplayable
|
Stuck on "Loading" screen during startup.
|
1.4.1
|
Windows 7
|
EUR
|
AMD FX-6350
|
ATi Radeon 5770
|
Hydris
|
10-60
|
Loads
|
Main menu runs 60 fps, but has visual glitches. Loading takes over a minute, and even then nothing is properly visible. Saving doesn't work. No audio.
|
1.4.2b
|
Windows 7
|
EUR
|
AMD FX-6350
|
ATI Radeon 5770
|
Hydris
|
8-60
|
Loads
|
Saving takes either over 15 minutes or never happens. Intro level is not properly rendered. First cutscene heavily flickers. Infinite loading for mission start screen.
|
|
1.5
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.5.1
|
Windows 10
|
EUR
|
Intel Core i7-6700HQ
|
Nvida GTX 950m
|
SwaggyP
|
60
|
Loads
|
Loads for like 5 minutes then tells u that a controller is disconnected then even if u press something it doesnt react to it
|
1.5.2
|
Windows 10
|
EUR
|
Intel Core i5 3470
|
Nvidia Gtx 970
|
SomaCruz97
|
60
|
Unplayable
|
it will load but shows a white screen
|
|
1.6
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.6.0
|
Windows 10
|
EUR
|
Intel Core i7-4710HQ
|
Nvidia Geforce GTX860M
|
herohiralal
|
17
|
Runs
|
Minor graphical glitches. Game runs in slow-motion because of low framerate.
|
1.6.0
|
Windows 7
|
USA
|
AMD FX 8320 @ 4.4GHz
|
AMD Radeon R9 390
|
Darkemaste
|
15-18
|
Runs
|
Performance appears to be rather consistent in-game, audio is slowed down.
|
1.6.0
|
Windows 7
|
EUR
|
Intel Core i7-920
|
Nvidia GTX970
|
Asper
|
12
|
Runs
|
Some glitches+no sound
|
1.6.1
|
Windows 10
|
USA
|
Intel Core i3 3220
|
Nvidia GTX670
|
Roberto
|
60
|
Unplayable
|
|
1.6.1
|
Windows 7
|
USA
|
AMD FX 8320 @ 4.4GHz
|
AMD Radeon R9 390
|
Darkemaste
|
18-20
|
Playable
|
Performance appears to be rather consistent in-game, audio is no longer slowed down. Appears to have major lighting issues. (lighting is excessively bright)
|
1.6.2
|
Windows 7
|
USA
|
AMD FX 8320 @ 4.4GHz
|
AMD Radeon R9 390
|
Darkemaste
|
45-55
|
Playable
|
Substantially increased performance and stability. Cutscenes limited to/capped at 30fps.
Lighting issues in certain areas are still present. (lighting is excessively bright)
|
|
1.7
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.7.3d
|
Windows 10
|
EUR
|
Intel Core i5-6300HQ
|
Nvidia GTX 960M
|
Nes370
|
45-60
|
Playable
|
Menu graphical errors are significantly reduced from previous versions.
|
1.7.3d
|
Windows 10
|
USA
|
Intel Core i7-6700k (4.7GHz OC)
|
Nvidia GTX 1070
|
Bloodhorde
|
55-60
|
Playable
|
Opening movie doesn't play/Game title screen has a constant sound/Sound desync during cutscenes/Lighting issues(too bright)
|
|
1.9
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.9.1
|
Windows 10
|
US
|
AMD FX-9370 @ 4.4GHz
|
Nvidia GTX 1070
|
Daemon_necis
|
18-30
|
Runs
|
|
|
1.11
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.11.4b
|
Windows 10
|
US
|
AMD FX-9370
|
Nvidia GTX 1070
|
dsjrb
|
60
|
Loads
|
Loads main screen with large graphical issues. Game will hang on any loading screen. It will use about as much CPU and GPU as running it normally, however it will slowly leak RAM. Tested for 1 hour, leaked 6GB of RAM with no changes on screen.
|
|
1.15
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.15.0e
|
Windows 10
|
EU
|
Intel i7-3770
|
AMD Radeon R9 200 Series
|
Daemon_necis
|
18-30
|
Loads
|
Loads, but shows a lot of graphic errors in menu and game.
|
|
1.16
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.16.1
|
Windows 10
|
USA
|
AMD FX-8320E
|
NVidia GTX 1060 6GB
|
PickleRick!
|
60
|
Loads
|
Vulkan API, Stuck at "white screen" before menu
|
1.17
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.17.0d
|
Windows 10
|
US
|
AMD FX-8320E
|
NVidia GTX 1060 6GB
|
PickleRick!
|
35-45
|
Playable
|
OpenGl mode is more stable than Vulkan. The fps is the same but Vulkan demonstrated more visual glitches
|
1.18
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.18.0c
|
Windows 10
|
US
|
Intel Core i5-2300
|
NVidia GTX 560 1024MB
|
Glebman
|
50-60
|
Playable
|
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.
|
1.21
|
Version
|
OS Version
|
Region
|
CPU
|
GPU
|
Tester
|
FPS
|
Status
|
Additional Notes
|
1.21.1b
|
Windows 10
|
EU
|
AMD Ryzen 5 3600
|
NVidia GTX 1660 Super 6 GB
|
Bergory55
|
60
|
Playable
|
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.
|
|
|
|
|