summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2018-07-21 11:27:50 +0100
committer smf- <smf-@users.noreply.github.com>2018-07-21 11:27:50 +0100
commit86dcc42bae932bc12f8967512e8d8e4a8b98923e (patch)
tree3b02ecd20f68d79a4d5ed9cef54926efee4743ef
parent28ab5679f2bf406c9ec8801b7b8cde2aac8d2a74 (diff)
Arkanoid: Updated documentation and replaced a75-23.ic14 with one created from an original mcu rather than the bootleg (nw)
-rw-r--r--src/mame/drivers/arkanoid.cpp19
-rw-r--r--src/mame/video/arkanoid.cpp22
2 files changed, 22 insertions, 19 deletions
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index 382aad2af90..7976ae71e27 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -17,8 +17,8 @@
arkanoidu USA version. MCU code properly dumped.
arkanoidj Japanese version. Final revision, MCU code properly dumped.
arkanoidja Japanese version. A later revision with level selector.
- The 68705 code for this one was not available; Brad Oliver[?]
- made it up from the bootleg A75-06.IC16 by changing the level
+ The 68705 code for this one was not available; it has been
+ made using the decapped Taito A75__06.IC16 by changing the level
data pointer table.
arkanoidjbl Bootleg of the early Japanese version. The only difference is
that the warning text has been replaced by "WAIT"
@@ -757,10 +757,14 @@ Stephh's notes on 'tetrsark' (based on the game Z80 code and some tests) :
write:
d000 AY8910 control
d001 AY8910 write
- d008 bit0/1 = flip screen x/y
- bit 4 = ROM bank??
- bit 5 = char bank
- other bits????????
+ d008 bit 0 flip screen x
+ bit 1 flip screen y
+ bit 2 paddle player select
+ bit 3 coin lockout
+ bit 4 ????????
+ bit 5 = graphics bank
+ bit 6 = palette bank
+ bit 7 = mcu reset
d010 watchdog reset, or IRQ acknowledge, or both
f000 ????????
@@ -1648,8 +1652,7 @@ ROM_START( arkanoidja ) // V2.0 Japan w/level select
ROM_LOAD( "a75-22.ic16", 0x8000, 0x8000, CRC(3a2688d3) SHA1(9633a661352def3d85f95ca830f6d761b0b5450e) ) // v2 JPN level select?, region byte is 0x92
ROM_REGION( 0x0800, "mcu:mcu", 0 ) /* 2k for the microcontroller */
- // the handcrafted value at 0x351 (0x9ddb) seems incorrect compared to other sets? (but it appears the value is never used, and the data it would usually point to does not exist in the program rom?)
- ROM_LOAD( "a75-23.ic14", 0x0000, 0x0800, BAD_DUMP CRC(0a4abef6) SHA1(fdce0b7a2eab7fd4f1f4fc3b93120b1ebc16078e) ) /* Hand crafted based on the bootleg a75-06 chip, need the real data here */
+ ROM_LOAD( "a75-23.ic14", 0x0000, 0x0800, BAD_DUMP CRC(543fed28) SHA1(0a0cafc229a9ece7d7f09d717b35a59653ccdc4d) ) /* Hand crafted based on the original a75-06 chip, need the real data here */
ROM_REGION( 0x18000, "gfx1", 0 )
ROM_LOAD( "a75-03.ic64", 0x00000, 0x8000, CRC(038b74ba) SHA1(ac053cc4908b4075f918748b89570e07a0ba5116) )
diff --git a/src/mame/video/arkanoid.cpp b/src/mame/video/arkanoid.cpp
index 41afed17191..b1996a29279 100644
--- a/src/mame/video/arkanoid.cpp
+++ b/src/mame/video/arkanoid.cpp
@@ -22,7 +22,7 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w)
{
int bank;
- /* bits 0 and 1 flip X and Y, I don't know which is which */
+ /* bits 0 and 1 flip X and Y */
flip_screen_x_set(data & 0x01);
flip_screen_y_set(data & 0x02);
@@ -35,8 +35,7 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w)
/* bit 4 is unknown */
- /* bits 5 and 6 control gfx bank and palette bank. They are used together */
- /* so I don't know which is which. */
+ /* bit 5 controls the graphics rom bank */
bank = (data & 0x20) >> 5;
if (m_gfxbank != bank)
@@ -45,6 +44,7 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w)
m_bg_tilemap->mark_all_dirty();
}
+ /* bit 6 controls the palette bank */
bank = (data & 0x40) >> 6;
if (m_palettebank != bank)
@@ -64,7 +64,7 @@ WRITE8_MEMBER(arkanoid_state::brixian_d008_w)
{
int bank;
- /* bits 0 and 1 flip X and Y, I don't know which is which */
+ /* bits 0 and 1 flip X and Y */
flip_screen_x_set(data & 0x01);
flip_screen_y_set(data & 0x02);
@@ -76,8 +76,7 @@ WRITE8_MEMBER(arkanoid_state::brixian_d008_w)
/* bit 4 is unknown */
- /* bits 5 and 6 control gfx bank and palette bank. They are used together */
- /* so I don't know which is which. */
+ /* bit 5 controls the graphics rom bank */
bank = (data & 0x20) >> 5;
if (m_gfxbank != bank)
@@ -86,6 +85,7 @@ WRITE8_MEMBER(arkanoid_state::brixian_d008_w)
m_bg_tilemap->mark_all_dirty();
}
+ /* bit 6 controls the palette bank */
bank = (data & 0x40) >> 6;
if (m_palettebank != bank)
@@ -104,7 +104,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
{
int bank;
- /* bits 0 and 1 flip X and Y, I don't know which is which */
+ /* bits 0 and 1 flip X and Y */
flip_screen_x_set(data & 0x01);
flip_screen_y_set(data & 0x02);
@@ -113,8 +113,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
/* bit 3-4 is unknown? */
- /* bits 5 and 6 control gfx bank and palette bank. They are used together */
- /* so I don't know which is which.? */
+ /* bit 5 controls the graphics rom bank */
bank = (data & 0x20) >> 5;
if (m_gfxbank != bank)
@@ -123,6 +122,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
m_bg_tilemap->mark_all_dirty();
}
+ /* bit 6 controls the palette bank */
bank = (data & 0x40) >> 6;
if (m_palettebank != bank)
@@ -139,7 +139,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
WRITE8_MEMBER(arkanoid_state::hexa_d008_w)
{
- /* bit 0 = flipx (or y?) */
+ /* bits 0 and 1 flip X and Y */
flip_screen_x_set(data & 0x01);
flip_screen_y_set(data & 0x02);
@@ -148,7 +148,7 @@ WRITE8_MEMBER(arkanoid_state::hexa_d008_w)
/* bit 4 could be the ROM bank selector for 8000-bfff (not sure) */
membank("bank1")->set_entry(((data & 0x10) >> 4));
- /* bit 5 = gfx bank */
+ /* bit 5 controls the graphics rom bank */
if (m_gfxbank != ((data & 0x20) >> 5))
{
m_gfxbank = (data & 0x20) >> 5;