From 6645bd6fc685fed5894e4bbb8c323ed4835e1efc Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Sat, 9 Feb 2013 12:38:20 +0100 Subject: [PATCH 01/29] Fix a crash in the FifoPlayer dialog. --- Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp index 254b1a6bc7..81268e3467 100644 --- a/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp +++ b/Source/Core/DolphinWX/Src/FifoPlayerDlg.cpp @@ -624,7 +624,9 @@ void FifoPlayerDlg::OnObjectListSelectionChanged(wxCommandEvent& event) int stream_size = Common::swap16(objectdata); objectdata += 2; wxString newLabel = wxString::Format(wxT("%08X: %02X %04X "), obj_offset, cmd, stream_size); - if ((objectdata_end - objectdata) % stream_size) newLabel += _("NOTE: Stream size doesn't match actual data length\n"); + if (stream_size && ((objectdata_end - objectdata) % stream_size)) + newLabel += _("NOTE: Stream size doesn't match actual data length\n"); + while (objectdata < objectdata_end) { newLabel += wxString::Format(wxT("%02X"), *objectdata++); From 1c64b1993de02405e563c5fa13d5b4cb7818c520 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 9 Feb 2013 17:02:22 -0600 Subject: [PATCH 02/29] Change the ugly "no banner" banner to the sexy "X" from the website. --- Source/Core/DolphinWX/resources/no_banner.cpp | 303 ++---------------- 1 file changed, 26 insertions(+), 277 deletions(-) diff --git a/Source/Core/DolphinWX/resources/no_banner.cpp b/Source/Core/DolphinWX/resources/no_banner.cpp index 2b84caa430..df8d51d737 100644 --- a/Source/Core/DolphinWX/resources/no_banner.cpp +++ b/Source/Core/DolphinWX/resources/no_banner.cpp @@ -1,279 +1,28 @@ static const unsigned char no_banner_png[] = { -0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, -0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, -0x08, 0x06, 0x00, 0x00, 0x00, 0xed, 0xc0, 0x7d, 0x54, 0x00, 0x00, 0x00, -0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, -0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x0a, 0x4f, 0x69, 0x43, -0x43, 0x50, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x73, 0x68, 0x6f, 0x70, 0x20, -0x49, 0x43, 0x43, 0x20, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x00, -0x00, 0x78, 0xda, 0x9d, 0x53, 0x67, 0x54, 0x53, 0xe9, 0x16, 0x3d, 0xf7, -0xde, 0xf4, 0x42, 0x4b, 0x88, 0x80, 0x94, 0x4b, 0x6f, 0x52, 0x15, 0x08, -0x20, 0x52, 0x42, 0x8b, 0x80, 0x14, 0x91, 0x26, 0x2a, 0x21, 0x09, 0x10, -0x4a, 0x88, 0x21, 0xa1, 0xd9, 0x15, 0x51, 0xc1, 0x11, 0x45, 0x45, 0x04, -0x1b, 0xc8, 0xa0, 0x88, 0x03, 0x8e, 0x8e, 0x80, 0x8c, 0x15, 0x51, 0x2c, -0x0c, 0x8a, 0x0a, 0xd8, 0x07, 0xe4, 0x21, 0xa2, 0x8e, 0x83, 0xa3, 0x88, -0x8a, 0xca, 0xfb, 0xe1, 0x7b, 0xa3, 0x6b, 0xd6, 0xbc, 0xf7, 0xe6, 0xcd, -0xfe, 0xb5, 0xd7, 0x3e, 0xe7, 0xac, 0xf3, 0x9d, 0xb3, 0xcf, 0x07, 0xc0, -0x08, 0x0c, 0x96, 0x48, 0x33, 0x51, 0x35, 0x80, 0x0c, 0xa9, 0x42, 0x1e, -0x11, 0xe0, 0x83, 0xc7, 0xc4, 0xc6, 0xe1, 0xe4, 0x2e, 0x40, 0x81, 0x0a, -0x24, 0x70, 0x00, 0x10, 0x08, 0xb3, 0x64, 0x21, 0x73, 0xfd, 0x23, 0x01, -0x00, 0xf8, 0x7e, 0x3c, 0x3c, 0x2b, 0x22, 0xc0, 0x07, 0xbe, 0x00, 0x01, -0x78, 0xd3, 0x0b, 0x08, 0x00, 0xc0, 0x4d, 0x9b, 0xc0, 0x30, 0x1c, 0x87, -0xff, 0x0f, 0xea, 0x42, 0x99, 0x5c, 0x01, 0x80, 0x84, 0x01, 0xc0, 0x74, -0x91, 0x38, 0x4b, 0x08, 0x80, 0x14, 0x00, 0x40, 0x7a, 0x8e, 0x42, 0xa6, -0x00, 0x40, 0x46, 0x01, 0x80, 0x9d, 0x98, 0x26, 0x53, 0x00, 0xa0, 0x04, -0x00, 0x60, 0xcb, 0x63, 0x62, 0xe3, 0x00, 0x50, 0x2d, 0x00, 0x60, 0x27, -0x7f, 0xe6, 0xd3, 0x00, 0x80, 0x9d, 0xf8, 0x99, 0x7b, 0x01, 0x00, 0x5b, -0x94, 0x21, 0x15, 0x01, 0xa0, 0x91, 0x00, 0x20, 0x13, 0x65, 0x88, 0x44, -0x00, 0x68, 0x3b, 0x00, 0xac, 0xcf, 0x56, 0x8a, 0x45, 0x00, 0x58, 0x30, -0x00, 0x14, 0x66, 0x4b, 0xc4, 0x39, 0x00, 0xd8, 0x2d, 0x00, 0x30, 0x49, -0x57, 0x66, 0x48, 0x00, 0xb0, 0xb7, 0x00, 0xc0, 0xce, 0x10, 0x0b, 0xb2, -0x00, 0x08, 0x0c, 0x00, 0x30, 0x51, 0x88, 0x85, 0x29, 0x00, 0x04, 0x7b, -0x00, 0x60, 0xc8, 0x23, 0x23, 0x78, 0x00, 0x84, 0x99, 0x00, 0x14, 0x46, -0xf2, 0x57, 0x3c, 0xf1, 0x2b, 0xae, 0x10, 0xe7, 0x2a, 0x00, 0x00, 0x78, -0x99, 0xb2, 0x3c, 0xb9, 0x24, 0x39, 0x45, 0x81, 0x5b, 0x08, 0x2d, 0x71, -0x07, 0x57, 0x57, 0x2e, 0x1e, 0x28, 0xce, 0x49, 0x17, 0x2b, 0x14, 0x36, -0x61, 0x02, 0x61, 0x9a, 0x40, 0x2e, 0xc2, 0x79, 0x99, 0x19, 0x32, 0x81, -0x34, 0x0f, 0xe0, 0xf3, 0xcc, 0x00, 0x00, 0xa0, 0x91, 0x15, 0x11, 0xe0, -0x83, 0xf3, 0xfd, 0x78, 0xce, 0x0e, 0xae, 0xce, 0xce, 0x36, 0x8e, 0xb6, -0x0e, 0x5f, 0x2d, 0xea, 0xbf, 0x06, 0xff, 0x22, 0x62, 0x62, 0xe3, 0xfe, -0xe5, 0xcf, 0xab, 0x70, 0x40, 0x00, 0x00, 0xe1, 0x74, 0x7e, 0xd1, 0xfe, -0x2c, 0x2f, 0xb3, 0x1a, 0x80, 0x3b, 0x06, 0x80, 0x6d, 0xfe, 0xa2, 0x25, -0xee, 0x04, 0x68, 0x5e, 0x0b, 0xa0, 0x75, 0xf7, 0x8b, 0x66, 0xb2, 0x0f, -0x40, 0xb5, 0x00, 0xa0, 0xe9, 0xda, 0x57, 0xf3, 0x70, 0xf8, 0x7e, 0x3c, -0x3c, 0x45, 0xa1, 0x90, 0xb9, 0xd9, 0xd9, 0xe5, 0xe4, 0xe4, 0xd8, 0x4a, -0xc4, 0x42, 0x5b, 0x61, 0xca, 0x57, 0x7d, 0xfe, 0x67, 0xc2, 0x5f, 0xc0, -0x57, 0xfd, 0x6c, 0xf9, 0x7e, 0x3c, 0xfc, 0xf7, 0xf5, 0xe0, 0xbe, 0xe2, -0x24, 0x81, 0x32, 0x5d, 0x81, 0x47, 0x04, 0xf8, 0xe0, 0xc2, 0xcc, 0xf4, -0x4c, 0xa5, 0x1c, 0xcf, 0x92, 0x09, 0x84, 0x62, 0xdc, 0xe6, 0x8f, 0x47, -0xfc, 0xb7, 0x0b, 0xff, 0xfc, 0x1d, 0xd3, 0x22, 0xc4, 0x49, 0x62, 0xb9, -0x58, 0x2a, 0x14, 0xe3, 0x51, 0x12, 0x71, 0x8e, 0x44, 0x9a, 0x8c, 0xf3, -0x32, 0xa5, 0x22, 0x89, 0x42, 0x92, 0x29, 0xc5, 0x25, 0xd2, 0xff, 0x64, -0xe2, 0xdf, 0x2c, 0xfb, 0x03, 0x3e, 0xdf, 0x35, 0x00, 0xb0, 0x6a, 0x3e, -0x01, 0x7b, 0x91, 0x2d, 0xa8, 0x5d, 0x63, 0x03, 0xf6, 0x4b, 0x27, 0x10, -0x58, 0x74, 0xc0, 0xe2, 0xf7, 0x00, 0x00, 0xf2, 0xbb, 0x6f, 0xc1, 0xd4, -0x28, 0x08, 0x03, 0x80, 0x68, 0x83, 0xe1, 0xcf, 0x77, 0xff, 0xef, 0x3f, -0xfd, 0x47, 0xa0, 0x25, 0x00, 0x80, 0x66, 0x49, 0x92, 0x71, 0x00, 0x00, -0x5e, 0x44, 0x24, 0x2e, 0x54, 0xca, 0xb3, 0x3f, 0xc7, 0x08, 0x00, 0x00, -0x44, 0xa0, 0x81, 0x2a, 0xb0, 0x41, 0x1b, 0xf4, 0xc1, 0x18, 0x2c, 0xc0, -0x06, 0x1c, 0xc1, 0x05, 0xdc, 0xc1, 0x0b, 0xfc, 0x60, 0x36, 0x84, 0x42, -0x24, 0xc4, 0xc2, 0x42, 0x10, 0x42, 0x0a, 0x64, 0x80, 0x1c, 0x72, 0x60, -0x29, 0xac, 0x82, 0x42, 0x28, 0x86, 0xcd, 0xb0, 0x1d, 0x2a, 0x60, 0x2f, -0xd4, 0x40, 0x1d, 0x34, 0xc0, 0x51, 0x68, 0x86, 0x93, 0x70, 0x0e, 0x2e, -0xc2, 0x55, 0xb8, 0x0e, 0x3d, 0x70, 0x0f, 0xfa, 0x61, 0x08, 0x9e, 0xc1, -0x28, 0xbc, 0x81, 0x09, 0x04, 0x41, 0xc8, 0x08, 0x13, 0x61, 0x21, 0xda, -0x88, 0x01, 0x62, 0x8a, 0x58, 0x23, 0x8e, 0x08, 0x17, 0x99, 0x85, 0xf8, -0x21, 0xc1, 0x48, 0x04, 0x12, 0x8b, 0x24, 0x20, 0xc9, 0x88, 0x14, 0x51, -0x22, 0x4b, 0x91, 0x35, 0x48, 0x31, 0x52, 0x8a, 0x54, 0x20, 0x55, 0x48, -0x1d, 0xf2, 0x3d, 0x72, 0x02, 0x39, 0x87, 0x5c, 0x46, 0xba, 0x91, 0x3b, -0xc8, 0x00, 0x32, 0x82, 0xfc, 0x86, 0xbc, 0x47, 0x31, 0x94, 0x81, 0xb2, -0x51, 0x3d, 0xd4, 0x0c, 0xb5, 0x43, 0xb9, 0xa8, 0x37, 0x1a, 0x84, 0x46, -0xa2, 0x0b, 0xd0, 0x64, 0x74, 0x31, 0x9a, 0x8f, 0x16, 0xa0, 0x9b, 0xd0, -0x72, 0xb4, 0x1a, 0x3d, 0x8c, 0x36, 0xa1, 0xe7, 0xd0, 0xab, 0x68, 0x0f, -0xda, 0x8f, 0x3e, 0x43, 0xc7, 0x30, 0xc0, 0xe8, 0x18, 0x07, 0x33, 0xc4, -0x6c, 0x30, 0x2e, 0xc6, 0xc3, 0x42, 0xb1, 0x38, 0x2c, 0x09, 0x93, 0x63, -0xcb, 0xb1, 0x22, 0xac, 0x0c, 0xab, 0xc6, 0x1a, 0xb0, 0x56, 0xac, 0x03, -0xbb, 0x89, 0xf5, 0x63, 0xcf, 0xb1, 0x77, 0x04, 0x12, 0x81, 0x45, 0xc0, -0x09, 0x36, 0x04, 0x77, 0x42, 0x20, 0x61, 0x1e, 0x41, 0x48, 0x58, 0x4c, -0x58, 0x4e, 0xd8, 0x48, 0xa8, 0x20, 0x1c, 0x24, 0x34, 0x11, 0xda, 0x09, -0x37, 0x09, 0x03, 0x84, 0x51, 0xc2, 0x27, 0x22, 0x93, 0xa8, 0x4b, 0xb4, -0x26, 0xba, 0x11, 0xf9, 0xc4, 0x18, 0x62, 0x32, 0x31, 0x87, 0x58, 0x48, -0x2c, 0x23, 0xd6, 0x12, 0x8f, 0x13, 0x2f, 0x10, 0x7b, 0x88, 0x43, 0xc4, -0x37, 0x24, 0x12, 0x89, 0x43, 0x32, 0x27, 0xb9, 0x90, 0x02, 0x49, 0xb1, -0xa4, 0x54, 0xd2, 0x12, 0xd2, 0x46, 0xd2, 0x6e, 0x52, 0x23, 0xe9, 0x2c, -0xa9, 0x9b, 0x34, 0x48, 0x1a, 0x23, 0x93, 0xc9, 0xda, 0x64, 0x6b, 0xb2, -0x07, 0x39, 0x94, 0x2c, 0x20, 0x2b, 0xc8, 0x85, 0xe4, 0x9d, 0xe4, 0xc3, -0xe4, 0x33, 0xe4, 0x1b, 0xe4, 0x21, 0xf2, 0x5b, 0x0a, 0x9d, 0x62, 0x40, -0x71, 0xa4, 0xf8, 0x53, 0xe2, 0x28, 0x52, 0xca, 0x6a, 0x4a, 0x19, 0xe5, -0x10, 0xe5, 0x34, 0xe5, 0x06, 0x65, 0x98, 0x32, 0x41, 0x55, 0xa3, 0x9a, -0x52, 0xdd, 0xa8, 0xa1, 0x54, 0x11, 0x35, 0x8f, 0x5a, 0x42, 0xad, 0xa1, -0xb6, 0x52, 0xaf, 0x51, 0x87, 0xa8, 0x13, 0x34, 0x75, 0x9a, 0x39, 0xcd, -0x83, 0x16, 0x49, 0x4b, 0xa5, 0xad, 0xa2, 0x95, 0xd3, 0x1a, 0x68, 0x17, -0x68, 0xf7, 0x69, 0xaf, 0xe8, 0x74, 0xba, 0x11, 0xdd, 0x95, 0x1e, 0x4e, -0x97, 0xd0, 0x57, 0xd2, 0xcb, 0xe9, 0x47, 0xe8, 0x97, 0xe8, 0x03, 0xf4, -0x77, 0x0c, 0x0d, 0x86, 0x15, 0x83, 0xc7, 0x88, 0x67, 0x28, 0x19, 0x9b, -0x18, 0x07, 0x18, 0x67, 0x19, 0x77, 0x18, 0xaf, 0x98, 0x4c, 0xa6, 0x19, -0xd3, 0x8b, 0x19, 0xc7, 0x54, 0x30, 0x37, 0x31, 0xeb, 0x98, 0xe7, 0x99, -0x0f, 0x99, 0x6f, 0x55, 0x58, 0x2a, 0xb6, 0x2a, 0x7c, 0x15, 0x91, 0xca, -0x0a, 0x95, 0x4a, 0x95, 0x26, 0x95, 0x1b, 0x2a, 0x2f, 0x54, 0xa9, 0xaa, -0xa6, 0xaa, 0xde, 0xaa, 0x0b, 0x55, 0xf3, 0x55, 0xcb, 0x54, 0x8f, 0xa9, -0x5e, 0x53, 0x7d, 0xae, 0x46, 0x55, 0x33, 0x53, 0xe3, 0xa9, 0x09, 0xd4, -0x96, 0xab, 0x55, 0xaa, 0x9d, 0x50, 0xeb, 0x53, 0x1b, 0x53, 0x67, 0xa9, -0x3b, 0xa8, 0x87, 0xaa, 0x67, 0xa8, 0x6f, 0x54, 0x3f, 0xa4, 0x7e, 0x59, -0xfd, 0x89, 0x06, 0x59, 0xc3, 0x4c, 0xc3, 0x4f, 0x43, 0xa4, 0x51, 0xa0, -0xb1, 0x5f, 0xe3, 0xbc, 0xc6, 0x20, 0x0b, 0x63, 0x19, 0xb3, 0x78, 0x2c, -0x21, 0x6b, 0x0d, 0xab, 0x86, 0x75, 0x81, 0x35, 0xc4, 0x26, 0xb1, 0xcd, -0xd9, 0x7c, 0x76, 0x2a, 0xbb, 0x98, 0xfd, 0x1d, 0xbb, 0x8b, 0x3d, 0xaa, -0xa9, 0xa1, 0x39, 0x43, 0x33, 0x4a, 0x33, 0x57, 0xb3, 0x52, 0xf3, 0x94, -0x66, 0x3f, 0x07, 0xe3, 0x98, 0x71, 0xf8, 0x9c, 0x74, 0x4e, 0x09, 0xe7, -0x28, 0xa7, 0x97, 0xf3, 0x7e, 0x8a, 0xde, 0x14, 0xef, 0x29, 0xe2, 0x29, -0x1b, 0xa6, 0x34, 0x4c, 0xb9, 0x31, 0x65, 0x5c, 0x6b, 0xaa, 0x96, 0x97, -0x96, 0x58, 0xab, 0x48, 0xab, 0x51, 0xab, 0x47, 0xeb, 0xbd, 0x36, 0xae, -0xed, 0xa7, 0x9d, 0xa6, 0xbd, 0x45, 0xbb, 0x59, 0xfb, 0x81, 0x0e, 0x41, -0xc7, 0x4a, 0x27, 0x5c, 0x27, 0x47, 0x67, 0x8f, 0xce, 0x05, 0x9d, 0xe7, -0x53, 0xd9, 0x53, 0xdd, 0xa7, 0x0a, 0xa7, 0x16, 0x4d, 0x3d, 0x3a, 0xf5, -0xae, 0x2e, 0xaa, 0x6b, 0xa5, 0x1b, 0xa1, 0xbb, 0x44, 0x77, 0xbf, 0x6e, -0xa7, 0xee, 0x98, 0x9e, 0xbe, 0x5e, 0x80, 0x9e, 0x4c, 0x6f, 0xa7, 0xde, -0x79, 0xbd, 0xe7, 0xfa, 0x1c, 0x7d, 0x2f, 0xfd, 0x54, 0xfd, 0x6d, 0xfa, -0xa7, 0xf5, 0x47, 0x0c, 0x58, 0x06, 0xb3, 0x0c, 0x24, 0x06, 0xdb, 0x0c, -0xce, 0x18, 0x3c, 0xc5, 0x35, 0x71, 0x6f, 0x3c, 0x1d, 0x2f, 0xc7, 0xdb, -0xf1, 0x51, 0x43, 0x5d, 0xc3, 0x40, 0x43, 0xa5, 0x61, 0x95, 0x61, 0x97, -0xe1, 0x84, 0x91, 0xb9, 0xd1, 0x3c, 0xa3, 0xd5, 0x46, 0x8d, 0x46, 0x0f, -0x8c, 0x69, 0xc6, 0x5c, 0xe3, 0x24, 0xe3, 0x6d, 0xc6, 0x6d, 0xc6, 0xa3, -0x26, 0x06, 0x26, 0x21, 0x26, 0x4b, 0x4d, 0xea, 0x4d, 0xee, 0x9a, 0x52, -0x4d, 0xb9, 0xa6, 0x29, 0xa6, 0x3b, 0x4c, 0x3b, 0x4c, 0xc7, 0xcd, 0xcc, -0xcd, 0xa2, 0xcd, 0xd6, 0x99, 0x35, 0x9b, 0x3d, 0x31, 0xd7, 0x32, 0xe7, -0x9b, 0xe7, 0x9b, 0xd7, 0x9b, 0xdf, 0xb7, 0x60, 0x5a, 0x78, 0x5a, 0x2c, -0xb6, 0xa8, 0xb6, 0xb8, 0x65, 0x49, 0xb2, 0xe4, 0x5a, 0xa6, 0x59, 0xee, -0xb6, 0xbc, 0x6e, 0x85, 0x5a, 0x39, 0x59, 0xa5, 0x58, 0x55, 0x5a, 0x5d, -0xb3, 0x46, 0xad, 0x9d, 0xad, 0x25, 0xd6, 0xbb, 0xad, 0xbb, 0xa7, 0x11, -0xa7, 0xb9, 0x4e, 0x93, 0x4e, 0xab, 0x9e, 0xd6, 0x67, 0xc3, 0xb0, 0xf1, -0xb6, 0xc9, 0xb6, 0xa9, 0xb7, 0x19, 0xb0, 0xe5, 0xd8, 0x06, 0xdb, 0xae, -0xb6, 0x6d, 0xb6, 0x7d, 0x61, 0x67, 0x62, 0x17, 0x67, 0xb7, 0xc5, 0xae, -0xc3, 0xee, 0x93, 0xbd, 0x93, 0x7d, 0xba, 0x7d, 0x8d, 0xfd, 0x3d, 0x07, -0x0d, 0x87, 0xd9, 0x0e, 0xab, 0x1d, 0x5a, 0x1d, 0x7e, 0x73, 0xb4, 0x72, -0x14, 0x3a, 0x56, 0x3a, 0xde, 0x9a, 0xce, 0x9c, 0xee, 0x3f, 0x7d, 0xc5, -0xf4, 0x96, 0xe9, 0x2f, 0x67, 0x58, 0xcf, 0x10, 0xcf, 0xd8, 0x33, 0xe3, -0xb6, 0x13, 0xcb, 0x29, 0xc4, 0x69, 0x9d, 0x53, 0x9b, 0xd3, 0x47, 0x67, -0x17, 0x67, 0xb9, 0x73, 0x83, 0xf3, 0x88, 0x8b, 0x89, 0x4b, 0x82, 0xcb, -0x2e, 0x97, 0x3e, 0x2e, 0x9b, 0x1b, 0xc6, 0xdd, 0xc8, 0xbd, 0xe4, 0x4a, -0x74, 0xf5, 0x71, 0x5d, 0xe1, 0x7a, 0xd2, 0xf5, 0x9d, 0x9b, 0xb3, 0x9b, -0xc2, 0xed, 0xa8, 0xdb, 0xaf, 0xee, 0x36, 0xee, 0x69, 0xee, 0x87, 0xdc, -0x9f, 0xcc, 0x34, 0x9f, 0x29, 0x9e, 0x59, 0x33, 0x73, 0xd0, 0xc3, 0xc8, -0x43, 0xe0, 0x51, 0xe5, 0xd1, 0x3f, 0x0b, 0x9f, 0x95, 0x30, 0x6b, 0xdf, -0xac, 0x7e, 0x4f, 0x43, 0x4f, 0x81, 0x67, 0xb5, 0xe7, 0x23, 0x2f, 0x63, -0x2f, 0x91, 0x57, 0xad, 0xd7, 0xb0, 0xb7, 0xa5, 0x77, 0xaa, 0xf7, 0x61, -0xef, 0x17, 0x3e, 0xf6, 0x3e, 0x72, 0x9f, 0xe3, 0x3e, 0xe3, 0x3c, 0x37, -0xde, 0x32, 0xde, 0x59, 0x5f, 0xcc, 0x37, 0xc0, 0xb7, 0xc8, 0xb7, 0xcb, -0x4f, 0xc3, 0x6f, 0x9e, 0x5f, 0x85, 0xdf, 0x43, 0x7f, 0x23, 0xff, 0x64, -0xff, 0x7a, 0xff, 0xd1, 0x00, 0xa7, 0x80, 0x25, 0x01, 0x67, 0x03, 0x89, -0x81, 0x41, 0x81, 0x5b, 0x02, 0xfb, 0xf8, 0x7a, 0x7c, 0x21, 0xbf, 0x8e, -0x3f, 0x3a, 0xdb, 0x65, 0xf6, 0xb2, 0xd9, 0xed, 0x41, 0x8c, 0xa0, 0xb9, -0x41, 0x15, 0x41, 0x8f, 0x82, 0xad, 0x82, 0xe5, 0xc1, 0xad, 0x21, 0x68, -0xc8, 0xec, 0x90, 0xad, 0x21, 0xf7, 0xe7, 0x98, 0xce, 0x91, 0xce, 0x69, -0x0e, 0x85, 0x50, 0x7e, 0xe8, 0xd6, 0xd0, 0x07, 0x61, 0xe6, 0x61, 0x8b, -0xc3, 0x7e, 0x0c, 0x27, 0x85, 0x87, 0x85, 0x57, 0x86, 0x3f, 0x8e, 0x70, -0x88, 0x58, 0x1a, 0xd1, 0x31, 0x97, 0x35, 0x77, 0xd1, 0xdc, 0x43, 0x73, -0xdf, 0x44, 0xfa, 0x44, 0x96, 0x44, 0xde, 0x9b, 0x67, 0x31, 0x4f, 0x39, -0xaf, 0x2d, 0x4a, 0x35, 0x2a, 0x3e, 0xaa, 0x2e, 0x6a, 0x3c, 0xda, 0x37, -0xba, 0x34, 0xba, 0x3f, 0xc6, 0x2e, 0x66, 0x59, 0xcc, 0xd5, 0x58, 0x9d, -0x58, 0x49, 0x6c, 0x4b, 0x1c, 0x39, 0x2e, 0x2a, 0xae, 0x36, 0x6e, 0x6c, -0xbe, 0xdf, 0xfc, 0xed, 0xf3, 0x87, 0xe2, 0x9d, 0xe2, 0x0b, 0xe3, 0x7b, -0x17, 0x98, 0x2f, 0xc8, 0x5d, 0x70, 0x79, 0xa1, 0xce, 0xc2, 0xf4, 0x85, -0xa7, 0x16, 0xa9, 0x2e, 0x12, 0x2c, 0x3a, 0x96, 0x40, 0x4c, 0x88, 0x4e, -0x38, 0x94, 0xf0, 0x41, 0x10, 0x2a, 0xa8, 0x16, 0x8c, 0x25, 0xf2, 0x13, -0x77, 0x25, 0x8e, 0x0a, 0x79, 0xc2, 0x1d, 0xc2, 0x67, 0x22, 0x2f, 0xd1, -0x36, 0xd1, 0x88, 0xd8, 0x43, 0x5c, 0x2a, 0x1e, 0x4e, 0xf2, 0x48, 0x2a, -0x4d, 0x7a, 0x92, 0xec, 0x91, 0xbc, 0x35, 0x79, 0x24, 0xc5, 0x33, 0xa5, -0x2c, 0xe5, 0xb9, 0x84, 0x27, 0xa9, 0x90, 0xbc, 0x4c, 0x0d, 0x4c, 0xdd, -0x9b, 0x3a, 0x9e, 0x16, 0x9a, 0x76, 0x20, 0x6d, 0x32, 0x3d, 0x3a, 0xbd, -0x31, 0x83, 0x92, 0x91, 0x90, 0x71, 0x42, 0xaa, 0x21, 0x4d, 0x93, 0xb6, -0x67, 0xea, 0x67, 0xe6, 0x66, 0x76, 0xcb, 0xac, 0x65, 0x85, 0xb2, 0xfe, -0xc5, 0x6e, 0x8b, 0xb7, 0x2f, 0x1e, 0x95, 0x07, 0xc9, 0x6b, 0xb3, 0x90, -0xac, 0x05, 0x59, 0x2d, 0x0a, 0xb6, 0x42, 0xa6, 0xe8, 0x54, 0x5a, 0x28, -0xd7, 0x2a, 0x07, 0xb2, 0x67, 0x65, 0x57, 0x66, 0xbf, 0xcd, 0x89, 0xca, -0x39, 0x96, 0xab, 0x9e, 0x2b, 0xcd, 0xed, 0xcc, 0xb3, 0xca, 0xdb, 0x90, -0x37, 0x9c, 0xef, 0x9f, 0xff, 0xed, 0x12, 0xc2, 0x12, 0xe1, 0x92, 0xb6, -0xa5, 0x86, 0x4b, 0x57, 0x2d, 0x1d, 0x58, 0xe6, 0xbd, 0xac, 0x6a, 0x39, -0xb2, 0x3c, 0x71, 0x79, 0xdb, 0x0a, 0xe3, 0x15, 0x05, 0x2b, 0x86, 0x56, -0x06, 0xac, 0x3c, 0xb8, 0x8a, 0xb6, 0x2a, 0x6d, 0xd5, 0x4f, 0xab, 0xed, -0x57, 0x97, 0xae, 0x7e, 0xbd, 0x26, 0x7a, 0x4d, 0x6b, 0x81, 0x5e, 0xc1, -0xca, 0x82, 0xc1, 0xb5, 0x01, 0x6b, 0xeb, 0x0b, 0x55, 0x0a, 0xe5, 0x85, -0x7d, 0xeb, 0xdc, 0xd7, 0xed, 0x5d, 0x4f, 0x58, 0x2f, 0x59, 0xdf, 0xb5, -0x61, 0xfa, 0x86, 0x9d, 0x1b, 0x3e, 0x15, 0x89, 0x8a, 0xae, 0x14, 0xdb, -0x17, 0x97, 0x15, 0x7f, 0xd8, 0x28, 0xdc, 0x78, 0xe5, 0x1b, 0x87, 0x6f, -0xca, 0xbf, 0x99, 0xdc, 0x94, 0xb4, 0xa9, 0xab, 0xc4, 0xb9, 0x64, 0xcf, -0x66, 0xd2, 0x66, 0xe9, 0xe6, 0xde, 0x2d, 0x9e, 0x5b, 0x0e, 0x96, 0xaa, -0x97, 0xe6, 0x97, 0x0e, 0x6e, 0x0d, 0xd9, 0xda, 0xb4, 0x0d, 0xdf, 0x56, -0xb4, 0xed, 0xf5, 0xf6, 0x45, 0xdb, 0x2f, 0x97, 0xcd, 0x28, 0xdb, 0xbb, -0x83, 0xb6, 0x43, 0xb9, 0xa3, 0xbf, 0x3c, 0xb8, 0xbc, 0x65, 0xa7, 0xc9, -0xce, 0xcd, 0x3b, 0x3f, 0x54, 0xa4, 0x54, 0xf4, 0x54, 0xfa, 0x54, 0x36, -0xee, 0xd2, 0xdd, 0xb5, 0x61, 0xd7, 0xf8, 0x6e, 0xd1, 0xee, 0x1b, 0x7b, -0xbc, 0xf6, 0x34, 0xec, 0xd5, 0xdb, 0x5b, 0xbc, 0xf7, 0xfd, 0x3e, 0xc9, -0xbe, 0xdb, 0x55, 0x01, 0x55, 0x4d, 0xd5, 0x66, 0xd5, 0x65, 0xfb, 0x49, -0xfb, 0xb3, 0xf7, 0x3f, 0xae, 0x89, 0xaa, 0xe9, 0xf8, 0x96, 0xfb, 0x6d, -0x5d, 0xad, 0x4e, 0x6d, 0x71, 0xed, 0xc7, 0x03, 0xd2, 0x03, 0xfd, 0x07, -0x23, 0x0e, 0xb6, 0xd7, 0xb9, 0xd4, 0xd5, 0x1d, 0xd2, 0x3d, 0x54, 0x52, -0x8f, 0xd6, 0x2b, 0xeb, 0x47, 0x0e, 0xc7, 0x1f, 0xbe, 0xfe, 0x9d, 0xef, -0x77, 0x2d, 0x0d, 0x36, 0x0d, 0x55, 0x8d, 0x9c, 0xc6, 0xe2, 0x23, 0x70, -0x44, 0x79, 0xe4, 0xe9, 0xf7, 0x09, 0xdf, 0xf7, 0x1e, 0x0d, 0x3a, 0xda, -0x76, 0x8c, 0x7b, 0xac, 0xe1, 0x07, 0xd3, 0x1f, 0x76, 0x1d, 0x67, 0x1d, -0x2f, 0x6a, 0x42, 0x9a, 0xf2, 0x9a, 0x46, 0x9b, 0x53, 0x9a, 0xfb, 0x5b, -0x62, 0x5b, 0xba, 0x4f, 0xcc, 0x3e, 0xd1, 0xd6, 0xea, 0xde, 0x7a, 0xfc, -0x47, 0xdb, 0x1f, 0x0f, 0x9c, 0x34, 0x3c, 0x59, 0x79, 0x4a, 0xf3, 0x54, -0xc9, 0x69, 0xda, 0xe9, 0x82, 0xd3, 0x93, 0x67, 0xf2, 0xcf, 0x8c, 0x9d, -0x95, 0x9d, 0x7d, 0x7e, 0x2e, 0xf9, 0xdc, 0x60, 0xdb, 0xa2, 0xb6, 0x7b, -0xe7, 0x63, 0xce, 0xdf, 0x6a, 0x0f, 0x6f, 0xef, 0xba, 0x10, 0x74, 0xe1, -0xd2, 0x45, 0xff, 0x8b, 0xe7, 0x3b, 0xbc, 0x3b, 0xce, 0x5c, 0xf2, 0xb8, -0x74, 0xf2, 0xb2, 0xdb, 0xe5, 0x13, 0x57, 0xb8, 0x57, 0x9a, 0xaf, 0x3a, -0x5f, 0x6d, 0xea, 0x74, 0xea, 0x3c, 0xfe, 0x93, 0xd3, 0x4f, 0xc7, 0xbb, -0x9c, 0xbb, 0x9a, 0xae, 0xb9, 0x5c, 0x6b, 0xb9, 0xee, 0x7a, 0xbd, 0xb5, -0x7b, 0x66, 0xf7, 0xe9, 0x1b, 0x9e, 0x37, 0xce, 0xdd, 0xf4, 0xbd, 0x79, -0xf1, 0x16, 0xff, 0xd6, 0xd5, 0x9e, 0x39, 0x3d, 0xdd, 0xbd, 0xf3, 0x7a, -0x6f, 0xf7, 0xc5, 0xf7, 0xf5, 0xdf, 0x16, 0xdd, 0x7e, 0x72, 0x27, 0xfd, -0xce, 0xcb, 0xbb, 0xd9, 0x77, 0x27, 0xee, 0xad, 0xbc, 0x4f, 0xbc, 0x5f, -0xf4, 0x40, 0xed, 0x41, 0xd9, 0x43, 0xdd, 0x87, 0xd5, 0x3f, 0x5b, 0xfe, -0xdc, 0xd8, 0xef, 0xdc, 0x7f, 0x6a, 0xc0, 0x77, 0xa0, 0xf3, 0xd1, 0xdc, -0x47, 0xf7, 0x06, 0x85, 0x83, 0xcf, 0xfe, 0x91, 0xf5, 0x8f, 0x0f, 0x43, -0x05, 0x8f, 0x99, 0x8f, 0xcb, 0x86, 0x0d, 0x86, 0xeb, 0x9e, 0x38, 0x3e, -0x39, 0x39, 0xe2, 0x3f, 0x72, 0xfd, 0xe9, 0xfc, 0xa7, 0x43, 0xcf, 0x64, -0xcf, 0x26, 0x9e, 0x17, 0xfe, 0xa2, 0xfe, 0xcb, 0xae, 0x17, 0x16, 0x2f, -0x7e, 0xf8, 0xd5, 0xeb, 0xd7, 0xce, 0xd1, 0x98, 0xd1, 0xa1, 0x97, 0xf2, -0x97, 0x93, 0xbf, 0x6d, 0x7c, 0xa5, 0xfd, 0xea, 0xc0, 0xeb, 0x19, 0xaf, -0xdb, 0xc6, 0xc2, 0xc6, 0x1e, 0xbe, 0xc9, 0x78, 0x33, 0x31, 0x5e, 0xf4, -0x56, 0xfb, 0xed, 0xc1, 0x77, 0xdc, 0x77, 0x1d, 0xef, 0xa3, 0xdf, 0x0f, -0x4f, 0xe4, 0x7c, 0x20, 0x7f, 0x28, 0xff, 0x68, 0xf9, 0xb1, 0xf5, 0x53, -0xd0, 0xa7, 0xfb, 0x93, 0x19, 0x93, 0x93, 0xff, 0x04, 0x03, 0x98, 0xf3, -0xfc, 0x63, 0x33, 0x2d, 0xdb, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, -0x4d, 0x00, 0x00, 0x7a, 0x25, 0x00, 0x00, 0x80, 0x83, 0x00, 0x00, 0xf9, -0xff, 0x00, 0x00, 0x80, 0xe9, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xea, -0x60, 0x00, 0x00, 0x3a, 0x98, 0x00, 0x00, 0x17, 0x6f, 0x92, 0x5f, 0xc5, -0x46, 0x00, 0x00, 0x02, 0x1c, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xec, -0x98, 0x4d, 0x4e, 0x02, 0x41, 0x10, 0x85, 0x3f, 0x8d, 0xdb, 0xb9, 0x80, -0x73, 0x01, 0x70, 0x2f, 0xee, 0x41, 0xf7, 0x72, 0x00, 0x0d, 0x7b, 0xc2, -0xde, 0xc4, 0xb5, 0x09, 0x7b, 0xc2, 0xde, 0xe0, 0x01, 0xd0, 0xbd, 0x5c, -0x00, 0x2e, 0xc0, 0x05, 0xe4, 0x00, 0xce, 0x01, 0x74, 0x53, 0x9d, 0x54, -0xda, 0xea, 0x99, 0x46, 0x51, 0x8c, 0xd6, 0x4b, 0x3a, 0x0c, 0xdd, 0x3d, -0x5d, 0x5d, 0xf5, 0xea, 0x2f, 0x73, 0x00, 0xbc, 0xe1, 0xd8, 0x1b, 0x0e, -0xdd, 0x04, 0x4e, 0x80, 0x13, 0xe0, 0x70, 0x02, 0x9c, 0x00, 0x87, 0x13, -0xe0, 0x04, 0x38, 0x9c, 0x00, 0x27, 0xc0, 0xe1, 0x04, 0x38, 0x01, 0x0e, -0x27, 0xe0, 0xdf, 0xe0, 0xc8, 0x9a, 0x6c, 0x01, 0x13, 0xa0, 0x34, 0xd6, -0x66, 0xc0, 0x58, 0x9e, 0xfb, 0xc0, 0x0d, 0x50, 0x18, 0xfb, 0x5e, 0x80, -0x11, 0xb0, 0xce, 0xb8, 0x44, 0x07, 0xb8, 0x4f, 0xac, 0x55, 0x22, 0x73, -0x9a, 0x71, 0xce, 0x50, 0x86, 0x96, 0x9d, 0xba, 0x63, 0x25, 0x7a, 0xcc, -0xe5, 0xff, 0x0d, 0x70, 0xdd, 0xa0, 0x47, 0x21, 0x76, 0xe9, 0x18, 0xfb, -0x96, 0xc0, 0x4a, 0xe4, 0x93, 0x38, 0x67, 0x0c, 0x2c, 0xa2, 0xf9, 0x03, -0xa2, 0xaf, 0xa1, 0x05, 0xf0, 0x9c, 0x30, 0x6a, 0xc0, 0x54, 0x84, 0xdd, -0x37, 0x18, 0xa4, 0x02, 0xce, 0xe5, 0xf7, 0xb3, 0x04, 0x04, 0xdc, 0x2a, -0x63, 0x59, 0xb8, 0x13, 0x63, 0x07, 0x2c, 0x80, 0x87, 0x8c, 0x73, 0x07, -0xc0, 0x69, 0x8d, 0xe1, 0xb4, 0x1e, 0x29, 0xe3, 0xe7, 0x10, 0x10, 0x70, -0x21, 0x64, 0x24, 0x53, 0x50, 0x5b, 0x8c, 0xbf, 0x06, 0x4e, 0xa2, 0x31, -0x92, 0x3d, 0xa7, 0x32, 0x42, 0x44, 0x9c, 0x18, 0x23, 0x78, 0x4c, 0x7b, -0x8b, 0x70, 0x5c, 0xd6, 0xc8, 0x3c, 0xce, 0x34, 0xfe, 0x42, 0x39, 0x52, -0xdd, 0x1d, 0x67, 0x86, 0x2e, 0xa3, 0x06, 0x3d, 0x82, 0xf1, 0xcf, 0x8c, -0x7d, 0x83, 0xc8, 0x41, 0x53, 0xf2, 0xca, 0x9c, 0x14, 0x04, 0xf0, 0x9a, -0xf0, 0x84, 0x9c, 0xb9, 0xd4, 0xfb, 0x4d, 0x68, 0x1b, 0x1e, 0x5b, 0x36, -0xc8, 0xd1, 0xc6, 0xaf, 0x12, 0x69, 0xb3, 0xfa, 0xc2, 0x9c, 0xa5, 0xc7, -0xc4, 0x98, 0x7b, 0x52, 0xcf, 0x97, 0x8a, 0x54, 0xad, 0x9b, 0x75, 0xde, -0xd1, 0x6f, 0x2a, 0x48, 0x45, 0x4d, 0x88, 0x57, 0x89, 0x9c, 0xdf, 0x8f, -0xde, 0x6f, 0xfd, 0xc0, 0x3d, 0xad, 0x3b, 0xae, 0x22, 0xa7, 0x29, 0x33, -0xf5, 0xf8, 0x55, 0x04, 0xac, 0x55, 0x81, 0x47, 0xa5, 0x88, 0x21, 0xd0, -0x8d, 0x6a, 0x40, 0x5f, 0xe5, 0xdb, 0xb1, 0x2a, 0xf6, 0x2d, 0x29, 0xa8, -0xdf, 0x89, 0x41, 0xa2, 0xc8, 0x5e, 0xca, 0xf3, 0x3c, 0x8a, 0x08, 0x80, -0x2b, 0xa0, 0x27, 0x7b, 0xa6, 0xbb, 0x20, 0x20, 0x30, 0xd9, 0xab, 0x49, -0x27, 0xdb, 0xa6, 0xa2, 0xc2, 0x08, 0x5d, 0xcb, 0xa3, 0xfb, 0x92, 0x7a, -0x72, 0x8a, 0xf3, 0x2e, 0x51, 0xc9, 0x1d, 0xbb, 0x86, 0x27, 0x6b, 0x8f, -0xdf, 0x48, 0x3d, 0x8b, 0x1d, 0xa9, 0x97, 0xdb, 0x86, 0xe6, 0x60, 0x2e, -0x6c, 0xb6, 0x6a, 0xc2, 0x7e, 0x9e, 0xd9, 0x86, 0x6a, 0x25, 0x86, 0x09, -0xc5, 0xa7, 0x7b, 0x36, 0x7e, 0x88, 0xb4, 0xbb, 0x44, 0xbb, 0xba, 0x8c, -0xd2, 0x50, 0x2e, 0x3e, 0xb4, 0xa1, 0xa5, 0x18, 0x76, 0x63, 0x28, 0x17, -0xaf, 0x15, 0x62, 0x10, 0xab, 0x65, 0xdd, 0x6c, 0x61, 0x9c, 0x52, 0x85, -0xaf, 0x85, 0x47, 0x09, 0x71, 0xbd, 0x6f, 0x6d, 0xf4, 0xd4, 0xf1, 0x1d, -0x5f, 0xc4, 0xf3, 0x56, 0x86, 0x47, 0x76, 0xd4, 0x5a, 0x29, 0x5d, 0xd6, -0x63, 0xd4, 0x22, 0x06, 0xc2, 0xf5, 0x5a, 0xc7, 0x88, 0x52, 0xb6, 0x94, -0xb7, 0xac, 0x23, 0xc0, 0xe1, 0x9f, 0x22, 0x9c, 0x00, 0x87, 0x13, 0xe0, -0x04, 0x38, 0x9c, 0x00, 0x27, 0xc0, 0xe1, 0x04, 0x38, 0x01, 0x0e, 0x27, -0xe0, 0x4f, 0xe3, 0x7d, 0x00, 0x51, 0xbe, 0x83, 0xcd, 0x57, 0x34, 0x65, -0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, -0x82, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, + 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x1f, 0xee, 0x60, 0x67, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, + 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, + 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdd, 0x02, + 0x09, 0x16, 0x39, 0x17, 0xf0, 0x40, 0x6e, 0x04, 0x00, 0x00, 0x00, 0x15, 0x50, + 0x4c, 0x54, 0x45, 0x66, 0x66, 0x66, 0x6a, 0x6a, 0x6a, 0x6b, 0x6b, 0x6b, 0x6d, + 0x6d, 0x6d, 0x70, 0x70, 0x70, 0x73, 0x73, 0x73, 0x80, 0x80, 0x80, 0xd1, 0x7d, + 0x40, 0x35, 0x00, 0x00, 0x00, 0xc6, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x8d, + 0xd4, 0x31, 0x0e, 0xc3, 0x20, 0x10, 0x44, 0xd1, 0x51, 0x64, 0xfa, 0x1c, 0x25, + 0x47, 0x48, 0x45, 0xed, 0xca, 0x07, 0xb0, 0x80, 0xfb, 0x1f, 0x21, 0x05, 0x60, + 0xd6, 0x30, 0xe3, 0xac, 0xbb, 0x95, 0xf8, 0x7a, 0xb2, 0x01, 0xa3, 0x98, 0x27, + 0x01, 0x00, 0x10, 0xfa, 0x9c, 0xeb, 0xbc, 0xd9, 0x35, 0xb0, 0x43, 0xf9, 0xd6, + 0x15, 0x47, 0x1b, 0xf7, 0x3a, 0x46, 0x1d, 0xdc, 0x09, 0x06, 0x4c, 0xc1, 0x9d, + 0x60, 0xc0, 0x1c, 0x58, 0x82, 0x02, 0x73, 0x60, 0x09, 0x0a, 0x2c, 0xc1, 0x20, + 0x38, 0xb0, 0x04, 0x83, 0xe0, 0xc0, 0x1a, 0x74, 0x42, 0x00, 0x6b, 0xd0, 0x89, + 0x0f, 0x07, 0x48, 0xd0, 0x08, 0x01, 0x90, 0xa0, 0x13, 0x1c, 0x60, 0x41, 0x7a, + 0x02, 0x58, 0x60, 0x88, 0xe8, 0x0b, 0xd2, 0x03, 0x40, 0x83, 0x8b, 0x88, 0xde, + 0xe0, 0xac, 0xeb, 0x5f, 0xc5, 0x1b, 0xb4, 0x4d, 0xbe, 0xee, 0xc5, 0xbf, 0x20, + 0xf7, 0x77, 0x08, 0xce, 0x60, 0xbf, 0xbe, 0xd2, 0xe1, 0x0a, 0xf2, 0xd8, 0x87, + 0xe0, 0x0a, 0x76, 0xb3, 0xd3, 0x87, 0x23, 0xc8, 0xf6, 0x2c, 0x05, 0x47, 0xd0, + 0x80, 0xb7, 0x20, 0x20, 0x80, 0x2d, 0x09, 0x02, 0x02, 0x88, 0xf3, 0x3f, 0x4a, + 0x05, 0xe3, 0xa2, 0x09, 0x02, 0x0a, 0x28, 0x82, 0x80, 0x02, 0x14, 0x01, 0x09, + 0x08, 0x02, 0x12, 0x10, 0x04, 0x34, 0xc0, 0x89, 0x1f, 0xe2, 0x9a, 0xca, 0x1c, + 0x5f, 0x12, 0x62, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, + 0x42, 0x60, 0x82 }; From 095513529094de471ef552619f2497e556aa01bd Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 11 Feb 2013 13:08:41 -0600 Subject: [PATCH 03/29] Add the option to turn on only the EGL interface to use desktop OpenGL with it. --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 843c140408..8f8face486 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,8 @@ # cmake_minimum_required(VERSION 2.6) -option(USE_GLES "Enables GLES, disables OGL" OFF) +option(USE_GLES "Enables GLES And EGL, disables OGL" OFF) +option(USE_EGL "Enables EGL OpenGL Interface" OFF) option(DISABLE_WX "Disable wxWidgets (use CLI interface)" OFF) option(FASTLOG "Enable all logs" OFF) @@ -250,6 +251,11 @@ if(USE_GLES) add_definitions(-DUSE_EGL) set(USE_EGL True) endif() + +if(USE_EGL) + message("EGL OpenGL interface enabled") + add_definitions(-DUSE_EGL) +endif() add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE) ######################################## From 8923f0e13befa07df1638d0154d1b96ebae74fa2 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Mon, 11 Feb 2013 15:06:40 -0600 Subject: [PATCH 04/29] Fix header guard and definitions not being set to 1 --- CMakeLists.txt | 6 +++--- Source/Core/DolphinWX/Src/GLInterface/EGL.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f8face486..4598eaa9e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,14 +247,14 @@ endif() # Enabling GLES also disables the OpenGL plugin. if(USE_GLES) message("GLES rendering enabled") - add_definitions(-DUSE_GLES) - add_definitions(-DUSE_EGL) + add_definitions(-DUSE_GLES=1) + add_definitions(-DUSE_EGL=1) set(USE_EGL True) endif() if(USE_EGL) message("EGL OpenGL interface enabled") - add_definitions(-DUSE_EGL) + add_definitions(-DUSE_EGL=1) endif() add_definitions(-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE) diff --git a/Source/Core/DolphinWX/Src/GLInterface/EGL.h b/Source/Core/DolphinWX/Src/GLInterface/EGL.h index fe127fe0ba..513fb2ce4a 100644 --- a/Source/Core/DolphinWX/Src/GLInterface/EGL.h +++ b/Source/Core/DolphinWX/Src/GLInterface/EGL.h @@ -14,8 +14,8 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ -#ifndef _INTERFACEGLX_H_ -#define _INTERFACEGLX_H_ +#ifndef _INTERFACEEGL_H_ +#define _INTERFACEEGL_H_ #include #ifdef USE_GLES From 183ad0c628c4e019d1a7af1a4a0492345209db84 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 15 Feb 2013 17:44:56 +0100 Subject: [PATCH 05/29] Video_Software: Toggable zfreeze and early_z support for testing. --- .../Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp | 2 +- .../Plugin_VideoSoftware/Src/SWVideoConfig.cpp | 7 +++++++ .../Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.h | 4 ++++ Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp | 11 ++++++----- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp index 45c744ee81..3324f4bb09 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp @@ -125,7 +125,7 @@ inline void Draw(s32 x, s32 y, s32 xi, s32 yi) if (z < 0 || z > 0x00ffffff) return; - if (bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) + if (bpmem.zcontrol.early_ztest && bpmem.zmode.testenable && g_SWVideoConfig.bZComploc) { // early z if (!EfbInterface::ZCompare(x, y, z)) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp index 05a6cdddf2..07947e0ee7 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.cpp @@ -35,6 +35,9 @@ SWVideoConfig::SWVideoConfig() bDumpObjects = false; bDumpFrames = false; + bZComploc = true; + bZFreeze = true; + bDumpTevStages = false; bDumpTevTextureFetches = false; @@ -52,6 +55,8 @@ void SWVideoConfig::Load(const char* ini_file) iniFile.Get("Hardware", "RenderToMainframe", &renderToMainframe, false); iniFile.Get("Rendering", "HwRasterizer", &bHwRasterizer, false); + iniFile.Get("Rendering", "ZComploc", &bZComploc, true); + iniFile.Get("Rendering", "ZFreeze", &bZFreeze, true); iniFile.Get("Info", "ShowStats", &bShowStats, false); @@ -74,6 +79,8 @@ void SWVideoConfig::Save(const char* ini_file) iniFile.Set("Hardware", "RenderToMainframe", renderToMainframe); iniFile.Set("Rendering", "HwRasterizer", bHwRasterizer); + iniFile.Set("Rendering", "ZComploc", &bZComploc); + iniFile.Set("Rendering", "ZFreeze", &bZFreeze); iniFile.Set("Info", "ShowStats", bShowStats); diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.h b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.h index 14eae78b51..c042ae8cc5 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.h +++ b/Source/Plugins/Plugin_VideoSoftware/Src/SWVideoConfig.h @@ -36,6 +36,10 @@ struct SWVideoConfig : NonCopyable bool bHwRasterizer; + // Emulation features + bool bZComploc; + bool bZFreeze; + bool bShowStats; bool bDumpTextures; diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp index 7813c0b245..bc5f978dd8 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp @@ -784,11 +784,12 @@ void Tev::Draw() output[BLU_C] = (output[BLU_C] * invFog + fogInt * bpmem.fog.color.b) >> 8; } - if (!bpmem.zcontrol.early_ztest && bpmem.zmode.testenable) - { - if (!EfbInterface::ZCompare(Position[0], Position[1], Position[2])) - return; - } + bool late_ztest = !bpmem.zcontrol.early_ztest || g_SWVideoConfig.bZComploc; + if (late_ztest && bpmem.zmode.testenable) + { + if (!EfbInterface::ZCompare(Position[0], Position[1], Position[2])) + return; + } #if ALLOW_TEV_DUMPS if (g_SWVideoConfig.bDumpTevStages) From fb0102d4417279c1e89e8f13379d2a2490677ef8 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 15 Feb 2013 17:47:07 +0100 Subject: [PATCH 06/29] Video_Software: Fix the ZFreeze option doing nothing. --- Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp index 3324f4bb09..225400e08b 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Rasterizer.cpp @@ -369,7 +369,7 @@ void DrawTriangleFrontFace(OutputVertexData *v0, OutputVertexData *v1, OutputVer float w[3] = { 1.0f / v0->projectedPosition.w, 1.0f / v1->projectedPosition.w, 1.0f / v2->projectedPosition.w }; InitSlope(&WSlope, w[0], w[1], w[2], fltdx31, fltdx12, fltdy12, fltdy31); - if (!bpmem.genMode.zfreeze) + if (!bpmem.genMode.zfreeze || !g_SWVideoConfig.bZFreeze) InitSlope(&ZSlope, v0->screenPosition[2], v1->screenPosition[2], v2->screenPosition[2], fltdx31, fltdx12, fltdy12, fltdy31); for(unsigned int i = 0; i < bpmem.genMode.numcolchans; i++) From 6fd96a162f7369f5ceb6c722c33f120877a21354 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 15 Feb 2013 17:54:52 +0100 Subject: [PATCH 07/29] Video_Software: Fix ZComploc option breaking stuff. --- Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp index bc5f978dd8..927f8931e9 100644 --- a/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp +++ b/Source/Plugins/Plugin_VideoSoftware/Src/Tev.cpp @@ -784,7 +784,7 @@ void Tev::Draw() output[BLU_C] = (output[BLU_C] * invFog + fogInt * bpmem.fog.color.b) >> 8; } - bool late_ztest = !bpmem.zcontrol.early_ztest || g_SWVideoConfig.bZComploc; + bool late_ztest = !bpmem.zcontrol.early_ztest || !g_SWVideoConfig.bZComploc; if (late_ztest && bpmem.zmode.testenable) { if (!EfbInterface::ZCompare(Position[0], Position[1], Position[2])) From 5a3435255be0271023371eb524d8955703a7b503 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 15 Feb 2013 16:02:38 -0600 Subject: [PATCH 08/29] Reduce some DI command delays. Fix DKCR hanging with DSP HLE. My other games continue to work. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp index b6e3254d98..5d49f34488 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp @@ -477,7 +477,7 @@ int CWII_IPC_HLE_Device_di::GetCmdDelay(u32 _CommandAddress) u32 const Size = Memory::Read_U32(BufferIn + 0x04); // Delay depends on size of read, that makes sense, right? // More than ~1150K "bytes / sec" hangs NSMBWii on boot. - // Less than ~800K "bytes / sec" hangs DKCR randomly. + // Less than ~800K "bytes / sec" hangs DKCR randomly (ok, probably not true) return SystemTimers::GetTicksPerSecond() / 975000 * Size; break; } @@ -498,7 +498,8 @@ int CWII_IPC_HLE_Device_di::GetCmdDelay(u32 _CommandAddress) // case DVDLowClosePartition: default: // ranom numbers here! - return SystemTimers::GetTicksPerSecond() / 1500; + // More than ~1/2000th of a second hangs DKCR with DSP HLE, maybe. + return SystemTimers::GetTicksPerSecond() / 15000; break; } } From d994e56b60aa0f6fc2f1da333d0b320fcfbda018 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Fri, 15 Feb 2013 20:46:03 -0600 Subject: [PATCH 09/29] Changes/cleanup to TextureCache::Load and other mipmap related code. The significant change is what is now line 520 of TextureCacheBase.cpp: ((std::max(mipWidth, bsw) * std::max(mipHeight, bsh) * bsdepth) >> 1) to TexDecoder_GetTextureSizeInBytes(expanded_mip_width, expanded_mip_height, texformat); Fixes issue 5328. Fixes issue 5461. --- .../Core/VideoCommon/Src/TextureCacheBase.cpp | 217 +++++++++--------- .../Plugin_VideoDX11/Src/VertexManager.cpp | 2 +- .../Plugin_VideoDX9/Src/VertexManager.cpp | 2 +- .../Plugin_VideoOGL/Src/VertexManager.cpp | 2 +- 4 files changed, 114 insertions(+), 109 deletions(-) diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index f6e6911c12..d77caa94b3 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -84,35 +84,34 @@ TextureCache::~TextureCache() void TextureCache::OnConfigChanged(VideoConfig& config) { - if (!g_texture_cache) - goto skip_checks; - - // TODO: Invalidating texcache is really stupid in some of these cases - if (config.iSafeTextureCache_ColorSamples != backup_config.s_colorsamples || - config.bTexFmtOverlayEnable != backup_config.s_texfmt_overlay || - config.bTexFmtOverlayCenter != backup_config.s_texfmt_overlay_center || - config.bHiresTextures != backup_config.s_hires_textures) + if (g_texture_cache) { - g_texture_cache->Invalidate(); + // TODO: Invalidating texcache is really stupid in some of these cases + if (config.iSafeTextureCache_ColorSamples != backup_config.s_colorsamples || + config.bTexFmtOverlayEnable != backup_config.s_texfmt_overlay || + config.bTexFmtOverlayCenter != backup_config.s_texfmt_overlay_center || + config.bHiresTextures != backup_config.s_hires_textures) + { + g_texture_cache->Invalidate(); - if(g_ActiveConfig.bHiresTextures) - HiresTextures::Init(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + if(g_ActiveConfig.bHiresTextures) + HiresTextures::Init(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); - SetHash64Function(g_ActiveConfig.bHiresTextures || g_ActiveConfig.bDumpTextures); - TexDecoder_SetTexFmtOverlayOptions(g_ActiveConfig.bTexFmtOverlayEnable, g_ActiveConfig.bTexFmtOverlayCenter); + SetHash64Function(g_ActiveConfig.bHiresTextures || g_ActiveConfig.bDumpTextures); + TexDecoder_SetTexFmtOverlayOptions(g_ActiveConfig.bTexFmtOverlayEnable, g_ActiveConfig.bTexFmtOverlayCenter); + } + + // TODO: Probably shouldn't clear all render targets here, just mark them dirty or something. + if (config.bEFBCopyCacheEnable != backup_config.s_copy_cache_enable || // TODO: not sure if this is needed? + config.bCopyEFBToTexture != backup_config.s_copy_efb_to_texture || + config.bCopyEFBScaled != backup_config.s_copy_efb_scaled || + config.bEFBCopyEnable != backup_config.s_copy_efb || + config.iEFBScale != backup_config.s_efb_scale) + { + g_texture_cache->ClearRenderTargets(); + } } - - // TODO: Probably shouldn't clear all render targets here, just mark them dirty or something. - if (config.bEFBCopyCacheEnable != backup_config.s_copy_cache_enable || // TODO: not sure if this is needed? - config.bCopyEFBToTexture != backup_config.s_copy_efb_to_texture || - config.bCopyEFBScaled != backup_config.s_copy_efb_scaled || - config.bEFBCopyEnable != backup_config.s_copy_efb || - config.iEFBScale != backup_config.s_efb_scale) - { - g_texture_cache->ClearRenderTargets(); - } - -skip_checks: + backup_config.s_colorsamples = config.iSafeTextureCache_ColorSamples; backup_config.s_copy_efb_to_texture = config.bCopyEFBToTexture; backup_config.s_copy_efb_scaled = config.bCopyEFBScaled; @@ -301,14 +300,30 @@ void TextureCache::DumpTexture(TCacheEntryBase* entry, unsigned int level) entry->Save(szTemp, level); } -TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, - u32 address, unsigned int width, unsigned int height, int texformat, - unsigned int tlutaddr, int tlutfmt, bool use_mipmaps, unsigned int maxlevel, bool from_tmem) +static u32 CalculateLevelSize(u32 level_0_size, u32 level) +{ + return (level_0_size + ((1 << level) - 1)) >> level; +} + +// Used by TextureCache::Load +static TextureCache::TCacheEntryBase* ReturnEntry(unsigned int stage, TextureCache::TCacheEntryBase* entry) +{ + entry->frameCount = frameCount; + entry->Bind(stage); + + GFX_DEBUGGER_PAUSE_AT(NEXT_TEXTURE_CHANGE, true); + + return entry; +} + +TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, + u32 const address, unsigned int width, unsigned int height, int const texformat, + unsigned int const tlutaddr, int const tlutfmt, bool const use_mipmaps, unsigned int const maxlevel, bool const from_tmem) { if (0 == address) return NULL; - // TexelSizeInNibbles(format)*width*height/16; + // TexelSizeInNibbles(format) * width * height / 16; const unsigned int bsw = TexDecoder_GetBlockWidthInTexels(texformat) - 1; const unsigned int bsh = TexDecoder_GetBlockHeightInTexels(texformat) - 1; @@ -317,11 +332,9 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, const unsigned int nativeW = width; const unsigned int nativeH = height; - bool using_custom_texture = false; - bool using_custom_lods = false; - u32 texID = address; - u64 tex_hash = TEXHASH_INVALID; // Hash assigned to texcache entry (also used to generate filenames used for texture dumping and custom texture lookup) + // Hash assigned to texcache entry (also used to generate filenames used for texture dumping and custom texture lookup) + u64 tex_hash = TEXHASH_INVALID; u64 tlut_hash = TEXHASH_INVALID; u32 full_format = texformat; @@ -332,9 +345,12 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, full_format = texformat | (tlutfmt << 16); const u32 texture_size = TexDecoder_GetTextureSizeInBytes(expandedWidth, expandedHeight, texformat); - u8* src_data; - if (from_tmem) src_data = &texMem[bpmem.tex[stage/4].texImage1[stage%4].tmem_even * TMEM_LINE_SIZE]; - else src_data = Memory::GetPointer(address); + + const u8* src_data; + if (from_tmem) + src_data = &texMem[bpmem.tex[stage / 4].texImage1[stage % 4].tmem_even * TMEM_LINE_SIZE]; + else + src_data = Memory::GetPointer(address); // TODO: This doesn't hash GB tiles for preloaded RGBA8 textures (instead, it's hashing more data from the low tmem bank than it should) tex_hash = GetHash64(src_data, texture_size, g_ActiveConfig.iSafeTextureCache_ColorSamples); @@ -369,15 +385,17 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, { entry->type = TCET_EC_VRAM; - // TODO: Print a warning if the format changes! In this case, we could reinterpret the internal texture object data to the new pixel format (similiar to what is already being done in Renderer::ReinterpretPixelFormat()) - goto return_entry; + // TODO: Print a warning if the format changes! In this case, + // we could reinterpret the internal texture object data to the new pixel format + // (similiar to what is already being done in Renderer::ReinterpretPixelFormat()) + return ReturnEntry(stage, entry); } // 2. b) For normal textures, all texture parameters need to match if (address == entry->addr && tex_hash == entry->hash && full_format == entry->format && entry->num_mipmaps > maxlevel && entry->native_width == nativeW && entry->native_height == nativeH) { - goto return_entry; + return ReturnEntry(stage, entry); } // 3. If we reach this line, we'll have to upload the new texture data to VRAM. @@ -385,7 +403,8 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, // // TODO: Don't we need to force texture decoding to RGBA8 for dynamic EFB copies? // TODO: Actually, it should be enough if the internal texture format matches... - if ((entry->type == TCET_NORMAL && width == entry->virtual_width && height == entry->virtual_height && full_format == entry->format && entry->num_mipmaps > maxlevel) + if ((entry->type == TCET_NORMAL && width == entry->virtual_width && height == entry->virtual_height + && full_format == entry->format && entry->num_mipmaps > maxlevel) || (entry->type == TCET_EC_DYNAMIC && entry->native_width == width && entry->native_height == height)) { // reuse the texture @@ -398,9 +417,11 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, } } + bool using_custom_texture = false; if (g_ActiveConfig.bHiresTextures) { + // This function may modify width/height. pcfmt = LoadCustomTexture(tex_hash, texformat, 0, width, height); if (pcfmt != PC_TEX_FMT_NONE) { @@ -431,21 +452,25 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, } } - unsigned int texLevels; - bool use_native_mips; - texLevels = use_mipmaps ? (maxlevel + 1) : 1; - using_custom_lods = using_custom_texture && CheckForCustomTextureLODs(tex_hash, texformat, texLevels); - use_native_mips = use_mipmaps && !using_custom_lods && (width == nativeW && height == nativeH); // Only load native mips if their dimensions fit to our virtual texture dimensions + u32 texLevels = use_mipmaps ? (maxlevel + 1) : 1; + const bool using_custom_lods = using_custom_texture && CheckForCustomTextureLODs(tex_hash, texformat, texLevels); + // Only load native mips if their dimensions fit to our virtual texture dimensions + const bool use_native_mips = use_mipmaps && !using_custom_lods && (width == nativeW && height == nativeH); texLevels = (use_native_mips || using_custom_lods) ? texLevels : 1; // create the entry/texture - if (NULL == entry) { + if (NULL == entry) + { textures[texID] = entry = g_texture_cache->CreateTexture(width, height, expandedWidth, texLevels, pcfmt); // Sometimes, we can get around recreating a texture if only the number of mip levels changes // e.g. if our texture cache entry got too many mipmap levels we can limit the number of used levels by setting the appropriate render states // Thus, we don't update this member for every Load, but just whenever the texture gets recreated // TODO: D3D9 doesn't support min_lod. We should add a workaround for that here! + + // TODO: This is the wrong value. We should be storing the number of levels our actual texture has. + // But that will currently make the above "existing entry" tests fail as "texLevels" is not calculated until after. + // Currently, we might try to reuse a texture which appears to have more levels than actual, maybe.. entry->num_mipmaps = maxlevel + 1; entry->type = TCET_NORMAL; @@ -464,78 +489,58 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int stage, if (g_ActiveConfig.bDumpTextures && !using_custom_texture) DumpTexture(entry, 0); + u32 level = 1; // load mips - TODO: Loading mipmaps from tmem is untested! - if (texLevels > 1 && pcfmt != PC_TEX_FMT_NONE && use_native_mips) + if (pcfmt != PC_TEX_FMT_NONE) { - const unsigned int bsdepth = TexDecoder_GetTexelSizeInNibbles(texformat); - - unsigned int level = 1; - unsigned int mipWidth = (width + 1) >> 1; - unsigned int mipHeight = (height + 1) >> 1; - - u8* ptr_even = NULL, *ptr_odd = NULL; - if (from_tmem) + if (use_native_mips) { - ptr_even = &texMem[bpmem.tex[stage/4].texImage1[stage%4].tmem_even * TMEM_LINE_SIZE + texture_size]; - ptr_odd = &texMem[bpmem.tex[stage/4].texImage2[stage%4].tmem_odd * TMEM_LINE_SIZE]; + src_data += texture_size; + + const u8* ptr_even = NULL; + const u8* ptr_odd = NULL; + if (from_tmem) + { + ptr_even = &texMem[bpmem.tex[stage/4].texImage1[stage%4].tmem_even * TMEM_LINE_SIZE + texture_size]; + ptr_odd = &texMem[bpmem.tex[stage/4].texImage2[stage%4].tmem_odd * TMEM_LINE_SIZE]; + } + + for (; level != texLevels; ++level) + { + const u32 mip_width = CalculateLevelSize(width, level); + const u32 mip_height = CalculateLevelSize(height, level); + const u32 expanded_mip_width = (mip_width + bsw) & (~bsw); + const u32 expanded_mip_height = (mip_height + bsh) & (~bsh); + + const u8*& mip_src_data = from_tmem + ? ((level % 2) ? ptr_odd : ptr_even) + : src_data; + TexDecoder_Decode(temp, mip_src_data, expanded_mip_width, expanded_mip_height, texformat, tlutaddr, tlutfmt, g_ActiveConfig.backend_info.bUseRGBATextures); + mip_src_data += TexDecoder_GetTextureSizeInBytes(expanded_mip_width, expanded_mip_height, texformat); + + entry->Load(mip_width, mip_height, expanded_mip_width, level); + + if (g_ActiveConfig.bDumpTextures) + DumpTexture(entry, level); + } } - src_data += texture_size; - - while ((mipHeight || mipWidth) && (level < texLevels)) + else if (using_custom_lods) { - u8** ptr; - if (from_tmem) ptr = (level % 2) ? &ptr_odd : &ptr_even; - else ptr = &src_data; + for (; level != texLevels; ++level) + { + unsigned int mip_width = CalculateLevelSize(width, level); + unsigned int mip_height = CalculateLevelSize(height, level); - const unsigned int currentWidth = (mipWidth > 0) ? mipWidth : 1; - const unsigned int currentHeight = (mipHeight > 0) ? mipHeight : 1; - - expandedWidth = (currentWidth + bsw) & (~bsw); - expandedHeight = (currentHeight + bsh) & (~bsh); - - TexDecoder_Decode(temp, *ptr, expandedWidth, expandedHeight, texformat, tlutaddr, tlutfmt, g_ActiveConfig.backend_info.bUseRGBATextures); - entry->Load(currentWidth, currentHeight, expandedWidth, level); - - if (g_ActiveConfig.bDumpTextures) - DumpTexture(entry, level); - - *ptr += ((std::max(mipWidth, bsw) * std::max(mipHeight, bsh) * bsdepth) >> 1); - mipWidth >>= 1; - mipHeight >>= 1; - ++level; - } - } - else if (texLevels > 1 && pcfmt != PC_TEX_FMT_NONE && using_custom_lods) - { - unsigned int level = 1; - unsigned int mipWidth = (width + 1) >> 1; - unsigned int mipHeight = (height + 1) >> 1; - - while ((mipHeight || mipWidth) && (level < texLevels)) - { - unsigned int currentWidth = (mipWidth > 0) ? mipWidth : 1; - unsigned int currentHeight = (mipHeight > 0) ? mipHeight : 1; - - LoadCustomTexture(tex_hash, texformat, level, currentWidth, currentHeight); - entry->Load(currentWidth, currentHeight, currentWidth, level); - - mipWidth >>= 1; - mipHeight >>= 1; - ++level; + LoadCustomTexture(tex_hash, texformat, level, mip_width, mip_height); + entry->Load(mip_width, mip_height, mip_width, level); + } } } INCSTAT(stats.numTexturesCreated); SETSTAT(stats.numTexturesAlive, textures.size()); -return_entry: - - entry->frameCount = frameCount; - entry->Bind(stage); - - GFX_DEBUGGER_PAUSE_AT(NEXT_TEXTURE_CHANGE, true); - - return entry; + return ReturnEntry(stage, entry); } void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat, unsigned int srcFormat, diff --git a/Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp index 4bcb4befb8..ab8ed68654 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/VertexManager.cpp @@ -238,7 +238,7 @@ void VertexManager::vFlush() tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, tex.texTlut[i&3].tlut_format, (tex.texMode0[i&3].min_filter & 3), - ceil(tex.texMode1[i&3].max_lod / 16.f), + (tex.texMode1[i&3].max_lod + 0xf) / 0x10, tex.texImage1[i&3].image_type); if (tentry) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp index d8e2462f51..661cf36e76 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp @@ -334,7 +334,7 @@ void VertexManager::vFlush() tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, tex.texTlut[i&3].tlut_format, (tex.texMode0[i&3].min_filter & 3), - ceil(tex.texMode1[i&3].max_lod / 16.f), + (tex.texMode1[i&3].max_lod + 0xf) / 0x10, tex.texImage1[i&3].image_type); if (tentry) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp index 8e9feb2c39..6ea10fc077 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/VertexManager.cpp @@ -165,7 +165,7 @@ void VertexManager::vFlush() tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, tex.texTlut[i&3].tlut_format, (tex.texMode0[i&3].min_filter & 3), - ceil(tex.texMode1[i&3].max_lod / 16.f), + (tex.texMode1[i&3].max_lod + 0xf) / 0x10, tex.texImage1[i&3].image_type); if (tentry) From 1792a9d27b0f34c7fa599882140e13596249d7f4 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 17 Feb 2013 15:03:10 +1100 Subject: [PATCH 10/29] Added the ability to reverse the direction of the force feedback by allowing negative range values. Fixes issue 5981. --- Source/Core/DolphinWX/Src/InputConfigDiag.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp index 8cdd2e16cb..1efcf98af6 100644 --- a/Source/Core/DolphinWX/Src/InputConfigDiag.cpp +++ b/Source/Core/DolphinWX/Src/InputConfigDiag.cpp @@ -519,7 +519,7 @@ wxStaticBoxSizer* ControlDialog::CreateControlChooser(GamepadPage* const parent) button_sizer->Add(add_button, 1, 0, 5); } - range_slider = new wxSlider(this, -1, SLIDER_TICK_COUNT, 0, SLIDER_TICK_COUNT * 5, wxDefaultPosition, wxDefaultSize, wxSL_TOP | wxSL_LABELS /*| wxSL_AUTOTICKS*/); + range_slider = new wxSlider(this, -1, SLIDER_TICK_COUNT, -SLIDER_TICK_COUNT * 5, SLIDER_TICK_COUNT * 5, wxDefaultPosition, wxDefaultSize, wxSL_TOP | wxSL_LABELS /*| wxSL_AUTOTICKS*/); range_slider->SetValue((int)(control_reference->range * SLIDER_TICK_COUNT)); From 123035a192d83e171e6775812dc38e5fbe75257d Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 17 Feb 2013 15:27:15 +1100 Subject: [PATCH 11/29] Bulk send TCP data to the client with the emulated USB Gecko. Fixes issue 6006. --- Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp index 93b7cd5d09..2a051ad14a 100644 --- a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp +++ b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp @@ -134,10 +134,16 @@ void GeckoSockServer::ClientThread() if (send_fifo.size()) { - if (client.Send((char*)&send_fifo.front(), sizeof(u8)) + char* packet = new char[send_fifo.size()]; + int i = 0; + while(send_fifo.size()) + { + packet[i++] = send_fifo.front(); + send_fifo.pop(); + } + if (client.Send(packet, sizeof(u8)*i) == sf::Socket::Disconnected) client_running = false; - send_fifo.pop(); } } // unlock transfer From 537d5ea9429390f5924f4e2cc3adeef4260370f0 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 16 Feb 2013 23:42:00 -0600 Subject: [PATCH 12/29] Use omp_get_num_procs to set the number of OpenMP threads rather than our core count detection. --- Source/Core/VideoCommon/Src/TextureDecoder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.cpp b/Source/Core/VideoCommon/Src/TextureDecoder.cpp index 44efcf8bae..30df817902 100644 --- a/Source/Core/VideoCommon/Src/TextureDecoder.cpp +++ b/Source/Core/VideoCommon/Src/TextureDecoder.cpp @@ -692,7 +692,7 @@ inline void SetOpenMPThreadCount(int width, int height) if (g_ActiveConfig.bOMPDecoder && width > 127 && height > 127) { // don't span to many threads they will kill the rest of the emu :) - omp_set_num_threads((cpu_info.num_cores + 2) / 3); + omp_set_num_threads((omp_get_num_procs() + 2) / 3); } else { From 206fdde9332859b53a22d415d3db304d997e8540 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 16 Feb 2013 23:44:50 -0600 Subject: [PATCH 13/29] Remove the core count from the cpu info OSD message. It was often wrong and not rather important. --- Source/Core/Common/Src/CPUDetect.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Source/Core/Common/Src/CPUDetect.cpp b/Source/Core/Common/Src/CPUDetect.cpp index 65cd6dbd0b..282929e7b2 100644 --- a/Source/Core/Common/Src/CPUDetect.cpp +++ b/Source/Core/Common/Src/CPUDetect.cpp @@ -205,14 +205,7 @@ void CPUInfo::Detect() // Turn the cpu info into a string we can show std::string CPUInfo::Summarize() { - std::string sum; - if (num_cores == 1) - sum = StringFromFormat("%s, %i core", cpu_string, num_cores); - else - { - sum = StringFromFormat("%s, %i cores", cpu_string, num_cores); - if (HTT) sum += StringFromFormat(" (%i logical threads per physical core)", logical_cpu_count); - } + std::string sum(cpu_string); if (bSSE) sum += ", SSE"; if (bSSE2) sum += ", SSE2"; if (bSSE3) sum += ", SSE3"; From 9ac2fbb0a5f0af21a2a539a7655cfa7e15801ab1 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 00:19:42 -0600 Subject: [PATCH 14/29] Fix a memleak. Probably/maybe improve USBGecko performance. --- Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp | 49 ++++++++++++--------- Source/Core/Core/Src/HW/EXI_DeviceGecko.h | 6 ++- 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp index 2a051ad14a..26e220d7cf 100644 --- a/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp +++ b/Source/Core/Core/Src/HW/EXI_DeviceGecko.cpp @@ -98,8 +98,8 @@ bool GeckoSockServer::GetAvailableSock(sf::SocketTCP &sock_to_fill) client_running = false; clientThread.join(); - recv_fifo = std::queue(); - send_fifo = std::queue(); + recv_fifo = std::deque(); + send_fifo = std::deque(); } clientThread = std::thread(std::mem_fun(&GeckoSockServer::ClientThread), this); client_count++; @@ -120,34 +120,39 @@ void GeckoSockServer::ClientThread() while (client_running) { - u8 data; - std::size_t got = 0; + bool did_nothing = true; { std::lock_guard lk(transfer_lock); - if (client.Receive((char*)&data, sizeof(data), got) - == sf::Socket::Disconnected) + // what's an ideal buffer size? + char data[128]; + std::size_t got = 0; + + if (client.Receive(&data[0], ARRAYSIZE(data), got) == sf::Socket::Disconnected) client_running = false; - if (got) - recv_fifo.push(data); - - if (send_fifo.size()) + + if (got != 0) { - char* packet = new char[send_fifo.size()]; - int i = 0; - while(send_fifo.size()) - { - packet[i++] = send_fifo.front(); - send_fifo.pop(); - } - if (client.Send(packet, sizeof(u8)*i) - == sf::Socket::Disconnected) + did_nothing = false; + + recv_fifo.insert(recv_fifo.end(), &data[0], &data[got]); + } + + if (!send_fifo.empty()) + { + did_nothing = false; + + std::vector packet(send_fifo.begin(), send_fifo.end()); + send_fifo.clear(); + + if (client.Send(&packet[0], packet.size()) == sf::Socket::Disconnected) client_running = false; } } // unlock transfer - SLEEP(1); + if (did_nothing) + Common::YieldCPU(); } client.Close(); @@ -186,7 +191,7 @@ void CEXIGecko::ImmReadWrite(u32 &_uData, u32 _uSize) if (!recv_fifo.empty()) { _uData = 0x08000000 | (recv_fifo.front() << 16); - recv_fifo.pop(); + recv_fifo.pop_front(); } break; } @@ -196,7 +201,7 @@ void CEXIGecko::ImmReadWrite(u32 &_uData, u32 _uSize) case CMD_SEND: { std::lock_guard lk(transfer_lock); - send_fifo.push(_uData >> 20); + send_fifo.push_back(_uData >> 20); _uData = 0x04000000; break; } diff --git a/Source/Core/Core/Src/HW/EXI_DeviceGecko.h b/Source/Core/Core/Src/HW/EXI_DeviceGecko.h index 9b427e21c8..da055b3c8a 100644 --- a/Source/Core/Core/Src/HW/EXI_DeviceGecko.h +++ b/Source/Core/Core/Src/HW/EXI_DeviceGecko.h @@ -20,6 +20,8 @@ #include "SFML/Network.hpp" #include "Thread.h" + +#include #include class GeckoSockServer @@ -36,8 +38,8 @@ public: std::thread clientThread; std::mutex transfer_lock; - std::queue send_fifo; - std::queue recv_fifo; + std::deque send_fifo; + std::deque recv_fifo; private: static int client_count; From 333084250591d0cd2e88ebdb722a36003c2ae213 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 01:33:22 -0600 Subject: [PATCH 15/29] Let's not CreateDir an empty string every time CreateFullPath is used, logging an error every time. --- Source/Core/Common/Src/FileUtil.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index d74c99b7a2..8e1bec2809 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -196,8 +196,9 @@ bool CreateFullPath(const std::string &fullPath) // we're done, yay! if (position == fullPath.npos) return true; - - std::string subPath = fullPath.substr(0, position); + + // Include the '/' so the first call is CreateDir("/") rather than CreateDir("") + std::string const subPath(fullPath.substr(0, position + 1)); if (!File::IsDirectory(subPath)) File::CreateDir(subPath); From bf4be1d8d1f6d4d8d7b240aa4aa5288e6b6e83c8 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 01:57:25 -0600 Subject: [PATCH 16/29] Change some CNANDContentLoader logic to what was probably intended. Kills some warn logs when opening Dolphin. --- Source/Core/DiscIO/Src/NANDContentLoader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/DiscIO/Src/NANDContentLoader.cpp b/Source/Core/DiscIO/Src/NANDContentLoader.cpp index dc1f44739b..3c00d66be5 100644 --- a/Source/Core/DiscIO/Src/NANDContentLoader.cpp +++ b/Source/Core/DiscIO/Src/NANDContentLoader.cpp @@ -215,7 +215,7 @@ bool CNANDContentLoader::Initialize(const std::string& _rName) { std::string TMDFileName(m_Path); - if (File::IsDirectory(TMDFileName)) + if ('/' == *TMDFileName.rbegin()) TMDFileName += "title.tmd"; else m_Path = TMDFileName.substr(0, TMDFileName.find("title.tmd")); From 0cdd4434b9ce7f6b34d32f79c5fe23eb61602b52 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 12:51:12 -0600 Subject: [PATCH 17/29] Removing destination on rename when source isn't present doesn't make sense. IOCTL_RENAME_FILE still might not be totally correct. Fixes issue 5440. --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 2 +- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index 1fe6986179..2d5c86f800 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -353,7 +353,7 @@ void ExecuteCommand(u32 _Address) Memory::GetString(DeviceName, Memory::Read_U32(_Address + 0xC)); - WARN_LOG(WII_IPC_HLE, "Tried to open %s as %d", DeviceName.c_str(), DeviceID); + WARN_LOG(WII_IPC_HLE, "Trying to open %s as %d", DeviceName.c_str(), DeviceID); if (DeviceID >= 0) { if (DeviceName.find("/dev/es") == 0) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp index ecc4be0cb0..38100e5d7a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_fs.cpp @@ -428,7 +428,7 @@ s32 CWII_IPC_HLE_Device_fs::ExecuteCommand(u32 _Parameter, u32 _BufferIn, u32 _B File::CreateFullPath(FilenameRename); // if there is already a file, delete it - if (File::Exists(FilenameRename)) + if (File::Exists(Filename) && File::Exists(FilenameRename)) { File::Delete(FilenameRename); } From fa9aafeed8753b0fd8f039d3d740b97c1bfad4dd Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 13:30:04 -0600 Subject: [PATCH 18/29] Some cleanup of CWII_IPC_HLE_Device_FileIO: The real file was never kept open for longer than a single operation so there was no point in dealing with it in DoState. Saving the real path in the savestate was also probably a bad idea. Savestates should be a bit more portable now. --- Source/Core/Common/Src/FileUtil.cpp | 19 +++ Source/Core/Common/Src/FileUtil.h | 8 +- .../Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp | 115 ++++++------------ .../Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h | 9 +- Source/Core/Core/Src/State.cpp | 2 +- 5 files changed, 63 insertions(+), 90 deletions(-) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index 8e1bec2809..d6ab33962a 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -42,6 +42,7 @@ #endif #include +#include #include #ifndef S_ISDIR @@ -774,6 +775,24 @@ IOFile::~IOFile() Close(); } +IOFile::IOFile(IOFile&& other) + : m_file(NULL), m_good(true) +{ + Swap(other); +} + +IOFile& IOFile::operator=(IOFile other) +{ + Swap(other); + return *this; +} + +void IOFile::Swap(IOFile& other) +{ + std::swap(m_file, other.m_file); + std::swap(m_good, other.m_good); +} + bool IOFile::Open(const std::string& filename, const char openmode[]) { Close(); diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h index 451b1b6929..2c8bf8f64b 100644 --- a/Source/Core/Common/Src/FileUtil.h +++ b/Source/Core/Common/Src/FileUtil.h @@ -150,7 +150,7 @@ bool ReadFileToString(bool text_file, const char *filename, std::string &str); // simple wrapper for cstdlib file functions to // hopefully will make error checking easier // and make forgetting an fclose() harder -class IOFile : NonCopyable +class IOFile { public: IOFile(); @@ -158,6 +158,11 @@ public: IOFile(const std::string& filename, const char openmode[]); ~IOFile(); + + IOFile(IOFile&& other); + IOFile& operator=(IOFile other); + + void Swap(IOFile& other); bool Open(const std::string& filename, const char openmode[]); bool Close(); @@ -212,6 +217,7 @@ public: void Clear() { m_good = true; std::clearerr(m_file); } private: + IOFile(const IOFile&) /*= delete*/; IOFile& operator=(const IOFile&) /*= delete*/; std::FILE* m_file; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp index 2061a106e0..d65a009a2a 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp @@ -28,17 +28,16 @@ static Common::replace_v replacements; -// This is used by several of the FileIO and /dev/fs functions -std::string HLE_IPC_BuildFilename(const char* _pFilename, int _size) +// This is used by several of the FileIO and /dev/fs functions +std::string HLE_IPC_BuildFilename(std::string path_wii, int _size) { std::string path_full = File::GetUserPath(D_WIIROOT_IDX); - std::string path_wii(_pFilename); if ((path_wii.length() > 0) && (path_wii[1] == '0')) path_full += std::string("/title"); // this looks and feel like a hack... // Replaces chars that FAT32 can't support with strings defined in /sys/replace - for (Common::replace_v::const_iterator i = replacements.begin(); i != replacements.end(); ++i) + for (auto i = replacements.begin(); i != replacements.end(); ++i) { for (size_t j = 0; (j = path_wii.find(i->first, j)) != path_wii.npos; ++j) path_wii.replace(j, 1, i->second); @@ -82,9 +81,8 @@ void HLE_IPC_CreateVirtualFATFilesystem() } } -CWII_IPC_HLE_Device_FileIO::CWII_IPC_HLE_Device_FileIO(u32 _DeviceID, const std::string& _rDeviceName) +CWII_IPC_HLE_Device_FileIO::CWII_IPC_HLE_Device_FileIO(u32 _DeviceID, const std::string& _rDeviceName) : IWII_IPC_HLE_Device(_DeviceID, _rDeviceName, false) // not a real hardware - , m_pFileHandle(NULL) , m_Mode(0) , m_SeekPos(0) { @@ -108,12 +106,9 @@ bool CWII_IPC_HLE_Device_FileIO::Close(u32 _CommandAddress, bool _bForce) } bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) -{ +{ m_Mode = _Mode; u32 ReturnValue = 0; - - // close the file handle if we get a reopen - //m_pFileHandle.Close(); static const char* const Modes[] = { @@ -122,20 +117,18 @@ bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) "Write only", "Read and Write" }; - - m_Filename = std::string(HLE_IPC_BuildFilename(m_Name.c_str(), 64)); - // The file must exist before we can open it // It should be created by ISFS_CreateFile, not here - if (File::Exists(m_Filename)) + auto const filename = HLE_IPC_BuildFilename(m_Name, 64); + if (File::Exists(filename)) { INFO_LOG(WII_IPC_FILEIO, "FileIO: Open %s (%s == %08X)", m_Name.c_str(), Modes[_Mode], _Mode); ReturnValue = m_DeviceID; } else { - WARN_LOG(WII_IPC_FILEIO, "FileIO: Open (%s) failed - File doesn't exist %s", Modes[_Mode], m_Filename.c_str()); + WARN_LOG(WII_IPC_FILEIO, "FileIO: Open (%s) failed - File doesn't exist %s", Modes[_Mode], filename.c_str()); ReturnValue = FS_FILE_NOT_EXIST; } @@ -145,55 +138,43 @@ bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) return true; } - - -bool CWII_IPC_HLE_Device_FileIO::OpenFile() +File::IOFile CWII_IPC_HLE_Device_FileIO::OpenFile() { + const char* open_mode = ""; + switch (m_Mode) { case ISFS_OPEN_READ: - { - m_pFileHandle.Open(m_Filename, "rb"); + open_mode = "rb"; break; - } + case ISFS_OPEN_WRITE: - { - m_pFileHandle.Open(m_Filename, "r+b"); - break; - } case ISFS_OPEN_RW: - { - m_pFileHandle.Open(m_Filename, "r+b"); + open_mode = "r+b"; break; - } + default: - { PanicAlertT("FileIO: Unknown open mode : 0x%02x", m_Mode); break; } - } - return m_pFileHandle.IsOpen(); + + return File::IOFile(HLE_IPC_BuildFilename(m_Name, 64), open_mode); } -void CWII_IPC_HLE_Device_FileIO::CloseFile() -{ - m_pFileHandle.Close(); -} - -bool CWII_IPC_HLE_Device_FileIO::Seek(u32 _CommandAddress) +bool CWII_IPC_HLE_Device_FileIO::Seek(u32 _CommandAddress) { u32 ReturnValue = FS_RESULT_FATAL; const u32 SeekPosition = Memory::Read_U32(_CommandAddress + 0xC); const u32 Mode = Memory::Read_U32(_CommandAddress + 0x10); - - if (OpenFile()) + if (auto file = OpenFile()) { ReturnValue = FS_RESULT_FATAL; - const u64 fileSize = m_pFileHandle.GetSize(); + const u64 fileSize = file.GetSize(); INFO_LOG(WII_IPC_FILEIO, "FileIO: Seek Pos: 0x%08x, Mode: %i (%s, Length=0x%08llx)", SeekPosition, Mode, m_Name.c_str(), fileSize); - switch (Mode){ + switch (Mode) + { case 0: { if (SeekPosition <= fileSize) @@ -230,7 +211,6 @@ bool CWII_IPC_HLE_Device_FileIO::Seek(u32 _CommandAddress) break; } } - CloseFile(); } else { @@ -248,18 +228,18 @@ bool CWII_IPC_HLE_Device_FileIO::Read(u32 _CommandAddress) const u32 Size = Memory::Read_U32(_CommandAddress + 0x10); - if (OpenFile()) + if (auto file = OpenFile()) { - if (m_Mode == ISFS_OPEN_WRITE) + if (m_Mode == ISFS_OPEN_WRITE) { WARN_LOG(WII_IPC_FILEIO, "FileIO: Attempted to read 0x%x bytes to 0x%08x on write-only file %s", Size, Address, m_Name.c_str()); } - else + else { INFO_LOG(WII_IPC_FILEIO, "FileIO: Read 0x%x bytes to 0x%08x from %s", Size, Address, m_Name.c_str()); - m_pFileHandle.Seek(m_SeekPos, SEEK_SET); - ReturnValue = (u32)fread(Memory::GetPointer(Address), 1, Size, m_pFileHandle.GetHandle()); - if (ReturnValue != Size && ferror(m_pFileHandle.GetHandle())) + file.Seek(m_SeekPos, SEEK_SET); + ReturnValue = (u32)fread(Memory::GetPointer(Address), 1, Size, file.GetHandle()); + if (ReturnValue != Size && ferror(file.GetHandle())) { ReturnValue = FS_EACCESS; } @@ -269,7 +249,6 @@ bool CWII_IPC_HLE_Device_FileIO::Read(u32 _CommandAddress) } } - CloseFile(); } else { @@ -288,23 +267,22 @@ bool CWII_IPC_HLE_Device_FileIO::Write(u32 _CommandAddress) const u32 Size = Memory::Read_U32(_CommandAddress + 0x10); - if (OpenFile()) + if (auto file = OpenFile()) { - if (m_Mode == ISFS_OPEN_READ) + if (m_Mode == ISFS_OPEN_READ) { WARN_LOG(WII_IPC_FILEIO, "FileIO: Attempted to write 0x%x bytes from 0x%08x to read-only file %s", Size, Address, m_Name.c_str()); } else { INFO_LOG(WII_IPC_FILEIO, "FileIO: Write 0x%04x bytes from 0x%08x to %s", Size, Address, m_Name.c_str()); - m_pFileHandle.Seek(m_SeekPos, SEEK_SET); - if (m_pFileHandle.WriteBytes(Memory::GetPointer(Address), Size)) + file.Seek(m_SeekPos, SEEK_SET); + if (file.WriteBytes(Memory::GetPointer(Address), Size)) { ReturnValue = Size; m_SeekPos += Size; } } - CloseFile(); } else { @@ -329,9 +307,9 @@ bool CWII_IPC_HLE_Device_FileIO::IOCtl(u32 _CommandAddress) { case ISFS_IOCTL_GETFILESTATS: { - if (OpenFile()) + if (auto file = OpenFile()) { - u32 m_FileLength = (u32)m_pFileHandle.GetSize(); + u32 m_FileLength = (u32)file.GetSize(); const u32 BufferOut = Memory::Read_U32(_CommandAddress + 0x18); INFO_LOG(WII_IPC_FILEIO, "FileIO: ISFS_IOCTL_GETFILESTATS"); @@ -339,7 +317,6 @@ bool CWII_IPC_HLE_Device_FileIO::IOCtl(u32 _CommandAddress) Memory::Write_U32(m_FileLength, BufferOut); Memory::Write_U32(m_SeekPos, BufferOut+4); - CloseFile(); } else { @@ -365,30 +342,6 @@ void CWII_IPC_HLE_Device_FileIO::DoState(PointerWrap &p) { DoStateShared(p); - bool have_file_handle = (m_pFileHandle != 0); - s32 seek = (have_file_handle) ? (s32)m_pFileHandle.Tell() : 0; - - p.Do(have_file_handle); p.Do(m_Mode); - p.Do(seek); p.Do(m_SeekPos); - p.Do(m_Filename); - - if (p.GetMode() == PointerWrap::MODE_READ) - { - int mode = m_Mode; - bool active = m_Active; - if (have_file_handle) - { - Open(0, m_Mode); - _dbg_assert_msg_(WII_IPC_HLE, m_pFileHandle, "bad filehandle"); - } - else - Close(0, true); - m_Mode = mode; - m_Active = active; - } - - if (have_file_handle) - m_pFileHandle.Seek(seek, SEEK_SET); } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h index ff34a43a20..1ac839e70d 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h @@ -21,7 +21,7 @@ #include "WII_IPC_HLE_Device.h" #include "FileUtil.h" -std::string HLE_IPC_BuildFilename(const char* _pFilename, int _size); +std::string HLE_IPC_BuildFilename(std::string _pFilename, int _size); void HLE_IPC_CreateVirtualFATFilesystem(); class CWII_IPC_HLE_Device_FileIO : public IWII_IPC_HLE_Device @@ -39,8 +39,7 @@ public: bool IOCtl(u32 _CommandAddress); void DoState(PointerWrap &p); - bool OpenFile(); - void CloseFile(); + File::IOFile OpenFile(); private: enum @@ -76,12 +75,8 @@ private: ISFS_IOCTL_SHUTDOWN }; - File::IOFile m_pFileHandle; u32 m_Mode; - u32 m_SeekPos; - - std::string m_Filename; }; #endif diff --git a/Source/Core/Core/Src/State.cpp b/Source/Core/Core/Src/State.cpp index 200642eccb..084a94e5f6 100644 --- a/Source/Core/Core/Src/State.cpp +++ b/Source/Core/Core/Src/State.cpp @@ -71,7 +71,7 @@ static Common::Event g_compressAndDumpStateSyncEvent; static std::thread g_save_thread; // Don't forget to increase this after doing changes on the savestate system -static const u32 STATE_VERSION = 12; +static const u32 STATE_VERSION = 13; struct StateHeader { From d0ea94a2aaa1909a4b53b158a4a8250ee7578ae4 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 17 Feb 2013 13:52:04 -0600 Subject: [PATCH 19/29] WII_IPC_HLE_Device_FileIO: don't rebuild the filename on every operation. --- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp | 11 +++++++---- .../Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp index d65a009a2a..711d360874 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.cpp @@ -118,17 +118,18 @@ bool CWII_IPC_HLE_Device_FileIO::Open(u32 _CommandAddress, u32 _Mode) "Read and Write" }; + m_filepath = HLE_IPC_BuildFilename(m_Name, 64); + // The file must exist before we can open it // It should be created by ISFS_CreateFile, not here - auto const filename = HLE_IPC_BuildFilename(m_Name, 64); - if (File::Exists(filename)) + if (File::Exists(m_filepath)) { INFO_LOG(WII_IPC_FILEIO, "FileIO: Open %s (%s == %08X)", m_Name.c_str(), Modes[_Mode], _Mode); ReturnValue = m_DeviceID; } else { - WARN_LOG(WII_IPC_FILEIO, "FileIO: Open (%s) failed - File doesn't exist %s", Modes[_Mode], filename.c_str()); + WARN_LOG(WII_IPC_FILEIO, "FileIO: Open (%s) failed - File doesn't exist %s", Modes[_Mode], m_filepath.c_str()); ReturnValue = FS_FILE_NOT_EXIST; } @@ -158,7 +159,7 @@ File::IOFile CWII_IPC_HLE_Device_FileIO::OpenFile() break; } - return File::IOFile(HLE_IPC_BuildFilename(m_Name, 64), open_mode); + return File::IOFile(m_filepath, open_mode); } bool CWII_IPC_HLE_Device_FileIO::Seek(u32 _CommandAddress) @@ -344,4 +345,6 @@ void CWII_IPC_HLE_Device_FileIO::DoState(PointerWrap &p) p.Do(m_Mode); p.Do(m_SeekPos); + + m_filepath = HLE_IPC_BuildFilename(m_Name, 64); } diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h index 1ac839e70d..3698d05c9f 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_FileIO.h @@ -77,6 +77,8 @@ private: u32 m_Mode; u32 m_SeekPos; + + std::string m_filepath; }; #endif From 19ab5bf50d511f9e73a896c9c610e8521fe7b583 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Mon, 18 Feb 2013 17:14:56 +0100 Subject: [PATCH 20/29] TextureCache: Fix D3D backends crashing when a game uses multiple 1x1-sized LODs. --- Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 11 ++++++++--- Source/Core/VideoCommon/Src/VideoConfig.cpp | 1 + Source/Core/VideoCommon/Src/VideoConfig.h | 1 + Source/Plugins/Plugin_VideoDX11/Src/main.cpp | 1 + Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 1 + Source/Plugins/Plugin_VideoOGL/Src/main.cpp | 1 + 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index d77caa94b3..fd935de342 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -318,7 +318,7 @@ static TextureCache::TCacheEntryBase* ReturnEntry(unsigned int stage, TextureCac TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, u32 const address, unsigned int width, unsigned int height, int const texformat, - unsigned int const tlutaddr, int const tlutfmt, bool const use_mipmaps, unsigned int const maxlevel, bool const from_tmem) + unsigned int const tlutaddr, int const tlutfmt, bool const use_mipmaps, unsigned int maxlevel, bool const from_tmem) { if (0 == address) return NULL; @@ -345,7 +345,7 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, full_format = texformat | (tlutfmt << 16); const u32 texture_size = TexDecoder_GetTextureSizeInBytes(expandedWidth, expandedHeight, texformat); - + const u8* src_data; if (from_tmem) src_data = &texMem[bpmem.tex[stage / 4].texImage1[stage % 4].tmem_even * TMEM_LINE_SIZE]; @@ -372,6 +372,11 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, tex_hash ^= tlut_hash; } + // D3D doesn't like when the specified mipmap count would require more than one 1x1-sized LOD in the mipmap chain + // e.g. 64x64 with 7 LODs would have the mipmap chain 64x64,32x32,16x16,8x8,4x4,2x2,1x1,1x1, so we limit the mipmap count to 6 there + while (g_ActiveConfig.backend_info.bUseMinimalMipCount && max(expandedWidth, expandedHeight) >> maxlevel == 0) + --maxlevel; + TCacheEntryBase *entry = textures[texID]; if (entry) { @@ -456,7 +461,7 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, const bool using_custom_lods = using_custom_texture && CheckForCustomTextureLODs(tex_hash, texformat, texLevels); // Only load native mips if their dimensions fit to our virtual texture dimensions const bool use_native_mips = use_mipmaps && !using_custom_lods && (width == nativeW && height == nativeH); - texLevels = (use_native_mips || using_custom_lods) ? texLevels : 1; + texLevels = (use_native_mips || using_custom_lods) ? texLevels : 1; // TODO: Should be forced to 1 for non-pow2 textures (e.g. efb copies with automatically adjusted IR) // create the entry/texture if (NULL == entry) diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp index 7418d60741..a76514a10c 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.cpp +++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp @@ -42,6 +42,7 @@ VideoConfig::VideoConfig() // disable all features by default backend_info.APIType = API_NONE; backend_info.bUseRGBATextures = false; + backend_info.bUseMinimalMipCount = false; backend_info.bSupports3DVision = false; } diff --git a/Source/Core/VideoCommon/Src/VideoConfig.h b/Source/Core/VideoCommon/Src/VideoConfig.h index 4364bea6ea..183fcf784c 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.h +++ b/Source/Core/VideoCommon/Src/VideoConfig.h @@ -157,6 +157,7 @@ struct VideoConfig std::vector PPShaders; // post-processing shaders bool bUseRGBATextures; // used for D3D11 in TextureCache + bool bUseMinimalMipCount; bool bSupports3DVision; bool bSupportsDualSourceBlend; // only supported by D3D11 and OpenGL bool bSupportsFormatReinterpretation; diff --git a/Source/Plugins/Plugin_VideoDX11/Src/main.cpp b/Source/Plugins/Plugin_VideoDX11/Src/main.cpp index cb348b8684..b7dd9101d3 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/main.cpp @@ -90,6 +90,7 @@ void InitBackendInfo() g_Config.backend_info.APIType = API_D3D11; g_Config.backend_info.bUseRGBATextures = true; // the GX formats barely match any D3D11 formats + g_Config.backend_info.bUseMinimalMipCount = true; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsDualSourceBlend = true; g_Config.backend_info.bSupportsFormatReinterpretation = true; diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index 5a80100a08..3c00e1d619 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -93,6 +93,7 @@ void InitBackendInfo() const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); g_Config.backend_info.APIType = shaderModel < 3 ? API_D3D9_SM20 :API_D3D9_SM30; g_Config.backend_info.bUseRGBATextures = false; + g_Config.backend_info.bUseMinimalMipCount = true; g_Config.backend_info.bSupports3DVision = true; g_Config.backend_info.bSupportsDualSourceBlend = false; g_Config.backend_info.bSupportsFormatReinterpretation = true; diff --git a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp index e57e3e210a..05f21beed1 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/main.cpp @@ -130,6 +130,7 @@ void InitBackendInfo() { g_Config.backend_info.APIType = API_OPENGL; g_Config.backend_info.bUseRGBATextures = false; + g_Config.backend_info.bUseMinimalMipCount = false; g_Config.backend_info.bSupports3DVision = false; g_Config.backend_info.bSupportsDualSourceBlend = false; // supported, but broken g_Config.backend_info.bSupportsFormatReinterpretation = false; From 718a1b5dedd7e2d3c9905b72a40080addd14b16e Mon Sep 17 00:00:00 2001 From: skidau Date: Tue, 19 Feb 2013 23:18:13 +1100 Subject: [PATCH 21/29] Fixed a buffer overflow in the OpenAL buffer. --- Source/Core/AudioCommon/Src/OpenALStream.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Source/Core/AudioCommon/Src/OpenALStream.cpp b/Source/Core/AudioCommon/Src/OpenALStream.cpp index 6b239a584c..7d1c45175b 100644 --- a/Source/Core/AudioCommon/Src/OpenALStream.cpp +++ b/Source/Core/AudioCommon/Src/OpenALStream.cpp @@ -200,6 +200,7 @@ void OpenALStream::SoundLoop() u64 num_samples_to_render = (audio_dma_period * ais_samples_per_second) / SystemTimers::GetTicksPerSecond(); unsigned int numSamples = (unsigned int)num_samples_to_render; + unsigned int minSamples = surround_capable ? 240 : 0; // DPL2 accepts 240 samples minimum (FWRDURATION) numSamples = (numSamples > OAL_MAX_SAMPLES) ? OAL_MAX_SAMPLES : numSamples; numSamples = m_mixer->Mix(realtimeBuffer, numSamples); @@ -236,9 +237,15 @@ void OpenALStream::SoundLoop() // Adjust SETTING_SEQUENCE_MS to balance between lag vs hollow audio soundTouch.setSetting(SETTING_SEQUENCE_MS, (int)(1 / (rate * rate))); soundTouch.setTempo(rate); + if (rate > 10) + { + soundTouch.clear(); + } } - unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * SURROUND_CHANNELS * OAL_MAX_BUFFERS); - if (nSamples > 0) + + unsigned int nSamples = soundTouch.receiveSamples(sampleBuffer, OAL_MAX_SAMPLES * SIZE_FLOAT * OAL_MAX_BUFFERS); + + if (nSamples > minSamples) { // Remove the Buffer from the Queue. (uiBuffer contains the Buffer ID for the unqueued Buffer) if (iBuffersFilled == 0) From 294cb165ba3449cc4fd96eabb5272e2984a58eb8 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 19 Feb 2013 22:39:28 -0600 Subject: [PATCH 22/29] Don't load level 0 twice for 1-level textures in DX11. --- Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp index 844cf24b47..ba05dc83d2 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp @@ -70,24 +70,19 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width, { D3D11_USAGE usage = D3D11_USAGE_DEFAULT; D3D11_CPU_ACCESS_FLAG cpu_access = (D3D11_CPU_ACCESS_FLAG)0; - D3D11_SUBRESOURCE_DATA srdata, *data = NULL; + // This is just an optimization apparently? if (tex_levels == 1) { usage = D3D11_USAGE_DYNAMIC; cpu_access = D3D11_CPU_ACCESS_WRITE; - - srdata.pSysMem = TextureCache::temp; - srdata.SysMemPitch = 4 * expanded_width; - - data = &srdata; } const D3D11_TEXTURE2D_DESC texdesc = CD3D11_TEXTURE2D_DESC(DXGI_FORMAT_R8G8B8A8_UNORM, width, height, 1, tex_levels, D3D11_BIND_SHADER_RESOURCE, usage, cpu_access); ID3D11Texture2D *pTexture; - const HRESULT hr = D3D::device->CreateTexture2D(&texdesc, data, &pTexture); + const HRESULT hr = D3D::device->CreateTexture2D(&texdesc, NULL, &pTexture); CHECK(SUCCEEDED(hr), "Create texture of the TextureCache"); TCacheEntry* const entry = new TCacheEntry(new D3DTexture2D(pTexture, D3D11_BIND_SHADER_RESOURCE)); From 6e6d8af6ddaddeeaf89be2f8b6920b913488f0c6 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 20 Feb 2013 05:37:01 -0600 Subject: [PATCH 23/29] Revert "Don't load level 0 twice for 1-level textures in DX11." and fix it properly. All backend TextureCaches now load level 0 in CreateTexture. This reverts commit 294cb165ba3449cc4fd96eabb5272e2984a58eb8. --- Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 15 ++++++++++----- .../Plugins/Plugin_VideoDX11/Src/TextureCache.cpp | 9 +++++++-- .../Plugins/Plugin_VideoDX9/Src/TextureCache.cpp | 2 ++ .../Plugins/Plugin_VideoOGL/Src/TextureCache.cpp | 2 ++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index fd935de342..fda4f21a7e 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -481,15 +481,20 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, GFX_DEBUGGER_PAUSE_AT(NEXT_NEW_TEXTURE, true); } + else + { + // load texture (CreateTexture also loads level 0) + entry->Load(width, height, expandedWidth, 0); + } entry->SetGeneralParameters(address, texture_size, full_format, entry->num_mipmaps); entry->SetDimensions(nativeW, nativeH, width, height); entry->hash = tex_hash; - if (entry->IsEfbCopy() && !g_ActiveConfig.bCopyEFBToTexture) entry->type = TCET_EC_DYNAMIC; - else entry->type = TCET_NORMAL; - - // load texture - entry->Load(width, height, expandedWidth, 0); + + if (entry->IsEfbCopy() && !g_ActiveConfig.bCopyEFBToTexture) + entry->type = TCET_EC_DYNAMIC; + else + entry->type = TCET_NORMAL; if (g_ActiveConfig.bDumpTextures && !using_custom_texture) DumpTexture(entry, 0); diff --git a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp index ba05dc83d2..844cf24b47 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp @@ -70,19 +70,24 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width, { D3D11_USAGE usage = D3D11_USAGE_DEFAULT; D3D11_CPU_ACCESS_FLAG cpu_access = (D3D11_CPU_ACCESS_FLAG)0; + D3D11_SUBRESOURCE_DATA srdata, *data = NULL; - // This is just an optimization apparently? if (tex_levels == 1) { usage = D3D11_USAGE_DYNAMIC; cpu_access = D3D11_CPU_ACCESS_WRITE; + + srdata.pSysMem = TextureCache::temp; + srdata.SysMemPitch = 4 * expanded_width; + + data = &srdata; } const D3D11_TEXTURE2D_DESC texdesc = CD3D11_TEXTURE2D_DESC(DXGI_FORMAT_R8G8B8A8_UNORM, width, height, 1, tex_levels, D3D11_BIND_SHADER_RESOURCE, usage, cpu_access); ID3D11Texture2D *pTexture; - const HRESULT hr = D3D::device->CreateTexture2D(&texdesc, NULL, &pTexture); + const HRESULT hr = D3D::device->CreateTexture2D(&texdesc, data, &pTexture); CHECK(SUCCEEDED(hr), "Create texture of the TextureCache"); TCacheEntry* const entry = new TCacheEntry(new D3DTexture2D(pTexture, D3D11_BIND_SHADER_RESOURCE)); diff --git a/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp index 660fad7379..f105d0f774 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/TextureCache.cpp @@ -226,6 +226,8 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width, u TCacheEntry* entry = new TCacheEntry(D3D::CreateTexture2D(temp, width, height, expanded_width, d3d_fmt, swap_r_b, tex_levels)); entry->swap_r_b = swap_r_b; entry->d3d_fmt = d3d_fmt; + + entry->Load(width, height, expanded_width, 0); return entry; } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp index bf6f6d1ef2..ee918ee6c0 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp @@ -178,6 +178,8 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width, entry.pcfmt = pcfmt; entry.bHaveMipMaps = tex_levels != 1; + + entry.Load(width, height, expanded_width, 0); return &entry; } From b7fae1febb77629032122c710ac3a882c309ffdf Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 20 Feb 2013 14:18:21 -0600 Subject: [PATCH 24/29] Fix my DX11 texture-related failure.. Fixes issue 6026. (probably) --- Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp index 844cf24b47..c0474e5c67 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/TextureCache.cpp @@ -98,6 +98,9 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width, D3D::SetDebugObjectName((ID3D11DeviceChild*)entry->texture->GetSRV(), "shader resource view of a texture of the TextureCache"); SAFE_RELEASE(pTexture); + + if (tex_levels != 1) + entry->Load(width, height, expanded_width, 0); return entry; } From f3e91bc10de42648f5f8c515b013f22218e14cd4 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 20 Feb 2013 17:30:34 -0600 Subject: [PATCH 25/29] Hopefully kill a stupid warning on Windows. --- Source/Core/Common/Src/FileUtil.cpp | 4 ++-- Source/Core/Common/Src/FileUtil.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index d6ab33962a..a2bd694438 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -781,9 +781,9 @@ IOFile::IOFile(IOFile&& other) Swap(other); } -IOFile& IOFile::operator=(IOFile other) +IOFile& IOFile::operator=(IOFile&& other) { - Swap(other); + IOFile(std::move(other)).Swap(*this); return *this; } diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h index 2c8bf8f64b..b8e8d9c17c 100644 --- a/Source/Core/Common/Src/FileUtil.h +++ b/Source/Core/Common/Src/FileUtil.h @@ -160,7 +160,7 @@ public: ~IOFile(); IOFile(IOFile&& other); - IOFile& operator=(IOFile other); + IOFile& operator=(IOFile&& other); void Swap(IOFile& other); From e9232280c43174b4349eef8f7abbb551c120ac53 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Wed, 20 Feb 2013 17:35:01 -0600 Subject: [PATCH 26/29] Fix OSX! --- Source/Core/Common/Src/FileUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp index a2bd694438..491db88e41 100644 --- a/Source/Core/Common/Src/FileUtil.cpp +++ b/Source/Core/Common/Src/FileUtil.cpp @@ -783,7 +783,7 @@ IOFile::IOFile(IOFile&& other) IOFile& IOFile::operator=(IOFile&& other) { - IOFile(std::move(other)).Swap(*this); + IOFile((IOFile&&)other).Swap(*this); return *this; } From 29d43ef897275bd200cee0ec4492b1c2052902f3 Mon Sep 17 00:00:00 2001 From: "kostamarino@hotmail.com" Date: Thu, 21 Feb 2013 20:34:45 +0200 Subject: [PATCH 27/29] Gameini database update. Update/additions of Fifa Street and Open Season (fixes issue 5438). Cleanup of DisableWiimoteSpeaker = 1 (aka Alternate wiimote timing) from the database since it is no longer used. Edit the tales of symphonia projection hack. --- Data/User/GameConfig/GF8E69.ini | 8 +- Data/User/GameConfig/GF8P69.ini | 16 ++++ Data/User/GameConfig/GOSE41.ini | 8 +- Data/User/GameConfig/GOSP41.ini | 8 +- Data/User/GameConfig/GOSX41.ini | 8 +- Data/User/GameConfig/PH_PRESETS.ini | 2 +- Data/User/GameConfig/R22E01.ini | 3 +- Data/User/GameConfig/R22J01.ini | 3 +- Data/User/GameConfig/R22P01.ini | 3 +- Data/User/GameConfig/R3ME01.ini | 39 ++++---- Data/User/GameConfig/R3MP01.ini | 39 ++++---- Data/User/GameConfig/R4QE01.ini | 39 ++++---- Data/User/GameConfig/R4QJ01.ini | 39 ++++---- Data/User/GameConfig/R4QK01.ini | 39 ++++---- Data/User/GameConfig/R4QP01.ini | 39 ++++---- Data/User/GameConfig/R5WEA4.ini | 3 +- Data/User/GameConfig/R5WJA4.ini | 3 +- Data/User/GameConfig/R7PE01.ini | 37 ++++---- Data/User/GameConfig/R7PP01.ini | 25 +++-- Data/User/GameConfig/RBWE01.ini | 35 ++++--- Data/User/GameConfig/RBWJ01.ini | 35 ++++--- Data/User/GameConfig/RBWP01.ini | 35 ++++--- Data/User/GameConfig/RCJE8P.ini | 1 - Data/User/GameConfig/RCJP8P.ini | 1 - Data/User/GameConfig/RD2E41.ini | 33 ++++--- Data/User/GameConfig/RD2J41.ini | 33 ++++--- Data/User/GameConfig/RD2K41.ini | 33 ++++--- Data/User/GameConfig/RD2P41.ini | 33 ++++--- Data/User/GameConfig/RD2X41.ini | 33 ++++--- Data/User/GameConfig/RHDE8P.ini | 39 ++++---- Data/User/GameConfig/RHDJ8P.ini | 39 ++++---- Data/User/GameConfig/RHDP8P.ini | 39 ++++---- Data/User/GameConfig/RHOE8P.ini | 77 ++++++++------- Data/User/GameConfig/RHOJ8P.ini | 23 +++-- Data/User/GameConfig/RHOP8P.ini | 23 +++-- Data/User/GameConfig/RLGE64.ini | 1 - Data/User/GameConfig/RLGJ52.ini | 1 - Data/User/GameConfig/RLGP64.ini | 1 - Data/User/GameConfig/RM3E01.ini | 1 - Data/User/GameConfig/RM3J01.ini | 1 - Data/User/GameConfig/RM3P01.ini | 1 - Data/User/GameConfig/RQREXJ.ini | 3 +- Data/User/GameConfig/RQRJAF.ini | 3 +- Data/User/GameConfig/RQRPAF.ini | 3 +- Data/User/GameConfig/RRKE70.ini | 3 +- Data/User/GameConfig/RRKP70.ini | 3 +- Data/User/GameConfig/RTZE08.ini | 39 ++++---- Data/User/GameConfig/RTZJ08.ini | 39 ++++---- Data/User/GameConfig/RTZK08.ini | 39 ++++---- Data/User/GameConfig/RTZP08.ini | 39 ++++---- Data/User/GameConfig/RZJD69.ini | 3 +- Data/User/GameConfig/RZJE69.ini | 3 +- Data/User/GameConfig/RZJJ13.ini | 3 +- Data/User/GameConfig/RZJP69.ini | 3 +- Data/User/GameConfig/RZZE8P.ini | 33 ++++--- Data/User/GameConfig/RZZJEL.ini | 33 ++++--- Data/User/GameConfig/RZZP8P.ini | 33 ++++--- Data/User/GameConfig/SC2E8P.ini | 41 ++++---- Data/User/GameConfig/SC2P8P.ini | 139 ++++++++++++++-------------- Data/User/GameConfig/SD2E41.ini | 3 +- Data/User/GameConfig/SD2J01.ini | 3 +- Data/User/GameConfig/SD2P41.ini | 3 +- Data/User/GameConfig/SD2Y41.ini | 3 +- Data/User/GameConfig/SEME4Q.ini | 3 +- Data/User/GameConfig/SEMJ01.ini | 3 +- Data/User/GameConfig/SEMP4Q.ini | 3 +- Data/User/GameConfig/SEMX4Q.ini | 3 +- Data/User/GameConfig/SEMY4Q.ini | 3 +- Data/User/GameConfig/SEMZ4Q.ini | 3 +- Data/User/GameConfig/SERE4Q.ini | 3 +- Data/User/GameConfig/SERF4Q.ini | 3 +- Data/User/GameConfig/SERP4Q.ini | 3 +- Data/User/GameConfig/SF8E01.ini | 3 +- Data/User/GameConfig/SF8J01.ini | 3 +- Data/User/GameConfig/SF8P01.ini | 3 +- Data/User/GameConfig/SFIE01.ini | 1 - Data/User/GameConfig/SFIP01.ini | 1 - Data/User/GameConfig/SHLPA4.ini | 3 +- Data/User/GameConfig/SJDE41.ini | 1 - Data/User/GameConfig/SJDP41.ini | 1 - Data/User/GameConfig/SJDY41.ini | 1 - Data/User/GameConfig/SJDZ41.ini | 1 - Data/User/GameConfig/SMOE41.ini | 41 ++++---- Data/User/GameConfig/SMOP41.ini | 41 ++++---- Data/User/GameConfig/SMOX41.ini | 41 ++++---- Data/User/GameConfig/SO3EE9.ini | 1 - Data/User/GameConfig/SO3J99.ini | 1 - Data/User/GameConfig/SOJE41.ini | 33 ++++--- Data/User/GameConfig/SOJP41.ini | 33 ++++--- Data/User/GameConfig/SOUE01.ini | 1 - Data/User/GameConfig/SOUJ01.ini | 1 - Data/User/GameConfig/SOUK01.ini | 1 - Data/User/GameConfig/SOUP01.ini | 1 - Data/User/GameConfig/SRQE41.ini | 1 - Data/User/GameConfig/SRQP41.ini | 1 - Data/User/GameConfig/SX3J01.ini | 3 +- Data/User/GameConfig/SX3P01.ini | 3 +- 97 files changed, 769 insertions(+), 832 deletions(-) create mode 100644 Data/User/GameConfig/GF8P69.ini diff --git a/Data/User/GameConfig/GF8E69.ini b/Data/User/GameConfig/GF8E69.ini index 858a62d3d8..5fa4328270 100644 --- a/Data/User/GameConfig/GF8E69.ini +++ b/Data/User/GameConfig/GF8E69.ini @@ -3,7 +3,7 @@ TLBHack = 1 [EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. EmulationStateId = 4 -EmulationIssues = +EmulationIssues = The videos are messed up, skip them. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. $Master Code @@ -40,3 +40,9 @@ $Away Team Never Scores 00416F8C 00000000 [Video] ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GF8P69.ini b/Data/User/GameConfig/GF8P69.ini new file mode 100644 index 0000000000..3d6f730434 --- /dev/null +++ b/Data/User/GameConfig/GF8P69.ini @@ -0,0 +1,16 @@ +# GF8P69 - FIFA Street +[Core] Values set here will override the main dolphin settings. +TLBHack = 1 +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = The videos are messed up, skip them. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GOSE41.ini b/Data/User/GameConfig/GOSE41.ini index 4682f2275c..adc124119f 100644 --- a/Data/User/GameConfig/GOSE41.ini +++ b/Data/User/GameConfig/GOSE41.ini @@ -1,9 +1,11 @@ # GOSE41 - Open Season [Core] Values set here will override the main dolphin settings. -TLBHack = 1 +MMU = 1 +FastDiscSpeed = 1 +BlockMerging = 1 [EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 2 -EmulationIssues = Severe graphic issues. +EmulationStateId = 4 +EmulationIssues = Needs MMU (Slow). [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Video] diff --git a/Data/User/GameConfig/GOSP41.ini b/Data/User/GameConfig/GOSP41.ini index 40fc6ad1f1..cb12055384 100644 --- a/Data/User/GameConfig/GOSP41.ini +++ b/Data/User/GameConfig/GOSP41.ini @@ -1,9 +1,11 @@ # GOSP41 - Open Season [Core] Values set here will override the main dolphin settings. -TLBHack = 1 +MMU = 1 +FastDiscSpeed = 1 +BlockMerging = 1 [EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 2 -EmulationIssues = Severe graphic issues. +EmulationStateId = 4 +EmulationIssues = Needs MMU (Slow). [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Video] diff --git a/Data/User/GameConfig/GOSX41.ini b/Data/User/GameConfig/GOSX41.ini index 92662f0a4c..8790cdfd8c 100644 --- a/Data/User/GameConfig/GOSX41.ini +++ b/Data/User/GameConfig/GOSX41.ini @@ -1,9 +1,11 @@ # GOSX41 - Open Season [Core] Values set here will override the main dolphin settings. -TLBHack = 1 +MMU = 1 +FastDiscSpeed = 1 +BlockMerging = 1 [EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 2 -EmulationIssues = Severe graphic issues. +EmulationStateId = 4 +EmulationIssues = Needs MMU (Slow). [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Video] diff --git a/Data/User/GameConfig/PH_PRESETS.ini b/Data/User/GameConfig/PH_PRESETS.ini index 8d82d00790..f5e7a4aacf 100644 --- a/Data/User/GameConfig/PH_PRESETS.ini +++ b/Data/User/GameConfig/PH_PRESETS.ini @@ -33,7 +33,7 @@ PH_ExtraParam = 1 [5] Title = Tales of Symphonia GC -PH_ZNear = 0.0002 +PH_ZNear = 0.00026 # --------------------------------------------------- diff --git a/Data/User/GameConfig/R22E01.ini b/Data/User/GameConfig/R22E01.ini index dfe3542671..c494ee5e12 100644 --- a/Data/User/GameConfig/R22E01.ini +++ b/Data/User/GameConfig/R22E01.ini @@ -17,5 +17,4 @@ PH_ZFar = SafeTextureCacheColorSamples = 512 [Video_Hacks] EFBEmulateFormatChanges = True -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/R22J01.ini b/Data/User/GameConfig/R22J01.ini index c38ff20966..94aeac02f3 100644 --- a/Data/User/GameConfig/R22J01.ini +++ b/Data/User/GameConfig/R22J01.ini @@ -17,5 +17,4 @@ PH_ZFar = SafeTextureCacheColorSamples = 512 [Video_Hacks] EFBEmulateFormatChanges = True -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/R22P01.ini b/Data/User/GameConfig/R22P01.ini index 6153cb0d06..8fb637216f 100644 --- a/Data/User/GameConfig/R22P01.ini +++ b/Data/User/GameConfig/R22P01.ini @@ -17,5 +17,4 @@ PH_ZFar = SafeTextureCacheColorSamples = 512 [Video_Hacks] EFBEmulateFormatChanges = True -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/R3ME01.ini b/Data/User/GameConfig/R3ME01.ini index 312d6a15f1..4c891c14b1 100644 --- a/Data/User/GameConfig/R3ME01.ini +++ b/Data/User/GameConfig/R3ME01.ini @@ -1,20 +1,19 @@ -# R3ME01 - Metroid Prime Trilogy -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Disable EuRGB60(PAL60) to avoid a black bar appearing. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Hacks] -EFBToTextureEnable = False -EFBCopyEnable = True -[Wii] -DisableWiimoteSpeaker = 1 +# R3ME01 - Metroid Prime Trilogy +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Disable EuRGB60(PAL60) to avoid a black bar appearing. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True +[Wii] diff --git a/Data/User/GameConfig/R3MP01.ini b/Data/User/GameConfig/R3MP01.ini index 291ac8df38..71938b821a 100644 --- a/Data/User/GameConfig/R3MP01.ini +++ b/Data/User/GameConfig/R3MP01.ini @@ -1,20 +1,19 @@ -# R3MP01 - Metroid Prime Trilogy -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Disable EuRGB60(PAL60) to avoid a black bar appearing. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Hacks] -EFBToTextureEnable = False -EFBCopyEnable = True -[Wii] -DisableWiimoteSpeaker = 1 +# R3MP01 - Metroid Prime Trilogy +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Disable EuRGB60(PAL60) to avoid a black bar appearing. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True +[Wii] diff --git a/Data/User/GameConfig/R4QE01.ini b/Data/User/GameConfig/R4QE01.ini index 3ae6cb283a..e822d53161 100644 --- a/Data/User/GameConfig/R4QE01.ini +++ b/Data/User/GameConfig/R4QE01.ini @@ -1,20 +1,19 @@ -# R4QE01 - Mario Strikers Charged -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Video_Hacks] -DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +# R4QE01 - Mario Strikers Charged +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Video_Hacks] +DlistCachingEnable = False +[Wii] diff --git a/Data/User/GameConfig/R4QJ01.ini b/Data/User/GameConfig/R4QJ01.ini index d97cc37c84..14bef2a3e5 100644 --- a/Data/User/GameConfig/R4QJ01.ini +++ b/Data/User/GameConfig/R4QJ01.ini @@ -1,20 +1,19 @@ -# R4QJ01 - Mario Strikers Charged -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Video_Hacks] -DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +# R4QJ01 - Mario Strikers Charged +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Video_Hacks] +DlistCachingEnable = False +[Wii] diff --git a/Data/User/GameConfig/R4QK01.ini b/Data/User/GameConfig/R4QK01.ini index 2c45a961a0..2fb7675fd4 100644 --- a/Data/User/GameConfig/R4QK01.ini +++ b/Data/User/GameConfig/R4QK01.ini @@ -1,20 +1,19 @@ -# R4QK01 - Mario Power Soccer -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Video_Hacks] -DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +# R4QK01 - Mario Power Soccer +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Video_Hacks] +DlistCachingEnable = False +[Wii] diff --git a/Data/User/GameConfig/R4QP01.ini b/Data/User/GameConfig/R4QP01.ini index 8ec96e8cf3..54fa2ec234 100644 --- a/Data/User/GameConfig/R4QP01.ini +++ b/Data/User/GameConfig/R4QP01.ini @@ -1,20 +1,19 @@ -# R4QP01 - Mario Strikers Charged -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Video_Hacks] -DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +# R4QP01 - Mario Strikers Charged +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Video_Hacks] +DlistCachingEnable = False +[Wii] diff --git a/Data/User/GameConfig/R5WEA4.ini b/Data/User/GameConfig/R5WEA4.ini index 315f7f340a..48b1c5cd12 100644 --- a/Data/User/GameConfig/R5WEA4.ini +++ b/Data/User/GameConfig/R5WEA4.ini @@ -15,5 +15,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/R5WJA4.ini b/Data/User/GameConfig/R5WJA4.ini index 30a983b648..25d6076a05 100644 --- a/Data/User/GameConfig/R5WJA4.ini +++ b/Data/User/GameConfig/R5WJA4.ini @@ -15,5 +15,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/R7PE01.ini b/Data/User/GameConfig/R7PE01.ini index 1a052239ae..244ccc1db3 100644 --- a/Data/User/GameConfig/R7PE01.ini +++ b/Data/User/GameConfig/R7PE01.ini @@ -1,19 +1,18 @@ -# R7PE01 - Punch Out -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Disable "Use EuRGB60 (PAL60) mode" in the wii configuration tab for the game to run -[OnFrame] Add memory patches to be applied every frame here. -+$Patch -0x8011E0F8:dword:0x4E800020 -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# R7PE01 - Punch Out +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Disable "Use EuRGB60 (PAL60) mode" in the wii configuration tab for the game to run +[OnFrame] Add memory patches to be applied every frame here. ++$Patch +0x8011E0F8:dword:0x4E800020 +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/R7PP01.ini b/Data/User/GameConfig/R7PP01.ini index 302bd1e965..a0113b7415 100644 --- a/Data/User/GameConfig/R7PP01.ini +++ b/Data/User/GameConfig/R7PP01.ini @@ -1,13 +1,12 @@ -# R7PP01 - Punch Out -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = -EmulationStateId = 5 -[OnFrame] Add memory patches to be applied every frame here. -+$Patch -0x8011F1CC:dword:0x4E800020 -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -[Wii] -DisableWiimoteSpeaker = 1 +# R7PP01 - Punch Out +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = +EmulationStateId = 5 +[OnFrame] Add memory patches to be applied every frame here. ++$Patch +0x8011F1CC:dword:0x4E800020 +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +[Wii] diff --git a/Data/User/GameConfig/RBWE01.ini b/Data/User/GameConfig/RBWE01.ini index 9e8d586cf4..a2cad6ff7d 100644 --- a/Data/User/GameConfig/RBWE01.ini +++ b/Data/User/GameConfig/RBWE01.ini @@ -1,18 +1,17 @@ -# RBWE01 - Battalion Wars 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs LLE audio for proper sound. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +# RBWE01 - Battalion Wars 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs LLE audio for proper sound. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Wii] diff --git a/Data/User/GameConfig/RBWJ01.ini b/Data/User/GameConfig/RBWJ01.ini index bf95ff65c8..0d799c74fa 100644 --- a/Data/User/GameConfig/RBWJ01.ini +++ b/Data/User/GameConfig/RBWJ01.ini @@ -1,18 +1,17 @@ -# RBWJ01 - Totsugeki Famicom Wars vs. -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs LLE audio for proper sound. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +# RBWJ01 - Totsugeki Famicom Wars vs. +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs LLE audio for proper sound. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Wii] diff --git a/Data/User/GameConfig/RBWP01.ini b/Data/User/GameConfig/RBWP01.ini index f6282130a5..5422388866 100644 --- a/Data/User/GameConfig/RBWP01.ini +++ b/Data/User/GameConfig/RBWP01.ini @@ -1,18 +1,17 @@ -# RBWP01 - Battalion Wars 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs LLE audio for proper sound. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +# RBWP01 - Battalion Wars 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs LLE audio for proper sound. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Enhancements] +[Wii] diff --git a/Data/User/GameConfig/RCJE8P.ini b/Data/User/GameConfig/RCJE8P.ini index 845f08de77..79280a5609 100644 --- a/Data/User/GameConfig/RCJE8P.ini +++ b/Data/User/GameConfig/RCJE8P.ini @@ -24,6 +24,5 @@ PH_ZFar = [Video_Enhancements] ForceFiltering = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] DlistCachingEnable = False diff --git a/Data/User/GameConfig/RCJP8P.ini b/Data/User/GameConfig/RCJP8P.ini index 6d82c897e5..5a242b5e4e 100644 --- a/Data/User/GameConfig/RCJP8P.ini +++ b/Data/User/GameConfig/RCJP8P.ini @@ -18,6 +18,5 @@ PH_ZFar = [Video_Enhancements] ForceFiltering = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] DlistCachingEnable = False diff --git a/Data/User/GameConfig/RD2E41.ini b/Data/User/GameConfig/RD2E41.ini index a93f6359e6..92ca3f53b5 100644 --- a/Data/User/GameConfig/RD2E41.ini +++ b/Data/User/GameConfig/RD2E41.ini @@ -1,17 +1,16 @@ -# RD2E41 - Red Steel 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs real wiimote and motion plus. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RD2E41 - Red Steel 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs real wiimote and motion plus. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RD2J41.ini b/Data/User/GameConfig/RD2J41.ini index 8fccc41c35..2042a71430 100644 --- a/Data/User/GameConfig/RD2J41.ini +++ b/Data/User/GameConfig/RD2J41.ini @@ -1,17 +1,16 @@ -# RD2J41 - Red Steel 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs real wiimote and motion plus. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RD2J41 - Red Steel 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs real wiimote and motion plus. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RD2K41.ini b/Data/User/GameConfig/RD2K41.ini index aa0e90f2b2..93123fa871 100644 --- a/Data/User/GameConfig/RD2K41.ini +++ b/Data/User/GameConfig/RD2K41.ini @@ -1,17 +1,16 @@ -# RD2K41 - Red Steel 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs real wiimote and motion plus. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RD2K41 - Red Steel 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs real wiimote and motion plus. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RD2P41.ini b/Data/User/GameConfig/RD2P41.ini index 7cbf91b22d..8a7e5f7541 100644 --- a/Data/User/GameConfig/RD2P41.ini +++ b/Data/User/GameConfig/RD2P41.ini @@ -1,17 +1,16 @@ -# RD2P41 - Red Steel 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs real wiimote and motion plus. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RD2P41 - Red Steel 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs real wiimote and motion plus. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RD2X41.ini b/Data/User/GameConfig/RD2X41.ini index 6748136cad..53f0716869 100644 --- a/Data/User/GameConfig/RD2X41.ini +++ b/Data/User/GameConfig/RD2X41.ini @@ -1,17 +1,16 @@ -# RD2X41 - Red Steel 2 -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Needs real wiimote and motion plus. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RD2X41 - Red Steel 2 +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Needs real wiimote and motion plus. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RHDE8P.ini b/Data/User/GameConfig/RHDE8P.ini index b49ec93cb8..31d7a2f620 100644 --- a/Data/User/GameConfig/RHDE8P.ini +++ b/Data/User/GameConfig/RHDE8P.ini @@ -1,20 +1,19 @@ -# RHDE8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RHDE8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RHDJ8P.ini b/Data/User/GameConfig/RHDJ8P.ini index 63e818f737..014c94aaba 100644 --- a/Data/User/GameConfig/RHDJ8P.ini +++ b/Data/User/GameConfig/RHDJ8P.ini @@ -1,20 +1,19 @@ -# RHDJ8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RHDJ8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RHDP8P.ini b/Data/User/GameConfig/RHDP8P.ini index e932c173fb..6183ad8422 100644 --- a/Data/User/GameConfig/RHDP8P.ini +++ b/Data/User/GameConfig/RHDP8P.ini @@ -1,20 +1,19 @@ -# RHDP8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RHDP8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RHOE8P.ini b/Data/User/GameConfig/RHOE8P.ini index c28f341fb6..55d697ca52 100644 --- a/Data/User/GameConfig/RHOE8P.ini +++ b/Data/User/GameConfig/RHOE8P.ini @@ -1,39 +1,38 @@ -# RHOE8P - House Of The Dead: OVERKILL -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Use dx11 plugin (r6945) -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -$Infinte Bomb Usage after Getting 1 [g6flavor] -04159D1C 60000000 -$If Score Increase, MAX [ZiT] -C2142134 00000002 -3CA03B9B 38A5C9FF -90A60178 00000000 -$Infinite LIFE [ZiT] -04130ED4 60000000 -$Infinite Bullet [ZiT] -04159FAC 907D0720 -$CASH MAX [ZiT] -C214B118 00000002 -3CA03B9B 38A5C9FF -90A300D8 00000000 -$CASH MAX [ZiT] -C214B110 00000002 -3CA03B9B 38A5C9FF -90A300DC 00000000 -$If Score Increase, MAX [ZiT] -C2152674 00000002 -3CA03B9B 38A5C9FF -90B60178 00000000 -[Wii] -DisableWiimoteSpeaker = 1 +# RHOE8P - House Of The Dead: OVERKILL +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Use dx11 plugin (r6945) +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +$Infinte Bomb Usage after Getting 1 [g6flavor] +04159D1C 60000000 +$If Score Increase, MAX [ZiT] +C2142134 00000002 +3CA03B9B 38A5C9FF +90A60178 00000000 +$Infinite LIFE [ZiT] +04130ED4 60000000 +$Infinite Bullet [ZiT] +04159FAC 907D0720 +$CASH MAX [ZiT] +C214B118 00000002 +3CA03B9B 38A5C9FF +90A300D8 00000000 +$CASH MAX [ZiT] +C214B110 00000002 +3CA03B9B 38A5C9FF +90A300DC 00000000 +$If Score Increase, MAX [ZiT] +C2152674 00000002 +3CA03B9B 38A5C9FF +90B60178 00000000 +[Wii] diff --git a/Data/User/GameConfig/RHOJ8P.ini b/Data/User/GameConfig/RHOJ8P.ini index 3e23f6605c..2eb65c9fc9 100644 --- a/Data/User/GameConfig/RHOJ8P.ini +++ b/Data/User/GameConfig/RHOJ8P.ini @@ -1,12 +1,11 @@ -# RHOJ8P - House Of The Dead: OVERKILL -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Use dx11 plugin (r6945) -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RHOJ8P - House Of The Dead: OVERKILL +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Use dx11 plugin (r6945) +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RHOP8P.ini b/Data/User/GameConfig/RHOP8P.ini index 8e9d0e879d..85a8e2770a 100644 --- a/Data/User/GameConfig/RHOP8P.ini +++ b/Data/User/GameConfig/RHOP8P.ini @@ -1,12 +1,11 @@ -# RHOP8P - House Of The Dead: OVERKILL -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Use dx11 plugin (r6945) -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RHOP8P - House Of The Dead: OVERKILL +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Use dx11 plugin (r6945) +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RLGE64.ini b/Data/User/GameConfig/RLGE64.ini index 505df3c17d..5e66cda379 100644 --- a/Data/User/GameConfig/RLGE64.ini +++ b/Data/User/GameConfig/RLGE64.ini @@ -6,7 +6,6 @@ EmulationIssues = [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/RLGJ52.ini b/Data/User/GameConfig/RLGJ52.ini index 52b8648072..37b4f728d1 100644 --- a/Data/User/GameConfig/RLGJ52.ini +++ b/Data/User/GameConfig/RLGJ52.ini @@ -6,7 +6,6 @@ EmulationIssues = [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/RLGP64.ini b/Data/User/GameConfig/RLGP64.ini index f82d202584..6404bf0a77 100644 --- a/Data/User/GameConfig/RLGP64.ini +++ b/Data/User/GameConfig/RLGP64.ini @@ -6,7 +6,6 @@ EmulationIssues = [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/RM3E01.ini b/Data/User/GameConfig/RM3E01.ini index cb87db9070..182660bd97 100644 --- a/Data/User/GameConfig/RM3E01.ini +++ b/Data/User/GameConfig/RM3E01.ini @@ -21,6 +21,5 @@ SafeTextureCacheColorSamples = 512 EFBToTextureEnable = False EFBCopyEnable = True [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] EFBEmulateFormatChanges = True diff --git a/Data/User/GameConfig/RM3J01.ini b/Data/User/GameConfig/RM3J01.ini index 97a88c4c69..50c84d87a9 100644 --- a/Data/User/GameConfig/RM3J01.ini +++ b/Data/User/GameConfig/RM3J01.ini @@ -21,6 +21,5 @@ SafeTextureCacheColorSamples = 512 EFBToTextureEnable = False EFBCopyEnable = True [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] EFBEmulateFormatChanges = True diff --git a/Data/User/GameConfig/RM3P01.ini b/Data/User/GameConfig/RM3P01.ini index 093afc15db..0832325938 100644 --- a/Data/User/GameConfig/RM3P01.ini +++ b/Data/User/GameConfig/RM3P01.ini @@ -23,6 +23,5 @@ SafeTextureCacheColorSamples = 512 EFBToTextureEnable = False EFBCopyEnable = True [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] EFBEmulateFormatChanges = True diff --git a/Data/User/GameConfig/RQREXJ.ini b/Data/User/GameConfig/RQREXJ.ini index 91a35e540d..48d52b4320 100644 --- a/Data/User/GameConfig/RQREXJ.ini +++ b/Data/User/GameConfig/RQREXJ.ini @@ -16,5 +16,4 @@ EmulationIssues = Needs single core to run properly(r7436). [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RQRJAF.ini b/Data/User/GameConfig/RQRJAF.ini index c647c4acee..7ae768c3b4 100644 --- a/Data/User/GameConfig/RQRJAF.ini +++ b/Data/User/GameConfig/RQRJAF.ini @@ -16,5 +16,4 @@ EmulationIssues = Needs single core to run properly(r7436). [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RQRPAF.ini b/Data/User/GameConfig/RQRPAF.ini index 8052e6084b..752c0fa2bd 100644 --- a/Data/User/GameConfig/RQRPAF.ini +++ b/Data/User/GameConfig/RQRPAF.ini @@ -16,5 +16,4 @@ EmulationIssues = Needs single core to run properly(r7436). [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RRKE70.ini b/Data/User/GameConfig/RRKE70.ini index 621b0dfd09..ebb3188d0b 100644 --- a/Data/User/GameConfig/RRKE70.ini +++ b/Data/User/GameConfig/RRKE70.ini @@ -16,5 +16,4 @@ EmulationIssues = [Gecko] [Video_Hacks] EFBEmulateFormatChanges = True -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RRKP70.ini b/Data/User/GameConfig/RRKP70.ini index c5fc07ede3..e69e07f92e 100644 --- a/Data/User/GameConfig/RRKP70.ini +++ b/Data/User/GameConfig/RRKP70.ini @@ -16,5 +16,4 @@ EmulationIssues = [Gecko] [Video_Hacks] EFBEmulateFormatChanges = True -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RTZE08.ini b/Data/User/GameConfig/RTZE08.ini index ff41b71a06..27524e8236 100644 --- a/Data/User/GameConfig/RTZE08.ini +++ b/Data/User/GameConfig/RTZE08.ini @@ -1,20 +1,19 @@ -# RTZE08 - Zack and Wiki: Quest for Barbaros' Treasure -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = -EmulationStateId = 4 -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RTZE08 - Zack and Wiki: Quest for Barbaros' Treasure +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = +EmulationStateId = 4 +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RTZJ08.ini b/Data/User/GameConfig/RTZJ08.ini index 5a62e2c8ca..6a5aa8d6ee 100644 --- a/Data/User/GameConfig/RTZJ08.ini +++ b/Data/User/GameConfig/RTZJ08.ini @@ -1,20 +1,19 @@ -# RTZJ08 - Zack and Wiki: Quest for Barbaros' Treasure -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = -EmulationStateId = 4 -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RTZJ08 - Zack and Wiki: Quest for Barbaros' Treasure +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = +EmulationStateId = 4 +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RTZK08.ini b/Data/User/GameConfig/RTZK08.ini index 6a7d00e753..ec333d6bce 100644 --- a/Data/User/GameConfig/RTZK08.ini +++ b/Data/User/GameConfig/RTZK08.ini @@ -1,20 +1,19 @@ -# RTZK08 - Zack and Wiki: Quest for Barbaros' Treasure -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = -EmulationStateId = 4 -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RTZK08 - Zack and Wiki: Quest for Barbaros' Treasure +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = +EmulationStateId = 4 +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RTZP08.ini b/Data/User/GameConfig/RTZP08.ini index 8add9d2869..f3b0834049 100644 --- a/Data/User/GameConfig/RTZP08.ini +++ b/Data/User/GameConfig/RTZP08.ini @@ -1,20 +1,19 @@ -# RTZP08 - Zack and Wiki: Quest for Barbaros' Treasure -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = -EmulationStateId = 4 -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Settings] -UseXFB = True -UseRealXFB = False -[Wii] -DisableWiimoteSpeaker = 1 +# RTZP08 - Zack and Wiki: Quest for Barbaros' Treasure +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = +EmulationStateId = 4 +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Settings] +UseXFB = True +UseRealXFB = False +[Wii] diff --git a/Data/User/GameConfig/RZJD69.ini b/Data/User/GameConfig/RZJD69.ini index 671318fd38..848dcba860 100644 --- a/Data/User/GameConfig/RZJD69.ini +++ b/Data/User/GameConfig/RZJD69.ini @@ -17,5 +17,4 @@ PH_ZFar = [Video_Settings] SafeTextureCacheColorSamples = 512 [Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RZJE69.ini b/Data/User/GameConfig/RZJE69.ini index a37d3f9223..c48c837a27 100644 --- a/Data/User/GameConfig/RZJE69.ini +++ b/Data/User/GameConfig/RZJE69.ini @@ -17,5 +17,4 @@ PH_ZFar = [Video_Settings] SafeTextureCacheColorSamples = 512 [Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RZJJ13.ini b/Data/User/GameConfig/RZJJ13.ini index d109d22a98..24aa98035b 100644 --- a/Data/User/GameConfig/RZJJ13.ini +++ b/Data/User/GameConfig/RZJJ13.ini @@ -17,5 +17,4 @@ PH_ZFar = [Video_Settings] SafeTextureCacheColorSamples = 512 [Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RZJP69.ini b/Data/User/GameConfig/RZJP69.ini index 63b230b1da..9fa88eb843 100644 --- a/Data/User/GameConfig/RZJP69.ini +++ b/Data/User/GameConfig/RZJP69.ini @@ -31,6 +31,5 @@ $Rapid Fire [TNTkryzt] [Video_Settings] SafeTextureCacheColorSamples = 512 [Video_Enhancements] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/RZZE8P.ini b/Data/User/GameConfig/RZZE8P.ini index 31859ef891..9c74320a0b 100644 --- a/Data/User/GameConfig/RZZE8P.ini +++ b/Data/User/GameConfig/RZZE8P.ini @@ -1,17 +1,16 @@ -# RZZE8P - MADWORLD -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RZZE8P - MADWORLD +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RZZJEL.ini b/Data/User/GameConfig/RZZJEL.ini index 0e6a08334a..6ace0cb90c 100644 --- a/Data/User/GameConfig/RZZJEL.ini +++ b/Data/User/GameConfig/RZZJEL.ini @@ -1,17 +1,16 @@ -# RZZJEL - MADWORLD -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RZZJEL - MADWORLD +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/RZZP8P.ini b/Data/User/GameConfig/RZZP8P.ini index 6dc117c26f..ac5bed9812 100644 --- a/Data/User/GameConfig/RZZP8P.ini +++ b/Data/User/GameConfig/RZZP8P.ini @@ -1,17 +1,16 @@ -# RZZP8P - MADWORLD -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 5 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# RZZP8P - MADWORLD +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/SC2E8P.ini b/Data/User/GameConfig/SC2E8P.ini index ff46b91be8..998d51859d 100644 --- a/Data/User/GameConfig/SC2E8P.ini +++ b/Data/User/GameConfig/SC2E8P.ini @@ -1,21 +1,20 @@ -# SC2E8P - Conduit 2 -[Core] -BlockMerging = 1 -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[EmuState] -EmulationStateId = 4 -EmulationIssues = -[OnFrame] -[ActionReplay] -[Gecko] -[Video_Hacks] -DlistCachingEnable = False -[Video_Settings] -[Wii] -DisableWiimoteSpeaker = 1 +# SC2E8P - Conduit 2 +[Core] +BlockMerging = 1 +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[EmuState] +EmulationStateId = 4 +EmulationIssues = +[OnFrame] +[ActionReplay] +[Gecko] +[Video_Hacks] +DlistCachingEnable = False +[Video_Settings] +[Wii] diff --git a/Data/User/GameConfig/SC2P8P.ini b/Data/User/GameConfig/SC2P8P.ini index a065f8a096..b9f5c5989c 100644 --- a/Data/User/GameConfig/SC2P8P.ini +++ b/Data/User/GameConfig/SC2P8P.ini @@ -1,70 +1,69 @@ -# SC2P8P - Conduit 2 -[Core] -BlockMerging = 1 -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[EmuState] -EmulationStateId = 4 -EmulationIssues = -[OnFrame] -[ActionReplay] -[Gecko] -$Undead Invincibility Mode [Bully@Wiiplaza] -F6000001 80008100 -8001002C 90180000 -D200000C 00000006 -2C110035 40820020 -2C0800F4 40820018 -2C0300A0 40820010 -3C007FFF 6000FFFF -90040000 80040000 -60000000 00000000 -E0000000 80008000 -**Offline Only* -**You are completely untouchable* -*Picture -> http://imageshack.us/photo/my-images/684/sc2p8p008.png/ -$Inf. Ammo [Bully@Wiiplaza] -F6000001 80008100 -80640000 80050000 -D2000008 00000003 -2C110021 4082000C -38600000 7C030050 -60000000 00000000 -E0000000 80008000 -**Offline Only* -$No Flashwhite [Bully@Wiiplaza] -F6000001 80008100 -EC210032 93C10008 -14000114 60000000 -E0000000 80008000 -$Inf. Money [Bully@Wiiplaza] -F6000001 80008100 -7C003A14 38E70001 -D2000010 00000004 -2C11002F 40820014 -2C0401A8 4082000C -3D807FFF 7D84012E -7C04002E 00000000 -E0000000 80008000 -$Profile One Name Changer Jedi Hack & [Mitch] -0487E2D4 XXXXXXXX -0487E2D8 XXXXXXXX -0487E2DC XXXXXXXX -$Profile Two Name Changer Jedi Hack & [Mitch] -0487E320 0000XXXX -0487E324 XXXXXXXX -0487E328 XXXXXXXX -0487E32C XXXX0000 -$Profile Three Name Changer Jedi Hack & [Mitch] -0487E370 XXXXXXXX -0487E374 XXXXXXXX -[Video_Hacks] -DlistCachingEnable = False -[Video_Settings] -[Wii] -DisableWiimoteSpeaker = 1 +# SC2P8P - Conduit 2 +[Core] +BlockMerging = 1 +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[EmuState] +EmulationStateId = 4 +EmulationIssues = +[OnFrame] +[ActionReplay] +[Gecko] +$Undead Invincibility Mode [Bully@Wiiplaza] +F6000001 80008100 +8001002C 90180000 +D200000C 00000006 +2C110035 40820020 +2C0800F4 40820018 +2C0300A0 40820010 +3C007FFF 6000FFFF +90040000 80040000 +60000000 00000000 +E0000000 80008000 +**Offline Only* +**You are completely untouchable* +*Picture -> http://imageshack.us/photo/my-images/684/sc2p8p008.png/ +$Inf. Ammo [Bully@Wiiplaza] +F6000001 80008100 +80640000 80050000 +D2000008 00000003 +2C110021 4082000C +38600000 7C030050 +60000000 00000000 +E0000000 80008000 +**Offline Only* +$No Flashwhite [Bully@Wiiplaza] +F6000001 80008100 +EC210032 93C10008 +14000114 60000000 +E0000000 80008000 +$Inf. Money [Bully@Wiiplaza] +F6000001 80008100 +7C003A14 38E70001 +D2000010 00000004 +2C11002F 40820014 +2C0401A8 4082000C +3D807FFF 7D84012E +7C04002E 00000000 +E0000000 80008000 +$Profile One Name Changer Jedi Hack & [Mitch] +0487E2D4 XXXXXXXX +0487E2D8 XXXXXXXX +0487E2DC XXXXXXXX +$Profile Two Name Changer Jedi Hack & [Mitch] +0487E320 0000XXXX +0487E324 XXXXXXXX +0487E328 XXXXXXXX +0487E32C XXXX0000 +$Profile Three Name Changer Jedi Hack & [Mitch] +0487E370 XXXXXXXX +0487E374 XXXXXXXX +[Video_Hacks] +DlistCachingEnable = False +[Video_Settings] +[Wii] diff --git a/Data/User/GameConfig/SD2E41.ini b/Data/User/GameConfig/SD2E41.ini index 179c13afb9..ae90ff5196 100644 --- a/Data/User/GameConfig/SD2E41.ini +++ b/Data/User/GameConfig/SD2E41.ini @@ -16,5 +16,4 @@ EmulationIssues = [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SD2J01.ini b/Data/User/GameConfig/SD2J01.ini index f29168a46c..3285e7c75a 100644 --- a/Data/User/GameConfig/SD2J01.ini +++ b/Data/User/GameConfig/SD2J01.ini @@ -16,5 +16,4 @@ EmulationIssues = [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SD2P41.ini b/Data/User/GameConfig/SD2P41.ini index 744a354aaf..2111a3c298 100644 --- a/Data/User/GameConfig/SD2P41.ini +++ b/Data/User/GameConfig/SD2P41.ini @@ -16,5 +16,4 @@ EmulationIssues = [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SD2Y41.ini b/Data/User/GameConfig/SD2Y41.ini index 9daa079aac..59c9fb666b 100644 --- a/Data/User/GameConfig/SD2Y41.ini +++ b/Data/User/GameConfig/SD2Y41.ini @@ -16,5 +16,4 @@ EmulationIssues = [OnFrame] [ActionReplay] [Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEME4Q.ini b/Data/User/GameConfig/SEME4Q.ini index 7e340985b3..48056894b9 100644 --- a/Data/User/GameConfig/SEME4Q.ini +++ b/Data/User/GameConfig/SEME4Q.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEMJ01.ini b/Data/User/GameConfig/SEMJ01.ini index 7dc481ea34..f0740ca7a3 100644 --- a/Data/User/GameConfig/SEMJ01.ini +++ b/Data/User/GameConfig/SEMJ01.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEMP4Q.ini b/Data/User/GameConfig/SEMP4Q.ini index fa1afc01c2..f425547cf4 100644 --- a/Data/User/GameConfig/SEMP4Q.ini +++ b/Data/User/GameConfig/SEMP4Q.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEMX4Q.ini b/Data/User/GameConfig/SEMX4Q.ini index b4c56197ea..43232806a2 100644 --- a/Data/User/GameConfig/SEMX4Q.ini +++ b/Data/User/GameConfig/SEMX4Q.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEMY4Q.ini b/Data/User/GameConfig/SEMY4Q.ini index 5d8798227d..817f8387e0 100644 --- a/Data/User/GameConfig/SEMY4Q.ini +++ b/Data/User/GameConfig/SEMY4Q.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SEMZ4Q.ini b/Data/User/GameConfig/SEMZ4Q.ini index eecaa23166..515a1bd029 100644 --- a/Data/User/GameConfig/SEMZ4Q.ini +++ b/Data/User/GameConfig/SEMZ4Q.ini @@ -20,5 +20,4 @@ SafeTextureCacheColorSamples = 0 ForceFiltering = False [Video_Hacks] DlistCachingEnable = False -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SERE4Q.ini b/Data/User/GameConfig/SERE4Q.ini index ef5f4edfb2..fbc9fa9d3c 100644 --- a/Data/User/GameConfig/SERE4Q.ini +++ b/Data/User/GameConfig/SERE4Q.ini @@ -16,5 +16,4 @@ PH_ZFar = [Video_Settings] EFBScale = 1 SafeTextureCacheColorSamples = 0 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SERF4Q.ini b/Data/User/GameConfig/SERF4Q.ini index b03abcf0e9..cd2fca395e 100644 --- a/Data/User/GameConfig/SERF4Q.ini +++ b/Data/User/GameConfig/SERF4Q.ini @@ -16,5 +16,4 @@ PH_ZFar = [Video_Settings] EFBScale = 1 SafeTextureCacheColorSamples = 0 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SERP4Q.ini b/Data/User/GameConfig/SERP4Q.ini index e57bb14704..7e332b8bcd 100644 --- a/Data/User/GameConfig/SERP4Q.ini +++ b/Data/User/GameConfig/SERP4Q.ini @@ -16,5 +16,4 @@ PH_ZFar = [Video_Settings] EFBScale = 1 SafeTextureCacheColorSamples = 0 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SF8E01.ini b/Data/User/GameConfig/SF8E01.ini index e8e185cda9..bb2bce7406 100644 --- a/Data/User/GameConfig/SF8E01.ini +++ b/Data/User/GameConfig/SF8E01.ini @@ -16,5 +16,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SF8J01.ini b/Data/User/GameConfig/SF8J01.ini index bc0b0c2ba5..1f3ef9bb85 100644 --- a/Data/User/GameConfig/SF8J01.ini +++ b/Data/User/GameConfig/SF8J01.ini @@ -16,5 +16,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SF8P01.ini b/Data/User/GameConfig/SF8P01.ini index 41a5957888..e17f5f4247 100644 --- a/Data/User/GameConfig/SF8P01.ini +++ b/Data/User/GameConfig/SF8P01.ini @@ -16,5 +16,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SFIE01.ini b/Data/User/GameConfig/SFIE01.ini index 867859d8c4..7475f94fca 100644 --- a/Data/User/GameConfig/SFIE01.ini +++ b/Data/User/GameConfig/SFIE01.ini @@ -6,7 +6,6 @@ EmulationIssues = Needs real xfb for videos to show up. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SFIP01.ini b/Data/User/GameConfig/SFIP01.ini index 8a198d4fe8..114906aac3 100644 --- a/Data/User/GameConfig/SFIP01.ini +++ b/Data/User/GameConfig/SFIP01.ini @@ -6,7 +6,6 @@ EmulationIssues = Needs real xfb for videos to show up. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SHLPA4.ini b/Data/User/GameConfig/SHLPA4.ini index ce64ff21e1..b9eebf93c5 100644 --- a/Data/User/GameConfig/SHLPA4.ini +++ b/Data/User/GameConfig/SHLPA4.ini @@ -15,5 +15,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 512 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SJDE41.ini b/Data/User/GameConfig/SJDE41.ini index 1e16ddd21f..64b712f81d 100644 --- a/Data/User/GameConfig/SJDE41.ini +++ b/Data/User/GameConfig/SJDE41.ini @@ -6,7 +6,6 @@ EmulationIssues = Suffers from random ingame lock ups. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SJDP41.ini b/Data/User/GameConfig/SJDP41.ini index 53f65d5704..450a81c4f8 100644 --- a/Data/User/GameConfig/SJDP41.ini +++ b/Data/User/GameConfig/SJDP41.ini @@ -6,7 +6,6 @@ EmulationIssues = Suffers from random ingame lock ups. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SJDY41.ini b/Data/User/GameConfig/SJDY41.ini index 107abedfd2..74584766c3 100644 --- a/Data/User/GameConfig/SJDY41.ini +++ b/Data/User/GameConfig/SJDY41.ini @@ -6,7 +6,6 @@ EmulationIssues = Suffers from random ingame lock ups. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SJDZ41.ini b/Data/User/GameConfig/SJDZ41.ini index 53f65d5704..450a81c4f8 100644 --- a/Data/User/GameConfig/SJDZ41.ini +++ b/Data/User/GameConfig/SJDZ41.ini @@ -6,7 +6,6 @@ EmulationIssues = Suffers from random ingame lock ups. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SMOE41.ini b/Data/User/GameConfig/SMOE41.ini index 15dc5a693e..3c61475544 100644 --- a/Data/User/GameConfig/SMOE41.ini +++ b/Data/User/GameConfig/SMOE41.ini @@ -1,21 +1,20 @@ -# SMOE41 - MICHAEL JACKSON THE EXPERIENCE SPECIAL EDITION -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Hacks] -EFBEmulateFormatChanges = True -[Video_Enhancements] -MaxAnisotropy = 0 -[Wii] -DisableWiimoteSpeaker = 1 +# SMOE41 - MICHAEL JACKSON THE EXPERIENCE SPECIAL EDITION +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Hacks] +EFBEmulateFormatChanges = True +[Video_Enhancements] +MaxAnisotropy = 0 +[Wii] diff --git a/Data/User/GameConfig/SMOP41.ini b/Data/User/GameConfig/SMOP41.ini index 6095cd9174..b9f913a639 100644 --- a/Data/User/GameConfig/SMOP41.ini +++ b/Data/User/GameConfig/SMOP41.ini @@ -1,21 +1,20 @@ -# SMOP41 - MICHAEL JACKSON THE EXPERIENCE SPECIAL EDITION -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Hacks] -EFBEmulateFormatChanges = True -[Video_Enhancements] -MaxAnisotropy = 0 -[Wii] -DisableWiimoteSpeaker = 1 +# SMOP41 - MICHAEL JACKSON THE EXPERIENCE SPECIAL EDITION +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Hacks] +EFBEmulateFormatChanges = True +[Video_Enhancements] +MaxAnisotropy = 0 +[Wii] diff --git a/Data/User/GameConfig/SMOX41.ini b/Data/User/GameConfig/SMOX41.ini index 88ba03da1c..929a58f076 100644 --- a/Data/User/GameConfig/SMOX41.ini +++ b/Data/User/GameConfig/SMOX41.ini @@ -1,21 +1,20 @@ -# SMOX41 - Michael Jackson The Experience: Walmart Edition -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 0 -PH_SZNear = 0 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Video_Hacks] -EFBEmulateFormatChanges = True -[Video_Enhancements] -MaxAnisotropy = 0 -[Wii] -DisableWiimoteSpeaker = 1 +# SMOX41 - Michael Jackson The Experience: Walmart Edition +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = Sound noise eliminated using LLE audio. With hle disable idleskip for normal dance school speed. +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Video_Hacks] +EFBEmulateFormatChanges = True +[Video_Enhancements] +MaxAnisotropy = 0 +[Wii] diff --git a/Data/User/GameConfig/SO3EE9.ini b/Data/User/GameConfig/SO3EE9.ini index f8da896a23..c359fede43 100644 --- a/Data/User/GameConfig/SO3EE9.ini +++ b/Data/User/GameConfig/SO3EE9.ini @@ -6,7 +6,6 @@ EmulationIssues = Direct 3d 11 fixes some texture glitches. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SO3J99.ini b/Data/User/GameConfig/SO3J99.ini index 2ad57e3af2..e29dca5b96 100644 --- a/Data/User/GameConfig/SO3J99.ini +++ b/Data/User/GameConfig/SO3J99.ini @@ -6,7 +6,6 @@ EmulationIssues = Direct 3d 11 fixes some texture glitches. [OnFrame] Add memory patches to be applied every frame here. [ActionReplay] Add action replay cheats here. [Wii] -DisableWiimoteSpeaker = 1 [Video] ProjectionHack = 0 PH_SZNear = 0 diff --git a/Data/User/GameConfig/SOJE41.ini b/Data/User/GameConfig/SOJE41.ini index 183a8823ca..af6d49b785 100644 --- a/Data/User/GameConfig/SOJE41.ini +++ b/Data/User/GameConfig/SOJE41.ini @@ -1,17 +1,16 @@ -# SOJE41 - Rayman Origins -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 1 -PH_SZNear = 1 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# SOJE41 - Rayman Origins +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 1 +PH_SZNear = 1 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/SOJP41.ini b/Data/User/GameConfig/SOJP41.ini index 2c835fe6e2..fca55f9117 100644 --- a/Data/User/GameConfig/SOJP41.ini +++ b/Data/User/GameConfig/SOJP41.ini @@ -1,17 +1,16 @@ -# SOJP41 - Rayman Origins -[Core] Values set here will override the main dolphin settings. -[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationStateId = 4 -EmulationIssues = -[OnFrame] Add memory patches to be applied every frame here. -[ActionReplay] Add action replay cheats here. -[Video] -ProjectionHack = 1 -PH_SZNear = 1 -PH_SZFar = 0 -PH_ExtraParam = 0 -PH_ZNear = -PH_ZFar = -[Gecko] -[Wii] -DisableWiimoteSpeaker = 1 +# SOJP41 - Rayman Origins +[Core] Values set here will override the main dolphin settings. +[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 4 +EmulationIssues = +[OnFrame] Add memory patches to be applied every frame here. +[ActionReplay] Add action replay cheats here. +[Video] +ProjectionHack = 1 +PH_SZNear = 1 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] +[Wii] diff --git a/Data/User/GameConfig/SOUE01.ini b/Data/User/GameConfig/SOUE01.ini index 8461821933..7e37e04936 100644 --- a/Data/User/GameConfig/SOUE01.ini +++ b/Data/User/GameConfig/SOUE01.ini @@ -17,5 +17,4 @@ PH_ZFar = EFBAccessEnable = True DlistCachingEnable = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Settings] diff --git a/Data/User/GameConfig/SOUJ01.ini b/Data/User/GameConfig/SOUJ01.ini index ede7d81148..b02302e15c 100644 --- a/Data/User/GameConfig/SOUJ01.ini +++ b/Data/User/GameConfig/SOUJ01.ini @@ -17,5 +17,4 @@ PH_ZFar = EFBAccessEnable = True DlistCachingEnable = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Settings] diff --git a/Data/User/GameConfig/SOUK01.ini b/Data/User/GameConfig/SOUK01.ini index 512bd21408..201ec99315 100644 --- a/Data/User/GameConfig/SOUK01.ini +++ b/Data/User/GameConfig/SOUK01.ini @@ -17,5 +17,4 @@ PH_ZFar = EFBAccessEnable = True DlistCachingEnable = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Settings] diff --git a/Data/User/GameConfig/SOUP01.ini b/Data/User/GameConfig/SOUP01.ini index 1b6e47096f..eab4d6b442 100644 --- a/Data/User/GameConfig/SOUP01.ini +++ b/Data/User/GameConfig/SOUP01.ini @@ -17,5 +17,4 @@ PH_ZFar = EFBAccessEnable = True DlistCachingEnable = False [Wii] -DisableWiimoteSpeaker = 1 [Video_Settings] diff --git a/Data/User/GameConfig/SRQE41.ini b/Data/User/GameConfig/SRQE41.ini index 5060189327..e923433ee8 100644 --- a/Data/User/GameConfig/SRQE41.ini +++ b/Data/User/GameConfig/SRQE41.ini @@ -14,6 +14,5 @@ PH_ZNear = PH_ZFar = [Gecko] [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] DlistCachingEnable = False diff --git a/Data/User/GameConfig/SRQP41.ini b/Data/User/GameConfig/SRQP41.ini index f360aef050..c1001990b1 100644 --- a/Data/User/GameConfig/SRQP41.ini +++ b/Data/User/GameConfig/SRQP41.ini @@ -14,6 +14,5 @@ PH_ZNear = PH_ZFar = [Gecko] [Wii] -DisableWiimoteSpeaker = 1 [Video_Hacks] DlistCachingEnable = False diff --git a/Data/User/GameConfig/SX3J01.ini b/Data/User/GameConfig/SX3J01.ini index 276118af1a..3aef192f00 100644 --- a/Data/User/GameConfig/SX3J01.ini +++ b/Data/User/GameConfig/SX3J01.ini @@ -15,5 +15,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 0 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] diff --git a/Data/User/GameConfig/SX3P01.ini b/Data/User/GameConfig/SX3P01.ini index 94b5c6ef16..a753975414 100644 --- a/Data/User/GameConfig/SX3P01.ini +++ b/Data/User/GameConfig/SX3P01.ini @@ -15,5 +15,4 @@ PH_ZFar = [Gecko] [Video_Settings] SafeTextureCacheColorSamples = 0 -[Wii] -DisableWiimoteSpeaker = 1 +[Wii] From d76ca5783743d654f3fa6ad8b69c239f93c9493e Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 22 Feb 2013 15:13:49 +1100 Subject: [PATCH 28/29] Fixed a JIT timing bug that prevented Eternal Darkness from booting in Single Core mode. --- Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp index 31caca0a43..900a8475f7 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/Jit.cpp @@ -338,7 +338,7 @@ void Jit64::WriteRfiExitDestInEAX() Cleanup(); ABI_CallFunction(reinterpret_cast(&PowerPC::CheckExceptions)); SUB(32, M(&CoreTiming::downcount), js.downcountAmount > 127 ? Imm32(js.downcountAmount) : Imm8(js.downcountAmount)); - JMP(asm_routines.dispatcher, true); + JMP(asm_routines.outerLoop, true); } void Jit64::WriteExceptionExit() From ba979582e2d0b4961f1087b76eef659856eb23bb Mon Sep 17 00:00:00 2001 From: Jonathan Jones Date: Fri, 22 Feb 2013 15:27:28 -0500 Subject: [PATCH 29/29] Makes the "No banner" banner image theme-able. Current "sexy X" banner included as part of "Boomy" theme. Fixes issue 6023. --- Data/User/Themes/Boomy/nobanner.png | Bin 0 -> 2484 bytes Source/Core/DolphinWX/Src/ConfigMain.cpp | 1 + Source/Core/DolphinWX/Src/ISOFile.cpp | 14 ++++++--- Source/Core/DolphinWX/resources/no_banner.cpp | 28 ------------------ 4 files changed, 11 insertions(+), 32 deletions(-) create mode 100644 Data/User/Themes/Boomy/nobanner.png delete mode 100644 Source/Core/DolphinWX/resources/no_banner.cpp diff --git a/Data/User/Themes/Boomy/nobanner.png b/Data/User/Themes/Boomy/nobanner.png new file mode 100644 index 0000000000000000000000000000000000000000..4d34be77626c7f9d77659f8766109b9017baa619 GIT binary patch literal 2484 zcmV;l2}|~gP)WFU8GbZ8()Nlj2>E@cM*00|gLL_t(&-p!hAbKloBF>s^;&fX(Gmm_Z|S}9000{tr#Q2F!1#Bg!i6d7^td>VHoh*_Jsw#kde_Q2wMC9VVa}E(<7zR$K6VK1jytjmejt5-uBv~^m z_)zok@Ico#)OAf7C!FZ~r)hpR^+Y@=DKKLa$B9t6jHQoIF6_)(=_3|XPTz`fF`u6s_@?DhfgVGkVFLM93cc&s}<8U&4-LJgY3P> zdr#l@d9Q)C+wC|Wj~QHBc7MA^`I&)l0Q7y&uV25owW_+oxqy(UgX5uD@zAdERUpO@ zClRj`#A#L(h2#M52&;;^5`=-ON=(Cv@pOa~nWiZ#u$}XCI#I7y48wo}Sg+T4L#g>8 z1gfga!ZASWx@H&#LI^nLvY<-sv}ODM{`+s*w!Juz32hul+O{Ren1xfOYEK;;>pB!l5fJgH3U$3E#yI0QP174GnHH;RKD=3hs%9D~KR1&% z?KAo*ule)mPk#LP!8ne2k6F<$44H~dpeB&R;lSy1Vw$E4z^_?@Da+w-;N|6oVHmQt zeIx)SoN1?H+qBe`N2dreQHKhTBFq*ZH4#xD5m1~YDj)Ebojo$9$fPNs(-hU%Vi*RH zM5wAN1MZy54^#5Fh-C2XyK5A%|WbvtPe{vDs{J z&gF+N;TqjkRYi=EmzS4|>z5q7v>ZFzMB;JN@z^y4fi!>H;E)W40E5 z_6G?iB|%(30dbBgD&hkPK-27FjA^R**+Pu*f?vOCnT44UM1;QYGx#Es0|0wpg5{j! z_wV0`2;1#8Tc-J@x~@5$PV{}x;c&R#KuRPa zoh>He07sGurwNs_vYcN5L~r8~?g4&j1tLOS*IE0FqpvyI^1THJyWI{Ep=p||-Of3t zX`=6YUS3`A~1wVoj5tj)^09Ts&S1$v>9DLVxG)xMnk0~v~3GO z-}gC;y%zHuaONM3j@Iinec!X+@AEzr%F?3j{-px6Z99j?Q$k4~uhytcI2A-CLz@)* z95;a`km(hCEijbxbKDYuap=8hsN{AF#kSimBEo*Z&$)u-3+6YLp`_8#;c$3!ezS}+ zDk`nYdp{>xU6-v&oQHhAgq|q^=Wu7>-GW9SA!jG77uugnvv@;IZ!EwPuY37`^1Veh z79ExQmyt^u(HL;2(pHN0N z=4g$^-b>2L`=pfk@#9AhflGf9qt02XF^4!1(_3Y}l(O)+7u1tr&KcCbBdBW>lyFVc z%vsqtFA?E*JW^E^fBp3rP1C$_s<(t`b)}TjMa-|NY`5EUobTSDIamDs56UE$ueZT3 ze1KImzgqxhvbNoBFQTJcLa->Qq^&a4G>5zN57#2DdoFjcO!zYzY$a){HEp+Bnx^?w zh`cOCo8_!lD;^&ob19|t70YbUXa2o&0xA0AgKJ`y=f);LGy2 zm8UJ|Skl>d`#*P2fIsSHSz{)p#PjnryWKATrp#__zm+N8)7~YpPft&|Sa+?TT(&fC zUF(lpz-vWOzno&0pqJWutDavL(=0Q#1kE)6RzJZks_VLotl7GH*BVP-Z6QJRK4EC- zV6O?}Rz3e(NqgC7xz$fl)ofW^*X5+G>?dEdsIT-7?w$>qQY)8^@K!y))Ku#mTVtji zt9h@VVEjK#6T97xzVCCR-*SX&{pGI~Kv}1sE~Ah#G1~2R02hrG1E{Rmmm`snkB@X+ckz805m^Bb$QiWFqb`NI zoO`mlBb)ZSRx$k(VR%V#&N+fjYyI2KSUCZ9O>+#0ID8V?tbh0M22PF_ZxQsYvHq7HP4!&4n&GHiU37p=}3jnuhImd(m`XCQRjP88NkOi>h)w y9&c)})u7BVmzGdAd;ZsD5!q_B$^*zLCH@1LNII_TaD>hP0000GetStringSelection(); main_frame->InitBitmaps(); + main_frame->UpdateGameList(); })); auto const scInterface = new wxBoxSizer(wxHORIZONTAL); diff --git a/Source/Core/DolphinWX/Src/ISOFile.cpp b/Source/Core/DolphinWX/Src/ISOFile.cpp index 1e4164b7aa..833268ad63 100644 --- a/Source/Core/DolphinWX/Src/ISOFile.cpp +++ b/Source/Core/DolphinWX/Src/ISOFile.cpp @@ -34,7 +34,7 @@ #include "FileSearch.h" #include "CompressedBlob.h" #include "ChunkFile.h" -#include "../resources/no_banner.cpp" +#include "ConfigManager.h" #define CACHE_REVISION 0x10F @@ -174,10 +174,16 @@ GameListItem::GameListItem(const std::string& _rFileName) } else { + std::string theme = SConfig::GetInstance().m_LocalCoreStartupParameter.theme_name + "/"; + std::string dir = File::GetUserPath(D_THEMES_IDX) + theme; + +#if !defined(_WIN32) + // If theme does not exist in user's dir load from shared directory + if (!File::Exists(dir)) + dir = SHARED_USER_DIR THEMES_DIR "/" + theme; +#endif // default banner - wxMemoryInputStream istream(no_banner_png, sizeof no_banner_png); - wxImage iNoBanner(istream, wxBITMAP_TYPE_PNG); - m_Image = iNoBanner; + m_Image = wxImage(dir + "nobanner.png", wxBITMAP_TYPE_PNG); } } diff --git a/Source/Core/DolphinWX/resources/no_banner.cpp b/Source/Core/DolphinWX/resources/no_banner.cpp deleted file mode 100644 index df8d51d737..0000000000 --- a/Source/Core/DolphinWX/resources/no_banner.cpp +++ /dev/null @@ -1,28 +0,0 @@ -static const unsigned char no_banner_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, - 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x04, 0x03, - 0x00, 0x00, 0x00, 0x1f, 0xee, 0x60, 0x67, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, - 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, - 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xdd, 0x02, - 0x09, 0x16, 0x39, 0x17, 0xf0, 0x40, 0x6e, 0x04, 0x00, 0x00, 0x00, 0x15, 0x50, - 0x4c, 0x54, 0x45, 0x66, 0x66, 0x66, 0x6a, 0x6a, 0x6a, 0x6b, 0x6b, 0x6b, 0x6d, - 0x6d, 0x6d, 0x70, 0x70, 0x70, 0x73, 0x73, 0x73, 0x80, 0x80, 0x80, 0xd1, 0x7d, - 0x40, 0x35, 0x00, 0x00, 0x00, 0xc6, 0x49, 0x44, 0x41, 0x54, 0x38, 0xcb, 0x8d, - 0xd4, 0x31, 0x0e, 0xc3, 0x20, 0x10, 0x44, 0xd1, 0x51, 0x64, 0xfa, 0x1c, 0x25, - 0x47, 0x48, 0x45, 0xed, 0xca, 0x07, 0xb0, 0x80, 0xfb, 0x1f, 0x21, 0x05, 0x60, - 0xd6, 0x30, 0xe3, 0xac, 0xbb, 0x95, 0xf8, 0x7a, 0xb2, 0x01, 0xa3, 0x98, 0x27, - 0x01, 0x00, 0x10, 0xfa, 0x9c, 0xeb, 0xbc, 0xd9, 0x35, 0xb0, 0x43, 0xf9, 0xd6, - 0x15, 0x47, 0x1b, 0xf7, 0x3a, 0x46, 0x1d, 0xdc, 0x09, 0x06, 0x4c, 0xc1, 0x9d, - 0x60, 0xc0, 0x1c, 0x58, 0x82, 0x02, 0x73, 0x60, 0x09, 0x0a, 0x2c, 0xc1, 0x20, - 0x38, 0xb0, 0x04, 0x83, 0xe0, 0xc0, 0x1a, 0x74, 0x42, 0x00, 0x6b, 0xd0, 0x89, - 0x0f, 0x07, 0x48, 0xd0, 0x08, 0x01, 0x90, 0xa0, 0x13, 0x1c, 0x60, 0x41, 0x7a, - 0x02, 0x58, 0x60, 0x88, 0xe8, 0x0b, 0xd2, 0x03, 0x40, 0x83, 0x8b, 0x88, 0xde, - 0xe0, 0xac, 0xeb, 0x5f, 0xc5, 0x1b, 0xb4, 0x4d, 0xbe, 0xee, 0xc5, 0xbf, 0x20, - 0xf7, 0x77, 0x08, 0xce, 0x60, 0xbf, 0xbe, 0xd2, 0xe1, 0x0a, 0xf2, 0xd8, 0x87, - 0xe0, 0x0a, 0x76, 0xb3, 0xd3, 0x87, 0x23, 0xc8, 0xf6, 0x2c, 0x05, 0x47, 0xd0, - 0x80, 0xb7, 0x20, 0x20, 0x80, 0x2d, 0x09, 0x02, 0x02, 0x88, 0xf3, 0x3f, 0x4a, - 0x05, 0xe3, 0xa2, 0x09, 0x02, 0x0a, 0x28, 0x82, 0x80, 0x02, 0x14, 0x01, 0x09, - 0x08, 0x02, 0x12, 0x10, 0x04, 0x34, 0xc0, 0x89, 0x1f, 0xe2, 0x9a, 0xca, 0x1c, - 0x5f, 0x12, 0x62, 0x57, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, - 0x42, 0x60, 0x82 -};