diff --git a/Core/HLE/HLETables.cpp b/Core/HLE/HLETables.cpp index f3546d8f69..53143d0c6a 100644 --- a/Core/HLE/HLETables.cpp +++ b/Core/HLE/HLETables.cpp @@ -104,8 +104,8 @@ const HLEFunction sceRtc[] = {0x34885E0D, 0, "sceRtcConvertUtcToLocalTime"}, {0x779242A2, 0, "sceRtcConvertLocalTimeToUTC"}, {0x42307A17, 0, "sceRtcIsLeapYear"}, - {0x05ef322c, 0, "sceRtcGetDaysInMonth"}, - {0x57726bc1, 0, "sceRtcGetDayOfWeek"}, + {0x05ef322c, &WrapU_UU, "sceRtcGetDaysInMonth"}, + {0x57726bc1, &WrapU_UUU, "sceRtcGetDayOfWeek"}, {0x4B1B5E82, 0, "sceRtcCheckValid"}, {0x3a807cc8, 0, "sceRtcSetTime_t"}, {0x27c4594c, 0, "sceRtcGetTime_t"}, diff --git a/Core/HLE/sceGe.cpp b/Core/HLE/sceGe.cpp index 1cd3180218..9e4e475a73 100644 --- a/Core/HLE/sceGe.cpp +++ b/Core/HLE/sceGe.cpp @@ -107,10 +107,9 @@ void sceGeListSync(u32 displayListID, u32 mode) //0 : wait for completion 1:che DEBUG_LOG(HLE,"sceGeListSync(dlid=%08x, mode=%08x)", displayListID,mode); } -u32 sceGeDrawSync(u32) +u32 sceGeDrawSync(u32 mode) { //wait/check entire drawing state - u32 mode = PARAM(0); //0 : wait for completion 1:check and return DEBUG_LOG(HLE,"FAKE sceGeDrawSync(mode=%d) (0=wait for completion)",mode); gpu->DrawSync(mode); return 0; diff --git a/Core/HLE/sceImpose.cpp b/Core/HLE/sceImpose.cpp index 12e9b18186..3735a28861 100644 --- a/Core/HLE/sceImpose.cpp +++ b/Core/HLE/sceImpose.cpp @@ -19,6 +19,9 @@ #include "FunctionWrappers.h" #include "../MIPS/MIPS.h" +u32 iLanguage = 0; +u32 iButtonValue = 0; + u32 sceImposeGetBatteryIconStatus(u32 chargingPtr, u32 iconStatusPtr) { DEBUG_LOG(HLE,"%i=sceImposeGetBatteryIconStatus(%08x, %08x)", chargingPtr, iconStatusPtr); @@ -29,13 +32,34 @@ u32 sceImposeGetBatteryIconStatus(u32 chargingPtr, u32 iconStatusPtr) return 0; } +u32 sceImposeSetLanguageMode(u32 languageVal, u32 buttonVal) +{ + DEBUG_LOG(HLE,"%i=sceImposeSetLanguageMode(%08x, %08x)", languageVal, buttonVal); + iLanguage = languageVal; + iButtonValue = buttonVal; + return 0; +} + + + + + +u32 sceImposeGetLanguageMode(u32 languagePtr, u32 btnPtr) +{ + DEBUG_LOG(HLE,"%i=sceImposeGetLanguageMode(%08x, %08x)", languagePtr, btnPtr); + if (Memory::IsValidAddress(languagePtr)) + Memory::Write_U32(iLanguage, languagePtr); + if (Memory::IsValidAddress(btnPtr)) + Memory::Write_U32(iButtonValue, btnPtr); + return 0; +} //OSD stuff? home button? const HLEFunction sceImpose[] = { - {0x36aa6e91, 0, "sceImposeSetLanguageMode"}, // Seen + {0x36aa6e91, &WrapU_UU, "sceImposeSetLanguageMode"}, // Seen {0x381bd9e7, 0, "sceImposeHomeButton"}, - {0x24fd7bcf, 0, "sceImposeGetLanguageMode"}, + {0x24fd7bcf, &WrapU_UU, "sceImposeGetLanguageMode"}, {0x8c943191, &WrapU_UU, "sceImposeGetBatteryIconStatus"}, {0x72189C48, 0, "sceImposeSetUMDPopup"}, }; diff --git a/Core/HLE/sceKernelTime.cpp b/Core/HLE/sceKernelTime.cpp index 47eee10720..c88f6966eb 100644 --- a/Core/HLE/sceKernelTime.cpp +++ b/Core/HLE/sceKernelTime.cpp @@ -150,6 +150,42 @@ void sceRtcGetTick() RETURN(0); } +u32 sceRtcGetDayOfWeek(u32 year, u32 month, u32 day) +{ + static u32 t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; + + year -= month < 3; + return ( year + year/4 - year/100 + year/400 + t[month-1] + day) % 7; +} + +u32 sceRtcGetDaysInMonth(u32 year, u32 month) +{ + DEBUG_LOG(HLE,"0=sceRtcGetDaysInMonth()"); + u32 numberOfDays; + + switch (month) + { + case 4: + case 6: + case 9: + case 11: + numberOfDays = 30; + break; + case 2: + if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) + numberOfDays = 29; + else + numberOfDays = 28; + break; + + default: + numberOfDays = 31; + break; + } + + return numberOfDays; +} + void sceRtcGetTickResolution() { DEBUG_LOG(HLE,"100=sceRtcGetTickResolution()"); diff --git a/Core/HLE/sceKernelTime.h b/Core/HLE/sceKernelTime.h index 0905a61a6b..6eaf4b5e5a 100644 --- a/Core/HLE/sceKernelTime.h +++ b/Core/HLE/sceKernelTime.h @@ -29,3 +29,5 @@ void sceKernelSysClock2USecWide(); void sceRtcGetCurrentClockLocalTime(); void sceRtcGetTickResolution(); void sceRtcGetTick(); +u32 sceRtcGetDaysInMonth(u32 year, u32 month); +u32 sceRtcGetDayOfWeek(u32 year, u32 month, u32 day); \ No newline at end of file diff --git a/SDL/CMakeLists.txt b/SDL/CMakeLists.txt index 12f42148ce..4118413d92 100644 --- a/SDL/CMakeLists.txt +++ b/SDL/CMakeLists.txt @@ -14,13 +14,10 @@ endif() # TODO: Rely on compiler define instead. __BLACKBERRY__ ? if (BLACKBERRY) - message("Building for Blackberry") add_definitions(-DBLACKBERRY) if (BLACKBERRY GREATER 10) add_definitions(-DBLACKBERRY10) endif() -else() - message("Not building for Blackberry") endif() diff --git a/SDL/bar-descriptor.xml b/SDL/bar-descriptor.xml index 67ca11344c..3ce9c914df 100644 --- a/SDL/bar-descriptor.xml +++ b/SDL/bar-descriptor.xml @@ -3,7 +3,7 @@ com.Qtness.PPSSPP PPSSPP ppsspp - 0.0.1 + 0.2 1 Playstation portable emulator. diff --git a/SDL/blackberry_build.sh b/SDL/blackberry_build.sh index 30ccc88178..ecbc4dc272 100755 --- a/SDL/blackberry_build.sh +++ b/SDL/blackberry_build.sh @@ -24,7 +24,6 @@ PKG_CONFIG_PATH=${PROJECT_ROOT}/install/lib/pkgconfig PKG_CONFIG_LIBDIR=${PROJECT_ROOT}/install/lib/pkgconfig SDL_PROJECT=${PROJECT_ROOT}/SDL -SDLIMAGE_PROJECT=${PROJECT_ROOT}/SDL_image SDLMIXER_PROJECT=${PROJECT_ROOT}/SDL_mixer while true; do @@ -44,7 +43,6 @@ while true; do echo "Dependency Paths (defaults are under project root): " echo " --sdl PATH SDL 1.2 project directory (default is SDL)" echo " --tco PATH TouchControlOverlay project directory (default is TouchControlOverlay)" - echo " --sdl_image PATH SDL_image project directory (default is SDL_image)" echo " --sdl_mixer PATH SDL_mixer project directory (default is SDL_mixer)" echo " --ogg PATH ogg project directory (default is ogg)" echo " --vorbis PATH vorbis project directory (default is vorbis)" @@ -55,7 +53,6 @@ while true; do -p | --project-root ) PROJECT_ROOT="$2"; shift 2 ;; --pkg-config ) PKG_CONFIG_PATH="$2"; PKG_CONFIG_LIBDIR="$2"; shift 2 ;; --sdl ) SDL_PROJECT="$2"; shift 2 ;; - --sdl_image ) SDLIMAGE_PROJECT="$2"; shift 2 ;; --sdl_mixer ) SDLMIXER_PROJECT="$2"; shift 2 ;; --tco ) TCO_PROJECT="$2"; shift 2 ;; --ogg ) OGG_PROJECT="$2"; shift 2 ;; @@ -68,9 +65,6 @@ done if [ -z "$SDL_PROJECT" ]; then SDL_PROJECT="$PROJECT_ROOT/SDL" fi -if [ -z "$SDLIMAGE_PROJECT" ]; then - SDLIMAGE_PROJECT="$PROJECT_ROOT/SDL_image" -fi if [ -z "$SDLMIXER_PROJECT" ]; then SDLMIXER_PROJECT="$PROJECT_ROOT/SDL_mixer" fi @@ -95,16 +89,9 @@ cmake \ -DCMAKE_C_COMPILER="${QNX_HOST}/usr/bin/ntoarmv7-gcc" \ -DCMAKE_CXX_COMPILER="${QNX_HOST}/usr/bin/ntoarmv7-g++" \ -DTHREADS_PTHREAD_ARG="" \ --DLIBINTL_INCLUDE_DIR="${QNX_TARGET}/usr/include" \ --DLIBINTL_LIB_FOUND=TRUE \ --DLIBINTL_LIBRARIES="${QNX_TARGET}/armle-v7/usr/lib/libintl.so" \ --DLIBINTL_LIBC_HAS_DGETTEXT=FALSE \ -DSDL_INCLUDE_DIR="${SDL_PROJECT}/include" \ -DSDL_LIBRARY="${SDL_PROJECT}/Device-${BUILD_TYPE}/libSDL12.so;${TCO_PROJECT}/Device-${BUILD_TYPE}/libTouchControlOverlay.so" \ -DSDL_FOUND=ON \ --DSDLIMAGE_INCLUDE_DIR="${SDLIMAGE_PROJECT}" \ --DSDLIMAGE_LIBRARY="${SDLIMAGE_PROJECT}/Device-${BUILD_TYPE}/libSDL_image.so" \ --DSDLIMAGE_FOUND=ON \ -DSDLMIXER_INCLUDE_DIR="${SDLMIXER_PROJECT}" \ -DSDLMIXER_LIBRARY="${SDLMIXER_PROJECT}/Device-${BUILD_TYPE}/libSDL_mixer.so;${OGG_PROJECT}/Device-${BUILD_TYPE}/libogg.so;${VORBIS_PROJECT}/Device-${BUILD_TYPE}/libvorbis.so" \ -DSDLMIXER_FOUND=ON \ diff --git a/SDL/blackberry_package.sh b/SDL/blackberry_package.sh index bb52f854b5..cdac8adeab 100755 --- a/SDL/blackberry_package.sh +++ b/SDL/blackberry_package.sh @@ -9,5 +9,4 @@ blackberry-nativepackager -package PPSSPP.bar bar-descriptor.xml ppsspp \ -e ../android/assets assets \ -e ${WORKSPACE}/SDL12/${TYPE}/libSDL12.so lib/libSDL12.so \ -e ${WORKSPACE}/TouchControlOverlay/${TYPE}/libTouchControlOverlay.so lib/libTouchControlOverlay.so \ --e ${WORKSPACE}/SDL_image/${TYPE}/libSDL_image.so lib/libSDL_image.so \ -e ${WORKSPACE}/SDL_mixer/${TYPE}/libSDL_mixer.so lib/libSDL_mixer.so diff --git a/SDL/icon-114.png b/SDL/icon-114.png index 1a153b5fd1..bef28a2504 100755 Binary files a/SDL/icon-114.png and b/SDL/icon-114.png differ diff --git a/test.py b/test.py index da9eb7ba2c..9f574a6cab 100644 --- a/test.py +++ b/test.py @@ -26,6 +26,7 @@ tests_good = [ "string/string", "gpu/callbacks/ge_callbacks", "threads/mbx/mbx", + "rtc/rtc", ] # These are the next tests up for fixing. @@ -44,7 +45,6 @@ tests_next = [ "mstick/mstick", "modules/loadexec/loader", "power/power", - "rtc/rtc", "sysmem/sysmem", "threads/events/events", "threads/fpl/fpl",