Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions include/usr/local/sce/ee/lib/eeregs.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef _EEREGS_H_
#define _EEREGS_H_

#define D2_CHCR ((volatile unsigned int *)(0x1000a000))
#define DGET_D2_CHCR() (*D2_CHCR)
#define DPUT_D2_CHCR(x) (*D2_CHCR = (x))
#define D2_QWC ((volatile unsigned int *)(0x1000a020))
#define DPUT_D2_QWC(x) (*D2_QWC = (x))
#define D2_TADR ((volatile unsigned int *)(0x1000a030))
#define DPUT_D2_TADR(x) (*D2_TADR = (x))
#define D_STAT ((volatile unsigned int *)(0x1000e010))
#define DPUT_D_STAT(x) (*D_STAT = (x))


#endif /* _EEREGS_H_ */
15 changes: 15 additions & 0 deletions include/usr/local/sega/px/src/pxtex2.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
extern unsigned int pxgPath3TransAddr; // size: 0x4, address: 0x6D1F38
extern unsigned int pxgPath3TransInvokeCount; // size: 0x4, address: 0x6D1F3C

enum PXE_ERR {
PXE_ERR_OK = 0,
PXE_ERR_INVALIDARG = -1,
PXE_ERR_BUSY = -2,
PXE_ERR_NOTREADY = -10,
PXE_ERR_NOTVB = -50,
PXE_ERR_INVALIDVBVERSION = -51,
PXE_ERR_TOOMANYVERTICES = -52,
PXE_ERR_NODATA = -53,
PXE_ERR_NOTENOUGHBUFFER = -54,
PXE_ERR_INCORRECTDBINDEX = -55,
};
18 changes: 18 additions & 0 deletions src/usr/local/sega/px/src/pxtex2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include "usr/local/sce/ee/lib/eeregs.h"
#include "usr/local/sega/px/src/pxtex2.h"

unsigned int pxgPath3TransAddr; // size: 0x4, address: 0x6D1F38
unsigned int pxgPath3TransInvokeCount; // size: 0x4, address: 0x6D1F3C


enum PXE_ERR PXStartPath3Trans(void * tagAddr) {
while (DGET_D2_CHCR() & 0x100);
DPUT_D_STAT(4);
DPUT_D2_QWC(0);
DPUT_D2_TADR((unsigned int)tagAddr & 0x0FFFFFFF);
asm("sync;");
DPUT_D2_CHCR(0x185);
pxgPath3TransAddr = (unsigned int)tagAddr & 0x0FFFFFFF;
pxgPath3TransInvokeCount++;
return PXE_ERR_OK;
}
Loading