Previous 199869 Revisions Next

r17556 Wednesday 29th August, 2012 at 15:56:17 UTC by Angelo Salese
Checkpoint
[src/emu/video]mb90092.c mb90092.h
[src/mame/drivers]nss.c sfcbox.c
[src/mame/includes]snes.h
[src/mame/machine]snes.c

trunk/src/mame/machine/snes.c
r17555r17556
18521852   }
18531853
18541854   state->m_is_nss = 0;
1855   state->m_is_sfcbox = 0;
18551856}
18561857
18571858MACHINE_RESET( snes )
trunk/src/mame/includes/snes.h
r17555r17556
427427   UINT16                m_vtime;
428428   UINT16                m_vmadd;
429429
430   /* HW flags */
430   /* non-SNES HW-specific flags / variables */
431431   UINT8                 m_is_nss;
432432   UINT8              m_input_disabled;
433433   UINT8              m_game_over_flag;
434434   UINT8                 m_joy_flag;
435//   UINT8                 m_is_sfcbox;
435   UINT8                 m_is_sfcbox;
436436
437437   /* timers */
438438   emu_timer             *m_scanline_timer;
trunk/src/mame/drivers/sfcbox.c
r17555r17556
135135   required_device <mb90092_device> m_mb90092;
136136
137137   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
138
139   DECLARE_WRITE8_MEMBER( port_81_w );
138140};
139141
140142UINT32 sfcbox_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
r17555r17556
179181   AM_RANGE(0x60000, 0x67fff) AM_NOP // grom slot 1
180182ADDRESS_MAP_END
181183
184WRITE8_MEMBER( sfcbox_state::port_81_w )
185{
186   device_set_input_line(m_maincpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
187   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
182188
189   ioport("OSD_CS")->write(data, 0xff);
190}
183191
184192static ADDRESS_MAP_START( sfcbox_io, AS_IO, 8, sfcbox_state )
185193   AM_RANGE(0x0b, 0x0b) AM_DEVWRITE("mb90092",mb90092_device,write)
186194   AM_RANGE(0x00, 0x3f) AM_RAM // internal i/o
187195//   AM_RANGE(0x80, 0x80) // Keyswitch and Button Inputs / SNES Transfer and Misc Output
188//   AM_RANGE(0x81, 0x81) // SNES Transfer and Misc Input / Misc Output
196   AM_RANGE(0x81, 0x81) AM_WRITE(port_81_w) // SNES Transfer and Misc Input / Misc Output
189197//   AM_RANGE(0x82, 0x82) // Unknown/unused
190198//   AM_RANGE(0x83, 0x83) // Joypad Input/Status / Joypad Output/Control
191199//   AM_RANGE(0x84, 0x84) // Joypad 1, MSB (1st 8 bits) (eg. Bit7=ButtonB, 0=Low=Pressed)
r17555r17556
199207
200208
201209static INPUT_PORTS_START( snes )
210   PORT_START("OSD_CS")
211   PORT_BIT( 0x80, IP_ACTIVE_LOW,  IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("mb90092", mb90092_device, set_cs_line)
212
202213   PORT_START("SERIAL1_DATA1_L")
203214   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Button A") PORT_PLAYER(1)
204215   PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Button X") PORT_PLAYER(1)
r17555r17556
342353MACHINE_CONFIG_END
343354
344355
356static MACHINE_START( sfcbox )
357{
358   sfcbox_state *state = machine.driver_data<sfcbox_state>();
359
360   MACHINE_START_CALL(snes);
361
362   state->m_is_sfcbox = 1;
363}
364
365static MACHINE_RESET( sfcbox )
366{
367   sfcbox_state *state = machine.driver_data<sfcbox_state>();
368
369   MACHINE_RESET_CALL( snes );
370
371   /* start with both CPUs disabled */
372   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, ASSERT_LINE);
373   device_set_input_line(state->m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE);
374}
375
345376static MACHINE_CONFIG_DERIVED( sfcbox, snes )
346377
347378   MCFG_CPU_ADD("bios", Z180, XTAL_12MHz / 2)   /* HD64180RF6X */
348379   MCFG_CPU_PROGRAM_MAP(sfcbox_map)
349380   MCFG_CPU_IO_MAP(sfcbox_io)
350381
351   MCFG_MB90092_ADD("mb90092",XTAL_12MHz / 2) /* TODO: pixel clock */
382   MCFG_MB90092_ADD("mb90092",XTAL_12MHz / 2) /* TODO: correct clock */
352383
353   /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs for now */
384   MCFG_MACHINE_START( sfcbox )
385   MCFG_MACHINE_RESET( sfcbox )
386
387   /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs */
354388   MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
355389
356390   MCFG_SCREEN_ADD("osd", RASTER)
r17555r17556
375409   ROM_LOAD( "spc700.rom", 0x00, 0x40, CRC(44bb3a40) SHA1(97e352553e94242ae823547cd853eecda55c20f0) ) \
376410   ROM_REGION( 0x10000, "krom", 0 ) \
377411   ROM_LOAD( "krom1.ic1", 0x00000, 0x10000, CRC(c9010002) SHA1(f4c74086a83b728b1c1af3a021a60efa80eff5a4) ) \
412   ROM_REGION( 0x100000, "user3", 0 ) \
413   ROM_LOAD( "atrom-4s-0.rom5", 0x00000, 0x80000, CRC(ad3ec05c) SHA1(a3d336db585fe02a37c323422d9db6a33fd489a6) ) \
378414
379415
380416ROM_START( sfcbox )
r17555r17556
386422ROM_START( pss61 )
387423   SFCBOX_BIOS
388424
389   ROM_REGION( 0x100000, "atrom", 0 )
390   ROM_LOAD( "atrom-4s-0.rom5", 0x00000, 0x80000, CRC(ad3ec05c) SHA1(a3d336db585fe02a37c323422d9db6a33fd489a6) )
391
392425   ROM_REGION( 0x8000, "grom", 0 )
393426   ROM_LOAD( "grom1-1.ic1", 0x0000, 0x8000, CRC(333bf9a7) SHA1(5d0cd9ca29e5580c3eebe9f136839987c879f979) )
394427
395   ROM_REGION( 0x380000, "user3", 0 )
428   ROM_REGION( 0x380000, "game", 0 )
396429   ROM_LOAD( "shvc-mk-0.rom6", 0x000000, 0x080000, CRC(c8002453) SHA1(cbb853bf911255c1d8eb27cd34fc7855a0dda218) )
397430   ROM_LOAD( "shvc-4m-1.rom3", 0x080000, 0x200000, CRC(91b28d56) SHA1(b83dd73d3d6049450bb8092d73c3af879804f58c) )
398431   ROM_LOAD( "shvc-fo-1.ic20", 0x280000, 0x100000, CRC(ad668a41) SHA1(39ff7354a7fa02295c899b7a7ec3556998ac2636) ) /* Super FX hook needed for Star Fox */
r17555r17556
404437   ROM_REGION( 0x8000, "grom", 0 )
405438   ROM_LOAD( "grom2-1.ic1", 0x0000, 0x8000, CRC(bcfc5642) SHA1(a96e52685bd3dcdf09d1b7acd6e1c1ab7726a640) )
406439
407   ROM_REGION( 0x180000, "user3", 0 )
440   ROM_REGION( 0x180000, "game", 0 )
408441   ROM_LOAD( "shvc-gc-0.rom1", 0x000000, 0x100000, CRC(b4fd7aff) SHA1(eb553b77418dedba25fc4d5dddcb04f424b0f6a9) )
409442   ROM_LOAD( "shvc-2a-1.rom3", 0x100000, 0x080000, CRC(6b23e2e4) SHA1(684123a12ca1e31115bd6221d96f82461066877f) )
410443ROM_END
r17555r17556
415448   ROM_REGION( 0x8000, "grom", 0 )
416449   ROM_LOAD( "grom3-1.ic1", 0x0000, 0x8000, CRC(ebec4c1c) SHA1(d638ef1486b4c0b3d4d5b666929ca7947e16efad) )
417450
418   ROM_REGION( 0x500000, "user3", 0 )
451   ROM_REGION( 0x500000, "game", 0 )
419452   ROM_LOAD( "shvc-t2-1.rom3", 0x000000, 0x100000, CRC(4ae93c10) SHA1(5fa25d027940907b769578d7bf85a9d5ba94911a) )
420453   ROM_LOAD( "shvc-8x-1.rom1", 0x100000, 0x400000, CRC(3adef543) SHA1(df02860e691fbee453e345dd343c08b6da08d4ea) )
421454ROM_END
r17555r17556
426459   ROM_REGION( 0x8000, "grom", 0 )
427460   ROM_LOAD( "grom4-1.ic1", 0x0000, 0x8000, NO_DUMP )
428461
429   ROM_REGION( 0x500000, "user3", 0 )
462   ROM_REGION( 0x500000, "game", 0 )
430463   ROM_LOAD( "shvc-m4-0.rom3", 0x000000, 0x100000, CRC(fb259f4f) SHA1(8faeb56f80e82dd042bdc84d19c526a979c6de8f) )
431464   ROM_LOAD( "shvc-8x-1.rom1", 0x100000, 0x400000, CRC(3adef543) SHA1(df02860e691fbee453e345dd343c08b6da08d4ea) )
432465//  Possibly reverse order :
trunk/src/mame/drivers/nss.c
r17555r17556
856856   MCFG_CPU_IO_MAP(bios_io_map)
857857   MCFG_CPU_VBLANK_INT("screen", nss_vblank_irq)
858858
859   MCFG_M50458_ADD("m50458",m50458_intf,4000000) /* TODO: clock */
859   MCFG_M50458_ADD("m50458",m50458_intf,4000000) /* TODO: correct clock */
860860   MCFG_S3520CF_ADD("s3520cf") /* RTC */
861861   MCFG_RP5H01_ADD("rp5h01")
862862   MCFG_M6M80011AP_ADD("m6m80011ap")
863863
864   /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs for now */
865   MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
866
864   MCFG_MACHINE_START( nss )
867865   MCFG_MACHINE_RESET( nss )
868866
867   /* TODO: the screen should actually superimpose, but for the time being let's just separate outputs */
868   MCFG_DEFAULT_LAYOUT(layout_dualhsxs)
869
869870   MCFG_SCREEN_ADD("osd", RASTER)
870871   MCFG_SCREEN_REFRESH_RATE(60)
871872   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
872873   MCFG_SCREEN_SIZE(24*12+22, 12*18+22)
873874   MCFG_SCREEN_VISIBLE_AREA(0*8, 24*12-1, 0*8, 12*18-1)
874875   MCFG_SCREEN_UPDATE_DRIVER(nss_state,screen_update)
875
876   MCFG_MACHINE_START( nss )
877876MACHINE_CONFIG_END
878877
879878/***************************************************************************
trunk/src/emu/video/mb90092.c
r17555r17556
128128//  READ/WRITE HANDLERS
129129//**************************************************************************
130130
131WRITE_LINE_MEMBER( mb90092_device::set_cs_line )
132{
133   m_reset_line = state;
134
135   if(m_reset_line != CLEAR_LINE)
136   {
137      // ...
138   }
139}
140
141
131142WRITE8_MEMBER( mb90092_device::write )
132143{
133144   UINT16 dat;
r17555r17556
143154         dat = ((m_cmd_param & 7)<<7) | (data & 0x7f);
144155         switch(m_cmd)
145156         {
146            case 0x80: // preset VRAM address
157            case 0x80: // Preset VRAM address
147158               m_osd_addr = dat;
148159               //printf("%04x %d %d\n",m_osd_addr,(m_osd_addr & 0x1f),(m_osd_addr & 0x1e0) >> 5);
149160               break;
150            case 0x90: // write Character
161            case 0x90: // Write Character
151162               int x,y;
152163               x = (m_osd_addr & 0x1f);
153164               y = (m_osd_addr & 0x1e0) >> 5;
trunk/src/emu/video/mb90092.h
r17555r17556
4141
4242   // I/O operations
4343   DECLARE_WRITE8_MEMBER( write );
44   WRITE_LINE_MEMBER( set_cs_line );
4445
4546   UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4647   virtual const rom_entry *device_rom_region() const;
r17555r17556
5657   UINT8 m_cmd_ff;
5758   UINT8 m_cmd,m_cmd_param;
5859   UINT16 m_osd_addr;
60   UINT8 m_reset_line;
5961
6062   inline UINT16 read_word(offs_t address);
6163   inline void write_word(offs_t address, UINT16 data);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team