mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
Systems promoted to working
--------------------------- Montana Super Draw (4436-05, U5-0) [Brian Troha] - seta/seta.cpp: made zingzipbl go a bit further, marked its Oki ROM as bad. Main blocker is the different sprite format. - shared/segam1audio.cpp: measured clocks [Guru]
This commit is contained in:
parent
ce215330ad
commit
0a51009b74
@ -82,7 +82,7 @@ void x1_001_device::device_start()
|
||||
perspective.
|
||||
|
||||
jjsquawk has a garbage tile in the bottom left instead, but in this case the entire
|
||||
m_spriteylow is initalized (to 0), but sprite entry 0 for the other tables is never
|
||||
m_spriteylow is initialized (to 0), but sprite entry 0 for the other tables is never
|
||||
written to, again meaning it picks up whatever we clear the RAM to as positional
|
||||
values.
|
||||
|
||||
|
@ -851,7 +851,12 @@ static INPUT_PORTS_START( rivierab )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( mosdraw )
|
||||
PORT_INCLUDE( riviera )
|
||||
PORT_INCLUDE( meritpoker )
|
||||
|
||||
PORT_MODIFY("DSW") // DSW affects only points per coins, everything seems hard coded values
|
||||
PORT_DIPNAME( 0x10, 0x00, "Points Per Coin" ) PORT_DIPLOCATION("SW1:5")
|
||||
PORT_DIPSETTING( 0x00, "5" )
|
||||
PORT_DIPSETTING( 0x10, "1" )
|
||||
|
||||
PORT_MODIFY("IN2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // to bypass printer check TODO: proper emulation
|
||||
@ -1995,7 +2000,6 @@ ROM_END
|
||||
|
||||
// Sub board CRT-203 includes 2 P8255A, parallel printer connection & MM58174AN RTC that plugs in through the CRT-200's P8255 socket.
|
||||
// There is a battery that connects to the PCB to keep the CRT-200's Mosel MS6264L-10PC RAM active and also runs to the CRT-203 for the RTC (guess)
|
||||
// Currently the game starts with an error, press F2 to configure RTC then press Deal (2)
|
||||
ROM_START( mosdraw )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "4436-05_u5-0.u5", 0x0000, 0x8000, CRC(d0194059) SHA1(4e106c7e38fd92e005f5e1899b6fbca4ab62ce6d) ) // 4436-05 U5-0 041790
|
||||
@ -2007,6 +2011,9 @@ ROM_START( mosdraw )
|
||||
|
||||
ROM_REGION( 0x2000, "gfx2", 0 )
|
||||
ROM_LOAD( "tana_u40.u40", 0x00000, 0x2000, CRC(a45cae66) SHA1(499759badc006fa09706d349e252284949d20a2d) )
|
||||
|
||||
ROM_REGION( 0x2000, "nvram", 0 )
|
||||
ROM_LOAD( "nvram", 0x0000, 0x2000, CRC(61351962) SHA1(b2a18563c41b58385d6b0ccbc621fddd0d82f1b5) ) // preconfigured NVRAM to avoid error on boot
|
||||
ROM_END
|
||||
|
||||
ROM_START( bigappg )
|
||||
@ -2989,7 +2996,7 @@ GAME( 1984, chkndrawa, chkndraw, pitboss, chkndraw, merit_state, empty_
|
||||
GAME( 1987, riviera, 0, riviera, riviera, merit_state, empty_init, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4A)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, rivieraa, riviera, riviera, riviera, merit_state, empty_init, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1986, rivierab, riviera, riviera, rivierab, merit_state, empty_init, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-2D)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
|
||||
GAME( 1990, mosdraw, 0, mosdraw, mosdraw, merit_state, empty_init, ROT0, "Merit", "Montana Super Draw (4436-05, U5-0)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // needs printer and RTC hook up
|
||||
GAME( 1990, mosdraw, 0, mosdraw, mosdraw, merit_state, empty_init, ROT0, "Merit", "Montana Super Draw (4436-05, U5-0)", MACHINE_NODEVICE_PRINTER | MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // needs printer and RTC hook up
|
||||
|
||||
GAME( 1986, bigappg, 0, bigappg, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, misdraw, 0, misdraw, bigappg, merit_state, empty_init, ROT0, "Big Apple Games / Merit", "Michigan Super Draw (2131-16, U5-2)", MACHINE_SUPPORTS_SAVE )
|
||||
@ -3008,33 +3015,33 @@ GAME( 1985, trvwza, trvwz, trvwhiz, trivia, merit_quiz_state, empty_
|
||||
GAME( 1985, trvwzb, trvwz, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz (6221-00, Alt Gen trivia)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwzv, trvwz, trvwhiz, trivia, merit_quiz_state, empty_init, ROT90, "Merit", "Trivia ? Whiz (6221-02, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1985, trvwz2, 0, trvwhiz, trivia, merit_quiz_state, init_key<2>, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz2a, trvwz2, trvwhiz, trivia, merit_quiz_state, init_key<2>, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2 Alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz2, 0, trvwhiz, trivia, merit_quiz_state, init_key<2>, ROT90, "Merit", "Trivia ? Whiz Edition 2 (6221-05)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz2a, trvwz2, trvwhiz, trivia, merit_quiz_state, init_key<2>, ROT90, "Merit", "Trivia ? Whiz Edition 2 (6221-05, Alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1985, trvwz3, 0, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz (6221-05, U5-0D, Edition 3)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3a, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz (6221-05, U5-0C, Edition 3)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3b, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz (6221-05, Edition 3 Sex trivia III)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3v, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT90, "Merit", "Trivia ? Whiz (6221-04, U5-0E, Edition 3 Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3, 0, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz Edition 3 (6221-05, U5-0D)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3a, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz Edition 3 (6221-05, U5-0C)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3b, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT0, "Merit", "Trivia ? Whiz Edition 3 (6221-05, with Sex trivia III)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz3v, trvwz3, trvwhiz, trivia, merit_quiz_state, empty_init, ROT90, "Merit", "Trivia ? Whiz Edition 3 (6221-04, U5-0E, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1985, trvwz4, 0, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT0, "Merit", "Trivia ? Whiz (6221-10, U5-0A, Edition 4)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz4v, trvwz4, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B, Edition 4 Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz4va, trvwz4, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B, Edition 4 Vertical Alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz4, 0, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT0, "Merit", "Trivia ? Whiz Edition 4 (6221-10, U5-0A)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz4v, trvwz4, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT90, "Merit", "Trivia ? Whiz Edition 4 (6221-13, U5-0B, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, trvwz4va, trvwz4, trvwhziv, trvwhziv, merit_quiz_state, init_key<5>, ROT90, "Merit", "Trivia ? Whiz Edition 4 (6221-13, U5-0B, alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1985, tictac, 0, tictac, tictac, merit_quiz_state, init_key<8>, ROT0, "Merit", "Tic Tac Trivia (6221-23, U5-0C, 07/07/86)", MACHINE_SUPPORTS_SAVE ) // all new trivia categories
|
||||
GAME( 1985, tictaca, tictac, tictac, tictac, merit_quiz_state, init_key<4>, ROT0, "Merit", "Tic Tac Trivia (6221-23, U5-0C, 02/11/86)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, tictacv, tictac, tictac, tictac, merit_quiz_state, init_key<4>, ROT90, "Merit", "Tic Tac Trivia (6221-22, U5-0 Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, tictacv, tictac, tictac, tictac, merit_quiz_state, init_key<4>, ROT90, "Merit", "Tic Tac Trivia (6221-22, U5-0, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, phrcraze, 0, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-3A Expanded Questions)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazea, phrcraze, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-3 Expanded Questions)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcraze, 0, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-3A, Expanded Questions)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazea, phrcraze, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-3, Expanded Questions)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazeb, phrcraze, phrcraze, phrcraze, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-0A)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazec, phrcraze, phrcraze, phrcraza, merit_quiz_state, init_key<7>, ROT0, "Merit", "Phraze Craze (6221-40, U5-0)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazev, phrcraze, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT90, "Merit", "Phraze Craze (6221-45, U5-2 Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, phrcrazev, phrcraze, phrcraze, phrcrazs, merit_quiz_state, init_key<7>, ROT90, "Merit", "Phraze Craze (6221-45, U5-2, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwz5, merit_quiz_state, init_dtrvwz5, ROT0, "Merit", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, dtrvwz5v, dtrvwz5, dtrvwz5, dtrvwz5, merit_quiz_state, init_dtrvwz5, ROT90, "Merit", "Deluxe Trivia ? Whiz (6221-75, U5-0 Edition 5 Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwz5, merit_quiz_state, init_dtrvwz5, ROT0, "Merit", "Deluxe Trivia ? Whiz Edition 5 (6221-70, U5-0A)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, dtrvwz5v, dtrvwz5, dtrvwz5, dtrvwz5, merit_quiz_state, init_dtrvwz5, ROT90, "Merit", "Deluxe Trivia ? Whiz Edition 5 (6221-75, U5-0, Vertical)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1986, matchem, 0, couple, matchem, merit_state, init_crt209, ROT0, "Merit", "Match'em Up (6221-51, U5-1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, matchemg, matchem, couple, matchemg, merit_state, init_crt209, ROT0, "Merit", "Match'em Up (6221-55, U5-1 German)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, matchemg, matchem, couple, matchemg, merit_state, init_crt209, ROT0, "Merit", "Match'em Up (6221-55, U5-1, German)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, couple, matchem, couple, couple, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, couplep, matchem, couple, couplep, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, couplei, matchem, couple, couple, merit_state, init_crt209, ROT0, "bootleg", "The Couples (set 3)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -20,8 +20,8 @@ TODO:
|
||||
- ma6710 hangs at UART device check (PC=5e44). Bypassing it, game stops with 'TOD CLOCK ERROR';
|
||||
- Never initializes RAMDAC;
|
||||
- Never initializes CRTC on CRT-352 games;
|
||||
- Map secondary NVRAM moduleM
|
||||
- Map / connect up Dallas DS1216 RTCM
|
||||
- Map secondary NVRAM module;
|
||||
- Map / connect up Dallas DS1216 RTC;
|
||||
- ma6710a/ma9800 start with game malfunction message. It can be started by switching IN2:2 on,
|
||||
then pressing discard 3. Games 'Super Eight' and 'Black Jack' show GFX banking logic isn't correct.
|
||||
'Black Jack' GFX are over 0x8000 in ROM but proper GFX bank bit hasn't been identified.
|
||||
@ -762,11 +762,11 @@ lamps for control panel buttons
|
||||
*/
|
||||
static INPUT_PORTS_START( merit3xx )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Discard 1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_NAME("Discard 1") // "Double Down" button in Blackjack
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_NAME("Discard 2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3") // "Split" button in Blackjack
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4") // "Stand" button in Blackjack
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5") // "Hit" button in Blackjack
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT )
|
||||
@ -836,10 +836,27 @@ static INPUT_PORTS_START( merit3xx )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/*
|
||||
Translations of on screen messages for ma9800:
|
||||
Bedobott Ermek = Inserted Coins
|
||||
Hivja A Gepkezelot = Call Attendant
|
||||
Feketedoboz Hiba = Blackbox Error
|
||||
|
||||
Button labels:
|
||||
TET = Bet
|
||||
OSZT = Deal
|
||||
KIFIZET = Collect
|
||||
BEFEJEZ = Stand
|
||||
ELDOB/VISSZAVESZ = Discard/Recover
|
||||
|
||||
It seems that this set uses a hopper instead of a printer like other sets.
|
||||
*/
|
||||
|
||||
static INPUT_PORTS_START( ma9800 )
|
||||
PORT_INCLUDE( merit3xx )
|
||||
|
||||
// PORT_START("IN1")
|
||||
// PORT_MODIFY("IN1")
|
||||
// PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) // Button labeled ELDOB/VISSZAVESZ
|
||||
// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) // Button labeled ELDOB/VISSZAVESZ
|
||||
// PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) // Button labeled ELDOB/VISSZAVESZ
|
||||
@ -853,12 +870,8 @@ static INPUT_PORTS_START( ma9800 )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) // gives 1 credit at a time (25 cents)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) // gives 4 credits at a time ($1.00)
|
||||
// PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_STAND ) // Button labeled BEFEJEZ
|
||||
PORT_DIPNAME( 0x20, 0x20, "IN1.6 Door" ) PORT_TOGGLE // <-- for ma9800 set, ON results in DOOR OPEN error
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "IN1.7 Door" ) PORT_TOGGLE // <-- for ma9800 set, ON results in DOOR OPEN error
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 2") PORT_CODE(KEYCODE_U) PORT_TOGGLE // Unknown what these 2 are but will give DOOR OPEN errors
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Door 3") PORT_CODE(KEYCODE_Y) PORT_TOGGLE // Unknown what these 2 are but will give DOOR OPEN errors
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2) // gives 4 credits at a time ($1.00)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
@ -2052,8 +2052,8 @@ ROM_END
|
||||
*/
|
||||
|
||||
GAME( 1994, tekken, 0, tekken, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken (World, TE2/VER.C)", 0 )
|
||||
GAME( 1994, tekkenac, tekken, tekken, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken (Asia, TE4/VER.C)", 0 )
|
||||
GAME( 1994, tekkenb, tekken, tekken, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken (World, TE2/VER.B)", 0 )
|
||||
GAME( 1994, tekkenac, tekken, tekken, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken (Asia, TE4/VER.C)", 0 )
|
||||
GAME( 1994, tekkenjb, tekken, tekken, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", 0 )
|
||||
GAME( 1996, tekken2, 0, tekken2, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken 2 Ver.B (World, TES2/VER.D)", 0 )
|
||||
GAME( 1995, tekken2b, tekken2, tekken2o, tekken, namcos11_state, empty_init, ROT0, "Namco", "Tekken 2 Ver.B (World, TES2/VER.B)", 0 )
|
||||
|
@ -3565,8 +3565,8 @@ ROM_END
|
||||
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME, FLAGS
|
||||
GAME( 1996, tekken3, 0, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.E1)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3d, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.D)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3b, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.B)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3c, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.C)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3b, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.B)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3a, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (World, TET2/VER.A)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3ud, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.D)", 0 ) /* KC006 */
|
||||
GAME( 1996, tekken3ua, tekken3, coh700, namcos12, namcos12_state, init_namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.A)", 0 ) /* KC006 */
|
||||
|
@ -14,6 +14,7 @@ Known functional issues:
|
||||
|
||||
Sega Model 1 Hardware Overview
|
||||
------------------------------
|
||||
Documented by Guru
|
||||
|
||||
Note! This document is a Work-In-Progress and covers all the dumped Sega Model 1 games, including...
|
||||
|
||||
@ -1752,7 +1753,7 @@ void model1_state::model1(machine_config &config)
|
||||
I8251(config, m_m1uart, 8000000); // uPD71051C, clock unknown
|
||||
m_m1uart->txd_handler().set(m_m1audio, FUNC(segam1audio_device::write_txd));
|
||||
|
||||
clock_device &m1uart_clock(CLOCK(config, "m1uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
|
||||
clock_device &m1uart_clock(CLOCK(config, "m1uart_clock", 16_MHz_XTAL / 2 / 16)); // 16 times 31.25kHz (standard Sega/MIDI sound data rate)
|
||||
m1uart_clock.signal_handler().set(m_m1uart, FUNC(i8251_device::write_txc));
|
||||
m1uart_clock.signal_handler().append(m_m1uart, FUNC(i8251_device::write_rxc));
|
||||
}
|
||||
|
@ -2544,7 +2544,7 @@ void model2o_state::model2o(machine_config &config)
|
||||
I8251(config, m_uart, 8000000); // uPD71051C, clock unknown
|
||||
m_uart->txd_handler().set(m_m1audio, FUNC(segam1audio_device::write_txd));
|
||||
|
||||
clock_device &uart_clock(CLOCK(config, "uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
|
||||
clock_device &uart_clock(CLOCK(config, "uart_clock", 16_MHz_XTAL / 2 / 16)); // 16 times 31.25kHz (standard Sega/MIDI sound data rate)
|
||||
uart_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc));
|
||||
uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc));
|
||||
|
||||
|
@ -1439,7 +1439,6 @@ protected:
|
||||
void seta_vregs_w(u8 data);
|
||||
u16 seta_dsw_r(offs_t offset);
|
||||
|
||||
u16 zingzipbl_unknown_r();
|
||||
void blockcar_interrupt_w(u8 data);
|
||||
u16 extdwnhl_watchdog_r();
|
||||
void utoukond_sound_control_w(u8 data);
|
||||
@ -2497,41 +2496,36 @@ void zombraid_state::zombraid_x1_map(address_map &map)
|
||||
map(0x80000, 0xfffff).bankr("x1_bank");
|
||||
}
|
||||
|
||||
u16 seta_state::zingzipbl_unknown_r()
|
||||
{
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
void seta_state::zingzipbl_map(address_map &map)
|
||||
{
|
||||
map(0x000000, 0x07ffff).rom(); // ROM (up to 2MB)
|
||||
map(0x200000, 0x20ffff).ram().share("workram"); // RAM (pointer for zombraid crosshair hack)
|
||||
// map(0x400000, 0x400001).port_r("P1"); // P1
|
||||
// map(0x400002, 0x400003).port_r("P2"); // P2
|
||||
map(0x400002, 0x400003).r(FUNC(seta_state::zingzipbl_unknown_r)); // P2
|
||||
// map(0x400004, 0x400005).port_r("COINS"); // Coins
|
||||
map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // Coin Lockout
|
||||
map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // Video Registers
|
||||
map(0x500004, 0x500005).nopw();
|
||||
//map(0x600000, 0x600003).r(FUNC(seta_state::seta_dsw_r)); // DSW
|
||||
map(0x700400, 0x700fff).ram().share("paletteram1"); // Palette
|
||||
map(0x800000, 0x803fff).ram().w(m_layers[0], FUNC(x1_012_device::vram_w)).share("layer1"); // VRAM 0&1
|
||||
map(0x880000, 0x883fff).ram().w(m_layers[1], FUNC(x1_012_device::vram_w)).share("layer2"); // VRAM 2&3
|
||||
map(0x900000, 0x900005).rw(m_layers[0], FUNC(x1_012_device::vctrl_r), FUNC(x1_012_device::vctrl_w)); // VRAM 0&1 Ctrl
|
||||
map(0x000000, 0x07ffff).rom(); // ok
|
||||
map(0x200000, 0x20ffff).ram(); // ok
|
||||
// TODO: coins (possibly 0x400000). For now only free-play 'works'.
|
||||
map(0x500001, 0x500001).w(FUNC(seta_state::seta_coin_lockout_w)); // ok
|
||||
map(0x500003, 0x500003).w(FUNC(seta_state::seta_vregs_w)); // maybe?
|
||||
map(0x700400, 0x700fff).ram().share("paletteram1"); // ok
|
||||
map(0x800000, 0x803fff).ram().w(m_layers[0], FUNC(x1_012_device::vram_w)).share("layer1"); // ok
|
||||
map(0x880000, 0x883fff).ram().w(m_layers[1], FUNC(x1_012_device::vram_w)).share("layer2"); // ok
|
||||
map(0x902001, 0x902001).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // should be ok, but bad ROM
|
||||
// the following appear to be video registers, but laid out differently than in the original. Trampoline galore for now. TODO: verify
|
||||
map(0x902004, 0x902005).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[1]->vctrl_w(1, data, mem_mask); }));
|
||||
map(0x902006, 0x902007).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[1]->vctrl_w(0, data, mem_mask); }));
|
||||
map(0x902008, 0x902009).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[0]->vctrl_w(1, data, mem_mask); }));
|
||||
map(0x90200a, 0x90200b).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[0]->vctrl_w(0, data, mem_mask); }));
|
||||
map(0x900004, 0x900005).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[0]->vctrl_w(2, data, mem_mask); }));
|
||||
map(0x980004, 0x980005).lw16(NAME([this] (offs_t offset, uint16_t data, uint16_t mem_mask) { m_layers[1]->vctrl_w(2, data, mem_mask); }));
|
||||
map(0x902010, 0x902013).r(FUNC(seta_state::seta_dsw_r)); // ok
|
||||
map(0x902014, 0x902015).portr("P1"); // ok
|
||||
map(0x902016, 0x902017).portr("P2"); // ok
|
||||
|
||||
//map(0x902006, 0x902007).w // writes 0 here on start up
|
||||
map(0x902010, 0x902013).r(FUNC(seta_state::zingzipbl_unknown_r));
|
||||
|
||||
map(0x980000, 0x980005).rw(m_layers[1], FUNC(x1_012_device::vctrl_r), FUNC(x1_012_device::vctrl_w)); // VRAM 2&3 Ctrl
|
||||
// TODO: sprites also seem to have different registers, need correct implementation
|
||||
map(0xa00000, 0xa005ff).ram().rw(m_spritegen, FUNC(x1_001_device::spriteylow_r16), FUNC(x1_001_device::spriteylow_w16)); // Sprites Y
|
||||
map(0xa00600, 0xa00607).ram().rw(m_spritegen, FUNC(x1_001_device::spritectrl_r16), FUNC(x1_001_device::spritectrl_w16));
|
||||
map(0xa00608, 0xa00fff).ram(); // zeroed on start up
|
||||
map(0xa00600, 0xa00607).ram().rw(m_spritegen, FUNC(x1_001_device::spritectrl_r16), FUNC(x1_001_device::spritectrl_w16));
|
||||
map(0xa80000, 0xa80001).ram(); // ? 0x4000
|
||||
map(0xb00000, 0xb03fff).ram().rw(m_spritegen, FUNC(x1_001_device::spritecode_r16), FUNC(x1_001_device::spritecode_w16)); // Sprites Code + X + Attr
|
||||
map(0xc00000, 0xc000ff).ram(); // zeroed on startup
|
||||
map(0xe00000, 0xe00001).nopw(); // ? VBlank IRQ Ack
|
||||
map(0xf00000, 0xf00001).nopw(); // ? Sound IRQ Ack
|
||||
|
||||
map(0xc00000, 0xc000ff).ram(); // zeroed on startup, doesn't seem to be used later
|
||||
map(0xe00000, 0xe00001).w(m_watchdog, FUNC(watchdog_timer_device::reset16_w));
|
||||
}
|
||||
|
||||
void seta_state::jjsquawb_map(address_map &map)
|
||||
@ -9016,8 +9010,8 @@ void seta_state::zingzipbl(machine_config &config)
|
||||
|
||||
M68000(config.replace(), m_maincpu, 16000000); // 16 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &seta_state::zingzipbl_map);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(seta_state::seta_interrupt_1_and_2), "screen", 0, 1);
|
||||
subdevice<screen_device>("screen")->screen_vblank().set_nop();
|
||||
|
||||
subdevice<screen_device>("screen")->screen_vblank().set_inputline(m_maincpu, 6, HOLD_LINE); // TODO: there's probably more then this
|
||||
|
||||
config.device_remove("x1snd");
|
||||
|
||||
@ -9731,8 +9725,8 @@ ROM_START( zingzipbl )
|
||||
ROM_COPY( "gfxtemp", 0x080000, 0x000000, 0x80000 )
|
||||
ROM_COPY( "gfxtemp", 0x180000, 0x080000, 0x80000 )
|
||||
|
||||
ROM_REGION( 0x100000, "oki", 0 ) // OKI Samples - Not Seta
|
||||
ROM_LOAD( "8", 0x000000, 0x40000, CRC(7927a200) SHA1(fd6163d2867959ec14b418d6207ae024afd3b654) )
|
||||
ROM_REGION( 0x40000, "oki", 0 ) // OKI Samples - Not Seta
|
||||
ROM_LOAD( "8", 0x00000, 0x40000, BAD_DUMP CRC(7927a200) SHA1(fd6163d2867959ec14b418d6207ae024afd3b654) ) // BADADDR xxxxxxxxxxxxxxx-xx
|
||||
ROM_END
|
||||
|
||||
ROM_START( atehate )
|
||||
@ -11346,7 +11340,7 @@ GAME( 1992, neobattl, 0, umanclub, neobattl, seta_state, empty_ini
|
||||
GAME( 1992, umanclub, 0, umanclub, umanclub, seta_state, empty_init, ROT0, "Banpresto", "Ultraman Club - Tatakae! Ultraman Kyoudai!!", 0 )
|
||||
|
||||
GAME( 1992, zingzip, 0, zingzip, zingzip, seta_state, empty_init, ROT270, "Allumer / Tecmo", "Zing Zing Zip (World) / Zhen Zhen Ji Pao (China?)", 0 ) // This set has Chinese Characters in Title screen, it distributed for Chinese market/or Title: DSW?
|
||||
GAME( 1992, zingzipbl, zingzip, zingzipbl, zingzip, seta_state, empty_init, ROT270, "bootleg", "Zing Zing Zip (bootleg)", MACHINE_NOT_WORKING )
|
||||
GAME( 1992, zingzipbl, zingzip, zingzipbl, zingzip, seta_state, empty_init, ROT270, "bootleg", "Zing Zing Zip (bootleg)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // different video registers, bad Oki ROM dump
|
||||
|
||||
GAME( 1993, atehate, 0, atehate, atehate, seta_state, empty_init, ROT0, "Athena", "Athena no Hatena?", 0 )
|
||||
|
||||
|
@ -52,33 +52,37 @@ DEFINE_DEVICE_TYPE(SEGAM1AUDIO, segam1audio_device, "segam1audio", "Sega Model 1
|
||||
|
||||
void segam1audio_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M68000(config, m_audiocpu, 10000000); // verified on real h/w
|
||||
M68000(config, m_audiocpu, 20_MHz_XTAL / 2); // verified on real h/w
|
||||
m_audiocpu->set_addrmap(AS_PROGRAM, &segam1audio_device::segam1audio_map);
|
||||
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
YM3438(config, m_ym, 8_MHz_XTAL);
|
||||
YM3438(config, m_ym, 16_MHz_XTAL / 2);
|
||||
m_ym->add_route(0, "lspeaker", 0.30);
|
||||
m_ym->add_route(1, "rspeaker", 0.30);
|
||||
|
||||
MULTIPCM(config, m_multipcm_1, 10_MHz_XTAL);
|
||||
MULTIPCM(config, m_multipcm_1, 20_MHz_XTAL / 2);
|
||||
m_multipcm_1->set_addrmap(0, &segam1audio_device::mpcm1_map);
|
||||
m_multipcm_1->add_route(0, "lspeaker", 0.5);
|
||||
m_multipcm_1->add_route(1, "rspeaker", 0.5);
|
||||
|
||||
MULTIPCM(config, m_multipcm_2, 10_MHz_XTAL);
|
||||
MULTIPCM(config, m_multipcm_2, 20_MHz_XTAL / 2);
|
||||
m_multipcm_2->set_addrmap(0, &segam1audio_device::mpcm2_map);
|
||||
m_multipcm_2->add_route(0, "lspeaker", 0.5);
|
||||
m_multipcm_2->add_route(1, "rspeaker", 0.5);
|
||||
|
||||
I8251(config, m_uart, 8_MHz_XTAL); // T82C51, clock unknown
|
||||
I8251(config, m_uart, 16_MHz_XTAL / 2); // T82C51
|
||||
m_uart->rxrdy_handler().set_inputline(m_audiocpu, M68K_IRQ_2);
|
||||
m_uart->txd_handler().set(FUNC(segam1audio_device::output_txd));
|
||||
|
||||
clock_device &uart_clock(CLOCK(config, "uart_clock", 500000)); // 16 times 31.25MHz (standard Sega/MIDI sound data rate)
|
||||
clock_device &uart_clock(CLOCK(config, "uart_clock", 16_MHz_XTAL / 2 / 16)); // 16 times 31.25kHz (standard Sega/MIDI sound data rate)
|
||||
uart_clock.signal_handler().set(m_uart, FUNC(i8251_device::write_txc));
|
||||
uart_clock.signal_handler().append(m_uart, FUNC(i8251_device::write_rxc));
|
||||
|
||||
// DAC output clocks measures:
|
||||
// BYTECLK = 10/8 (1.25MHz)
|
||||
// WORDCLK = 10/8/28 (44.642857kHz)
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -45,6 +45,7 @@ It only contains a 27C512 or 27C1024 and a X24C04.
|
||||
#include "machine/6522via.h"
|
||||
#include "machine/i2cmem.h"
|
||||
#include "machine/msm6242.h"
|
||||
#include "machine/r65c52.h"
|
||||
#include "sound/ay8910.h"
|
||||
|
||||
#include "emupal.h"
|
||||
@ -165,7 +166,7 @@ void ramstar_state::ramstar(machine_config &config)
|
||||
|
||||
R65C22(config, "via", 3.6864_MHz_XTAL / 2); // divider not verified
|
||||
|
||||
// TODO: R65C52 DACIA
|
||||
R65C52(config, "dacia", 3.6864_MHz_XTAL / 2); // divider not verified
|
||||
|
||||
I80C31(config, m_cartcpu, 6_MHz_XTAL); // (absence of) divider not verified
|
||||
m_cartcpu->set_addrmap(AS_PROGRAM, &ramstar_state::cart_program_map);
|
||||
|
Loading…
Reference in New Issue
Block a user