mirror of
https://github.com/holub/mame
synced 2025-05-28 16:43:04 +03:00
hh_sm510: Improved Mickey & Donald SVG artwork [Sean Riddle, RColtrane]
made dual-screen games add 2 screens instead of combined svg (nw) New working machine added ------- Game & Watch: Donkey Kong Jr. (new wide screen) [hap, Sean Riddle, RColtrane]
This commit is contained in:
parent
7044a6b5fc
commit
8f6aad8c96
@ -5,8 +5,11 @@
|
||||
Sharp SM510/SM511 handhelds.
|
||||
|
||||
TODO:
|
||||
- svg lcd screen background/foreground (not supported in core)
|
||||
- ktmnt: "LIMIT" flickers when going underwater on level 1
|
||||
- svg lcd screen background/foreground (not supported in core),
|
||||
or should it be for external artwork only?
|
||||
- flickering segments, lcd physics? or screen update timing?
|
||||
* ktmnt: "LIMIT" segment when going underwater on level 1
|
||||
* gnw_dj101: cage and clock before you start the game
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -19,6 +22,8 @@
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "gnw_dualv.lh"
|
||||
//#include "hh_sm510_test.lh" // common test-layout - use external artwork
|
||||
|
||||
|
||||
@ -388,6 +393,8 @@ MACHINE_CONFIG_END
|
||||
Konami Gradius
|
||||
* PCB label BH004
|
||||
* Sharp SM511 under epoxy (die label KMS73B, KMS774)
|
||||
|
||||
Known in Japan as Nemesis.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -556,11 +563,17 @@ static MACHINE_CONFIG_START( dm53 )
|
||||
MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r2_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_SVG_ADD("screen", "svg")
|
||||
MCFG_SCREEN_SVG_ADD("top", "svg_top")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(802, 1080)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 1080-1)
|
||||
MCFG_DEFAULT_LAYOUT(layout_svg)
|
||||
MCFG_SCREEN_SIZE(1000, 645)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1000-1, 0, 645-1)
|
||||
|
||||
MCFG_SCREEN_SVG_ADD("bottom", "svg_bottom")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(1000, 635)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1000-1, 0, 635-1)
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_gnw_dualv)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -622,11 +635,86 @@ static MACHINE_CONFIG_START( jr55 )
|
||||
MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
|
||||
MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_SVG_ADD("top", "svg_top")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(1000, 638)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1000-1, 0, 638-1)
|
||||
|
||||
MCFG_SCREEN_SVG_ADD("bottom", "svg_bottom")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(1000, 657)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1000-1, 0, 657-1)
|
||||
|
||||
MCFG_DEFAULT_LAYOUT(layout_gnw_dualv)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Nintendo Game & Watch: Donkey Kong Jr. (model DJ-101)
|
||||
* Sharp SM510 label DJ-101 52ZA (no decap)
|
||||
|
||||
This is the new wide screen version, there's also a tabletop version that
|
||||
plays more like the arcade game.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class dj101_state : public hh_sm510_state
|
||||
{
|
||||
public:
|
||||
dj101_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_sm510_state(mconfig, type, tag)
|
||||
{
|
||||
m_inp_lines = 3;
|
||||
}
|
||||
};
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( dj101 )
|
||||
PORT_START("IN.0")
|
||||
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
|
||||
|
||||
PORT_START("IN.1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
|
||||
|
||||
PORT_START("IN.2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm")
|
||||
|
||||
PORT_START("ACL")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( dj101 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", SM510, XTAL_32_768kHz)
|
||||
MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, lcd_segment_w))
|
||||
MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
|
||||
MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
|
||||
MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_SVG_ADD("screen", "svg")
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
MCFG_SCREEN_SIZE(802, 1080)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 1080-1)
|
||||
MCFG_SCREEN_SIZE(1665, 1080)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 1665-1, 0, 1080-1)
|
||||
MCFG_DEFAULT_LAYOUT(layout_svg)
|
||||
|
||||
/* sound hardware */
|
||||
@ -643,6 +731,8 @@ MACHINE_CONFIG_END
|
||||
|
||||
Nintendo Game & Watch: Mario's Cement Factory (model ML-102)
|
||||
* Sharp SM510 label ML-102 298D (die label CMS54C, KMS577)
|
||||
|
||||
This is the new wide screen version, there's also a tabletop version.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
@ -798,7 +888,7 @@ ROM_START( ktopgun ) // except for filler/unused bytes, ROM listing in patent US
|
||||
ROM_LOAD( "cms54c_kms598", 0x0000, 0x1000, CRC(50870b35) SHA1(cda1260c2e1c180995eced04b7d7ff51616dcef5) )
|
||||
|
||||
ROM_REGION( 423317, "svg", 0)
|
||||
ROM_LOAD( "ktopgun.svg", 0, 423317, BAD_DUMP CRC(1e341717) SHA1(74f4ae3fa0e4aacfda76d46753a5a06f115d221f) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "ktopgun.svg", 0, 423317, CRC(1e341717) SHA1(74f4ae3fa0e4aacfda76d46753a5a06f115d221f) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -810,7 +900,7 @@ ROM_START( kcontra ) // except for filler/unused bytes, ROM listing in patent US
|
||||
ROM_LOAD( "kms73b_kms773.melody", 0x000, 0x100, CRC(23d02b99) SHA1(703938e496db0eeacd14fe7605d4b5c39e0a5bc8) )
|
||||
|
||||
ROM_REGION( 710430, "svg", 0)
|
||||
ROM_LOAD( "kcontra.svg", 0, 710430, BAD_DUMP CRC(66cfc3a2) SHA1(bd38d62bb14321dfec2f99c1cd9346fb5f1fd856) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "kcontra.svg", 0, 710430, CRC(66cfc3a2) SHA1(bd38d62bb14321dfec2f99c1cd9346fb5f1fd856) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -822,7 +912,7 @@ ROM_START( ktmnt ) // except for filler/unused bytes, ROM listing in patent US51
|
||||
ROM_LOAD( "kms73b_kms774.melody", 0x000, 0x100, CRC(8270d626) SHA1(bd91ca1d5cd7e2a62eef05c0033b19dcdbe441ca) )
|
||||
|
||||
ROM_REGION( 607424, "svg", 0)
|
||||
ROM_LOAD( "ktmnt.svg", 0, 607424, BAD_DUMP CRC(54ce0f2e) SHA1(1cd2d4c3026e8693f234ddfbbbe5f24311e5981d) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "ktmnt.svg", 0, 607424, CRC(54ce0f2e) SHA1(1cd2d4c3026e8693f234ddfbbbe5f24311e5981d) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -834,7 +924,7 @@ ROM_START( kgradius )
|
||||
ROM_LOAD( "kms73b_kms771.melody", 0x000, 0x100, CRC(4c586b73) SHA1(14c5ab2898013a577f678970a648c374749cc66d) )
|
||||
|
||||
ROM_REGION( 628695, "svg", 0)
|
||||
ROM_LOAD( "kgradius.svg", 0, 628695, BAD_DUMP CRC(56ac8ee8) SHA1(c47190e7aaebbe84ed1ad55a8e88f5ebb18f939b) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "kgradius.svg", 0, 628695, CRC(56ac8ee8) SHA1(c47190e7aaebbe84ed1ad55a8e88f5ebb18f939b) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -846,7 +936,7 @@ ROM_START( kloneran )
|
||||
ROM_LOAD( "kms73b_kms781.melody", 0x000, 0x100, CRC(a393de36) SHA1(55089f04833ccb318524ab2b584c4817505f4019) )
|
||||
|
||||
ROM_REGION( 630184, "svg", 0)
|
||||
ROM_LOAD( "kloneran.svg", 0, 630184, BAD_DUMP CRC(9b254520) SHA1(c9c85df44cc16f59f25df418b2e1aeba9f2f470c) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "kloneran.svg", 0, 630184, CRC(9b254520) SHA1(c9c85df44cc16f59f25df418b2e1aeba9f2f470c) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -854,8 +944,11 @@ ROM_START( gnw_dm53 )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "dm53_cms54c_cms565", 0x0000, 0x1000, CRC(e21fc0f5) SHA1(3b65ccf9f98813319410414e11a3231b787cdee6) )
|
||||
|
||||
ROM_REGION( 195362, "svg", 0)
|
||||
ROM_LOAD( "gnw_dm53.svg", 0, 195362, BAD_DUMP CRC(3aa1cdfa) SHA1(cc938d05160fdefb9f030e9d9caeaf6ff472ffe3) ) // by OG/hap, ver. 17 may 2017
|
||||
ROM_REGION( 124249, "svg_top", 0)
|
||||
ROM_LOAD( "gnw_dm53_top.svg", 0, 124249, CRC(d85ec1cc) SHA1(19828945c09defa3efc47eea8fa6128a0e5e9a2a) ) // by Sean/RColtrane/hap, ver. 6 jun 2017
|
||||
|
||||
ROM_REGION( 108485, "svg_bottom", 0)
|
||||
ROM_LOAD( "gnw_dm53_bottom.svg", 0, 108485, CRC(c5649701) SHA1(b5bd436015927503a8e647a5d02bd9c87acd1e55) ) // "
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -863,8 +956,20 @@ ROM_START( gnw_jr55 )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "jr55_cms54c_kms560", 0x0000, 0x1000, CRC(46aed0ae) SHA1(72f75ccbd84aea094148c872fc7cc1683619a18a) )
|
||||
|
||||
ROM_REGION( 405524, "svg", 0)
|
||||
ROM_LOAD( "gnw_jr55.svg", 0, 405524, BAD_DUMP CRC(5124fd7a) SHA1(5043fcb27975d79a358451824d5b341bd4f7193a) ) // by Reinier/hap, ver. 7 may 2017
|
||||
ROM_REGION( 207510, "svg_top", 0)
|
||||
ROM_LOAD( "gnw_jr55_top.svg", 0, 207510, CRC(598cc4b1) SHA1(ec485b73b8dcd521c236803d50c80203e0f29330) ) // by Reinier/hap, ver. 6 jun 2017
|
||||
|
||||
ROM_REGION( 200145, "svg_bottom", 0)
|
||||
ROM_LOAD( "gnw_jr55_bottom.svg", 0, 200145, CRC(07285db4) SHA1(49e1fc394750457cab0fb3297b12957af685ac2d) ) // "
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( gnw_dj101 )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "dj101", 0x0000, 0x1000, CRC(8dcfb5d1) SHA1(e0ef578e9362eb9a3cab631376df3cf55978f2de) )
|
||||
|
||||
ROM_REGION( 277252, "svg", 0)
|
||||
ROM_LOAD( "gnw_dj101.svg", 0, 277252, CRC(d7a3832d) SHA1(59e603d9a3ba503ebbf94574d6544cb5095a0df4) ) // by Sean/RColtrane, ver. 6 jun 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -873,7 +978,7 @@ ROM_START( gnw_ml102 )
|
||||
ROM_LOAD( "ml102_cms54c_kms577", 0x0000, 0x1000, CRC(c1128dea) SHA1(8647e36f43a0e37756a3c7b6a3f08d4c8243f1cc) )
|
||||
|
||||
ROM_REGION( 300571, "svg", 0)
|
||||
ROM_LOAD( "gnw_ml102.svg", 0, 300571, BAD_DUMP CRC(8d8be5a9) SHA1(ee3a761ee956b86c064c83a15e4b833f83c23520) ) // by Sean/hap/JonasP, ver. 17 may 2017
|
||||
ROM_LOAD( "gnw_ml102.svg", 0, 300571, CRC(8d8be5a9) SHA1(ee3a761ee956b86c064c83a15e4b833f83c23520) ) // by Sean/hap/JonasP, ver. 17 may 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -885,7 +990,7 @@ ROM_START( gnw_bx301 )
|
||||
ROM_LOAD( "bx301_kms73b_kms744.melody", 0x000, 0x100, CRC(439d943d) SHA1(52880df15ec7513f96482f455ef3d9778aa24750) )
|
||||
|
||||
ROM_REGION( 258514, "svg", 0)
|
||||
ROM_LOAD( "gnw_bx301.svg", 0, 258514, BAD_DUMP CRC(7b251101) SHA1(002e41374517f1fd8cecd66a2b2338aac736f319) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_LOAD( "gnw_bx301.svg", 0, 258514, CRC(7b251101) SHA1(002e41374517f1fd8cecd66a2b2338aac736f319) ) // by Sean, ver. 11 apr 2017
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -899,5 +1004,6 @@ CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Kona
|
||||
|
||||
CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1982, gnw_dj101, 0, 0, dj101, dj101, dj101_state, 0, "Nintendo", "Game & Watch: Donkey Kong Jr. (new wide screen)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory (new wide screen)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE )
|
||||
|
34
src/mame/layout/gnw_dualv.lay
Normal file
34
src/mame/layout/gnw_dualv.lay
Normal file
@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<view name="Screen 0 Pixel Aspect (~scr0nativexaspect~:~scr0nativeyaspect~)">
|
||||
<screen index="0">
|
||||
<bounds left="0" top="0" right="~scr0width~" bottom="~scr0height~" />
|
||||
</screen>
|
||||
</view>
|
||||
|
||||
<view name="Screen 1 Pixel Aspect (~scr1nativexaspect~:~scr1nativeyaspect~)">
|
||||
<screen index="1">
|
||||
<bounds left="0" top="0" right="~scr1width~" bottom="~scr1height~" />
|
||||
</screen>
|
||||
</view>
|
||||
|
||||
<view name="Dual Over-Under">
|
||||
<screen index="0">
|
||||
<bounds x="0" y="-~scr0height~" width="~scr0width~" height="~scr0height~" />
|
||||
</screen>
|
||||
<screen index="1">
|
||||
<bounds x="0" y="40" width="~scr1width~" height="~scr1height~" />
|
||||
</screen>
|
||||
</view>
|
||||
|
||||
<view name="Dual Over-Under (Gapless)">
|
||||
<screen index="0">
|
||||
<bounds x="0" y="-~scr0height~" width="~scr0width~" height="~scr0height~" />
|
||||
</screen>
|
||||
<screen index="1">
|
||||
<bounds x="0" y="-1" width="~scr1width~" height="~scr1height~" />
|
||||
</screen>
|
||||
</view>
|
||||
|
||||
</mamelayout>
|
@ -14504,6 +14504,7 @@ nupogodi //
|
||||
|
||||
@source:hh_sm510.cpp
|
||||
gnw_bx301 // Nintendo
|
||||
gnw_dj101 // Nintendo
|
||||
gnw_dm53 // Nintendo
|
||||
gnw_jr55 // Nintendo
|
||||
gnw_ml102 // Nintendo
|
||||
|
Loading…
Reference in New Issue
Block a user