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:
hap 2017-06-06 22:35:46 +02:00
parent 7044a6b5fc
commit 8f6aad8c96
3 changed files with 161 additions and 20 deletions

View File

@ -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 )

View 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>

View File

@ -14504,6 +14504,7 @@ nupogodi //
@source:hh_sm510.cpp
gnw_bx301 // Nintendo
gnw_dj101 // Nintendo
gnw_dm53 // Nintendo
gnw_jr55 // Nintendo
gnw_ml102 // Nintendo