122 changed files with 433 additions and 480 deletions
-
7CMakeLists.txt
-
4src/citra/citra.cpp
-
3src/citra/config.cpp
-
2src/citra/emu_window/emu_window_glfw.cpp
-
1src/citra_qt/bootmanager.cpp
-
1src/citra_qt/bootmanager.h
-
1src/citra_qt/debugger/disassembler.cpp
-
2src/citra_qt/debugger/disassembler.h
-
2src/citra_qt/debugger/graphics_breakpoints.cpp
-
3src/citra_qt/debugger/ramview.cpp
-
3src/citra_qt/main.cpp
-
1src/common/CMakeLists.txt
-
1src/common/assert.h
-
2src/common/bit_field.h
-
1src/common/break_points.cpp
-
2src/common/break_points.h
-
3src/common/chunk_file.h
-
120src/common/common.h
-
82src/common/common_funcs.h
-
3src/common/common_paths.h
-
15src/common/common_types.h
-
2src/common/concurrent_ring_buffer.h
-
6src/common/emu_window.h
-
54src/common/file_util.cpp
-
2src/common/file_util.h
-
3src/common/hash.cpp
-
2src/common/hash.h
-
2src/common/linear_disk_cache.h
-
1src/common/logging/text_formatter.cpp
-
6src/common/math_util.cpp
-
2src/common/math_util.h
-
6src/common/mem_arena.cpp
-
2src/common/mem_arena.h
-
3src/common/memory_util.cpp
-
4src/common/misc.cpp
-
57src/common/platform.h
-
1src/common/profiler.cpp
-
4src/common/string_util.cpp
-
2src/common/string_util.h
-
4src/common/symbols.h
-
1src/common/thread.h
-
2src/common/thread_queue_list.h
-
2src/common/thunk.h
-
4src/common/timer.cpp
-
2src/common/timer.h
-
1src/core/CMakeLists.txt
-
1src/core/arm/arm_interface.h
-
2src/core/arm/dyncom/arm_dyncom.cpp
-
2src/core/arm/interpreter/armsupp.cpp
-
2src/core/arm/skyeye_common/armmmu.h
-
1src/core/arm/skyeye_common/vfp/vfp.cpp
-
1src/core/core.cpp
-
2src/core/core_timing.h
-
127src/core/file_sys/archive_backend.cpp
-
147src/core/file_sys/archive_backend.h
-
1src/core/file_sys/archive_extsavedata.cpp
-
1src/core/file_sys/archive_romfs.cpp
-
1src/core/file_sys/archive_savedata.cpp
-
1src/core/file_sys/archive_savedatacheck.cpp
-
1src/core/file_sys/archive_sdmc.cpp
-
3src/core/file_sys/directory_backend.h
-
1src/core/file_sys/disk_archive.cpp
-
2src/core/file_sys/disk_archive.h
-
2src/core/file_sys/file_backend.h
-
1src/core/file_sys/ivfc_archive.cpp
-
2src/core/file_sys/ivfc_archive.h
-
5src/core/hle/config_mem.cpp
-
7src/core/hle/hle.h
-
1src/core/hle/kernel/address_arbiter.cpp
-
2src/core/hle/kernel/event.cpp
-
3src/core/hle/kernel/kernel.cpp
-
14src/core/hle/kernel/kernel.h
-
2src/core/hle/kernel/mutex.cpp
-
2src/core/hle/kernel/semaphore.cpp
-
2src/core/hle/kernel/shared_memory.cpp
-
4src/core/hle/kernel/thread.cpp
-
3src/core/hle/kernel/timer.cpp
-
1src/core/hle/result.h
-
2src/core/hle/service/am_sys.cpp
-
2src/core/hle/service/apt/apt.cpp
-
3src/core/hle/service/apt/apt_s.cpp
-
1src/core/hle/service/apt/apt_u.cpp
-
8src/core/hle/service/cfg/cfg.cpp
-
2src/core/hle/service/cfg/cfg_u.cpp
-
2src/core/hle/service/dsp_dsp.cpp
-
2src/core/hle/service/err_f.cpp
-
11src/core/hle/service/fs/archive.cpp
-
16src/core/hle/service/fs/archive.h
-
5src/core/hle/service/fs/fs_user.cpp
-
2src/core/hle/service/hid/hid.cpp
-
2src/core/hle/service/ldr_ro.cpp
-
2src/core/hle/service/nim_u.cpp
-
2src/core/hle/service/ns_s.cpp
-
2src/core/hle/service/nwm_uds.cpp
-
3src/core/hle/service/ptm/ptm.cpp
-
2src/core/hle/service/ptm/ptm_u.cpp
-
2src/core/hle/service/service.cpp
-
2src/core/hle/service/service.h
-
1src/core/hle/service/soc_u.cpp
-
2src/core/hle/service/srv.cpp
@ -1,120 +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 |
|||
|
|||
// DO NOT EVER INCLUDE <windows.h> directly _or indirectly_ from this file |
|||
// since it slows down the build a lot. |
|||
|
|||
#include <cstdlib> |
|||
#include <cstdio> |
|||
#include <cstring> |
|||
|
|||
#define STACKALIGN |
|||
|
|||
// An inheritable class to disallow the copy constructor and operator= functions |
|||
class NonCopyable |
|||
{ |
|||
protected: |
|||
NonCopyable() {} |
|||
NonCopyable(const NonCopyable&&) {} |
|||
void operator=(const NonCopyable&&) {} |
|||
private: |
|||
NonCopyable(NonCopyable&); |
|||
NonCopyable& operator=(NonCopyable& other); |
|||
}; |
|||
|
|||
#include "common/assert.h" |
|||
#include "common/logging/log.h" |
|||
#include "common/common_types.h" |
|||
#include "common/common_funcs.h" |
|||
#include "common/common_paths.h" |
|||
#include "common/platform.h" |
|||
|
|||
#ifdef __APPLE__ |
|||
// The Darwin ABI requires that stack frames be aligned to 16-byte boundaries. |
|||
// This is only needed on i386 gcc - x86_64 already aligns to 16 bytes. |
|||
#if defined __i386__ && defined __GNUC__ |
|||
#undef STACKALIGN |
|||
#define STACKALIGN __attribute__((__force_align_arg_pointer__)) |
|||
#endif |
|||
#elif defined _WIN32 |
|||
// Check MSC ver |
|||
#if defined _MSC_VER && _MSC_VER <= 1000 |
|||
#error needs at least version 1000 of MSC |
|||
#endif |
|||
|
|||
#ifndef NOMINMAX |
|||
#define NOMINMAX |
|||
#endif |
|||
|
|||
// Alignment |
|||
#define MEMORY_ALIGNED16(x) __declspec(align(16)) x |
|||
#define MEMORY_ALIGNED32(x) __declspec(align(32)) x |
|||
#define MEMORY_ALIGNED64(x) __declspec(align(64)) x |
|||
#define MEMORY_ALIGNED128(x) __declspec(align(128)) x |
|||
#define MEMORY_ALIGNED16_DECL(x) __declspec(align(16)) x |
|||
#define MEMORY_ALIGNED64_DECL(x) __declspec(align(64)) x |
|||
#endif |
|||
|
|||
// Windows compatibility |
|||
#ifndef _WIN32 |
|||
#ifdef _LP64 |
|||
#define _M_X64 1 |
|||
#else |
|||
#define _M_IX86 1 |
|||
#endif |
|||
#define __forceinline inline __attribute__((always_inline)) |
|||
#define MEMORY_ALIGNED16(x) __attribute__((aligned(16))) x |
|||
#define MEMORY_ALIGNED32(x) __attribute__((aligned(32))) x |
|||
#define MEMORY_ALIGNED64(x) __attribute__((aligned(64))) x |
|||
#define MEMORY_ALIGNED128(x) __attribute__((aligned(128))) x |
|||
#define MEMORY_ALIGNED16_DECL(x) __attribute__((aligned(16))) x |
|||
#define MEMORY_ALIGNED64_DECL(x) __attribute__((aligned(64))) x |
|||
#endif |
|||
|
|||
#ifdef _MSC_VER |
|||
#define __strdup _strdup |
|||
#define __getcwd _getcwd |
|||
#define __chdir _chdir |
|||
#else |
|||
#define __strdup strdup |
|||
#define __getcwd getcwd |
|||
#define __chdir chdir |
|||
#endif |
|||
|
|||
#if defined _M_GENERIC |
|||
# define _M_SSE 0x0 |
|||
#elif defined __GNUC__ |
|||
# if defined __SSE4_2__ |
|||
# define _M_SSE 0x402 |
|||
# elif defined __SSE4_1__ |
|||
# define _M_SSE 0x401 |
|||
# elif defined __SSSE3__ |
|||
# define _M_SSE 0x301 |
|||
# elif defined __SSE3__ |
|||
# define _M_SSE 0x300 |
|||
# endif |
|||
#elif (_MSC_VER >= 1500) || __INTEL_COMPILER // Visual Studio 2008 |
|||
# define _M_SSE 0x402 |
|||
#endif |
|||
|
|||
// Host communication. |
|||
enum HOST_COMM |
|||
{ |
|||
// Begin at 10 in case there is already messages with wParam = 0, 1, 2 and so on |
|||
WM_USER_STOP = 10, |
|||
WM_USER_CREATE, |
|||
WM_USER_SETCURSOR, |
|||
}; |
|||
|
|||
// Used for notification on emulation state |
|||
enum EMUSTATE_CHANGE |
|||
{ |
|||
EMUSTATE_CHANGE_PLAY = 1, |
|||
EMUSTATE_CHANGE_PAUSE, |
|||
EMUSTATE_CHANGE_STOP |
|||
}; |
|||
|
|||
#include "swap.h" |
|||
@ -0,0 +1,127 @@ |
|||
// Copyright 2015 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include <sstream>
|
|||
|
|||
#include "common/logging/log.h"
|
|||
#include "common/string_util.h"
|
|||
|
|||
#include "core/file_sys/archive_backend.h"
|
|||
#include "core/mem_map.h"
|
|||
|
|||
|
|||
namespace FileSys { |
|||
|
|||
Path::Path(LowPathType type, u32 size, u32 pointer) : type(type) { |
|||
switch (type) { |
|||
case Binary: |
|||
{ |
|||
u8* data = Memory::GetPointer(pointer); |
|||
binary = std::vector<u8>(data, data + size); |
|||
break; |
|||
} |
|||
|
|||
case Char: |
|||
{ |
|||
const char* data = reinterpret_cast<const char*>(Memory::GetPointer(pointer)); |
|||
string = std::string(data, size - 1); // Data is always null-terminated.
|
|||
break; |
|||
} |
|||
|
|||
case Wchar: |
|||
{ |
|||
const char16_t* data = reinterpret_cast<const char16_t*>(Memory::GetPointer(pointer)); |
|||
u16str = std::u16string(data, size/2 - 1); // Data is always null-terminated.
|
|||
break; |
|||
} |
|||
|
|||
default: |
|||
break; |
|||
} |
|||
} |
|||
|
|||
const std::string Path::DebugStr() const { |
|||
switch (GetType()) { |
|||
case Invalid: |
|||
default: |
|||
return "[Invalid]"; |
|||
case Empty: |
|||
return "[Empty]"; |
|||
case Binary: |
|||
{ |
|||
std::stringstream res; |
|||
res << "[Binary: "; |
|||
for (unsigned byte : binary) |
|||
res << std::hex << std::setw(2) << std::setfill('0') << byte; |
|||
res << ']'; |
|||
return res.str(); |
|||
} |
|||
case Char: |
|||
return "[Char: " + AsString() + ']'; |
|||
case Wchar: |
|||
return "[Wchar: " + AsString() + ']'; |
|||
} |
|||
} |
|||
|
|||
const std::string Path::AsString() const { |
|||
switch (GetType()) { |
|||
case Char: |
|||
return string; |
|||
case Wchar: |
|||
return Common::UTF16ToUTF8(u16str); |
|||
case Empty: |
|||
return{}; |
|||
case Invalid: |
|||
case Binary: |
|||
default: |
|||
// TODO(yuriks): Add assert
|
|||
LOG_ERROR(Service_FS, "LowPathType cannot be converted to string!"); |
|||
return{}; |
|||
} |
|||
} |
|||
|
|||
const std::u16string Path::AsU16Str() const { |
|||
switch (GetType()) { |
|||
case Char: |
|||
return Common::UTF8ToUTF16(string); |
|||
case Wchar: |
|||
return u16str; |
|||
case Empty: |
|||
return{}; |
|||
case Invalid: |
|||
case Binary: |
|||
// TODO(yuriks): Add assert
|
|||
LOG_ERROR(Service_FS, "LowPathType cannot be converted to u16string!"); |
|||
return{}; |
|||
} |
|||
} |
|||
|
|||
const std::vector<u8> Path::AsBinary() const { |
|||
switch (GetType()) { |
|||
case Binary: |
|||
return binary; |
|||
case Char: |
|||
return std::vector<u8>(string.begin(), string.end()); |
|||
case Wchar: |
|||
{ |
|||
// 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{}; |
|||
case Invalid: |
|||
default: |
|||
// TODO(yuriks): Add assert
|
|||
LOG_ERROR(Service_FS, "LowPathType cannot be converted to binary!"); |
|||
return{}; |
|||
} |
|||
} |
|||
|
|||
} |
|||
Some files were not shown because too many files changed in this diff
Write
Preview
Loading…
Cancel
Save
Reference in new issue