Merge branch 'master' of https://github.com/project64/project64
This commit is contained in:
commit
9547e0fd48
|
@ -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 l’emplacement 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"
|
||||
|
|
|
@ -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__);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue