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
Bayonetta on 1.6.0 AMD GPU
Bayonetta on 1.6.2 Nvidia GPU
Bayonetta on 1.6.2 AMD GPU
Cemu Emulator 1.12: Bayonetta
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.
2.0
Version
OS Version
Region
CPU
GPU
Tester
FPS
Status
Additional Notes
2.0-86
Linux (Fedora 40)
EU
Intel Core i5-4670K (OC 4.3GHz)
Nvidia GTX 1060 6 GB
MaroonHatHacker
60
Playable
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.