Wifi: add proper resetting & deiniting, remove the useless 'wifimac_t *wifi'
parameter from all functions.
This commit is contained in:
parent
c2291bfee6
commit
7532a5d66e
|
@ -2986,7 +2986,8 @@ void FASTCALL _MMU_ARM7_write08(u32 adr, u8 val)
|
|||
if ((adr & 0xFF800000) == 0x04800000)
|
||||
{
|
||||
/* is wifi hardware, dont intermix with regular hardware registers */
|
||||
/* FIXME handle 8 bit writes */
|
||||
// 8-bit writes to wifi I/O and RAM are ignored
|
||||
// Reference: http://nocash.emubase.de/gbatek.htm#dswifiiomap
|
||||
return ;
|
||||
}
|
||||
#endif
|
||||
|
@ -3032,7 +3033,7 @@ void FASTCALL _MMU_ARM7_write16(u32 adr, u16 val)
|
|||
/* wifi mac access */
|
||||
if ((adr>=0x04800000)&&(adr<0x05000000))
|
||||
{
|
||||
WIFI_write16(&wifiMac,adr,val);
|
||||
WIFI_write16(adr,val);
|
||||
T1WriteWord(MMU.MMU_MEM[ARMCPU_ARM7][0x48], adr&MMU.MMU_MASK[ARMCPU_ARM7][0x48], val);
|
||||
return;
|
||||
}
|
||||
|
@ -3347,8 +3348,8 @@ void FASTCALL _MMU_ARM7_write32(u32 adr, u32 val)
|
|||
{
|
||||
// access to non regular hw registers
|
||||
// return to not overwrite valid data
|
||||
WIFI_write16(&wifiMac, adr, val & 0xFFFF);
|
||||
WIFI_write16(&wifiMac, adr+2, val >> 16);
|
||||
WIFI_write16(adr, val & 0xFFFF);
|
||||
WIFI_write16(adr+2, val >> 16);
|
||||
T1WriteLong(MMU.MMU_MEM[ARMCPU_ARM7][0x48], adr&MMU.MMU_MASK[ARMCPU_ARM7][0x48], val);
|
||||
return;
|
||||
}
|
||||
|
@ -3477,9 +3478,9 @@ u8 FASTCALL _MMU_ARM7_read08(u32 adr)
|
|||
if ((adr>=0x04800000)&&(adr<0x05000000))
|
||||
{
|
||||
if (adr & 1)
|
||||
return (WIFI_read16(&wifiMac,adr-1) >> 8) & 0xFF;
|
||||
return (WIFI_read16(adr-1) >> 8) & 0xFF;
|
||||
else
|
||||
return WIFI_read16(&wifiMac,adr) & 0xFF;
|
||||
return WIFI_read16(adr) & 0xFF;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -3502,7 +3503,7 @@ u16 FASTCALL _MMU_ARM7_read16(u32 adr)
|
|||
#ifdef EXPERIMENTAL_WIFI
|
||||
/* wifi mac access */
|
||||
if ((adr>=0x04800000)&&(adr<0x05000000))
|
||||
return WIFI_read16(&wifiMac,adr) ;
|
||||
return WIFI_read16(adr) ;
|
||||
#endif
|
||||
|
||||
if ( (adr >= 0x08000000) && (adr < 0x0A010000) )
|
||||
|
@ -3568,7 +3569,7 @@ u32 FASTCALL _MMU_ARM7_read32(u32 adr)
|
|||
#ifdef EXPERIMENTAL_WIFI
|
||||
/* wifi mac access */
|
||||
if ((adr>=0x04800000)&&(adr<0x05000000))
|
||||
return (WIFI_read16(&wifiMac,adr) | (WIFI_read16(&wifiMac,adr+2) << 16));
|
||||
return (WIFI_read16(adr) | (WIFI_read16(adr+2) << 16));
|
||||
#endif
|
||||
|
||||
if ( (adr >= 0x08000000) && (adr < 0x0A010000) )
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
PathInfo path;
|
||||
|
||||
#if 1
|
||||
#if 0
|
||||
#ifndef PUBLIC_RELEASE
|
||||
#undef EXPERIMENTAL_WIFI
|
||||
#endif
|
||||
|
@ -532,8 +532,7 @@ int NDS_Init( void) {
|
|||
return -1;
|
||||
|
||||
#ifdef EXPERIMENTAL_WIFI
|
||||
WIFI_Init(&wifiMac) ;
|
||||
WIFI_SoftAP_Init(&wifiMac);
|
||||
WIFI_Init() ;
|
||||
#endif
|
||||
|
||||
nds.FW_ARM9BootCode = NULL;
|
||||
|
@ -562,7 +561,7 @@ void NDS_DeInit(void) {
|
|||
gpu3D->NDS_3D_Close();
|
||||
|
||||
#ifdef EXPERIMENTAL_WIFI
|
||||
WIFI_SoftAP_Shutdown(&wifiMac);
|
||||
WIFI_DeInit();
|
||||
#endif
|
||||
cheatsSearchClose();
|
||||
}
|
||||
|
@ -2053,13 +2052,14 @@ void Sequencer::execHardware()
|
|||
}
|
||||
}
|
||||
|
||||
#ifndef PUBLIC_RELEASE
|
||||
#ifdef EXPERIMENTAL_WIFI
|
||||
if(wifi.isTriggered())
|
||||
{
|
||||
WIFI_usTrigger(&wifiMac);
|
||||
WIFI_SoftAP_usTrigger(&wifiMac);
|
||||
WIFI_usTrigger();
|
||||
wifi.timestamp += kWifiCycles;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if(divider.isTriggered()) divider.exec();
|
||||
|
@ -2491,10 +2491,7 @@ void NDS_Reset()
|
|||
SPU_Reset();
|
||||
|
||||
#ifdef EXPERIMENTAL_WIFI
|
||||
WIFI_Init(&wifiMac);
|
||||
|
||||
WIFI_SoftAP_Shutdown(&wifiMac);
|
||||
WIFI_SoftAP_Init(&wifiMac);
|
||||
WIFI_Reset();
|
||||
#endif
|
||||
|
||||
memcpy(FW_Mac, (MMU.fw.data + 0x36), 6);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -486,24 +486,26 @@ extern bool wifi_netEnabled;
|
|||
|
||||
extern wifimac_t wifiMac;
|
||||
|
||||
void WIFI_Init(wifimac_t *wifi);
|
||||
bool WIFI_Init();
|
||||
void WIFI_DeInit();
|
||||
void WIFI_Reset();
|
||||
|
||||
/* subchip communication IO functions */
|
||||
void WIFI_setRF_CNT(wifimac_t *wifi, u16 val) ;
|
||||
void WIFI_setRF_DATA(wifimac_t *wifi, u16 val, u8 part) ;
|
||||
u16 WIFI_getRF_DATA(wifimac_t *wifi, u8 part) ;
|
||||
u16 WIFI_getRF_STATUS(wifimac_t *wifi) ;
|
||||
void WIFI_setRF_CNT(u16 val) ;
|
||||
void WIFI_setRF_DATA(u16 val, u8 part) ;
|
||||
u16 WIFI_getRF_DATA(u8 part) ;
|
||||
u16 WIFI_getRF_STATUS() ;
|
||||
|
||||
void WIFI_setBB_CNT(wifimac_t *wifi,u16 val) ;
|
||||
u8 WIFI_getBB_DATA(wifimac_t *wifi) ;
|
||||
void WIFI_setBB_DATA(wifimac_t *wifi, u8 val) ;
|
||||
void WIFI_setBB_CNT(u16 val) ;
|
||||
u8 WIFI_getBB_DATA() ;
|
||||
void WIFI_setBB_DATA(u8 val) ;
|
||||
|
||||
/* wifimac io */
|
||||
void WIFI_write16(wifimac_t *wifi,u32 address, u16 val) ;
|
||||
u16 WIFI_read16(wifimac_t *wifi,u32 address) ;
|
||||
void WIFI_write16(u32 address, u16 val) ;
|
||||
u16 WIFI_read16(u32 address) ;
|
||||
|
||||
/* wifimac timing */
|
||||
void WIFI_usTrigger(wifimac_t *wifi) ;
|
||||
void WIFI_usTrigger() ;
|
||||
|
||||
/* SoftAP */
|
||||
|
||||
|
@ -518,10 +520,11 @@ typedef struct _WIFI_FrameHeader
|
|||
|
||||
} WIFI_FrameHeader;
|
||||
|
||||
int WIFI_SoftAP_Init(wifimac_t *wifi);
|
||||
void WIFI_SoftAP_Shutdown(wifimac_t *wifi);
|
||||
void WIFI_SoftAP_RecvPacketFromDS(wifimac_t *wifi, u8 *packet, int len);
|
||||
void WIFI_SoftAP_usTrigger(wifimac_t *wifi);
|
||||
bool WIFI_SoftAP_Init();
|
||||
void WIFI_SoftAP_DeInit();
|
||||
void WIFI_SoftAP_Reset();
|
||||
void WIFI_SoftAP_RecvPacketFromDS(u8 *packet, int len);
|
||||
void WIFI_SoftAP_usTrigger();
|
||||
|
||||
/* DS WFC profile data documented here : */
|
||||
/* http://dsdev.bigredpimp.com/2006/07/31/aoss-wfc-profile-data/ */
|
||||
|
|
Loading…
Reference in New Issue