This commit is contained in:
Bryan McPhail 2017-06-28 10:08:46 -04:00
commit f61d1ceb0c
12 changed files with 182 additions and 77 deletions

View File

@ -4,8 +4,8 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mamedev.mame"
android:versionCode="186"
android:versionName="0.186"
android:versionCode="187"
android:versionName="0.187"
android:installLocation="auto">
<!-- Android 5.0 -->

View File

@ -1546,14 +1546,14 @@ endif
ifeq (posix,$(SHELLTYPE))
$(GENDIR)/version.cpp: $(GENDIR)/git_desc | $(GEN_FOLDERS)
@echo '#define BARE_BUILD_VERSION "0.186"' > $@
@echo '#define BARE_BUILD_VERSION "0.187"' > $@
@echo 'extern const char bare_build_version[];' >> $@
@echo 'extern const char build_version[];' >> $@
@echo 'const char bare_build_version[] = BARE_BUILD_VERSION;' >> $@
@echo 'const char build_version[] = BARE_BUILD_VERSION " ($(NEW_GIT_VERSION))";' >> $@
else
$(GENDIR)/version.cpp: $(GENDIR)/git_desc
@echo #define BARE_BUILD_VERSION "0.186" > $@
@echo #define BARE_BUILD_VERSION "0.187" > $@
@echo extern const char bare_build_version[]; >> $@
@echo extern const char build_version[]; >> $@
@echo const char bare_build_version[] = BARE_BUILD_VERSION; >> $@

View File

@ -7,6 +7,39 @@
Written by Ernesto Corvi
****************************************************************************
___________ ___________
EX 1 |] | 42 Vcc EX 1 |] | 28 Vcc
X 2 |] | 41 K3 X 2 |] | 27 K3
_RESET 3 |] | 40 K2 _RESET 3 |] | 26 K2
_IRQ 4 |] | 39 K1 O0 4 |] | 25 K1
SO 5 |] | 38 K0 O1 5 |] | 24 K0
SI 6 |] | 37 R15 O2 6 |] | 23 R10/_IRQ
_SC/_TO 7 |] | 36 R14 O3 7 |] MB8842 | 22 R9/_TC
_TC 8 |] | 35 R13 O4 8 |] MB8844 | 21 R8
P0 9 |] | 34 R12 O5 9 |] | 20 R7
P1 10 |] MB8841 | 33 R11 O6 10 |] | 19 R6
P2 11 |] MB8843 | 32 R10 O7 11 |] | 18 R5
P3 12 |] | 31 R9 R0 12 |] | 17 R4
O0 13 |] | 30 R8 R1 13 |] | 16 R3
O1 14 |] | 29 R7 Vss 14 |]__________| 15 R2
O2 15 |] | 28 R6
O3 16 |] | 27 R5
O4 17 |] | 26 R4
O5 18 |] | 25 R3
O6 19 |] | 24 R2
O7 20 |] | 23 R1
Vss 21 |]__________| 22 R0
___ ___
R6 1 | \_/ | 16 Vcc
R7 2 | | 15 _RESET
R8 3 | | 14 R5
R9 4 | MB88201 | 13 R4
R10/START 5 | MB88202 | 12 R3
R11/X 6 | | 11 R2
EX 7 | | 10 R1
Vss 8 |_________| 9 R0
***************************************************************************/
#ifndef MAME_CPU_MB88XX_MB88XX_H

View File

@ -2199,7 +2199,7 @@ void mame_ui_manager::save_main_option()
for (const auto &f_entry : machine().options().entries())
{
const char *value = f_entry->value();
if (value && strcmp(value, options.value(f_entry->name().c_str())))
if (value && options.exists(f_entry->name()) && strcmp(value, options.value(f_entry->name().c_str())))
{
options.set_value(f_entry->name(), *f_entry->value(), OPTION_PRIORITY_CMDLINE);
}

View File

@ -6,10 +6,10 @@
Sharp SM5xx family handhelds.
TODO:
- improve svg layout for gnw_mc25, gnw_jr55, gnw_mw56
- improve svg screen for gnw_mc25, gnw_eg26, gnw_jr55, gnw_mw56, exospace
- svg lcd screen background/foreground (not supported in core),
or should it be for external artwork only?
- confirm gnw_mc25 rom (dumped from Soviet clone, but pretty confident that it's same)
- confirm gnw_mc25/gnw_eg26 rom (dumped from Soviet clone, but pretty confident that it's same)
***************************************************************************/
@ -607,9 +607,11 @@ MACHINE_CONFIG_END
MC-25 and EG-26 are the same game, it's assumed that the latter was for
regions where Nintendo wasn't able to license from Disney.
In 1984, Elektronika(USSR) released a clone: Nu, Pogodi! This was followed
by several other games that were the same under the hood, only differing
in graphics.
In 1984, Elektronika(USSR) released a clone: Nu, pogodi! This was followed
by several other titles that were the same under the hood, only differing
in graphics. They also made a slightly modified version, adding a new game
mode (by pressing A+B) where the player/CPU roles are reversed. This version
is known as Razvedciki kosmosa (export version: Explorers of Space).
***************************************************************************/
@ -650,6 +652,13 @@ static INPUT_PORTS_START( mc25 )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
static INPUT_PORTS_START( exospace )
PORT_INCLUDE( mc25 )
PORT_MODIFY("BA")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
static MACHINE_CONFIG_START( mc25 )
/* basic machine hardware */
@ -674,6 +683,37 @@ static MACHINE_CONFIG_START( mc25 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( eg26, mc25 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(1694, 1080)
MCFG_SCREEN_VISIBLE_AREA(0, 1694-1, 0, 1080-1)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( nupogodi, mc25 )
/* basic machine hardware */
MCFG_CPU_REPLACE("maincpu", KB1013VK12, XTAL_32_768kHz)
MCFG_SM500_WRITE_O_CB(WRITE8(hh_sm510_state, sm500_lcd_segment_w))
MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_input_w))
MCFG_SM510_READ_BA_CB(IOPORT("BA"))
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(1724, 1080)
MCFG_SCREEN_VISIBLE_AREA(0, 1724-1, 0, 1080-1)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( exospace, nupogodi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(1756, 1080)
MCFG_SCREEN_VISIBLE_AREA(0, 1756-1, 0, 1080-1)
MACHINE_CONFIG_END
@ -1248,6 +1288,30 @@ ROM_START( gnw_mc25 )
ROM_LOAD( "gnw_mc25.svg", 0, 100018, CRC(bcd01de3) SHA1(2c7a9da248f96ac11e794a46942a3e420d1e854b) )
ROM_END
ROM_START( gnw_eg26 )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "eg-26", 0x0000, 0x0740, BAD_DUMP CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) ) // dumped from Soviet clone
ROM_REGION( 100529, "svg", 0)
ROM_LOAD( "gnw_eg26.svg", 0, 100529, CRC(055c6b47) SHA1(66f78cd705bc982e92c950a7bd685c681c52a5e7) )
ROM_END
ROM_START( nupogodi )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "nupogodi.bin", 0x0000, 0x0740, CRC(cb820c32) SHA1(7e94fc255f32db725d5aa9e196088e490c1a1443) )
ROM_REGION( 123824, "svg", 0)
ROM_LOAD( "nupogodi.svg", 0, 123824, CRC(fc1ccab0) SHA1(ef81b5119a62dc68486db85a19ac9db5ef01778e) )
ROM_END
ROM_START( exospace )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "exospace.bin", 0x0000, 0x0740, CRC(553e2b09) SHA1(2b74f8437b881fbb62b61f25435a5bfc66872a9a) )
ROM_REGION( 63114, "svg", 0)
ROM_LOAD( "exospace.svg", 0, 63114, CRC(64a24c67) SHA1(54c77615a748e44c8c6217583c7567a152dcf21f) )
ROM_END
ROM_START( gnw_dm53 )
ROM_REGION( 0x1000, "maincpu", 0 )
@ -1316,17 +1380,23 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE )
// YEAR NAME PARENT COMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, ktopgun_state, 0, "Konami", "Top Gun (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kcontra, 0, 0, kcontra, kcontra, kcontra_state, 0, "Konami", "Contra (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, ktmnt_state, 0, "Konami", "Teenage Mutant Ninja Turtles (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kgradius, 0, 0, kgradius, kgradius, kgradius_state, 0, "Konami", "Gradius (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1989, kloneran, 0, 0, kloneran, kloneran, kloneran_state, 0, "Konami", "Lone Ranger (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1981, gnw_mc25, 0, 0, mc25, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE )
CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_mw56, 0, 0, mw56, mw56, mw56_state, 0, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE )
CONS( 1982, gnw_dj101, 0, 0, dj101, dj101, dj101_state, 0, "Nintendo", "Game & Watch: Donkey Kong Jr. (new wide screen)", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory (new wide screen)", MACHINE_SUPPORTS_SAVE )
CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE )
CONS( 1981, gnw_mc25, 0, 0, mc25, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Mickey Mouse", MACHINE_SUPPORTS_SAVE )
CONS( 1981, gnw_eg26, gnw_mc25, 0, eg26, mc25, mc25_state, 0, "Nintendo", "Game & Watch: Egg", MACHINE_SUPPORTS_SAVE )
CONS( 1984, nupogodi, gnw_mc25, 0, nupogodi, mc25, mc25_state, 0, "Elektronika", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE )
CONS( 1989, exospace, gnw_mc25, 0, exospace, exospace, mc25_state, 0, "Elektronika", "Explorers of Space", MACHINE_SUPPORTS_SAVE )
CONS( 1982, gnw_dm53, 0, 0, dm53, dm53, dm53_state, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_jr55, 0, 0, jr55, jr55, jr55_state, 0, "Nintendo", "Game & Watch: Donkey Kong II", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_mw56, 0, 0, mw56, mw56, mw56_state, 0, "Nintendo", "Game & Watch: Mario Bros.", MACHINE_SUPPORTS_SAVE )
CONS( 1982, gnw_dj101, 0, 0, dj101, dj101, dj101_state, 0, "Nintendo", "Game & Watch: Donkey Kong Jr. (new wide screen)", MACHINE_SUPPORTS_SAVE )
CONS( 1983, gnw_ml102, 0, 0, ml102, ml102, ml102_state, 0, "Nintendo", "Game & Watch: Mario's Cement Factory (new wide screen)", MACHINE_SUPPORTS_SAVE )
CONS( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE )

View File

@ -200,7 +200,7 @@ Some logic, resistors/caps/transistors, some connectors etc.
static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write)
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("ygv608", ygv608_device, read, write, 0xff00)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
#ifdef MAME_DEBUG
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r)
@ -214,7 +214,7 @@ static ADDRESS_MAP_START( abcheck_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x600000, 0x607fff) AM_RAM AM_SHARE("zpr1")
AM_RANGE(0x608000, 0x60ffff) AM_RAM AM_SHARE("zpr2")
AM_RANGE(0x780000, 0x780001) AM_READ(printer_r)
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write)
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8("ygv608", ygv608_device, read, write, 0xff00)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
#ifdef MAME_DEBUG
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r)

View File

@ -1537,7 +1537,7 @@ ROM_START( astorm3 )
ROM_LOAD16_BYTE( "epr-13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) )
ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) ) // Also known to have EPR-13083A
ROM_LOAD( "epr-13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
ROM_LOAD( "epr-13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )

View File

@ -80,9 +80,9 @@ TODO:
******************************************************************************/
/* Core includes */
#include "emu.h"
#include "audio/socrates.h"
#include "cpu/z80/z80.h"
#include "bus/generic/carts.h"

View File

@ -14527,9 +14527,11 @@ us2pfball // US Games
uspbball // US Games
@source:hh_sm510.cpp
exospace // Elektronika
gnw_bx301 // Nintendo
gnw_dj101 // Nintendo
gnw_dm53 // Nintendo
gnw_eg26 // Nintendo
gnw_jr55 // Nintendo
gnw_mc25 // Nintendo
gnw_ml102 // Nintendo
@ -14539,6 +14541,7 @@ kgradius // Konami
kloneran // Konami
ktmnt // Konami
ktopgun // Konami
nupogodi // Elektronika
@source:hh_tms1k.cpp
7in1ss // Tiger Electronics

View File

@ -586,7 +586,7 @@ TILE_GET_INFO_MEMBER( ygv608_device::get_tile_info_A_16 )
uint8_t attr = 0;
int pattern_name_base = 0;
int set = ((m_regs.s.r7 & r7_md) == MD_1PLANE_256COLOUR
? GFX_16X16_8BIT : GFX_16X16_4BIT );
? GFX_16X16_8BIT : GFX_16X16_4BIT );
int base = row >> m_base_y_shift;
if( col >= m_page_x ) {
@ -1208,13 +1208,10 @@ uint32_t ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitma
return 0;
}
READ16_MEMBER( ygv608_device::read )
READ8_MEMBER( ygv608_device::read )
{
static int p0_state = 0;
static int p3_state = 0;
static int pattern_name_base = 0; /* pattern name table base address */
int pn=0;
uint16_t data = 0;
uint8_t data = 0;
switch (offset)
{
@ -1223,20 +1220,20 @@ READ16_MEMBER( ygv608_device::read )
uint8_t xTile = m_regs.s.r1 & r1_pnx;
uint8_t yTile = m_regs.s.r0 & r0_pny;
switch (p0_state)
switch (p0_state_r)
{
case 0:
/* Are we reading from plane B? */
if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a))
pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16);
pattern_name_base_r = ((m_page_y << m_pny_shift) << m_bits16);
/* read character from ram */
pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16);
pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16);
break;
case 1:
/* read character from ram */
pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
break;
}
@ -1244,23 +1241,23 @@ READ16_MEMBER( ygv608_device::read )
{
logerror( "attempt (%d) to read pattern name %d\n"
"mode = %d, pgs = %d (%dx%d)\n"
"pattern_name_base = %d\n"
"pattern_name_base_r = %d\n"
"pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n",
p0_state,
p0_state_r,
pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs,
m_page_x, m_page_y,
pattern_name_base,
pattern_name_base_r,
xTile, yTile, m_pny_shift,
m_bits16 );
pn = 0;
}
data = m_pattern_name_table[pn];
p0_state++;
p0_state_r++;
if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT )
p0_state++;
p0_state_r++;
if (p0_state == 2)
if (p0_state_r == 2)
{
if (m_regs.s.r0 & r0_pnya)
{
@ -1296,17 +1293,17 @@ READ16_MEMBER( ygv608_device::read )
m_regs.s.r1 &= ~r1_pnx;
m_regs.s.r1 |= xTile;
}
p0_state = 0;
pattern_name_base = 0;
p0_state_r = 0;
pattern_name_base_r = 0;
}
return (data << 8);
return (data);
}
case 0x01: /* P#1 - sprite data port */
data = m_sprite_attribute_table.b[m_regs.s.saa];
if (m_regs.s.r2 & r2_saar)
m_regs.s.saa++;
return (data << 8);
return (data);
case 0x02: /* P#2 - scroll data port */
data = m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_regs.s.sca];
@ -1317,17 +1314,17 @@ READ16_MEMBER( ygv608_device::read )
if (m_regs.s.sca == 0)
m_regs.s.r2 ^= r2_b_a;
}
return( data << 8 );
return( data );
case 0x03: /* P#3 - color palette data port */
data = m_colour_palette[m_regs.s.cc][p3_state];
if( ++p3_state == 3 )
data = m_colour_palette[m_regs.s.cc][p3_state_r];
if( ++p3_state_r == 3 )
{
p3_state = 0;
p3_state_r = 0;
if( m_regs.s.r2 & r2_cpar)
m_regs.s.cc++;
}
return( data << 8 );
return( data );
case 0x04: /* P#4 - register data port */
{
@ -1344,7 +1341,7 @@ READ16_MEMBER( ygv608_device::read )
m_ports.s.p5 &= ~p5_rn;
m_ports.s.p5 |= regNum;
}
return (data << 8);
return (data );
}
case 0x05:
@ -1352,7 +1349,7 @@ READ16_MEMBER( ygv608_device::read )
case 0x06:
case 0x07:
return( (uint16_t)(m_ports.b[offset]) << 8 );
return( (uint8_t)(m_ports.b[offset]) );
default :
logerror( "unknown ygv608 register (%d)\n", offset );
@ -1362,14 +1359,11 @@ READ16_MEMBER( ygv608_device::read )
return( 0 );
}
WRITE16_MEMBER( ygv608_device::write )
WRITE8_MEMBER( ygv608_device::write )
{
static int p0_state = 0;
static int p3_state = 0;
static int pattern_name_base = 0; /* pattern name table base address */
int pn=0;
data = ( data >> 8 ) & 0xff;
//data = ( data >> 8 ) & 0xff;
switch (offset)
{
@ -1378,20 +1372,20 @@ WRITE16_MEMBER( ygv608_device::write )
uint8_t xTile = m_regs.s.r1 & r1_pnx;
uint8_t yTile = m_regs.s.r0 & r0_pny;
switch (p0_state)
switch (p0_state_w)
{
case 0:
/* Are we reading from plane B? */
if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a))
pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16);
pattern_name_base_w = ((m_page_y << m_pny_shift) << m_bits16);
/* read character from ram */
pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16);
pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16);
break;
case 1:
/* read character from ram */
pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
break;
}
@ -1399,23 +1393,23 @@ WRITE16_MEMBER( ygv608_device::write )
{
logerror( "attempt (%d) to read pattern name %d\n"
"mode = %d, pgs = %d (%dx%d)\n"
"pattern_name_base = %d\n"
"pattern_name_base_w = %d\n"
"pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n",
p0_state,
p0_state_w,
pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs,
m_page_x, m_page_y,
pattern_name_base,
pattern_name_base_w,
xTile, yTile, m_pny_shift,
m_bits16 );
pn = 0;
}
m_pattern_name_table[pn] = data;
p0_state++;
p0_state_w++;
if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT )
p0_state++;
p0_state_w++;
if (p0_state == 2)
if (p0_state_w == 2)
{
if (m_regs.s.r0 & r0_pnya)
{
@ -1449,8 +1443,8 @@ WRITE16_MEMBER( ygv608_device::write )
m_regs.s.r1 &= ~r1_pnx;
m_regs.s.r1 |= xTile;
}
p0_state = 0;
pattern_name_base = 0;
p0_state_w = 0;
pattern_name_base_w = 0;
}
}
break;
@ -1473,10 +1467,10 @@ WRITE16_MEMBER( ygv608_device::write )
break;
case 0x03: /* P#3 - colour palette data port */
m_colour_palette[m_regs.s.cc][p3_state] = data;
if (++p3_state == 3)
m_colour_palette[m_regs.s.cc][p3_state_w] = data;
if (++p3_state_w == 3)
{
p3_state = 0;
p3_state_w = 0;
palette().set_pen_color(m_regs.s.cc,
pal6bit(m_colour_palette[m_regs.s.cc][0]),
pal6bit(m_colour_palette[m_regs.s.cc][1]),

View File

@ -17,8 +17,8 @@ public:
// construction/destruction
ygv608_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE16_MEMBER( write );
DECLARE_READ16_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
DECLARE_READ8_MEMBER( read );
void set_gfxbank(uint8_t gfxbank);
@ -195,6 +195,11 @@ private:
uint8_t m_screen_resize; // screen requires resize
uint8_t m_tilemap_resize; // tilemap requires resize
/* These were statically allocated in the r/w routines, looks hackish? */
int p0_state_r,p3_state_r;
int p0_state_w,p3_state_w;
int pattern_name_base_r,pattern_name_base_w; /* pattern name table base address */
};
// device type definition

View File

@ -274,7 +274,7 @@ static const dasm_table_entry dasm_table[] =
// { "h8", _16be, 0, CPU_DISASSEMBLE_NAME(h8) },
// { "h8_24", _16be, 0, CPU_DISASSEMBLE_NAME(h8_24) },
// { "h8_32", _16be, 0, CPU_DISASSEMBLE_NAME(h8_32) },
{ "hc11", _8bit, 0, CPU_DISASSEMBLE_NAME(mb88) },
{ "hc11", _8bit, 0, CPU_DISASSEMBLE_NAME(hc11) },
{ "hcd62121", _8bit, 0, CPU_DISASSEMBLE_NAME(hcd62121) },
{ "hd61700", _8bit, 0, CPU_DISASSEMBLE_NAME(hd61700) },
{ "hd6301", _8bit, 0, CPU_DISASSEMBLE_NAME(hd6301) },