In order to edit this wiki, you must register and verify your account.

Bayonetta

From Cemu Wiki
Revision as of 00:50, 30 March 2017 by Nes370 (talk | contribs) (Added a workaround for Bayonetta's intense lighting issue.)
Jump to:navigation Jump to:search
Bayonetta
Bayonetta wii u.jpeg
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 PlayablePlayable
GameIDs Missing IDs
See also...

Search Google
Wikipedia page

Bayonetta is a third-person action game developed by PlatinumGames and published by Sega. The game was released alongside its sequel, Bayonetta 2, releasing 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

Accessing the Gallery in the Extra menu loads to a black screen

Configuration

To reduce the overemphasized 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.

Gameplay Vidoes

Bayonetta on 1.6.0 AMD GPU
Bayonetta on 1.6.2 Nvidia GPU
Bayonetta on 1.6.2 AMD GPU

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)