Create Xref-Html Frames                    Remove All Frames
file:/home/jivera/wd/pcsx/Dreamcast/Plugin.c        (Tue Nov 25 22:46:14 2003 )


   1: /*  Pcsx - Pc Psx Emulator
   2:  *  Copyright (C) 1999-2002  Pcsx Team
   3:  *
   4:  *  This program is free software; you can redistribute it and/or modify
   5:  *  it under the terms of the GNU General Public License as published by
   6:  *  the Free Software Foundation; either version 2 of the License, or
   7:  *  (at your option) any later version.
   8:  *
   9:  *  This program is distributed in the hope that it will be useful,
  10:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12:  *  GNU General Public License for more details.
  13:  *
  14:  *  You should have received a copy of the GNU General Public License
  15:  *  along with this program; if not, write to the Free Software
  16:  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17:  */
  18: 
  19: #include <stdio.h>
  20: #include <stdlib.h>
  21: 
  22: #include "plugins.h"
  23: #include "Spu.h"
  24: 
  25: void RunGui();
  26: void OnFile_Exit();
  27: 
  28: extern GPUopen GPU_open;
  29: 
  30: unsigned long gpuDisp;
  31: 
  32: extern CDRplay CDR_play;
  33: extern CDRstop CDR_stop;
  34: 
  35: // extern SPUopen SPU_open;
  36: 
  37: extern PADopen PAD1_open;
  38: extern PADreadPort1 PAD1_readPort1;
  39: extern PADopen PAD2_open;
  40: extern PADreadPort2 PAD2_readPort2;
  41: 
  42: int StatesC = 0;
  43: extern char CdromLabel[256];
  44: extern int UseGui;
  45: int cdOpenCase = 0;
  46: 
  47: /*
  48: void PADhandleKey(int key) {
  49:         char Text[255];
  50:         int ret;
  51: 
  52:         switch (key) {
  53:                 case 0: break;
  54:                 case XK_F1:
  55:                         sprintf (Text, "sstates/%s.%3.3d", CdromLabel, StatesC);
  56:                         GPU_freeze(2, (GPUFreeze_t *)&StatesC);
  57:                         ret = SaveState(Text);
  58:                         sprintf (Text, "*PCSX*: %s State %d", !ret ? "Saved" : "Error Saving", StatesC+1);
  59:                         GPU_displayText(Text);
  60:                         break;
  61:                 case XK_F2:
  62:                         if (StatesC < 4) StatesC++;
  63:                         else StatesC = 0;
  64:                         GPU_freeze(2, (GPUFreeze_t *)&StatesC);
  65:                         break;
  66:                 case XK_F3:                     
  67:                         sprintf (Text, "sstates/%s.%3.3d", CdromLabel, StatesC);
  68:                         ret = LoadState(Text);
  69:                         sprintf (Text, "*PCSX*: %s State %d", !ret ? "Loaded" : "Error Loading", StatesC+1);
  70:                         GPU_displayText(Text);
  71:                         break;
  72:                 case XK_F4:
  73:                         {
  74:                         gzFile f;
  75:                         static int ShowPic;
  76: 
  77:                         if (!ShowPic) {
  78:                                 unsigned char *pMem;
  79: 
  80:                                 sprintf (Text, "sstates/%s.%3.3d", CdromLabel, StatesC);
  81:                                 f = gzopen(Text, "rb");
  82:                                 if (f == NULL) break;
  83: 
  84:                                 gzseek(f, 32, SEEK_SET); // skip header
  85: 
  86:                                 pMem = (unsigned char *) malloc(128*96*3);
  87:                                 gzread(f, pMem, 128*96*3);
  88:                                 gzclose(f);
  89:                                 GPU_freeze(2, (GPUFreeze_t *)&StatesC);
  90:                                 GPU_showScreenPic(pMem);
  91:                                 free(pMem);
  92:                                 ShowPic = 1;
  93:                         }
  94:                         else { GPU_showScreenPic(NULL); ShowPic = 0; }
  95:                         }
  96:                         break;
  97:                 case XK_F5:
  98:                         Config.Sio ^= 0x1;
  99:                         sprintf (Text, "*PCSX*: Sio Irq %sAlways Enabled", Config.Sio ? "" : "Not ");
 100:                         GPU_displayText(Text);
 101:                         break;
 102:                 case XK_F6:
 103:                         Config.Mdec ^= 0x1;
 104:                         sprintf (Text, "*PCSX*: Black&White Mdecs Only %sabled", Config.Mdec ? "En" : "Dis");
 105:                         GPU_displayText(Text);
 106:                         break;
 107:                 case XK_F7:
 108:                         Config.Xa ^= 0x1;
 109:                         sprintf (Text, "*PCSX*: Xa %sabled", !Config.Xa ? "En" : "Dis");
 110:                         GPU_displayText(Text);
 111:                         break;
 112:                 case XK_F8:
 113:                         GPU_makeSnapshot();
 114:                         break;
 115:                 case XK_F9:
 116:                         cdOpenCase = 1;
 117:                         break;
 118:                 case XK_F10:
 119:                         cdOpenCase = 0;
 120:                         break;
 121:                 case XK_Escape:
 122:                         ClosePlugins();
 123:                         if (!UseGui) OnFile_Exit();
 124:                         RunGui();
 125:                         break;
 126:                 default: GPU_keypressed(key);
 127:         }
 128: }
 129: */
 130: 
 131: long PAD1__open(void) {
 132:         return PAD1_open(&gpuDisp);
 133: }
 134: 
 135: long PAD2__open(void) {
 136:         return PAD2_open(&gpuDisp);
 137: }
 138: 
 139: void SignalExit(int sig) {
 140:         ClosePlugins();
 141: //      OnFile_Exit();
 142: }
 143: 
 144: void SPUirq(void);
 145: 
 146: void OpenPlugins() {
 147:         int ret;
 148: 
 149:     SysPrintf("start OpenPlugins()\r\n");
 150: 
 151:         SysPrintf("CDR_open()\r\n");
 152:         ret = CDR_open();
 153:         if (ret != 0) { SysMessage ("Error Opening CDR Plugin\n"); exit(1); }
 154:         SysPrintf("SPU_open()\r\n");
 155:         ret = SPU_open();
 156:         if (ret != 0) { SysMessage ("Error Opening SPU Plugin\n"); exit(1); }
 157:         SPU_registerCallback(SPUirq);
 158:         SysPrintf("GPU_open()\r\n");
 159:         ret = GPU_open(&gpuDisp, "P©SX", NULL);
 160:         if (ret != 0) { SysMessage ("Error Opening GPU Plugin\n"); exit(1); }
 161:         SysPrintf("PAD1_open()\r\n");
 162:         ret = PAD1_open(&gpuDisp);
 163:         if (ret != 0) { SysMessage ("Error Opening PAD1 Plugin\n"); exit(1); }
 164:         SysPrintf("PAD2_open()\r\n");
 165:         ret = PAD2_open(&gpuDisp);
 166:         if (ret != 0) { SysMessage ("Error Opening PAD2 Plugin\n"); exit(1); }
 167:         SysPrintf("end OpenPlugins()\r\n");
 168: }
 169: 
 170: void ClosePlugins() {
 171:         int ret;
 172: 
 173:         ret = CDR_close();
 174:         if (ret != 0) { SysMessage ("Error Closing CDR Plugin\n"); exit(1); }
 175:         ret = SPU_close();
 176:         if (ret != 0) { SysMessage ("Error Closing SPU Plugin\n"); exit(1); }
 177:         ret = PAD1_close();
 178:         if (ret != 0) { SysMessage ("Error Closing PAD1 Plugin\n"); exit(1); }
 179:         ret = PAD2_close();
 180:         if (ret != 0) { SysMessage ("Error Closing PAD2 Plugin\n"); exit(1); }
 181:         ret = GPU_close();
 182:         if (ret != 0) { SysMessage ("Error Closing GPU Plugin\n"); exit(1); }
 183: }
 184: 
 185: void ResetPlugins() {
 186:         int ret;
 187: 
 188:         CDR_shutdown();
 189:         GPU_shutdown();
 190:         SPU_shutdown();
 191:         PAD1_shutdown();
 192:         PAD2_shutdown();
 193: 
 194:         ret = CDR_init();
 195:         if (ret != 0) { SysMessage ("CDRinit error : %d\n",ret); exit(1); }
 196:         ret = GPU_init();
 197:         if (ret != 0) { SysMessage ("GPUinit error : %d\n",ret); exit(1); }
 198:         ret = SPU_init();
 199:         if (ret != 0) { SysMessage ("SPUinit error : %d\n",ret); exit(1); }
 200:         ret = PAD1_init(1);
 201:         if (ret != 0) { SysMessage ("PAD1init error : %d\n",ret); exit(1); }
 202:         ret = PAD2_init(2);
 203:         if (ret != 0) { SysMessage ("PAD2init error : %d\n",ret); exit(1); }
 204: }
 205: /* arch-tag: Matthew Dempsky Wed Oct 15 10:34:21 CST 2003 (Dreamcast/Plugin.c)
 206:  */
 207: 








































Html form generated by Xrefactory version 1.6.4 on Fri Dec 12 20:52:56 2003
Trial version.