mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
ozon1: Transplant to modern galaxian.cpp driver; add PPI
This commit is contained in:
parent
005ebb35a9
commit
975bf2efae
@ -645,6 +645,24 @@ q) 'bongo'
|
||||
- IN2 is read via code at 0x2426, but its contents is directly overwritten
|
||||
with value read from DSW (AY port A) via code at 0x3647.
|
||||
|
||||
r) 'ozon1'
|
||||
|
||||
- Player 2 controls are used for player 2 regardless of the "Cabinet" Dip Switch
|
||||
(check code at 0x03c6 which changes player and routines that handle players inputs :
|
||||
0x0dc3 and 0x1e31 LEFT and RIGHT - 0x0e76 BUTTON1).
|
||||
- Credits are coded on 1 byte (range 0x00-0xff) and stored at 0x4002.
|
||||
To display them, they are converted to BCD on 1 byte via routine at 0x1421.
|
||||
As a result, it will always display 0 to 99 (eg: 0xf0 = 240 will display 40).
|
||||
When you get 256 credits, 0x4002 = 0x00, so the game thinks you have no credit
|
||||
at all and enters "attract mode" again (but the game does NOT reset).
|
||||
- There's an ingame bug when you get 101 or 201 credits : due to code at 0x0239,
|
||||
the game checks the BCD value (0x01) instead of the correct one at 0x4002,
|
||||
so you can't start a 2 players game !
|
||||
- There is another ingame bug when "Coinage" settings are "A 1C/2C B 1C/1C"
|
||||
and you press COIN2 : due to code at 0x0473, contents of 0x4004 is NEVER reset
|
||||
to 0x00, so routine at 0x042a ALWAYS thinks that you've pressed COIN2,
|
||||
and as a consequence, it ALWAYS adds 1 credit (even when you are playing) !
|
||||
|
||||
|
||||
|
||||
TODO:
|
||||
@ -1774,6 +1792,26 @@ void galaxian_state::zigzag_map(address_map &map)
|
||||
map(0x7800, 0x7800).mirror(0x07ff).r("watchdog", FUNC(watchdog_timer_device::reset_r));
|
||||
}
|
||||
|
||||
// not derived from schematics
|
||||
void galaxian_state::ozon1_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x2fff).rom();
|
||||
map(0x4000, 0x43ff).ram();
|
||||
map(0x4800, 0x4bff).mirror(0x0400).ram().w(FUNC(galaxian_state::galaxian_videoram_w)).share("videoram");
|
||||
map(0x5000, 0x50ff).ram().w(FUNC(galaxian_state::galaxian_objram_w)).share("spriteram");
|
||||
map(0x6801, 0x6801).w(FUNC(galaxian_state::irq_enable_w));
|
||||
map(0x6802, 0x6802).w(FUNC(galaxian_state::coin_count_0_w));
|
||||
map(0x6806, 0x6806).w(FUNC(galaxian_state::galaxian_flip_screen_x_w));
|
||||
map(0x6807, 0x6807).w(FUNC(galaxian_state::galaxian_flip_screen_y_w));
|
||||
map(0x8100, 0x8103).rw(m_ppi8255[0], FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
}
|
||||
|
||||
void galaxian_state::ozon1_io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x01).w(m_ay8910[0], FUNC(ay8910_device::data_address_w));
|
||||
}
|
||||
|
||||
|
||||
/* map derived from schematics */
|
||||
void galaxian_state::theend_map(address_map &map)
|
||||
@ -4991,6 +5029,45 @@ static INPUT_PORTS_START( olmandingo )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/* verified from Z80 code */
|
||||
static INPUT_PORTS_START( ozon1 )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x01, "4" )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, "A 1C/1C B 2C/1C" )
|
||||
PORT_DIPSETTING( 0x02, "A 1C/2C B 1C/1C" ) /* see notes */
|
||||
PORT_DIPSETTING( 0x04, "A 1C/3C B 3C/1C" )
|
||||
PORT_DIPSETTING( 0x06, "A 1C/4C B 4C/1C" )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( theend )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
@ -6323,7 +6400,6 @@ void galaxian_state::konami_base(machine_config &config)
|
||||
m_ppi8255[1]->out_pb_callback().set(FUNC(galaxian_state::konami_sound_control_w));
|
||||
m_ppi8255[1]->in_pc_callback().set_ioport("IN3");
|
||||
m_ppi8255[1]->out_pc_callback().set(FUNC(galaxian_state::konami_portc_1_w));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -6785,6 +6861,25 @@ void galaxian_state::theend(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
void galaxian_state::ozon1(machine_config &config)
|
||||
{
|
||||
konami_base(config);
|
||||
|
||||
// alternate memory map
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &galaxian_state::ozon1_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &galaxian_state::ozon1_io_map);
|
||||
|
||||
// no watchdog?
|
||||
config.device_remove("watchdog");
|
||||
|
||||
// only one PPI, used in input mode only
|
||||
m_ppi8255[0]->out_pc_callback().set_nop();
|
||||
config.device_remove("ppi8255_1");
|
||||
|
||||
AY8910(config, m_ay8910[0], GALAXIAN_PIXEL_CLOCK/3/4).add_route(ALL_OUTPUTS, "speaker", 0.5);
|
||||
}
|
||||
|
||||
|
||||
// TODO: should be derived from theend, re-sort machine configs later
|
||||
void galaxian_state::scramble(machine_config &config)
|
||||
{
|
||||
@ -12173,6 +12268,20 @@ ROM_START( theendss ) // The End (SegaSA / Sonic)
|
||||
ROM_LOAD( "6331-1j.86", 0x0000, 0x0020, BAD_DUMP CRC(24652bc4) SHA1(d89575f3749c75dc963317fe451ffeffd9856e4d) ) // Not dumped on this set
|
||||
ROM_END
|
||||
|
||||
ROM_START( ozon1 )
|
||||
ROM_REGION( 0x3000, "maincpu", 0 )
|
||||
ROM_LOAD( "rom1.bin", 0x0000, 0x1000, CRC(54899e8b) SHA1(270af76ae4396ebda767f160535fa77c0b49726a) )
|
||||
ROM_LOAD( "rom2.bin", 0x1000, 0x1000, CRC(3c90fbfc) SHA1(92da614dba3a644eac144bb0ed434d78a31fcb1a) )
|
||||
ROM_LOAD( "rom3.bin", 0x2000, 0x1000, CRC(79fe313b) SHA1(ef8fd70f5669b7e7d7184eca2baaddcecb55c22d) )
|
||||
|
||||
ROM_REGION( 0x1000, "gfx1", 0 )
|
||||
ROM_LOAD( "rom7.bin", 0x0000, 0x0800, CRC(464285e8) SHA1(fff36b034b95050219c70cdfe05ff3bbc452b73e) )
|
||||
ROM_LOAD( "rom8.bin", 0x0800, 0x0800, CRC(92056dcc) SHA1(b162da8701bfee465205e8f274ee494063c52c7b) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "ozon1.clr", 0x0000, 0x0020, CRC(605ea6e9) SHA1(d3471e6ef756059c2f7feb32fb8e41181cc1718e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( takeoff )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "0p.t.o.10l", 0x0000, 0x1000, CRC(46712d43) SHA1(e1b84494b530dd96d8a51a3f8bd7d7d3ba7560a9) )
|
||||
@ -13938,6 +14047,8 @@ GAME( 1981, astroamb, scramble, astroamb, astroamb, galaxian_state, init_
|
||||
GAME( 1981, atlantis, 0, theend, atlantis, galaxian_state, init_atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, atlantis2, atlantis, theend, atlantis, galaxian_state, init_atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
GAME( 1983, ozon1, 0, ozon1, ozon1, galaxian_state, init_galaxian, ROT90, "Proma", "Ozon I", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// Konami L-1200-2 base board with custom Subelectro 113 rom board
|
||||
GAME( 1981, jungsub, jungler, jungsub, jungsub, galaxian_state, init_jungsub, ROT90, "bootleg (Subelectro)", "Jungler (Subelectro, bootleg on Scramble hardware)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // mostly works, bad GFX ROM causes lots of glitches
|
||||
|
||||
|
@ -64,24 +64,6 @@ Stephh's notes (based on the games Z80 code and some tests) for other games :
|
||||
settings (code at 0x5805 for player 1 and player 2 in "Upright" cabinet, or
|
||||
0x5563 for player 2 in "Cocktail" cabinet).
|
||||
|
||||
4) 'ozon1'
|
||||
|
||||
- Player 2 controls are used for player 2 regardless of the "Cabinet" Dip Switch
|
||||
(check code at 0x03c6 which changes player and routines that handle players inputs :
|
||||
0x0dc3 and 0x1e31 LEFT and RIGHT - 0x0e76 BUTTON1).
|
||||
- Credits are coded on 1 byte (range 0x00-0xff) and stored at 0x4002.
|
||||
To display them, they are converted to BCD on 1 byte via routine at 0x1421.
|
||||
As a result, it will always display 0 to 99 (eg: 0xf0 = 240 will display 40).
|
||||
When you get 256 credits, 0x4002 = 0x00, so the game thinks you have no credit
|
||||
at all and enters "attract mode" again (but the game does NOT reset).
|
||||
- There's an ingame bug when you get 101 or 201 credits : due to code at 0x0239,
|
||||
the game checks the BCD value (0x01) instead of the correct one at 0x4002,
|
||||
so you can't start a 2 players game !
|
||||
- There is another ingame bug when "Coinage" settings are "A 1C/2C B 1C/1C"
|
||||
and you press COIN2 : due to code at 0x0473, contents of 0x4004 is NEVER reset
|
||||
to 0x00, so routine at 0x042a ALWAYS thinks that you've pressed COIN2,
|
||||
and as a consequence, it ALWAYS adds 1 credit (even when you are playing) !
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -91,7 +73,6 @@ Stephh's notes (based on the games Z80 code and some tests) for other games :
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/s2650/s2650.h"
|
||||
#include "machine/watchdog.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "sound/sn76496.h"
|
||||
#include "speaker.h"
|
||||
|
||||
@ -598,32 +579,6 @@ void galaxold_state::tazzmang_map(address_map &map)
|
||||
}
|
||||
|
||||
|
||||
void galaxold_state::ozon1_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x2fff).rom();
|
||||
map(0x4000, 0x4200).ram();
|
||||
map(0x4300, 0x43ff).ram();
|
||||
map(0x4800, 0x4bff).rw(FUNC(galaxold_state::galaxold_videoram_r), FUNC(galaxold_state::galaxold_videoram_w)).share("videoram");
|
||||
map(0x4c00, 0x4fff).w(FUNC(galaxold_state::galaxold_videoram_w));
|
||||
map(0x5000, 0x503f).ram().w(FUNC(galaxold_state::galaxold_attributesram_w)).share("attributesram");
|
||||
map(0x5040, 0x505f).ram().share("spriteram");
|
||||
map(0x6801, 0x6801).nopw(); //continuosly 0 and 1
|
||||
map(0x6802, 0x6802).w(FUNC(galaxold_state::galaxold_coin_counter_w));
|
||||
map(0x6806, 0x6806).w(FUNC(galaxold_state::galaxold_flip_screen_x_w));
|
||||
map(0x6807, 0x6807).w(FUNC(galaxold_state::galaxold_flip_screen_y_w));
|
||||
map(0x8100, 0x8100).portr("IN0");
|
||||
map(0x8101, 0x8101).portr("IN1");
|
||||
map(0x8102, 0x8102).portr("IN2");
|
||||
map(0x8103, 0x8103).nopw(); //only one 9b at reset
|
||||
}
|
||||
|
||||
void galaxold_state::ozon1_io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x01).w("aysnd", FUNC(ay8910_device::data_address_w));
|
||||
}
|
||||
|
||||
|
||||
void galaxold_state::hunchbkg_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x0fff).rom();
|
||||
@ -1794,44 +1749,6 @@ static INPUT_PORTS_START( tazzmang )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/* verified from Z80 code */
|
||||
static INPUT_PORTS_START( ozon1 )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
|
||||
PORT_DIPSETTING( 0x00, "3" )
|
||||
PORT_DIPSETTING( 0x01, "4" )
|
||||
PORT_DIPSETTING( 0x02, "5" )
|
||||
PORT_DIPSETTING( 0x03, "6" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(2)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Coinage ) )
|
||||
PORT_DIPSETTING( 0x00, "A 1C/1C B 2C/1C" )
|
||||
PORT_DIPSETTING( 0x02, "A 1C/2C B 1C/1C" ) /* see notes */
|
||||
PORT_DIPSETTING( 0x04, "A 1C/3C B 3C/1C" )
|
||||
PORT_DIPSETTING( 0x06, "A 1C/4C B 4C/1C" )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Cocktail ) )
|
||||
PORT_BIT( 0xf0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( hunchbkg )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
@ -2463,26 +2380,6 @@ void galaxold_state::rockclim(machine_config &config)
|
||||
}
|
||||
|
||||
|
||||
void galaxold_state::ozon1(machine_config &config)
|
||||
{
|
||||
galaxold_base(config);
|
||||
|
||||
/* basic machine hardware */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &galaxold_state::ozon1_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &galaxold_state::ozon1_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(galaxold_state::nmi_line_pulse));
|
||||
|
||||
MCFG_MACHINE_RESET_REMOVE()
|
||||
|
||||
/* video hardware */
|
||||
m_palette->set_entries(32);
|
||||
m_palette->set_init(FUNC(galaxold_state::rockclim_palette));
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(galaxold_state,ozon1)
|
||||
AY8910(config, "aysnd", PIXEL_CLOCK/4).add_route(ALL_OUTPUTS, "speaker", 0.5);
|
||||
}
|
||||
|
||||
|
||||
void galaxold_state::drivfrcg(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
@ -3283,20 +3180,6 @@ ROM_START( tazzmang2 ) // Original Sparcade set
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( ozon1 )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "rom1.bin", 0x0000, 0x1000, CRC(54899e8b) SHA1(270af76ae4396ebda767f160535fa77c0b49726a) )
|
||||
ROM_LOAD( "rom2.bin", 0x1000, 0x1000, CRC(3c90fbfc) SHA1(92da614dba3a644eac144bb0ed434d78a31fcb1a) )
|
||||
ROM_LOAD( "rom3.bin", 0x2000, 0x1000, CRC(79fe313b) SHA1(ef8fd70f5669b7e7d7184eca2baaddcecb55c22d) )
|
||||
|
||||
ROM_REGION( 0x1000, "gfx1", 0 )
|
||||
ROM_LOAD( "rom7.bin", 0x0000, 0x0800, CRC(464285e8) SHA1(fff36b034b95050219c70cdfe05ff3bbc452b73e) )
|
||||
ROM_LOAD( "rom8.bin", 0x0800, 0x0800, CRC(92056dcc) SHA1(b162da8701bfee465205e8f274ee494063c52c7b) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "ozon1.clr", 0x0000, 0x0020, CRC(605ea6e9) SHA1(d3471e6ef756059c2f7feb32fb8e41181cc1718e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( hunchbkg )
|
||||
ROM_REGION( 0x8000, "maincpu", 0 )
|
||||
ROM_LOAD( "gal_hb_1", 0x0000, 0x0800, CRC(46590e9b) SHA1(5d26578c91adec20d8d8a17d5dade9ef2febcbe5) )
|
||||
@ -3679,7 +3562,6 @@ GAME( 1982, porter, dockman, porter, porter, galaxold_state, empty_ini
|
||||
GAME( 1982, portera, dockman, porter, porter, galaxold_state, empty_init, ROT90, "bootleg", "El Estivador (Spanish bootleg of Port Man on Galaxian hardware)", MACHINE_IMPERFECT_COLORS | MACHINE_NO_COCKTAIL )
|
||||
GAME( 1982, tazzmang, tazmania, tazzmang, tazzmang, galaxold_state, empty_init, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, tazzmang2, tazmania, tazzmang, tazzmang, galaxold_state, empty_init, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware with Starfield)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, ozon1, 0, ozon1, ozon1, galaxold_state, empty_init, ROT90, "Proma", "Ozon I", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, guttangt, locomotn, guttang, guttangt, galaxold_state, init_guttangt, ROT270, "bootleg (Recreativos Franco?)", "Guttang Gottong (bootleg on Galaxian type hardware)", MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // or by 'Tren' ?
|
||||
|
||||
// Videotron cartridge system
|
||||
|
@ -312,6 +312,7 @@ public:
|
||||
void moonqsr(machine_config &config);
|
||||
void frogger(machine_config &config);
|
||||
void anteatergg(machine_config &config);
|
||||
void ozon1(machine_config &config);
|
||||
void theend(machine_config &config);
|
||||
void turtles(machine_config &config);
|
||||
void fantastc(machine_config &config);
|
||||
@ -406,6 +407,8 @@ protected:
|
||||
void mshuttle_decrypted_opcodes_map(address_map &map);
|
||||
void mshuttle_map(address_map &map);
|
||||
void mshuttle_portmap(address_map &map);
|
||||
void ozon1_map(address_map &map);
|
||||
void ozon1_io_map(address_map &map);
|
||||
void scobra_map(address_map &map);
|
||||
void scorpion_map(address_map &map);
|
||||
void scorpion_sound_map(address_map &map);
|
||||
|
@ -200,7 +200,6 @@ public:
|
||||
DECLARE_VIDEO_START(dkongjrmc);
|
||||
DECLARE_VIDEO_START(rockclim);
|
||||
DECLARE_VIDEO_START(galaxold_plain);
|
||||
DECLARE_VIDEO_START(ozon1);
|
||||
DECLARE_VIDEO_START(ckongs);
|
||||
DECLARE_VIDEO_START(darkplnt);
|
||||
DECLARE_VIDEO_START(rescue);
|
||||
@ -291,7 +290,6 @@ public:
|
||||
void porter(machine_config &config);
|
||||
void scramb2(machine_config &config);
|
||||
void scramb3(machine_config &config);
|
||||
void ozon1(machine_config &config);
|
||||
void mooncrst(machine_config &config);
|
||||
void guttang(machine_config &config);
|
||||
void ckongmc(machine_config &config);
|
||||
@ -314,8 +312,6 @@ public:
|
||||
void hunchbkg_data(address_map &map);
|
||||
void hustlerb3_map(address_map &map);
|
||||
void mooncrst_map(address_map &map);
|
||||
void ozon1_io_map(address_map &map);
|
||||
void ozon1_map(address_map &map);
|
||||
void racknrol_map(address_map &map);
|
||||
void racknrol_io(address_map &map);
|
||||
void rockclim_map(address_map &map);
|
||||
|
@ -14303,6 +14303,7 @@ olmandingc // bootleg (Calfesa)
|
||||
omegab // bootleg
|
||||
omni // bootleg
|
||||
orbitron // (c) 1982 Signatron USA (Arcade Tv Game List - P.160, Left, 22 from top)
|
||||
ozon1 // (c) 1983 Proma
|
||||
pacmanbl // bootleg
|
||||
pacmanbla // bootleg
|
||||
pacmanblb // bootleg
|
||||
@ -14420,7 +14421,6 @@ hexpool // (c) 1986 Shinkia (Senko Kit)
|
||||
hexpoola // (c) 1986 Shinkia (Senko Kit)
|
||||
hunchbkg // (c) 1983 Century
|
||||
hustlerb3 // bootleg
|
||||
ozon1 // (c) 1983 Proma
|
||||
porter // 1982 bootleg (Arcade TV Game List - P.98, Left, 15 from bottom)
|
||||
portera // bootleg
|
||||
racknrol // (c) 1986 Status (Shinkia license) (Senko Kit)
|
||||
|
@ -696,13 +696,6 @@ VIDEO_START_MEMBER(galaxold_state,harem)
|
||||
m_modify_spritecode = &galaxold_state::harem_modify_spritecode;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(galaxold_state,ozon1)
|
||||
{
|
||||
VIDEO_START_CALL_MEMBER(galaxold_plain);
|
||||
|
||||
m_bg_tilemap->set_scrolldx(0, 384-256);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(galaxold_state::dambustr_get_tile_info2)
|
||||
{
|
||||
uint8_t x = tile_index & 0x1f;
|
||||
|
Loading…
Reference in New Issue
Block a user