mirror of
https://github.com/holub/mame
synced 2025-06-22 04:06:39 +03:00
Few miscellaneous N64 changes / improvements
Change MemPak formatting code to better document actual format Do not adjust screen timings when VI blank video mode set PIF reportedly only clears top bit of status byte DD read fail needs to mask against *head* as well as track
This commit is contained in:
parent
023de5734c
commit
c1f0ae29e2
@ -266,16 +266,33 @@ void n64_mess_state::mempak_format(UINT8* pak)
|
||||
0xff,0xff,0xff,0xff, 0x05,0x1a,0x5f,0x13, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
||||
0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0x01,0xff, 0x66,0x25,0x99,0xcd,
|
||||
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
||||
0x00,0x71,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03
|
||||
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00
|
||||
};
|
||||
|
||||
for (int i = 0; i < 0x8000; i += 2)
|
||||
unsigned char pak_inode_table[] =
|
||||
{
|
||||
pak[i+0] = 0x00;
|
||||
pak[i+1] = 0x03;
|
||||
}
|
||||
memcpy(pak, pak_header, 272);
|
||||
0x01,0x71,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03,
|
||||
0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03, 0x00,0x03,0x00,0x03
|
||||
};
|
||||
|
||||
memset(pak, 0, 0x8000);
|
||||
memcpy(pak, pak_header, 256);
|
||||
memcpy(pak+256, pak_inode_table, 256); // Main
|
||||
memcpy(pak+512, pak_inode_table, 256); // Mirror
|
||||
}
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(n64_mess_state,n64_cart)
|
||||
|
@ -996,7 +996,7 @@ void n64_periphs::vi_recalculate_resolution()
|
||||
// DACRATE is the quarter pixel clock and period will be for a field, not a frame
|
||||
attoseconds_t period = (vi_hsync & 0xfff) * (vi_vsync & 0xfff) * HZ_TO_ATTOSECONDS(DACRATE_NTSC) / 2;
|
||||
|
||||
if (width == 0 || height == 0)
|
||||
if (width == 0 || height == 0 || (vi_control & 3) == 0)
|
||||
{
|
||||
vi_blank = 1;
|
||||
/*
|
||||
@ -2060,7 +2060,7 @@ void n64_periphs::handle_pif()
|
||||
}
|
||||
}
|
||||
|
||||
ram[0x3f ^ BYTE4_XOR_BE(0)] = 0;
|
||||
ram[0x3f ^ BYTE4_XOR_BE(0)] &= ~0x80;
|
||||
}
|
||||
|
||||
/*printf("After:\n"); fflush(stdout);
|
||||
@ -2278,7 +2278,7 @@ void n64_periphs::dd_update_bm()
|
||||
}
|
||||
else // dd read, BM Mode 1
|
||||
{
|
||||
if(((dd_track_reg & 0xFFF) == 6) && (dd_start_block == 0) && ((machine().root_device().ioport("input")->read() & 0x0100) == 0x0000))
|
||||
if(((dd_track_reg & 0x1FFF) == 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;
|
||||
|
Loading…
Reference in New Issue
Block a user