Skip to content

Commit b1087b1

Browse files
author
David Haywood
committed
gave piano pc its own state
1 parent d08d0ef commit b1087b1

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

src/mame/tvgames/xavix_2002.cpp

+19-1
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,17 @@ void superxavix_super_tv_pc_state::superxavix_super_tv_pc(machine_config& config
475475
SOFTWARE_LIST(config, "cart_list").set_original("super_tv_pc_cart");
476476
}
477477

478+
void superxavix_piano_pc_state::superxavix_piano_pc(machine_config &config)
479+
{
480+
xavix2002(config);
481+
482+
m_anport->read_0_callback().set(FUNC(superxavix_piano_pc_state::piano_pc_anport0_r));
483+
m_anport->read_1_callback().set(FUNC(superxavix_piano_pc_state::piano_pc_anport1_r));
484+
485+
m_xavix2002io->read_0_callback().set(FUNC(superxavix_piano_pc_state::read_extended_io0));
486+
m_xavix2002io->read_1_callback().set(FUNC(superxavix_piano_pc_state::read_extended_io1));
487+
m_xavix2002io->read_2_callback().set(FUNC(superxavix_piano_pc_state::read_extended_io2));
488+
}
478489

479490

480491
void superxavix_doradraw_state::xavix_extbus_map(address_map &map)
@@ -762,6 +773,13 @@ void superxavix_i2c_jmat_state::init_xavmusic()
762773
m_disable_sprite_yflip = true;
763774
}
764775

776+
void superxavix_piano_pc_state::init_piano_pc()
777+
{
778+
init_xavix();
779+
m_disable_memory_bypass = true;
780+
}
781+
782+
765783
void superxavix_doradraw_state::init_doradraw()
766784
{
767785
init_xavix();
@@ -841,7 +859,7 @@ CONS( 2006, suprtvpchk, suprtvpc, 0, superxavix_super_tv_pc, suprtvpc,
841859
CONS( 2006, suprtvpcdo, suprtvpc, 0, superxavix_super_tv_pc, suprtvpc, superxavix_super_tv_pc_state, init_stvpc, "Epoch / SSD Company LTD", "Super TV-PC - Doraemon (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
842860

843861
// similar to Super TV-PC but with additional built in piano
844-
CONS( 2008, epo_ntpj, 0, 0, superxavix_super_tv_pc, suprtvpc, superxavix_super_tv_pc_state, init_xavix, "Epoch / SSD Company LTD", "Hello Kitty Piano PC (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
862+
CONS( 2008, epo_ntpj, 0, 0, superxavix_piano_pc, suprtvpc, superxavix_piano_pc_state, init_piano_pc, "Epoch / SSD Company LTD", "Hello Kitty Piano PC (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
845863

846864
// ドラえもん うごく!おえかき エポック社
847865
CONS( 2007, doradraw, 0, 0, superxavix_doradraw, xavix, superxavix_doradraw_state, init_doradraw, "Epoch / SSD Company LTD", "Doraemon Moving! Oekaki (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )

src/mame/tvgames/xavix_2002.h

+22
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,28 @@ class superxavix_super_tv_pc_state : public superxavix_state
7676
required_memory_bank m_rombank;
7777
};
7878

79+
80+
class superxavix_piano_pc_state : public superxavix_state
81+
{
82+
public:
83+
superxavix_piano_pc_state(const machine_config &mconfig, device_type type, const char *tag)
84+
: superxavix_state(mconfig, type, tag)
85+
{ }
86+
87+
void superxavix_piano_pc(machine_config &config);
88+
89+
void init_piano_pc();
90+
91+
private:
92+
uint8_t piano_pc_anport0_r() { return (m_mouse0x->read()^0x7f)+1; }
93+
uint8_t piano_pc_anport1_r() { return (m_mouse0y->read()^0x7f)+1; }
94+
95+
// needs 0x00 returning from one of these to boot past loading screen
96+
uint8_t read_extended_io0(offs_t offset, uint8_t mem_mask) { return 0x00; }
97+
uint8_t read_extended_io1(offs_t offset, uint8_t mem_mask) { return 0x00; }
98+
uint8_t read_extended_io2(offs_t offset, uint8_t mem_mask) { return 0x00; }
99+
};
100+
79101
class superxavix_doradraw_state : public superxavix_state
80102
{
81103
public:

0 commit comments

Comments
 (0)