mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +03:00
Created a skeleton for the Konami 573 Multi Session Unit, renamed digital io board source file to match and moved pcb layout from driver. [smf]
This commit is contained in:
parent
1d7f4b8fb3
commit
62a9a003d5
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -5751,6 +5751,10 @@ src/mame/machine/jvs13551.c svneol=native#text/plain
|
||||
src/mame/machine/jvs13551.h svneol=native#text/plain
|
||||
src/mame/machine/k573cass.c svneol=native#text/plain
|
||||
src/mame/machine/k573cass.h svneol=native#text/plain
|
||||
src/mame/machine/k573dio.c svneol=native#text/plain
|
||||
src/mame/machine/k573dio.h svneol=native#text/plain
|
||||
src/mame/machine/k573msu.c svneol=native#text/plain
|
||||
src/mame/machine/k573msu.h svneol=native#text/plain
|
||||
src/mame/machine/kabuki.c svneol=native#text/plain
|
||||
src/mame/machine/kabuki.h svneol=native#text/plain
|
||||
src/mame/machine/kaneko_calc3.c svneol=native#text/plain
|
||||
@ -5804,8 +5808,6 @@ src/mame/machine/mie.c svneol=native#text/plain
|
||||
src/mame/machine/mie.h svneol=native#text/plain
|
||||
src/mame/machine/model1.c svneol=native#text/plain
|
||||
src/mame/machine/model3.c svneol=native#text/plain
|
||||
src/mame/machine/mpeg573.c svneol=native#text/plain
|
||||
src/mame/machine/mpeg573.h svneol=native#text/plain
|
||||
src/mame/machine/mw8080bw.c svneol=native#text/plain
|
||||
src/mame/machine/n64.c svneol=native#text/plain
|
||||
src/mame/machine/namco06.c svneol=native#text/plain
|
||||
|
@ -290,139 +290,6 @@ G: gun mania only, drives air soft gun (this game uses real BB bullet)
|
||||
(CN4, CN3, CN2 is printed pattern only, no actual connector)
|
||||
|
||||
|
||||
|
||||
Digital I/O PCB
|
||||
---------------
|
||||
|
||||
GX894-PWB(B)A (C)1999 KONAMI CO. LTD.
|
||||
|
||||
|-------------|
|
||||
| CN12 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| CN11 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| DS2401 CN10 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| CN14 CN13 |
|
||||
|----------| |----------|
|
||||
| PC847 |
|
||||
| ADM232 CN17 XC9536 |
|
||||
| |
|
||||
| 19.6608MHz |-----------|
|
||||
| ADM232 CN15 CY7C109 |
|
||||
| HY51V65164A HY51V65164A |
|
||||
| HY51V65164A |
|
||||
| CN16 XCS40XL |
|
||||
| |
|
||||
| AK4309B CN18 29.450MHz MAS3507D |
|
||||
| |
|
||||
| CN3 |
|
||||
| HYC24855 RCA-L/R |
|
||||
|-----------------------------------------------|
|
||||
|
||||
Notes:
|
||||
|
||||
PC847 - High Density Mounting Type Photocoupler
|
||||
CN12 - 13 pin connector with 8 wires to external connectors
|
||||
CN11 - 12 pin connector with 8 wires to external connectors
|
||||
DS2401 - DS2401 911C2 Silicon serial number
|
||||
CN10 - 10 pin connector with 8 wires to external connectors
|
||||
CN14 - 7 pin connector
|
||||
CN13 - 5 pin connector with 2 wires to external connectors
|
||||
ADM232 - ADM232AARN 9933 H48475 High Speed, 5 V, 0.1 uF CMOS RS-232 Drivers/Receivers
|
||||
CN17 - 3 pin connector
|
||||
XC9536 - XILINX XC9536 PC44AEM9933 F1096429A 15C
|
||||
CN15 - 8 pin connector
|
||||
CY7C109 - CY7C109-25VC 931 H 04 404825 128k x 8 Static RAM
|
||||
HY51V65164A - 64M bit dynamic EDO RAM
|
||||
CN16 - 4 pin connector joining this PCB to the CD-DA IN on the MAIN PCB.
|
||||
XCS40XL - XILINX XCS40XL PQ208AKP9929 A2033251A 4C
|
||||
AK4309B - AKM AK4309B 3N932N 16bit SCF DAC
|
||||
CN18 - 6 pin connector
|
||||
MAS3507D - IM MAS3507D D8 9173 51 HM U 072953.000 ES MPEG 1/2 Layer 2/3 Audio Decoder
|
||||
CN3 - Connector joining this PCB to the MAIN PCB
|
||||
HYC24855 - ?
|
||||
RCA-L/R - RCA connectors for left/right audio output
|
||||
|
||||
Drummania 10th Mix Multisession
|
||||
-------------------------------
|
||||
|
||||
This box is used with multi-session System 573 games.
|
||||
|
||||
Main board is standard GX700 PCB with CDROM (Drummania 10th Mix Multisession)
|
||||
and Digital I/O Board GX894-PWB(B)A
|
||||
BIOS is on a small plug-in daughterboard.
|
||||
Daughterboard contains one EPROM, one PAL22V10, 2 logic chips and a PIC16F84.
|
||||
The dumps provided are the EPROM dumped separately and a dump of the 'board'
|
||||
with it plugged in (reading may be affected by the PIC)
|
||||
|
||||
|
||||
PCB Layout of External Multisession Box
|
||||
---------------------------------------
|
||||
|
||||
GXA25-PWB(A)(C)2000 KONAMI
|
||||
|--------------------------------------------------------------------------|
|
||||
|CN9 ADM232 LS273 PC16552 PC16552 XC9536(1) CN13|
|
||||
|DSW(8) LS245 LS273 18.432MHz DS2401 |
|
||||
| |-------| |-------| |-------| |-------| |
|
||||
| MB3793 |TOSHIBA| |TOSHIBA| |TOSHIBA| |TOSHIBA|M48T58Y.6T|
|
||||
| |TC9446F| |TC9446F| |TC9446F| |TC9446F| |
|
||||
| |-016 | |-016 | |-016 | |-016 | CN12|
|
||||
| |-------| |-------| |-------| |-------| |
|
||||
| LV14 XC9572XL |
|
||||
| CN16 CN17 CN18 CN19 XC9536(2)|
|
||||
|PQ30RV21 LCX245 LCX245 CN11|
|
||||
| 33.8688MHz PQ30RV21 |
|
||||
| 8.25MHz HY57V641620 |
|
||||
| |------------| HY57V641620 XC2S200 |
|
||||
| |TOSHIBA | FLASH.20T |
|
||||
| |TMPR3927AF | CN10|
|
||||
| | | |
|
||||
| | | LS245 F245 F245 |
|
||||
| | |HY57V641620 LCX245 DIP40 |
|
||||
| |------------| HY57V641620 LCX245 ATAPI44 |
|
||||
| LCX245 LED(HDD) ATAPI40 |
|
||||
| CN7 LCX245 CN14 LED(CD) CN5 |
|
||||
|--------------------------------------------------------------------------|
|
||||
Notes: (all IC's shown)
|
||||
TMPR3927 - Toshiba TMPR3927AF Risc Microprocessor (QFP240)
|
||||
FLASH.20T - Fujitsu 29F400TC Flash ROM (TSOP48)
|
||||
ATAPI44 - IDE44 44-pin laptop type HDD connector (not used)
|
||||
ATAPI40 - IDE40 40-pin flat cable HDD connector used for connection of CDROM drive
|
||||
XC9572XL - XILINX XC9572XL In-system Programmable CPLD stamped 'XA25A1' (TQFP100)
|
||||
XC9536(1) - XILINX CPLD stamped 'XA25A3' (PLCC44)
|
||||
XC9536(2) - XILINX CPLD stamped 'XA25A2' (PLCC44)
|
||||
XC2S200 - XILINX XC2S200 SPARTAN FPGA (QFP208)
|
||||
DS2401 - MAXIM Dallas DS2401 Silicon Serial Number (SOIC6)
|
||||
M48T58Y - ST M48T58Y Timekeeper NVRAM 8k bytes x8-bit (DIP28). Chip appears empty (0x04 fill) or unused
|
||||
MB3793 - Fujitsu MB3793 Power-Voltage Monitoring IC with Watchdog Timer (SOIC8)
|
||||
DIP40 - Empty DIP40 socket
|
||||
HY57V641620 - Hyundai/Hynix HY57V641620 4 Banks x 1M x 16Bit Synchronous DRAM
|
||||
PC16552D - National PC16552D Dual Universal Asynchronous Receiver/Transmitter with FIFO's
|
||||
TC9446F - Toshiba TC9446F-016 Audio Digital Processor for Decode of Dolby Digital (AC-3) MPEG2 Audio
|
||||
CN16-CN19 - Connector for sub board (3 of them are present). One board connects via a thin cable from
|
||||
CN1 to the main board to a connector on the security board labelled 'AMP BOX'.
|
||||
|
||||
Sub Board Layout
|
||||
----------------
|
||||
|
||||
GXA25-PWB(B) (C) 2000 KONAMI
|
||||
|---------------------------------|
|
||||
| TLP2630 LV14 ADM232 |
|
||||
|CN2 CN1|
|
||||
|A2430 AK5330 |
|
||||
| |
|
||||
| RCA L/R|
|
||||
|ZUS1R50505 6379A |
|
||||
| LM358 |
|
||||
|---------------------------------|
|
||||
|
||||
PCMCIA Flash Card
|
||||
-----------------
|
||||
|
||||
@ -486,8 +353,9 @@ G: gun mania only, drives air soft gun (this game uses real BB bullet)
|
||||
#include "machine/ds2401.h"
|
||||
#include "machine/linflash.h"
|
||||
#include "machine/k573cass.h"
|
||||
#include "machine/k573dio.h"
|
||||
#include "machine/k573msu.h"
|
||||
#include "machine/mb89371.h"
|
||||
#include "machine/mpeg573.h"
|
||||
#include "machine/timekpr.h"
|
||||
#include "machine/upd4701.h"
|
||||
#include "sound/spu.h"
|
||||
@ -712,7 +580,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( konami573d_map, AS_PROGRAM, 32, ksys573_state )
|
||||
AM_IMPORT_FROM( konami573_map )
|
||||
AM_RANGE( 0x1f640000, 0x1f6400ff ) AM_DEVICE16( "mpeg573", mpeg573_device, amap, 0xffffffff )
|
||||
AM_RANGE( 0x1f640000, 0x1f6400ff ) AM_DEVICE16( "k573dio", k573dio_device, amap, 0xffffffff )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( konami573a_map, AS_PROGRAM, 32, ksys573_state )
|
||||
@ -2225,7 +2093,7 @@ MACHINE_CONFIG_END
|
||||
static MACHINE_CONFIG_DERIVED( k573d, konami573 )
|
||||
MCFG_CPU_MODIFY( "maincpu" )
|
||||
MCFG_CPU_PROGRAM_MAP( konami573d_map )
|
||||
MCFG_MPEG573_ADD( "mpeg573", XTAL_19_6608MHz, NOOP )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_ADD( "k573dio", XTAL_19_6608MHz )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// Variants with additional analogue i/o board
|
||||
@ -2354,31 +2222,31 @@ static MACHINE_CONFIG_DERIVED( ddr2ml, k573a )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddr3m, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( pccard2_32mb )
|
||||
MCFG_FRAGMENT_ADD( cassyyi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddr3mp, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( pccard2_32mb )
|
||||
MCFG_FRAGMENT_ADD( cassxzi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddrusa, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( casszi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddr5m, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( pccard2_32mb )
|
||||
MCFG_FRAGMENT_ADD( casszi )
|
||||
@ -2396,15 +2264,15 @@ static MACHINE_CONFIG_DERIVED( dsftkd, k573a )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( dsfdr, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( cassxzi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( dsem, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddr_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( cassxi )
|
||||
MACHINE_CONFIG_END
|
||||
@ -2412,22 +2280,22 @@ MACHINE_CONFIG_END
|
||||
// Dance Dance Revolution Solo
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddrsolo, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( cassyi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddrs2k, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( cassyyi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( ddr4ms, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, ddrsolo_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( pccard2_32mb )
|
||||
MCFG_FRAGMENT_ADD( cassxzi )
|
||||
@ -2440,17 +2308,19 @@ static MACHINE_CONFIG_DERIVED( drmn, k573a )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( drmn2m, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, drmn_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, drmn_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( cassxzi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( drmn4m, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, drmn_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, drmn_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( casszi )
|
||||
|
||||
MCFG_DEVICE_ADD( "k573msu", KONAMI_573_MULTI_SESSION_UNIT, 0 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
// Guitar Freaks
|
||||
@ -2543,15 +2413,15 @@ static MACHINE_CONFIG_DERIVED( gunmania, konami573 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( dmx, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, dmx_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, dmx_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( casszi )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( mamboagg, k573d )
|
||||
MCFG_DEVICE_MODIFY( "mpeg573" )
|
||||
MCFG_MPEG573_OUTPUT_CALLBACK( WRITE8( ksys573_state, mamboagg_output_callback ) )
|
||||
MCFG_DEVICE_MODIFY( "k573dio" )
|
||||
MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( WRITE8( ksys573_state, mamboagg_output_callback ) )
|
||||
|
||||
MCFG_FRAGMENT_ADD( casszi )
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -1,9 +1,71 @@
|
||||
#include "emu.h"
|
||||
#include "mpeg573.h"
|
||||
#include "k573dio.h"
|
||||
|
||||
const device_type MPEG573 = &device_creator<mpeg573_device>;
|
||||
/*
|
||||
Digital I/O PCB
|
||||
---------------
|
||||
|
||||
DEVICE_ADDRESS_MAP_START(amap, 16, mpeg573_device)
|
||||
GX894-PWB(B)A (C)1999 KONAMI CO. LTD.
|
||||
|
||||
|-------------|
|
||||
| CN12 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| CN11 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| DS2401 CN10 |
|
||||
| |
|
||||
| PC847 PC847 |
|
||||
| |
|
||||
| CN14 CN13 |
|
||||
|----------| |----------|
|
||||
| PC847 |
|
||||
| ADM232 CN17 XC9536 |
|
||||
| |
|
||||
| 19.6608MHz |-----------|
|
||||
| ADM232 CN15 CY7C109 |
|
||||
| HY51V65164A HY51V65164A |
|
||||
| HY51V65164A |
|
||||
| CN16 XCS40XL |
|
||||
| |
|
||||
| AK4309B CN18 29.450MHz MAS3507D |
|
||||
| |
|
||||
| CN3 |
|
||||
| HYC24855 RCA-L/R |
|
||||
|-----------------------------------------------|
|
||||
|
||||
Notes:
|
||||
|
||||
PC847 - High Density Mounting Type Photocoupler
|
||||
CN12 - 13 pin connector with 8 wires to external connectors
|
||||
CN11 - 12 pin connector with 8 wires to external connectors
|
||||
DS2401 - DS2401 911C2 Silicon serial number
|
||||
CN10 - 10 pin connector with 8 wires to external connectors
|
||||
CN14 - 7 pin connector
|
||||
CN13 - 5 pin connector with 2 wires to external connectors
|
||||
ADM232 - ADM232AARN 9933 H48475 High Speed, 5 V, 0.1 uF CMOS RS-232 Drivers/Receivers
|
||||
CN17 - 3 pin connector
|
||||
XC9536 - XILINX XC9536 PC44AEM9933 F1096429A 15C
|
||||
CN15 - 8 pin connector
|
||||
CY7C109 - CY7C109-25VC 931 H 04 404825 128k x 8 Static RAM
|
||||
HY51V65164A - 64M bit dynamic EDO RAM
|
||||
CN16 - 4 pin connector joining this PCB to the CD-DA IN on the MAIN PCB.
|
||||
XCS40XL - XILINX XCS40XL PQ208AKP9929 A2033251A 4C
|
||||
AK4309B - AKM AK4309B 3N932N 16bit SCF DAC
|
||||
CN18 - 6 pin connector
|
||||
MAS3507D - IM MAS3507D D8 9173 51 HM U 072953.000 ES MPEG 1/2 Layer 2/3 Audio Decoder
|
||||
CN3 - Connector joining this PCB to the MAIN PCB
|
||||
HYC24855 - ?
|
||||
RCA-L/R - RCA connectors for left/right audio output
|
||||
|
||||
*/
|
||||
|
||||
const device_type KONAMI_573_DIGITAL_IO_BOARD = &device_creator<k573dio_device>;
|
||||
|
||||
DEVICE_ADDRESS_MAP_START(amap, 16, k573dio_device)
|
||||
AM_RANGE(0x00, 0x01) AM_READ(a00_r)
|
||||
AM_RANGE(0x02, 0x03) AM_READ(a02_r)
|
||||
AM_RANGE(0x04, 0x05) AM_READ(a04_r)
|
||||
@ -36,124 +98,124 @@ DEVICE_ADDRESS_MAP_START(amap, 16, mpeg573_device)
|
||||
AM_RANGE(0xfe, 0xff) AM_WRITE(output_2_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( mpeg573 )
|
||||
static MACHINE_CONFIG_FRAGMENT( k573dio )
|
||||
MCFG_MAS3507D_ADD( "mpeg" )
|
||||
MCFG_DS2401_ADD( "digital_id" )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
mpeg573_device::mpeg573_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, MPEG573, "Konami 573 digital audio board", tag, owner, clock, "mpeg573", __FILE__),
|
||||
k573dio_device::k573dio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, KONAMI_573_DIGITAL_IO_BOARD, "Konami 573 digital I/O board", tag, owner, clock, "k573dio", __FILE__),
|
||||
mas3507d(*this, "mpeg"),
|
||||
digital_id(*this, "digital_id"),
|
||||
output_cb(*this)
|
||||
{
|
||||
}
|
||||
|
||||
void mpeg573_device::device_start()
|
||||
void k573dio_device::device_start()
|
||||
{
|
||||
output_cb.resolve_safe();
|
||||
ram = auto_alloc_array( machine(), UINT16, 12 * 1024 * 1024 );
|
||||
save_pointer( NAME(ram), 12 * 1024 * 1024 );
|
||||
}
|
||||
|
||||
void mpeg573_device::device_reset()
|
||||
void k573dio_device::device_reset()
|
||||
{
|
||||
ram_adr = 0;
|
||||
memset(output_data, 0, sizeof(output_data));
|
||||
}
|
||||
|
||||
ROM_START( mpeg573 )
|
||||
ROM_START( k573dio )
|
||||
ROM_REGION( 0x000008, "digital_id", 0 )
|
||||
ROM_LOAD( "digital-id.bin", 0x000000, 0x000008, CRC(2b977f4d) SHA1(2b108a56653f91cb3351718c45dfcf979bc35ef1) )
|
||||
ROM_END
|
||||
|
||||
const rom_entry *mpeg573_device::device_rom_region() const
|
||||
const rom_entry *k573dio_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(mpeg573);
|
||||
return ROM_NAME(k573dio);
|
||||
}
|
||||
|
||||
machine_config_constructor mpeg573_device::device_mconfig_additions() const
|
||||
machine_config_constructor k573dio_device::device_mconfig_additions() const
|
||||
{
|
||||
return MACHINE_CONFIG_NAME( mpeg573 );
|
||||
return MACHINE_CONFIG_NAME( k573dio );
|
||||
}
|
||||
|
||||
void mpeg573_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
void k573dio_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
|
||||
{
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a00_r)
|
||||
READ16_MEMBER(k573dio_device::a00_r)
|
||||
{
|
||||
logerror("%s: a00_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a02_r)
|
||||
READ16_MEMBER(k573dio_device::a02_r)
|
||||
{
|
||||
logerror("%s: a02_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x0001;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a04_r)
|
||||
READ16_MEMBER(k573dio_device::a04_r)
|
||||
{
|
||||
logerror("%s: a04_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a06_r)
|
||||
READ16_MEMBER(k573dio_device::a06_r)
|
||||
{
|
||||
logerror("%s: a06_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a0a_r)
|
||||
READ16_MEMBER(k573dio_device::a0a_r)
|
||||
{
|
||||
logerror("%s: a0a_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::a80_r)
|
||||
READ16_MEMBER(k573dio_device::a80_r)
|
||||
{
|
||||
logerror("%s: a80_r (%s)\n", tag(), machine().describe_context());
|
||||
return 0x1234;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_start_adr_high_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_start_adr_high_w)
|
||||
{
|
||||
logerror("FPGA MPEG start address high %04x\n", data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_start_adr_low_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_start_adr_low_w)
|
||||
{
|
||||
logerror("FPGA MPEG start address low %04x\n", data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_end_adr_high_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_end_adr_high_w)
|
||||
{
|
||||
logerror("FPGA MPEG end address high %04x\n", data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_end_adr_low_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_end_adr_low_w)
|
||||
{
|
||||
logerror("FPGA MPEG end address low %04x\n", data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_key_1_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_key_1_w)
|
||||
{
|
||||
logerror("FPGA MPEG key 1/3 %04x\n", data);
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::mas_i2c_r)
|
||||
READ16_MEMBER(k573dio_device::mas_i2c_r)
|
||||
{
|
||||
return (mas3507d->i2c_scl_r() << 13) | (mas3507d->i2c_sda_r() << 12);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mas_i2c_w)
|
||||
WRITE16_MEMBER(k573dio_device::mas_i2c_w)
|
||||
{
|
||||
mas3507d->i2c_scl_w(data & 0x2000);
|
||||
mas3507d->i2c_sda_w(data & 0x1000);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_ctrl_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_ctrl_w)
|
||||
{
|
||||
logerror("FPGA MPEG control %c%c%c\n",
|
||||
data & 0x8000 ? '#' : '.',
|
||||
@ -161,84 +223,84 @@ WRITE16_MEMBER(mpeg573_device::mpeg_ctrl_w)
|
||||
data & 0x2000 ? '#' : '.');
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::ram_write_adr_high_w)
|
||||
WRITE16_MEMBER(k573dio_device::ram_write_adr_high_w)
|
||||
{
|
||||
// read and write address are shared
|
||||
ram_adr = (ram_adr & 0x0000ffff) | (data << 16);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::ram_write_adr_low_w)
|
||||
WRITE16_MEMBER(k573dio_device::ram_write_adr_low_w)
|
||||
{
|
||||
// read and write address are shared
|
||||
ram_adr = (ram_adr & 0xffff0000) | data;
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::ram_r)
|
||||
READ16_MEMBER(k573dio_device::ram_r)
|
||||
{
|
||||
UINT16 res = ram[ram_adr >> 1];
|
||||
ram_adr += 2;
|
||||
return res;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::ram_w)
|
||||
WRITE16_MEMBER(k573dio_device::ram_w)
|
||||
{
|
||||
ram[ram_adr >> 1] = data;
|
||||
ram_adr += 2;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::ram_read_adr_high_w)
|
||||
WRITE16_MEMBER(k573dio_device::ram_read_adr_high_w)
|
||||
{
|
||||
// read and write address are shared
|
||||
ram_adr = (ram_adr & 0x0000ffff) | (data << 16);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::ram_read_adr_low_w)
|
||||
WRITE16_MEMBER(k573dio_device::ram_read_adr_low_w)
|
||||
{
|
||||
// read and write address are shared
|
||||
ram_adr = (ram_adr & 0xffff0000) | data;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_1_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_1_w)
|
||||
{
|
||||
output(1, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_0_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_0_w)
|
||||
{
|
||||
output(0, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_3_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_3_w)
|
||||
{
|
||||
output(3, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_7_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_7_w)
|
||||
{
|
||||
output(7, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_key_2_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_key_2_w)
|
||||
{
|
||||
logerror("FPGA MPEG key 2/3 %04x\n", data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::mpeg_key_3_w)
|
||||
WRITE16_MEMBER(k573dio_device::mpeg_key_3_w)
|
||||
{
|
||||
logerror("FPGA MPEG key 3/3 %04x\n", data);
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::digital_id_r)
|
||||
READ16_MEMBER(k573dio_device::digital_id_r)
|
||||
{
|
||||
return digital_id->read() << 12;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::digital_id_w)
|
||||
WRITE16_MEMBER(k573dio_device::digital_id_w)
|
||||
{
|
||||
digital_id->write( !( ( data >> 12 ) & 1 ) );
|
||||
}
|
||||
|
||||
READ16_MEMBER(mpeg573_device::fpga_status_r)
|
||||
READ16_MEMBER(k573dio_device::fpga_status_r)
|
||||
{
|
||||
logerror("%s: fpga_status_r (%s)\n", tag(), machine().describe_context());
|
||||
|
||||
@ -254,27 +316,27 @@ READ16_MEMBER(mpeg573_device::fpga_status_r)
|
||||
return 0x8000 | 0x2000 | 0x1000;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::fpga_firmware_w)
|
||||
WRITE16_MEMBER(k573dio_device::fpga_firmware_w)
|
||||
{
|
||||
// Firmware bits in bit 15, always the same firmware
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_4_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_4_w)
|
||||
{
|
||||
output(4, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_5_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_5_w)
|
||||
{
|
||||
output(5, data);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(mpeg573_device::output_2_w)
|
||||
WRITE16_MEMBER(k573dio_device::output_2_w)
|
||||
{
|
||||
output(2, data);
|
||||
}
|
||||
|
||||
void mpeg573_device::output(int offset, UINT16 data)
|
||||
void k573dio_device::output(int offset, UINT16 data)
|
||||
{
|
||||
data = (data >> 12) & 0x0f;
|
||||
static const int shift[] = { 0, 2, 3, 1 };
|
@ -1,20 +1,21 @@
|
||||
#ifndef _MPEG573_H_
|
||||
#define _MPEG573_H_
|
||||
#pragma once
|
||||
|
||||
#ifndef _K573DIO_H_
|
||||
#define _K573DIO_H_
|
||||
|
||||
#include "sound/mas3507d.h"
|
||||
#include "machine/ds2401.h"
|
||||
|
||||
#define MCFG_MPEG573_ADD(_tag, _clock, _output_cb ) \
|
||||
MCFG_DEVICE_ADD(_tag, MPEG573, _clock) \
|
||||
downcast<mpeg573_device *>(device)->set_output_cb(DEVCB2_##_output_cb);
|
||||
#define MCFG_KONAMI_573_DIGITAL_IO_BOARD_ADD(_tag, _clock) \
|
||||
MCFG_DEVICE_ADD(_tag, KONAMI_573_DIGITAL_IO_BOARD, _clock)
|
||||
|
||||
#define MCFG_MPEG573_OUTPUT_CALLBACK( _output_cb ) \
|
||||
downcast<mpeg573_device *>(device)->set_output_cb(DEVCB2_##_output_cb);
|
||||
#define MCFG_KONAMI_573_DIGITAL_IO_BOARD_OUTPUT_CALLBACK( _output_cb ) \
|
||||
downcast<k573dio_device *>(device)->set_output_cb(DEVCB2_##_output_cb);
|
||||
|
||||
class mpeg573_device : public device_t
|
||||
class k573dio_device : public device_t
|
||||
{
|
||||
public:
|
||||
mpeg573_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
k573dio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
template<class _write> void set_output_cb(_write _output_cb)
|
||||
{
|
||||
@ -77,6 +78,6 @@ private:
|
||||
void output(int offset, UINT16 data);
|
||||
};
|
||||
|
||||
extern const device_type MPEG573;
|
||||
extern const device_type KONAMI_573_DIGITAL_IO_BOARD;
|
||||
|
||||
#endif
|
96
src/mame/machine/k573msu.c
Normal file
96
src/mame/machine/k573msu.c
Normal file
@ -0,0 +1,96 @@
|
||||
// license:MAME
|
||||
// copyright-holders:smf
|
||||
/*
|
||||
* Konami 573 Multi Session Unit
|
||||
*
|
||||
*/
|
||||
|
||||
#include "k573msu.h"
|
||||
|
||||
/*
|
||||
|
||||
PCB Layout of External Multisession Box
|
||||
---------------------------------------
|
||||
|
||||
GXA25-PWB(A)(C)2000 KONAMI
|
||||
|--------------------------------------------------------------------------|
|
||||
|CN9 ADM232 LS273 PC16552 PC16552 XC9536(1) CN13|
|
||||
|DSW(8) LS245 LS273 18.432MHz DS2401 |
|
||||
| |-------| |-------| |-------| |-------| |
|
||||
| MB3793 |TOSHIBA| |TOSHIBA| |TOSHIBA| |TOSHIBA|M48T58Y.6T|
|
||||
| |TC9446F| |TC9446F| |TC9446F| |TC9446F| |
|
||||
| |-016 | |-016 | |-016 | |-016 | CN12|
|
||||
| |-------| |-------| |-------| |-------| |
|
||||
| LV14 XC9572XL |
|
||||
| CN16 CN17 CN18 CN19 XC9536(2)|
|
||||
|PQ30RV21 LCX245 LCX245 CN11|
|
||||
| 33.8688MHz PQ30RV21 |
|
||||
| 8.25MHz HY57V641620 |
|
||||
| |------------| HY57V641620 XC2S200 |
|
||||
| |TOSHIBA | FLASH.20T |
|
||||
| |TMPR3927AF | CN10|
|
||||
| | | |
|
||||
| | | LS245 F245 F245 |
|
||||
| | |HY57V641620 LCX245 DIP40 |
|
||||
| |------------| HY57V641620 LCX245 ATAPI44 |
|
||||
| LCX245 LED(HDD) ATAPI40 |
|
||||
| CN7 LCX245 CN14 LED(CD) CN5 |
|
||||
|--------------------------------------------------------------------------|
|
||||
Notes: (all IC's shown)
|
||||
TMPR3927 - Toshiba TMPR3927AF Risc Microprocessor (QFP240)
|
||||
FLASH.20T - Fujitsu 29F400TC Flash ROM (TSOP48)
|
||||
ATAPI44 - IDE44 44-pin laptop type HDD connector (not used)
|
||||
ATAPI40 - IDE40 40-pin flat cable HDD connector used for connection of CDROM drive
|
||||
XC9572XL - XILINX XC9572XL In-system Programmable CPLD stamped 'XA25A1' (TQFP100)
|
||||
XC9536(1) - XILINX CPLD stamped 'XA25A3' (PLCC44)
|
||||
XC9536(2) - XILINX CPLD stamped 'XA25A2' (PLCC44)
|
||||
XC2S200 - XILINX XC2S200 SPARTAN FPGA (QFP208)
|
||||
DS2401 - MAXIM Dallas DS2401 Silicon Serial Number (SOIC6)
|
||||
M48T58Y - ST M48T58Y Timekeeper NVRAM 8k bytes x8-bit (DIP28). Chip appears empty (0x04 fill) or unused
|
||||
MB3793 - Fujitsu MB3793 Power-Voltage Monitoring IC with Watchdog Timer (SOIC8)
|
||||
DIP40 - Empty DIP40 socket
|
||||
HY57V641620 - Hyundai/Hynix HY57V641620 4 Banks x 1M x 16Bit Synchronous DRAM
|
||||
PC16552D - National PC16552D Dual Universal Asynchronous Receiver/Transmitter with FIFO's
|
||||
TC9446F - Toshiba TC9446F-016 Audio Digital Processor for Decode of Dolby Digital (AC-3) MPEG2 Audio
|
||||
CN16-CN19 - Connector for sub board (3 of them are present). One board connects via a thin cable from
|
||||
CN1 to the main board to a connector on the security board labelled 'AMP BOX'.
|
||||
|
||||
Sub Board Layout
|
||||
----------------
|
||||
|
||||
GXA25-PWB(B) (C) 2000 KONAMI
|
||||
|---------------------------------|
|
||||
| TLP2630 LV14 ADM232 |
|
||||
|CN2 CN1|
|
||||
|A2430 AK5330 |
|
||||
| |
|
||||
| RCA L/R|
|
||||
|ZUS1R50505 6379A |
|
||||
| LM358 |
|
||||
|---------------------------------|
|
||||
|
||||
*/
|
||||
|
||||
k573msu_device::k573msu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, KONAMI_573_MULTI_SESSION_UNIT, "Konami Multi Session Unit", tag, owner, clock, "k573msu", __FILE__)
|
||||
{
|
||||
}
|
||||
|
||||
void k573msu_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
ROM_START( k573msu )
|
||||
ROM_REGION( 0x080000, "tmpr3927", 0 )
|
||||
ROM_LOAD( "flash.20t", 0x000000, 0x080000, CRC(b70c65b0) SHA1(d3b2bf9d3f8b1caf70755a0d7fa50ef8bbd758b8) ) // from "GXA25-PWB(A)(C)2000 KONAMI"
|
||||
|
||||
ROM_REGION( 0x002000, "m48t58y", 0 )
|
||||
ROM_LOAD( "m48t58y.6t", 0x000000, 0x002000, CRC(609ef020) SHA1(71b87c8b25b9613b4d4511c53d0a3a3aacf1499d) )
|
||||
ROM_END
|
||||
|
||||
const rom_entry *k573msu_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME( k573msu );
|
||||
}
|
||||
|
||||
const device_type KONAMI_573_MULTI_SESSION_UNIT = &device_creator<k573msu_device>;
|
28
src/mame/machine/k573msu.h
Normal file
28
src/mame/machine/k573msu.h
Normal file
@ -0,0 +1,28 @@
|
||||
// license:MAME
|
||||
// copyright-holders:smf
|
||||
/*
|
||||
* Konami 573 Multi Session Unit
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __K573MSU_H__
|
||||
#define __K573MSU_H__
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
extern const device_type KONAMI_573_MULTI_SESSION_UNIT;
|
||||
|
||||
class k573msu_device : public device_t
|
||||
{
|
||||
public:
|
||||
k573msu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
};
|
||||
|
||||
#endif
|
@ -1184,7 +1184,7 @@ $(MAMEOBJ)/konami.a: \
|
||||
$(DRIVERS)/konamim2.o \
|
||||
$(DRIVERS)/kontest.o \
|
||||
$(DRIVERS)/konendev.o \
|
||||
$(DRIVERS)/ksys573.o $(MACHINE)/k573cass.o $(MACHINE)/mpeg573.o $(MACHINE)/zs01.o \
|
||||
$(DRIVERS)/ksys573.o $(MACHINE)/k573cass.o $(MACHINE)/k573dio.o $(MACHINE)/k573msu.o $(MACHINE)/zs01.o \
|
||||
$(DRIVERS)/labyrunr.o $(VIDEO)/labyrunr.o \
|
||||
$(DRIVERS)/lethal.o $(VIDEO)/lethal.o \
|
||||
$(DRIVERS)/mainevt.o $(VIDEO)/mainevt.o \
|
||||
|
Loading…
Reference in New Issue
Block a user