Previous 199869 Revisions Next

r20202 Friday 11th January, 2013 at 17:41:45 UTC by Angelo Salese
Machine init/reset re-arrangement
[src/mame/drivers]3do.c
[src/mame/includes]3do.h
[src/mame/machine]3do.c

trunk/src/mame/drivers/3do.c
r20201r20202
129129   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
130130INPUT_PORTS_END
131131
132
133void _3do_state::machine_reset()
132void _3do_state::machine_start()
134133{
135134   membank("bank2")->set_base(memregion("user1")->base());
136135
r20201r20202
138137   membank("bank1")->configure_entry(0, m_dram);
139138   membank("bank1")->configure_entry(1, memregion("user1")->base());
140139
140   m_3do_slow2_init();
141   m_3do_madam_init();
142   m_3do_clio_init( downcast<screen_device *>(machine().device("screen")));
143}
144
145void _3do_state::machine_reset()
146{
141147   /* start with overlay enabled */
142148   membank("bank1")->set_entry(1);
143149
144   _3do_slow2_init(machine());
145   _3do_madam_init(machine());
146   _3do_clio_init(machine(), downcast<screen_device *>(machine().device("screen")));
150   m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */
147151}
148152
149153struct cdrom_interface _3do_cdrom =
trunk/src/mame/machine/3do.c
r20201r20202
225225}
226226
227227
228void _3do_slow2_init( running_machine &machine )
229{
230   _3do_state *state = machine.driver_data<_3do_state>();
231   state->m_slow2.cg_input = 0;
232   state->m_slow2.cg_output = 0x00000005 - 1;
233}
234228
235
236229READ32_MEMBER(_3do_state::_3do_svf_r)
237230{
238231   UINT32 addr = ( offset & ( 0x07fc / 4 ) ) << 9;
r20201r20202
649642}
650643
651644
652void _3do_madam_init( running_machine &machine )
653{
654   _3do_state *state = machine.driver_data<_3do_state>();
655   memset( &state->m_madam, 0, sizeof(MADAM) );
656   state->m_madam.revision = 0x01020000;
657   state->m_madam.msysbits = 0x51;
658}
659645
660646
661647READ32_MEMBER(_3do_state::_3do_clio_r)
r20201r20202
10231009}
10241010
10251011
1026void _3do_clio_init( running_machine &machine, screen_device *screen )
1027{
1028   _3do_state *state = machine.driver_data<_3do_state>();
1029   memset( &state->m_clio, 0, sizeof(CLIO) );
1030   state->m_clio.screen = screen;
1031   state->m_clio.revision = 0x02022000 /* 0x04000000 */;
1032   state->m_clio.cstatbits = 0x01; /* bit 0 = reset of clio caused by power on */
1033   state->m_clio.unclerev = 0x03800000;
1034   state->m_clio.expctl = 0x80;    /* ARM has the expansion bus */
1035   state->m_dspp.N = auto_alloc_array(machine, UINT16, 0x800 );
1036   state->m_dspp.EI = auto_alloc_array(machine, UINT16, 0x200 );
1037   state->m_dspp.EO = auto_alloc_array(machine, UINT16, 0x200 );
1038
1039   state_save_register_global_pointer(machine, state->m_dspp.N, 0x800);
1040   state_save_register_global_pointer(machine, state->m_dspp.EI, 0x200);
1041   state_save_register_global_pointer(machine, state->m_dspp.EO, 0x200);
1042}
1043
1044
10451012/* 9 -> 5 bits translation */
10461013
10471014VIDEO_START_MEMBER(_3do_state,_3do)
r20201r20202
11031070
11041071   return 0;
11051072}
1073
1074/*
1075 *
1076 * Machine Inits
1077 *
1078 */
1079
1080void _3do_state::m_3do_madam_init( void )
1081{
1082   memset( &m_madam, 0, sizeof(MADAM) );
1083   m_madam.revision = 0x01020000;
1084   m_madam.msysbits = 0x51;
1085}
1086
1087void _3do_state::m_3do_slow2_init( void )
1088{
1089   m_slow2.cg_input = 0;
1090   m_slow2.cg_output = 0x00000005 - 1;
1091}
1092
1093void _3do_state::m_3do_clio_init( screen_device *screen )
1094{
1095   memset( &m_clio, 0, sizeof(CLIO) );
1096   m_clio.screen = screen;
1097   m_clio.revision = 0x02022000 /* 0x04000000 */;
1098   m_clio.unclerev = 0x03800000;
1099   m_clio.expctl = 0x80;    /* ARM has the expansion bus */
1100   m_dspp.N = auto_alloc_array(machine(), UINT16, 0x800 );
1101   m_dspp.EI = auto_alloc_array(machine(), UINT16, 0x200 );
1102   m_dspp.EO = auto_alloc_array(machine(), UINT16, 0x200 );
1103
1104   state_save_register_global_pointer(machine(), m_dspp.N, 0x800);
1105   state_save_register_global_pointer(machine(), m_dspp.EI, 0x200);
1106   state_save_register_global_pointer(machine(), m_dspp.EO, 0x200);
1107}
trunk/src/mame/includes/3do.h
r20201r20202
161161   DECLARE_WRITE32_MEMBER(_3do_madam_w);
162162   DECLARE_READ32_MEMBER(_3do_clio_r);
163163   DECLARE_WRITE32_MEMBER(_3do_clio_w);
164   virtual void machine_start();
164165   virtual void machine_reset();
165166   DECLARE_VIDEO_START(_3do);
166167   UINT32 screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
r20201r20202
168169   TIMER_DEVICE_CALLBACK_MEMBER( timer_x16_cb );
169170
170171private:
172   void m_3do_slow2_init( void );
173   void m_3do_madam_init( void );
174   void m_3do_clio_init( screen_device *screen );
175
171176   void m_3do_request_fiq(UINT32 irq_req, UINT8 type);
172177};
173178
174179/*----------- defined in machine/3do.c -----------*/
175180
176181
177void _3do_slow2_init( running_machine &machine );
178
179
180void _3do_madam_init( running_machine &machine );
181
182void _3do_clio_init( running_machine &machine, screen_device *screen );
183
184
185182#endif /* _3DO_H_ */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team