mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
notes (nw)
This commit is contained in:
parent
6f89bf784f
commit
97843400b5
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:David Haywood
|
||||
// copyright-holders:David Haywood, MetalliC
|
||||
|
||||
/*
|
||||
ARM AIC (Advanced Interrupt Controller) from Atmel
|
||||
|
@ -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
|
||||
|
@ -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++);
|
||||
|
@ -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.
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user