summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Bryan McPhail <bmcphail@vcmame.net>2017-06-28 10:08:46 -0400
committer Bryan McPhail <bmcphail@vcmame.net>2017-06-28 10:08:46 -0400
commitf61d1ceb0c9112efed8ad12119ee460254f1eeaa (patch)
treec8563c3225f0b627541673f167b6eee370596c1b
parente92e9af132b2478d01544e7ca7970531ef8acf08 (diff)
parentc05cf76d0ff2a0ab794ab992d7f1519981757ceb (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--android-project/app/src/main/AndroidManifest.xml4
-rw-r--r--makefile4
-rw-r--r--src/devices/cpu/mb88xx/mb88xx.h33
-rw-r--r--src/frontend/mame/ui/ui.cpp2
-rw-r--r--src/mame/drivers/hh_sm510.cpp106
-rw-r--r--src/mame/drivers/namcond1.cpp4
-rw-r--r--src/mame/drivers/segas18.cpp2
-rw-r--r--src/mame/drivers/socrates.cpp2
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/video/ygv608.cpp88
-rw-r--r--src/mame/video/ygv608.h9
-rw-r--r--src/tools/unidasm.cpp2
12 files changed, 182 insertions, 77 deletions
diff --git a/android-project/app/src/main/AndroidManifest.xml b/android-project/app/src/main/AndroidManifest.xml
index e01d3befbf9..694ee65c052 100644
--- a/android-project/app/src/main/AndroidManifest.xml
+++ b/android-project/app/src/main/AndroidManifest.xml
@@ -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 -->
diff --git a/makefile b/makefile
index b9d4a249824..9a3356a83bc 100644
--- a/makefile
+++ b/makefile
@@ -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; >> $@
diff --git a/src/devices/cpu/mb88xx/mb88xx.h b/src/devices/cpu/mb88xx/mb88xx.h
index 1a6682b1a14..25264d3db5d 100644
--- a/src/devices/cpu/mb88xx/mb88xx.h
+++ b/src/devices/cpu/mb88xx/mb88xx.h
@@ -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
diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp
index 13ff260e398..b98922ab193 100644
--- a/src/frontend/mame/ui/ui.cpp
+++ b/src/frontend/mame/ui/ui.cpp
@@ -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);
}
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 3fb1dd5d30e..35f2ef92094 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -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( 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( 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( 1984, gnw_bx301, 0, 0, bx301, bx301, bx301_state, 0, "Nintendo", "Game & Watch: Boxing", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp
index edfd8f7fa7c..9e8a68f9fee 100644
--- a/src/mame/drivers/namcond1.cpp
+++ b/src/mame/drivers/namcond1.cpp
@@ -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)
diff --git a/src/mame/drivers/segas18.cpp b/src/mame/drivers/segas18.cpp
index 936dea2106b..ac03b4133cb 100644
--- a/src/mame/drivers/segas18.cpp
+++ b/src/mame/drivers/segas18.cpp
@@ -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) )
diff --git a/src/mame/drivers/socrates.cpp b/src/mame/drivers/socrates.cpp
index 6780f5a2b94..7e5f5b97f55 100644
--- a/src/mame/drivers/socrates.cpp
+++ b/src/mame/drivers/socrates.cpp
@@ -80,9 +80,9 @@ TODO:
******************************************************************************/
-/* Core includes */
#include "emu.h"
#include "audio/socrates.h"
+
#include "cpu/z80/z80.h"
#include "bus/generic/carts.h"
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 605fc990adc..5fc652ca5d9 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -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
diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp
index 2b622eaf786..6eee7ddac1f 100644
--- a/src/mame/video/ygv608.cpp
+++ b/src/mame/video/ygv608.cpp
@@ -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]),
diff --git a/src/mame/video/ygv608.h b/src/mame/video/ygv608.h
index bbe1e90ced7..5e71feb4800 100644
--- a/src/mame/video/ygv608.h
+++ b/src/mame/video/ygv608.h
@@ -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
diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp
index aba4a66226f..6ea7939af2c 100644
--- a/src/tools/unidasm.cpp
+++ b/src/tools/unidasm.cpp
@@ -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) },