diff options
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 |
commit | f61d1ceb0c9112efed8ad12119ee460254f1eeaa (patch) | |
tree | c8563c3225f0b627541673f167b6eee370596c1b | |
parent | e92e9af132b2478d01544e7ca7970531ef8acf08 (diff) | |
parent | c05cf76d0ff2a0ab794ab992d7f1519981757ceb (diff) |
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r-- | android-project/app/src/main/AndroidManifest.xml | 4 | ||||
-rw-r--r-- | makefile | 4 | ||||
-rw-r--r-- | src/devices/cpu/mb88xx/mb88xx.h | 33 | ||||
-rw-r--r-- | src/frontend/mame/ui/ui.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/hh_sm510.cpp | 106 | ||||
-rw-r--r-- | src/mame/drivers/namcond1.cpp | 4 | ||||
-rw-r--r-- | src/mame/drivers/segas18.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/socrates.cpp | 2 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 | ||||
-rw-r--r-- | src/mame/video/ygv608.cpp | 88 | ||||
-rw-r--r-- | src/mame/video/ygv608.h | 9 | ||||
-rw-r--r-- | src/tools/unidasm.cpp | 2 |
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 --> @@ -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) }, |