ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
osd.c
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Licenced under Academic Free License version 2.0
7 # Review ps2sdk README & LICENSE files for further details.
8 */
9 
10 #include <tamtypes.h>
11 #include <osd_config.h>
12 
13 #include "osd.h"
14 
16 
17 void InitSystemConfig(SystemConfiguration_t *SysConf, int SysConfLen){
18  unsigned int SysConfRegAddr, i;
19  vu8 *ptr;
20 
21  if((SysConfRegAddr=*(vu32*)0xbc0003c0)!=0){
22  ptr=(vu8 *)(0xbc000000+SysConfRegAddr+0xF);
23 
24  for(i=0; i<SysConfLen; i++) SysConf->data[i]=ptr[i];
25  }
26 
27  if((SysConf->EEGS>>6&7)==0){
28  SysConf->EEGS&=0xFFFF02FFFFFFFFFF;
29  }
30 }
31 
33 
40  OSDConfig.version=config->version;
41  OSDConfig.language=config->language;
43 }
44 
51  config->version=OSDConfig.version;
52  config->language=OSDConfig.language;
54 }
55 
56 static u8 OSDConfig2[128];
57 
58 void SetOsdConfigParam2(void* config, int size, int offset){
59  unsigned int AmountToWrite, WriteEnd, i;
60  u8 *ptr;
61 
62  ptr=config;
63  if((WriteEnd=offset+size)>=0x81){
64  if(offset<0x80){
65  AmountToWrite=0x80-offset;
66  }
67  else{
68  offset=0x80;
69  AmountToWrite=0;
70  }
71 
72  WriteEnd=AmountToWrite+offset;
73  }
74 
75  for(i=0; offset<WriteEnd; i++,offset++){
76  OSDConfig2[offset]=ptr[i];
77  }
78 }
79 
80 int GetOsdConfigParam2(void* config, int size, int offset){
81  unsigned int AmountToRead, ReadEnd, i;
82  u8 *ptr;
83 
84  ptr=config;
85  if((ReadEnd=offset+size)>=0x81){
86  if(offset<0x80){
87  AmountToRead=0x80-offset;
88  }
89  else{
90  offset=0x80;
91  AmountToRead=0;
92  }
93  }
94  else AmountToRead=size;
95 
96  ReadEnd=AmountToRead+offset;
97  for(i=0; offset<ReadEnd; i++,offset++){
98  ptr[i]=OSDConfig2[offset];
99  }
100 
101  return(((SystemConfiguration.EEGS>>6&7)!=0)?(SystemConfiguration.EEGS>>44&0xF):0);
102 }
103 
static ConfigParam OSDConfig
Definition: osd.c:32
static u8 OSDConfig2[128]
Definition: osd.c:56
int GetOsdConfigParam2(void *config, int size, int offset)
Definition: osd.c:80
void SetOsdConfigParam2(void *config, int size, int offset)
Definition: osd.c:58
void SetOsdConfigParam(ConfigParam *config)
Definition: osd.c:34
void GetOsdConfigParam(ConfigParam *config)
Definition: osd.c:45
void InitSystemConfig(SystemConfiguration_t *SysConf, int SysConfLen)
Definition: osd.c:17
SystemConfiguration_t SystemConfiguration
Definition: osdsrc.c:29
u32 spdifMode
Definition: osd_config.h:83
u32 screenType
Definition: osd_config.h:85
u32 language
Definition: osd_config.h:95
u32 ps1drvConfig
Definition: osd_config.h:91
u32 timezoneOffset
Definition: osd_config.h:97
u32 videoOutput
Definition: osd_config.h:87
u32 japLanguage
Definition: osd_config.h:89
volatile u8 vu8
Definition: tamtypes.h:26
volatile u32 vu32
Definition: tamtypes.h:38
unsigned char u8
Definition: tamtypes.h:23