This commit is contained in:
zilmar 2015-12-04 18:11:39 +11:00
commit 9547e0fd48
5 changed files with 113 additions and 57 deletions

View File

@ -88,7 +88,7 @@
#198# "Emplacement 8"
#199# "Emplacement 9"
#200# "Emplacement 10"
#201# "Sélection de l'Emplacement de Sauvegarde (%ws)"
#201# "Sélection de lemplacement de sauvegarde (%ws)"
//Pop up Menu
#210# "Lancer le jeu"
@ -342,8 +342,8 @@
#688# "Aucun jeu lancé"
#689# "Un jeu est lancé"
#690# "Un jeu est lancé (Fenêtré)"
#691# "Un jeu est lancé (Plein Ecran)"
#692# "Détecter la Touche"
#691# "Un jeu est lancé (Plein écran)"
#692# "Détecter la touche"
// Frame Rate Option
#700# "Interruptions verticales par seconde"

View File

@ -276,67 +276,66 @@ void CInterpreterCPU::ExecuteCPU()
{
while (!Done)
{
if (g_MMU->LW_VAddr(PROGRAM_COUNTER, Opcode.Hex))
if (!g_MMU->LW_VAddr(PROGRAM_COUNTER, Opcode.Hex))
{
/*if (PROGRAM_COUNTER > 0x80000300 && PROGRAM_COUNTER< 0x80380000)
{
WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %s",*_PROGRAM_COUNTER,R4300iOpcodeName(Opcode.Hex,*_PROGRAM_COUNTER));
//WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %s t9: %08X v1: %08X",*_PROGRAM_COUNTER,R4300iOpcodeName(Opcode.Hex,*_PROGRAM_COUNTER),_GPR[0x19].UW[0],_GPR[0x03].UW[0]);
//WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %d %d",*_PROGRAM_COUNTER,*g_NextTimer,g_SystemTimer->CurrentType());
}*/
m_R4300i_Opcode[Opcode.op]();
NextTimer -= CountPerOp;
g_Reg->DoTLBReadMiss(R4300iOp::m_NextInstruction == JUMP, PROGRAM_COUNTER);
R4300iOp::m_NextInstruction = NORMAL;
continue;
}
switch (R4300iOp::m_NextInstruction)
{
case NORMAL:
PROGRAM_COUNTER += 4;
break;
case DELAY_SLOT:
R4300iOp::m_NextInstruction = JUMP;
PROGRAM_COUNTER += 4;
break;
case PERMLOOP_DO_DELAY:
R4300iOp::m_NextInstruction = PERMLOOP_DELAY_DONE;
PROGRAM_COUNTER += 4;
break;
case JUMP:
{
bool CheckTimer = (JumpToLocation < PROGRAM_COUNTER || TestTimer);
PROGRAM_COUNTER = JumpToLocation;
R4300iOp::m_NextInstruction = NORMAL;
if (CheckTimer)
{
TestTimer = false;
if (NextTimer < 0)
{
g_SystemTimer->TimerDone();
}
if (bDoSomething)
{
g_SystemEvents->ExecuteEvents();
}
}
}
/* if (PROGRAM_COUNTER > 0x80000300 && PROGRAM_COUNTER < 0x80380000)
{
WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %s",*_PROGRAM_COUNTER,R4300iOpcodeName(Opcode.Hex,*_PROGRAM_COUNTER));
// WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %s t9: %08X v1: %08X",*_PROGRAM_COUNTER,R4300iOpcodeName(Opcode.Hex,*_PROGRAM_COUNTER),_GPR[0x19].UW[0],_GPR[0x03].UW[0]);
// WriteTraceF((TraceType)(TraceError | TraceNoHeader),"%X: %d %d",*_PROGRAM_COUNTER,*g_NextTimer,g_SystemTimer->CurrentType());
} */
m_R4300i_Opcode[Opcode.op]();
NextTimer -= CountPerOp;
switch (R4300iOp::m_NextInstruction)
{
case NORMAL:
PROGRAM_COUNTER += 4;
break;
case PERMLOOP_DELAY_DONE:
PROGRAM_COUNTER = JumpToLocation;
R4300iOp::m_NextInstruction = NORMAL;
CInterpreterCPU::InPermLoop();
g_SystemTimer->TimerDone();
case DELAY_SLOT:
R4300iOp::m_NextInstruction = JUMP;
PROGRAM_COUNTER += 4;
break;
case PERMLOOP_DO_DELAY:
R4300iOp::m_NextInstruction = PERMLOOP_DELAY_DONE;
PROGRAM_COUNTER += 4;
break;
case JUMP:
{
bool CheckTimer = (JumpToLocation < PROGRAM_COUNTER || TestTimer);
PROGRAM_COUNTER = JumpToLocation;
R4300iOp::m_NextInstruction = NORMAL;
if (CheckTimer)
{
TestTimer = false;
if (NextTimer < 0)
{
g_SystemTimer->TimerDone();
}
if (bDoSomething)
{
g_SystemEvents->ExecuteEvents();
}
break;
default:
g_Notify->BreakPoint(__FILEW__, __LINE__);
}
}
else
{
g_Reg->DoTLBReadMiss(R4300iOp::m_NextInstruction == JUMP, PROGRAM_COUNTER);
break;
case PERMLOOP_DELAY_DONE:
PROGRAM_COUNTER = JumpToLocation;
R4300iOp::m_NextInstruction = NORMAL;
CInterpreterCPU::InPermLoop();
g_SystemTimer->TimerDone();
if (bDoSomething)
{
g_SystemEvents->ExecuteEvents();
}
break;
default:
g_Notify->BreakPoint(__FILEW__, __LINE__);
}
}
}

View File

@ -1546,7 +1546,7 @@ bool CN64System::LoadState(const char * FileName)
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, NULL);
if (hSaveFile == INVALID_HANDLE_VALUE)
{
g_Notify->DisplayMessage(5, stdstr_f("%s %s", GS(MSG_UNABLED_LOAD_STATE), FileNameStr).ToUTF16().c_str());
g_Notify->DisplayMessage(5, stdwstr_f(L"%ws %ws", GS(MSG_UNABLED_LOAD_STATE), FileNameStr.ToUTF16().c_str()).c_str());
return false;
}

View File

@ -523,7 +523,7 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
case ID_DEBUGGER_INTERRUPT_PI: g_BaseSystem->ExternalEvent(SysEvent_Interrupt_PI); break;
case ID_DEBUGGER_INTERRUPT_DP: g_BaseSystem->ExternalEvent(SysEvent_Interrupt_DP); break;
case ID_CURRENT_SAVE_DEFAULT:
g_Notify->DisplayMessage(3, stdwstr_f(GS(MENU_SLOT_SAVE), GetSaveSlotString(MenuID - ID_CURRENT_SAVE_DEFAULT).c_str()).c_str());
g_Notify->DisplayMessage(3, stdwstr_f(GS(MENU_SLOT_SAVE), GetSaveSlotString(MenuID - ID_CURRENT_SAVE_DEFAULT).c_str()).c_str());
g_Settings->SaveDword(Game_CurrentSaveState, (DWORD)(MenuID - ID_CURRENT_SAVE_DEFAULT));
break;
case ID_CURRENT_SAVE_1:
@ -536,7 +536,7 @@ bool CMainMenu::ProcessMessage(HWND hWnd, DWORD /*FromAccelerator*/, DWORD MenuI
case ID_CURRENT_SAVE_8:
case ID_CURRENT_SAVE_9:
case ID_CURRENT_SAVE_10:
g_Notify->DisplayMessage(3, stdwstr_f(GS(MENU_SLOT_SAVE), GetSaveSlotString((MenuID - ID_CURRENT_SAVE_1) + 1).c_str()).c_str());
g_Notify->DisplayMessage(3, stdwstr_f(GS(MENU_SLOT_SAVE), GetSaveSlotString((MenuID - ID_CURRENT_SAVE_1) + 1).c_str()).c_str());
g_Settings->SaveDword(Game_CurrentSaveState, (DWORD)((MenuID - ID_CURRENT_SAVE_1) + 1));
break;
case ID_HELP_SUPPORTFORUM: ShellExecute(NULL, "open", "http://forum.pj64-emu.com/", NULL, NULL, SW_SHOWMAXIMIZED); break;

57
Source/Script/Unix/common.sh Executable file
View File

@ -0,0 +1,57 @@
src=./../../Common
obj=./Common
mkdir -p $obj
FLAGS_x86="\
-S \
-masm=intel \
-march=native \
-Os"
C_FLAGS=$FLAGS_x86
CC=g++
AS=as
echo Compiling common library sources for Project64...
$CC -o $obj/CriticalSection.asm $src/CriticalSection.cpp $C_FLAGS
$CC -o $obj/FileClass.asm "$src/File Class.cpp" $C_FLAGS
$CC -o $obj/IniFileClass.asm "$src/Ini File Class.cpp" $C_FLAGS
$CC -o $obj/LogClass.asm "$src/Log Class.cpp" $C_FLAGS
$CC -o $obj/md5.asm $src/md5.cpp $C_FLAGS
$CC -o $obj/MemTest.asm $src/MemTest.cpp $C_FLAGS
$CC -o $obj/path.asm $src/path.cpp $C_FLAGS
$CC -o $obj/stdstring.asm "$src/std string.cpp" $C_FLAGS
$CC -o $obj/SyncEvent.asm $src/SyncEvent.cpp $C_FLAGS
$CC -o $obj/Trace.asm $src/Trace.cpp $C_FLAGS
$CC -o $obj/Util.asm $src/Util.cpp $C_FLAGS
echo Assembling common library sources...
$AS -o $obj/CriticalSection.o $obj/CriticalSection.asm
$AS -o $obj/FileClass.o $obj/FileClass.asm
$AS -o $obj/IniFileClass.o $obj/IniFileClass.asm
$AS -o $obj/LogClass.o $obj/LogClass.asm
$AS -o $obj/md5.o $obj/md5.asm
$AS -o $obj/MemTest.o $obj/MemTest.asm
$AS -o $obj/path.o $obj/path.asm
$AS -o $obj/stdstring.o $obj/stdstring.asm
$AS -o $obj/SyncEvent.o $obj/SyncEvent.asm
$AS -o $obj/Trace.o $obj/Trace.asm
$AS -o $obj/Util.o $obj/Util.asm
set OBJ_LIST="\
$obj/Util.o \
$obj/Trace.o \
$obj/SyncEvent.o \
$obj/stdstring.o \
$obj/path.o \
$obj/MemTest.o \
$obj/md5.o \
$obj/LogClass.o \
$obj/IniFileClass.o \
$obj/FileClass.o \
$obj/CriticalSection.o"
echo Linking static library objects for Common...
ar rcs $obj/libcommon.a $OBJ_LIST