Previous 199869 Revisions Next

r29590 Sunday 13th April, 2014 at 07:29:44 UTC by Fabio Priuli
(MESS) smssdisp: minor cleanup and mapping conflict avoidance + added
support for 3D glasses since the PCB had the necessary connector.
From Enik Land. nw.
[src/mess/drivers]sms.c
[src/mess/machine]sms.c

trunk/src/mess/drivers/sms.c
r29589r29590
371371   PORT_INCLUDE( sg1000m3 )
372372
373373   PORT_START("RESET")
374   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset Button")
374   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Reset Button")
375375INPUT_PORTS_END
376376
377377static INPUT_PORTS_START( smsj )
378378   PORT_INCLUDE( sg1000m3 )
379379
380380   //PORT_START("RAPID")
381   //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Rapid Button") /* Not implemented */
381   //PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Rapid Button") /* Not implemented */
382382INPUT_PORTS_END
383383
384384static INPUT_PORTS_START( smssdisp )
385   PORT_INCLUDE( sms )
385   PORT_INCLUDE( sms1 )
386386
387387   PORT_START("DSW")
388388   PORT_DIPNAME( 0x07, 0x07, "Timer 1 length" )
r29589r29590
408408   PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )   // READY, must be high
409409
410410   PORT_START("GAMESEL1")
411   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 03") PORT_CODE(KEYCODE_B)
412   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 02") PORT_CODE(KEYCODE_G)
413   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 01") PORT_CODE(KEYCODE_T)
414   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 00") PORT_CODE(KEYCODE_5)
415   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 07") PORT_CODE(KEYCODE_N)
416   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 06") PORT_CODE(KEYCODE_H)
417   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 05") PORT_CODE(KEYCODE_Y)
418   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 04") PORT_CODE(KEYCODE_6)
411   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 03") PORT_CODE(KEYCODE_N)
412   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 02") PORT_CODE(KEYCODE_H)
413   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 01") PORT_CODE(KEYCODE_Y)
414   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 00") PORT_CODE(KEYCODE_6)
415   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 07") PORT_CODE(KEYCODE_M)
416   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 06") PORT_CODE(KEYCODE_J)
417   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 05") PORT_CODE(KEYCODE_U)
418   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 04") PORT_CODE(KEYCODE_7)
419419
420420   PORT_START("GAMESEL2")
421   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 11") PORT_CODE(KEYCODE_M)
422   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 10") PORT_CODE(KEYCODE_J)
423   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 09") PORT_CODE(KEYCODE_U)
424   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 08") PORT_CODE(KEYCODE_7)
425   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 15") PORT_CODE(KEYCODE_COMMA)
426   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 14") PORT_CODE(KEYCODE_K)
427   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 13") PORT_CODE(KEYCODE_I)
428   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 12") PORT_CODE(KEYCODE_8)
421   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 11") PORT_CODE(KEYCODE_COMMA)
422   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 10") PORT_CODE(KEYCODE_K)
423   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 09") PORT_CODE(KEYCODE_I)
424   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 08") PORT_CODE(KEYCODE_8)
425   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 15") PORT_CODE(KEYCODE_STOP)
426   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 14") PORT_CODE(KEYCODE_L)
427   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 13") PORT_CODE(KEYCODE_O)
428   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Game 12") PORT_CODE(KEYCODE_9)
429429INPUT_PORTS_END
430430
431431static INPUT_PORTS_START( gg )
r29589r29590
606606   MCFG_SMS_EXPANSION_ADD("exp", sms_expansion_devices, NULL)
607607MACHINE_CONFIG_END
608608
609static MACHINE_CONFIG_START( sms_sdisp, smssdisp_state )
610   /* basic machine hardware */
611   MCFG_CPU_ADD("maincpu", Z80, XTAL_53_693175MHz/15)
612   MCFG_CPU_PROGRAM_MAP(sms_mem)
613   MCFG_CPU_IO_MAP(sms_io)
609static MACHINE_CONFIG_DERIVED_CLASS( sms_sdisp, sms1_ntsc, smssdisp_state )
614610
615   MCFG_QUANTUM_TIME(attotime::from_hz(60))
611   MCFG_DEVICE_MODIFY("sms_vdp")
612   MCFG_SEGA315_5124_INT_CB(WRITELINE(smssdisp_state, sms_store_int_callback))
616613
617   MCFG_MACHINE_START_OVERRIDE(sms_state,sms)
618   MCFG_MACHINE_RESET_OVERRIDE(sms_state,sms)
619
620   /* sound hardware */
621   MCFG_SPEAKER_STANDARD_MONO("mono")
622
623   MCFG_SOUND_ADD("segapsg", SEGAPSG, XTAL_53_693175MHz/15)
624   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
625
626   /* video hardware */
627   MCFG_SCREEN_ADD("screen", RASTER)
628   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
629      SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
630      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
631   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
632
633   MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0)
634   MCFG_SEGA315_5246_SET_SCREEN("screen")
635   MCFG_SEGA315_5246_IS_PAL(false)
636   MCFG_SEGA315_5246_INT_CB(WRITELINE(smssdisp_state, sms_store_int_callback))
637   MCFG_SEGA315_5246_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
638
639614   MCFG_CPU_ADD("control", Z80, XTAL_53_693175MHz/15)
640615   MCFG_CPU_PROGRAM_MAP(sms_store_mem)
641616   /* Both CPUs seem to communicate with the VDP etc? */
642617   MCFG_CPU_IO_MAP(sms_io)
643618
644   MCFG_SMS_CARTRIDGE_ADD("slot", sms_cart, NULL) // should be mandatory?
619   MCFG_DEVICE_REMOVE("mycard")
620   MCFG_DEVICE_REMOVE("exp")
621
645622   MCFG_SMS_CARTRIDGE_ADD("slot2", sms_cart, NULL)
646623   MCFG_SMS_CARTRIDGE_ADD("slot3", sms_cart, NULL)
647624   MCFG_SMS_CARTRIDGE_ADD("slot4", sms_cart, NULL)
r29589r29590
674651   MCFG_SMS_CARD_ADD("slot30", sms_cart, NULL)
675652   MCFG_SMS_CARD_ADD("slot31", sms_cart, NULL)
676653   MCFG_SMS_CARD_ADD("slot32", sms_cart, NULL)
677
678   MCFG_SOFTWARE_LIST_ADD("cart_list","sms")
679
680   MCFG_SMS_CONTROL_PORT_ADD(CONTROL1_TAG, sms_control_port_devices, "joypad")
681   MCFG_SMS_CONTROL_PORT_TH_INPUT_HANDLER(WRITELINE(sms_state, sms_ctrl1_th_input))
682   MCFG_SMS_CONTROL_PORT_PIXEL_HANDLER(READ32(sms_state, sms_pixel_color))
683
684   MCFG_SMS_CONTROL_PORT_ADD(CONTROL2_TAG, sms_control_port_devices, "joypad")
685   MCFG_SMS_CONTROL_PORT_TH_INPUT_HANDLER(WRITELINE(sms_state, sms_ctrl2_th_input))
686   MCFG_SMS_CONTROL_PORT_PIXEL_HANDLER(READ32(sms_state, sms_pixel_color))
687654MACHINE_CONFIG_END
688655
689656static MACHINE_CONFIG_START( sms_pal_base, sms_state )
trunk/src/mess/machine/sms.c
r29589r29590
912912{
913913   int led_number = data >> 4;
914914   int led_column = led_number / 4;
915   int led_line = 3 - (led_number % 4);
916   int game_number = (4 * led_column) + led_line;
915   int led_line = led_number % 4;
916   int game_number = (4 * led_column) + (3 - led_line);
917917
918918   logerror("0x%04X: sms_store_control write 0x%02X\n", space.device().safe_pc(), data);
919919   logerror("sms_store_control: LED #%d activated for game #%d\n", led_number, game_number);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team