mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Merge pull request #500 from archshift/assert
Made asserts actually break the debugger, or crash if the program is not in debug mode.
This commit is contained in:
		
						commit
						2fb1e4c9a2
					
				
					 88 changed files with 135 additions and 217 deletions
				
			
		
							
								
								
									
										2
									
								
								externals/boost
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								externals/boost
									
										
									
									
										vendored
									
									
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit 728a4d7d1c8b28355544ae829df9c4b5f28373c5 | Subproject commit a1afc91d3aaa3da06bdbc13c78613e1466653405 | ||||||
|  | @ -36,15 +36,15 @@ const bool EmuWindow_GLFW::IsOpen() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void EmuWindow_GLFW::OnFramebufferResizeEvent(GLFWwindow* win, int width, int height) { | void EmuWindow_GLFW::OnFramebufferResizeEvent(GLFWwindow* win, int width, int height) { | ||||||
|     _dbg_assert_(Frontend, width > 0); |     ASSERT(width > 0); | ||||||
|     _dbg_assert_(Frontend, height > 0); |     ASSERT(height > 0); | ||||||
| 
 | 
 | ||||||
|     GetEmuWindow(win)->NotifyFramebufferSizeChanged(std::pair<unsigned,unsigned>(width, height)); |     GetEmuWindow(win)->NotifyFramebufferSizeChanged(std::pair<unsigned,unsigned>(width, height)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void EmuWindow_GLFW::OnClientAreaResizeEvent(GLFWwindow* win, int width, int height) { | void EmuWindow_GLFW::OnClientAreaResizeEvent(GLFWwindow* win, int width, int height) { | ||||||
|     _dbg_assert_(Frontend, width > 0); |     ASSERT(width > 0); | ||||||
|     _dbg_assert_(Frontend, height > 0); |     ASSERT(height > 0); | ||||||
| 
 | 
 | ||||||
|     // NOTE: GLFW provides no proper way to set a minimal window size.
 |     // NOTE: GLFW provides no proper way to set a minimal window size.
 | ||||||
|     //       Hence, we just ignore the corresponding EmuWindow hint.
 |     //       Hence, we just ignore the corresponding EmuWindow hint.
 | ||||||
|  | @ -149,7 +149,7 @@ void EmuWindow_GLFW::OnMinimalClientAreaChangeRequest(const std::pair<unsigned,u | ||||||
|     std::pair<int,int> current_size; |     std::pair<int,int> current_size; | ||||||
|     glfwGetWindowSize(m_render_window, ¤t_size.first, ¤t_size.second); |     glfwGetWindowSize(m_render_window, ¤t_size.first, ¤t_size.second); | ||||||
| 
 | 
 | ||||||
|     _dbg_assert_(Frontend, (int)minimal_size.first > 0 && (int)minimal_size.second > 0); |     DEBUG_ASSERT((int)minimal_size.first > 0 && (int)minimal_size.second > 0); | ||||||
|     int new_width  = std::max(current_size.first,  (int)minimal_size.first); |     int new_width  = std::max(current_size.first,  (int)minimal_size.first); | ||||||
|     int new_height = std::max(current_size.second, (int)minimal_size.second); |     int new_height = std::max(current_size.second, (int)minimal_size.second); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -47,7 +47,7 @@ QVariant BreakPointModel::data(const QModelIndex& index, int role) const | ||||||
|                 { Pica::DebugContext::Event::VertexLoaded, tr("Vertex loaded") } |                 { Pica::DebugContext::Event::VertexLoaded, tr("Vertex loaded") } | ||||||
|             }; |             }; | ||||||
| 
 | 
 | ||||||
|             _dbg_assert_(Debug_GPU, map.size() == static_cast<size_t>(Pica::DebugContext::Event::NumEvents)); |             DEBUG_ASSERT(map.size() == static_cast<size_t>(Pica::DebugContext::Event::NumEvents)); | ||||||
| 
 | 
 | ||||||
|             return (map.find(event) != map.end()) ? map.at(event) : QString(); |             return (map.find(event) != map.end()) ? map.at(event) : QString(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -32,8 +32,7 @@ | ||||||
| #include <QLineEdit> | #include <QLineEdit> | ||||||
| #include <QRegExpValidator> | #include <QRegExpValidator> | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" | #include "common/assert.h" | ||||||
| 
 |  | ||||||
| #include "spinbox.h" | #include "spinbox.h" | ||||||
| 
 | 
 | ||||||
| CSpinBox::CSpinBox(QWidget* parent) : QAbstractSpinBox(parent), min_value(-100), max_value(100), value(0), base(10), num_digits(0) | CSpinBox::CSpinBox(QWidget* parent) : QAbstractSpinBox(parent), min_value(-100), max_value(100), value(0), base(10), num_digits(0) | ||||||
|  | @ -244,7 +243,7 @@ QValidator::State CSpinBox::validate(QString& input, int& pos) const | ||||||
|     if (strpos >= input.length() - HasSign() - suffix.length()) |     if (strpos >= input.length() - HasSign() - suffix.length()) | ||||||
|         return QValidator::Intermediate; |         return QValidator::Intermediate; | ||||||
| 
 | 
 | ||||||
|     _dbg_assert_(Frontend, base <= 10 || base == 16); |     DEBUG_ASSERT(base <= 10 || base == 16); | ||||||
|     QString regexp; |     QString regexp; | ||||||
| 
 | 
 | ||||||
|     // Demand sign character for negative ranges
 |     // Demand sign character for negative ranges
 | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ set(SRCS | ||||||
|             ) |             ) | ||||||
| 
 | 
 | ||||||
| set(HEADERS | set(HEADERS | ||||||
|  |             assert.h | ||||||
|             bit_field.h |             bit_field.h | ||||||
|             break_points.h |             break_points.h | ||||||
|             chunk_file.h |             chunk_file.h | ||||||
|  | @ -44,7 +45,6 @@ set(HEADERS | ||||||
|             hash.h |             hash.h | ||||||
|             key_map.h |             key_map.h | ||||||
|             linear_disk_cache.h |             linear_disk_cache.h | ||||||
|             log.h |  | ||||||
|             logging/text_formatter.h |             logging/text_formatter.h | ||||||
|             logging/filter.h |             logging/filter.h | ||||||
|             logging/log.h |             logging/log.h | ||||||
|  |  | ||||||
							
								
								
									
										36
									
								
								src/common/assert.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/common/assert.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | ||||||
|  | // Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
 | ||||||
|  | // Licensed under GPLv2 or any later version
 | ||||||
|  | // Refer to the license.txt file included.
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "common/common_funcs.h" | ||||||
|  | 
 | ||||||
|  | // TODO (yuriks) allow synchronous logging so we don't need printf
 | ||||||
|  | #define ASSERT(_a_) \ | ||||||
|  |     do if (!(_a_)) {\ | ||||||
|  |         fprintf(stderr, "Assertion Failed!\n\n  Line: %d\n  File: %s\n  Time: %s\n", \ | ||||||
|  |                      __LINE__, __FILE__, __TIME__); \ | ||||||
|  |         Crash(); \ | ||||||
|  |     } while (0) | ||||||
|  | 
 | ||||||
|  | #define ASSERT_MSG(_a_, ...) \ | ||||||
|  |     do if (!(_a_)) {\ | ||||||
|  |         fprintf(stderr, "Assertion Failed!\n\n  Line: %d\n  File: %s\n  Time: %s\n", \ | ||||||
|  |                      __LINE__, __FILE__, __TIME__); \ | ||||||
|  |         fprintf(stderr, __VA_ARGS__); \ | ||||||
|  |         fprintf(stderr, "\n"); \ | ||||||
|  |         Crash(); \ | ||||||
|  |     } while (0) | ||||||
|  | 
 | ||||||
|  | #define UNREACHABLE() ASSERT_MSG(false, "Unreachable code!") | ||||||
|  | 
 | ||||||
|  | #ifdef _DEBUG | ||||||
|  | #define DEBUG_ASSERT(_a_) ASSERT(_a_) | ||||||
|  | #define DEBUG_ASSERT_MSG(_a_, ...) ASSERT_MSG(_a_, __VA_ARGS__) | ||||||
|  | #else // not debug
 | ||||||
|  | #define DEBUG_ASSERT(_a_) | ||||||
|  | #define DEBUG_ASSERT_MSG(_a_, _desc_, ...) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #define UNIMPLEMENTED() DEBUG_ASSERT_MSG(false, "Unimplemented code!") | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
| #include "common/common.h" | #include "common/common.h" | ||||||
| #include "common/debug_interface.h" | #include "common/debug_interface.h" | ||||||
| #include "common/break_points.h" | #include "common/break_points.h" | ||||||
|  | #include "common/logging/log.h" | ||||||
| 
 | 
 | ||||||
| #include <sstream> | #include <sstream> | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
|  |  | ||||||
|  | @ -180,7 +180,7 @@ public: | ||||||
|         case MODE_MEASURE: break;  // MODE_MEASURE - don't need to do anything
 |         case MODE_MEASURE: break;  // MODE_MEASURE - don't need to do anything
 | ||||||
|         case MODE_VERIFY: |         case MODE_VERIFY: | ||||||
|             for (int i = 0; i < size; i++) { |             for (int i = 0; i < size; i++) { | ||||||
|                 _dbg_assert_msg_(Common, ((u8*)data)[i] == (*ptr)[i], |                 DEBUG_ASSERT_MSG(((u8*)data)[i] == (*ptr)[i], | ||||||
|                     "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", |                     "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", | ||||||
|                     ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], |                     ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], | ||||||
|                     (*ptr)[i], (*ptr)[i], &(*ptr)[i]); |                     (*ptr)[i], (*ptr)[i], &(*ptr)[i]); | ||||||
|  | @ -200,7 +200,7 @@ public: | ||||||
|         case MODE_MEASURE: break;  // MODE_MEASURE - don't need to do anything
 |         case MODE_MEASURE: break;  // MODE_MEASURE - don't need to do anything
 | ||||||
|         case MODE_VERIFY: |         case MODE_VERIFY: | ||||||
|             for (int i = 0; i < size; i++) { |             for (int i = 0; i < size; i++) { | ||||||
|                 _dbg_assert_msg_(Common, ((u8*)data)[i] == (*ptr)[i], |                 DEBUG_ASSERT_MSG(((u8*)data)[i] == (*ptr)[i], | ||||||
|                     "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", |                     "Savestate verification failure: %d (0x%X) (at %p) != %d (0x%X) (at %p).\n", | ||||||
|                     ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], |                     ((u8*)data)[i], ((u8*)data)[i], &((u8*)data)[i], | ||||||
|                     (*ptr)[i], (*ptr)[i], &(*ptr)[i]); |                     (*ptr)[i], (*ptr)[i], &(*ptr)[i]); | ||||||
|  | @ -505,8 +505,7 @@ public: | ||||||
|         case MODE_WRITE:    memcpy(*ptr, x.c_str(), stringLen); break; |         case MODE_WRITE:    memcpy(*ptr, x.c_str(), stringLen); break; | ||||||
|         case MODE_MEASURE: break; |         case MODE_MEASURE: break; | ||||||
|         case MODE_VERIFY: |         case MODE_VERIFY: | ||||||
|             _dbg_assert_msg_(Common, |             DEBUG_ASSERT_MSG((x == (char*)*ptr), | ||||||
|                 !strcmp(x.c_str(), (char*)*ptr), |  | ||||||
|                 "Savestate verification failure: \"%s\" != \"%s\" (at %p).\n", |                 "Savestate verification failure: \"%s\" != \"%s\" (at %p).\n", | ||||||
|                 x.c_str(), (char*)*ptr, ptr); |                 x.c_str(), (char*)*ptr, ptr); | ||||||
|             break; |             break; | ||||||
|  | @ -524,7 +523,7 @@ public: | ||||||
|         case MODE_WRITE:    memcpy(*ptr, x.c_str(), stringLen); break; |         case MODE_WRITE:    memcpy(*ptr, x.c_str(), stringLen); break; | ||||||
|         case MODE_MEASURE: break; |         case MODE_MEASURE: break; | ||||||
|         case MODE_VERIFY: |         case MODE_VERIFY: | ||||||
|             _dbg_assert_msg_(Common, x == (wchar_t*)*ptr, |             DEBUG_ASSERT_MSG((x == (wchar_t*)*ptr), | ||||||
|                 "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", |                 "Savestate verification failure: \"%ls\" != \"%ls\" (at %p).\n", | ||||||
|                 x.c_str(), (wchar_t*)*ptr, ptr); |                 x.c_str(), (wchar_t*)*ptr, ptr); | ||||||
|             break; |             break; | ||||||
|  |  | ||||||
|  | @ -25,7 +25,8 @@ private: | ||||||
|     NonCopyable& operator=(NonCopyable& other); |     NonCopyable& operator=(NonCopyable& other); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" | #include "common/assert.h" | ||||||
|  | #include "common/logging/log.h" | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/msg_handler.h" | #include "common/msg_handler.h" | ||||||
| #include "common/common_funcs.h" | #include "common/common_funcs.h" | ||||||
|  |  | ||||||
|  | @ -44,15 +44,14 @@ template<> struct CompileTimeAssert<true> {}; | ||||||
| #include <sys/endian.h> | #include <sys/endian.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| // go to debugger mode
 | #if defined(__x86_64__) || defined(_M_X64) | ||||||
|     #ifdef GEKKO | #define Crash() __asm__ __volatile__("int $3") | ||||||
|         #define Crash() | #elif defined(_M_ARM) | ||||||
|     #elif defined _M_GENERIC | #define Crash() __asm__ __volatile__("trap") | ||||||
|         #define Crash() { exit(1); } |  | ||||||
| #else | #else | ||||||
|         #define Crash() {asm ("int $3");} | #define Crash() exit(1) | ||||||
| #endif | #endif | ||||||
|     #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) | 
 | ||||||
| // GCC 4.8 defines all the rotate functions now
 | // GCC 4.8 defines all the rotate functions now
 | ||||||
| // Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit
 | // Small issue with GCC's lrotl/lrotr intrinsics is they are still 32bit while we require 64bit
 | ||||||
| #ifndef _rotl | #ifndef _rotl | ||||||
|  | @ -136,14 +135,10 @@ inline u64 _rotr64(u64 x, unsigned int shift){ | ||||||
|     #define fstat64 _fstat64 |     #define fstat64 _fstat64 | ||||||
|     #define fileno _fileno |     #define fileno _fileno | ||||||
| 
 | 
 | ||||||
|     #if _M_IX86 |  | ||||||
|         #define Crash() {__asm int 3} |  | ||||||
|     #else |  | ||||||
|     extern "C" { |     extern "C" { | ||||||
|         __declspec(dllimport) void __stdcall DebugBreak(void); |         __declspec(dllimport) void __stdcall DebugBreak(void); | ||||||
|     } |     } | ||||||
|     #define Crash() {DebugBreak();} |     #define Crash() {DebugBreak();} | ||||||
|     #endif // M_IX86
 |  | ||||||
| #endif // _MSC_VER ndef
 | #endif // _MSC_VER ndef
 | ||||||
| 
 | 
 | ||||||
| // Dolphin's min and max functions
 | // Dolphin's min and max functions
 | ||||||
|  |  | ||||||
|  | @ -28,6 +28,12 @@ | ||||||
| #include <cstdint> | #include <cstdint> | ||||||
| #include <cstdlib> | #include <cstdlib> | ||||||
| 
 | 
 | ||||||
|  | #ifdef _MSC_VER | ||||||
|  | #ifndef __func__ | ||||||
|  | #define __func__ __FUNCTION__ | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| typedef std::uint8_t  u8;  ///< 8-bit unsigned byte
 | typedef std::uint8_t  u8;  ///< 8-bit unsigned byte
 | ||||||
| typedef std::uint16_t u16; ///< 16-bit unsigned short
 | typedef std::uint16_t u16; ///< 16-bit unsigned short
 | ||||||
| typedef std::uint32_t u32; ///< 32-bit unsigned word
 | typedef std::uint32_t u32; ///< 32-bit unsigned word
 | ||||||
|  |  | ||||||
|  | @ -11,7 +11,6 @@ | ||||||
| #include <thread> | #include <thread> | ||||||
| 
 | 
 | ||||||
| #include "common/common.h" // for NonCopyable | #include "common/common.h" // for NonCopyable | ||||||
| #include "common/log.h" // for _dbg_assert_ |  | ||||||
| 
 | 
 | ||||||
| namespace Common { | namespace Common { | ||||||
| 
 | 
 | ||||||
|  | @ -93,7 +92,7 @@ public: | ||||||
|                 return QUEUE_CLOSED; |                 return QUEUE_CLOSED; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         _dbg_assert_(Common, CanRead()); |         DEBUG_ASSERT(CanRead()); | ||||||
|         return PopInternal(dest, dest_len); |         return PopInternal(dest, dest_len); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -119,7 +118,7 @@ private: | ||||||
|     size_t PopInternal(T* dest, size_t dest_len) { |     size_t PopInternal(T* dest, size_t dest_len) { | ||||||
|         size_t output_count = 0; |         size_t output_count = 0; | ||||||
|         while (output_count < dest_len && CanRead()) { |         while (output_count < dest_len && CanRead()) { | ||||||
|             _dbg_assert_(Common, CanRead()); |             DEBUG_ASSERT(CanRead()); | ||||||
| 
 | 
 | ||||||
|             T* item = &Data()[reader_index]; |             T* item = &Data()[reader_index]; | ||||||
|             T out_val = std::move(*item); |             T out_val = std::move(*item); | ||||||
|  |  | ||||||
|  | @ -1,56 +0,0 @@ | ||||||
| // Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project
 |  | ||||||
| // Licensed under GPLv2 or any later version
 |  | ||||||
| // Refer to the license.txt file included.
 |  | ||||||
| 
 |  | ||||||
| #pragma once |  | ||||||
| 
 |  | ||||||
| #include "common/common_funcs.h" |  | ||||||
| #include "common/msg_handler.h" |  | ||||||
| #include "common/logging/log.h" |  | ||||||
| 
 |  | ||||||
| #ifdef _MSC_VER |  | ||||||
| #ifndef __func__ |  | ||||||
| #define __func__ __FUNCTION__ |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #ifdef _DEBUG |  | ||||||
| #define _dbg_assert_(_t_, _a_) \ |  | ||||||
|     if (!(_a_)) {\ |  | ||||||
|         LOG_CRITICAL(_t_, "Error...\n\n  Line: %d\n  File: %s\n  Time: %s\n\nIgnore and continue?", \ |  | ||||||
|                        __LINE__, __FILE__, __TIME__); \ |  | ||||||
|         if (!PanicYesNo("*** Assertion (see log)***\n")) {Crash();} \ |  | ||||||
|     } |  | ||||||
| #define _dbg_assert_msg_(_t_, _a_, ...)\ |  | ||||||
|     if (!(_a_)) {\ |  | ||||||
|         LOG_CRITICAL(_t_, __VA_ARGS__); \ |  | ||||||
|         if (!PanicYesNo(__VA_ARGS__)) {Crash();} \ |  | ||||||
|     } |  | ||||||
| #define _dbg_update_() Host_UpdateLogDisplay(); |  | ||||||
| 
 |  | ||||||
| #else // not debug
 |  | ||||||
| #define _dbg_update_() ; |  | ||||||
| 
 |  | ||||||
| #ifndef _dbg_assert_ |  | ||||||
| #define _dbg_assert_(_t_, _a_) {} |  | ||||||
| #define _dbg_assert_msg_(_t_, _a_, _desc_, ...) {} |  | ||||||
| #endif // dbg_assert
 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| #define _assert_(_a_) _dbg_assert_(MASTER_LOG, _a_) |  | ||||||
| 
 |  | ||||||
| #ifndef GEKKO |  | ||||||
| #ifdef _MSC_VER |  | ||||||
| #define _assert_msg_(_t_, _a_, _fmt_, ...)        \ |  | ||||||
|     if (!(_a_)) {\ |  | ||||||
|         if (!PanicYesNo(_fmt_, __VA_ARGS__)) {Crash();} \ |  | ||||||
|     } |  | ||||||
| #else // not msvc
 |  | ||||||
| #define _assert_msg_(_t_, _a_, _fmt_, ...)        \ |  | ||||||
|     if (!(_a_)) {\ |  | ||||||
|         if (!PanicYesNo(_fmt_, ##__VA_ARGS__)) {Crash();} \ |  | ||||||
|     } |  | ||||||
| #endif // _WIN32
 |  | ||||||
| #else // GEKKO
 |  | ||||||
| #define _assert_msg_(_t_, _a_, _fmt_, ...) |  | ||||||
| #endif |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" // For _dbg_assert_
 | #include "common/assert.h" | ||||||
| 
 | 
 | ||||||
| #include "common/logging/backend.h" | #include "common/logging/backend.h" | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
|  | @ -67,7 +67,7 @@ Logger::Logger() { | ||||||
| #undef SUB | #undef SUB | ||||||
| 
 | 
 | ||||||
|     // Ensures that ALL_LOG_CLASSES isn't missing any entries.
 |     // Ensures that ALL_LOG_CLASSES isn't missing any entries.
 | ||||||
|     _dbg_assert_(Log, all_classes.size() == (size_t)Class::Count); |     DEBUG_ASSERT(all_classes.size() == (size_t)Class::Count); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // GetClassName is a macro defined by Windows.h, grrr...
 | // GetClassName is a macro defined by Windows.h, grrr...
 | ||||||
|  |  | ||||||
|  | @ -29,7 +29,6 @@ extern bool MsgAlert(bool yes_no, int Style, const char* format, ...) | ||||||
|     ; |     ; | ||||||
| void SetEnableAlert(bool enable); | void SetEnableAlert(bool enable); | ||||||
| 
 | 
 | ||||||
| #ifndef GEKKO |  | ||||||
| #ifdef _MSC_VER | #ifdef _MSC_VER | ||||||
|     #define SuccessAlert(format, ...) MsgAlert(false, INFORMATION, format, __VA_ARGS__) |     #define SuccessAlert(format, ...) MsgAlert(false, INFORMATION, format, __VA_ARGS__) | ||||||
|     #define PanicAlert(format, ...) MsgAlert(false, WARNING, format, __VA_ARGS__) |     #define PanicAlert(format, ...) MsgAlert(false, WARNING, format, __VA_ARGS__) | ||||||
|  | @ -55,16 +54,3 @@ void SetEnableAlert(bool enable); | ||||||
|     #define AskYesNoT(format, ...) MsgAlert(true, QUESTION, format, ##__VA_ARGS__) |     #define AskYesNoT(format, ...) MsgAlert(true, QUESTION, format, ##__VA_ARGS__) | ||||||
|     #define CriticalAlertT(format, ...) MsgAlert(false, CRITICAL, format, ##__VA_ARGS__) |     #define CriticalAlertT(format, ...) MsgAlert(false, CRITICAL, format, ##__VA_ARGS__) | ||||||
| #endif | #endif | ||||||
| #else |  | ||||||
| // GEKKO
 |  | ||||||
|     #define SuccessAlert(format, ...) ; |  | ||||||
|     #define PanicAlert(format, ...) ; |  | ||||||
|     #define PanicYesNo(format, ...) ; |  | ||||||
|     #define AskYesNo(format, ...) ; |  | ||||||
|     #define CriticalAlert(format, ...) ; |  | ||||||
|     #define SuccessAlertT(format, ...) ; |  | ||||||
|     #define PanicAlertT(format, ...) ; |  | ||||||
|     #define PanicYesNoT(format, ...) ; |  | ||||||
|     #define AskYesNoT(format, ...) ; |  | ||||||
|     #define CriticalAlertT(format, ...) ; |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include "common/common_funcs.h" | #include "common/common_funcs.h" | ||||||
|  | #include <utility> | ||||||
| 
 | 
 | ||||||
| namespace detail { | namespace detail { | ||||||
|     template <typename Func> |     template <typename Func> | ||||||
|  |  | ||||||
|  | @ -4,6 +4,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| 
 | 
 | ||||||
|  | #include "common/logging/log.h" | ||||||
| #include "core/arm/skyeye_common/armdefs.h" | #include "core/arm/skyeye_common/armdefs.h" | ||||||
| 
 | 
 | ||||||
| void switch_mode(arm_core_t *core, uint32_t mode) { | void switch_mode(arm_core_t *core, uint32_t mode) { | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ | ||||||
| #include <mutex> | #include <mutex> | ||||||
| #include <vector> | #include <vector> | ||||||
| 
 | 
 | ||||||
|  | #include "common/assert.h" | ||||||
| #include "common/chunk_file.h" | #include "common/chunk_file.h" | ||||||
| #include "common/log.h" |  | ||||||
| 
 | 
 | ||||||
| #include "core/arm/arm_interface.h" | #include "core/arm/arm_interface.h" | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/log.h" | #include "common/logging/log.h" | ||||||
| 
 | 
 | ||||||
| #include "core/hle/config_mem.h" | #include "core/hle/config_mem.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ void CallSVC(u32 opcode) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Reschedule(const char *reason) { | void Reschedule(const char *reason) { | ||||||
|     _dbg_assert_msg_(Kernel, reason != 0 && strlen(reason) < 256, "Reschedule: Invalid or too long reason."); |     DEBUG_ASSERT_MSG(reason != nullptr && strlen(reason) < 256, "Reschedule: Invalid or too long reason."); | ||||||
| 
 | 
 | ||||||
|     // TODO(bunnei): It seems that games depend on some CPU execution time elapsing during HLE
 |     // TODO(bunnei): It seems that games depend on some CPU execution time elapsing during HLE
 | ||||||
|     // routines. This simulates that time by artificially advancing the number of CPU "ticks".
 |     // routines. This simulates that time by artificially advancing the number of CPU "ticks".
 | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ bool Event::ShouldWait() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Event::Acquire() { | void Event::Acquire() { | ||||||
|     _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |     ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||||
| 
 | 
 | ||||||
|     // Release the event if it's not sticky...
 |     // Release the event if it's not sticky...
 | ||||||
|     if (reset_type != RESETTYPE_STICKY) |     if (reset_type != RESETTYPE_STICKY) | ||||||
|  |  | ||||||
|  | @ -52,7 +52,7 @@ void WaitObject::WakeupAllWaitingThreads() { | ||||||
|     for (auto thread : waiting_threads_copy) |     for (auto thread : waiting_threads_copy) | ||||||
|         thread->ReleaseWaitObject(this); |         thread->ReleaseWaitObject(this); | ||||||
| 
 | 
 | ||||||
|     _assert_msg_(Kernel, waiting_threads.empty(), "failed to awaken all waiting threads!"); |     ASSERT_MSG(waiting_threads.empty(), "failed to awaken all waiting threads!"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| HandleTable::HandleTable() { | HandleTable::HandleTable() { | ||||||
|  | @ -61,7 +61,7 @@ HandleTable::HandleTable() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ResultVal<Handle> HandleTable::Create(SharedPtr<Object> obj) { | ResultVal<Handle> HandleTable::Create(SharedPtr<Object> obj) { | ||||||
|     _dbg_assert_(Kernel, obj != nullptr); |     DEBUG_ASSERT(obj != nullptr); | ||||||
| 
 | 
 | ||||||
|     u16 slot = next_free_slot; |     u16 slot = next_free_slot; | ||||||
|     if (slot >= generations.size()) { |     if (slot >= generations.size()) { | ||||||
|  |  | ||||||
|  | @ -64,7 +64,7 @@ void Mutex::Acquire() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Mutex::Acquire(SharedPtr<Thread> thread) { | void Mutex::Acquire(SharedPtr<Thread> thread) { | ||||||
|     _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |     ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||||
| 
 | 
 | ||||||
|     // Actually "acquire" the mutex only if we don't already have it...
 |     // Actually "acquire" the mutex only if we don't already have it...
 | ||||||
|     if (lock_count == 0) { |     if (lock_count == 0) { | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ bool Semaphore::ShouldWait() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Semaphore::Acquire() { | void Semaphore::Acquire() { | ||||||
|     _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |     ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||||
|     --available_count; |     --available_count; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ public: | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     void Acquire() override { |     void Acquire() override { | ||||||
|         _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |         ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ bool Thread::ShouldWait() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Thread::Acquire() { | void Thread::Acquire() { | ||||||
|     _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |     ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Lists all thread ids that aren't deleted/etc.
 | // Lists all thread ids that aren't deleted/etc.
 | ||||||
|  | @ -144,7 +144,7 @@ void ArbitrateAllThreads(u32 address) { | ||||||
|  * @param new_thread The thread to switch to |  * @param new_thread The thread to switch to | ||||||
|  */ |  */ | ||||||
| static void SwitchContext(Thread* new_thread) { | static void SwitchContext(Thread* new_thread) { | ||||||
|     _dbg_assert_msg_(Kernel, new_thread->status == THREADSTATUS_READY, "Thread must be ready to become running."); |     DEBUG_ASSERT_MSG(new_thread->status == THREADSTATUS_READY, "Thread must be ready to become running."); | ||||||
| 
 | 
 | ||||||
|     Thread* previous_thread = GetCurrentThread(); |     Thread* previous_thread = GetCurrentThread(); | ||||||
| 
 | 
 | ||||||
|  | @ -304,14 +304,12 @@ void Thread::ResumeFromWait() { | ||||||
|             break; |             break; | ||||||
|         case THREADSTATUS_RUNNING: |         case THREADSTATUS_RUNNING: | ||||||
|         case THREADSTATUS_READY: |         case THREADSTATUS_READY: | ||||||
|             LOG_ERROR(Kernel, "Thread with object id %u has already resumed.", GetObjectId()); |             DEBUG_ASSERT_MSG(false, "Thread with object id %u has already resumed.", GetObjectId()); | ||||||
|             _dbg_assert_(Kernel, false); |  | ||||||
|             return; |             return; | ||||||
|         case THREADSTATUS_DEAD: |         case THREADSTATUS_DEAD: | ||||||
|             // This should never happen, as threads must complete before being stopped.
 |             // This should never happen, as threads must complete before being stopped.
 | ||||||
|             LOG_CRITICAL(Kernel, "Thread with object id %u cannot be resumed because it's DEAD.", |             DEBUG_ASSERT_MSG(false, "Thread with object id %u cannot be resumed because it's DEAD.", | ||||||
|                 GetObjectId()); |                 GetObjectId()); | ||||||
|             _dbg_assert_(Kernel, false); |  | ||||||
|             return; |             return; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  | @ -387,7 +385,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point, | ||||||
| // TODO(peachum): Remove this. Range checking should be done, and an appropriate error should be returned.
 | // TODO(peachum): Remove this. Range checking should be done, and an appropriate error should be returned.
 | ||||||
| static void ClampPriority(const Thread* thread, s32* priority) { | static void ClampPriority(const Thread* thread, s32* priority) { | ||||||
|     if (*priority < THREADPRIO_HIGHEST || *priority > THREADPRIO_LOWEST) { |     if (*priority < THREADPRIO_HIGHEST || *priority > THREADPRIO_LOWEST) { | ||||||
|         _dbg_assert_msg_(Kernel, false, "Application passed an out of range priority. An error should be returned."); |         DEBUG_ASSERT_MSG(false, "Application passed an out of range priority. An error should be returned."); | ||||||
| 
 | 
 | ||||||
|         s32 new_priority = CLAMP(*priority, THREADPRIO_HIGHEST, THREADPRIO_LOWEST); |         s32 new_priority = CLAMP(*priority, THREADPRIO_HIGHEST, THREADPRIO_LOWEST); | ||||||
|         LOG_WARNING(Kernel_SVC, "(name=%s): invalid priority=%d, clamping to %d", |         LOG_WARNING(Kernel_SVC, "(name=%s): invalid priority=%d, clamping to %d", | ||||||
|  | @ -425,7 +423,7 @@ SharedPtr<Thread> SetupIdleThread() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| SharedPtr<Thread> SetupMainThread(u32 stack_size, u32 entry_point, s32 priority) { | SharedPtr<Thread> SetupMainThread(u32 stack_size, u32 entry_point, s32 priority) { | ||||||
|     _dbg_assert_(Kernel, !GetCurrentThread()); |     DEBUG_ASSERT(!GetCurrentThread()); | ||||||
| 
 | 
 | ||||||
|     // Initialize new "main" thread
 |     // Initialize new "main" thread
 | ||||||
|     auto thread_res = Thread::Create("main", entry_point, priority, 0, |     auto thread_res = Thread::Create("main", entry_point, priority, 0, | ||||||
|  |  | ||||||
|  | @ -38,7 +38,7 @@ bool Timer::ShouldWait() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Timer::Acquire() { | void Timer::Acquire() { | ||||||
|     _assert_msg_(Kernel, !ShouldWait(), "object unavailable!"); |     ASSERT_MSG( !ShouldWait(), "object unavailable!"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void Timer::Set(s64 initial, s64 interval) { | void Timer::Set(s64 initial, s64 interval) { | ||||||
|  |  | ||||||
|  | @ -363,7 +363,7 @@ public: | ||||||
|     /// Asserts that the result succeeded and returns a reference to it.
 |     /// Asserts that the result succeeded and returns a reference to it.
 | ||||||
|     T& Unwrap() { |     T& Unwrap() { | ||||||
|         // TODO(yuriks): Should be a release assert
 |         // TODO(yuriks): Should be a release assert
 | ||||||
|         _assert_msg_(Common, Succeeded(), "Tried to Unwrap empty ResultVal"); |         ASSERT_MSG(Succeeded(), "Tried to Unwrap empty ResultVal"); | ||||||
|         return **this; |         return **this; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,7 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" | #include "common/logging/log.h" | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ac_u.h" | #include "core/hle/service/ac_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/act_u.h" | #include "core/hle/service/act_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/am_app.h" | #include "core/hle/service/am_app.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/am_net.h" | #include "core/hle/service/am_net.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/am_sys.h" | #include "core/hle/service/am_sys.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/apt_a.h" | #include "core/hle/service/apt_a.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -79,7 +79,7 @@ void Initialize(Service::Interface* self) { | ||||||
|     notification_event->Clear(); |     notification_event->Clear(); | ||||||
|     pause_event->Signal(); // Fire start event
 |     pause_event->Signal(); // Fire start event
 | ||||||
| 
 | 
 | ||||||
|     _assert_msg_(KERNEL, (nullptr != lock), "Cannot initialize without lock"); |     ASSERT_MSG((nullptr != lock), "Cannot initialize without lock"); | ||||||
|     lock->Release(); |     lock->Release(); | ||||||
| 
 | 
 | ||||||
|     cmd_buff[1] = RESULT_SUCCESS.raw; // No error
 |     cmd_buff[1] = RESULT_SUCCESS.raw; // No error
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/boss_p.h" | #include "core/hle/service/boss_p.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/boss_u.h" | #include "core/hle/service/boss_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/cam_u.h" | #include "core/hle/service/cam_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/cecd_s.h" | #include "core/hle/service/cecd_s.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/cecd_u.h" | #include "core/hle/service/cecd_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/make_unique.h" | #include "common/make_unique.h" | ||||||
| #include "core/file_sys/archive_systemsavedata.h" | #include "core/file_sys/archive_systemsavedata.h" | ||||||
| #include "core/hle/service/cfg/cfg.h" | #include "core/hle/service/cfg/cfg.h" | ||||||
|  | @ -109,7 +108,7 @@ ResultCode UpdateConfigNANDSavegame() { | ||||||
|     mode.create_flag = 1; |     mode.create_flag = 1; | ||||||
|     FileSys::Path path("config"); |     FileSys::Path path("config"); | ||||||
|     auto file = cfg_system_save_data->OpenFile(path, mode); |     auto file = cfg_system_save_data->OpenFile(path, mode); | ||||||
|     _assert_msg_(Service_CFG, file != nullptr, "could not open file"); |     ASSERT_MSG(file != nullptr, "could not open file"); | ||||||
|     file->Write(0, CONFIG_SAVEFILE_SIZE, 1, cfg_config_file_buffer.data()); |     file->Write(0, CONFIG_SAVEFILE_SIZE, 1, cfg_config_file_buffer.data()); | ||||||
|     return RESULT_SUCCESS; |     return RESULT_SUCCESS; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/cfg/cfg.h" | #include "core/hle/service/cfg/cfg.h" | ||||||
| #include "core/hle/service/cfg/cfg_i.h" | #include "core/hle/service/cfg/cfg_i.h" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/cfg/cfg.h" | #include "core/hle/service/cfg/cfg.h" | ||||||
| #include "core/hle/service/cfg/cfg_s.h" | #include "core/hle/service/cfg/cfg_s.h" | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/file_util.h" | #include "common/file_util.h" | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/string_util.h" | #include "common/string_util.h" | ||||||
| #include "core/settings.h" | #include "core/settings.h" | ||||||
| #include "core/file_sys/archive_systemsavedata.h" | #include "core/file_sys/archive_systemsavedata.h" | ||||||
|  | @ -84,7 +83,7 @@ static void GetCountryCodeID(Service::Interface* self) { | ||||||
|     u16 country_code_id = 0; |     u16 country_code_id = 0; | ||||||
| 
 | 
 | ||||||
|     // The following algorithm will fail if the first country code isn't 0.
 |     // The following algorithm will fail if the first country code isn't 0.
 | ||||||
|     _dbg_assert_(Service_CFG, country_codes[0] == 0); |     DEBUG_ASSERT(country_codes[0] == 0); | ||||||
| 
 | 
 | ||||||
|     for (size_t id = 0; id < country_codes.size(); ++id) { |     for (size_t id = 0; id < country_codes.size(); ++id) { | ||||||
|         if (country_codes[id] == country_code) { |         if (country_codes[id] == country_code) { | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/csnd_snd.h" | #include "core/hle/service/csnd_snd.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/kernel/event.h" | #include "core/hle/kernel/event.h" | ||||||
| #include "core/hle/service/dsp_dsp.h" | #include "core/hle/service/dsp_dsp.h" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/err_f.h" | #include "core/hle/service/err_f.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/frd_a.h" | #include "core/hle/service/frd_a.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/frd_u.h" | #include "core/hle/service/frd_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -261,7 +261,7 @@ ResultCode RegisterArchiveType(std::unique_ptr<FileSys::ArchiveFactory>&& factor | ||||||
|     auto result = id_code_map.emplace(id_code, std::move(factory)); |     auto result = id_code_map.emplace(id_code, std::move(factory)); | ||||||
| 
 | 
 | ||||||
|     bool inserted = result.second; |     bool inserted = result.second; | ||||||
|     _assert_msg_(Service_FS, inserted, "Tried to register more than one archive with same id code"); |     ASSERT_MSG(inserted, "Tried to register more than one archive with same id code"); | ||||||
| 
 | 
 | ||||||
|     auto& archive = result.first->second; |     auto& archive = result.first->second; | ||||||
|     LOG_DEBUG(Service_FS, "Registered archive %s with id code 0x%08X", archive->GetName().c_str(), id_code); |     LOG_DEBUG(Service_FS, "Registered archive %s with id code 0x%08X", archive->GetName().c_str(), id_code); | ||||||
|  |  | ||||||
|  | @ -2,8 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/bit_field.h" | #include "common/bit_field.h" | ||||||
| 
 | 
 | ||||||
| #include "core/mem_map.h" | #include "core/mem_map.h" | ||||||
|  | @ -36,7 +34,7 @@ static inline u8* GetCommandBuffer(u32 thread_id) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline FrameBufferUpdate* GetFrameBufferInfo(u32 thread_id, u32 screen_index) { | static inline FrameBufferUpdate* GetFrameBufferInfo(u32 thread_id, u32 screen_index) { | ||||||
|     _dbg_assert_msg_(Service_GSP, screen_index < 2, "Invalid screen index"); |     DEBUG_ASSERT_MSG(screen_index < 2, "Invalid screen index"); | ||||||
| 
 | 
 | ||||||
|     // For each thread there are two FrameBufferUpdate fields
 |     // For each thread there are two FrameBufferUpdate fields
 | ||||||
|     u32 offset = 0x200 + (2 * thread_id + screen_index) * sizeof(FrameBufferUpdate); |     u32 offset = 0x200 + (2 * thread_id + screen_index) * sizeof(FrameBufferUpdate); | ||||||
|  | @ -186,7 +184,7 @@ static void RegisterInterruptRelayQueue(Service::Interface* self) { | ||||||
|     u32 flags = cmd_buff[1]; |     u32 flags = cmd_buff[1]; | ||||||
| 
 | 
 | ||||||
|     g_interrupt_event = Kernel::g_handle_table.Get<Kernel::Event>(cmd_buff[3]); |     g_interrupt_event = Kernel::g_handle_table.Get<Kernel::Event>(cmd_buff[3]); | ||||||
|     _assert_msg_(GSP, (g_interrupt_event != nullptr), "handle is not valid!"); |     ASSERT_MSG((g_interrupt_event != nullptr), "handle is not valid!"); | ||||||
|     g_shared_memory = Kernel::SharedMemory::Create("GSPSharedMem"); |     g_shared_memory = Kernel::SharedMemory::Create("GSPSharedMem"); | ||||||
| 
 | 
 | ||||||
|     Handle shmem_handle = Kernel::g_handle_table.Create(g_shared_memory).MoveFrom(); |     Handle shmem_handle = Kernel::g_handle_table.Create(g_shared_memory).MoveFrom(); | ||||||
|  |  | ||||||
|  | @ -2,8 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/bit_field.h" | #include "common/bit_field.h" | ||||||
| 
 | 
 | ||||||
| #include "core/hle/service/gsp_lcd.h" | #include "core/hle/service/gsp_lcd.h" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/hid/hid_spvr.h" | #include "core/hle/service/hid/hid_spvr.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,8 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| 
 |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/kernel/event.h" | #include "core/hle/kernel/event.h" | ||||||
| #include "core/hle/kernel/shared_memory.h" | #include "core/hle/kernel/shared_memory.h" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/http_c.h" | #include "core/hle/service/http_c.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ir_rst.h" | #include "core/hle/service/ir_rst.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ir_u.h" | #include "core/hle/service/ir_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ldr_ro.h" | #include "core/hle/service/ldr_ro.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/mic_u.h" | #include "core/hle/service/mic_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/news_s.h" | #include "core/hle/service/news_s.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/news_u.h" | #include "core/hle/service/news_u.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/nim_aoc.h" | #include "core/hle/service/nim_aoc.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/nwm_uds.h" | #include "core/hle/service/nwm_uds.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/pm_app.h" | #include "core/hle/service/pm_app.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ptm_play.h" | #include "core/hle/service/ptm_play.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/make_unique.h" | #include "common/make_unique.h" | ||||||
| #include "core/file_sys/archive_extsavedata.h" | #include "core/file_sys/archive_extsavedata.h" | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/make_unique.h" | #include "common/make_unique.h" | ||||||
| 
 | 
 | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
|  | @ -148,7 +147,7 @@ Interface::Interface() { | ||||||
|         Service::FS::FormatArchive(Service::FS::ArchiveIdCode::SharedExtSaveData, archive_path); |         Service::FS::FormatArchive(Service::FS::ArchiveIdCode::SharedExtSaveData, archive_path); | ||||||
|         // Open it again to get a valid archive now that the folder exists
 |         // Open it again to get a valid archive now that the folder exists
 | ||||||
|         archive_result = Service::FS::OpenArchive(Service::FS::ArchiveIdCode::SharedExtSaveData, archive_path); |         archive_result = Service::FS::OpenArchive(Service::FS::ArchiveIdCode::SharedExtSaveData, archive_path); | ||||||
|         _assert_msg_(Service_PTM, archive_result.Succeeded(), "Could not open the PTM SharedExtSaveData archive!"); |         ASSERT_MSG(archive_result.Succeeded(), "Could not open the PTM SharedExtSaveData archive!"); | ||||||
| 
 | 
 | ||||||
|         FileSys::Path gamecoin_path("gamecoin.dat"); |         FileSys::Path gamecoin_path("gamecoin.dat"); | ||||||
|         FileSys::Mode open_mode = {}; |         FileSys::Mode open_mode = {}; | ||||||
|  |  | ||||||
|  | @ -29,7 +29,6 @@ | ||||||
| #include <poll.h> | #include <poll.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "common/scope_exit.h" | #include "common/scope_exit.h" | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/soc_u.h" | #include "core/hle/service/soc_u.h" | ||||||
|  | @ -259,7 +258,7 @@ union CTRSockAddr { | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         default: |         default: | ||||||
|             _dbg_assert_msg_(Service_SOC, false, "Unhandled address family (sa_family) in CTRSockAddr::ToPlatform"); |             ASSERT_MSG(false, "Unhandled address family (sa_family) in CTRSockAddr::ToPlatform"); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         return result; |         return result; | ||||||
|  | @ -280,7 +279,7 @@ union CTRSockAddr { | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         default: |         default: | ||||||
|             _dbg_assert_msg_(Service_SOC, false, "Unhandled address family (sa_family) in CTRSockAddr::ToPlatform"); |             ASSERT_MSG(false, "Unhandled address family (sa_family) in CTRSockAddr::ToPlatform"); | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|         return result; |         return result; | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/service/ssl_c.h" | #include "core/hle/service/ssl_c.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| #include "core/hle/hle.h" | #include "core/hle/hle.h" | ||||||
| #include "core/hle/kernel/event.h" | #include "core/hle/kernel/event.h" | ||||||
| #include "core/hle/service/y2r_u.h" | #include "core/hle/service/y2r_u.h" | ||||||
|  |  | ||||||
|  | @ -3,7 +3,6 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "common/common_types.h" | #include "common/common_types.h" | ||||||
| #include "common/log.h" |  | ||||||
| 
 | 
 | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| #include "core/mem_map.h" | #include "core/mem_map.h" | ||||||
|  |  | ||||||
|  | @ -175,7 +175,7 @@ static ResultCode WaitSynchronizationN(s32* out, Handle* handles, s32 handle_cou | ||||||
| 
 | 
 | ||||||
|     // NOTE: on real hardware, there is no nullptr check for 'out' (tested with firmware 4.4). If
 |     // NOTE: on real hardware, there is no nullptr check for 'out' (tested with firmware 4.4). If
 | ||||||
|     // this happens, the running application will crash.
 |     // this happens, the running application will crash.
 | ||||||
|     _assert_msg_(Kernel, out != nullptr, "invalid output pointer specified!"); |     ASSERT_MSG(out != nullptr, "invalid output pointer specified!"); | ||||||
| 
 | 
 | ||||||
|     // Check if 'handle_count' is invalid
 |     // Check if 'handle_count' is invalid
 | ||||||
|     if (handle_count < 0) |     if (handle_count < 0) | ||||||
|  |  | ||||||
|  | @ -136,9 +136,9 @@ inline void Write(const VAddr vaddr, const T data) { | ||||||
|         *(T*)&g_dsp_mem[vaddr - DSP_MEMORY_VADDR] = data; |         *(T*)&g_dsp_mem[vaddr - DSP_MEMORY_VADDR] = data; | ||||||
| 
 | 
 | ||||||
|     //} else if ((vaddr & 0xFFFF0000) == 0x1FF80000) {
 |     //} else if ((vaddr & 0xFFFF0000) == 0x1FF80000) {
 | ||||||
|     //    _assert_msg_(MEMMAP, false, "umimplemented write to Configuration Memory");
 |     //    ASSERT_MSG(MEMMAP, false, "umimplemented write to Configuration Memory");
 | ||||||
|     //} else if ((vaddr & 0xFFFFF000) == 0x1FF81000) {
 |     //} else if ((vaddr & 0xFFFFF000) == 0x1FF81000) {
 | ||||||
|     //    _assert_msg_(MEMMAP, false, "umimplemented write to shared page");
 |     //    ASSERT_MSG(MEMMAP, false, "umimplemented write to shared page");
 | ||||||
| 
 | 
 | ||||||
|     // Error out...
 |     // Error out...
 | ||||||
|     } else { |     } else { | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <nihstro/shader_binary.h> | #include <nihstro/shader_binary.h> | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" | #include "common/assert.h" | ||||||
| #include "common/file_util.h" | #include "common/file_util.h" | ||||||
| #include "common/math_util.h" | #include "common/math_util.h" | ||||||
| 
 | 
 | ||||||
|  | @ -197,7 +197,7 @@ void DumpShader(const u32* binary_data, u32 binary_size, const u32* swizzle_data | ||||||
|                         it->component_mask = it->component_mask | component_mask; |                         it->component_mask = it->component_mask | component_mask; | ||||||
|                     } |                     } | ||||||
|                 } catch (const std::out_of_range& ) { |                 } catch (const std::out_of_range& ) { | ||||||
|                     _dbg_assert_msg_(HW_GPU, 0, "Unknown output attribute mapping"); |                     DEBUG_ASSERT_MSG(false, "Unknown output attribute mapping"); | ||||||
|                     LOG_ERROR(HW_GPU, "Unknown output attribute mapping: %03x, %03x, %03x, %03x", |                     LOG_ERROR(HW_GPU, "Unknown output attribute mapping: %03x, %03x, %03x, %03x", | ||||||
|                               (int)output_attributes[i].map_x.Value(), |                               (int)output_attributes[i].map_x.Value(), | ||||||
|                               (int)output_attributes[i].map_y.Value(), |                               (int)output_attributes[i].map_y.Value(), | ||||||
|  | @ -571,7 +571,7 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture | ||||||
| 
 | 
 | ||||||
|     default: |     default: | ||||||
|         LOG_ERROR(HW_GPU, "Unknown texture format: %x", (u32)info.format); |         LOG_ERROR(HW_GPU, "Unknown texture format: %x", (u32)info.format); | ||||||
|         _dbg_assert_(HW_GPU, 0); |         DEBUG_ASSERT(false); | ||||||
|         return {}; |         return {}; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -8,8 +8,6 @@ | ||||||
| #include <functional> | #include <functional> | ||||||
| #include <vector> | #include <vector> | ||||||
| 
 | 
 | ||||||
| #include "common/log.h" |  | ||||||
| 
 |  | ||||||
| #include "core/hle/service/gsp_gpu.h" | #include "core/hle/service/gsp_gpu.h" | ||||||
| 
 | 
 | ||||||
| #include "command_processor.h" | #include "command_processor.h" | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| #include "primitive_assembly.h" | #include "primitive_assembly.h" | ||||||
| #include "vertex_shader.h" | #include "vertex_shader.h" | ||||||
| 
 | 
 | ||||||
|  | #include "common/logging/log.h" | ||||||
| #include "video_core/debug_utils/debug_utils.h" | #include "video_core/debug_utils/debug_utils.h" | ||||||
| 
 | 
 | ||||||
| namespace Pica { | namespace Pica { | ||||||
|  |  | ||||||
|  | @ -216,7 +216,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | ||||||
|                 if (!texture.enabled) |                 if (!texture.enabled) | ||||||
|                     continue; |                     continue; | ||||||
| 
 | 
 | ||||||
|                 _dbg_assert_(HW_GPU, 0 != texture.config.address); |                 DEBUG_ASSERT(0 != texture.config.address); | ||||||
| 
 | 
 | ||||||
|                 int s = (int)(uv[i].u() * float24::FromFloat32(static_cast<float>(texture.config.width))).ToFloat32(); |                 int s = (int)(uv[i].u() * float24::FromFloat32(static_cast<float>(texture.config.width))).ToFloat32(); | ||||||
|                 int t = (int)(uv[i].v() * float24::FromFloat32(static_cast<float>(texture.config.height))).ToFloat32(); |                 int t = (int)(uv[i].v() * float24::FromFloat32(static_cast<float>(texture.config.height))).ToFloat32(); | ||||||
|  | @ -232,7 +232,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | ||||||
| 
 | 
 | ||||||
|                         default: |                         default: | ||||||
|                             LOG_ERROR(HW_GPU, "Unknown texture coordinate wrapping mode %x\n", (int)mode); |                             LOG_ERROR(HW_GPU, "Unknown texture coordinate wrapping mode %x\n", (int)mode); | ||||||
|                             _dbg_assert_(HW_GPU, 0); |                             UNIMPLEMENTED(); | ||||||
|                             return 0; |                             return 0; | ||||||
|                     } |                     } | ||||||
|                 }; |                 }; | ||||||
|  | @ -282,7 +282,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | ||||||
| 
 | 
 | ||||||
|                     default: |                     default: | ||||||
|                         LOG_ERROR(HW_GPU, "Unknown color combiner source %d\n", (int)source); |                         LOG_ERROR(HW_GPU, "Unknown color combiner source %d\n", (int)source); | ||||||
|                         _dbg_assert_(HW_GPU, 0); |                         UNIMPLEMENTED(); | ||||||
|                         return {}; |                         return {}; | ||||||
|                     } |                     } | ||||||
|                 }; |                 }; | ||||||
|  | @ -380,7 +380,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | ||||||
| 
 | 
 | ||||||
|                     default: |                     default: | ||||||
|                         LOG_ERROR(HW_GPU, "Unknown color combiner operation %d\n", (int)op); |                         LOG_ERROR(HW_GPU, "Unknown color combiner operation %d\n", (int)op); | ||||||
|                         _dbg_assert_(HW_GPU, 0); |                         UNIMPLEMENTED(); | ||||||
|                         return {}; |                         return {}; | ||||||
|                     } |                     } | ||||||
|                 }; |                 }; | ||||||
|  | @ -404,7 +404,7 @@ void ProcessTriangle(const VertexShader::OutputVertex& v0, | ||||||
| 
 | 
 | ||||||
|                     default: |                     default: | ||||||
|                         LOG_ERROR(HW_GPU, "Unknown alpha combiner operation %d\n", (int)op); |                         LOG_ERROR(HW_GPU, "Unknown alpha combiner operation %d\n", (int)op); | ||||||
|                         _dbg_assert_(HW_GPU, 0); |                         UNIMPLEMENTED(); | ||||||
|                         return 0; |                         return 0; | ||||||
|                     } |                     } | ||||||
|                 }; |                 }; | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
| #include "gl_shader_util.h" | #include "gl_shader_util.h" | ||||||
| #include "common/log.h" | #include "common/logging/log.h" | ||||||
| 
 | 
 | ||||||
| #include <vector> | #include <vector> | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
|  |  | ||||||
|  | @ -99,15 +99,15 @@ void RendererOpenGL::LoadFBToActiveGLTexture(const GPU::Regs::FramebufferConfig& | ||||||
|     const u8* framebuffer_data = Memory::GetPointer(framebuffer_vaddr); |     const u8* framebuffer_data = Memory::GetPointer(framebuffer_vaddr); | ||||||
| 
 | 
 | ||||||
|     // TODO: Handle other pixel formats
 |     // TODO: Handle other pixel formats
 | ||||||
|     _dbg_assert_msg_(Render_OpenGL, framebuffer.color_format == GPU::Regs::PixelFormat::RGB8, |     ASSERT_MSG(framebuffer.color_format == GPU::Regs::PixelFormat::RGB8, | ||||||
|                      "Unsupported 3DS pixel format."); |                      "Unsupported 3DS pixel format."); | ||||||
| 
 | 
 | ||||||
|     size_t pixel_stride = framebuffer.stride / 3; |     size_t pixel_stride = framebuffer.stride / 3; | ||||||
|     // OpenGL only supports specifying a stride in units of pixels, not bytes, unfortunately
 |     // OpenGL only supports specifying a stride in units of pixels, not bytes, unfortunately
 | ||||||
|     _dbg_assert_(Render_OpenGL, pixel_stride * 3 == framebuffer.stride); |     ASSERT(pixel_stride * 3 == framebuffer.stride); | ||||||
|     // Ensure no bad interactions with GL_UNPACK_ALIGNMENT, which by default
 |     // Ensure no bad interactions with GL_UNPACK_ALIGNMENT, which by default
 | ||||||
|     // only allows rows to have a memory alignement of 4.
 |     // only allows rows to have a memory alignement of 4.
 | ||||||
|     _dbg_assert_(Render_OpenGL, pixel_stride % 4 == 0); |     ASSERT(pixel_stride % 4 == 0); | ||||||
| 
 | 
 | ||||||
|     glBindTexture(GL_TEXTURE_2D, texture.handle); |     glBindTexture(GL_TEXTURE_2D, texture.handle); | ||||||
|     glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint)pixel_stride); |     glPixelStorei(GL_UNPACK_ROW_LENGTH, (GLint)pixel_stride); | ||||||
|  |  | ||||||
|  | @ -146,13 +146,10 @@ static void ProcessShaderCode(VertexShaderState& state) { | ||||||
|         case Instruction::OpCodeType::Arithmetic: |         case Instruction::OpCodeType::Arithmetic: | ||||||
|         { |         { | ||||||
|             bool is_inverted = 0 != (instr.opcode.GetInfo().subtype & Instruction::OpCodeInfo::SrcInversed); |             bool is_inverted = 0 != (instr.opcode.GetInfo().subtype & Instruction::OpCodeInfo::SrcInversed); | ||||||
|             if (is_inverted) { |  | ||||||
|             // TODO: We don't really support this properly: For instance, the address register
 |             // TODO: We don't really support this properly: For instance, the address register
 | ||||||
|             //       offset needs to be applied to SRC2 instead, etc.
 |             //       offset needs to be applied to SRC2 instead, etc.
 | ||||||
|             //       For now, we just abort in this situation.
 |             //       For now, we just abort in this situation.
 | ||||||
|                 LOG_CRITICAL(HW_GPU, "Bad condition..."); |             ASSERT_MSG(!is_inverted, "Bad condition..."); | ||||||
|                 exit(0); |  | ||||||
|             } |  | ||||||
| 
 | 
 | ||||||
|             const int address_offset = (instr.common.address_register_index == 0) |             const int address_offset = (instr.common.address_register_index == 0) | ||||||
|                                        ? 0 : state.address_registers[instr.common.address_register_index - 1]; |                                        ? 0 : state.address_registers[instr.common.address_register_index - 1]; | ||||||
|  | @ -342,7 +339,7 @@ static void ProcessShaderCode(VertexShaderState& state) { | ||||||
|             default: |             default: | ||||||
|                 LOG_ERROR(HW_GPU, "Unhandled arithmetic instruction: 0x%02x (%s): 0x%08x", |                 LOG_ERROR(HW_GPU, "Unhandled arithmetic instruction: 0x%02x (%s): 0x%08x", | ||||||
|                           (int)instr.opcode.Value(), instr.opcode.GetInfo().name, instr.hex); |                           (int)instr.opcode.Value(), instr.opcode.GetInfo().name, instr.hex); | ||||||
|                 _dbg_assert_(HW_GPU, 0); |                 DEBUG_ASSERT(false); | ||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,6 @@ | ||||||
| 
 | 
 | ||||||
| #include "common/common.h" | #include "common/common.h" | ||||||
| #include "common/emu_window.h" | #include "common/emu_window.h" | ||||||
| #include "common/log.h" |  | ||||||
| 
 | 
 | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue