aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpu_neon/peops_if.c
diff options
context:
space:
mode:
authornotaz2012-01-19 01:33:12 +0200
committernotaz2012-01-19 01:38:45 +0200
commit62d7fa9555924ab8e152b546711d27add640b102 (patch)
tree28c231a8f642d28d357bbdce9edb2b79e199764e /plugins/gpu_neon/peops_if.c
parent5d834c089ea695dba7643cba8686ce2ac06d8db4 (diff)
downloadpcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.tar.gz
pcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.tar.bz2
pcsx_rearmed-62d7fa9555924ab8e152b546711d27add640b102.zip
refactor gpu plugins and Makefiles
name common gpu code gpulib, reduce amount of copy-paste in plugin Makefiles
Diffstat (limited to 'plugins/gpu_neon/peops_if.c')
-rw-r--r--plugins/gpu_neon/peops_if.c398
1 files changed, 0 insertions, 398 deletions
diff --git a/plugins/gpu_neon/peops_if.c b/plugins/gpu_neon/peops_if.c
deleted file mode 100644
index 191fce1..0000000
--- a/plugins/gpu_neon/peops_if.c
+++ /dev/null
@@ -1,398 +0,0 @@
-/***************************************************************************
- copyright : (C) 2001 by Pete Bernert, 2011 notaz
-
- ***************************************************************************/
-/***************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. See also the license.txt file for *
- * additional informations. *
- * *
- ***************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "gpu.h"
-
-#define u32 uint32_t
-
-#define INFO_TW 0
-#define INFO_DRAWSTART 1
-#define INFO_DRAWEND 2
-#define INFO_DRAWOFF 3
-
-#define SHADETEXBIT(x) ((x>>24) & 0x1)
-#define SEMITRANSBIT(x) ((x>>25) & 0x1)
-#define PSXRGB(r,g,b) ((g<<10)|(b<<5)|r)
-
-#define DATAREGISTERMODES unsigned short
-
-#define DR_NORMAL 0
-#define DR_VRAMTRANSFER 1
-
-#define GPUSTATUS_READYFORVRAM 0x08000000
-
-// byteswappings
-
-#define SWAP16(x) ({ uint16_t y=(x); (((y)>>8 & 0xff) | ((y)<<8 & 0xff00)); })
-#define SWAP32(x) ({ uint32_t y=(x); (((y)>>24 & 0xfful) | ((y)>>8 & 0xff00ul) | ((y)<<8 & 0xff0000ul) | ((y)<<24 & 0xff000000ul)); })
-
-#ifdef __BIG_ENDIAN__
-
-// big endian config
-#define HOST2LE32(x) SWAP32(x)
-#define HOST2BE32(x) (x)
-#define LE2HOST32(x) SWAP32(x)
-#define BE2HOST32(x) (x)
-
-#define HOST2LE16(x) SWAP16(x)
-#define HOST2BE16(x) (x)
-#define LE2HOST16(x) SWAP16(x)
-#define BE2HOST16(x) (x)
-
-#else
-
-// little endian config
-#define HOST2LE32(x) (x)
-#define HOST2BE32(x) SWAP32(x)
-#define LE2HOST32(x) (x)
-#define BE2HOST32(x) SWAP32(x)
-
-#define HOST2LE16(x) (x)
-#define HOST2BE16(x) SWAP16(x)
-#define LE2HOST16(x) (x)
-#define BE2HOST16(x) SWAP16(x)
-
-#endif
-
-#define GETLEs16(X) ((int16_t)GETLE16((uint16_t *)X))
-#define GETLEs32(X) ((int16_t)GETLE32((uint16_t *)X))
-
-#define GETLE16(X) LE2HOST16(*(uint16_t *)X)
-#define GETLE32_(X) LE2HOST32(*(uint32_t *)X)
-#define GETLE16D(X) ({uint32_t val = GETLE32(X); (val<<16 | val >> 16);})
-#define PUTLE16(X, Y) do{*((uint16_t *)X)=HOST2LE16((uint16_t)Y);}while(0)
-#define PUTLE32_(X, Y) do{*((uint32_t *)X)=HOST2LE16((uint32_t)Y);}while(0)
-#ifdef __arm__
-#define GETLE32(X) (*(uint16_t *)(X)|(((uint16_t *)(X))[1]<<16))
-#define PUTLE32(X, Y) do{uint16_t *p_=(uint16_t *)(X);uint32_t y_=Y;p_[0]=y_;p_[1]=y_>>16;}while(0)
-#else
-#define GETLE32 GETLE32_
-#define PUTLE32 PUTLE32_
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-
-typedef struct VRAMLOADTTAG
-{
- short x;
- short y;
- short Width;
- short Height;
- short RowsRemaining;
- short ColsRemaining;
- unsigned short *ImagePtr;
-} VRAMLoad_t;
-
-/////////////////////////////////////////////////////////////////////////////
-
-typedef struct PSXPOINTTAG
-{
- int32_t x;
- int32_t y;
-} PSXPoint_t;
-
-typedef struct PSXSPOINTTAG
-{
- short x;
- short y;
-} PSXSPoint_t;
-
-typedef struct PSXRECTTAG
-{
- short x0;
- short x1;
- short y0;
- short y1;
-} PSXRect_t;
-
-// linux defines for some windows stuff
-
-#define FALSE 0
-#define TRUE 1
-#define BOOL unsigned short
-#define LOWORD(l) ((unsigned short)(l))
-#define HIWORD(l) ((unsigned short)(((uint32_t)(l) >> 16) & 0xFFFF))
-#define max(a,b) (((a) > (b)) ? (a) : (b))
-#define min(a,b) (((a) < (b)) ? (a) : (b))
-#define DWORD uint32_t
-#ifndef __int64
-#define __int64 long long int
-#endif
-
-typedef struct RECTTAG
-{
- int left;
- int top;
- int right;
- int bottom;
-}RECT;
-
-/////////////////////////////////////////////////////////////////////////////
-
-typedef struct TWINTAG
-{
- PSXRect_t Position;
- int xmask, ymask;
-} TWin_t;
-
-/////////////////////////////////////////////////////////////////////////////
-
-typedef struct PSXDISPLAYTAG
-{
- PSXPoint_t DisplayModeNew;
- PSXPoint_t DisplayMode;
- PSXPoint_t DisplayPosition;
- PSXPoint_t DisplayEnd;
-
- int32_t Double;
- int32_t Height;
- int32_t PAL;
- int32_t InterlacedNew;
- int32_t Interlaced;
- int32_t RGB24New;
- int32_t RGB24;
- PSXSPoint_t DrawOffset;
- int32_t Disabled;
- PSXRect_t Range;
-
-} PSXDisplay_t;
-
-/////////////////////////////////////////////////////////////////////////////
-
-// draw.c
-
-extern int32_t GlobalTextAddrX,GlobalTextAddrY,GlobalTextTP;
-extern int32_t GlobalTextABR,GlobalTextPAGE;
-extern short ly0,lx0,ly1,lx1,ly2,lx2,ly3,lx3;
-extern long lLowerpart;
-extern BOOL bCheckMask;
-extern unsigned short sSetMask;
-extern unsigned long lSetMask;
-extern short g_m1;
-extern short g_m2;
-extern short g_m3;
-extern short DrawSemiTrans;
-
-// prim.c
-
-extern BOOL bUsingTWin;
-extern TWin_t TWin;
-extern void (*primTableJ[256])(unsigned char *);
-extern void (*primTableSkip[256])(unsigned char *);
-extern unsigned short usMirror;
-extern int iDither;
-extern uint32_t dwCfgFixes;
-extern uint32_t dwActFixes;
-extern int iUseFixes;
-extern int iUseDither;
-extern BOOL bDoVSyncUpdate;
-extern int32_t drawX;
-extern int32_t drawY;
-extern int32_t drawW;
-extern int32_t drawH;
-
-// gpu.h
-
-#define OPAQUEON 10
-#define OPAQUEOFF 11
-
-#define KEY_RESETTEXSTORE 1
-#define KEY_SHOWFPS 2
-#define KEY_RESETOPAQUE 4
-#define KEY_RESETDITHER 8
-#define KEY_RESETFILTER 16
-#define KEY_RESETADVBLEND 32
-#define KEY_BADTEXTURES 128
-#define KEY_CHECKTHISOUT 256
-
-#if !defined(__BIG_ENDIAN__) || defined(__x86_64__) || defined(__i386__)
-#ifndef __LITTLE_ENDIAN__
-#define __LITTLE_ENDIAN__
-#endif
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-#define RED(x) (x & 0xff)
-#define BLUE(x) ((x>>16) & 0xff)
-#define GREEN(x) ((x>>8) & 0xff)
-#define COLOR(x) (x & 0xffffff)
-#elif defined __BIG_ENDIAN__
-#define RED(x) ((x>>24) & 0xff)
-#define BLUE(x) ((x>>8) & 0xff)
-#define GREEN(x) ((x>>16) & 0xff)
-#define COLOR(x) SWAP32(x & 0xffffff)
-#endif
-
-PSXDisplay_t PSXDisplay;
-unsigned char *psxVub;
-signed char *psxVsb;
-unsigned short *psxVuw;
-unsigned short *psxVuw_eom;
-signed short *psxVsw;
-uint32_t *psxVul;
-int32_t *psxVsl;
-
-long lGPUstatusRet;
-uint32_t lGPUInfoVals[16];
-
-VRAMLoad_t VRAMWrite;
-VRAMLoad_t VRAMRead;
-
-DATAREGISTERMODES DataWriteMode;
-DATAREGISTERMODES DataReadMode;
-
-BOOL bCheckMask = FALSE;
-unsigned short sSetMask = 0;
-unsigned long lSetMask = 0;
-long lLowerpart;
-
-#include "../dfxvideo/soft.c"
-#include "../dfxvideo/prim.c"
-
-/////////////////////////////////////////////////////////////////////////////
-
-int renderer_init(void)
-{
- psxVub=(void *)gpu.vram;
-
- psxVsb=(signed char *)psxVub; // different ways of accessing PSX VRAM
- psxVsw=(signed short *)psxVub;
- psxVsl=(int32_t *)psxVub;
- psxVuw=(unsigned short *)psxVub;
- psxVul=(uint32_t *)psxVub;
-
- psxVuw_eom=psxVuw+1024*512; // pre-calc of end of vram
-
- PSXDisplay.RGB24 = FALSE; // init some stuff
- PSXDisplay.Interlaced = FALSE;
- PSXDisplay.DrawOffset.x = 0;
- PSXDisplay.DrawOffset.y = 0;
- PSXDisplay.DisplayMode.x= 320;
- PSXDisplay.DisplayMode.y= 240;
- PSXDisplay.Disabled = FALSE;
- PSXDisplay.Range.x0=0;
- PSXDisplay.Range.x1=0;
- PSXDisplay.Double = 1;
-
- DataWriteMode = DR_NORMAL;
- lGPUstatusRet = 0x14802000;
-
- return 0;
-}
-
-extern const unsigned char cmd_lengths[256];
-
-void do_cmd_list(unsigned int *list, int list_len)
-{
- unsigned int cmd, len;
-
- unsigned int *list_end = list + list_len;
-
- for (; list < list_end; list += 1 + len)
- {
- cmd = *list >> 24;
- len = cmd_lengths[cmd];
-
- primTableJ[cmd]((void *)list);
-
- switch(cmd)
- {
- case 0x48 ... 0x4F:
- {
- u32 num_vertexes = 1;
- u32 *list_position = &(list[2]);
-
- while(1)
- {
- if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end)
- break;
-
- list_position++;
- num_vertexes++;
- }
-
- if(num_vertexes > 2)
- len += (num_vertexes - 2);
-
- break;
- }
-
- case 0x58 ... 0x5F:
- {
- u32 num_vertexes = 1;
- u32 *list_position = &(list[2]);
-
- while(1)
- {
- if((*list_position & 0xf000f000) == 0x50005000 || list_position >= list_end)
- break;
-
- list_position += 2;
- num_vertexes++;
- }
-
- if(num_vertexes > 2)
- len += (num_vertexes - 2) * 2;
-
- break;
- }
-
-#ifdef TEST
- case 0xA0: // sys -> vid
- {
- short *slist = (void *)list;
- u32 load_width = slist[4];
- u32 load_height = slist[5];
- u32 load_size = load_width * load_height;
-
- len += load_size / 2;
- break;
- }
-#endif
- }
- }
-}
-
-void renderer_sync_ecmds(uint32_t *ecmds)
-{
- cmdTexturePage((unsigned char *)&ecmds[1]);
- cmdTextureWindow((unsigned char *)&ecmds[2]);
- cmdDrawAreaStart((unsigned char *)&ecmds[3]);
- cmdDrawAreaEnd((unsigned char *)&ecmds[4]);
- cmdDrawOffset((unsigned char *)&ecmds[5]);
- cmdSTP((unsigned char *)&ecmds[6]);
-}
-
-void renderer_update_caches(int x, int y, int w, int h)
-{
-}
-
-void renderer_flush_queues(void)
-{
-}
-
-void renderer_set_interlace(int enable, int is_odd)
-{
-}
-
-#include "../../frontend/plugin_lib.h"
-
-void renderer_set_config(const struct rearmed_cbs *cbs)
-{
- iUseDither = cbs->gpu_peops.iUseDither;
- dwActFixes = cbs->gpu_peops.dwActFixes;
-}