mirror of
https://github.com/holub/mame
synced 2025-06-07 21:33:45 +03:00
- galaxian/galaxold.cpp: corrected GFX ROM loading for superbikg, gives confirmed correct (even if strange looking) colors
- misc/belatra.cpp: tried to give the driver some flesh - various drivers: removed some now unneeded trampolines for flipscreen related functions
This commit is contained in:
parent
b5205c7d40
commit
f95fa332ca
@ -2335,8 +2335,8 @@ ROM_START( superbikg )
|
|||||||
ROM_LOAD( "moto6-2532.bin", 0x6000, 0x1000, CRC(f5b7627a) SHA1(02dfa62b0bf5962ad56d922084888f2216eca497) )
|
ROM_LOAD( "moto6-2532.bin", 0x6000, 0x1000, CRC(f5b7627a) SHA1(02dfa62b0bf5962ad56d922084888f2216eca497) )
|
||||||
|
|
||||||
ROM_REGION( 0x1000, "gfx1", 0 ) // these are the same as sbdk in nintendo/dkong.cpp
|
ROM_REGION( 0x1000, "gfx1", 0 ) // these are the same as sbdk in nintendo/dkong.cpp
|
||||||
ROM_LOAD( "m0kl-2716.bin", 0x0000, 0x0800, CRC(ea5f9f88) SHA1(5742d3554d967ed1e90f7c6f73dafbd302f0f244) )
|
ROM_LOAD( "m0hj-2716.bin", 0x0000, 0x0800, CRC(b1d76b59) SHA1(aed57ec67d80abdff1a4bfc3a713fa01c0dd15a2) )
|
||||||
ROM_LOAD( "m0hj-2716.bin", 0x0800, 0x0800, CRC(b1d76b59) SHA1(aed57ec67d80abdff1a4bfc3a713fa01c0dd15a2) )
|
ROM_LOAD( "m0kl-2716.bin", 0x0800, 0x0800, CRC(ea5f9f88) SHA1(5742d3554d967ed1e90f7c6f73dafbd302f0f244) )
|
||||||
|
|
||||||
ROM_REGION( 0x0020, "proms", 0 )
|
ROM_REGION( 0x0020, "proms", 0 )
|
||||||
ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(c5f12bc3) SHA1(b746ba06b596d4227fdc730a23bdf495f84e6a72) ) // same as amidarc, bongoa and froggervd in galaxian/galaxian.cpp
|
ROM_LOAD( "mmi6331.6l", 0x0000, 0x0020, CRC(c5f12bc3) SHA1(b746ba06b596d4227fdc730a23bdf495f84e6a72) ) // same as amidarc, bongoa and froggervd in galaxian/galaxian.cpp
|
||||||
@ -2652,7 +2652,7 @@ GAME( 1981, froggerv, frogger, videotron, froggerv, galaxold_state, empty_ini
|
|||||||
GAME( 1983, hunchbkg, hunchbak, hunchbkg, hunchbkg, galaxold_state, empty_init, ROT90, "Century Electronics", "Hunchback (Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1983, hunchbkg, hunchbak, hunchbkg, hunchbkg, galaxold_state, empty_init, ROT90, "Century Electronics", "Hunchback (Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1983, hunchbgb, hunchbak, hunchbkg, hunchbkg, galaxold_state, empty_init, ROT90, "bootleg (FAR S.A.)", "Hunchback (FAR S.A. bootleg on Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1983, hunchbgb, hunchbak, hunchbkg, hunchbkg, galaxold_state, empty_init, ROT90, "bootleg (FAR S.A.)", "Hunchback (FAR S.A. bootleg on Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1983, spcwarp, 0, spcwarp, hunchbkg, galaxold_state, empty_init, ROT90, "Century Electronics", "Space Warp? (Cosmos conversion on Galaxian hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // bad dump
|
GAME( 1983, spcwarp, 0, spcwarp, hunchbkg, galaxold_state, empty_init, ROT90, "Century Electronics", "Space Warp? (Cosmos conversion on Galaxian hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // bad dump
|
||||||
GAME( 1983, superbikg, superbik, superbikg, superbikg, galaxold_state, init_superbikg, ROT90, "bootleg", "Superbike (bootleg on Galaxian hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE ) // needs real hw references for correcting colors
|
GAME( 1983, superbikg, superbik, superbikg, superbikg, galaxold_state, init_superbikg, ROT90, "bootleg", "Superbike (bootleg on Galaxian hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // colors look strange but match real hw video
|
||||||
GAME( 1984, drivfrcg, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "Shinkai Inc. (Magic Electronics USA license)", "Driving Force (Galaxian conversion)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1984, drivfrcg, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "Shinkai Inc. (Magic Electronics USA license)", "Driving Force (Galaxian conversion)", MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "bootleg (EMT Germany)", "Top Racer (bootleg of Driving Force)", MACHINE_SUPPORTS_SAVE ) // Video Klein PCB
|
GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "bootleg (EMT Germany)", "Top Racer (bootleg of Driving Force)", MACHINE_SUPPORTS_SAVE ) // Video Klein PCB
|
||||||
GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", MACHINE_SUPPORTS_SAVE )
|
GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, galaxold_state, empty_init, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
// license:BSD-3-Clause
|
// license:BSD-3-Clause
|
||||||
// copyright-holders:David Haywood
|
// copyright-holders: David Haywood
|
||||||
/* Belatra Russian Fruit Machines (Video?) */
|
|
||||||
|
// Belatra Russian Fruit Machines (Video?)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
These appear to run on Acorn Archimedes-compatible hardware, similar to ertictac.c.
|
SoC is suspected to be an ARM7500 or similar.
|
||||||
That would make the SoC an ARM7500 or similar.
|
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
- just a skeleton and everything is complete guesswork.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -36,14 +38,19 @@ Merry Joiner
|
|||||||
Piggy Bank
|
Piggy Bank
|
||||||
The Scrooge
|
The Scrooge
|
||||||
Spirit of Prairies
|
Spirit of Prairies
|
||||||
Viking?s Fun Mill
|
Viking's Fun Mill
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
|
||||||
#include "cpu/arm7/arm7.h"
|
#include "cpu/arm7/arm7.h"
|
||||||
#include "cpu/arm7/arm7core.h"
|
#include "cpu/arm7/arm7core.h"
|
||||||
|
#include "machine/acorn_vidc.h"
|
||||||
|
#include "machine/arm_iomd.h"
|
||||||
|
|
||||||
|
#include "screen.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
|
|
||||||
@ -54,20 +61,31 @@ class belatra_state : public driver_device
|
|||||||
public:
|
public:
|
||||||
belatra_state(const machine_config &mconfig, device_type type, const char *tag)
|
belatra_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu")
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_vidc(*this, "vidc"),
|
||||||
|
m_iomd(*this, "iomd")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void belatra(machine_config &config);
|
void belatra(machine_config &config);
|
||||||
void belatra_map(address_map &map);
|
|
||||||
protected:
|
|
||||||
|
|
||||||
// devices
|
private:
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<arm_vidc20_device> m_vidc;
|
||||||
|
required_device<arm7500fe_iomd_device> m_iomd;
|
||||||
|
|
||||||
|
void program_map(address_map &map);
|
||||||
};
|
};
|
||||||
|
|
||||||
void belatra_state::belatra_map(address_map &map)
|
void belatra_state::program_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x00000000, 0x003fffff).rom();
|
map(0x00000000, 0x001fffff).rom().region("maincpu", 0x000000); // TODO: implement this as proper flash ROM device
|
||||||
|
map(0x00800000, 0x009fffff).rom().region("maincpu", 0x200000); // "
|
||||||
|
map(0x03200000, 0x032001ff).m(m_iomd, FUNC(arm7500fe_iomd_device::map)); // TODO: writes to some unimplemented registers
|
||||||
|
//map(0x03340000, 0x03340003).r;
|
||||||
|
//map(0x03400000, 0x037fffff).w(m_vidc, FUNC(arm_vidc20_device::write));
|
||||||
|
//map(0x08000000, 0x0800000f).r;
|
||||||
|
map(0x10000000, 0x13ffffff).ram();
|
||||||
|
map(0x14000000, 0x17ffffff).ram();
|
||||||
}
|
}
|
||||||
|
|
||||||
static INPUT_PORTS_START( belatra )
|
static INPUT_PORTS_START( belatra )
|
||||||
@ -75,12 +93,33 @@ INPUT_PORTS_END
|
|||||||
|
|
||||||
void belatra_state::belatra(machine_config &config)
|
void belatra_state::belatra(machine_config &config)
|
||||||
{
|
{
|
||||||
ARM7(config, m_maincpu, 54000000); // guess...
|
ARM7500(config, m_maincpu, 54'000'000); // CPU type and clock guessed
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &belatra_state::belatra_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &belatra_state::program_map);
|
||||||
|
|
||||||
|
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
|
||||||
|
|
||||||
|
ARM_VIDC20(config, m_vidc, 24'000'000); // chip type and clock guessed
|
||||||
|
m_vidc->set_screen("screen");
|
||||||
|
m_vidc->vblank().set(m_iomd, FUNC(arm_iomd_device::vblank_irq));
|
||||||
|
m_vidc->sound_drq().set(m_iomd, FUNC(arm_iomd_device::sound_drq));
|
||||||
|
|
||||||
|
ARM7500FE_IOMD(config, m_iomd, 54'000'000); // CPU type and clock guessed
|
||||||
|
m_iomd->set_host_cpu_tag(m_maincpu);
|
||||||
|
m_iomd->set_vidc_tag(m_vidc);
|
||||||
|
m_iomd->iocr_read_od<0>().set([this] () { logerror("%s: IOCR read OD 0\n", machine().describe_context()); return 0; });
|
||||||
|
m_iomd->iocr_read_od<1>().set([this] () { logerror("%s: IOCR read OD 1\n", machine().describe_context()); return 0; });
|
||||||
|
m_iomd->iocr_read_id().set([this] () { logerror("%s: IOCR read ID\n", machine().describe_context()); return 0; });
|
||||||
|
m_iomd->iocr_write_od<0>().set([this] (int state) { logerror("%s: IOCR write OD 0 %d\n", machine().describe_context(), state); });
|
||||||
|
m_iomd->iocr_write_od<1>().set([this] (int state) { logerror("%s: IOCR write OD 1 %d\n", machine().describe_context(), state); });
|
||||||
|
m_iomd->iocr_write_id().set([this] (int state) { logerror("%s: IOCR write ID %d\n", machine().describe_context(), state); });
|
||||||
|
m_iomd->iolines_read().set([this] () { logerror("%s: IO lines read\n", machine().describe_context()); return uint8_t(0); });
|
||||||
|
m_iomd->iolines_write().set([this] (uint8_t data) { logerror("%s: IO lines write %02x\n", machine().describe_context(), data); });
|
||||||
|
|
||||||
|
// AT90S2313(config, "mcu", xxxx); // TODO: AVR 8-bit core, only the fairyl2 set has a dump
|
||||||
|
|
||||||
SPEAKER(config, "lspeaker").front_left();
|
SPEAKER(config, "lspeaker").front_left();
|
||||||
SPEAKER(config, "rspeaker").front_right();
|
SPEAKER(config, "rspeaker").front_right();
|
||||||
/* unknown sound */
|
// unknown sound
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -94,6 +133,7 @@ ROM_START( fairyl2 )
|
|||||||
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD( "zfl2-1belatra.bin", 0x000000, 0x200000, CRC(cb0f3eba) SHA1(a7776810cfe037c25c196bbe900e5e17a2005d2d) )
|
ROM_LOAD( "zfl2-1belatra.bin", 0x000000, 0x200000, CRC(cb0f3eba) SHA1(a7776810cfe037c25c196bbe900e5e17a2005d2d) )
|
||||||
ROM_LOAD( "zfl2-2belatra.bin", 0x200000, 0x200000, CRC(755fad4b) SHA1(12243fdf95fcdd9012d1bbde6a18abb00918f560) )
|
ROM_LOAD( "zfl2-2belatra.bin", 0x200000, 0x200000, CRC(755fad4b) SHA1(12243fdf95fcdd9012d1bbde6a18abb00918f560) )
|
||||||
|
|
||||||
ROM_REGION( 0x400000, "others", ROMREGION_ERASEFF )
|
ROM_REGION( 0x400000, "others", ROMREGION_ERASEFF )
|
||||||
ROM_LOAD( "at90s2313_fl2.bin", 0x0000, 0x000800, CRC(38e2d37e) SHA1(78178cb3ea219a71d1f15ffde722f9c03ad64dda) )
|
ROM_LOAD( "at90s2313_fl2.bin", 0x0000, 0x000800, CRC(38e2d37e) SHA1(78178cb3ea219a71d1f15ffde722f9c03ad64dda) )
|
||||||
ROM_END
|
ROM_END
|
||||||
@ -131,12 +171,12 @@ ROM_END
|
|||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
GAME( 2004, fairyl2, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Fairy Land 2 (set 1)", MACHINE_IS_SKELETON )
|
GAME( 2004, fairyl2, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Fairy Land 2 (set 1)", MACHINE_IS_SKELETON )
|
||||||
GAME( 2004, fairyl2a, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Fairy Land 2 (set 2)", MACHINE_IS_SKELETON )
|
GAME( 2004, fairyl2a, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Fairy Land 2 (set 2)", MACHINE_IS_SKELETON )
|
||||||
GAME( 2004, fairyl2b, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Fairy Land 2 (set 3)", MACHINE_IS_SKELETON )
|
GAME( 2004, fairyl2b, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Fairy Land 2 (set 3)", MACHINE_IS_SKELETON )
|
||||||
GAME( 2004, fairyl2bl, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Fairy Land 2 (bootleg)", MACHINE_IS_SKELETON )
|
GAME( 2004, fairyl2bl, fairyl2, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Fairy Land 2 (bootleg)", MACHINE_IS_SKELETON )
|
||||||
|
|
||||||
GAME( 2004, ldrink, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Lucky Drink (set 1)", MACHINE_IS_SKELETON )
|
GAME( 2004, ldrink, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Lucky Drink (set 1)", MACHINE_IS_SKELETON )
|
||||||
GAME( 2004, ldrinka, ldrink, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Lucky Drink (set 2)", MACHINE_IS_SKELETON )
|
GAME( 2004, ldrinka, ldrink, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Lucky Drink (set 2)", MACHINE_IS_SKELETON )
|
||||||
|
|
||||||
GAME( 2004, merryjn, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra","Merry Joiner", MACHINE_IS_SKELETON )
|
GAME( 2004, merryjn, 0, belatra, belatra, belatra_state, empty_init, ROT0, "Belatra", "Merry Joiner", MACHINE_IS_SKELETON )
|
||||||
|
@ -69,8 +69,6 @@ private:
|
|||||||
tilemap_t* m_tilemap = nullptr;
|
tilemap_t* m_tilemap = nullptr;
|
||||||
int m_nmi = 0;
|
int m_nmi = 0;
|
||||||
|
|
||||||
void flip_screen_x_w(int state);
|
|
||||||
void flip_screen_y_w(int state);
|
|
||||||
void videoram_w(offs_t offset, uint8_t data);
|
void videoram_w(offs_t offset, uint8_t data);
|
||||||
void colorram_w(offs_t offset, uint8_t data);
|
void colorram_w(offs_t offset, uint8_t data);
|
||||||
void coin_counter_w(int state);
|
void coin_counter_w(int state);
|
||||||
@ -92,16 +90,6 @@ void skyarmy_state::machine_start()
|
|||||||
save_item(NAME(m_nmi));
|
save_item(NAME(m_nmi));
|
||||||
}
|
}
|
||||||
|
|
||||||
void skyarmy_state::flip_screen_x_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_x_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void skyarmy_state::flip_screen_y_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
TILE_GET_INFO_MEMBER(skyarmy_state::get_tile_info)
|
TILE_GET_INFO_MEMBER(skyarmy_state::get_tile_info)
|
||||||
{
|
{
|
||||||
int code = m_videoram[tile_index];
|
int code = m_videoram[tile_index];
|
||||||
@ -334,8 +322,8 @@ void skyarmy_state::skyarmy(machine_config &config)
|
|||||||
ls259_device &latch(LS259(config, "latch")); // 11C
|
ls259_device &latch(LS259(config, "latch")); // 11C
|
||||||
latch.q_out_cb<0>().set(FUNC(skyarmy_state::coin_counter_w));
|
latch.q_out_cb<0>().set(FUNC(skyarmy_state::coin_counter_w));
|
||||||
latch.q_out_cb<4>().set(FUNC(skyarmy_state::nmi_enable_w)); // ???
|
latch.q_out_cb<4>().set(FUNC(skyarmy_state::nmi_enable_w)); // ???
|
||||||
latch.q_out_cb<5>().set(FUNC(skyarmy_state::flip_screen_x_w));
|
latch.q_out_cb<5>().set(FUNC(skyarmy_state::flip_screen_x_set));
|
||||||
latch.q_out_cb<6>().set(FUNC(skyarmy_state::flip_screen_y_w));
|
latch.q_out_cb<6>().set(FUNC(skyarmy_state::flip_screen_y_set));
|
||||||
latch.q_out_cb<7>().set_nop(); // video RAM buffering?
|
latch.q_out_cb<7>().set_nop(); // video RAM buffering?
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
|
@ -436,8 +436,8 @@ void mermaid_state::mermaid(machine_config &config)
|
|||||||
m_latch[0]->q_out_cb<2>().set([this](int state){ logerror("02 = %d\n", state); }); // plays sample
|
m_latch[0]->q_out_cb<2>().set([this](int state){ logerror("02 = %d\n", state); }); // plays sample
|
||||||
m_latch[0]->q_out_cb<3>().set([this](int state){ logerror("03 = %d\n", state); }); // ???
|
m_latch[0]->q_out_cb<3>().set([this](int state){ logerror("03 = %d\n", state); }); // ???
|
||||||
m_latch[0]->q_out_cb<4>().set([this](int state){ logerror("04 = %d\n", state); }); // ???
|
m_latch[0]->q_out_cb<4>().set([this](int state){ logerror("04 = %d\n", state); }); // ???
|
||||||
m_latch[0]->q_out_cb<5>().set(FUNC(mermaid_state::flip_screen_x_w));
|
m_latch[0]->q_out_cb<5>().set(FUNC(mermaid_state::flip_screen_x_set));
|
||||||
m_latch[0]->q_out_cb<6>().set(FUNC(mermaid_state::flip_screen_y_w));
|
m_latch[0]->q_out_cb<6>().set(FUNC(mermaid_state::flip_screen_y_set));
|
||||||
m_latch[0]->q_out_cb<7>().set(FUNC(mermaid_state::nmi_mask_w));
|
m_latch[0]->q_out_cb<7>().set(FUNC(mermaid_state::nmi_mask_w));
|
||||||
|
|
||||||
LS259(config, m_latch[1]);
|
LS259(config, m_latch[1]);
|
||||||
|
@ -100,8 +100,6 @@ private:
|
|||||||
void mermaid_videoram2_w(offs_t offset, uint8_t data);
|
void mermaid_videoram2_w(offs_t offset, uint8_t data);
|
||||||
void mermaid_videoram_w(offs_t offset, uint8_t data);
|
void mermaid_videoram_w(offs_t offset, uint8_t data);
|
||||||
void mermaid_colorram_w(offs_t offset, uint8_t data);
|
void mermaid_colorram_w(offs_t offset, uint8_t data);
|
||||||
void flip_screen_x_w(int state);
|
|
||||||
void flip_screen_y_w(int state);
|
|
||||||
void mermaid_bg_scroll_w(offs_t offset, uint8_t data);
|
void mermaid_bg_scroll_w(offs_t offset, uint8_t data);
|
||||||
void mermaid_fg_scroll_w(offs_t offset, uint8_t data);
|
void mermaid_fg_scroll_w(offs_t offset, uint8_t data);
|
||||||
void bg_mask_w(int state);
|
void bg_mask_w(int state);
|
||||||
|
@ -72,16 +72,6 @@ void mermaid_state::mermaid_colorram_w(offs_t offset, uint8_t data)
|
|||||||
m_fg_tilemap->mark_tile_dirty(offset);
|
m_fg_tilemap->mark_tile_dirty(offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mermaid_state::flip_screen_x_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_x_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mermaid_state::flip_screen_y_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mermaid_state::mermaid_bg_scroll_w(offs_t offset, uint8_t data)
|
void mermaid_state::mermaid_bg_scroll_w(offs_t offset, uint8_t data)
|
||||||
{
|
{
|
||||||
m_bg_scrollram[offset] = data;
|
m_bg_scrollram[offset] = data;
|
||||||
|
@ -137,8 +137,6 @@ private:
|
|||||||
tilemap_t *m_fg = nullptr;
|
tilemap_t *m_fg = nullptr;
|
||||||
|
|
||||||
void nmi_enable_w(int state);
|
void nmi_enable_w(int state);
|
||||||
void hflip_w(int state);
|
|
||||||
void vflip_w(int state);
|
|
||||||
uint8_t inputs_watchdog_r();
|
uint8_t inputs_watchdog_r();
|
||||||
template <uint8_t Which> void videoram_w(offs_t offset, uint8_t data);
|
template <uint8_t Which> void videoram_w(offs_t offset, uint8_t data);
|
||||||
void char_bank_select_w(int state);
|
void char_bank_select_w(int state);
|
||||||
@ -654,16 +652,6 @@ void pitnrun_state::nmi_enable_w(int state)
|
|||||||
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
|
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pitnrun_state::hflip_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_x_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pitnrun_state::vflip_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t pitnrun_state::inputs_r()
|
uint8_t pitnrun_state::inputs_r()
|
||||||
{
|
{
|
||||||
return ~m_inputmux->output_r();
|
return ~m_inputmux->output_r();
|
||||||
@ -850,9 +838,9 @@ void pitnrun_state::pitnrun(machine_config &config)
|
|||||||
mainlatch.q_out_cb<1>().set(FUNC(pitnrun_state::color_select_w));
|
mainlatch.q_out_cb<1>().set(FUNC(pitnrun_state::color_select_w));
|
||||||
mainlatch.q_out_cb<4>().set_nop(); // COLOR SEL 2 - not used ?
|
mainlatch.q_out_cb<4>().set_nop(); // COLOR SEL 2 - not used ?
|
||||||
mainlatch.q_out_cb<5>().set(FUNC(pitnrun_state::char_bank_select_w));
|
mainlatch.q_out_cb<5>().set(FUNC(pitnrun_state::char_bank_select_w));
|
||||||
mainlatch.q_out_cb<6>().set(FUNC(pitnrun_state::hflip_w)); // HFLIP
|
mainlatch.q_out_cb<6>().set(FUNC(pitnrun_state::flip_screen_x_set)); // HFLIP
|
||||||
mainlatch.q_out_cb<6>().append(m_inputmux, FUNC(ls157_x2_device::select_w));
|
mainlatch.q_out_cb<6>().append(m_inputmux, FUNC(ls157_x2_device::select_w));
|
||||||
mainlatch.q_out_cb<7>().set(FUNC(pitnrun_state::vflip_w)); // VFLIP
|
mainlatch.q_out_cb<7>().set(FUNC(pitnrun_state::flip_screen_y_set)); // VFLIP
|
||||||
|
|
||||||
LS157_X2(config, m_inputmux); // 2F (0-3) & 2H (4-7)
|
LS157_X2(config, m_inputmux); // 2F (0-3) & 2H (4-7)
|
||||||
m_inputmux->a_in_callback().set_ioport("INPUTS");
|
m_inputmux->a_in_callback().set_ioport("INPUTS");
|
||||||
|
@ -70,8 +70,6 @@ protected:
|
|||||||
void colorram_w(offs_t offset, uint8_t data);
|
void colorram_w(offs_t offset, uint8_t data);
|
||||||
void pal_offs_w(uint8_t data);
|
void pal_offs_w(uint8_t data);
|
||||||
void scroll_w(uint8_t data);
|
void scroll_w(uint8_t data);
|
||||||
void flipscreen_x_w(int state);
|
|
||||||
void flipscreen_y_w(int state);
|
|
||||||
|
|
||||||
void io_map(address_map &map);
|
void io_map(address_map &map);
|
||||||
};
|
};
|
||||||
@ -200,16 +198,6 @@ void base_state::scroll_w(uint8_t data)
|
|||||||
m_bg_tilemap->set_scrollx(0, data);
|
m_bg_tilemap->set_scrollx(0, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void base_state::flipscreen_x_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_x_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void base_state::flipscreen_y_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void holeland_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
void holeland_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
@ -560,8 +548,8 @@ void holeland_state::holeland(machine_config &config)
|
|||||||
LS259(config, m_latch); // 3J
|
LS259(config, m_latch); // 3J
|
||||||
m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03);
|
m_latch->parallel_out_cb().set(FUNC(holeland_state::pal_offs_w)).mask(0x03);
|
||||||
m_latch->q_out_cb<5>().set(FUNC(holeland_state::coin_counter_w));
|
m_latch->q_out_cb<5>().set(FUNC(holeland_state::coin_counter_w));
|
||||||
m_latch->q_out_cb<6>().set(FUNC(holeland_state::flipscreen_x_w));
|
m_latch->q_out_cb<6>().set(FUNC(holeland_state::flip_screen_x_set));
|
||||||
m_latch->q_out_cb<7>().set(FUNC(holeland_state::flipscreen_y_w));
|
m_latch->q_out_cb<7>().set(FUNC(holeland_state::flip_screen_y_set));
|
||||||
|
|
||||||
WATCHDOG_TIMER(config, "watchdog");
|
WATCHDOG_TIMER(config, "watchdog");
|
||||||
|
|
||||||
|
@ -479,8 +479,8 @@ void bagman_state::bagman_base(machine_config &config)
|
|||||||
|
|
||||||
LS259(config, m_mainlatch); // 8H
|
LS259(config, m_mainlatch); // 8H
|
||||||
m_mainlatch->q_out_cb<0>().set(FUNC(bagman_state::irq_mask_w));
|
m_mainlatch->q_out_cb<0>().set(FUNC(bagman_state::irq_mask_w));
|
||||||
m_mainlatch->q_out_cb<1>().set(FUNC(bagman_state::flipscreen_x_w));
|
m_mainlatch->q_out_cb<1>().set(FUNC(bagman_state::flip_screen_x_set));
|
||||||
m_mainlatch->q_out_cb<2>().set(FUNC(bagman_state::flipscreen_y_w));
|
m_mainlatch->q_out_cb<2>().set(FUNC(bagman_state::flip_screen_y_set));
|
||||||
// video enable register not available on earlier hardware revision(s)
|
// video enable register not available on earlier hardware revision(s)
|
||||||
// Bagman is supposed to have glitches during screen transitions
|
// Bagman is supposed to have glitches during screen transitions
|
||||||
m_mainlatch->q_out_cb<4>().set(FUNC(bagman_state::coin_counter_w));
|
m_mainlatch->q_out_cb<4>().set(FUNC(bagman_state::coin_counter_w));
|
||||||
@ -558,8 +558,8 @@ void pickin_state::pickin(machine_config &config)
|
|||||||
|
|
||||||
LS259(config, m_mainlatch);
|
LS259(config, m_mainlatch);
|
||||||
m_mainlatch->q_out_cb<0>().set(FUNC(pickin_state::irq_mask_w));
|
m_mainlatch->q_out_cb<0>().set(FUNC(pickin_state::irq_mask_w));
|
||||||
m_mainlatch->q_out_cb<1>().set(FUNC(pickin_state::flipscreen_x_w));
|
m_mainlatch->q_out_cb<1>().set(FUNC(pickin_state::flip_screen_x_set));
|
||||||
m_mainlatch->q_out_cb<2>().set(FUNC(pickin_state::flipscreen_y_w));
|
m_mainlatch->q_out_cb<2>().set(FUNC(pickin_state::flip_screen_y_set));
|
||||||
m_mainlatch->q_out_cb<3>().set(FUNC(pickin_state::video_enable_w));
|
m_mainlatch->q_out_cb<3>().set(FUNC(pickin_state::video_enable_w));
|
||||||
m_mainlatch->q_out_cb<4>().set(FUNC(pickin_state::coin_counter_w));
|
m_mainlatch->q_out_cb<4>().set(FUNC(pickin_state::coin_counter_w));
|
||||||
m_mainlatch->q_out_cb<5>().set_nop(); // ????
|
m_mainlatch->q_out_cb<5>().set_nop(); // ????
|
||||||
@ -620,8 +620,8 @@ void pickin_state::botanic(machine_config &config)
|
|||||||
|
|
||||||
LS259(config, m_mainlatch);
|
LS259(config, m_mainlatch);
|
||||||
m_mainlatch->q_out_cb<0>().set(FUNC(pickin_state::irq_mask_w));
|
m_mainlatch->q_out_cb<0>().set(FUNC(pickin_state::irq_mask_w));
|
||||||
m_mainlatch->q_out_cb<1>().set(FUNC(pickin_state::flipscreen_x_w));
|
m_mainlatch->q_out_cb<1>().set(FUNC(pickin_state::flip_screen_x_set));
|
||||||
m_mainlatch->q_out_cb<2>().set(FUNC(pickin_state::flipscreen_y_w));
|
m_mainlatch->q_out_cb<2>().set(FUNC(pickin_state::flip_screen_y_set));
|
||||||
m_mainlatch->q_out_cb<3>().set(FUNC(pickin_state::video_enable_w));
|
m_mainlatch->q_out_cb<3>().set(FUNC(pickin_state::video_enable_w));
|
||||||
m_mainlatch->q_out_cb<4>().set(FUNC(pickin_state::coin_counter_w));
|
m_mainlatch->q_out_cb<4>().set(FUNC(pickin_state::coin_counter_w));
|
||||||
m_mainlatch->q_out_cb<5>().set_nop(); // ????
|
m_mainlatch->q_out_cb<5>().set_nop(); // ????
|
||||||
|
@ -40,8 +40,6 @@ protected:
|
|||||||
void irq_mask_w(int state);
|
void irq_mask_w(int state);
|
||||||
void videoram_w(offs_t offset, uint8_t data);
|
void videoram_w(offs_t offset, uint8_t data);
|
||||||
void colorram_w(offs_t offset, uint8_t data);
|
void colorram_w(offs_t offset, uint8_t data);
|
||||||
void flipscreen_x_w(int state);
|
|
||||||
void flipscreen_y_w(int state);
|
|
||||||
void video_enable_w(int state);
|
void video_enable_w(int state);
|
||||||
|
|
||||||
// bagman
|
// bagman
|
||||||
|
@ -81,16 +81,6 @@ void bagman_state::bagman_palette(palette_device &palette) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void bagman_state::flipscreen_x_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_x_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void bagman_state::flipscreen_y_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
void bagman_state::video_enable_w(int state)
|
void bagman_state::video_enable_w(int state)
|
||||||
{
|
{
|
||||||
m_video_enable = state;
|
m_video_enable = state;
|
||||||
|
@ -346,7 +346,7 @@ void zaccaria_state::zaccaria(machine_config &config)
|
|||||||
|
|
||||||
ls259_device &mainlatch(LS259(config, "mainlatch")); // 3G on 1B1141 I/O (Z80) board
|
ls259_device &mainlatch(LS259(config, "mainlatch")); // 3G on 1B1141 I/O (Z80) board
|
||||||
mainlatch.q_out_cb<0>().set(FUNC(zaccaria_state::flip_screen_x_w)); // VCMA
|
mainlatch.q_out_cb<0>().set(FUNC(zaccaria_state::flip_screen_x_w)); // VCMA
|
||||||
mainlatch.q_out_cb<1>().set(FUNC(zaccaria_state::flip_screen_y_w)); // HCMA
|
mainlatch.q_out_cb<1>().set(FUNC(zaccaria_state::flip_screen_y_set)); // HCMA
|
||||||
mainlatch.q_out_cb<2>().set("audiopcb", FUNC(zac1b11142_audio_device::ressound_w)); // RESSOUND
|
mainlatch.q_out_cb<2>().set("audiopcb", FUNC(zac1b11142_audio_device::ressound_w)); // RESSOUND
|
||||||
mainlatch.q_out_cb<6>().set(FUNC(zaccaria_state::coin_w)); // COUNT
|
mainlatch.q_out_cb<6>().set(FUNC(zaccaria_state::coin_w)); // COUNT
|
||||||
mainlatch.q_out_cb<7>().set(FUNC(zaccaria_state::nmi_mask_w)); // INTST
|
mainlatch.q_out_cb<7>().set(FUNC(zaccaria_state::nmi_mask_w)); // INTST
|
||||||
|
@ -43,7 +43,6 @@ private:
|
|||||||
uint8_t read_attr(offs_t offset, int which);
|
uint8_t read_attr(offs_t offset, int which);
|
||||||
void update_colscroll();
|
void update_colscroll();
|
||||||
void flip_screen_x_w(int state);
|
void flip_screen_x_w(int state);
|
||||||
void flip_screen_y_w(int state);
|
|
||||||
void dsw_sel_w(uint8_t data);
|
void dsw_sel_w(uint8_t data);
|
||||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||||
void palette(palette_device &palette) const;
|
void palette(palette_device &palette) const;
|
||||||
|
@ -183,11 +183,6 @@ void zaccaria_state::flip_screen_x_w(int state)
|
|||||||
update_colscroll();
|
update_colscroll();
|
||||||
}
|
}
|
||||||
|
|
||||||
void zaccaria_state::flip_screen_y_w(int state)
|
|
||||||
{
|
|
||||||
flip_screen_y_set(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
Loading…
Reference in New Issue
Block a user