summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/naomi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/naomi.cpp')
-rw-r--r--src/mame/drivers/naomi.cpp44
1 files changed, 28 insertions, 16 deletions
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index 45bf387b23f..c7208417788 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -274,6 +274,7 @@ NAOMI ROM cart usage
There are 6 known types of carts manufactured by Sega: 171-7885A, 171-7919A, 171-7930B, 171-7978B, 171-8132B, 171-8346C
There are also 2 types of carts manufactured by Namco: MASK-B, MASK-C
+PFSB Flash ROM board
837-13591 171-7885A (C) Sega 1998
|------------------------------------------------------------|
| ----CN2---- -|
@@ -342,6 +343,7 @@ Virtua Tennis / Power Smash (prototype) no cart * 21 (64Mb) pre
Wave Runner GP (USA, Rev A) 840-0064C 23725A 12 (64Mb) present 315-6206 317-0306-COM PCB s/n is 840-0064B-01
+PFSB 64M Mask ROM board
837-13668 171-7919A (C) Sega 1998
|---------------------------------------------------------|
| ----CN2---- -|
@@ -433,6 +435,7 @@ Zombie Revenge 840-0003C 21707 19 (64Mb)
Zombie Revenge (Rev A) 840-0003C 21707A 19 (64Mb) present 315-6213 317-0249-COM joystick + 3 buttons
+NRS Flash ROM board
837-14011 171-7930B (C) Sega 1998
|------------------------------------------------------------------|
| JJJJJJ SW2 ----CN2---- -|
@@ -486,6 +489,7 @@ Game on cart IC16# # of SOP56 Notes
Puyo Puyo Fever (prototype ver 0.01) * not present 22 (64Mb) no cart, only development PCB
+NRS Mask ROM board
837-13801 171-7978B (C) Sega 1999
|---------------------------------------------------------|
| ----CN2---- -|
@@ -553,6 +557,7 @@ Virtua Fighter 4 Evolution 840-0106B 23934
Virtua Tennis 2 / Power Smash 2 (Rev A) 840-0084C 22327A 18 (64Mb) present 317-0320-COM
+PFSB 128M Mask ROM board
837-14114-01 171-8132B (C) Sega 2000
|---------------------------------------------------------|
| IC11 IC10 IC9 ----CN2---- -|
@@ -624,6 +629,7 @@ WWF Royal Rumble 840-0040C 22261 8 (128Mb) 3
Zero Gunner 2 841-0020C 23689 5 (128Mb) 315-6319A 315-6213 317-5073-COM present
+NFS Flash ROM board
171-8346C (C) Sega 2005
|---------------------------------------------------------|
| IC12 IC8 ----CN2---- -|
@@ -1683,9 +1689,9 @@ WRITE64_MEMBER(naomi_state::eeprom_93c46a_w )
void naomi_state::naomi_map(address_map &map)
{
/* Area 0 */
- map(0x00000000, 0x001fffff).mirror(0xa2000000).rom().region("maincpu", 0).share("rombase"); // BIOS
+ map(0x00000000, 0x001fffff).rom().region("maincpu", 0).share("rombase"); // BIOS
- map(0x00200000, 0x00207fff).mirror(0x02000000).ram(); // bios uses it (battery backed ram ?)
+ map(0x00200000, 0x00207fff).ram().share("sram");
map(0x005f6800, 0x005f69ff).mirror(0x02000000).rw(this, FUNC(naomi_state::dc_sysctrl_r), FUNC(naomi_state::dc_sysctrl_w));
map(0x005f6c00, 0x005f6cff).mirror(0x02000000).m(m_maple, FUNC(maple_dc_device::amap));
map(0x005f7000, 0x005f70ff).mirror(0x02000000).m(m_naomig1, FUNC(naomi_g1_device::submap)).umask64(0x0000ffff0000ffff);
@@ -1743,9 +1749,9 @@ WRITE32_MEMBER(naomi2_state::both_pvr2_ta_w)
void naomi2_state::naomi2_map(address_map &map)
{
/* Area 0 */
- map(0x00000000, 0x001fffff).mirror(0xa2000000).rom().region("maincpu", 0).share("rombase"); // BIOS
+ map(0x00000000, 0x001fffff).rom().region("maincpu", 0).share("rombase"); // BIOS
- map(0x00200000, 0x00207fff).mirror(0x02000000).ram(); // bios uses it (battery backed ram ?)
+ map(0x00200000, 0x00207fff).ram().share("sram");
map(0x005f6800, 0x005f69ff).mirror(0x02000000).rw(this, FUNC(naomi2_state::dc_sysctrl_r), FUNC(naomi2_state::dc_sysctrl_w));
map(0x005f6c00, 0x005f6cff).mirror(0x02000000).m(m_maple, FUNC(maple_dc_device::amap));
map(0x005f7000, 0x005f70ff).mirror(0x02000000).m(m_naomig1, FUNC(naomi_g1_device::submap)).umask64(0x0000ffff0000ffff);
@@ -1922,7 +1928,7 @@ void atomiswave_state::aw_map(address_map &map)
map(0x00000000, 0x0001ffff).rw(this, FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)).region("awflash", 0);
map(0xa0000000, 0xa001ffff).rw(this, FUNC(atomiswave_state::aw_flash_r), FUNC(atomiswave_state::aw_flash_w)).region("awflash", 0);
- map(0x00200000, 0x0021ffff).ram(); // battery backed up RAM
+ map(0x00200000, 0x0021ffff).ram().share("sram"); // battery backed up RAM
map(0x005f6800, 0x005f69ff).rw(this, FUNC(atomiswave_state::dc_sysctrl_r), FUNC(atomiswave_state::dc_sysctrl_w));
map(0x005f6c00, 0x005f6cff).mirror(0x02000000).m(m_maple, FUNC(maple_dc_device::amap));
map(0x005f7000, 0x005f70ff).mirror(0x02000000).m(m_naomig1, FUNC(naomi_g1_device::submap)).umask64(0x0000ffff0000ffff);
@@ -2685,7 +2691,6 @@ MACHINE_CONFIG_START(dc_state::naomi_aw_base)
MCFG_SH4_MD7(1)
MCFG_SH4_MD8(0)
MCFG_SH4_CLOCK(CPU_CLOCK)
- MCFG_CPU_FORCE_NO_DRC()
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", dc_state, dc_scanline, "screen", 0, 1)
@@ -2736,6 +2741,7 @@ MACHINE_CONFIG_START(naomi_state::naomi_base)
MCFG_X76F100_ADD("naomibd_eeprom")
MCFG_M3COMM_ADD("comm_board")
MCFG_MACHINE_RESET_OVERRIDE(naomi_state,naomi)
+ MCFG_NVRAM_ADD_0FILL("sram")
MACHINE_CONFIG_END
/*
@@ -2849,10 +2855,8 @@ MACHINE_CONFIG_START(atomiswave_state::aw_base)
MCFG_MACRONIX_29L001MC_ADD("awflash")
MCFG_AW_ROM_BOARD_ADD("rom_board", "rom_key", WRITE8(dc_state, g1_irq))
- //MCFG_CPU_MODIFY("soundcpu")
- //MCFG_CPU_PROGRAM_MAP(aw_sound_map)
-
MCFG_MACHINE_RESET_OVERRIDE(dc_state,dc_console)
+ MCFG_NVRAM_ADD_0FILL("sram")
MACHINE_CONFIG_END
MACHINE_CONFIG_START(atomiswave_state::aw1c)
@@ -2967,7 +2971,7 @@ Scan ROM for the text string "LOADING TEST MODE NOW" back up four (4) bytes for
NOTE: this doesn't work for the HOTD2 or multi screen boot roms
-Naomi Dev BIOS v1.10: (some sources call it "NAOMI Test BIOS ROM")
+Dev BIOS v1.10: (some sources call it "NAOMI Test BIOS ROM")
NAOMI DEVELOP 1999 01/10 1.10
to boot into BIOS menu DIPSW 1-4 must be ON
@@ -3052,11 +3056,11 @@ OFF OFF ON Australia
ROM_LOAD16_WORD_SWAP_BIOS( 18, "epr-21579d.ic27", 0x000000, 0x200000, CRC(33513691) SHA1(b1d8c7c516e1471a788fcf7a02a794ad2f05aeeb) ) \
ROM_SYSTEM_BIOS( 19, "bios19", "epr-21579 (Korea)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 19, "epr-21579.ic27", 0x000000, 0x200000, CRC(71f9c918) SHA1(d15af8b947f41eea7c203b565cd403e3f37a2017) ) \
- ROM_SYSTEM_BIOS( 20, "bios20", "Naomi Dev BIOS" ) \
- ROM_LOAD16_WORD_SWAP_BIOS( 20, "dcnaodev.bios", 0x000000, 0x080000, CRC(7a50fab9) SHA1(ef79f448e0bf735d1264ad4f051d24178822110f) ) \
- ROM_SYSTEM_BIOS( 21, "bios21", "Naomi Dev BIOS v1.10" ) \
+ ROM_SYSTEM_BIOS( 20, "bios20", "Set4 Dev BIOS" ) \
+ ROM_LOAD16_WORD_SWAP_BIOS( 20, "boot_rom_64b8.ic606", 0x000000, 0x080000, CRC(7a50fab9) SHA1(ef79f448e0bf735d1264ad4f051d24178822110f) ) \
+ ROM_SYSTEM_BIOS( 21, "bios21", "Dev BIOS v1.10" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 21, "develop110.ic27", 0x000000, 0x200000, CRC(de7cfdb0) SHA1(da16800edc4d49f70481c124d487f544c2fa8ce7) ) \
- ROM_SYSTEM_BIOS( 22, "bios22", "Naomi Unknown Dev board" ) \
+ ROM_SYSTEM_BIOS( 22, "bios22", "Development ROM Board" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 22, "zukinver0930.ipl", 0x000000, 0x200000, CRC(58e17c23) SHA1(19330f906accf1b859f56bbcedc2edff73747599) ) \
ROM_SYSTEM_BIOS( 23, "bios23", "epr-21576h (multi-region hack)" ) \
ROM_LOAD16_WORD_SWAP_BIOS( 23, "epr-21576h_multi.ic27", 0x000000, 0x200000, CRC(cce01f1f) SHA1(cca17119ad13e3a4ef7cb6902a37b65d6a844aee) ) \
@@ -3064,9 +3068,13 @@ OFF OFF ON Australia
ROM_LOAD("315-6188.ic31", 0x0000, 0x2034, CRC(7c9fea46) SHA1(f77c07ae65dfed18c1c4c632c8945be21d02ddaf) )
/*
- dcnaodev.bios comes from a dev / beta board. The eprom was a 27C4096
+ Set4 Dev BIOS / boot_rom__64b8.ic606 comes from early "Set 4" board, which is quite different than final DC/NAOMI (Set 5.24) and uses prerelease SH4 CPU and "ARC1" GPU.
+ PC BD SET4-25 64M NEC / 171-7598B / 837-19104-01 (c) Sega 1997
+ EEPROM is 27C4096, it contains monitor-debugger which communicates with host PC via SCSI, may upload code/data to onboard RAM and run it.
+ This boot ROM is not designed to run cartridges or other media.
+
- zukinver0930.ipl comes from 837-13502-01 / 837-13663 PCB which contains:
+ zukinver0930.ipl comes from 837-13502-01 / 837-13663 "Development ROM Board" which contains:
22 empty sockets ROM0 - ROM21
315-6187 Altera EPM7064LC68-10
PC16550DV UART
@@ -9525,6 +9533,10 @@ DRIVER_INIT_MEMBER(atomiswave_state,atomiswave)
ROM[0x98e/8] = (ROM[0x98e/8] & 0xffffffffffffU) | (uint64_t)0x0009<<48;
aw_ctrl_type = 0;
+
+ m_maincpu->sh2drc_set_options(SH2DRC_STRICT_VERIFY | SH2DRC_STRICT_PCREL);
+ m_maincpu->sh2drc_add_fastram(0x00000000, 0x0000ffff, true, ROM);
+ m_maincpu->sh2drc_add_fastram(0x0c000000, 0x0cffffff, false, dc_ram);
}
READ64_MEMBER(atomiswave_state::xtrmhnt2_hack_r)