psphawk: clean up some logging stuff. fix upsidedown image. redirect special PSP paths to PSP/ subfolder (still not much control over them, but at least they wont be shatting all over the place)

This commit is contained in:
goyuken 2013-06-25 01:06:35 +00:00
parent 5ec0cf2831
commit c8577fc361
5 changed files with 22 additions and 2 deletions

View File

@ -80,6 +80,8 @@ namespace BizHawk.Emulation.Consoles.Sony.PSP
PPSSPPDll.die(); PPSSPPDll.die();
logcallback = null; logcallback = null;
disposed = true; disposed = true;
LogFlush();
Console.WriteLine("PSP Core Disposed.");
} }
} }
@ -88,6 +90,7 @@ namespace BizHawk.Emulation.Consoles.Sony.PSP
public void FrameAdvance(bool render, bool rendersound = true) public void FrameAdvance(bool render, bool rendersound = true)
{ {
PPSSPPDll.advance(); PPSSPPDll.advance();
LogFlush();
} }
public int Frame public int Frame

View File

@ -152,7 +152,7 @@ CoreParameter &PSP_CoreParameter()
void GetSysDirectories(std::string &memstickpath, std::string &flash0path) { void GetSysDirectories(std::string &memstickpath, std::string &flash0path) {
#ifdef _WIN32 #if 0 //def _WIN32
char path_buffer[_MAX_PATH], drive[_MAX_DRIVE] ,dir[_MAX_DIR], file[_MAX_FNAME], ext[_MAX_EXT]; char path_buffer[_MAX_PATH], drive[_MAX_DRIVE] ,dir[_MAX_DIR], file[_MAX_FNAME], ext[_MAX_EXT];
char memstickpath_buf[_MAX_PATH]; char memstickpath_buf[_MAX_PATH];
char flash0path_buf[_MAX_PATH]; char flash0path_buf[_MAX_PATH];

View File

@ -204,6 +204,9 @@ BZEXPORT int BZAPI init(const char *fn, void (BZAPI* logcallback)(char, const ch
g_Config.iButtonPreference = PSP_SYSTEMPARAM_BUTTON_CROSS; g_Config.iButtonPreference = PSP_SYSTEMPARAM_BUTTON_CROSS;
g_Config.iLockParentalLevel = 9; g_Config.iLockParentalLevel = 9;
g_Config.flashDirectory = "PSP/flash0/";
g_Config.memCardDirectory = "PSP/memstick/";
if (!PSP_Init(coreParameter, &error_string)) if (!PSP_Init(coreParameter, &error_string))
{ {
logcallback('!', "PSP_Init() failed\n"); logcallback('!', "PSP_Init() failed\n");

View File

@ -95,10 +95,24 @@ void WindowsHeadlessHost::SendDebugOutput(const std::string &output)
OutputDebugString(output.c_str()); OutputDebugString(output.c_str());
} }
void WindowsHeadlessHost::SendBackBuffer(void *dest) void WindowsHeadlessHost::SendBackBuffer(void *_dest)
{ {
int *dest = (int *)_dest;
glReadBuffer(GL_BACK); glReadBuffer(GL_BACK);
glReadPixels(0, 0, 480, 272, GL_BGRA, GL_UNSIGNED_BYTE, dest); glReadPixels(0, 0, 480, 272, GL_BGRA, GL_UNSIGNED_BYTE, dest);
// vflip
int buff[480];
for (int j = 0; j < 272 / 2; j++)
{
int *l1 = dest + 480 * j;
int *l2 = dest + 480 * (271 - j);
int s = 480 * 4;
memcpy(buff, l1, s);
memcpy(l1, l2, s);
memcpy(l2, buff, s);
}
} }
void WindowsHeadlessHost::SendDebugScreenshot(const u8 *pixbuf, u32 w, u32 h) void WindowsHeadlessHost::SendDebugScreenshot(const u8 *pixbuf, u32 w, u32 h)