mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
Dreamcast: GD_LEND should output number of bytes successfully DMA'd
With this commit, Daytona USA 2001 boots.
This commit is contained in:
parent
a05aac02f5
commit
ca0722e41b
@ -18,6 +18,7 @@ public:
|
||||
dc_cons_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: dc_state(mconfig, type, tag)
|
||||
, m_ata(*this, "ata")
|
||||
, atapi_xfercomplete(0)
|
||||
// , m_dcflash(*this, "dcflash")
|
||||
{ }
|
||||
|
||||
@ -55,7 +56,7 @@ public:
|
||||
private:
|
||||
uint64_t PDTRA, PCTRA;
|
||||
emu_timer *atapi_timer;
|
||||
int atapi_xferlen, atapi_xferbase;
|
||||
int atapi_xferlen, atapi_xferbase, atapi_xfercomplete;
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_DCCONS_H
|
||||
|
@ -49,7 +49,7 @@ TIMER_CALLBACK_MEMBER(dc_cons_state::atapi_xfer_end )
|
||||
//osd_printf_debug("ATAPI: xfer_end. xferlen = %d\n", atapi_xferlen);
|
||||
|
||||
m_ata->write_dmack(1);
|
||||
|
||||
atapi_xfercomplete = 0;
|
||||
while (atapi_xferlen > 0 )
|
||||
{
|
||||
struct sh4_ddt_dma ddtdata;
|
||||
@ -63,6 +63,7 @@ TIMER_CALLBACK_MEMBER(dc_cons_state::atapi_xfer_end )
|
||||
}
|
||||
|
||||
atapi_xferlen -= 2048;
|
||||
atapi_xfercomplete += 2048;
|
||||
|
||||
// perform the DMA
|
||||
ddtdata.destination = atapi_xferbase; // destination address
|
||||
@ -125,7 +126,7 @@ READ32_MEMBER(dc_cons_state::dc_mess_g1_ctrl_r )
|
||||
break;
|
||||
case SB_GDLEND:
|
||||
//machine().debug_break();
|
||||
return atapi_xferlen; // TODO: check me
|
||||
return atapi_xfercomplete;
|
||||
case SB_SECUR_EADR: // always read 0xFF on hardware
|
||||
return 0x000000ff;
|
||||
case SB_SECUR_STATE: // state of BIOS checksum security system (R/O):
|
||||
|
Loading…
Reference in New Issue
Block a user