Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI and RSX updates #593

Merged
merged 3 commits into from Jul 23, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions rpcs3/Crypto/unedat.cpp
Expand Up @@ -156,9 +156,9 @@ int decrypt_data(rFile *in, rFile *out, EDAT_SDAT_HEADER *edat, NPD_HEADER *npd,
int length = 0;
int compression_end = 0;

if ((edat->flags & EDAT_FLAG_0x3C) != 0 || (edat->flags & EDAT_FLAG_0x3D) != 0)
if ((edat->flags & EDAT_FLAG_0x04) != 0)
{
LOG_ERROR(LOADER, "EDAT: Flag 0x3C/0x3D EDAT files are unsupported yet");
LOG_ERROR(LOADER, "EDAT: Flag 0x04 is not yet supported");
return -1;
}

Expand Down
3 changes: 1 addition & 2 deletions rpcs3/Crypto/unedat.h
Expand Up @@ -5,12 +5,11 @@
#define SDAT_FLAG 0x01000000
#define EDAT_COMPRESSED_FLAG 0x00000001
#define EDAT_FLAG_0x02 0x00000002
#define EDAT_FLAG_0x04 0x00000004
#define EDAT_ENCRYPTED_KEY_FLAG 0x00000008
#define EDAT_FLAG_0x10 0x00000010
#define EDAT_FLAG_0x20 0x00000020
#define EDAT_DEBUG_DATA_FLAG 0x80000000
#define EDAT_FLAG_0x3C 0x0000003C
#define EDAT_FLAG_0x3D 0x0000003D

typedef struct
{
Expand Down
1,380 changes: 690 additions & 690 deletions rpcs3/Emu/GS/GCM.h

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion rpcs3/Emu/GS/GL/GLFragmentProgram.cpp
Expand Up @@ -248,7 +248,7 @@ template<typename T> std::string GLFragmentDecompilerThread::GetSRC(T src)
std::string GLFragmentDecompilerThread::BuildCode()
{
//main += fmt::Format("\tgl_FragColor = %c0;\n", m_ctrl & 0x40 ? 'r' : 'h');
static const std::pair<std::string, std::string> table[] =
const std::pair<std::string, std::string> table[] =
{
{ "ocol0", m_ctrl & 0x40 ? "r0" : "h0" },
{ "ocol1", m_ctrl & 0x40 ? "r2" : "h2" },
Expand Down
2 changes: 1 addition & 1 deletion rpcs3/Emu/GS/GL/GLVertexProgram.cpp
Expand Up @@ -353,7 +353,7 @@ std::string GLVertexDecompilerThread::BuildCode()
{ "tc6", true, "dst_reg13", "", false },
{ "tc7", true, "dst_reg14", "", false },
{ "tc8", true, "dst_reg15", "", false },
{ "tc9", true, "dst_reg6", "", false }
{ "tc9", true, "dst_reg6", "", false } // In this line, dst_reg6 is correct since dst_reg goes from 0 to 15.
};

std::string f;
Expand Down
11 changes: 7 additions & 4 deletions rpcs3/Emu/GS/RSXThread.cpp
Expand Up @@ -1524,7 +1524,7 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t args, const u32
}
break;

// Anti aliasing
// Anti-aliasing
case NV4097_SET_ANTI_ALIASING_CONTROL:
{
// TODO:
Expand Down Expand Up @@ -1969,8 +1969,11 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t args, const u32

case NV309E_SET_FORMAT:
{
if (ARGS(0))
LOG_WARNING(RSX, "NV309E_SET_FORMAT: %x", ARGS(0));
const u8 height = ARGS(0) >> 24;
const u8 width = ARGS(0) >> 16;
const u8 format = ARGS(0);
const u32 offset = ARGS(1);
LOG_WARNING(RSX, "NV309E_SET_FORMAT: Format:0x%x, Width:%d, Height:%d, Offset:0x%x", format, width, height, offset);
}
break;

Expand Down Expand Up @@ -2041,7 +2044,7 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t args, const u32
case NV308A_SET_CONTEXT_SURFACE:
{
if (ARGS(0))
LOG_WARNING(RSX, "NV3089_SET_CONTEXT_SURFACE: %x", ARGS(0));
LOG_WARNING(RSX, "NV308A_SET_CONTEXT_SURFACE: %x", ARGS(0));
}
break;

Expand Down
8 changes: 5 additions & 3 deletions rpcs3/Gui/GameViewer.cpp
Expand Up @@ -206,12 +206,14 @@ void GameViewer::DClick(wxListEvent& event)
Emu.Stop();
Emu.GetVFS().Init(path);
std::string local_path;
if(Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path))
{
if (Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path)) {
LOG_ERROR(HLE, "Boot error: elf not found! [%s]", path.c_str());
return;
}
Emu.Run();

if (Ini.HLEAlwaysStart.GetValue() && Emu.IsReady()) {
Emu.Run();
}
}

void GameViewer::RightClick(wxListEvent& event)
Expand Down
45 changes: 3 additions & 42 deletions rpcs3/Gui/MainFrame.cpp
Expand Up @@ -40,10 +40,8 @@ enum IDs
id_tools_compiler,
id_tools_memory_viewer,
id_tools_rsx_debugger,
id_tools_fnid_generator,
id_help_about,
id_update_dbg,
id_boot_game_and_run,
};

wxString GetPaneName()
Expand All @@ -69,11 +67,10 @@ MainFrame::MainFrame()

wxMenu* menu_boot = new wxMenu();
menubar->Append(menu_boot, "Boot");
menu_boot->Append(id_boot_elf, "Boot ELF / SELF file");
menu_boot->Append(id_boot_game, "Boot game");
menu_boot->Append(id_boot_game_and_run, "Boot game and start");
menu_boot->Append(id_install_pkg, "Install PKG");
menu_boot->AppendSeparator();
menu_boot->Append(id_boot_elf, "Boot (S)ELF");
menu_boot->Append(id_install_pkg, "Install PKG");

wxMenu* menu_sys = new wxMenu();
menubar->Append(menu_sys, "System");
Expand Down Expand Up @@ -113,10 +110,9 @@ MainFrame::MainFrame()
AddPane(m_debugger_frame, "Debugger", wxAUI_DOCK_RIGHT);

// Events
Bind(wxEVT_MENU, &MainFrame::BootElf, this, id_boot_elf);
Bind(wxEVT_MENU, &MainFrame::BootGame, this, id_boot_game);
Bind(wxEVT_MENU, &MainFrame::BootGameAndRun, this, id_boot_game_and_run);
Bind(wxEVT_MENU, &MainFrame::InstallPkg, this, id_install_pkg);
Bind(wxEVT_MENU, &MainFrame::BootElf, this, id_boot_elf);

Bind(wxEVT_MENU, &MainFrame::Pause, this, id_sys_pause);
Bind(wxEVT_MENU, &MainFrame::Stop, this, id_sys_stop);
Expand Down Expand Up @@ -201,40 +197,6 @@ void MainFrame::BootGame(wxCommandEvent& WXUNUSED(event))
}
}

void MainFrame::BootGameAndRun(wxCommandEvent& WXUNUSED(event))
{
bool stopped = false;

if (Emu.IsRunning())
{
Emu.Pause();
stopped = true;
}

wxDirDialog ctrl(this, L"Select game folder", wxEmptyString);

if (ctrl.ShowModal() == wxID_CANCEL)
{
if (stopped) Emu.Resume();
return;
}

Emu.Stop();

if (Emu.BootGame(ctrl.GetPath().ToStdString()))
{
LOG_SUCCESS(HLE, "Game: boot done.");
}
else
{
LOG_ERROR(HLE, "PS3 executable not found in selected folder (%s)", ctrl.GetPath().wx_str());
}

if (Emu.IsReady())
{
Emu.Run();
}
}
void MainFrame::InstallPkg(wxCommandEvent& WXUNUSED(event))
{
bool stopped = false;
Expand Down Expand Up @@ -299,7 +261,6 @@ void MainFrame::BootElf(wxCommandEvent& WXUNUSED(event))
LOG_NOTICE(HLE, "(S)ELF: booting...");

Emu.Stop();

Emu.SetPath(fmt::ToUTF8(ctrl.GetPath()));
Emu.Load();

Expand Down
2 changes: 1 addition & 1 deletion rpcs3/Ini.h
Expand Up @@ -276,7 +276,7 @@ class Inis
HLESaveTTY.Load(false);
HLEExitOnStop.Load(false);
HLELogLvl.Load(3);
HLEAlwaysStart.Load(false);
HLEAlwaysStart.Load(true);

// Language
SysLanguage.Load(1);
Expand Down