Add better way to read single reference ADC values

Alos remove incomplete remote access drivers since they are no longer needed and taking up some of the 32k CODE0 space.
This commit is contained in:
meepingsnesroms
2018-07-14 17:11:20 -07:00
parent edb0ec8a8c
commit 9e4f630f64
16 changed files with 47 additions and 744 deletions

View File

@@ -17,7 +17,7 @@ static uint8_t oldScr;
void turnInterruptsOff(){
if(interruptsEnabled){
oldImr = readArbitraryMemory32(HW_REG_ADDR(IMR));
writeArbitraryMemory32(HW_REG_ADDR(IMR), 0xFFFFF0FD);/*leave timer 1 and button interrupts enabled or program will freeze*/
writeArbitraryMemory32(HW_REG_ADDR(IMR), 0xFFFFFFFF);
interruptsEnabled = false;
}
}
@@ -102,8 +102,6 @@ var enterUnsafeMode(){
oldScr = readArbitraryMemory8(HW_REG_ADDR(SCR));
writeArbitraryMemory8(HW_REG_ADDR(SCR), oldScr & 0xEF);
turnInterruptsOff();
unsafeMode = true;
resetFunctionViewer();
return makeVar(LENGTH_1, TYPE_BOOL, true);/*now in unsafe mode*/
@@ -116,7 +114,6 @@ var exitUnsafeMode(){
exitSubprogram();/*only run once/for one frame*/
if(unsafeMode){
turnInterruptsOn();
writeArbitraryMemory8(HW_REG_ADDR(SCR), oldScr);
unsafeMode = false;
resetFunctionViewer();

View File

@@ -1,175 +0,0 @@
#include <PalmOS.h>
#include <stdint.h>
#include <string.h>
#include "testSuite.h"
#include "specs/irdaCommands.h"
#include "debug.h"
#include "ugui.h"
#include "vnc.h"
/*since modern OSs dont support any way to communicate with Palm OS I am making my own with an IR LED and receiver*/
/*this is mainly because running any sort of test takes 3 minutes to compile it, get it on a memory card, load it then find out it doesnt work*/
#define IRDA_WAIT_FOREVER 0x7FFFFFFF
static Boolean irdaRunning = false;
static Err irdaError;
static Boolean irdaUseThreadedVnc;/*use Dragonball VZ timer 2 interrupt as a second thread for VNC*/
static uint16_t irdaPortId;
#include "irdaAccessors.c.h"
void irdaHandleCommands(){
if(irdaRunning){
uint8_t irdaCommand = irdaReceiveUint8();
while(irdaCommand != IRDA_COMMAND_NONE){
switch(irdaCommand){
case IRDA_COMMAND_NONE:
break;
case IRDA_COMMAND_GET_BYTE:{
uint32_t location = irdaReceiveUint32();
irdaTransmitUint8(IRDA_COMMAND_RETURN);
irdaTransmitUint8(readArbitraryMemory8(location));
break;
}
case IRDA_COMMAND_SET_BYTE:{
uint32_t location = irdaReceiveUint32();
uint8_t data = irdaReceiveUint8();
writeArbitraryMemory8(location, data);
break;
}
default:
/*todo: print error and terminate*/
break;
}
irdaCommand = irdaReceiveUint8();
}
}
}
static Boolean irdaInit(Boolean useThreadedVnc){
if(!irdaRunning){
uint32_t value;
irdaError = FtrGet(sysFileCSerialMgr, sysFtrNewSerialPresent, &value);
if(irdaError != errNone || value == false)
return false;
irdaError = SrmOpen(serPortIrPort, 9600, &irdaPortId);
if(irdaError != errNone)
return false;
if(useThreadedVnc){
Boolean success;
success = vncInit();
if(success)
irdaUseThreadedVnc = true;
else
irdaUseThreadedVnc = false;
}
else{
irdaUseThreadedVnc = false;
}
irdaRunning = true;
return true;
}
return true;/*its already running, return success*/
}
static void irdaExit(){
if(irdaRunning){
if(irdaUseThreadedVnc)
vncExit();
irdaTransmitUint8(IRDA_COMMAND_CLOSE_CONNECTION);
SrmSendWait(irdaPortId);
SrmReceiveFlush(irdaPortId, 1);
SrmSendFlush(irdaPortId);
SrmClose(irdaPortId);
}
}
var irdaCommandLoop(){
static Boolean firstRun = true;
static Boolean running;
if(firstRun){
Boolean success;
firstRun = false;
running = false;
success = irdaInit(varsEqual(getSubprogramArgs(), makeVar(LENGTH_1, TYPE_BOOL, true)));
if(success){
debugSafeScreenClear(C_WHITE);
StrPrintF(sharedDataBuffer, "IRDA remote control\n mode running...");
UG_PutString(0, 0, sharedDataBuffer);
}
else{
debugSafeScreenClear(C_WHITE);
StrPrintF(sharedDataBuffer, "IRDA startup failed!");
UG_PutString(0, 0, sharedDataBuffer);
}
}
if(getButtonPressed(buttonBack)){
firstRun = true;
irdaExit();
exitSubprogram();
}
if(!irdaUseThreadedVnc)
irdaHandleCommands();
return makeVar(LENGTH_0, TYPE_NULL, 0);
}
var irdaRun(){
static Boolean firstRun = true;
uint16_t y = 0;
if(firstRun){
firstRun = false;
if(!unsafeMode){
/*cant run VNC server anyway*/
setSubprogramArgs(makeVar(LENGTH_1, TYPE_BOOL, false));
execSubprogram(irdaCommandLoop);
return makeVar(LENGTH_0, TYPE_NULL, 0);
}
debugSafeScreenClear(C_WHITE);
StrPrintF(sharedDataBuffer, "Use Dragonball VZ timer 2 as VNC thread?");
UG_PutString(0, y, sharedDataBuffer);
y += (FONT_HEIGHT + 1) * 2;
StrPrintF(sharedDataBuffer, "Left = No, Right = Yes");
UG_PutString(0, y, sharedDataBuffer);
y += FONT_HEIGHT + 1;
}
if(getButtonPressed(buttonLeft)){
firstRun = true;
setSubprogramArgs(makeVar(LENGTH_1, TYPE_BOOL, false));
execSubprogram(irdaCommandLoop);
}
if(getButtonPressed(buttonRight)){
firstRun = true;
setSubprogramArgs(makeVar(LENGTH_1, TYPE_BOOL, true));
execSubprogram(irdaCommandLoop);
}
if(getButtonPressed(buttonBack)){
firstRun = true;
exitSubprogram();
}
return makeVar(LENGTH_0, TYPE_NULL, 0);
}

View File

@@ -1,10 +0,0 @@
#ifndef IRDA_HEADER
#define IRDA_HEADER
#include "testSuite.h"
void irdaHandleCommands();
var irdaRun();
#endif

View File

@@ -1,57 +0,0 @@
static void irdaTransmitUint8(uint8_t data){
if(irdaRunning)
SrmSend(irdaPortId, &data, 1/*bytes*/, &irdaError);
}
static uint8_t irdaReceiveUint8(){
if(irdaRunning){
uint8_t data;
SrmReceive(irdaPortId, &data, 1/*bytes*/, IRDA_WAIT_FOREVER, &irdaError);
return data;
}
return 0x00;
}
static void irdaTransmitUint16(uint16_t data){
if(irdaRunning)
SrmSend(irdaPortId, &data, 2/*bytes*/, &irdaError);
}
static uint16_t irdaReceiveUint16(){
if(irdaRunning){
uint16_t data;
SrmReceive(irdaPortId, &data, 2/*bytes*/, IRDA_WAIT_FOREVER, &irdaError);
return data;
}
return 0x0000;
}
static void irdaTransmitUint32(uint32_t data){
if(irdaRunning)
SrmSend(irdaPortId, &data, 4/*bytes*/, &irdaError);
}
static uint32_t irdaReceiveUint32(){
if(irdaRunning){
uint32_t data;
SrmReceive(irdaPortId, &data, 4/*bytes*/, IRDA_WAIT_FOREVER, &irdaError);
return data;
}
return 0x00000000;
}
static void irdaTransmitBuffer(uint8_t* data, uint32_t size){
if(irdaRunning)
SrmSend(irdaPortId, data, size, &irdaError);
}
static void irdaReceiveBuffer(uint8_t* data, uint32_t size){
if(irdaRunning)
SrmReceive(irdaPortId, data, size/*bytes*/, IRDA_WAIT_FOREVER, &irdaError);
}

View File

@@ -12,7 +12,7 @@ if [ "$1" = "clean" ]; then
exit
fi
declare -a FILES=("testSuite" "viewer" "tools" "tests" "cpu" "irda" "vnc" "emuFunctions" "ugui" "undocumentedApis")
declare -a FILES=("testSuite" "viewer" "tools" "tests" "cpu" "emuFunctions" "ugui" "undocumentedApis")
DEFINES="-DHW_TEST"
CFLAGS="-palmos4 -O3 $DEFINES"

View File

@@ -52,16 +52,18 @@ Err makeFile(uint8_t* data, uint32_t size, char* fileName){
return error;
}
uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8bit){
uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8Bit){
uint8_t config = 0x80;
uint16_t value;
volatile uint32_t wasteTime;
if(mode8bit)
if(mode8Bit)
config |= 0x08;
if(referenceMode)
if(referenceMode){
config |= 0x04;
config |= 0x03;/*force ADC and reference always on*/
}
config |= channel << 4 & 0x70;
@@ -74,9 +76,8 @@ uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8bi
writeArbitraryMemory8(HW_REG_ADDR(PEPUEN), readArbitraryMemory8(HW_REG_ADDR(PEPUEN)) & 0xFE);
/*enable SPI 2 if disabled*/
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0x4207);
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0x4200);
#if 1
/*send data, only send the first 5 bits to leave the ADC enabled*/
writeArbitraryMemory16(HW_REG_ADDR(SPIDATA2), config >> 3);
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0x4304);
@@ -94,20 +95,6 @@ uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8bi
/*get value returned*/
value = readArbitraryMemory16(HW_REG_ADDR(SPIDATA2)) & 0x0FFF;
#else
/*send data*/
writeArbitraryMemory16(HW_REG_ADDR(SPIDATA2), config << 1);
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0x4308);
while(readArbitraryMemory16(HW_REG_ADDR(SPICONT2)) & 0x0100);
/*receive data*/
writeArbitraryMemory16(HW_REG_ADDR(SPIDATA2), 0x0000);/*clear to prevent sending a new control byte*/
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0x430F);
while(readArbitraryMemory16(HW_REG_ADDR(SPICONT2)) & 0x0100);
/*get value returned*/
value = readArbitraryMemory16(HW_REG_ADDR(SPIDATA2)) >> (mode8bit ? 8 : 4);
#endif
/*disable SPI2*/
writeArbitraryMemory16(HW_REG_ADDR(SPICONT2), 0xE000);
@@ -120,45 +107,6 @@ uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8bi
return value;
}
float percentageOfTimeAs1(uint32_t address, uint8_t readSize, uint8_t bitNumber, uint32_t samples, uint32_t delay){
/*gets the percentage of time a bit spends as a 1, for example a clock line should be exactly 50%, delay is in CLK32 pulses*/
uint32_t sampleCount;
uint32_t timesAs1 = 0;
for(sampleCount = 0; sampleCount < samples; sampleCount++){
uint32_t value;
uint32_t wait;
Boolean lastClk32;
switch(readSize){
case 8:
value = readArbitraryMemory8(address);
break;
case 16:
value = readArbitraryMemory16(address);
break;
case 32:
value = readArbitraryMemory32(address);
break;
}
if(value >> bitNumber & 1)
timesAs1++;
lastClk32 = readArbitraryMemory16(HW_REG_ADDR(PLLFSR)) >> 15;
while(wait < delay){
if(readArbitraryMemory16(HW_REG_ADDR(PLLFSR)) >> 15 != lastClk32){
lastClk32 = !lastClk32;
wait++;
}
}
}
return (float)timesAs1 / (float)samples * 100.0;
}
var hexRamBrowser(){
static Boolean firstRun = true;
static uint32_t nibble;

View File

@@ -6,8 +6,7 @@
#include "testSuite.h"
Err makeFile(uint8_t* data, uint32_t size, char* fileName);
uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8bit);
float percentageOfTimeAs1(uint32_t address, uint8_t readSize, uint8_t bitNumber, uint32_t samples, uint32_t delay);
uint16_t ads7846GetValue(uint8_t channel, Boolean referenceMode, Boolean mode8Bit);
var hexRamBrowser();
var getTrapAddress();
var manualLssa();

View File

@@ -7,7 +7,6 @@
#include "tests.h"
#include "debug.h"
#include "cpu.h"
#include "irda.h"
#include "ugui.h"

View File

@@ -1,78 +0,0 @@
#include <PalmOS.h>
#include <stdint.h>
#include "testSuite.h"
#include "specs/hardwareRegisterNames.h"
#include "irda.h"
#include "cpu.h"
/*the OS doesnt seem to use timer 2(at least on Sony Clie PEG-SL10) since it was added after*/
/*the OS was written since it was originally for the Dragonball 328,*/
/*this makes it perfect for using as a hardware thread*/
static Boolean vncRunning = false;
static void (*palmOsIntLevel6Handler)();
static void vncInterruptHandler(){
/*called when VNC is enabled and a level 6 interrupt occurs*/
if(readArbitraryMemory16(HW_REG_ADDR(TSTAT2))){
/*the interrupt was called by timer 2*/
irdaHandleCommands();
/*clear timer 2 interrupt, it must be read before writing it is possible but that is performed by the check above*/
writeArbitraryMemory16(HW_REG_ADDR(TSTAT2), 0x0000);
}
else{
/*not timer 2, send interrupt to Palm OS*/
palmOsIntLevel6Handler();
}
}
Boolean vncInit(){
if(!vncRunning){
uint16_t ilcr;
turnInterruptsOff();
/*install interrupt handler*/
palmOsIntLevel6Handler = (void*)readArbitraryMemory32(readArbitraryMemory8(HW_REG_ADDR(IVR) | 6/*int level*/) * 4);
writeArbitraryMemory32(readArbitraryMemory8(HW_REG_ADDR(IVR) | 6/*int level*/) * 4, (uint32_t)vncInterruptHandler);
/*set timer 2 interrupt priority, using level 6 because its the highest*/
ilcr = readArbitraryMemory16(HW_REG_ADDR(ILCR));
ilcr &= 0x7770;/*remove TMR2 field*/
ilcr |= 0x0006;/*set new TMR2 field*/
writeArbitraryMemory16(HW_REG_ADDR(ILCR), ilcr);
/*set interrupt to trigger every 32768 / 15 seconds, 15 fps*/
readArbitraryMemory16(HW_REG_ADDR(TSTAT2));/*clear any existing interrupt*/
writeArbitraryMemory16(HW_REG_ADDR(TSTAT2), 0x0000);/*clear any existing interrupt*/
writeArbitraryMemory16(HW_REG_ADDR(TPRER2), 0x0000);/*timer prescaler off*/
writeArbitraryMemory16(HW_REG_ADDR(TCMP2), 32768 / 15);/*timer duration*/
writeArbitraryMemory16(HW_REG_ADDR(TCTL2), 0x001F);/*turn on timer 2, using CLK32 as the source*/
turnInterruptsOn();
vncRunning = true;
}
return true;/*its already running, return success*/
}
void vncExit(){
if(vncRunning){
turnInterruptsOff();
/*turn off timer 2*/
writeArbitraryMemory16(HW_REG_ADDR(TCTL2), 0x0000);
writeArbitraryMemory32(readArbitraryMemory8(HW_REG_ADDR(IVR) | 6/*int level*/) * 4, (uint32_t)palmOsIntLevel6Handler);
turnInterruptsOn();
vncRunning = false;
}
}

View File

@@ -1,12 +0,0 @@
#ifndef VNC_HEADER
#define VNC_HEADER
#include <PalmOS.h>
#include "testSuite.h"
Boolean vncInit();
void vncExit();
#endif

View File

@@ -31,7 +31,7 @@ macx {
}
CONFIG(debug, debug|release){
DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER EMU_LOG_REGISTER_ACCESS_UNKNOWN
DEFINES += EMU_DEBUG EMU_CUSTOM_DEBUG_LOG_HANDLER EMU_LOG_REGISTER_ACCESS_ALL
# DEFINES += EMU_OPCODE_LEVEL_DEBUG EMU_LOG_APIS
}

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.6.2, 2018-07-06T09:47:00. -->
<!-- Written by QtCreator 4.6.2, 2018-07-14T13:52:49. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
@@ -59,14 +59,14 @@
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.11.0 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.11.0 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5110.clang_64_kit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.11.1 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.11.1 clang 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5111.clang_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_0_clang_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_1_clang_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -126,7 +126,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_0_clang_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_1_clang_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -137,7 +137,7 @@
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -186,7 +186,7 @@
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_0_clang_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_1_clang_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -197,7 +197,7 @@
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -300,336 +300,14 @@
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<value type="int" key="PE.EnvironmentAspect.Base">-1</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Mu</value>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
<value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/Mu/Mu.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">Mu.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Desktop_Qt_5_11_0_clang_64bit-Debug/Mu.app/Contents/MacOS</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Android for armeabi-v7a (GCC 4.9, Qt 5.11.0 for Android armv7)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Android for armeabi-v7a (GCC 4.9, Qt 5.11.0 for Android armv7)</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{d4fa28a3-e781-4010-a73c-9fd20aa71367}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Android_for_armeabi_v7a_GCC_4_9_Qt_5_11_0_for_Android_armv7-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-26</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="UseMinistro">false</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Android_for_armeabi_v7a_GCC_4_9_Qt_5_11_0_for_Android_armv7-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-26</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="UseMinistro">false</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/build-Mu-Android_for_armeabi_v7a_GCC_4_9_Qt_5_11_0_for_Android_armv7-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-26</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="UseMinistro">false</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
<value type="QString">-w</value>
<value type="QString">-r</value>
</valuelist>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Android device</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployQtStep</value>
<value type="bool" key="UninstallPreviousPackage">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Android device</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployConfiguration2</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings">
<value type="QString" key="AndroidDeviceSerialNumber">ZY223CQT6S</value>
<value type="int" key="AndroidVersion.ApiLevel">27</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<valuelist type="QVariantList" key="Android.AmStartArgsKey"/>
<valuelist type="QVariantList" key="Android.PostFinishShellCmdListKey"/>
<valuelist type="QVariantList" key="Android.PreStartShellCmdListKey"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Mu</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Mu</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidRunConfiguration:/Users/Hoppy/Desktop/projects/PalmEmuRedo/libretro-palmm515emu/qtBuildSystem/Mu/Mu.pro</value>
<value type="QString" key="QMakeProjectManager.QmakeAndroidRunConfiguration.ProFile">Mu.pro</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
@@ -642,7 +320,7 @@
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>

View File

@@ -715,7 +715,7 @@ void emulatorSaveState(uint8_t* data){
offset += sizeof(uint8_t);
writeStateValueUint8(data + offset, palmMisc.batteryLevel);
offset += sizeof(uint8_t);
writeStateValueUint8(data + offset, palmMisc.inDock);
writeStateValueUint8(data + offset, palmMisc.dataPort);
offset += sizeof(uint8_t);
}
@@ -858,7 +858,7 @@ void emulatorLoadState(uint8_t* data){
offset += sizeof(uint8_t);
palmMisc.batteryLevel = readStateValueUint8(data + offset);
offset += sizeof(uint8_t);
palmMisc.inDock = readStateValueUint8(data + offset);
palmMisc.dataPort = readStateValueUint8(data + offset);
offset += sizeof(uint8_t);
}

View File

@@ -57,13 +57,22 @@ enum{
//sdcard types
enum{
CARD_BEGIN = 0,
CARD_NONE = 0,
CARD_SD,
CARD_MMC,
CARD_END
};
//port types
enum{
PORT_NONE = 0,
PORT_USB_CRADLE,
PORT_SERIAL_CRADLE,
PORT_USB_PERIPHERAL,
PORT_SERIAL_PERIPHERAL,
PORT_END
};
//types
typedef struct{
uint8_t* data;
@@ -111,7 +120,7 @@ typedef struct{
bool vibratorOn;
bool batteryCharging;
uint8_t batteryLevel;
bool inDock;
uint8_t dataPort;
}misc_hw_t;
//CPU

View File

@@ -144,7 +144,6 @@ static void recalculateCpuSpeed(){
newCpuSpeed = 0.0;
}
/*
if(newCpuSpeed != palmCrystalCycles){
debugLog("New CPU frequency of:%f cycles per second.\n", newCpuSpeed * CRYSTAL_FREQUENCY);
debugLog("New CLK32 cycle count of:%f.\n", newCpuSpeed);
@@ -155,7 +154,6 @@ static void recalculateCpuSpeed(){
debugLog("CPU turned off with DISPLL bit.\n");
}
}
*/
palmCrystalCycles = newCpuSpeed;
}

View File

@@ -252,6 +252,13 @@ static inline void setSpiCont2(uint16_t value){
uint16_t spi2Data = registerArrayRead16(SPIDATA2);
//uint16_t oldSpi2Data = spi2Data;
/*
if(spi2Data == 0x0AE0){
//first ADS7846 access, for debugging
spi2Data = spi2Data;
}
*/
//the input data is shifted into the unused bits if the transfer is less than 16 bits
for(uint8_t bits = 0; bits < bitCount; bits++){
bool newBit = ads7846ExchangeBit(spi2Data & startBit);
@@ -446,7 +453,7 @@ static inline uint8_t getPortKValue(){
uint8_t portKDir = registerArrayRead8(PKDIR);
uint8_t portKSel = registerArrayRead8(PKSEL);
portKValue |= !palmMisc.inDock << 2;
portKValue |= !(palmMisc.dataPort == PORT_USB_CRADLE || palmMisc.dataPort == PORT_SERIAL_CRADLE) << 2;//true if charging
portKValue |= 0xFB;//floating pins are high
portKValue &= ~portKDir & portKSel;
portKValue |= portKData & portKDir & portKSel;