New games added as GAME_NOT_WORKING:
------------------------------------ Mamoru-kun wa Norowarete Shimatta! [rtw] Mushiking The King Of Beetles II ENG (Ver. 1.001) [rtw] Mushiking The King Of Beetles II ENG (Ver. 2.001) [rtw] Radirgy Noa [rtw] Star Horse Progress (Rev. A) [rtw, Mr. CAST, hap, Yohji, Smitdogg, The Dumping Union] Touch de Zunou (Rev. A) [CaH4e3] New clones added: ---------------- Mazan - Flash of The Blade (MAZ3 Ver. A) [rtw, ShouTime] Melty Blood Actress Again (Ver. A) [rtw] Ninja Assault (NJA1 Ver. A) [rtw, ShouTime] Ninja Assault (NJA2 Ver. A) [rtw, ShouTime] Other changes: -------------- - Redumped Salary Man Kintaro [Guru] - M4 cart handling greatly improved (added needed flash commands, fixed encryption on/off logic) [MetalliC] - f355 EPR was overdumped (mirrored 2 times), fixed [MetalliC] - Completed dump of vtenis2c, ROM test passes now [MetalliC] - M1/Actel and Namco carts IC layouts fixed, ROM test passes now [MetalliC] - Namco 2f-2b IC names changed to <cartlabel>.2d,2c etc, without fl0-fl4, because its the second IC label on the PCB (like "IC17S ROM1" on Sega carts) [MetalliC] - Re-parented World Kicks [MetalliC] - IC labels changed according to cart PCBs [MetalliC] - minor docs update [MetalliC]
This commit is contained in:
parent
00b179369a
commit
c88cfbdb25
File diff suppressed because it is too large
Load Diff
@ -56,7 +56,7 @@ DEVICE_ADDRESS_MAP_START(submap, 16, naomi_board)
|
||||
AM_RANGE(0x04, 0x05) AM_READWRITE(rom_data_r, rom_data_w)
|
||||
AM_RANGE(0x06, 0x07) AM_WRITE(dma_offseth_w)
|
||||
AM_RANGE(0x08, 0x09) AM_WRITE(dma_offsetl_w)
|
||||
AM_RANGE(0x0a, 0x0b) AM_READWRITE(actel_r, dma_count_w)
|
||||
AM_RANGE(0x0a, 0x0b) AM_WRITE(dma_count_w)
|
||||
AM_RANGE(0x3c, 0x3d) AM_WRITE(boardid_w)
|
||||
AM_RANGE(0x3e, 0x3f) AM_READ(boardid_r)
|
||||
|
||||
@ -67,14 +67,14 @@ naomi_board::naomi_board(const machine_config &mconfig, device_type type, const
|
||||
: naomi_g1_device(mconfig, type, name, tag, owner, clock, shortname, source)
|
||||
{
|
||||
eeprom_tag = 0;
|
||||
actel_tag = 0;
|
||||
rombdid_tag = 0;
|
||||
}
|
||||
|
||||
void naomi_board::static_set_eeprom_tag(device_t &device, const char *_eeprom_tag, const char *_actel_tag)
|
||||
{
|
||||
naomi_board &dev = downcast<naomi_board &>(device);
|
||||
dev.eeprom_tag = _eeprom_tag;
|
||||
dev.actel_tag = _actel_tag;
|
||||
dev.rombdid_tag = _actel_tag;
|
||||
}
|
||||
|
||||
|
||||
@ -207,19 +207,6 @@ READ16_MEMBER(naomi_board::default_r)
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
READ16_MEMBER(naomi_board::actel_r)
|
||||
{
|
||||
if (actel_tag)
|
||||
{
|
||||
if (memregion(actel_tag) != NULL)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return 0xffff;
|
||||
}
|
||||
|
||||
void naomi_board::board_write(offs_t offset, UINT16 data)
|
||||
{
|
||||
logerror("NAOMIBD: unhandled board write %08x, %04x\n", offset, data);
|
||||
|
@ -24,7 +24,6 @@ public:
|
||||
DECLARE_WRITE16_MEMBER(rom_data_w); // 5f7008
|
||||
DECLARE_WRITE16_MEMBER(dma_offseth_w); // 5f700c
|
||||
DECLARE_WRITE16_MEMBER(dma_offsetl_w); // 5f7010
|
||||
DECLARE_READ16_MEMBER(actel_r); // 5f7014
|
||||
DECLARE_WRITE16_MEMBER(dma_count_w); // 5f7014
|
||||
|
||||
DECLARE_WRITE16_MEMBER(boardid_w); // 5f7078
|
||||
@ -47,13 +46,14 @@ protected:
|
||||
// To be optionally defined in the underlying class
|
||||
virtual void board_write(offs_t offset, UINT16 data);
|
||||
|
||||
UINT32 rom_offset;
|
||||
const char *rombdid_tag;
|
||||
private:
|
||||
UINT32 rom_offset, dma_offset, dma_cur_offset;
|
||||
UINT32 dma_offset, dma_cur_offset;
|
||||
UINT16 dma_count;
|
||||
bool pio_ready, dma_ready;
|
||||
|
||||
const char *eeprom_tag;
|
||||
const char *actel_tag;
|
||||
class x76f100_device *eeprom;
|
||||
};
|
||||
|
||||
|
@ -24,6 +24,12 @@ void naomi_m1_board::static_set_tags(device_t &device, const char *_key_tag)
|
||||
|
||||
READ16_MEMBER(naomi_m1_board::actel_id_r)
|
||||
{
|
||||
if (rombdid_tag && memregion(rombdid_tag) != NULL)
|
||||
{
|
||||
const UINT8 *bdid = memregion(rombdid_tag)->base();
|
||||
return bdid[0] | (bdid[1] << 8);
|
||||
}
|
||||
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,22 @@ const UINT8 naomi_m4_board::k_sboxes[4][16] = {
|
||||
{9,12,8,7,10,4,0,15,1,11,14,2,13,5,6,3}
|
||||
};
|
||||
|
||||
// from S29GL512N datasheet
|
||||
static UINT8 cfidata[] = {
|
||||
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,
|
||||
0x51,0x00,0x52,0x00,0x59,0x00,0x02,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0x07,0x00,
|
||||
0x07,0x00,0x0a,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x04,0x00,0x00,0x00,0x1a,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0xff,0x00,0x01,0x00,0x00,0x00,
|
||||
0x02,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,
|
||||
0x50,0x00,0x52,0x00,0x49,0x00,0x31,0x00,0x33,0x00,0x10,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0xb5,0x00,0xc5,0x00,0x04,0x00,
|
||||
0x01,0x00
|
||||
};
|
||||
|
||||
DEVICE_ADDRESS_MAP_START(submap, 16, naomi_m4_board)
|
||||
AM_RANGE(0x1a, 0x1b) AM_READ(m4_id_r)
|
||||
|
||||
AM_INHERIT_FROM(naomi_board::submap)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
naomi_m4_board::naomi_m4_board(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: naomi_board(mconfig, NAOMI_M4_BOARD, "NAOMI-M4-BOARD", tag, owner, clock, "naomi_m4_board", __FILE__)
|
||||
{
|
||||
@ -61,6 +77,7 @@ void naomi_m4_board::device_start()
|
||||
save_item(NAME(rom_cur_address));
|
||||
save_item(NAME(buffer_actual_size));
|
||||
save_item(NAME(encryption));
|
||||
save_item(NAME(cfi_mode));
|
||||
save_item(NAME(counter));
|
||||
}
|
||||
|
||||
@ -98,14 +115,15 @@ void naomi_m4_board::device_reset()
|
||||
rom_cur_address = 0;
|
||||
buffer_actual_size = 0;
|
||||
encryption = false;
|
||||
cfi_mode = false;
|
||||
counter = 0;
|
||||
cur_iv = 0;
|
||||
}
|
||||
|
||||
void naomi_m4_board::board_setup_address(UINT32 address, bool is_dma)
|
||||
{
|
||||
rom_cur_address = address & 0x1fffffff;
|
||||
encryption = (!is_dma) && !(address & 0x20000000);
|
||||
rom_cur_address = address & 0x1ffffffe;
|
||||
encryption = rom_offset & 0x40000000;
|
||||
|
||||
if(encryption) {
|
||||
enc_reset();
|
||||
@ -115,6 +133,22 @@ void naomi_m4_board::board_setup_address(UINT32 address, bool is_dma)
|
||||
|
||||
void naomi_m4_board::board_get_buffer(UINT8 *&base, UINT32 &limit)
|
||||
{
|
||||
if (cfi_mode) {
|
||||
int fpr_num = 0;
|
||||
|
||||
if (rombdid_tag && memregion(rombdid_tag) != NULL)
|
||||
{
|
||||
fpr_num = *memregion(rombdid_tag)->base() & 0x7f;
|
||||
|
||||
}
|
||||
|
||||
if (((rom_cur_address >> 26) & 0x07) < fpr_num) {
|
||||
base = &cfidata[rom_cur_address & 0xffff];
|
||||
limit = 2;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(encryption) {
|
||||
base = buffer;
|
||||
limit = BUFFER_SIZE;
|
||||
@ -168,3 +202,24 @@ void naomi_m4_board::enc_fill()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
READ16_MEMBER(naomi_m4_board::m4_id_r)
|
||||
{
|
||||
UINT16 epr_flag = 0;
|
||||
|
||||
if (rombdid_tag && memregion(rombdid_tag) != NULL)
|
||||
{
|
||||
epr_flag = *memregion(rombdid_tag)->base() & 0x80;
|
||||
|
||||
}
|
||||
|
||||
return 0x5500 | epr_flag;
|
||||
}
|
||||
|
||||
void naomi_m4_board::board_write(offs_t offset, UINT16 data)
|
||||
{
|
||||
if (((offset&0xffff) == 0x00aa) && (data == 0x0098))
|
||||
cfi_mode = true;
|
||||
if (((offset&0xffff) == 0x0000) && (data == 0x00f0))
|
||||
cfi_mode = false;
|
||||
}
|
@ -14,6 +14,9 @@ public:
|
||||
|
||||
static void static_set_tags(device_t &device, const char *_key_tag);
|
||||
|
||||
virtual DECLARE_ADDRESS_MAP(submap, 16);
|
||||
|
||||
DECLARE_READ16_MEMBER(m4_id_r);
|
||||
protected:
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
@ -21,6 +24,7 @@ protected:
|
||||
virtual void board_setup_address(UINT32 address, bool is_dma);
|
||||
virtual void board_get_buffer(UINT8 *&base, UINT32 &limit);
|
||||
virtual void board_advance(UINT32 size);
|
||||
virtual void board_write(offs_t offset, UINT16 data);
|
||||
|
||||
private:
|
||||
enum { BUFFER_SIZE = 32768 };
|
||||
@ -36,6 +40,7 @@ private:
|
||||
UINT16 cur_iv;
|
||||
UINT8 counter;
|
||||
bool encryption;
|
||||
bool cfi_mode;
|
||||
|
||||
void enc_init();
|
||||
void enc_reset();
|
||||
|
@ -5208,14 +5208,14 @@ mvsc2 // 2000.03 Marvel Vs. Capcom 2 New Age of Heroes (Rev A)
|
||||
smarinef // 2000.03 Sega Marine Fishing
|
||||
wldkicks // 2000.03 World Kicks (WK2 Ver. A)
|
||||
wldkicksa // 2000.03 World Kicks (WK3 Ver. A)
|
||||
wldkicksb // 2000.03 World Kicks (WK1 Ver. A)
|
||||
wldkicksb // 2000.03 World Kicks PCB (WKC1 Ver. A)
|
||||
pstone2 // 2000.04 Power Stone 2
|
||||
toukon4 // 2000.04 Shin Nihon Prowrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)
|
||||
qmegamis // 2000.05 Quiz Ah Megamisama
|
||||
derbyo2k // 2000.06 Derby Owners Club 2000 Ver.2 (Rev A)
|
||||
starhrse // 2000.?? Star Horse (big screens)
|
||||
starhrct // 2000.?? Star Horse (server)
|
||||
starhrcl // 2000.?? Star Horse (client)
|
||||
starhrse // 2000.?? Star Horse (big screens)
|
||||
starhrct // 2000.?? Star Horse (server)
|
||||
starhrcl // 2000.?? Star Horse (client)
|
||||
vonot // 2000.06 Virtual-on Oratorio Tangram M.S.B.S. Ver.5.66 2000 Edition
|
||||
ggx // 2000.07 Guilty Gear X
|
||||
slasho // 2000.07 Slashout
|
||||
@ -5230,8 +5230,8 @@ deathcox // 2000.10 Death Crimson OX
|
||||
cspike // 2000.10 Gun Spike / Cannon Spike
|
||||
sstrkfgt // 2000.10 Sega Strike Fighter (Rev A)
|
||||
confmiss // 2000.11 Confidential Mission // First GD-ROM game?
|
||||
// 2000.11 Ninja Assault (NJA1 Ver. A)
|
||||
// 2000.11 Ninja Assault (NJA2 Ver. A)
|
||||
ninjaslt1 // 2000.11 Ninja Assault (NJA1 Ver. A)
|
||||
ninjaslt2 // 2000.11 Ninja Assault (NJA2 Ver. A)
|
||||
ninjaslt // 2000.11 Ninja Assault (NJA3 Ver. A)
|
||||
ninjaslt4 // 2000.11 Ninja Assault (NJA4 Ver. A)
|
||||
// 2000.11 Shakatto Tambourine (Rev B)
|
||||
@ -5248,7 +5248,7 @@ f355twn2 // 2001.01 F355 Challenge 2 Twin
|
||||
sfz3ugd // 2001.02 Street Fighter ZERO3 Upper
|
||||
gundmgd // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (GD-ROM)
|
||||
gundmct // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (cartridge)
|
||||
// 2001.03 Star Horse Progress (Rev A)
|
||||
starhrsp // 2001.03 Star Horse Progress (Rev A)
|
||||
dygolf // 2001.04 Dynamic Golf / Virtua Golf (Rev A)
|
||||
// 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika
|
||||
shaktmsp // 2001.04 Shakatto Tambourine 2K1 SPR
|
||||
@ -5279,7 +5279,7 @@ drbyocwc // 2001.?? Derby Owners Club World Edition (Rev. C)
|
||||
derbyocw // 2001.?? Derby Owners Club World Edition (Rev. D)
|
||||
shootplm // 2001.?? Shootout Pool Medal
|
||||
// 2001.?? Star Horse 2001
|
||||
hopper // 2002.?? SWP Hopper Board
|
||||
hopper // 2002.?? SWP Hopper Board
|
||||
vathlete // 2002.03 Virtua Athletics / Virtua Athlete
|
||||
luptype // 2002.04 Lupin The Third - The Typing (Rev A)
|
||||
cleoftp // 2002.05 Cleopatra Fortune Plus
|
||||
@ -5287,7 +5287,7 @@ ggxx // 2002.05 Guilty Gear XX
|
||||
mok // 2002.05 The Maze of the Kings
|
||||
chocomk // 2002.06 Musapey's Choco Marker (Rev A)
|
||||
mazan // 2002.07 Mazan : Flash of the Blade (MAZ2 Ver. A)
|
||||
// 2002.07 Mazan : Flash of the Blade (MAZ3 Ver. A)
|
||||
mazana // 2002.07 Mazan : Flash of the Blade (MAZ3 Ver. A)
|
||||
// 2002.09 Yonin Uchi Mahjong MJ
|
||||
azumanga // 2002.12 Azumanga Daiou Puzzle Bobble
|
||||
moeru // 2002.12 Moeru Casinyo
|
||||
@ -5326,11 +5326,12 @@ undefeat // 2005.10 Under Defeat
|
||||
radirgya // 2005.12 Radirgy (Rev A)
|
||||
// 2005.?? Dragon Treasure 3 (Rev A)
|
||||
// 2005.?? ExZeus
|
||||
// 2005.?? Mushiking The King Of Beetles II ENG
|
||||
mushik2e // 2005.?? Mushiking The King Of Beetles II ENG
|
||||
mushi2ea // 2005.?? Mushiking The King Of Beetles II ENG
|
||||
// 2005.?? MushiKing The King Of Beetle III
|
||||
kurucham // 2006.03 Kurukuru Chameleon
|
||||
trgheart // 2006.05 Trigger Heart Exelica (Rev A)
|
||||
// 2006.07 Touch de Zunou
|
||||
zunou // 2006.07 Touch de Zunou
|
||||
senkosp // 2006.08 Senkou no Rondo SP
|
||||
jingystm // 2006.09 Jingi Storm
|
||||
karous // 2006.11 Karous
|
||||
@ -5343,7 +5344,7 @@ takoron // 2006.12.16 Noukone Puzzle Takoron // L
|
||||
ngdup23a // DIMM Firmware Updater (Rev A)
|
||||
ngdup23c // DIMM Firmware Updater (Rev C)
|
||||
ngdup23e // DIMM Firmware Updater (Rev E)
|
||||
ndcfboxa // DIMM Firmware Updater for CF-BOX (Rev A)
|
||||
ndcfboxa // DIMM Firmware Updater for CF-BOX (Rev A)
|
||||
|
||||
// Releases below use flash/mask ROMs like older NAOMI titles, not GD-ROM as GD-ROM Hardware (Drives and Discs) were no longer being produced.
|
||||
pokasuka // 2007.07 Pokasuka Ghost!
|
||||
@ -5352,10 +5353,10 @@ asndynmt // 2007.07 Dynamite Deka EX - Asian dynamite
|
||||
// 2007.09 Rhythm Tengoku
|
||||
ausfache // 2008.02 Akatsuki Denkou Senki Ausf.Achse
|
||||
illvelo // 2008.06 Illvelo (Illmatic Envelope)
|
||||
// 2008.07 Mamoru-kun wa Norowarete Shimatta!
|
||||
mamonoro // 2008.07 Mamoru-kun wa Norowarete Shimatta!
|
||||
mbaa // 2008.09 Melty Blood Actress Again
|
||||
// 2008.12 Melty Blood Actress Again Ver.A
|
||||
// 2009.06 Radirgy Noa
|
||||
mbaaa // 2008.12 Melty Blood Actress Again Ver.A
|
||||
radirgyn // 2009.06 Radirgy Noa
|
||||
// 2009.?? Project Cerberus (planned to be released in 2009)
|
||||
|
||||
// NAOMI based (System SP)
|
||||
@ -5375,7 +5376,7 @@ vstrik3 // 2001.04 Virtua Striker 3 Ver. 2002 (GD-ROM)
|
||||
vstrik3cb // 2001.04 Virtua Striker 3 (Rev B) (cartridge)
|
||||
vstrik3c // 2001.04 Virtua Striker 3 (Rev C) (cartridge)
|
||||
wldrider // 2001.05 Wild Riders
|
||||
// 2001.06 Club Kart
|
||||
clubkrte // 2001.06 Club Kart
|
||||
beachspi // 2001.07 Beach Spikers
|
||||
vf4cart // 2001.08.02 Virtua Fighter 4 (cartridge)
|
||||
vf4 // 2001.08.02 Virtua Fighter 4 (GD-ROM)
|
||||
@ -5392,16 +5393,16 @@ initdv2j // 2002.12 Initial D Arcade Stage Ver. 2 (Japan) (Rev B)
|
||||
initdv2jo // 2002.12 Initial D Arcade Stage Ver. 2 (Japan)
|
||||
initdv2e // 2002.12 Initial D Arcade Stage Ver. 2 (export)
|
||||
vf4evo // 2002.12 Virtua Fighter 4 Evolution Ver.B
|
||||
clubkrte // 2002.?? Club Kart: European Session
|
||||
// 2002.?? Club Kart: European Session
|
||||
initdexp // 2002.?? Initial D Arcade Stage (Export)
|
||||
// 2002.?? Sega Driving Simulator
|
||||
// 2003.03 World Club Champion Football Serie A 2001-2002 Ver.2
|
||||
// 2003.09 World Club Champion Football Serie A 2002-2003
|
||||
// 2003.?? Club Kart Cycraft Edition
|
||||
clubkprz // 2003.?? Club Kart Prize
|
||||
clubkprz // 2003.?? Club Kart Prize
|
||||
initdv3j // 2004.01 Initial D Arcade Stage Ver. 3 (Japan) (Rev C)
|
||||
initdv3jb // 2004.01 Initial D Arcade Stage Ver. 3 (Japan) (Rev B)
|
||||
clubkpzb // 2004.?? Club Kart Prize Ver. B (strings in the EPROM indicate a build date of Jan. 23, 2004 for the game's program)
|
||||
clubkpzb // 2004.?? Club Kart Prize Ver. B (strings in the EPROM indicate a build date of Jan. 23, 2004 for the game's program)
|
||||
initdv3e // 2004.05 Initial D Arcade Stage Ver. 3 (Export)
|
||||
// 2004.06 World Club Champion Football Serie A 2002-2003 Ver.2
|
||||
// 2004.07 Virtua Fighter 4 Final Tuned
|
||||
|
Loading…
Reference in New Issue
Block a user