mirror of
https://github.com/holub/mame
synced 2025-06-05 04:16:28 +03:00
not NOT WORKING (plug and play / handhelds) (#6051)
* new NOT WORKING ---- Lexibook Compact Cyber Arcade - Star Wars [Team Europe] Unknown M&D Handheld [zhongtiao1] - hooked up controls for shredmjr, now runs the ame as taikeegr [David Haywood] * new NOT WORKING ---- BBL380 - 180 in 1 [zhongtiao1] * (nw) * unkmandd contains some unsp code (nw) * same hardware these are not (nw) * tidy unused (nw) * comment (nw) * (nw)
This commit is contained in:
parent
40823998fa
commit
033e54d938
@ -3774,6 +3774,8 @@ files {
|
||||
MAME_DIR .. "src/mame/drivers/xavix2.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/titan_soc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/lexibook_jg7425.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/unkmandd.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/bbl380.cpp",
|
||||
}
|
||||
|
||||
createMESSProjects(_target, _subtarget, "ultimachine")
|
||||
|
72
src/mame/drivers/bbl380.cpp
Normal file
72
src/mame/drivers/bbl380.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
|
||||
// the BBL 380 - 180 in 1 features similar menus / presentation / games to the 'ORB Gaming Retro Arcade Pocket Handheld Games Console with 153 Games' (eg has Matchstick Man, Gang Tie III etc.)
|
||||
// https://www.youtube.com/watch?v=NacY2WHd-CY
|
||||
|
||||
// contains 6502 code
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class bbl380_state : public driver_device
|
||||
{
|
||||
public:
|
||||
bbl380_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_palette(*this, "palette"),
|
||||
m_screen(*this, "screen")
|
||||
{ }
|
||||
|
||||
void bbl380(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<screen_device> m_screen;
|
||||
};
|
||||
|
||||
uint32_t bbl380_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void bbl380_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void bbl380_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( bbl380 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void bbl380_state::bbl380(machine_config &config)
|
||||
{
|
||||
// unknown CPU, 6502 based
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(64*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(bbl380_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200);
|
||||
}
|
||||
|
||||
ROM_START( bbl380 )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "bbl 380 180 in 1.bin", 0x000000, 0x400000, CRC(146c88da) SHA1(7f18526a6d8cf991f86febce3418d35aac9f49ad) )
|
||||
ROM_END
|
||||
|
||||
CONS( 200?, bbl380, 0, 0, bbl380, bbl380, bbl380_state, empty_init, "BaoBaoLong", "BBL380 - 180 in 1", MACHINE_IS_SKELETON )
|
@ -49,7 +49,6 @@ public:
|
||||
{ }
|
||||
|
||||
void c2_color(machine_config &config);
|
||||
void leapfrog_mfleappad(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
|
@ -25,7 +25,7 @@
|
||||
Adds scrambled opcodes (XORed with 0xA1) and RGB444 palette mode,
|
||||
and more advanced PCM modes (CPU and video working, sound NYI)
|
||||
|
||||
VT368 (?) - used in DGUN2561, lexcyber
|
||||
VT368 (?) - used in DGUN2561, lxcmcy
|
||||
Various enhancements not yet emulated. Different banking, possibly an ALU,
|
||||
larger palette space
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
todo (newer VTxx):
|
||||
|
||||
new PCM audio in FC Pocket and DGUN-2573
|
||||
add support for VT368 (?) in DGUN-2561 and lexcyber
|
||||
add support for VT368 (?) in DGUN-2561 and lxcmcy
|
||||
add support for the VT369 (?) featurs used by the MOGIS M320
|
||||
|
||||
todo (general)
|
||||
@ -2019,9 +2019,17 @@ ROM_START( dgun2561 )
|
||||
ROM_LOAD( "dgun2561.bin", 0x00000, 0x4000000, CRC(a6e627b4) SHA1(2667d2feb02de349387f9dcfa5418e7ed3afeef6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( lexcyber )
|
||||
|
||||
// The maximum address space a VT chip can see is 32MB, so these 64MB roms are actually 2 programs (there are vectors in the first half and the 2nd half)
|
||||
// there must be a bankswitch bit that switches the whole 32MB space. Loading the 2nd half in Star Wars does actually boot straight to a game.
|
||||
ROM_START( lxcmcy )
|
||||
ROM_REGION( 0x4000000, "mainrom", 0 )
|
||||
ROM_LOAD( "lexcyber.bin", 0x00000, 0x4000000, CRC(3f3af72c) SHA1(76127054291568fcce1431d21af71f775cfb05a6) )
|
||||
ROM_LOAD( "lxcmcy.bin", 0x00000, 0x4000000, CRC(3f3af72c) SHA1(76127054291568fcce1431d21af71f775cfb05a6) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( lxcmcysw )
|
||||
ROM_REGION( 0x4000000, "mainrom", 0 )
|
||||
ROM_LOAD( "jl2365swr-1.u2", 0x00000, 0x4000000, CRC(60ece391) SHA1(655de6b36ba596d873de2839522b948ccf45e006) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( cybar120 )
|
||||
@ -2333,7 +2341,16 @@ CONS( 200?, dgun2500, 0, 0, nes_vt_dg, nes_vt, nes_vt_dg_state, empty_init, "
|
||||
|
||||
// don't even get to menu. very enhanced chipset, VT368/9?
|
||||
CONS( 2012, dgun2561, 0, 0, nes_vt_cy, nes_vt, nes_vt_cy_state, empty_init, "dreamGEAR", "dreamGEAR My Arcade Portable Gaming System (DGUN-2561)", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lexcyber, 0, 0, nes_vt_cy, nes_vt, nes_vt_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcy, 0, 0, nes_vt_cy, nes_vt, nes_vt_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade", MACHINE_NOT_WORKING )
|
||||
CONS( 200?, lxcmcysw, 0, 0, nes_vt_cy, nes_vt, nes_vt_cy_state, empty_init, "Lexibook", "Lexibook Compact Cyber Arcade - Star Wars Rebels", MACHINE_NOT_WORKING )
|
||||
// Also Lexibook Compact Cyber Arcade - Disney Princesses
|
||||
// Lexibook Compact Cyber Arcade - Cars
|
||||
// Lexibook Compact Cyber Arcade - Frozen
|
||||
// Lexibook Compact Cyber Arcade - Paw Patrol
|
||||
// Lexibook Compact Cyber Arcade - Barbie
|
||||
// Lexibook Compact Cyber Arcade - Finding Dory
|
||||
// more?
|
||||
|
||||
|
||||
// boots, same platform with scrambled opcodes as FC pocket
|
||||
// palette issues in some games because they actually use the old VT style palette
|
||||
|
72
src/mame/drivers/unkmandd.cpp
Normal file
72
src/mame/drivers/unkmandd.cpp
Normal file
@ -0,0 +1,72 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
|
||||
// unkmandd contains unsp code, but no obvious startup code / vectors, so it's probably booting from another device / bootstrapped
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
#include "screen.h"
|
||||
#include "emupal.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class unkmandd_state : public driver_device
|
||||
{
|
||||
public:
|
||||
unkmandd_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_palette(*this, "palette"),
|
||||
m_screen(*this, "screen")
|
||||
{ }
|
||||
|
||||
void unkmandd(machine_config &config);
|
||||
|
||||
private:
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
required_device<palette_device> m_palette;
|
||||
required_device<screen_device> m_screen;
|
||||
};
|
||||
|
||||
uint32_t unkmandd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void unkmandd_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void unkmandd_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( unkmandd )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void unkmandd_state::unkmandd(machine_config &config)
|
||||
{
|
||||
// unknown CPU, unsp based
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(64*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 40*8-1, 0*8, 30*8-1);
|
||||
m_screen->set_screen_update(FUNC(unkmandd_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
PALETTE(config, m_palette).set_format(palette_device::xBGR_555, 0x200);
|
||||
}
|
||||
|
||||
ROM_START( unkmandd )
|
||||
ROM_REGION( 0x800000, "maincpu", ROMREGION_ERASEFF )
|
||||
ROM_LOAD( "8718_en25f32.bin", 0x000000, 0x400000, CRC(cc138db4) SHA1(379af3d94ae840f52c06416d6cf32e25923af5ae) )
|
||||
ROM_END
|
||||
|
||||
CONS( 200?, unkmandd, 0, 0, unkmandd, unkmandd, unkmandd_state, empty_init, "M&D", "Unknown M&D Handheld", MACHINE_IS_SKELETON )
|
@ -191,7 +191,6 @@ public:
|
||||
void non_spg_base(machine_config &config);
|
||||
void lexizeus(machine_config &config);
|
||||
void taikeegr(machine_config &config);
|
||||
void shredmjr(machine_config &config);
|
||||
|
||||
void init_crc();
|
||||
void init_zeus();
|
||||
@ -611,6 +610,26 @@ private:
|
||||
required_device<eeprom_serial_93cxx_device> m_eeprom;
|
||||
};
|
||||
|
||||
class shredmjr_game_state : public spg2xx_game_state
|
||||
{
|
||||
public:
|
||||
shredmjr_game_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
spg2xx_game_state(mconfig, type, tag),
|
||||
m_porta_data(0x0000),
|
||||
m_shiftamount(0)
|
||||
{ }
|
||||
|
||||
void shredmjr(machine_config &config);
|
||||
|
||||
protected:
|
||||
DECLARE_READ16_MEMBER(porta_r);
|
||||
DECLARE_WRITE16_MEMBER(porta_w);
|
||||
|
||||
private:
|
||||
uint16_t m_porta_data;
|
||||
int m_shiftamount;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*************************
|
||||
@ -2078,158 +2097,6 @@ static INPUT_PORTS_START( taikeegr )
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( shredmjr )
|
||||
PORT_START("P1")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "0" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("P2")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "1" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
|
||||
PORT_START("P3")
|
||||
PORT_DIPNAME( 0x0001, 0x0001, "2" )
|
||||
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( sentx6p )
|
||||
PORT_START("P1")
|
||||
@ -3202,16 +3069,77 @@ void spg2xx_game_state::taikeegr(machine_config &config)
|
||||
// m_maincpu->portc_in().set_ioport("P3");
|
||||
}
|
||||
|
||||
void spg2xx_game_state::shredmjr(machine_config &config)
|
||||
// Shredmaster Jr uses the same input order as the regular Taikee Guitar, but reads all inputs through a single multplexed bit
|
||||
WRITE16_MEMBER(shredmjr_game_state::porta_w)
|
||||
{
|
||||
if (data != m_porta_data)
|
||||
{
|
||||
if ((data & 0x0800) != (m_porta_data & 0x0800))
|
||||
{
|
||||
if (data & 0x0800)
|
||||
{
|
||||
//logerror("0x0800 low -> high\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
//logerror("0x0800 high -> low\n");
|
||||
}
|
||||
}
|
||||
|
||||
if ((data & 0x0200) != (m_porta_data & 0x0200))
|
||||
{
|
||||
if (data & 0x0200)
|
||||
{
|
||||
//logerror("0x0200 low -> high\n");
|
||||
m_shiftamount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
//logerror("0x0200 high -> low\n");
|
||||
}
|
||||
}
|
||||
|
||||
if ((data & 0x0100) != (m_porta_data & 0x0100))
|
||||
{
|
||||
if (data & 0x0100)
|
||||
{
|
||||
//logerror("0x0100 low -> high\n");
|
||||
m_shiftamount = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
//logerror("0x0100 high -> low\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_porta_data = data;
|
||||
}
|
||||
|
||||
READ16_MEMBER(shredmjr_game_state::porta_r)
|
||||
{
|
||||
//logerror("porta_r with shift amount %d \n", m_shiftamount);
|
||||
uint16_t ret = 0x0000;
|
||||
|
||||
uint16_t portdata = m_io_p1->read();
|
||||
|
||||
portdata = (portdata >> m_shiftamount) & 0x1;
|
||||
|
||||
if (portdata)
|
||||
ret |= 0x0400;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void shredmjr_game_state::shredmjr(machine_config &config)
|
||||
{
|
||||
SPG24X(config, m_maincpu, XTAL(27'000'000), m_screen);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &spg2xx_game_state::mem_map_4m);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shredmjr_game_state::mem_map_4m);
|
||||
|
||||
spg2xx_base(config);
|
||||
|
||||
m_maincpu->porta_in().set_ioport("P1");
|
||||
m_maincpu->portb_in().set_ioport("P2");
|
||||
m_maincpu->portc_in().set_ioport("P3");
|
||||
m_maincpu->porta_in().set(FUNC(shredmjr_game_state::porta_r));
|
||||
m_maincpu->porta_out().set(FUNC(shredmjr_game_state::porta_w));
|
||||
}
|
||||
|
||||
|
||||
@ -4012,7 +3940,7 @@ CONS( 2006, pvmil, 0, 0, pvmil, pvmil, pvmil_state, e
|
||||
// for the UK version the title screen always shows "Guitar Rock", however there are multiple boxes with different titles and song selections.
|
||||
// ROM is glued on the underside and soldered to the PCB, very difficult to remove without damaging.
|
||||
CONS( 2007, taikeegr, 0, 0, taikeegr, taikeegr, spg2xx_game_state, init_taikeegr, "TaiKee", "Rockstar Guitar / Guitar Rock (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow)
|
||||
CONS( 2007, shredmjr, taikeegr, 0, shredmjr, shredmjr, spg2xx_game_state, init_taikeegr, "DreamGear", "Shredmaster Jr (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow), input reading different to above
|
||||
CONS( 2007, shredmjr, taikeegr, 0, shredmjr, taikeegr, shredmjr_game_state, init_taikeegr, "dreamGEAR", "Shredmaster Jr (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // bad music timings (too slow)
|
||||
|
||||
// "go 02d1d0" "do r1 = ff" to get past initial screen (currently bypassed by setting controller sense in RAM earlier, see hack in machine_reset)
|
||||
// a 'deluxe' version of this also exists with extra game modes
|
||||
|
@ -3184,6 +3184,9 @@ mechattj // A8002 'MA' (c) 1989
|
||||
mechattu // A8002 'MA' (c) 1989
|
||||
mechattu1 // A8002 'MA' (c) 1989
|
||||
|
||||
@source:bbl380.cpp
|
||||
bbl380
|
||||
|
||||
@source:bcs3.cpp
|
||||
bcs3 //
|
||||
bcs3a //
|
||||
@ -31133,7 +31136,8 @@ ablpinb
|
||||
mc_dgear
|
||||
dgun2500
|
||||
dgun2561
|
||||
lexcyber
|
||||
lxcmcy
|
||||
lxcmcysw
|
||||
cybar120
|
||||
mc_dg101
|
||||
mc_aa2
|
||||
@ -39319,6 +39323,9 @@ uts20 //
|
||||
@source:unkhorse.cpp
|
||||
unkhorse //
|
||||
|
||||
@source:unkmandd.cpp
|
||||
unkmandd
|
||||
|
||||
@source:unkpoker.cpp
|
||||
unkpoker //
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user