summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2009-06-03 20:15:08 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2009-06-03 20:15:08 +0000
commitef95a2f4844ee77ad9564a0616e676ac3919c8fd (patch)
treefc3f4bb06c57a52827aef3e54d003f14e9180882
parentce4ecc4a7841100cc164207a0365abf05b6e363b (diff)
Added an heuristic table for the PSG in Oli-Boo-Chu, not worth mentioning
-rw-r--r--src/mame/drivers/olibochu.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index 5da3b52e380..b2779724471 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -8,6 +8,47 @@ TODO:
- main->sound cpu communication is completely wrong, commands don't play the
intended sound.
+============================================================================
+PSG table:
+data0 |data1 |sample | possible data trigger
+----------------------------------------------------------
+0x80 |0x00 | coin |
+0x08 |0x00 | opening melody |
+0x40 |0x00 | bgm |
+0x04 |0x00 | hi-score melody |
+0x02 |0x00 | ending melody |
+0x01 |0x00 | spot melody |
+0x10 |0x00 | clear melody |
+0x20 |0x00 | race trap melody |
+0x00 |0x80 | extend sound |
+0x00 |0x40 | oli paralyze |
+0x00 |0x04 | chu out |
+0x00 |0x08 | mystery sound |
+0x00 |0x01 | oli out |
+0x00 |0x10 | chu has food |
+0x00 |0x00 | <stop playing> |
+-----------------------------------------------------------
+ 0x02? *0xb doesn't do nothing
+ 0x20? *0xc doesn't do nothing
+
+$7004 writes, related to $7000 reads
+0x00-0x0f <don't care (retains previous value>
+0x10-0x1f 0x28
+0x20-0x2f 0x00
+0x30-0x3f 0x48
+0x40-0x4f 0x00
+0x50-0x5f 0x80
+0x60-0x6f 0x3a
+0x70-0x7f 0x70
+0x80-0x8f 0x0f
+0x90-0x9f 0x0a
+0xa0-0xaf 0x3a
+0xb0-0xbf 0x61
+0xc0-0xcf 0xca
+0xd0-0xdf 0x01
+0xe0-0xef 0x14
+0xf0-0xff 0x32
+
***************************************************************************/
#include "driver.h"
@@ -181,6 +222,8 @@ static ADDRESS_MAP_START( olibochu_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM_WRITE(olibochu_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE(olibochu_colorram_w) AM_BASE(&colorram)
+ AM_RANGE(0x9000, 0x903f) AM_RAM //???
+ AM_RANGE(0x9800, 0x983f) AM_RAM //???
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("IN1")
AM_RANGE(0xa002, 0xa002) AM_READ_PORT("IN2")
@@ -199,6 +242,8 @@ static ADDRESS_MAP_START( olibochu_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_RANGE(0x7000, 0x7000) AM_READ(soundlatch_r) /* likely ay8910 input port, not direct */
AM_RANGE(0x7000, 0x7001) AM_DEVWRITE("ay", ay8910_address_data_w)
+ AM_RANGE(0x7004, 0x7004) AM_WRITENOP //sound filter?
+ AM_RANGE(0x7006, 0x7006) AM_WRITENOP //irq ack?
ADDRESS_MAP_END