mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	
						commit
						2b0d7a1d29
					
				
					 8 changed files with 27 additions and 20 deletions
				
			
		|  | @ -27,10 +27,10 @@ void CallstackWidget::OnCPUStepped() | |||
|     ARM_Interface* app_core = Core::g_app_core; | ||||
| 
 | ||||
|     u32 sp = app_core->GetReg(13); //stack pointer
 | ||||
|     u32 addr, ret_addr, call_addr, func_addr; | ||||
|     u32 ret_addr, call_addr, func_addr; | ||||
| 
 | ||||
|     int counter = 0; | ||||
|     for (int addr = 0x10000000; addr >= sp; addr -= 4) | ||||
|     for (u32 addr = 0x10000000; addr >= sp; addr -= 4) | ||||
|     { | ||||
|         ret_addr = Memory::Read32(addr); | ||||
|         call_addr = ret_addr - 4; //get call address???
 | ||||
|  |  | |||
|  | @ -224,8 +224,8 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|     { | ||||
|         QImage decoded_image(framebuffer_width, framebuffer_height, QImage::Format_ARGB32); | ||||
|         u32* color_buffer = (u32*)Memory::GetPointer(framebuffer_address); | ||||
|         for (int y = 0; y < framebuffer_height; ++y) { | ||||
|             for (int x = 0; x < framebuffer_width; ++x) { | ||||
|         for (unsigned y = 0; y < framebuffer_height; ++y) { | ||||
|             for (unsigned x = 0; x < framebuffer_width; ++x) { | ||||
|                 u32 value = *(color_buffer + x + y * framebuffer_width); | ||||
| 
 | ||||
|                 decoded_image.setPixel(x, y, qRgba((value >> 16) & 0xFF, (value >> 8) & 0xFF, value & 0xFF, 255/*value >> 24*/)); | ||||
|  | @ -239,8 +239,8 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|     { | ||||
|         QImage decoded_image(framebuffer_width, framebuffer_height, QImage::Format_ARGB32); | ||||
|         u8* color_buffer = Memory::GetPointer(framebuffer_address); | ||||
|         for (int y = 0; y < framebuffer_height; ++y) { | ||||
|             for (int x = 0; x < framebuffer_width; ++x) { | ||||
|         for (unsigned y = 0; y < framebuffer_height; ++y) { | ||||
|             for (unsigned x = 0; x < framebuffer_width; ++x) { | ||||
|                 u8* pixel_pointer = color_buffer + x * 3 + y * 3 * framebuffer_width; | ||||
| 
 | ||||
|                 decoded_image.setPixel(x, y, qRgba(pixel_pointer[0], pixel_pointer[1], pixel_pointer[2], 255/*value >> 24*/)); | ||||
|  | @ -254,8 +254,8 @@ void GraphicsFramebufferWidget::OnUpdate() | |||
|     { | ||||
|         QImage decoded_image(framebuffer_width, framebuffer_height, QImage::Format_ARGB32); | ||||
|         u32* color_buffer = (u32*)Memory::GetPointer(framebuffer_address); | ||||
|         for (int y = 0; y < framebuffer_height; ++y) { | ||||
|             for (int x = 0; x < framebuffer_width; ++x) { | ||||
|         for (unsigned y = 0; y < framebuffer_height; ++y) { | ||||
|             for (unsigned x = 0; x < framebuffer_width; ++x) { | ||||
|                 u16 value = *(u16*)(((u8*)color_buffer) + x * 2 + y * framebuffer_width * 2); | ||||
|                 u8 r = (value >> 11) & 0x1F; | ||||
|                 u8 g = (value >> 6) & 0x1F; | ||||
|  |  | |||
|  | @ -238,7 +238,7 @@ QValidator::State CSpinBox::validate(QString& input, int& pos) const | |||
|     if (!prefix.isEmpty() && input.left(prefix.length()) != prefix) | ||||
|         return QValidator::Invalid; | ||||
| 
 | ||||
|     unsigned strpos = prefix.length(); | ||||
|     int strpos = prefix.length(); | ||||
| 
 | ||||
|     // Empty "numbers" allowed as intermediate values
 | ||||
|     if (strpos >= input.length() - HasSign() - suffix.length()) | ||||
|  |  | |||
|  | @ -143,7 +143,16 @@ public: | |||
|             case Char: | ||||
|                 return std::vector<u8>(string.begin(), string.end()); | ||||
|             case Wchar: | ||||
|                 return std::vector<u8>(u16str.begin(), u16str.end()); | ||||
|             { | ||||
|                 // use two u8 for each character of u16str
 | ||||
|                 std::vector<u8> to_return(u16str.size() * 2); | ||||
|                 for (size_t i = 0; i < u16str.size(); ++i) { | ||||
|                     u16 tmp_char = u16str.at(i); | ||||
|                     to_return[i*2] = (tmp_char & 0xFF00) >> 8; | ||||
|                     to_return[i*2 + 1] = (tmp_char & 0x00FF); | ||||
|                 } | ||||
|                 return to_return; | ||||
|             } | ||||
|             case Empty: | ||||
|                 return {}; | ||||
|             default: | ||||
|  |  | |||
|  | @ -20,8 +20,8 @@ public: | |||
|     static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Semaphore; } | ||||
|     Kernel::HandleType GetHandleType() const override { return Kernel::HandleType::Semaphore; } | ||||
| 
 | ||||
|     u32 max_count;                              ///< Maximum number of simultaneous holders the semaphore can have
 | ||||
|     u32 available_count;                        ///< Number of free slots left in the semaphore
 | ||||
|     s32 max_count;                              ///< Maximum number of simultaneous holders the semaphore can have
 | ||||
|     s32 available_count;                        ///< Number of free slots left in the semaphore
 | ||||
|     std::queue<Handle> waiting_threads;         ///< Threads that are waiting for the semaphore
 | ||||
|     std::string name;                           ///< Name of semaphore (optional)
 | ||||
| 
 | ||||
|  | @ -49,8 +49,8 @@ public: | |||
| 
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| ResultCode CreateSemaphore(Handle* handle, u32 initial_count,  | ||||
|     u32 max_count, const std::string& name) { | ||||
| ResultCode CreateSemaphore(Handle* handle, s32 initial_count,  | ||||
|     s32 max_count, const std::string& name) { | ||||
| 
 | ||||
|     if (initial_count > max_count) | ||||
|         return ResultCode(ErrorDescription::InvalidCombination, ErrorModule::Kernel, | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ namespace Kernel { | |||
|  * @param name Optional name of semaphore | ||||
|  * @return ResultCode of the error | ||||
|  */ | ||||
| ResultCode CreateSemaphore(Handle* handle, u32 initial_count, u32 max_count, const std::string& name = "Unknown"); | ||||
| ResultCode CreateSemaphore(Handle* handle, s32 initial_count, s32 max_count, const std::string& name = "Unknown"); | ||||
| 
 | ||||
| /**
 | ||||
|  * Releases a certain number of slots from a semaphore. | ||||
|  |  | |||
|  | @ -223,9 +223,7 @@ int THREEDSXReader::Load3DSXFile(const std::string& filename, u32 base_addr) | |||
|         LOG_INFO(Loader, "Loading 3DSX file %s...", filename.c_str()); | ||||
|         FileUtil::IOFile file(filename, "rb"); | ||||
|         if (file.IsOpen()) { | ||||
| 
 | ||||
|             THREEDSXReader reader; | ||||
|             reader.Load3DSXFile(filename, 0x00100000); | ||||
|             THREEDSXReader::Load3DSXFile(filename, 0x00100000); | ||||
|             Kernel::LoadExec(0x00100000); | ||||
|         } else { | ||||
|             return ResultStatus::Error; | ||||
|  |  | |||
|  | @ -240,14 +240,14 @@ MathUtil::Rectangle<unsigned> RendererOpenGL::GetViewportExtent() { | |||
|     MathUtil::Rectangle<unsigned> viewport_extent; | ||||
|     if (window_aspect_ratio > emulation_aspect_ratio) { | ||||
|         // Window is narrower than the emulation content => apply borders to the top and bottom
 | ||||
|         unsigned viewport_height = std::round(emulation_aspect_ratio * framebuffer_width); | ||||
|         unsigned viewport_height = static_cast<unsigned>(std::round(emulation_aspect_ratio * framebuffer_width)); | ||||
|         viewport_extent.left = 0; | ||||
|         viewport_extent.top = (framebuffer_height - viewport_height) / 2; | ||||
|         viewport_extent.right = viewport_extent.left + framebuffer_width; | ||||
|         viewport_extent.bottom = viewport_extent.top + viewport_height; | ||||
|     } else { | ||||
|         // Otherwise, apply borders to the left and right sides of the window.
 | ||||
|         unsigned viewport_width = std::round(framebuffer_height / emulation_aspect_ratio); | ||||
|         unsigned viewport_width = static_cast<unsigned>(std::round(framebuffer_height / emulation_aspect_ratio)); | ||||
|         viewport_extent.left = (framebuffer_width - viewport_width) / 2; | ||||
|         viewport_extent.top = 0; | ||||
|         viewport_extent.right = viewport_extent.left + viewport_width; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue