summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/n64.cpp
diff options
context:
space:
mode:
author Happy <Happy-yappH@users.noreply.github.com>2016-03-01 11:34:33 -0700
committer Happy <Happy-yappH@users.noreply.github.com>2016-03-01 11:34:33 -0700
commitc1f0ae29e28db10c27ea7c48f7d0708b1ad48bbf (patch)
tree7f8e7d91faa0358bfd5231cb4271f7def1f6ea63 /src/mame/drivers/n64.cpp
parent023de5734c9862ec39fa6f9c77f4f0c2835dec4e (diff)
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
Diffstat (limited to 'src/mame/drivers/n64.cpp')
-rw-r--r--src/mame/drivers/n64.cpp31
1 files changed, 24 insertions, 7 deletions
diff --git a/src/mame/drivers/n64.cpp b/src/mame/drivers/n64.cpp
index 757f87e159a..770c42a6a09 100644
--- a/src/mame/drivers/n64.cpp
+++ b/src/mame/drivers/n64.cpp
@@ -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)