Previous 199869 Revisions Next

r24867 Tuesday 13th August, 2013 at 12:05:51 UTC by hap
removed legacy nvram handler
(note: super namcos22 nvram files are now proper size instead of interleaved with zeros)
[src/mame/drivers]namcos22.c
[src/mame/includes]namcos22.h
[src/mame/video]namcos22.c

trunk/src/mame/video/namcos22.c
r24866r24867
3838 *******************************/
3939
4040#include "emu.h"
41#include "video/rgbutil.h"
42#include "video/polynew.h"
4341#include "includes/namcos22.h"
4442
4543
trunk/src/mame/includes/namcos22.h
r24866r24867
1#include "machine/nvram.h"
12#include "video/rgbutil.h"
23#include "video/polynew.h"
34
r24866r24867
171172      m_iomcu(*this, "iomcu"),
172173      m_spriteram(*this, "spriteram"),
173174      m_shareram(*this, "shareram"),
174      m_nvmem(*this, "nvmem"),
175      m_nvram(*this, "nvram"),
175176      m_pSlaveExternalRAM(*this, "slaveextram"),
176177      m_pMasterExternalRAM(*this, "masterextram"),
177178      m_paletteram(*this, "paletteram"),
r24866r24867
196197   optional_device<cpu_device> m_iomcu;
197198   optional_shared_ptr<UINT32> m_spriteram;
198199   required_shared_ptr<UINT32> m_shareram;
199   required_shared_ptr<UINT32> m_nvmem;
200   required_device<nvram_device> m_nvram;
200201   required_shared_ptr<UINT16> m_pSlaveExternalRAM;
201202   required_shared_ptr<UINT16> m_pMasterExternalRAM;
202203   required_shared_ptr<UINT32> m_paletteram;
r24866r24867
213214   optional_device<timer_device> m_motor_timer;
214215   optional_device<timer_device> m_pc_pedal_interrupt;
215216
217   UINT8* m_nvmem;
216218   UINT8 m_syscontrol[0x20];
217219   bool m_dsp_irq_enabled;
218220   emu_timer *m_ar_tb_interrupt[2];
r24866r24867
366368   DECLARE_WRITE16_MEMBER(namcos22_cpuleds_w);
367369   DECLARE_READ32_MEMBER(alpinesa_prot_r);
368370   DECLARE_WRITE32_MEMBER(alpinesa_prot_w);
369   DECLARE_WRITE32_MEMBER(namcos22s_nvmem_w);
371   DECLARE_WRITE8_MEMBER(namcos22_nvmem_w);
372   DECLARE_READ8_MEMBER(namcos22_nvmem_r);
370373   DECLARE_WRITE32_MEMBER(namcos22s_chipselect_w);
371374   DECLARE_READ16_MEMBER(s22mcu_shared_r);
372375   DECLARE_WRITE16_MEMBER(s22mcu_shared_w);
trunk/src/mame/drivers/namcos22.c
r24866r24867
11311131 */
11321132
11331133#include "emu.h"
1134#include "cpu/m68000/m68000.h"
11351134#include "includes/namcos22.h"
1135#include "cpu/m68000/m68000.h"
11361136#include "cpu/tms32025/tms32025.h"
11371137#include "cpu/m37710/m37710.h"
11381138#include "sound/c352.h"
1139#include "mcfglgcy.h"
11401139
11411140#define SS22_MASTER_CLOCK   (XTAL_49_152MHz)    /* info from Guru */
11421141
r24866r24867
15501549}
15511550
15521551
1553WRITE32_MEMBER(namcos22_state::namcos22s_nvmem_w)
1552WRITE8_MEMBER(namcos22_state::namcos22_nvmem_w)
15541553{
1555   mem_mask &= 0xff00ff00; // 8KB RAM over 16KB address &space
1556   COMBINE_DATA(&m_nvmem[offset]);
1554   m_nvmem[offset] = data;
15571555}
15581556
1557READ8_MEMBER(namcos22_state::namcos22_nvmem_r)
1558{
1559   return m_nvmem[offset];
1560}
1561
15591562READ32_MEMBER(namcos22_state::namcos22_dspram_r)
15601563{
15611564   return m_polygonram[offset] | 0xff000000; // only d0-23 are connected
r24866r24867
17481751    * Mounted position: CPU 9E
17491752    * Known chip type: HN58C65P-25 (8k x 8bit EEPROM)
17501753    */
1751   AM_RANGE(0x58000000, 0x58001fff) AM_RAM AM_SHARE("nvmem")
1754   AM_RANGE(0x58000000, 0x58001fff) AM_READWRITE8(namcos22_nvmem_r, namcos22_nvmem_w, 0xffffffff)
17521755
17531756   /**
17541757    * C74 (Mitsubishi M37702 MCU) Shared RAM (0x60004000 - 0x6000bfff)
r24866r24867
18621865   AM_RANGE(0x420000, 0x42000f) AM_READ(namcos22_sci_r) AM_WRITEONLY /* C139 SCI registers */
18631866   AM_RANGE(0x440000, 0x440003) AM_READWRITE16(namcos22_dipswitch_r, namcos22_cpuleds_w, 0xffffffff)
18641867   AM_RANGE(0x450008, 0x45000b) AM_READWRITE16(namcos22_portbit_r, namcos22_portbit_w, 0xffffffff)
1865   AM_RANGE(0x460000, 0x463fff) AM_RAM_WRITE(namcos22s_nvmem_w) AM_SHARE("nvmem")
1868   AM_RANGE(0x460000, 0x463fff) AM_READWRITE8(namcos22_nvmem_r, namcos22_nvmem_w, 0xff00ff00)
18661869   AM_RANGE(0x700000, 0x70001f) AM_READWRITE8(namcos22_system_controller_r, namcos22s_system_controller_w, 0xffffffff)
18671870   AM_RANGE(0x800000, 0x800003) AM_WRITE(namcos22s_chipselect_w)
18681871   AM_RANGE(0x810000, 0x81000f) AM_RAM AM_SHARE("czattr")
r24866r24867
36593662GFXDECODE_END
36603663
36613664
3662static NVRAM_HANDLER( namcos22 )
3663{
3664   namcos22_state *state = machine.driver_data<namcos22_state>();
3665   int i;
3666   UINT8 data[4];
3667   if (read_or_write)
3668   {
3669      for (i = 0; i < state->m_nvmem.bytes() / 4; i++)
3670      {
3671         UINT32 dword = state->m_nvmem[i];
3672         data[0] = dword>>24;
3673         data[1] = (dword&0x00ff0000)>>16;
3674         data[2] = (dword&0x0000ff00)>>8;
3675         data[3] = dword&0xff;
3676         file->write(data, 4);
3677      }
3678   }
3679   else
3680   {
3681      if (file)
3682      {
3683         for (i = 0; i < state->m_nvmem.bytes() / 4; i++)
3684         {
3685            file->read(data, 4);
3686            state->m_nvmem[i] = (data[0]<<24)|(data[1]<<16)|(data[2]<<8)|data[3];
3687         }
3688      }
3689      else
3690      {
3691         memset(state->m_nvmem, 0x00, state->m_nvmem.bytes());
3692         if (machine.root_device().memregion("nvram")->bytes() == state->m_nvmem.bytes())
3693         {
3694            UINT8* nvram = machine.root_device().memregion("nvram")->base();
3695
3696            for (i = 0; i < state->m_nvmem.bytes() / 4; i++)
3697            {
3698               state->m_nvmem[i] = (nvram[0+i*4]<<24)|(nvram[1+i*4]<<16)|(nvram[2+i*4]<<8)|nvram[3+i*4];
3699            }
3700         }
3701      }
3702   }
3703}
3704
37053665void namcos22_state::machine_reset()
37063666{
37073667   m_master->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
r24866r24867
37483708
37493709//  MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
37503710
3751   MCFG_NVRAM_HANDLER(namcos22)
3711   MCFG_NVRAM_ADD_0FILL("nvram")
37523712
37533713   /* video hardware */
37543714   MCFG_SCREEN_ADD("screen", RASTER)
r24866r24867
37993759//  MCFG_QUANTUM_PERFECT_CPU("maincpu")
38003760//  MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
38013761
3802   MCFG_NVRAM_HANDLER(namcos22)
3762   MCFG_NVRAM_ADD_0FILL("nvram")
38033763
38043764   /* video hardware */
38053765   MCFG_SCREEN_ADD("screen", RASTER)
r24866r24867
48384798   ROM_LOAD( "cb1wavea.2l", 0x000000, 0x400000, CRC(b79a624d) SHA1(c0ee358a183ba6d0835731dbdd191b64718fde6e) )
48394799   ROM_LOAD( "cb1waveb.1l", 0x800000, 0x200000, CRC(33bf08f6) SHA1(bf9d68b26a8158ea1abfe8428b7454cac25242c5) )
48404800
4841   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
4842   ROM_LOAD( "cybrcycc_defaults.nv", 0x0000, 0x4000, CRC(1ef95c25) SHA1(26b8bead9d62a420ee0ff770df83c4207a963065) )
4801   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
4802   ROM_LOAD( "cybrcycc_defaults.nv", 0x0000, 0x2000, CRC(57fbd7d3) SHA1(c93e0d7875f5e66a661aed757fb4a314fe2025c2) )
48434803ROM_END
48444804
48454805
r24866r24867
48964856   ROM_REGION( 0x1000000, "c352", 0 ) // Samples
48974857   ROM_LOAD( "ar1wavea.2l", 0, 0x200000, CRC(dbf64562) SHA1(454fd7d5b860f0e5557d8900393be95d6c992ad1) )
48984858
4899   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
4900   ROM_LOAD( "alpiner_defaults.nv", 0x0000, 0x4000, CRC(46c06e51) SHA1(df3a16fe3a0858b14c51d48539d9ab3eb3a213de) )
4859   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
4860   ROM_LOAD( "alpiner_defaults.nv", 0x0000, 0x2000, CRC(efbef3d8) SHA1(459035600655cd83780db6c59aba044981cdcdc4) )
49014861ROM_END
49024862
49034863ROM_START( alpinerc )
r24866r24867
49534913   ROM_REGION( 0x1000000, "c352", 0 ) // Samples
49544914   ROM_LOAD( "ar1wavea.2l", 0, 0x200000, CRC(dbf64562) SHA1(454fd7d5b860f0e5557d8900393be95d6c992ad1) )
49554915
4956   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
4957   ROM_LOAD( "alpiner_defaults.nv", 0x0000, 0x4000, CRC(46c06e51) SHA1(df3a16fe3a0858b14c51d48539d9ab3eb3a213de) )
4916   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
4917   ROM_LOAD( "alpiner_defaults.nv", 0x0000, 0x2000, CRC(efbef3d8) SHA1(459035600655cd83780db6c59aba044981cdcdc4) )
49584918ROM_END
49594919
49604920
r24866r24867
50094969   ROM_LOAD( "ars1wavea.2l", 0x000000, 0x400000, CRC(f8d107e9) SHA1(5c418691f0b35403553f21f5570eda8bbb66890f) )
50104970   ROM_LOAD( "ars2waveb.1l", 0x800000, 0x400000, CRC(deab4ad1) SHA1(580ad88d516280baaf6cc92b2e07cdc0cfc486f3) )
50114971
5012   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
5013   ROM_LOAD( "alpiner2_defaults.nv", 0x0000, 0x4000, CRC(1d660b8b) SHA1(e6047ad2d61fa55e8f054813f5c705fd7d145a73) )
4972   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
4973   ROM_LOAD( "alpiner2_defaults.nv", 0x0000, 0x2000, CRC(1f21154e) SHA1(a141d7d235955d042c60d013a89619d35c02308f) )
50144974ROM_END
50154975
50164976ROM_START( alpinr2a )
r24866r24867
50645024   ROM_LOAD( "ars1wavea.2l", 0x000000, 0x400000, CRC(f8d107e9) SHA1(5c418691f0b35403553f21f5570eda8bbb66890f) )
50655025   ROM_LOAD( "ars2waveb.1l", 0x800000, 0x400000, CRC(deab4ad1) SHA1(580ad88d516280baaf6cc92b2e07cdc0cfc486f3) )
50665026
5067   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
5068   ROM_LOAD( "alpiner2_defaults.nv", 0x0000, 0x4000, CRC(1d660b8b) SHA1(e6047ad2d61fa55e8f054813f5c705fd7d145a73) )
5027   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
5028   ROM_LOAD( "alpiner2_defaults.nv", 0x0000, 0x2000, CRC(1f21154e) SHA1(a141d7d235955d042c60d013a89619d35c02308f) )
50695029ROM_END
50705030
50715031
r24866r24867
51105070   ROM_REGION( 0x1000000, "c352", 0 ) /* sound samples */
51115071   ROM_LOAD( "af1wavea.2l",  0x000000, 0x400000, CRC(28cca494) SHA1(4ff87ab85fd17bf8dbee5b03d99cc5c31dd6349a) )
51125072
5113   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
5114   ROM_LOAD( "alpinesa_defaults.nv", 0x0000, 0x4000, CRC(9744207c) SHA1(bbd34ee138c116d281c718f14740e2883a5cdf49) )
5073   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
5074   ROM_LOAD( "alpinesa_defaults.nv", 0x0000, 0x2000, CRC(d9e74daa) SHA1(aa2ddec61d8e9ae69726bab8ed5701e4c41b833b) )
51155075ROM_END
51165076
51175077
r24866r24867
52735233   ROM_REGION( 0x1000000, "c352", 0 ) // Samples
52745234   ROM_LOAD( "tw1wavea.2l",  0x000000, 0x400000, CRC(ebce6366) SHA1(44ebe90ff3c7af5bebbf1baba3b7a2b1863daebb) )
52755235
5276   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
5277   ROM_LOAD( "tokyowar_defaults.nv", 0x0000, 0x4000, CRC(a1fe05e4) SHA1(39a20b35394a43e12c66a6c0f5ecb204148c58de) )
5236   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
5237   ROM_LOAD( "tokyowar_defaults.nv", 0x0000, 0x2000, CRC(e8bd7d09) SHA1(7e59017b9d5eb78984b4f177b50a4727ad72a623) )
52785238ROM_END
52795239
52805240
r24866r24867
53805340   ROM_LOAD( "aj1wavea.2l",  0x000000, 0x400000, CRC(8c72ea59) SHA1(3ae8dbd8baae08f1daab2b218932ba9d9451231d) )
53815341   ROM_LOAD( "aj1waveb.1l",  0x800000, 0x400000, CRC(ab5a457f) SHA1(c34531fd574eb0c3e78fc31a9af8658df3446adc) )
53825342
5383   ROM_REGION( 0x4000, "nvram", 0 ) // default eeprom
5384   ROM_LOAD( "aquajet_defaults.nv", 0x0000, 0x4000, CRC(7d03893c) SHA1(f75ca5d996a94da4136ed0a4f0f4c869f1412e38) )
5343   ROM_REGION( 0x2000, "nvram", 0 ) // default eeprom
5344   ROM_LOAD( "aquajet_defaults.nv", 0x0000, 0x2000, CRC(a00b3e44) SHA1(6bdbb46f4176314b61bd5063ecc968189212cb4c) )
53855345ROM_END
53865346
53875347
r24866r24867
54485408   ROM_REGION( 0x1000000, "c352", 0 ) /* sound samples */
54495409   ROM_LOAD( "am1wavea.2l",  0x000000, 0x400000, CRC(48f8c20c) SHA1(48b4fbcb7e9dbbb70a542ef7cb7ee0e46fad23fc) )
54505410   ROM_LOAD( "am1waveb.1l",  0x800000, 0x400000, CRC(fd8e7384) SHA1(91e53ab0293f81f8357645fd319249abc128b78e) )
5451
5452   ROM_REGION( 0x4000, "nvram", ROMREGION_ERASE00 ) // default eeprom
54535411ROM_END
54545412
54555413
r24866r24867
55225480
55235481void namcos22_state::namcos22_init(int game_type)
55245482{
5483   m_nvmem = auto_alloc_array_clear(machine(), UINT8, 0x2000);
5484   m_nvram->set_base(m_nvmem, 0x2000);
5485
55255486   m_gametype = game_type;
55265487
55275488   m_keycus_id = 0;
r24866r24867
56205581   UINT32 *ROM = (UINT32 *)memregion("maincpu")->base();
56215582
56225583   /* patch out strange routine (uninitialized-eprom related?) */
5623   ROM[0x1992C/4] = 0x4E754E75;
5584   ROM[0x1992C/4] = 0x4e754e75;
56245585
56255586   /**
56265587    * The dipswitch reading routine in Prop Cycle polls the

Previous 199869 Revisions Next


© 1997-2024 The MAME Team