fixed broken saved states for old versions, zeropad was broken under windows, updated some files...

This commit is contained in:
zerofrog
2007-12-15 15:03:43 +00:00
parent 3fe64a6f79
commit 0bfa3fe406
15 changed files with 430 additions and 363 deletions

View File

@@ -1,4 +1,7 @@
gametitle=Katamari Damacy [SLUS 21008] (U) [FA7E3081] gametitle=kata
comment=Skips Video (sceMpegIsEnd) comment=
//Skip Videos //Skip Intro Videos
patch=0,EE,0018e9e8,word,24020001 patch=0,EE,0018e9e8,word,24020001
//0018e4c8
//0018e11c
//0018e020

View File

@@ -23,7 +23,7 @@
#include <dlfcn.h> #include <dlfcn.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <error.h> //#include <error.h>
#include <signal.h> #include <signal.h>
#include <string.h> #include <string.h>
#include <sys/mman.h> #include <sys/mman.h>

View File

@@ -40,7 +40,7 @@
#include "Cache.h" #include "Cache.h"
u32 dwSaveVersion = 0x7a30000f; u32 dwSaveVersion = 0x7a300010;
u32 dwCurSaveStateVer = 0; u32 dwCurSaveStateVer = 0;
extern u32 s_iLastCOP0Cycle; extern u32 s_iLastCOP0Cycle;
extern u32 s_iLastPERFCycle[2]; extern u32 s_iLastPERFCycle[2];
@@ -624,7 +624,8 @@ int LoadState(char *file) {
if( dwCurSaveStateVer != dwSaveVersion ) { if( dwCurSaveStateVer != dwSaveVersion ) {
if( dwCurSaveStateVer != 0x7a30000d && dwCurSaveStateVer != 0x7a30000e ) { // pcsx2 supports opening these formats
if( dwCurSaveStateVer != 0x7a30000d && dwCurSaveStateVer != 0x7a30000e && dwCurSaveStateVer != 0x7a30000f) {
gzclose(f); gzclose(f);
SysPrintf("Save state wrong version\n"); SysPrintf("Save state wrong version\n");
return 0; return 0;

View File

@@ -1,88 +1,88 @@
#ifndef __PS2ETYPES_H__ #ifndef __PS2ETYPES_H__
#define __PS2ETYPES_H__ #define __PS2ETYPES_H__
#if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case #if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case
#define __LINUX__ #define __LINUX__
#endif #endif
#ifdef __CYGWIN__ #ifdef __CYGWIN__
#define _WIN32 #define __LINUX__
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
#include <windows.h> #include <windows.h>
#endif #endif
#ifndef ARRAYSIZE #ifndef ARRAYSIZE
#define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
#endif #endif
// Basic types // Basic types
#if defined(_MSC_VER) #if defined(_MSC_VER)
typedef __int8 s8; typedef __int8 s8;
typedef __int16 s16; typedef __int16 s16;
typedef __int32 s32; typedef __int32 s32;
typedef __int64 s64; typedef __int64 s64;
typedef unsigned __int8 u8; typedef unsigned __int8 u8;
typedef unsigned __int16 u16; typedef unsigned __int16 u16;
typedef unsigned __int32 u32; typedef unsigned __int32 u32;
typedef unsigned __int64 u64; typedef unsigned __int64 u64;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x #define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x
#else #else
typedef char s8; typedef char s8;
typedef short s16; typedef short s16;
typedef int s32; typedef int s32;
typedef long long s64; typedef long long s64;
typedef unsigned char u8; typedef unsigned char u8;
typedef unsigned short u16; typedef unsigned short u16;
typedef unsigned int u32; typedef unsigned int u32;
typedef unsigned long long u64; typedef unsigned long long u64;
#ifdef __LINUX__ #ifdef __LINUX__
typedef union _LARGE_INTEGER typedef union _LARGE_INTEGER
{ {
long long QuadPart; long long QuadPart;
} LARGE_INTEGER; } LARGE_INTEGER;
#endif #endif
#if defined(__MINGW32__) #if defined(__MINGW32__)
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#else #else
#define PCSX2_ALIGNED16(x) x __attribute((aligned(16))) #define PCSX2_ALIGNED16(x) x __attribute((aligned(16)))
#endif #endif
#define PCSX2_ALIGNED16_DECL(x) x #define PCSX2_ALIGNED16_DECL(x) x
#ifndef __forceinline #ifndef __forceinline
#define __forceinline inline #define __forceinline inline
#endif #endif
#endif // _MSC_VER #endif // _MSC_VER
#if defined(__x86_64__) #if defined(__x86_64__)
typedef u64 uptr; typedef u64 uptr;
typedef s64 sptr; typedef s64 sptr;
#else #else
typedef u32 uptr; typedef u32 uptr;
typedef s32 sptr; typedef s32 sptr;
#endif #endif
typedef struct { typedef struct {
int size; int size;
s8 *data; s8 *data;
} freezeData; } freezeData;
/* common defines */ /* common defines */
#ifndef C_ASSERT #ifndef C_ASSERT
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
#endif #endif
#endif /* __PS2ETYPES_H__ */ #endif /* __PS2ETYPES_H__ */

View File

@@ -695,8 +695,23 @@ u64 psxRcntCycles(int index) {
return (u64)(psxCounters[index].count + (u32)((psxRegs.cycle - psxCounters[index].sCycleT) / psxCounters[index].rate)); return (u64)(psxCounters[index].count + (u32)((psxRegs.cycle - psxCounters[index].sCycleT) / psxCounters[index].rate));
} }
int psxRcntFreeze(gzFile f, int Mode) { extern u32 dwCurSaveStateVer;
gzfreezel(psxCounters); int psxRcntFreeze(gzFile f, int Mode)
{
if( Mode == 0 && (dwCurSaveStateVer < 0x7a300010) ) { // reading
// struct used to be 32bit count and target
int i;
u32 val;
for(i = 0; i < ARRAYSIZE(psxCounters); ++i) {
gzfreeze(&val,4); psxCounters[i].count = val;
gzfreeze(&val,4); psxCounters[i].mode = val;
gzfreeze(&val,4); psxCounters[i].target = val;
gzfreeze((u8*)&psxCounters[i].rate, sizeof(psxCounters[i])-20);
}
}
else
gzfreezel(psxCounters);
return 0; return 0;
} }

View File

@@ -20,7 +20,8 @@
#define __PSXCOUNTERS_H__ #define __PSXCOUNTERS_H__
typedef struct { typedef struct {
u64 count, mode, target; u64 count, target;
u32 mode;
u32 rate, interrupt, otarget; u32 rate, interrupt, otarget;
u32 sCycle, Cycle; u32 sCycle, Cycle;
u32 sCycleT, CycleT; u32 sCycleT, CycleT;

View File

@@ -542,6 +542,17 @@ void cpuExecuteBios()
} }
bExecBIOS = FALSE; bExecBIOS = FALSE;
// {
// FILE* f = fopen("eebios.bin", "wb");
// fwrite(PSM(0x80000000), 0x100000, 1, f);
// fclose(f);
// exit(0);
// f = fopen("iopbios.bin", "wb");
// fwrite(PS2MEM_PSX, 0x80000, 1, f);
// fclose(f);
// }
// REC_CLEARM(0x00200008); // REC_CLEARM(0x00200008);
// REC_CLEARM(0x00100008); // REC_CLEARM(0x00100008);
// REC_CLEARM(cpuRegs.pc); // REC_CLEARM(cpuRegs.pc);
@@ -578,7 +589,7 @@ void IntcpuBranchTest()
g_EEFreezeRegs = 0; g_EEFreezeRegs = 0;
#endif #endif
g_nextBranchCycle = cpuRegs.cycle + EE_WAIT_CYCLE; g_nextBranchCycle = cpuRegs.cycle + EE_WAIT_CYCLE;
if ((int)(cpuRegs.cycle - nextsCounter) >= nextCounter) if ((int)(cpuRegs.cycle - nextsCounter) >= nextCounter)
rcntUpdate(); rcntUpdate();

View File

@@ -74,6 +74,7 @@ int vu0Init()
memLUT[0x11003].aPFNs = &s_psVuMem.aPFNs[0]; memLUT[0x11003].aVFNs = &s_psVuMem.aVFNs[0]; memLUT[0x11003].aPFNs = &s_psVuMem.aPFNs[0]; memLUT[0x11003].aVFNs = &s_psVuMem.aVFNs[0];
// since vuregisters are mapped in vumem0, go to diff addr, but mapping to same physical addr // since vuregisters are mapped in vumem0, go to diff addr, but mapping to same physical addr
VirtualFree((void*)0x11000000, 0x10000, MEM_RELEASE); // free just in case
VU0.Mem = VirtualAlloc((void*)0x11000000, 0x10000, MEM_RESERVE|MEM_PHYSICAL, PAGE_READWRITE); VU0.Mem = VirtualAlloc((void*)0x11000000, 0x10000, MEM_RESERVE|MEM_PHYSICAL, PAGE_READWRITE);
if( VU0.Mem != (void*)0x11000000 ) { if( VU0.Mem != (void*)0x11000000 ) {

View File

@@ -438,6 +438,8 @@ u32 CALLBACK USBread32(u32 addr);
void CALLBACK USBwrite8(u32 addr, u8 value); void CALLBACK USBwrite8(u32 addr, u8 value);
void CALLBACK USBwrite16(u32 addr, u16 value); void CALLBACK USBwrite16(u32 addr, u16 value);
void CALLBACK USBwrite32(u32 addr, u32 value); void CALLBACK USBwrite32(u32 addr, u32 value);
void CALLBACK USBasync(u32 cycles);
// cycles = IOP cycles before calling callback, // cycles = IOP cycles before calling callback,
// if callback returns 1 the irq is triggered, else not // if callback returns 1 the irq is triggered, else not
void CALLBACK USBirqCallback(USBcallback callback); void CALLBACK USBirqCallback(USBcallback callback);
@@ -636,6 +638,9 @@ typedef u32 (CALLBACK* _USBread32)(u32 mem);
typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value); typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value);
typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value); typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value);
typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value); typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value);
typedef void (CALLBACK* _USBasync)(u32 cycles);
typedef void (CALLBACK* _USBirqCallback)(USBcallback callback); typedef void (CALLBACK* _USBirqCallback)(USBcallback callback);
typedef USBhandler (CALLBACK* _USBirqHandler)(void); typedef USBhandler (CALLBACK* _USBirqHandler)(void);
typedef void (CALLBACK* _USBsetRAM)(void *mem); typedef void (CALLBACK* _USBsetRAM)(void *mem);
@@ -821,6 +826,8 @@ _USBread32 USBread32;
_USBwrite8 USBwrite8; _USBwrite8 USBwrite8;
_USBwrite16 USBwrite16; _USBwrite16 USBwrite16;
_USBwrite32 USBwrite32; _USBwrite32 USBwrite32;
_USBasync USBasync;
_USBirqCallback USBirqCallback; _USBirqCallback USBirqCallback;
_USBirqHandler USBirqHandler; _USBirqHandler USBirqHandler;
_USBsetRAM USBsetRAM; _USBsetRAM USBsetRAM;

View File

@@ -1,76 +1,88 @@
#ifndef __PS2ETYPES_H__ #ifndef __PS2ETYPES_H__
#define __PS2ETYPES_H__ #define __PS2ETYPES_H__
#ifndef ARRAYSIZE #if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case
#define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) #define __LINUX__
#endif #endif
#if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case #ifdef __CYGWIN__
#define __LINUX__ #define __LINUX__
#endif #endif
// Basic types #ifdef _WIN32
#if defined(_MSC_VER) #include <windows.h>
#endif
typedef __int8 s8;
typedef __int16 s16; #ifndef ARRAYSIZE
typedef __int32 s32; #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
typedef __int64 s64; #endif
typedef unsigned __int8 u8;
typedef unsigned __int16 u16; // Basic types
typedef unsigned __int32 u32; #if defined(_MSC_VER)
typedef unsigned __int64 u64;
typedef __int8 s8;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x typedef __int16 s16;
typedef __int32 s32;
#else typedef __int64 s64;
typedef char s8; typedef unsigned __int8 u8;
typedef short s16; typedef unsigned __int16 u16;
typedef int s32; typedef unsigned __int32 u32;
typedef long long s64; typedef unsigned __int64 u64;
typedef unsigned char u8; #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
typedef unsigned short u16; #define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x
typedef unsigned int u32;
typedef unsigned long long u64; #else
#ifdef __LINUX__ typedef char s8;
typedef union _LARGE_INTEGER typedef short s16;
{ typedef int s32;
long long QuadPart; typedef long long s64;
} LARGE_INTEGER;
#endif typedef unsigned char u8;
typedef unsigned short u16;
#if defined(__MINGW32__) typedef unsigned int u32;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x typedef unsigned long long u64;
#else
#define PCSX2_ALIGNED16(x) x __attribute((aligned(16))) #ifdef __LINUX__
#endif typedef union _LARGE_INTEGER
{
#ifndef __forceinline long long QuadPart;
#define __forceinline inline } LARGE_INTEGER;
#endif #endif
#endif // _MSC_VER #if defined(__MINGW32__)
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#if defined(__x86_64__) #else
typedef u64 uptr; #define PCSX2_ALIGNED16(x) x __attribute((aligned(16)))
typedef s64 sptr; #endif
#else
typedef u32 uptr; #define PCSX2_ALIGNED16_DECL(x) x
typedef s32 sptr;
#endif #ifndef __forceinline
#define __forceinline inline
typedef struct { #endif
int size;
s8 *data; #endif // _MSC_VER
} freezeData;
#if defined(__x86_64__)
/* common defines */ typedef u64 uptr;
#ifndef C_ASSERT typedef s64 sptr;
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] #else
#endif typedef u32 uptr;
typedef s32 sptr;
#endif /* __PS2ETYPES_H__ */ #endif
typedef struct {
int size;
s8 *data;
} freezeData;
/* common defines */
#ifndef C_ASSERT
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
#endif
#endif /* __PS2ETYPES_H__ */

View File

@@ -438,6 +438,8 @@ u32 CALLBACK USBread32(u32 addr);
void CALLBACK USBwrite8(u32 addr, u8 value); void CALLBACK USBwrite8(u32 addr, u8 value);
void CALLBACK USBwrite16(u32 addr, u16 value); void CALLBACK USBwrite16(u32 addr, u16 value);
void CALLBACK USBwrite32(u32 addr, u32 value); void CALLBACK USBwrite32(u32 addr, u32 value);
void CALLBACK USBasync(u32 cycles);
// cycles = IOP cycles before calling callback, // cycles = IOP cycles before calling callback,
// if callback returns 1 the irq is triggered, else not // if callback returns 1 the irq is triggered, else not
void CALLBACK USBirqCallback(USBcallback callback); void CALLBACK USBirqCallback(USBcallback callback);
@@ -636,6 +638,9 @@ typedef u32 (CALLBACK* _USBread32)(u32 mem);
typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value); typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value);
typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value); typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value);
typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value); typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value);
typedef void (CALLBACK* _USBasync)(u32 cycles);
typedef void (CALLBACK* _USBirqCallback)(USBcallback callback); typedef void (CALLBACK* _USBirqCallback)(USBcallback callback);
typedef USBhandler (CALLBACK* _USBirqHandler)(void); typedef USBhandler (CALLBACK* _USBirqHandler)(void);
typedef void (CALLBACK* _USBsetRAM)(void *mem); typedef void (CALLBACK* _USBsetRAM)(void *mem);
@@ -821,6 +826,8 @@ _USBread32 USBread32;
_USBwrite8 USBwrite8; _USBwrite8 USBwrite8;
_USBwrite16 USBwrite16; _USBwrite16 USBwrite16;
_USBwrite32 USBwrite32; _USBwrite32 USBwrite32;
_USBasync USBasync;
_USBirqCallback USBirqCallback; _USBirqCallback USBirqCallback;
_USBirqHandler USBirqHandler; _USBirqHandler USBirqHandler;
_USBsetRAM USBsetRAM; _USBsetRAM USBsetRAM;

View File

@@ -1,88 +1,88 @@
#ifndef __PS2ETYPES_H__ #ifndef __PS2ETYPES_H__
#define __PS2ETYPES_H__ #define __PS2ETYPES_H__
#if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case #if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case
#define __LINUX__ #define __LINUX__
#endif #endif
#ifdef __CYGWIN__ #ifdef __CYGWIN__
#define _WIN32 #define __LINUX__
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
#include <windows.h> #include <windows.h>
#endif #endif
#ifndef ARRAYSIZE #ifndef ARRAYSIZE
#define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
#endif #endif
// Basic types // Basic types
#if defined(_MSC_VER) #if defined(_MSC_VER)
typedef __int8 s8; typedef __int8 s8;
typedef __int16 s16; typedef __int16 s16;
typedef __int32 s32; typedef __int32 s32;
typedef __int64 s64; typedef __int64 s64;
typedef unsigned __int8 u8; typedef unsigned __int8 u8;
typedef unsigned __int16 u16; typedef unsigned __int16 u16;
typedef unsigned __int32 u32; typedef unsigned __int32 u32;
typedef unsigned __int64 u64; typedef unsigned __int64 u64;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x #define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x
#else #else
typedef char s8; typedef char s8;
typedef short s16; typedef short s16;
typedef int s32; typedef int s32;
typedef long long s64; typedef long long s64;
typedef unsigned char u8; typedef unsigned char u8;
typedef unsigned short u16; typedef unsigned short u16;
typedef unsigned int u32; typedef unsigned int u32;
typedef unsigned long long u64; typedef unsigned long long u64;
#ifdef __LINUX__ #ifdef __LINUX__
typedef union _LARGE_INTEGER typedef union _LARGE_INTEGER
{ {
long long QuadPart; long long QuadPart;
} LARGE_INTEGER; } LARGE_INTEGER;
#endif #endif
#if defined(__MINGW32__) #if defined(__MINGW32__)
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#else #else
#define PCSX2_ALIGNED16(x) x __attribute((aligned(16))) #define PCSX2_ALIGNED16(x) x __attribute((aligned(16)))
#endif #endif
#define PCSX2_ALIGNED16_DECL(x) x #define PCSX2_ALIGNED16_DECL(x) x
#ifndef __forceinline #ifndef __forceinline
#define __forceinline inline #define __forceinline inline
#endif #endif
#endif // _MSC_VER #endif // _MSC_VER
#if defined(__x86_64__) #if defined(__x86_64__)
typedef u64 uptr; typedef u64 uptr;
typedef s64 sptr; typedef s64 sptr;
#else #else
typedef u32 uptr; typedef u32 uptr;
typedef s32 sptr; typedef s32 sptr;
#endif #endif
typedef struct { typedef struct {
int size; int size;
s8 *data; s8 *data;
} freezeData; } freezeData;
/* common defines */ /* common defines */
#ifndef C_ASSERT #ifndef C_ASSERT
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
#endif #endif
#endif /* __PS2ETYPES_H__ */ #endif /* __PS2ETYPES_H__ */

View File

@@ -207,54 +207,44 @@ LRESULT WINAPI PADwndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
event.key = wParam; event.key = wParam;
break; break;
case WM_LBUTTONDBLCLK:
lanalog[0].button = 1;
lanalog[1].button = 1;
break;
case WM_LBUTTONDOWN: case WM_LBUTTONDOWN:
lbutton = true; lbutton = true;
break; break;
case WM_LBUTTONUP: case WM_LBUTTONUP:
lanalog[0].x = 0x80; g_lanalog[0].x = 0x80;
lanalog[0].y = 0x80; g_lanalog[0].y = 0x80;
lanalog[1].x = 0x80; g_lanalog[1].x = 0x80;
lanalog[1].y = 0x80; g_lanalog[1].y = 0x80;
lbutton = false; lbutton = false;
break; break;
case WM_RBUTTONDBLCLK:
ranalog[0].button = 1;
ranalog[1].button = 1;
break;
case WM_RBUTTONDOWN: case WM_RBUTTONDOWN:
rbutton = true; rbutton = true;
break; break;
case WM_RBUTTONUP: case WM_RBUTTONUP:
ranalog[0].x = 0x80; g_ranalog[0].x = 0x80;
ranalog[0].y = 0x80; g_ranalog[0].y = 0x80;
ranalog[1].x = 0x80; g_ranalog[1].x = 0x80;
ranalog[1].y = 0x80; g_ranalog[1].y = 0x80;
rbutton = false; rbutton = false;
break; break;
case WM_MOUSEMOVE: case WM_MOUSEMOVE:
if(lbutton) if(lbutton)
{ {
lanalog[0].x = LOWORD(lParam) & 254; g_lanalog[0].x = LOWORD(lParam) & 254;
lanalog[0].y = HIWORD(lParam) & 254; g_lanalog[0].y = HIWORD(lParam) & 254;
lanalog[1].x = LOWORD(lParam) & 254; g_lanalog[1].x = LOWORD(lParam) & 254;
lanalog[1].y = HIWORD(lParam) & 254; g_lanalog[1].y = HIWORD(lParam) & 254;
} }
if(rbutton) if(rbutton)
{ {
ranalog[0].x = LOWORD(lParam) & 254; g_ranalog[0].x = LOWORD(lParam) & 254;
ranalog[0].y = HIWORD(lParam) & 254; g_ranalog[0].y = HIWORD(lParam) & 254;
ranalog[1].x = LOWORD(lParam) & 254; g_ranalog[1].x = LOWORD(lParam) & 254;
ranalog[1].y = HIWORD(lParam) & 254; g_ranalog[1].y = HIWORD(lParam) & 254;
} }
break; break;

View File

@@ -438,6 +438,8 @@ u32 CALLBACK USBread32(u32 addr);
void CALLBACK USBwrite8(u32 addr, u8 value); void CALLBACK USBwrite8(u32 addr, u8 value);
void CALLBACK USBwrite16(u32 addr, u16 value); void CALLBACK USBwrite16(u32 addr, u16 value);
void CALLBACK USBwrite32(u32 addr, u32 value); void CALLBACK USBwrite32(u32 addr, u32 value);
void CALLBACK USBasync(u32 cycles);
// cycles = IOP cycles before calling callback, // cycles = IOP cycles before calling callback,
// if callback returns 1 the irq is triggered, else not // if callback returns 1 the irq is triggered, else not
void CALLBACK USBirqCallback(USBcallback callback); void CALLBACK USBirqCallback(USBcallback callback);
@@ -636,6 +638,9 @@ typedef u32 (CALLBACK* _USBread32)(u32 mem);
typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value); typedef void (CALLBACK* _USBwrite8)(u32 mem, u8 value);
typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value); typedef void (CALLBACK* _USBwrite16)(u32 mem, u16 value);
typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value); typedef void (CALLBACK* _USBwrite32)(u32 mem, u32 value);
typedef void (CALLBACK* _USBasync)(u32 cycles);
typedef void (CALLBACK* _USBirqCallback)(USBcallback callback); typedef void (CALLBACK* _USBirqCallback)(USBcallback callback);
typedef USBhandler (CALLBACK* _USBirqHandler)(void); typedef USBhandler (CALLBACK* _USBirqHandler)(void);
typedef void (CALLBACK* _USBsetRAM)(void *mem); typedef void (CALLBACK* _USBsetRAM)(void *mem);
@@ -821,6 +826,8 @@ _USBread32 USBread32;
_USBwrite8 USBwrite8; _USBwrite8 USBwrite8;
_USBwrite16 USBwrite16; _USBwrite16 USBwrite16;
_USBwrite32 USBwrite32; _USBwrite32 USBwrite32;
_USBasync USBasync;
_USBirqCallback USBirqCallback; _USBirqCallback USBirqCallback;
_USBirqHandler USBirqHandler; _USBirqHandler USBirqHandler;
_USBsetRAM USBsetRAM; _USBsetRAM USBsetRAM;

View File

@@ -1,76 +1,88 @@
#ifndef __PS2ETYPES_H__ #ifndef __PS2ETYPES_H__
#define __PS2ETYPES_H__ #define __PS2ETYPES_H__
#ifndef ARRAYSIZE #if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case
#define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0])) #define __LINUX__
#endif #endif
#if defined (__linux__) && !defined(__LINUX__) // some distributions are lower case #ifdef __CYGWIN__
#define __LINUX__ #define __LINUX__
#endif #endif
// Basic types #ifdef _WIN32
#if defined(_MSC_VER) #include <windows.h>
#endif
typedef __int8 s8;
typedef __int16 s16; #ifndef ARRAYSIZE
typedef __int32 s32; #define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
typedef __int64 s64; #endif
typedef unsigned __int8 u8;
typedef unsigned __int16 u16; // Basic types
typedef unsigned __int32 u32; #if defined(_MSC_VER)
typedef unsigned __int64 u64;
typedef __int8 s8;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x typedef __int16 s16;
typedef __int32 s32;
#else typedef __int64 s64;
typedef char s8; typedef unsigned __int8 u8;
typedef short s16; typedef unsigned __int16 u16;
typedef int s32; typedef unsigned __int32 u32;
typedef long long s64; typedef unsigned __int64 u64;
typedef unsigned char u8; #define PCSX2_ALIGNED16(x) __declspec(align(16)) x
typedef unsigned short u16; #define PCSX2_ALIGNED16_DECL(x) __declspec(align(16)) x
typedef unsigned int u32;
typedef unsigned long long u64; #else
#ifdef __LINUX__ typedef char s8;
typedef union _LARGE_INTEGER typedef short s16;
{ typedef int s32;
long long QuadPart; typedef long long s64;
} LARGE_INTEGER;
#endif typedef unsigned char u8;
typedef unsigned short u16;
#if defined(__MINGW32__) typedef unsigned int u32;
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x typedef unsigned long long u64;
#else
#define PCSX2_ALIGNED16(x) x __attribute((aligned(16))) #ifdef __LINUX__
#endif typedef union _LARGE_INTEGER
{
#ifndef __forceinline long long QuadPart;
#define __forceinline inline } LARGE_INTEGER;
#endif #endif
#endif // _MSC_VER #if defined(__MINGW32__)
#define PCSX2_ALIGNED16(x) __declspec(align(16)) x
#if defined(__x86_64__) #else
typedef u64 uptr; #define PCSX2_ALIGNED16(x) x __attribute((aligned(16)))
typedef s64 sptr; #endif
#else
typedef u32 uptr; #define PCSX2_ALIGNED16_DECL(x) x
typedef s32 sptr;
#endif #ifndef __forceinline
#define __forceinline inline
typedef struct { #endif
int size;
s8 *data; #endif // _MSC_VER
} freezeData;
#if defined(__x86_64__)
/* common defines */ typedef u64 uptr;
#ifndef C_ASSERT typedef s64 sptr;
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] #else
#endif typedef u32 uptr;
typedef s32 sptr;
#endif /* __PS2ETYPES_H__ */ #endif
typedef struct {
int size;
s8 *data;
} freezeData;
/* common defines */
#ifndef C_ASSERT
#define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
#endif
#endif /* __PS2ETYPES_H__ */