Merge pull request #900 from Happy-yappH/master

Change N64DD to use harddisk device instead of quikload device.
This commit is contained in:
R. Belmont 2016-05-25 20:40:58 -04:00
commit c2ca683af3
2 changed files with 24 additions and 11 deletions

View File

@ -147,7 +147,7 @@
<info name="serial" value="NUD-DRDJ-JPN" /> <info name="serial" value="NUD-DRDJ-JPN" />
<part name="disk" interface="n64dd_disk"> <part name="disk" interface="n64dd_disk">
<dataarea name="rom" size="70627520"> <dataarea name="rom" size="70627520">
<rom name="randnet browser [nud-drdj-jpn].bin" size="70627520" crc="5e08cf47" sha1="516679e171e100fdbf95a1991ae8280c387bfdaf" offset="0" /> <rom name="randnet browser [nud-drdj-jpn].bin" size="70627520" crc="ae627b23" sha1="2d12312bf394ddba3cba81f604b71fae19e6f518" offset="0" />
</dataarea> </dataarea>
</part> </part>
</software> </software>

View File

@ -16,7 +16,7 @@
#include "includes/n64.h" #include "includes/n64.h"
#include "bus/generic/slot.h" #include "bus/generic/slot.h"
#include "bus/generic/carts.h" #include "bus/generic/carts.h"
#include "imagedev/snapquik.h" #include "imagedev/harddriv.h"
#include "softlist.h" #include "softlist.h"
class n64_mess_state : public n64_state class n64_mess_state : public n64_state
@ -31,8 +31,10 @@ public:
INTERRUPT_GEN_MEMBER(n64_reset_poll); INTERRUPT_GEN_MEMBER(n64_reset_poll);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(n64_cart); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(n64_cart);
void mempak_format(UINT8* pak); void mempak_format(UINT8* pak);
int quickload(device_image_interface &image, const char *file_type, int quickload_size); int disk_load(device_image_interface &image);
DECLARE_QUICKLOAD_LOAD_MEMBER( n64dd ); void disk_unload(device_image_interface &image);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( n64dd );
DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( n64dd );
}; };
READ32_MEMBER(n64_mess_state::dd_null_r) READ32_MEMBER(n64_mess_state::dd_null_r)
@ -384,19 +386,28 @@ MACHINE_START_MEMBER(n64_mess_state,n64dd)
} }
} }
QUICKLOAD_LOAD_MEMBER(n64_mess_state,n64dd) DEVICE_IMAGE_LOAD_MEMBER(n64_mess_state,n64dd)
{ {
return quickload(image, file_type, quickload_size); return disk_load(image);
} }
int n64_mess_state::quickload(device_image_interface &image, const char *file_type, int quickload_size) DEVICE_IMAGE_UNLOAD_MEMBER(n64_mess_state,n64dd)
{
disk_unload(image);
}
int n64_mess_state::disk_load(device_image_interface &image)
{ {
image.fseek(0, SEEK_SET); image.fseek(0, SEEK_SET);
image.fread(memregion("disk")->base(), quickload_size); image.fread(memregion("disk")->base(), image.length());
machine().device<n64_periphs>("rcp")->disk_present = true; machine().device<n64_periphs>("rcp")->disk_present = true;
return IMAGE_INIT_PASS; return IMAGE_INIT_PASS;
} }
void n64_mess_state::disk_unload(device_image_interface &image)
{
machine().device<n64_periphs>("rcp")->disk_present = false;
}
INTERRUPT_GEN_MEMBER(n64_mess_state::n64_reset_poll) INTERRUPT_GEN_MEMBER(n64_mess_state::n64_reset_poll)
{ {
@ -470,8 +481,10 @@ static MACHINE_CONFIG_DERIVED( n64dd, n64 )
MCFG_GENERIC_EXTENSIONS("v64,z64,rom,n64,bin") MCFG_GENERIC_EXTENSIONS("v64,z64,rom,n64,bin")
MCFG_GENERIC_LOAD(n64_mess_state, n64_cart) MCFG_GENERIC_LOAD(n64_mess_state, n64_cart)
MCFG_QUICKLOAD_ADD("quickload", n64_mess_state, n64dd, "bin,dsk", 0) MCFG_HARDDISK_ADD("n64disk")
MCFG_QUICKLOAD_INTERFACE("n64dd_disk") MCFG_HARDDISK_LOAD(n64_mess_state,n64dd)
MCFG_HARDDISK_UNLOAD(n64_mess_state,n64dd)
MCFG_HARDDISK_INTERFACE("n64dd_disk")
MCFG_SOFTWARE_LIST_ADD("dd_list", "n64dd") MCFG_SOFTWARE_LIST_ADD("dd_list", "n64dd")
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -502,7 +515,7 @@ ROM_START( n64dd )
ROM_REGION32_BE( 0x400000, "ddipl", ROMREGION_ERASEFF) ROM_REGION32_BE( 0x400000, "ddipl", ROMREGION_ERASEFF)
ROM_LOAD( "64ddipl.bin", 0x000000, 0x400000, CRC(7f933ce2) SHA1(bf861922dcb78c316360e3e742f4f70ff63c9bc3) ) ROM_LOAD( "64ddipl.bin", 0x000000, 0x400000, CRC(7f933ce2) SHA1(bf861922dcb78c316360e3e742f4f70ff63c9bc3) )
ROM_REGION32_LE( 0x4400000, "disk", ROMREGION_ERASEFF) ROM_REGION32_BE( 0x4400000, "disk", ROMREGION_ERASEFF)
ROM_REGION16_BE( 0x80, "normpoint", 0 ) ROM_REGION16_BE( 0x80, "normpoint", 0 )
ROM_LOAD( "normpnt.rom", 0x00, 0x80, CRC(e7f2a005) SHA1(c27b4a364a24daeee6e99fd286753fd6216362b4) ) ROM_LOAD( "normpnt.rom", 0x00, 0x80, CRC(e7f2a005) SHA1(c27b4a364a24daeee6e99fd286753fd6216362b4) )