mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
Merge pull request #303 from LuigiBlood/master
n64.c: Development Disk Drive setting support [LuigiBlood]
This commit is contained in:
commit
b0e1e5d733
@ -2266,9 +2266,11 @@ void n64_periphs::dd_update_bm()
|
||||
}
|
||||
else // dd read, BM Mode 1
|
||||
{
|
||||
if(((dd_track_reg & 0xFFF) == 6) && (dd_start_block == 0))
|
||||
if(((dd_track_reg & 0xFFF) == 6) && (dd_start_block == 0) && ((machine().root_device().ioport("input")->read() & 0x0100) == 0x0000))
|
||||
{
|
||||
//only fail read LBA 12 if retail disk drive
|
||||
dd_status_reg &= ~DD_ASIC_STATUS_DREQ;
|
||||
dd_buf_status_reg |= DD_BMST_MICRO_STATUS;
|
||||
}
|
||||
else if(dd_current_reg < SECTORS_PER_BLOCK)
|
||||
{
|
||||
@ -2336,11 +2338,11 @@ void n64_periphs::dd_read_sector()
|
||||
sector = (UINT8*)machine().root_device().memregion("disk")->base();
|
||||
sector += dd_track_offset;
|
||||
sector += dd_start_block * SECTORS_PER_BLOCK * ddZoneSecSize[dd_zone];
|
||||
sector += (dd_current_reg) * ddZoneSecSize[dd_zone];
|
||||
sector += (dd_current_reg) * (dd_sector_size + 1);
|
||||
|
||||
//logerror("Read Block %d, Sector %d\n", dd_start_block, dd_current_reg);
|
||||
|
||||
for(int i = 0; i < ddZoneSecSize[dd_zone]/4; i++)
|
||||
for(int i = 0; i < (dd_sector_size + 1)/4; i++)
|
||||
{
|
||||
dd_sector_data[i] = sector[(i*4 + 0)] << 24 | sector[(i*4 + 1)] << 16 |
|
||||
sector[(i*4 + 2)] << 8 | sector[(i*4 + 3)];
|
||||
@ -2421,7 +2423,10 @@ READ32_MEMBER( n64_periphs::dd_reg_r )
|
||||
ret = dd_seq_ctrl_reg;
|
||||
break;
|
||||
case 0x40/4: // ASIC ID
|
||||
ret = 0x00030000; // Japan Retail Drive
|
||||
if ((machine().root_device().ioport("input")->read() & 0x0100) == 0x0000)
|
||||
ret = 0x00030000; // Japan Retail Drive
|
||||
else
|
||||
ret = 0x00040000; // Development Drive
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -89,22 +89,26 @@ ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( n64 )
|
||||
PORT_START("input")
|
||||
PORT_CONFNAME(0x03, 0x01, "Controller Port 0 Device")
|
||||
PORT_CONFNAME(0x0003, 0x0001, "Controller Port 0 Device")
|
||||
PORT_CONFSETTING(0x00, "None")
|
||||
PORT_CONFSETTING(0x01, "Joypad")
|
||||
PORT_CONFSETTING(0x02, "Mouse")
|
||||
PORT_CONFNAME(0x0C, 0x00, "Controller Port 1 Device")
|
||||
PORT_CONFNAME(0x000C, 0x0000, "Controller Port 1 Device")
|
||||
PORT_CONFSETTING(0x00, "None")
|
||||
PORT_CONFSETTING(0x04, "Joypad")
|
||||
PORT_CONFSETTING(0x08, "Mouse")
|
||||
PORT_CONFNAME(0x30, 0x00, "Controller Port 2 Device")
|
||||
PORT_CONFNAME(0x0030, 0x0000, "Controller Port 2 Device")
|
||||
PORT_CONFSETTING(0x00, "None")
|
||||
PORT_CONFSETTING(0x10, "Joypad")
|
||||
PORT_CONFSETTING(0x20, "Mouse")
|
||||
PORT_CONFNAME(0xC0, 0x00, "Controller Port 3 Device")
|
||||
PORT_CONFNAME(0x00C0, 0x0000, "Controller Port 3 Device")
|
||||
PORT_CONFSETTING(0x00, "None")
|
||||
PORT_CONFSETTING(0x40, "Joypad")
|
||||
PORT_CONFSETTING(0x80, "Mouse")
|
||||
|
||||
PORT_CONFNAME(0x0100, 0x0000, "Disk Drive")
|
||||
PORT_CONFSETTING(0x0000, "Retail")
|
||||
PORT_CONFSETTING(0x0100, "Development")
|
||||
|
||||
//Player 1
|
||||
PORT_START("P1")
|
||||
|
Loading…
Reference in New Issue
Block a user