diff options
author | 2017-12-17 22:18:33 +0200 | |
---|---|---|
committer | 2017-12-17 22:18:33 +0200 | |
commit | 97843400b5e00e3d355a0e9b1a588384dbe2932a (patch) | |
tree | 262060e2aff5548253766d124853adb60582a078 /src | |
parent | 6f89bf784f41ad513299ccb1fd1fed982e269610 (diff) |
notes (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/machine/atmel_arm_aic.cpp | 2 | ||||
-rw-r--r-- | src/devices/machine/atmel_arm_aic.h | 2 | ||||
-rw-r--r-- | src/devices/sound/ymz770.cpp | 12 | ||||
-rw-r--r-- | src/mame/drivers/naomi.cpp | 1 | ||||
-rw-r--r-- | src/mame/drivers/pgm2.cpp | 21 |
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 ) |