mirror of
https://git.suyu.dev/suyu/suyu
synced 2024-12-24 18:32:49 -06:00
commit
8b36777731
15 changed files with 18 additions and 18 deletions
|
@ -35,4 +35,4 @@ If you like, you can [donate by PayPal](https://www.paypal.com/cgi-bin/webscr?cm
|
||||||
* Eventually 3D displays to get proper 3D output working
|
* Eventually 3D displays to get proper 3D output working
|
||||||
* ... etc ...
|
* ... etc ...
|
||||||
|
|
||||||
We also more than gladly accept used 3DS consoles, preferrably ones with firmware 4.5 or lower! If you would like to give yours away, don't hesitate to join our IRC channel #citra on [Freenode](http://webchat.freenode.net/?channels=citra) and talk to neobrain or bunnei. Mind you, IRC is slow-paced, so it might be a while until people reply. If you're in a hurry you can just leave contact details in the channel or via private message and we'll get back to you.
|
We also more than gladly accept used 3DS consoles, preferably ones with firmware 4.5 or lower! If you would like to give yours away, don't hesitate to join our IRC channel #citra on [Freenode](http://webchat.freenode.net/?channels=citra) and talk to neobrain or bunnei. Mind you, IRC is slow-paced, so it might be a while until people reply. If you're in a hurry you can just leave contact details in the channel or via private message and we'll get back to you.
|
||||||
|
|
|
@ -10,7 +10,7 @@ if ! git diff --cached --check -- $paths_to_check ; then
|
||||||
cat<<END
|
cat<<END
|
||||||
|
|
||||||
Error: This commit would contain trailing spaces or tabs, which is against this repo's policy.
|
Error: This commit would contain trailing spaces or tabs, which is against this repo's policy.
|
||||||
Please correct those issues before commiting. (Use 'git diff --check' for more details)
|
Please correct those issues before committing. (Use 'git diff --check' for more details)
|
||||||
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check
|
If you know what you are doing, you can try 'git commit --no-verify' to bypass the check
|
||||||
END
|
END
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -23,12 +23,12 @@ static size_t CurrentRegionIndex() {
|
||||||
// This function only returns a 0 or 1.
|
// This function only returns a 0 or 1.
|
||||||
|
|
||||||
if (g_regions[0].frame_counter == 0xFFFFu && g_regions[1].frame_counter != 0xFFFEu) {
|
if (g_regions[0].frame_counter == 0xFFFFu && g_regions[1].frame_counter != 0xFFFEu) {
|
||||||
// Wraparound has occured.
|
// Wraparound has occurred.
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_regions[1].frame_counter == 0xFFFFu && g_regions[0].frame_counter != 0xFFFEu) {
|
if (g_regions[1].frame_counter == 0xFFFFu && g_regions[0].frame_counter != 0xFFFEu) {
|
||||||
// Wraparound has occured.
|
// Wraparound has occurred.
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ void PipeWrite(DspPipe pipe_number, const std::vector<u8>& buffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class StateChange {
|
enum class StateChange {
|
||||||
Initalize = 0,
|
Initialize = 0,
|
||||||
Shutdown = 1,
|
Shutdown = 1,
|
||||||
Wakeup = 2,
|
Wakeup = 2,
|
||||||
Sleep = 3,
|
Sleep = 3,
|
||||||
|
@ -130,7 +130,7 @@ void PipeWrite(DspPipe pipe_number, const std::vector<u8>& buffer) {
|
||||||
// sleeping and reset it back after wakeup on behalf of the DSP.
|
// sleeping and reset it back after wakeup on behalf of the DSP.
|
||||||
|
|
||||||
switch (static_cast<StateChange>(buffer[0])) {
|
switch (static_cast<StateChange>(buffer[0])) {
|
||||||
case StateChange::Initalize:
|
case StateChange::Initialize:
|
||||||
LOG_INFO(Audio_DSP, "Application has requested initialization of DSP hardware");
|
LOG_INFO(Audio_DSP, "Application has requested initialization of DSP hardware");
|
||||||
ResetPipes();
|
ResetPipes();
|
||||||
AudioPipeWriteStructAddresses();
|
AudioPipeWriteStructAddresses();
|
||||||
|
|
|
@ -424,7 +424,7 @@ GraphicsVertexShaderWidget::GraphicsVertexShaderWidget(
|
||||||
// Create an HBoxLayout to store the widgets used to specify a particular attribute
|
// Create an HBoxLayout to store the widgets used to specify a particular attribute
|
||||||
// and store it in a QWidget to allow for easy hiding and unhiding.
|
// and store it in a QWidget to allow for easy hiding and unhiding.
|
||||||
auto row_layout = new QHBoxLayout;
|
auto row_layout = new QHBoxLayout;
|
||||||
// Remove unecessary padding between rows
|
// Remove unnecessary padding between rows
|
||||||
row_layout->setContentsMargins(0, 0, 0, 0);
|
row_layout->setContentsMargins(0, 0, 0, 0);
|
||||||
|
|
||||||
row_layout->addWidget(new QLabel(tr("Attribute %1").arg(i, 2)));
|
row_layout->addWidget(new QLabel(tr("Attribute %1").arg(i, 2)));
|
||||||
|
@ -590,7 +590,7 @@ void GraphicsVertexShaderWidget::OnCycleIndexChanged(int index) {
|
||||||
.arg(record.dest_out.w.ToFloat32());
|
.arg(record.dest_out.w.ToFloat32());
|
||||||
|
|
||||||
if (record.mask & Pica::Shader::DebugDataRecord::ADDR_REG_OUT)
|
if (record.mask & Pica::Shader::DebugDataRecord::ADDR_REG_OUT)
|
||||||
text += tr("Addres Registers: %1, %2\n")
|
text += tr("Address Registers: %1, %2\n")
|
||||||
.arg(record.address_registers[0])
|
.arg(record.address_registers[0])
|
||||||
.arg(record.address_registers[1]);
|
.arg(record.address_registers[1]);
|
||||||
if (record.mask & Pica::Shader::DebugDataRecord::CMP_RESULT)
|
if (record.mask & Pica::Shader::DebugDataRecord::CMP_RESULT)
|
||||||
|
|
|
@ -136,7 +136,7 @@ void RegistersWidget::UpdateCPSRValues() {
|
||||||
cpsr->child(2)->setText(1, QString::number((cpsr_val >> 6) & 1)); // F - FIQ disable
|
cpsr->child(2)->setText(1, QString::number((cpsr_val >> 6) & 1)); // F - FIQ disable
|
||||||
cpsr->child(3)->setText(1, QString::number((cpsr_val >> 7) & 1)); // I - IRQ disable
|
cpsr->child(3)->setText(1, QString::number((cpsr_val >> 7) & 1)); // I - IRQ disable
|
||||||
cpsr->child(4)->setText(1, QString::number((cpsr_val >> 8) & 1)); // A - Imprecise abort
|
cpsr->child(4)->setText(1, QString::number((cpsr_val >> 8) & 1)); // A - Imprecise abort
|
||||||
cpsr->child(5)->setText(1, QString::number((cpsr_val >> 9) & 1)); // E - Data endianess
|
cpsr->child(5)->setText(1, QString::number((cpsr_val >> 9) & 1)); // E - Data endianness
|
||||||
cpsr->child(6)->setText(1,
|
cpsr->child(6)->setText(1,
|
||||||
QString::number((cpsr_val >> 10) & 0x3F)); // IT - If-Then state (DNM)
|
QString::number((cpsr_val >> 10) & 0x3F)); // IT - If-Then state (DNM)
|
||||||
cpsr->child(7)->setText(1,
|
cpsr->child(7)->setText(1,
|
||||||
|
|
|
@ -64,7 +64,7 @@ public:
|
||||||
* A specialization of GameListItem for path values.
|
* A specialization of GameListItem for path values.
|
||||||
* This class ensures that for every full path value it holds, a correct string representation
|
* This class ensures that for every full path value it holds, a correct string representation
|
||||||
* of just the filename (with no extension) will be displayed to the user.
|
* of just the filename (with no extension) will be displayed to the user.
|
||||||
* If this class recieves valid SMDH data, it will also display game icons and titles.
|
* If this class receives valid SMDH data, it will also display game icons and titles.
|
||||||
*/
|
*/
|
||||||
class GameListItemPath : public GameListItem {
|
class GameListItemPath : public GameListItem {
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ static FORCE_INLINE u64 fmix64(u64 k) {
|
||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the 128-bit variant of the MurmurHash3 hash function that is targetted for 64-bit
|
// This is the 128-bit variant of the MurmurHash3 hash function that is targeted for 64-bit
|
||||||
// platforms (MurmurHash3_x64_128). It was taken from:
|
// platforms (MurmurHash3_x64_128). It was taken from:
|
||||||
// https://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp
|
// https://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp
|
||||||
void MurmurHash3_128(const void* key, int len, u32 seed, void* out) {
|
void MurmurHash3_128(const void* key, int len, u32 seed, void* out) {
|
||||||
|
|
|
@ -17,7 +17,7 @@ struct Entry;
|
||||||
*
|
*
|
||||||
* @param path The input file path as a null-terminated string
|
* @param path The input file path as a null-terminated string
|
||||||
* @param root The name of the root source directory as a null-terminated string. Path up to and
|
* @param root The name of the root source directory as a null-terminated string. Path up to and
|
||||||
* including the last occurence of this name will be stripped
|
* including the last occurrence of this name will be stripped
|
||||||
* @return A pointer to the same string passed as `path`, but starting at the trimmed portion
|
* @return A pointer to the same string passed as `path`, but starting at the trimmed portion
|
||||||
*/
|
*/
|
||||||
const char* TrimSourcePath(const char* path, const char* root = "src");
|
const char* TrimSourcePath(const char* path, const char* root = "src");
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Kernel {
|
||||||
|
|
||||||
static MemoryRegionInfo memory_regions[3];
|
static MemoryRegionInfo memory_regions[3];
|
||||||
|
|
||||||
/// Size of the APPLICATION, SYSTEM and BASE memory regions (respectively) for each sytem
|
/// Size of the APPLICATION, SYSTEM and BASE memory regions (respectively) for each system
|
||||||
/// memory configuration type.
|
/// memory configuration type.
|
||||||
static const u32 memory_region_sizes[8][3] = {
|
static const u32 memory_region_sizes[8][3] = {
|
||||||
// Old 3DS layouts
|
// Old 3DS layouts
|
||||||
|
|
|
@ -204,7 +204,7 @@ static std::tuple<u32*, u32*> GetWaitSynchTimeoutParameterRegister(Thread* threa
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the WaitSynchronization timeout paramter according to the difference
|
* Updates the WaitSynchronization timeout parameter according to the difference
|
||||||
* between ticks of the last WaitSynchronization call and the incoming one.
|
* between ticks of the last WaitSynchronization call and the incoming one.
|
||||||
* @param timeout_low a pointer to the register for the low part of the timeout parameter
|
* @param timeout_low a pointer to the register for the low part of the timeout parameter
|
||||||
* @param timeout_high a pointer to the register for the high part of the timeout parameter
|
* @param timeout_high a pointer to the register for the high part of the timeout parameter
|
||||||
|
|
|
@ -1227,7 +1227,7 @@ ResultCode CROHelper::Link(VAddr crs_address, bool link_on_load_bug_fix) {
|
||||||
// The bug itself is:
|
// The bug itself is:
|
||||||
// If a relocation target is in .data segment, it will relocate to the
|
// If a relocation target is in .data segment, it will relocate to the
|
||||||
// user-specified buffer. But if this is linking during loading,
|
// user-specified buffer. But if this is linking during loading,
|
||||||
// the .data segment hasn't been tranfer from CRO to the buffer,
|
// the .data segment hasn't been transfer from CRO to the buffer,
|
||||||
// thus the relocation will be overwritten by data transfer.
|
// thus the relocation will be overwritten by data transfer.
|
||||||
// To fix this bug, we need temporarily restore the old .data segment
|
// To fix this bug, we need temporarily restore the old .data segment
|
||||||
// offset and apply imported symbols.
|
// offset and apply imported symbols.
|
||||||
|
|
|
@ -163,7 +163,7 @@ ResultStatus AppLoader_NCCH::LoadExec() {
|
||||||
Kernel::g_current_process->ideal_processor =
|
Kernel::g_current_process->ideal_processor =
|
||||||
exheader_header.arm11_system_local_caps.ideal_processor;
|
exheader_header.arm11_system_local_caps.ideal_processor;
|
||||||
|
|
||||||
// Copy data while converting endianess
|
// Copy data while converting endianness
|
||||||
std::array<u32, ARRAY_SIZE(exheader_header.arm11_kernel_caps.descriptors)> kernel_caps;
|
std::array<u32, ARRAY_SIZE(exheader_header.arm11_kernel_caps.descriptors)> kernel_caps;
|
||||||
std::copy_n(exheader_header.arm11_kernel_caps.descriptors, kernel_caps.size(),
|
std::copy_n(exheader_header.arm11_kernel_caps.descriptors, kernel_caps.size(),
|
||||||
begin(kernel_caps));
|
begin(kernel_caps));
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "core/loader/loader.h"
|
#include "core/loader/loader.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/// NCCH header (Note: "NCCH" appears to be a publically unknown acronym)
|
/// NCCH header (Note: "NCCH" appears to be a publicly unknown acronym)
|
||||||
|
|
||||||
struct NCCH_Header {
|
struct NCCH_Header {
|
||||||
u8 signature[0x100];
|
u8 signature[0x100];
|
||||||
|
|
|
@ -292,7 +292,7 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retreive vertex from register data
|
// Retrieve vertex from register data
|
||||||
Shader::OutputVertex output_vertex = output_registers.ToVertex(regs.vs);
|
Shader::OutputVertex output_vertex = output_registers.ToVertex(regs.vs);
|
||||||
|
|
||||||
// Send to renderer
|
// Send to renderer
|
||||||
|
|
Loading…
Reference in a new issue