Some more minor work on BBA, Seems I need a virtual network device sooner than I thought. Such a pain.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1561 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
4a5d9ded94
commit
0944564cf0
|
@ -118,17 +118,21 @@ void CEXIETHERNET::ImmWrite(u32 _uData, u32 _uSize)
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
case BBA_NCRA:
|
case BBA_NCRA:
|
||||||
|
{
|
||||||
|
u32 SwappedData = Common::swap32(_uData);
|
||||||
// TODO: Should we swap our data?
|
// TODO: Should we swap our data?
|
||||||
#define RISE(flags) ((_uData & (flags)) && !(mBbaMem[0x00] & (flags)))
|
#define RISE(flags) ((SwappedData & (flags)) && !(mBbaMem[0x00] & (flags)))
|
||||||
if(RISE(BBA_NCRA_RESET))
|
if(RISE(BBA_NCRA_RESET))
|
||||||
{
|
{
|
||||||
|
// Normal
|
||||||
|
// Whinecube did nothing else as well
|
||||||
printf("BBA Reset\n");
|
printf("BBA Reset\n");
|
||||||
exit(0);
|
|
||||||
}
|
}
|
||||||
if(RISE(BBA_NCRA_SR) )/*&& isActivated()) */
|
if(RISE(BBA_NCRA_SR) )/*&& isActivated()) */
|
||||||
{
|
{
|
||||||
printf("BBA Start Recieve\n");
|
printf("BBA Start Recieve\n");
|
||||||
exit(0);
|
//exit(0);
|
||||||
|
// TODO: Need to make our virtual network device start receiving
|
||||||
//HWGLE(startRecv());
|
//HWGLE(startRecv());
|
||||||
}
|
}
|
||||||
if(RISE(BBA_NCRA_ST1))
|
if(RISE(BBA_NCRA_ST1))
|
||||||
|
@ -138,15 +142,15 @@ void CEXIETHERNET::ImmWrite(u32 _uData, u32 _uSize)
|
||||||
{
|
{
|
||||||
printf("Not ready to send!\n");
|
printf("Not ready to send!\n");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
|
||||||
//throw hardware_fatal_exception("BBA Transmit without a packet!");
|
//throw hardware_fatal_exception("BBA Transmit without a packet!");
|
||||||
|
}
|
||||||
|
// TODO: Actually Make it send a packet
|
||||||
//HWGLE(sendPacket(mWriteBuffer.p(), mWriteBuffer.size()));
|
//HWGLE(sendPacket(mWriteBuffer.p(), mWriteBuffer.size()));
|
||||||
mReadyToSend = false;
|
mReadyToSend = false;
|
||||||
exit(0);
|
//exit(0);
|
||||||
|
};
|
||||||
|
mBbaMem[0x00] = MAKE(u8, SwappedData);
|
||||||
}
|
}
|
||||||
// TODO: Swap here?
|
|
||||||
_uData = Common::swap32(_uData);
|
|
||||||
mBbaMem[0x00] = MAKE(u8, _uData);
|
|
||||||
break;
|
break;
|
||||||
case BBA_NWAYC:
|
case BBA_NWAYC:
|
||||||
printf("mWriteP is %x\n", mWriteP);
|
printf("mWriteP is %x\n", mWriteP);
|
||||||
|
@ -254,6 +258,7 @@ void CEXIETHERNET::ImmWrite(u32 _uData, u32 _uSize)
|
||||||
//mBbaMem[mReadP] = !mRBEmpty;
|
//mBbaMem[mReadP] = !mRBEmpty;
|
||||||
break;
|
break;
|
||||||
case 0x00:
|
case 0x00:
|
||||||
|
// These Two lines were commented out in Whinecube
|
||||||
//mBbaMem[mReadP] = 0x00;
|
//mBbaMem[mReadP] = 0x00;
|
||||||
//if(!sendInProgress())
|
//if(!sendInProgress())
|
||||||
mBbaMem[mReadP] &= ~(0x06);
|
mBbaMem[mReadP] &= ~(0x06);
|
||||||
|
|
Loading…
Reference in New Issue