summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2024-01-04 22:31:28 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2024-01-04 22:31:28 +0100
commit194e5cd77fbde97f623f8b665e2d17a92c2b8e2d (patch)
tree36d4fcdf3e413efd938a840432f503a02e05b3e8 /src
parent32047b59797a2e148e8551bd0b329c59807d43ae (diff)
New systems marked not working
------------------------------ Cuty Line Limited (ver.1.30) [freaktech] - igs/goldstar.cpp: enabled girls display for cmast91 and other games on same hw, removed 2nd ppi as PCB pics and readme only show one - various files: removed superfluous semicolons
Diffstat (limited to 'src')
-rw-r--r--src/devices/cpu/scmp/scmpdasm.cpp2
-rw-r--r--src/devices/cpu/sh/sh7014_bsc.cpp2
-rw-r--r--src/devices/imagedev/cdromimg.cpp2
-rw-r--r--src/devices/video/mb86292.cpp2
-rw-r--r--src/devices/video/pc_vga_matrox.cpp4
-rw-r--r--src/devices/video/s3virge.cpp2
-rw-r--r--src/emu/inputdev.cpp2
-rw-r--r--src/mame/igs/goldstar.cpp127
-rw-r--r--src/mame/igs/goldstar.h25
-rw-r--r--src/mame/igs/goldstar_v.cpp14
-rw-r--r--src/mame/mame.lst1
11 files changed, 118 insertions, 65 deletions
diff --git a/src/devices/cpu/scmp/scmpdasm.cpp b/src/devices/cpu/scmp/scmpdasm.cpp
index f91fef7b4a1..3a6fbbbfda4 100644
--- a/src/devices/cpu/scmp/scmpdasm.cpp
+++ b/src/devices/cpu/scmp/scmpdasm.cpp
@@ -194,7 +194,7 @@ offs_t scmp_disassembler::disassemble(std::ostream &stream, offs_t pc, const dat
break;
default:
- util::stream_format(stream, "%-8sX'%02X", ".BYTE", op);;
+ util::stream_format(stream, "%-8sX'%02X", ".BYTE", op);
break;
}
return 1 | SUPPORTED;
diff --git a/src/devices/cpu/sh/sh7014_bsc.cpp b/src/devices/cpu/sh/sh7014_bsc.cpp
index 467bfdd1f46..c0014cea17b 100644
--- a/src/devices/cpu/sh/sh7014_bsc.cpp
+++ b/src/devices/cpu/sh/sh7014_bsc.cpp
@@ -50,7 +50,7 @@ void sh7014_bsc_device::map(address_map &map)
{
map(0x00, 0x01).rw(FUNC(sh7014_bsc_device::bcr1_r), FUNC(sh7014_bsc_device::bcr1_w));
map(0x02, 0x03).rw(FUNC(sh7014_bsc_device::bcr2_r), FUNC(sh7014_bsc_device::bcr2_w));
- map(0x04, 0x05).rw(FUNC(sh7014_bsc_device::wcr1_r), FUNC(sh7014_bsc_device::wcr1_w));;
+ map(0x04, 0x05).rw(FUNC(sh7014_bsc_device::wcr1_r), FUNC(sh7014_bsc_device::wcr1_w));
map(0x06, 0x07).rw(FUNC(sh7014_bsc_device::wcr2_r), FUNC(sh7014_bsc_device::wcr2_w));
map(0x0a, 0x0b).rw(FUNC(sh7014_bsc_device::dcr_r), FUNC(sh7014_bsc_device::dcr_w));
map(0x0c, 0x0d).rw(FUNC(sh7014_bsc_device::rtcsr_r), FUNC(sh7014_bsc_device::rtcsr_w));
diff --git a/src/devices/imagedev/cdromimg.cpp b/src/devices/imagedev/cdromimg.cpp
index 355314a8285..c5e0a7fbad6 100644
--- a/src/devices/imagedev/cdromimg.cpp
+++ b/src/devices/imagedev/cdromimg.cpp
@@ -100,7 +100,7 @@ std::pair<std::error_condition, std::string> cdrom_image_device::call_load()
if (has_preset_images())
{
setup_current_preset_image();
- return std::make_pair(image_error(0), std::string());;
+ return std::make_pair(image_error(0), std::string());
}
std::error_condition err;
diff --git a/src/devices/video/mb86292.cpp b/src/devices/video/mb86292.cpp
index f305992a9d6..d7e8371ed4a 100644
--- a/src/devices/video/mb86292.cpp
+++ b/src/devices/video/mb86292.cpp
@@ -1083,7 +1083,7 @@ void mb86292_device::fb_commit()
{
u16 pixel = vram_read_word(c_layer_addr + (x << 1));
if ((pixel & 0x7fff) == m_c_layer.transpen)
- pixel = vram_read_word(bl_layer_addr + (x << 1));;
+ pixel = vram_read_word(bl_layer_addr + (x << 1));
vram_write_word(fb_addr + (x << 1), pixel);
}
}
diff --git a/src/devices/video/pc_vga_matrox.cpp b/src/devices/video/pc_vga_matrox.cpp
index d9643d666ff..b795ec17877 100644
--- a/src/devices/video/pc_vga_matrox.cpp
+++ b/src/devices/video/pc_vga_matrox.cpp
@@ -656,10 +656,10 @@ uint32_t matrox_vga_device::screen_update(screen_device &screen, bitmap_rgb32 &b
const int m_test_y = cliprect.max_y;
if(machine().input().code_pressed(JOYCODE_X_RIGHT_SWITCH))
- m_test_x += 1 << (machine().input().code_pressed(JOYCODE_BUTTON2) ? 4 : 0);;
+ m_test_x += 1 << (machine().input().code_pressed(JOYCODE_BUTTON2) ? 4 : 0);
if(machine().input().code_pressed(JOYCODE_X_LEFT_SWITCH))
- m_test_x -= 1 << (machine().input().code_pressed(JOYCODE_BUTTON2) ? 4 : 0);;
+ m_test_x -= 1 << (machine().input().code_pressed(JOYCODE_BUTTON2) ? 4 : 0);
//if(machine().input().code_pressed(JOYCODE_Y_DOWN_SWITCH))
// m_test_y++;
diff --git a/src/devices/video/s3virge.cpp b/src/devices/video/s3virge.cpp
index 16f75c859c7..75b20f2ff87 100644
--- a/src/devices/video/s3virge.cpp
+++ b/src/devices/video/s3virge.cpp
@@ -298,7 +298,7 @@ void s3virge_vga_device::crtc_map(address_map &map)
);
map(0x59, 0x59).lrw8(
NAME([this] (offs_t offset) {
- return (s3virge.linear_address & 0xff000000) >> 24;;
+ return (s3virge.linear_address & 0xff000000) >> 24;
}),
NAME([this] (offs_t offset, u8 data) {
const uint32_t old_address = s3virge.linear_address;
diff --git a/src/emu/inputdev.cpp b/src/emu/inputdev.cpp
index 321d04e77df..a9caaf7788d 100644
--- a/src/emu/inputdev.cpp
+++ b/src/emu/inputdev.cpp
@@ -476,7 +476,7 @@ input_device_joystick::input_device_joystick(input_manager &manager, std::string
s32 input_device_joystick::adjust_absolute_value(s32 result) const
{
// properties are symmetric
- bool const negative = result < 0;;
+ bool const negative = result < 0;
if (negative)
result = -result;
diff --git a/src/mame/igs/goldstar.cpp b/src/mame/igs/goldstar.cpp
index b5f971b59f6..f65fdea9077 100644
--- a/src/mame/igs/goldstar.cpp
+++ b/src/mame/igs/goldstar.cpp
@@ -811,7 +811,7 @@ void goldstar_state::nfm_map(address_map &map)
map(0xfc80, 0xffff).ram();
}
-void goldstar_state::animalhs_map(address_map &map)
+void cmaster_state::animalhs_map(address_map &map)
{
map(0x0000, 0xb7ff).rom().nopw();
@@ -960,7 +960,7 @@ void goldstar_state::pkrmast_portmap(address_map &map)
map(0xf0, 0xf0).nopw(); /* Writing 0's and 1's constantly. Watchdog feeder? */
}
-void goldstar_state::eldoraddoa_portmap(address_map &map) // TODO: incomplete!
+void cmaster_state::eldoraddoa_portmap(address_map &map) // TODO: incomplete!
{
map.global_mask(0xff);
@@ -977,7 +977,7 @@ void goldstar_state::eldoraddoa_portmap(address_map &map) // TODO: incomplete!
map(0x23, 0x23).lr8(NAME([] () -> uint8_t { return 0xff; })); // checks battery level here, among other things, writes should be lamps
}
-void goldstar_state::animalhs_portmap(address_map &map) // TODO: incomplete, maybe share base with above eldoraddoa_portmap once both have been verified
+void cmaster_state::animalhs_portmap(address_map &map) // TODO: incomplete, maybe share base with above eldoraddoa_portmap once both have been verified
{
map.global_mask(0xff);
@@ -994,11 +994,13 @@ void goldstar_state::animalhs_portmap(address_map &map) // TODO: incomplete, may
map(0x63, 0x63).lr8(NAME([] () -> uint8_t { return 0xff; })); // checks battery level here, among other things, writes should be lamps
}
-void goldstar_state::cmast91_portmap(address_map &map)
+void cmaster_state::cmast91_portmap(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
- map(0x10, 0x13).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
+ map(0x00, 0x00).portr("IN0").w(FUNC(cmaster_state::outport0_w));
+ map(0x01, 0x01).portr("IN1").w(FUNC(cmaster_state::background_col_w));
+ map(0x02, 0x02).portr("IN2");
+ map(0x10, 0x13).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
map(0x21, 0x21).r("aysnd", FUNC(ay8910_device::data_r));
map(0x22, 0x23).w("aysnd", FUNC(ay8910_device::data_address_w));
}
@@ -2333,14 +2335,8 @@ static INPUT_PORTS_START( cmast91 )
PORT_INCLUDE( cmv4_dsw5 )
PORT_MODIFY("DSW5")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:1") /* normally Display of Doll On Demo, but no ladies in this set */
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Coin In Limit OK */
/* Condition For 3 Kind Of Bonus not checked */
- PORT_DIPNAME( 0x20, 0x20, "Show Odds In Double Up Game" ) PORT_DIPLOCATION("DSW5:6") /* OK */
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, "Skill Stop" ) PORT_DIPLOCATION("DSW5:7") /* OK */
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -8912,7 +8908,7 @@ void goldstar_state::cm_palette(palette_device &palette) const
}
}
-void goldstar_state::cmast91_palette(palette_device &palette) const
+void cmaster_state::cmast91_palette(palette_device &palette) const
{
uint8_t const *const proms = memregion("proms")->base();
for (int i = 0; i < 0x100; i++)
@@ -9176,22 +9172,17 @@ void cmaster_state::super7(machine_config &config)
m_maincpu->set_addrmap(AS_IO, &cmaster_state::super7_portmap);
}
-void goldstar_state::cmast91(machine_config &config)
+void cmaster_state::cmast91(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, CPU_CLOCK);
- m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::cm_map);
- m_maincpu->set_addrmap(AS_IO, &goldstar_state::cmast91_portmap);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::cm_map);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::cmast91_portmap);
I8255A(config, m_ppi[0]);
- m_ppi[0]->in_pa_callback().set_ioport("IN0");
- m_ppi[0]->in_pb_callback().set_ioport("IN1");
- m_ppi[0]->in_pc_callback().set_ioport("IN2");
-
- I8255A(config, m_ppi[1]);
- m_ppi[1]->in_pa_callback().set_ioport("DSW1");
- m_ppi[1]->in_pb_callback().set_ioport("DSW2");
- m_ppi[1]->in_pc_callback().set_ioport("DSW3");
+ m_ppi[0]->in_pa_callback().set_ioport("DSW1");
+ m_ppi[0]->in_pb_callback().set_ioport("DSW2");
+ m_ppi[0]->in_pc_callback().set_ioport("DSW3");
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -9199,14 +9190,14 @@ void goldstar_state::cmast91(machine_config &config)
// screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
screen.set_size(64*8, 32*8);
screen.set_visarea(0*8, 64*8-1, 1*8, 31*8-1);
- screen.set_screen_update(FUNC(goldstar_state::screen_update_cmast91));
+ screen.set_screen_update(FUNC(cmaster_state::screen_update_cmast91));
screen.screen_vblank().set_inputline(m_maincpu, 0, HOLD_LINE);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_cmast91);
- PALETTE(config, m_palette, FUNC(goldstar_state::cmast91_palette), 256);
+ PALETTE(config, m_palette, FUNC(cmaster_state::cmast91_palette), 256);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
- MCFG_VIDEO_START_OVERRIDE(goldstar_state, cherrym)
+ MCFG_VIDEO_START_OVERRIDE(cmaster_state, cherrym)
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -9839,28 +9830,28 @@ void goldstar_state::crazybonb(machine_config &config)
m_maincpu->set_addrmap(AS_OPCODES, &goldstar_state::super972_decrypted_opcodes_map);
}
-void goldstar_state::animalhs(machine_config &config)
+void cmaster_state::animalhs(machine_config &config)
{
crazybonb(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &goldstar_state::animalhs_map);
- m_maincpu->set_addrmap(AS_IO, &goldstar_state::animalhs_portmap);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cmaster_state::animalhs_map);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::animalhs_portmap);
- subdevice<screen_device>("screen")->set_screen_update(FUNC(goldstar_state::screen_update_cmast91));
+ subdevice<screen_device>("screen")->set_screen_update(FUNC(cmaster_state::screen_update_cmast91));
subdevice<screen_device>("screen")->set_size(64*8, 32*8);
subdevice<screen_device>("screen")->set_visarea(0*8, 64*8-1, 1*8+4, 30*8+4-1);
m_gfxdecode->set_info(gfx_animalhs);
- m_palette->set_init(FUNC(goldstar_state::cmast91_palette));
+ m_palette->set_init(FUNC(cmaster_state::cmast91_palette));
subdevice<ay8910_device>("aysnd")->port_a_read_callback().set_ioport("DSW5");
subdevice<ay8910_device>("aysnd")->port_b_read_callback().set_ioport("DSW6");
}
-void goldstar_state::eldoraddoa(machine_config &config)
+void cmaster_state::eldoraddoa(machine_config &config)
{
animalhs(config);
- m_maincpu->set_addrmap(AS_IO, &goldstar_state::eldoraddoa_portmap);
+ m_maincpu->set_addrmap(AS_IO, &cmaster_state::eldoraddoa_portmap);
}
void unkch_state::megaline(machine_config &config)
@@ -12189,7 +12180,7 @@ ROM_START( cmast91 )
ROM_CONTINUE(0xf000,0x1000)
ROM_REGION( 0x18000, "gfx1", 0 )
- ROM_LOAD( "7.bin", 0x00000, 0x8000, CRC(1edf1f1d) SHA1(558fa01f1efd7f6541047d3930bdce0974bae5b0))
+ ROM_LOAD( "7.bin", 0x00000, 0x8000, CRC(1edf1f1d) SHA1(558fa01f1efd7f6541047d3930bdce0974bae5b0) )
ROM_LOAD( "6.bin", 0x08000, 0x8000, CRC(13582e74) SHA1(27e318542606b8e8d38250749ba996402d314abd) )
ROM_LOAD( "5.bin", 0x10000, 0x8000, CRC(28ff88cc) SHA1(46bc0407be857e8348159735b60cfb660f047a56) )
@@ -12217,6 +12208,46 @@ ROM_START( cmast91 )
ROM_LOAD( "pld4.bin", 0x0600, 0x0104, NO_DUMP )
ROM_END
+ROM_START( cll ) // Dyna D9004 PCB
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "cll_80_t.bin", 0x0000, 0x1000, CRC(62d386db) SHA1(9a061e80d78ed13a6dae59e447c138b0f5e5d892) ) // M27512
+ ROM_CONTINUE( 0x4000, 0x1000 )
+ ROM_CONTINUE( 0x1000, 0x1000 )
+ ROM_CONTINUE( 0x5000, 0x1000 )
+ ROM_CONTINUE( 0x2000, 0x1000 )
+ ROM_CONTINUE( 0x6000, 0x1000 )
+ ROM_CONTINUE( 0x3000, 0x1000 )
+ ROM_CONTINUE( 0x7000, 0x9000 )
+
+ ROM_REGION( 0x18000, "gfx1", 0 ) // all UPD27C256A
+ ROM_LOAD( "cm_73.bin", 0x00000, 0x8000, CRC(6bc1d96a) SHA1(9eeae92f171e99bedadd5a681250d3dcaa77d5ee) )
+ ROM_LOAD( "cm_63.bin", 0x08000, 0x8000, CRC(5e03fe51) SHA1(74aefdab3d2008555a740e73d7b8a0a60d2902c3) )
+ ROM_LOAD( "cm_53.bin", 0x10000, 0x8000, CRC(36131408) SHA1(5e1dee61c9e4bd75e63a441eedc49604707296a1) )
+
+ ROM_REGION( 0x20000, "gfx2", 0 )
+ ROM_LOAD( "cm_4.bin", 0x00000, 0x8000, CRC(0dbabaa2) SHA1(44235b19dac1c996e2166672b03f6e3888ecbefa) ) // UPD27C256A, 11xxxxxxxxxxxxx = 0xFF
+ ROM_LOAD( "cm_3.bin", 0x08000, 0x8000, CRC(dc77d04a) SHA1(d8656130cde54d4bb96307899f6d607867e49e6c) ) // AM27C256, 11xxxxxxxxxxxxx = 0xFF
+ ROM_LOAD( "cm_1.bin", 0x10000, 0x8000, CRC(71bdab69) SHA1(d2c594ed88d6368df15b623c48eecc1c219b839e) ) // AM27C256, 11xxxxxxxxxxxxx = 0xFF
+ ROM_LOAD( "cm_2.bin", 0x18000, 0x8000, CRC(201d1e90) SHA1(c3c5224646b777f98ee35d146136788029b1782d) ) // AM27C256, 11xxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x40000, "user1", ROMREGION_ERASE00 ) // girls GFX
+ ROM_LOAD( "9.bin", 0x00000, 0x40000, NO_DUMP ) // PCB shows the girls when dip 5:1 is on
+
+ // PROMs weren't included in the dump, using cmast91's for now. Colors seems correct, though.
+ ROM_REGION( 0x300, "proms", 0 )
+ ROM_LOAD( "p1.bin", 0x0000, 0x0100, BAD_DUMP CRC(ac529f04) SHA1(5bc92e50c85bb23e609172cc15c430ddea7fdcb5) )
+ ROM_LOAD( "p2.bin", 0x0100, 0x0100, BAD_DUMP CRC(3febce95) SHA1(c7c0fec0fb024ebf7d7365a09d28ba3d0037b0b4) )
+ ROM_LOAD( "p3.bin", 0x0200, 0x0100, BAD_DUMP CRC(99dbdf19) SHA1(3680335406f63289f8d9a81b4cd163e4aa0c14d4) )
+
+ ROM_REGION( 0x100, "proms2", 0 )
+ ROM_LOAD( "p4.bin", 0x0000, 0x0100, BAD_DUMP CRC(72212427) SHA1(e87a91f28284313c706ebb8175a3586780636e31) )
+
+ ROM_REGION( 0x800, "plds", 0 )
+ ROM_LOAD( "pld1.bin", 0x0000, 0x0104, NO_DUMP )
+ ROM_LOAD( "pld2.bin", 0x0200, 0x0104, NO_DUMP )
+ ROM_LOAD( "pld3.bin", 0x0400, 0x0104, NO_DUMP )
+ ROM_LOAD( "pld4.bin", 0x0600, 0x0104, NO_DUMP )
+ROM_END
ROM_START( cmast92 )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -19326,7 +19357,14 @@ void cmaster_state::init_cmfb55()
m_palette->update();
}
-void goldstar_state::init_cmast91()
+void cmaster_state::init_cmast91()
+{
+ save_item(NAME(m_cm_enable_reg));
+ save_item(NAME(m_cmaster_girl_num));
+ save_item(NAME(m_cmaster_girl_pal));
+}
+
+void cmaster_state::init_cll()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -19334,7 +19372,7 @@ void goldstar_state::init_cmast91()
the mixed modes 2-0 are not working properly.
*/
rom[0x0070] = 0x9b;
- rom[0x0a92] = 0x9b;
+ rom[0x0a9c] = 0x9b;
}
void wingco_state::init_lucky8a()
@@ -20251,7 +20289,7 @@ void cmaster_state::init_super7() // possibly incomplete decryption. Game appear
}
}
-void goldstar_state::init_animalhs()
+void cmaster_state::init_animalhs()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -20259,7 +20297,7 @@ void goldstar_state::init_animalhs()
m_decrypted_opcodes[a] = bitswap<8>(rom[a] ^ 0xff, 2, 3, 0, 1, 6, 7, 4, 5);
}
-void goldstar_state::init_eldoraddoa()
+void cmaster_state::init_eldoraddoa()
{
uint8_t *rom = memregion("maincpu")->base();
@@ -20310,9 +20348,9 @@ GAME( 1994, chryangla, ncb3, chryangla,ncb3, cb3_state, init_chry
GAME( 1991, eldoradd, 0, eldoradd, chrygld, cb3_state, empty_init, ROT0, "Dyna", "El Dorado (V5.1DR)", MACHINE_NOT_WORKING ) // everything
GAME( 1991, eldoraddo, eldoradd, eldoradd, chrygld, cb3_state, empty_init, ROT0, "Dyna", "El Dorado (V1.1TA)", MACHINE_NOT_WORKING ) // everything
-GAME( 1991, eldoraddoa, eldoradd, eldoraddoa,animalhs,cb3_state, init_eldoraddoa,ROT0, "Dyna", "El Dorado (V1.4D)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // improve GFX drawing, correct palette decode, I/O, etc
-GAME( 1991, animalhs, 0, animalhs, animalhs, goldstar_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
-GAME( 1991, animalhsa, animalhs, animalhs, animalhs, goldstar_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 2)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
+GAME( 1991, eldoraddoa, eldoradd, eldoraddoa,animalhs,cmaster_state, init_eldoraddoa,ROT0, "Dyna", "El Dorado (V1.4D)", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS ) // improve GFX drawing, correct palette decode, I/O, etc
+GAME( 1991, animalhs, 0, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 1)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
+GAME( 1991, animalhsa, animalhs, animalhs, animalhs, cmaster_state, init_animalhs, ROT0, "Suns Co Ltd.", "Animal House (V1.0, set 2)", MACHINE_NOT_WORKING ) // improve GFX drawing, correct palette decode, I/O, etc
// looks like a hack of Cherry Bonus 3
GAME( 1994, chryangl, ncb3, chryangl, chryangl, cmaster_state, init_chryangl, ROT0, "bootleg (G.C.I.)", "Cherry Angel (set 1)", MACHINE_NOT_WORKING ) // SKY SUPERCB 1.0 string, decrypted but hangs when betting
@@ -20360,8 +20398,9 @@ GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, goldstar_state, init_pkrm
GAME( 199?, chthree, cmaster, cm, cmaster, cmaster_state, init_chthree, ROT0, "Promat", "Channel Three", 0 ) // hack of cmaster, still shows DYNA CM-1 V1.01 in book-keeping
-GAME( 1991, cmast91, 0, cmast91, cmast91, goldstar_state, init_cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 )
-GAME( 1992, cmast92, 0, cmast91, cmast91, goldstar_state, init_cmast91, ROT0, "Dyna", "Cherry Master '92", MACHINE_NOT_WORKING ) // no gfx roms are dumped
+GAME( 1991, cmast91, 0, cmast91, cmast91, cmaster_state, init_cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 )
+GAME( 1991, cll, 0, cmast91, cmast91, cmaster_state, init_cll, ROT0, "Dyna / TAB Austria","Cuty Line Limited (ver.1.30)", MACHINE_NOT_WORKING ) // needs verifying inputs / dips, missing girls GFX ROM dump
+GAME( 1992, cmast92, 0, cmast91, cmast91, cmaster_state, init_cmast91, ROT0, "Dyna", "Cherry Master '92", MACHINE_NOT_WORKING ) // no gfx roms are dumped
GAME( 1996, cmast97, 0, cm97, cmv801, cmaster_state, empty_init, ROT0, "Dyna", "Cherry Master '97", MACHINE_NOT_WORKING ) // fix prom decode, reels
GAME( 1999, cmast99, 0, cm, cmast99, cmaster_state, init_cmv4, ROT0, "Dyna", "Cherry Master '99 (V9B.00)", MACHINE_NOT_WORKING )
GAME( 1999, cmast99b, cmast99, cm, cmast99, cmaster_state, init_cmv4, ROT0, "bootleg", "Cherry Master '99 (V9B.00 bootleg / hack)", MACHINE_NOT_WORKING )
diff --git a/src/mame/igs/goldstar.h b/src/mame/igs/goldstar.h
index 505e7eeeea7..e39d49718ae 100644
--- a/src/mame/igs/goldstar.h
+++ b/src/mame/igs/goldstar.h
@@ -55,11 +55,8 @@ public:
void init_jkrmast();
void init_pkrmast();
void init_crazybonb();
- void init_cmast91();
void init_wcherry();
void init_super9();
- void init_animalhs();
- void init_eldoraddoa();
void init_ladylinrb();
void init_ladylinrc();
void init_ladylinrd();
@@ -67,11 +64,9 @@ public:
DECLARE_VIDEO_START(goldstar);
void cm_palette(palette_device &palette) const;
DECLARE_VIDEO_START(cherrym);
- void cmast91_palette(palette_device &palette) const;
void lucky8_palette(palette_device &palette) const;
void nfm_palette(palette_device &palette) const;
uint32_t screen_update_goldstar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- uint32_t screen_update_cmast91(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void ladylinr(machine_config &config);
void ladylinrb(machine_config &config);
@@ -81,17 +76,13 @@ public:
void pkrmast(machine_config &config);
void moonlght(machine_config &config);
void kkotnoli(machine_config &config);
- void cmast91(machine_config &config);
void super9(machine_config &config);
void goldfrui(machine_config &config);
void goldstar(machine_config &config);
void goldstbl(machine_config &config);
- void animalhs(machine_config &config);
- void eldoraddoa(machine_config &config);
void bonusch_portmap(address_map &map);
void feverch_portmap(address_map &map);
void cm_map(address_map &map);
- void cmast91_portmap(address_map &map);
void crazybon_portmap(address_map &map);
void flaming7_map(address_map &map);
void goldstar_map(address_map &map);
@@ -107,9 +98,6 @@ public:
void nfm_map(address_map &map);
void pkrmast_portmap(address_map &map);
void ramdac_map(address_map &map);
- void animalhs_map(address_map &map);
- void animalhs_portmap(address_map &map);
- void eldoraddoa_portmap(address_map &map);
void wcat3_map(address_map &map);
void wcherry_map(address_map &map);
void wcherry_readwriteport(address_map &map);
@@ -205,12 +193,19 @@ public:
void init_ll3();
void init_cmfb55();
void init_hamhouse();
+ void init_cmast91();
+ void init_cll();
+ void init_animalhs();
+ void init_eldoraddoa();
uint32_t screen_update_amcoe1a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update_cmast91(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void cmast91_palette(palette_device &palette) const;
void cm(machine_config &config);
void cmfb55(machine_config &config);
void cm97(machine_config &config);
+ void cmast91(machine_config &config);
void cmasterc(machine_config &config);
void amcoe1a(machine_config &config);
void nfm(machine_config &config);
@@ -219,10 +214,16 @@ public:
void chryangl(machine_config &config);
void ss2001(machine_config &config);
void super7(machine_config &config);
+ void animalhs(machine_config &config);
+ void eldoraddoa(machine_config &config);
+ void animalhs_map(address_map &map);
+ void animalhs_portmap(address_map &map);
void amcoe1_portmap(address_map &map);
void amcoe2_portmap(address_map &map);
void cm_portmap(address_map &map);
void cm97_portmap(address_map &map);
+ void cmast91_portmap(address_map &map);
+ void eldoraddoa_portmap(address_map &map);
void super7_portmap(address_map &map);
void chryangl_decrypted_opcodes_map(address_map &map);
void ss2001_portmap(address_map &map);
diff --git a/src/mame/igs/goldstar_v.cpp b/src/mame/igs/goldstar_v.cpp
index 911caaf6a32..340b07640a2 100644
--- a/src/mame/igs/goldstar_v.cpp
+++ b/src/mame/igs/goldstar_v.cpp
@@ -198,7 +198,7 @@ uint32_t goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_rg
}
-uint32_t goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+uint32_t cmaster_state::screen_update_cmast91(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(rgb_t::black(), cliprect);
@@ -223,6 +223,18 @@ uint32_t goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_rgb
m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
}
+ if (m_cm_enable_reg & 0x04)
+ {
+ if (memregion("user1")->base())
+ {
+ gfx_element *gfx = m_gfxdecode->gfx(2);
+ int const girlyscroll = (int8_t)((m_cm_girl_scroll & 0xf0));
+ int const girlxscroll = (int8_t)((m_cm_girl_scroll & 0x0f) << 4);
+
+ gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
+ }
+ }
+
if (m_cm_enable_reg & 0x02)
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 5504ae27624..7e8796bd4ee 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -19723,6 +19723,7 @@ chryanglb // bootleg
chrygld // bootleg
chryglda // bootleg
chthree // 199? Promat
+cll // (c) 1991 Dyna Electronics
cmast91 // (c) 1991 Dyna Electronics
cmast92 // (c) 1992 Dyna Electronics
cmast97 // (c) 1996 Dyna Electronics