summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author MetalliC <0vetal0@gmail.com>2017-12-17 22:18:33 +0200
committer MetalliC <0vetal0@gmail.com>2017-12-17 22:18:33 +0200
commit97843400b5e00e3d355a0e9b1a588384dbe2932a (patch)
tree262060e2aff5548253766d124853adb60582a078 /src
parent6f89bf784f41ad513299ccb1fd1fed982e269610 (diff)
notes (nw)
Diffstat (limited to 'src')
-rw-r--r--src/devices/machine/atmel_arm_aic.cpp2
-rw-r--r--src/devices/machine/atmel_arm_aic.h2
-rw-r--r--src/devices/sound/ymz770.cpp12
-rw-r--r--src/mame/drivers/naomi.cpp1
-rw-r--r--src/mame/drivers/pgm2.cpp21
5 files changed, 21 insertions, 17 deletions
diff --git a/src/devices/machine/atmel_arm_aic.cpp b/src/devices/machine/atmel_arm_aic.cpp
index ce41d92016b..cb8e7693d78 100644
--- a/src/devices/machine/atmel_arm_aic.cpp
+++ b/src/devices/machine/atmel_arm_aic.cpp
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:David Haywood
+// copyright-holders:David Haywood, MetalliC
/*
ARM AIC (Advanced Interrupt Controller) from Atmel
diff --git a/src/devices/machine/atmel_arm_aic.h b/src/devices/machine/atmel_arm_aic.h
index c17d95e86d0..d524eda71e1 100644
--- a/src/devices/machine/atmel_arm_aic.h
+++ b/src/devices/machine/atmel_arm_aic.h
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:David Haywood
+// copyright-holders:David Haywood, MetalliC
#ifndef MAME_MACHINE_ATMEL_ARM_AIC_H
#define MAME_MACHINE_ATMEL_ARM_AIC_H
diff --git a/src/devices/sound/ymz770.cpp b/src/devices/sound/ymz770.cpp
index 8210ff83f1b..4f08b6eebaa 100644
--- a/src/devices/sound/ymz770.cpp
+++ b/src/devices/sound/ymz770.cpp
@@ -10,6 +10,7 @@
-----
TODO:
- What does channel ATBL mean?
+- SAC (Simple Access Codes) what it for and how used ?
770:
- verify if pan 100% correct
- sequencer timers and triggers not implemented (seems used in Deathsmiles ending tune)
@@ -557,7 +558,7 @@ void ymz774_device::internal_reg_write(uint8_t reg, uint8_t data)
case 0x98: // Off trigger, bit4 = on/off, bits0-3 channel (end sequence when channel playback ends)
if (data) logerror("SEQ Off trigger unimplemented %02X %02X\n", reg, data);
break;
- case 0xa0: // stop channel mask H and L (when sequence stoped)
+ case 0xa0: // stop channel mask H and L (when sequence stopped)
case 0xa8:
sq = (reg >> 1) & 7;
if (reg & 1)
@@ -565,10 +566,10 @@ void ymz774_device::internal_reg_write(uint8_t reg, uint8_t data)
else
m_sequences[sq].stopchan = (m_sequences[sq].stopchan & 0x00ff) | (data << 8);
break;
- case 0xb0:
+ case 0xb0: // SQC number
m_sqcs[sq].sqc = data;
break;
- case 0xb8:
+ case 0xb8: // SQC start / stop
if (data)
{
//logerror("SQC %d start (%s)\n", sq, m_sqcs[sq].is_playing ? "playing" : "stopped");
@@ -580,7 +581,7 @@ void ymz774_device::internal_reg_write(uint8_t reg, uint8_t data)
{
//logerror("SQC %d stop (%s)\n", sq, m_sqcs[sq].is_playing ? "playing" : "stopped");
m_sqcs[sq].is_playing = false;
- // stop SEQ too, and stop chanels
+ // stop SEQ too, and stop channels
if (m_sequences[sq].is_playing)
for (int ch = 0; ch < 16; ch++)
if (m_sequences[sq].stopchan & (1 << ch))
@@ -588,7 +589,7 @@ void ymz774_device::internal_reg_write(uint8_t reg, uint8_t data)
m_sequences[sq].is_playing = false;
}
break;
- case 0xc0:
+ case 0xc0: // SQC loop (255 = infinite)
m_sqcs[sq].loop = data;
break;
default:
@@ -628,6 +629,7 @@ void ymz774_device::sequencer()
if (sqc.is_playing && !sqc.is_waiting)
{
+ // SQC consists of 4 byte records: SEQ num H, SEQ num L, SEQ Loop count, End flag (0xff)
sequence.sequence = ((get_rom_byte(sqc.offset) << 8) | get_rom_byte(sqc.offset + 1)) & 0xfff;
sqc.offset += 2;
sequence.loop = get_rom_byte(sqc.offset++);
diff --git a/src/mame/drivers/naomi.cpp b/src/mame/drivers/naomi.cpp
index 327f8292da0..1a600c7492e 100644
--- a/src/mame/drivers/naomi.cpp
+++ b/src/mame/drivers/naomi.cpp
@@ -10256,6 +10256,7 @@ ROM_END
/* 0166 */ GAME( 2006, zunou, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Touch De Zunou (Japan, Rev A)", GAME_FLAGS )
/* 0170-01 */ GAME( 2007, manicpnc, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Manic Panic Ghosts! (USA, Export)", GAME_FLAGS )
/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Pokasuka Ghost! (Japan)", GAME_FLAGS )
+// 0171 Mushiking 2K6 2ND (Japan)
/* 0175 */ GAME( 2007, asndynmt, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Asian Dynamite / Dynamite Deka EX", GAME_FLAGS )
/* 0177 */ GAME( 2007, rhytngk, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega / Nintendo - J.P ROOM", "Rhythm Tengoku (Japan)", GAME_FLAGS )
/* 0180 */ GAME( 2007, mushik4e, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Mushiking The King Of Beetles - Mushiking IV / V / VI (World)", GAME_FLAGS ) // not for Japan or Korea, version can be changed in secret menu, ~equivalent of Japanese 2K6 versions.
diff --git a/src/mame/drivers/pgm2.cpp b/src/mame/drivers/pgm2.cpp
index 1e53b5b4607..182a54fe54a 100644
--- a/src/mame/drivers/pgm2.cpp
+++ b/src/mame/drivers/pgm2.cpp
@@ -387,19 +387,20 @@ static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
AM_RANGE(0x40000000, 0x40000003) AM_DEVREADWRITE8("ymz774", ymz774_device, read, write, 0xffffffff)
- // internal to IGS036? - various other writes down here on startup too - could be other standard ATMEL peripherals like the ARM_AIC mixed with custom bits
- AM_RANGE(0xffffec00, 0xffffec5f) AM_RAM // SMC controller
- AM_RANGE(0xfffffc00, 0xfffffcff) AM_READWRITE8(encryption_r,encryption_w, 0xffffffff) // confirmed as encryption table for main program rom (see code at 3950)
-
+ // internal IGS036 - most of them is standard ATMEL peripherals followed by custom bits
+ // AM_RANGE(0xffffec00, 0xffffec7f) SMC (Static Memory Controller)
AM_RANGE(0xfffff000, 0xfffff14b) AM_DEVICE("arm_aic", arm_aic_device, regs_map)
- // PIOA (gpio)
- AM_RANGE(0xfffff430, 0xfffff433) AM_WRITENOP // often
- AM_RANGE(0xfffff434, 0xfffff437) AM_WRITENOP // often
-
+ // AM_RANGE(0xfffff200, 0xfffff247) DBGU (Debug Unit)
+ // AM_RANGE(0xfffff400, 0xfffff4af) PIO (Parallel Input Output Controller)
+ AM_RANGE(0xfffff430, 0xfffff437) AM_WRITENOP // often
+ // AM_RANGE(0xfffffd00, 0xfffffd07) RSTC (Reset Controller)
+ // AM_RANGE(0xfffffd20, 0xfffffd2f) RTTC (Real Time Timer)
AM_RANGE(0xfffffd28, 0xfffffd2b) AM_READ(rtc_r)
-
+ // AM_RANGE(0xfffffd40, 0xfffffd4b) WDTC (Watch Dog Timer)
+ // custom IGS036 stuff starts here
AM_RANGE(0xfffffa08, 0xfffffa0b) AM_WRITE(encryption_do_w) // after uploading encryption? table might actually send it or enable external ROM? when read bits0-1 called FUSE 0 and 1, must be 0
- AM_RANGE(0xfffffa0c, 0xfffffa0f) AM_READ(unk_startup_r)
+ AM_RANGE(0xfffffa0c, 0xfffffa0f) AM_READ(unk_startup_r) // written 0, then 0x1c, then expected to return (result&0x180)==0x180, then written 0x7c
+ AM_RANGE(0xfffffc00, 0xfffffcff) AM_READWRITE8(encryption_r, encryption_w, 0xffffffff)
ADDRESS_MAP_END
static INPUT_PORTS_START( pgm2 )