mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
3do import from MESS, nw
This commit is contained in:
parent
c0214df35a
commit
82b5fb6ab1
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -1555,6 +1555,7 @@ src/mame/drivers/1945kiii.c svneol=native#text/plain
|
||||
src/mame/drivers/20pacgal.c svneol=native#text/plain
|
||||
src/mame/drivers/2mindril.c svneol=native#text/plain
|
||||
src/mame/drivers/39in1.c svneol=native#text/plain
|
||||
src/mame/drivers/3do.c svneol=native#text/plain
|
||||
src/mame/drivers/40love.c svneol=native#text/plain
|
||||
src/mame/drivers/4enraya.c svneol=native#text/plain
|
||||
src/mame/drivers/4roses.c svneol=native#text/plain
|
||||
@ -2705,6 +2706,7 @@ src/mame/etc/jrcrypt.c svneol=native#text/plain
|
||||
src/mame/includes/1942.h svneol=native#text/plain
|
||||
src/mame/includes/1943.h svneol=native#text/plain
|
||||
src/mame/includes/20pacgal.h svneol=native#text/plain
|
||||
src/mame/includes/3do.h svneol=native#text/plain
|
||||
src/mame/includes/40love.h svneol=native#text/plain
|
||||
src/mame/includes/4enraya.h svneol=native#text/plain
|
||||
src/mame/includes/8080bw.h svneol=native#text/plain
|
||||
@ -3535,6 +3537,7 @@ src/mame/layout/videodad.lay svneol=native#text/plain
|
||||
src/mame/layout/videopin.lay svneol=native#text/plain
|
||||
src/mame/layout/videopkr.lay svneol=native#text/plain
|
||||
src/mame/layout/wecleman.lay svneol=native#text/plain
|
||||
src/mame/machine/3do.c svneol=native#text/plain
|
||||
src/mame/machine/acitya.c svneol=native#text/plain
|
||||
src/mame/machine/ajax.c svneol=native#text/plain
|
||||
src/mame/machine/amiga.c svneol=native#text/plain
|
||||
|
231
src/mame/drivers/3do.c
Normal file
231
src/mame/drivers/3do.c
Normal file
@ -0,0 +1,231 @@
|
||||
/***************************************************************************
|
||||
|
||||
3do.c
|
||||
|
||||
Driver file to handle emulation of the 3DO systems
|
||||
|
||||
Hardware descriptions:
|
||||
|
||||
Processors:
|
||||
- 32bit 12.5MHZ RISC CPU (ARM60 - ARM6 core)
|
||||
- Separate BUS for video refresh updates (VRAM is dual ported)
|
||||
- Super Fast BUS Speed (50 Megabytes per second)
|
||||
- Math Co-Processor custom designed by NTG for accelerating fixed-point
|
||||
matrix operations (_not_ the ARM FPA)
|
||||
- Multitaking 32-bit operating system
|
||||
|
||||
Resolution:
|
||||
- 640x480 pixel resolution
|
||||
- 16.7 million colors
|
||||
|
||||
Two accelerated video co-processors:
|
||||
- 25MHZ clock rate (NTSC), 29.5MHZ clock rate (PAL)
|
||||
- Capable of producing 9-16 million real pixels per second (36-64 Mpix/sec
|
||||
interpolated), distorted, scaled, rotated and texture mapped.
|
||||
- able to map a rectangular bitmap onto any arbitrary 4-point polygon.
|
||||
- texturemap source bitmaps can be 1, 2, 4, 6, 8, or 16 bits per pixel and
|
||||
are RLE compressed for a maximum combination of both high resolution and
|
||||
small storage space.
|
||||
- supports transparency, translucency, and color-shading effects.
|
||||
|
||||
Custom 16bit DSP:
|
||||
- specifically designed for mixing, manipulating, and synthesizing CD quality
|
||||
sound.
|
||||
- can decompress sound 2:1 or 4:1 on the fly saving memory and bus bandwidth.
|
||||
- 25MHz clock rate.
|
||||
- pipelined CISC architecture
|
||||
- 16bit register size
|
||||
- 17 separate 16bit DMA channels to and from system memory.
|
||||
- on chip instruction SRAM and register memory.
|
||||
- 20bit internal processing.
|
||||
- special filtering capable of creating effects such as 3D sound.
|
||||
|
||||
Sound:
|
||||
- 16bit stereo sound
|
||||
- 44.1 kHz sound sampling rate
|
||||
- Fully support Dolby(tm) Surround Sound
|
||||
|
||||
Memory:
|
||||
- 2 megabytes of DRAM
|
||||
- 1 megabyte of VRAM (also capable of holding/executing code and data)
|
||||
- 1 megabyte of ROM
|
||||
- 32KB battery backed SRAM
|
||||
|
||||
CD-ROM drive:
|
||||
- 320ms access time
|
||||
- double speed 300kbps data transfer
|
||||
- 32KB RAM buffer
|
||||
|
||||
Ports:
|
||||
- 2 expansion ports:
|
||||
- 1 high-speed 68 pin x 1 AV I/O port (for FMV cartridge)
|
||||
- 1 high-speed 30 pin x 1 I/O expansion port
|
||||
- 1 control port, capable of daisy chaining together up to 8 peripherals
|
||||
|
||||
Models:
|
||||
- Panasonic FZ-1 R.E.A.L. 3DO Interactive Multiplayer (Japan, Asia, North America, Europe)
|
||||
- Panasonic FZ-10 R.E.A.L. 3DO Interactive Multiplayer (Japan, North America, Europe)
|
||||
- Goldstar 3DO Interactive Multiplayer (South Korea, North America, Europe)
|
||||
- Goldstar 3DO ALIVE II (South Korea)
|
||||
- Sanyo TRY 3DO Interactive Multiplayer (Japan)
|
||||
- Creative 3DO Blaster - PC Card (ISA)
|
||||
|
||||
===========================================================================
|
||||
|
||||
Part list of Goldstar 3DO Interactive Multiplayer
|
||||
|
||||
- X1 = 50.0000 MHz KONY 95-08 50.0000 KCH089C
|
||||
- X2 = 59.0000 MHz KONY 95-21 59.0000 KCH089C (NTSC would use 49.09MHz)
|
||||
- IC303 BOB = 3DO BOB ADG 00919-001-IC 517A4611 - 100 pins
|
||||
- IC1 ANVIL = 3DO Anvil rev4 00745-004-02 521U5L36 - 304 pins
|
||||
- IC302 DSP = SONY CXD2500BQ 447HE5V - 80 pins
|
||||
- IC601 ADAC = BB PCM1710U 9436 GG2553 - 28 pins
|
||||
- X601 16.934MHz = 16.93440 KONY
|
||||
- IC101/102/103/104 DRAM = Goldstar GM71C4800AJ70 9520 KOREA - 28 pins
|
||||
- IC105/106/107/108 VRAM = Toshiba TC528267J-70 9513HBK - 40 pins
|
||||
- IC3 ROM = Goldstar [202M] GM23C8000AFW-325 9524 - 32 pins
|
||||
- IC4 SRAM = Goldstar GM76C256ALLFW70 - 28 pins
|
||||
- IC2 ARM = ARM P60ARMCP 9516C - 100 pins
|
||||
- IC6 = Philips 74HCT14D 974230Q - 14 pins
|
||||
- IC301 u-COM = MC68HSC 705C8ACFB 3E20T HLAH9446 - 44 pins
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "includes/3do.h"
|
||||
#include "imagedev/chd_cd.h"
|
||||
#include "cpu/arm/arm.h"
|
||||
#include "cpu/arm7/arm7.h"
|
||||
|
||||
|
||||
#define X2_CLOCK_PAL 59000000
|
||||
#define X2_CLOCK_NTSC 49090000
|
||||
#define X601_CLOCK XTAL_16_9344MHz
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( 3do_mem, AS_PROGRAM, 32)
|
||||
AM_RANGE(0x00000000, 0x001FFFFF) AM_RAMBANK("bank1") AM_BASE_MEMBER(_3do_state,m_dram) /* DRAM */
|
||||
AM_RANGE(0x00200000, 0x003FFFFF) AM_RAM AM_BASE_MEMBER(_3do_state,m_vram) /* VRAM */
|
||||
AM_RANGE(0x03000000, 0x030FFFFF) AM_ROMBANK("bank2") /* BIOS */
|
||||
AM_RANGE(0x03100000, 0x0313FFFF) AM_RAM /* Brooktree? */
|
||||
AM_RANGE(0x03140000, 0x0315FFFF) AM_READWRITE(_3do_nvarea_r, _3do_nvarea_w) /* NVRAM */
|
||||
AM_RANGE(0x03180000, 0x031BFFFF) AM_READWRITE(_3do_slow2_r, _3do_slow2_w) /* Slow bus - additional expansion */
|
||||
AM_RANGE(0x03200000, 0x0320FFFF) AM_READWRITE(_3do_svf_r, _3do_svf_w) /* special vram access1 */
|
||||
AM_RANGE(0x03300000, 0x033FFFFF) AM_READWRITE(_3do_madam_r, _3do_madam_w) /* address decoder */
|
||||
AM_RANGE(0x03400000, 0x034FFFFF) AM_READWRITE(_3do_clio_r, _3do_clio_w) /* io controller */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( 3do )
|
||||
PORT_START("P1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static MACHINE_RESET( 3do )
|
||||
{
|
||||
_3do_state *state = machine.driver_data<_3do_state>();
|
||||
|
||||
state->m_maincpu = downcast<legacy_cpu_device*>( machine.device("maincpu") );
|
||||
|
||||
memory_set_bankptr(machine, "bank2",machine.region("user1")->base());
|
||||
|
||||
/* configure overlay */
|
||||
memory_configure_bank(machine, "bank1", 0, 1, state->m_dram, 0);
|
||||
memory_configure_bank(machine, "bank1", 1, 1, machine.region("user1")->base(), 0);
|
||||
|
||||
/* start with overlay enabled */
|
||||
memory_set_bank(machine, "bank1", 1);
|
||||
|
||||
_3do_slow2_init(machine);
|
||||
_3do_madam_init(machine);
|
||||
_3do_clio_init(machine, downcast<screen_device *>(machine.device("screen")));
|
||||
}
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( 3do, _3do_state )
|
||||
|
||||
/* Basic machine hardware */
|
||||
MCFG_CPU_ADD( "maincpu", ARM7_BE, XTAL_50MHz/4 )
|
||||
MCFG_CPU_PROGRAM_MAP( 3do_mem)
|
||||
|
||||
MCFG_MACHINE_RESET( 3do )
|
||||
|
||||
// MCFG_VIDEO_START( generic_bitmapped )
|
||||
MCFG_VIDEO_START( _3do )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_FORMAT( BITMAP_FORMAT_RGB32 )
|
||||
MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
|
||||
// MCFG_SCREEN_UPDATE( generic_bitmapped )
|
||||
MCFG_SCREEN_UPDATE( _3do )
|
||||
|
||||
MCFG_CDROM_ADD( "cdrom" )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( 3do_pal, _3do_state )
|
||||
|
||||
/* Basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", ARM7_BE, XTAL_50MHz/4 )
|
||||
MCFG_CPU_PROGRAM_MAP( 3do_mem)
|
||||
|
||||
MCFG_MACHINE_RESET( 3do )
|
||||
|
||||
MCFG_VIDEO_START( generic_bitmapped )
|
||||
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_FORMAT( BITMAP_FORMAT_RGB32 )
|
||||
MCFG_SCREEN_SIZE( 640, 625 )
|
||||
MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
|
||||
MCFG_SCREEN_REFRESH_RATE( 50 )
|
||||
MCFG_SCREEN_UPDATE( generic_bitmapped )
|
||||
|
||||
MCFG_CDROM_ADD( "cdrom" )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START(3do)
|
||||
ROM_REGION32_BE( 0x100000, "user1", 0 )
|
||||
ROM_SYSTEM_BIOS( 0, "panafz10", "Panasonic FZ-10 R.E.A.L. 3DO Interactive Multiplayer" )
|
||||
ROMX_LOAD( "panafz10.bin", 0x000000, 0x100000, CRC(58242cee) SHA1(3c912300775d1ad730dc35757e279c274c0acaad), ROM_BIOS(1) )
|
||||
ROM_SYSTEM_BIOS( 1, "goldstar", "Goldstar 3DO Interactive Multiplayer v1.01m" )
|
||||
ROMX_LOAD( "goldstar.bin", 0x000000, 0x100000, CRC(b6f5028b) SHA1(c4a2e5336f77fb5f743de1eea2cda43675ee2de7), ROM_BIOS(2) )
|
||||
ROM_SYSTEM_BIOS( 2, "panafz1", "Panasonic FZ-1 R.E.A.L. 3DO Interactive Multiplayer" )
|
||||
ROMX_LOAD( "panafz1.bin", 0x000000, 0x100000, CRC(c8c8ff89) SHA1(34bf189111295f74d7b7dfc1f304d98b8d36325a), ROM_BIOS(3) )
|
||||
ROM_SYSTEM_BIOS( 3, "gsalive2", "Goldstar 3DO Alive II" )
|
||||
ROMX_LOAD( "gsalive2.bin", 0x000000, 0x100000, NO_DUMP, ROM_BIOS(4) )
|
||||
ROM_SYSTEM_BIOS( 4, "sanyotry", "Sanyo TRY 3DO Interactive Multiplayer" )
|
||||
ROMX_LOAD( "sanyotry.bin", 0x000000, 0x100000, CRC(d5cbc509) SHA1(b01c53da256dde43ffec4ad3fc3adfa8d635e943), ROM_BIOS(5) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START(3do_pal)
|
||||
ROM_REGION32_BE( 0x100000, "user1", 0 )
|
||||
ROM_SYSTEM_BIOS( 0, "panafz10", "Panasonic FZ-10 R.E.A.L. 3DO Interactive Multiplayer" )
|
||||
ROMX_LOAD( "panafz10.bin", 0x000000, 0x100000, CRC(58242cee) SHA1(3c912300775d1ad730dc35757e279c274c0acaad), ROM_BIOS(1) )
|
||||
ROM_SYSTEM_BIOS( 1, "goldstar", "Goldstar 3DO Interactive Multiplayer v1.01m" )
|
||||
ROMX_LOAD( "goldstar.bin", 0x000000, 0x100000, CRC(b6f5028b) SHA1(c4a2e5336f77fb5f743de1eea2cda43675ee2de7), ROM_BIOS(2) )
|
||||
ROM_SYSTEM_BIOS( 2, "panafz1", "Panasonic FZ-1 R.E.A.L. 3DO Interactive Multiplayer" )
|
||||
ROMX_LOAD( "panafz1.bin", 0x000000, 0x100000, CRC(c8c8ff89) SHA1(34bf189111295f74d7b7dfc1f304d98b8d36325a), ROM_BIOS(3) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Game driver(s)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
|
||||
CONS( 1991, 3do, 0, 0, 3do, 3do, 0, "3DO", "3DO (NTSC)", GAME_NOT_WORKING | GAME_NO_SOUND )
|
||||
CONS( 1991, 3do_pal, 3do, 0, 3do_pal, 3do, 0, "3DO", "3DO (PAL)", GAME_NOT_WORKING | GAME_NO_SOUND )
|
||||
|
||||
//TODO: orbatak, Arcade prototype
|
202
src/mame/includes/3do.h
Normal file
202
src/mame/includes/3do.h
Normal file
@ -0,0 +1,202 @@
|
||||
/*****************************************************************************
|
||||
*
|
||||
* includes/3do.h
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef _3DO_H_
|
||||
#define _3DO_H_
|
||||
|
||||
typedef struct {
|
||||
/* 03180000 - 0318003f - configuration group */
|
||||
/* 03180040 - 0318007f - diagnostic UART */
|
||||
|
||||
UINT8 cg_r_count;
|
||||
UINT8 cg_w_count;
|
||||
UINT32 cg_input;
|
||||
UINT32 cg_output;
|
||||
} SLOW2;
|
||||
|
||||
|
||||
typedef struct {
|
||||
UINT32 revision; /* 03300000 */
|
||||
UINT32 msysbits; /* 03300004 */
|
||||
UINT32 mctl; /* 03300008 */
|
||||
UINT32 sltime; /* 0330000c */
|
||||
UINT32 abortbits; /* 03300020 */
|
||||
UINT32 privbits; /* 03300024 */
|
||||
UINT32 statbits; /* 03300028 */
|
||||
UINT32 diag; /* 03300040 */
|
||||
|
||||
UINT32 ccobctl0; /* 03300110 */
|
||||
UINT32 ppmpc; /* 03300120 */
|
||||
|
||||
UINT32 regctl0; /* 03300130 */
|
||||
UINT32 regctl1; /* 03300134 */
|
||||
UINT32 regctl2; /* 03300138 */
|
||||
UINT32 regctl3; /* 0330013c */
|
||||
UINT32 xyposh; /* 03300140 */
|
||||
UINT32 xyposl; /* 03300144 */
|
||||
UINT32 linedxyh; /* 03300148 */
|
||||
UINT32 linedxyl; /* 0330014c */
|
||||
UINT32 dxyh; /* 03300150 */
|
||||
UINT32 dxyl; /* 03300154 */
|
||||
UINT32 ddxyh; /* 03300158 */
|
||||
UINT32 ddxyl; /* 0330015c */
|
||||
|
||||
UINT32 pip[16]; /* 03300180-033001bc (W); 03300180-033001fc (R) */
|
||||
UINT32 fence[16]; /* 03300200-0330023c (W); 03300200-0330027c (R) */
|
||||
UINT32 mmu[64]; /* 03300300-033003fc */
|
||||
UINT32 dma[32][4]; /* 03300400-033005fc */
|
||||
UINT32 mult[40]; /* 03300600-0330069c */
|
||||
UINT32 mult_control; /* 033007f0-033007f4 */
|
||||
UINT32 mult_status; /* 033007f8 */
|
||||
} MADAM;
|
||||
|
||||
|
||||
typedef struct {
|
||||
screen_device *screen;
|
||||
|
||||
UINT32 revision; /* 03400000 */
|
||||
UINT32 csysbits; /* 03400004 */
|
||||
UINT32 vint0; /* 03400008 */
|
||||
UINT32 vint1; /* 0340000c */
|
||||
UINT32 audin; /* 03400020 */
|
||||
UINT32 audout; /* 03400024 */
|
||||
UINT32 cstatbits; /* 03400028 */
|
||||
UINT32 wdog; /* 0340002c */
|
||||
UINT32 hcnt; /* 03400030 */
|
||||
UINT32 vcnt; /* 03400034 */
|
||||
UINT32 seed; /* 03400038 */
|
||||
UINT32 random; /* 0340004c */
|
||||
UINT32 irq0; /* 03400040 / 03400044 */
|
||||
UINT32 irq0_enable; /* 03400048 / 0340004c */
|
||||
UINT32 mode; /* 03400050 / 03400054 */
|
||||
UINT32 badbits; /* 03400058 */
|
||||
UINT32 spare; /* 0340005c */
|
||||
UINT32 irq1; /* 03400060 / 03400064 */
|
||||
UINT32 irq1_enable; /* 03400068 / 0340006c */
|
||||
UINT32 hdelay; /* 03400080 */
|
||||
UINT32 adbio; /* 03400084 */
|
||||
UINT32 adbctl; /* 03400088 */
|
||||
/* Timers */
|
||||
UINT32 timer0; /* 03400100 */
|
||||
UINT32 timerback0; /* 03400104 */
|
||||
UINT32 timer1; /* 03400108 */
|
||||
UINT32 timerback1; /* 0340010c */
|
||||
UINT32 timer2; /* 03400110 */
|
||||
UINT32 timerback2; /* 03400114 */
|
||||
UINT32 timer3; /* 03400118 */
|
||||
UINT32 timerback3; /* 0340011c */
|
||||
UINT32 timer4; /* 03400120 */
|
||||
UINT32 timerback4; /* 03400124 */
|
||||
UINT32 timer5; /* 03400128 */
|
||||
UINT32 timerback5; /* 0340012c */
|
||||
UINT32 timer6; /* 03400130 */
|
||||
UINT32 timerback6; /* 03400134 */
|
||||
UINT32 timer7; /* 03400138 */
|
||||
UINT32 timerback7; /* 0340013c */
|
||||
UINT32 timer8; /* 03400140 */
|
||||
UINT32 timerback8; /* 03400144 */
|
||||
UINT32 timer9; /* 03400148 */
|
||||
UINT32 timerback9; /* 0340014c */
|
||||
UINT32 timer10; /* 03400150 */
|
||||
UINT32 timerback10; /* 03400154 */
|
||||
UINT32 timer11; /* 03400158 */
|
||||
UINT32 timerback11; /* 0340015c */
|
||||
UINT32 timer12; /* 03400160 */
|
||||
UINT32 timerback12; /* 03400164 */
|
||||
UINT32 timer13; /* 03400168 */
|
||||
UINT32 timerback13; /* 0340016c */
|
||||
UINT32 timer14; /* 03400170 */
|
||||
UINT32 timerback14; /* 03400174 */
|
||||
UINT32 timer15; /* 03400178 */
|
||||
UINT32 timerback15; /* 0340017c */
|
||||
UINT32 settm0; /* 03400200 */
|
||||
UINT32 clrtm0; /* 03400204 */
|
||||
UINT32 settm1; /* 03400208 */
|
||||
UINT32 clrtm1; /* 0340020c */
|
||||
UINT32 slack; /* 03400220 */
|
||||
/* DMA */
|
||||
UINT32 dmareqdis; /* 03400308 */
|
||||
/* Expansion bus */
|
||||
UINT32 expctl; /* 03400400/03400404 */
|
||||
UINT32 type0_4; /* 03400408 */
|
||||
UINT32 dipir1; /* 03400410 */
|
||||
UINT32 dipir2; /* 03400414 */
|
||||
/* Bus signals */
|
||||
UINT32 sel; /* 03400500 - 0340053f */
|
||||
UINT32 poll; /* 03400540 - 0340057f */
|
||||
UINT32 cmdstat; /* 03400580 - 034005bf */
|
||||
UINT32 data; /* 034005c0 - 034005ff */
|
||||
/* DSPP */
|
||||
UINT32 semaphore; /* 034017d0 */
|
||||
UINT32 semaack; /* 034017d4 */
|
||||
UINT32 dsppdma; /* 034017e0 */
|
||||
UINT32 dspprst0; /* 034017e4 */
|
||||
UINT32 dspprst1; /* 034017e8 */
|
||||
UINT32 dspppc; /* 034017f4 */
|
||||
UINT32 dsppnr; /* 034017f8 */
|
||||
UINT32 dsppgw; /* 034017fc */
|
||||
UINT32 dsppn[0x400]; /* 03401800 - 03401bff DSPP N stack (32bit writes) */
|
||||
/* 03402000 - 034027ff DSPP N stack (16bit writes) */
|
||||
UINT32 dsppei[0x100]; /* 03403000 - 034030ff DSPP EI stack (32bit writes) */
|
||||
/* 03403400 - 034035ff DSPP EI stack (16bit writes) */
|
||||
UINT32 dsppeo[0x1f]; /* 03403800 - 0340381f DSPP EO stack (32bit reads) */
|
||||
/* 03403c00 - 03403c3f DSPP EO stack (32bit reads) */
|
||||
UINT32 dsppclkreload; /* 034039dc / 03403fbc */
|
||||
/* UNCLE */
|
||||
UINT32 unclerev; /* 0340c000 */
|
||||
UINT32 uncle_soft_rev; /* 0340c004 */
|
||||
UINT32 uncle_addr; /* 0340c008 */
|
||||
UINT32 uncle_rom; /* 0340c00c */
|
||||
} CLIO;
|
||||
|
||||
|
||||
typedef struct {
|
||||
UINT32 sport[512];
|
||||
UINT32 color;
|
||||
} SVF;
|
||||
|
||||
|
||||
class _3do_state : public driver_device
|
||||
{
|
||||
public:
|
||||
_3do_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag) { }
|
||||
|
||||
legacy_cpu_device* m_maincpu;
|
||||
UINT32 *m_dram;
|
||||
UINT32 *m_vram;
|
||||
SLOW2 m_slow2;
|
||||
MADAM m_madam;
|
||||
CLIO m_clio;
|
||||
SVF m_svf;
|
||||
UINT8 m_video_bits[512];
|
||||
};
|
||||
|
||||
/*----------- defined in machine/3do.c -----------*/
|
||||
|
||||
READ32_HANDLER( _3do_nvarea_r );
|
||||
WRITE32_HANDLER( _3do_nvarea_w );
|
||||
|
||||
READ32_HANDLER( _3do_slow2_r );
|
||||
WRITE32_HANDLER( _3do_slow2_w );
|
||||
void _3do_slow2_init( running_machine &machine );
|
||||
|
||||
READ32_HANDLER( _3do_svf_r );
|
||||
WRITE32_HANDLER( _3do_svf_w );
|
||||
|
||||
READ32_HANDLER( _3do_madam_r );
|
||||
WRITE32_HANDLER( _3do_madam_w );
|
||||
void _3do_madam_init( running_machine &machine );
|
||||
|
||||
READ32_HANDLER( _3do_clio_r );
|
||||
WRITE32_HANDLER( _3do_clio_w );
|
||||
void _3do_clio_init( running_machine &machine, screen_device *screen );
|
||||
|
||||
|
||||
VIDEO_START( _3do );
|
||||
SCREEN_UPDATE( _3do );
|
||||
|
||||
#endif /* _3DO_H_ */
|
1031
src/mame/machine/3do.c
Normal file
1031
src/mame/machine/3do.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -12268,6 +12268,10 @@ strike
|
||||
// most are commented out for now, the exceptions being sets which act as the parents to actual MAME drivers
|
||||
// due to the arcade units being based on stock retail console units.
|
||||
|
||||
// 3DO
|
||||
3do
|
||||
3do_pal
|
||||
|
||||
// Sega Megadrive / Genesis and related systems
|
||||
// (hardware used by Megatech, Megaplay + many standalone boards)
|
||||
//genesis // (c)1989 Sega
|
||||
@ -12322,4 +12326,4 @@ cd32 // (c)1993 Commodore
|
||||
|
||||
// GCE Vectrex
|
||||
// (parent to Spectrum I+)
|
||||
vectrex // (c)1982 GCE
|
||||
vectrex // (c)1982 GCE
|
||||
|
@ -1613,8 +1613,9 @@ $(MAMEOBJ)/pinball.a: \
|
||||
#-------------------------------------------------
|
||||
|
||||
$(MAMEOBJ)/misc.a: \
|
||||
$(DRIVERS)/39in1.o \
|
||||
$(DRIVERS)/1945kiii.o \
|
||||
$(DRIVERS)/39in1.o \
|
||||
$(DRIVERS)/3do.o $(MACHINE)/3do.o \
|
||||
$(DRIVERS)/4enraya.o $(VIDEO)/4enraya.o \
|
||||
$(DRIVERS)/5clown.o \
|
||||
$(DRIVERS)/acefruit.o \
|
||||
|
Loading…
Reference in New Issue
Block a user