mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
f61d1ceb0c
@ -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 -->
|
||||
|
4
makefile
4
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; >> $@
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 )
|
||||
|
@ -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)
|
||||
|
@ -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) )
|
||||
|
@ -80,9 +80,9 @@ TODO:
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
/* Core includes */
|
||||
#include "emu.h"
|
||||
#include "audio/socrates.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
|
||||
#include "bus/generic/carts.h"
|
||||
|
@ -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
|
||||
|
@ -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]),
|
||||
|
@ -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
|
||||
|
@ -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) },
|
||||
|
Loading…
Reference in New Issue
Block a user