// license:BSD-3-Clause
// copyright-holders: R. Belmont, Ted Green
/***************************************************************************
Incredible Technologies "Eagle" hardware
by Ted Green & R. Belmont
Known games on this hardware and their security chip IDs:
* ITVP-1 (c) 1998 Virtual Pool
* E2-LED0 (c) 2000 Golden Tee Fore!
* E2-BBH0 (c) 2000 Big Buck Hunter
* G42-US-U (c) 2001 Golden Tee Fore! 2002
* BB15-US (c) 2002 Big Buck Hunter: Shooter's Challenge (AKA Big Buck Hunter v1.5)
* BBH2-US (c) 2002 Big Buck Hunter II: Sportsman's Paradise
* CK1-US (c) 2002 Carnival King
* G43-US-U (c) 2002 Golden Tee Fore! 2003
* G44-US-U (c) 2003 Golden Tee Fore! 2004
* G45-US-U (c) 2004 Golden Tee Fore! 2005
* CW-US-U (c) 2005 Big Buck Hunter: Call of the Wild
* G4C-US-U (c) 2006 Golden Tee Complete
Valid regions: US = USA, CAN = Canada, ENG = England, EUR = Euro, SWD = Sweden, AUS = Australia, NZ = New Zealand, SA = South Africa
Note:
Golden Tee Fore! 2004 & Golden Tee Fore! 2005 had updates called "Extra" that installed 2 additional courses.
There are "8-meg" versions of Big Buck Hunter: Call of the Wild to upgrade Eagle PCBs with only 8 megs of main
memory. This was common for the earlier Big Buck Hunter series. The security chip is labeled CW-US-8
Hardware overview:
* NEC VR4310 CPU (similar to the N64's VR4300)
* NEC VR4373 "Nile 3" system controller / PCI bridge
* 3DFX Voodoo Banshee video
* Creative/Ensoniq AudioPCI ES1373 audio
* Atmel 90S2313 AVR-based microcontroller for protection
* STM48T02 NVRAM
* AMD AM85C30 Enhanced Serial Communications Controller
* Conexant CX88168 modem
Eagle 1 Notes:
* Cypress CY82C693 Peripheral Controller
* 3DFX Voodoo 1 video
TODO:
* Big buck hunter sportmans paradise and shooters challenge only work with secondary targeting (reduced threshold)
Notes:
Sound volume may be muted, it can be adjusted through the service menu or with volume up/down buttons (+/-)
The PCB for Virtual Pool is considered "Eagle 1" while the boards
that were production runs for later games are considered Eagle 2.
IE: GT Fore! & BBH, both security chips are "E2-" as are various
preprogrammed PALs: E2-CARD1 & E2-RES3
***************************************************************************/
/*
Big Buck Hunter II
Incredible Technologies 2004
PCB Layout
----------
(main board sticker)
M/N:SC336
B/O:H1
Serial#:8434570
DOM:2003.05.02
IC:125A-0005
Multi-Tech Systems, Inc.
www.multitech.com
|---------------------|
|-----------------------------------------| JAMMA |----|
| PAL(E2-CARD1) |-|
| | |
|RJ45 4MHz 7.3728MHz DSW51(4) | |VGA IN <--|
| AM85C30 |-| |
| ATMEL POWER_CONN |---| | |
| 90S2313 IDE40 |VGA-OUT---->---------|
| (BH2-AUS-U) STM48T02 |---|---|---||
| IDE40 |14.31818MHz||
|RJ45 DSW5(4) |48LC1M16A1 ||
|-------------| 48LC1M16A1 |-------|17S50APC |48LC1M16A1 ||
|CONNEXANT | 48LC1M16A1 |XILINX |(RED1.U26)|48LC1M16A1 ||
|SMART SCM/336| 48LC1M16A1 |SPARTAN| |48LC1M16A1 ||
|CX88168-12 | 48LC1M16A1 |XC2550 | |48LC1M16A1 ||
| | 48LC1M16A1 |-------| |48LC1M16A1 ||
|SMART DAA | 48LC1M16A1 |48LC1M16A1 ||
|20463-11 | 48LC1M16A1 |48LC1M16A1 ||
|-------------| 48LC1M16A1 ||--------| ||
| |--------| |-----------| AT93C46.U61 ||BGA | ||
| |QFP120 | | | 27C080 ||WITH | ||
| |WITH | |NEC | (EAGLE U15 V2.08 ||HEATSINK| ||
| |HEATSINK| |UPD65907GC | (C)2004 IT, INC) ||--------| ||
| | | |-012-NMU | |-----------||
| | | |VRC 4373 | |
| |--------| |REV1.0 | CREATIVE |
|PAL(E2-RE53) |-----------| ES1373 |
|--------------------------------------------------------------------|
*/
#include "emu.h"
#include "cpu/mips/mips3.h"
#include "machine/pci.h"
#include "machine/vrc4373.h"
#include "video/voodoo_pci.h"
#include "sound/es1373.h"
#include "machine/iteagle_fpga.h"
#include "machine/pci-ide.h"
#include "screen.h"
//*************************************
// Main iteagle driver
//*************************************
class iteagle_state : public driver_device
{
public:
iteagle_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu")
{}
required_device<mips3_device> m_maincpu;
virtual void machine_start() override;
virtual void machine_reset() override;
void gtfore05(machine_config &config);
void gtfore02(machine_config &config);
void gtfore03(machine_config &config);
void gtfore01(machine_config &config);
void gtfore06(machine_config &config);
void gtfore04(machine_config &config);
void iteagle(machine_config &config);
void bbh(machine_config &config);
void bbhsc(machine_config &config);
void bbhcotw(machine_config &config);
void virtpool(machine_config &config);
void carnking(machine_config &config);
void bbh2sp(machine_config &config);
};
void iteagle_state::machine_start()
{
// Setting MIPS3DRC_STRICT_VERIFY seems to eliminate the hangs in the bbh series
m_maincpu->mips3drc_set_options(MIPS3DRC_STRICT_VERIFY);
}
void iteagle_state::machine_reset()
{
}
#define PCI_ID_NILE ":pci:00.0"
#define PCI_ID_PERIPH ":pci:06.0"
#define PCI_ID_IDE ":pci:06.1"
// Seconday IDE Control ":pci:06.2"
#define PCI_ID_SOUND ":pci:07.0"
#define PCI_ID_FPGA ":pci:08.0"
#define PCI_ID_VIDEO ":pci:09.0"
#define PCI_ID_EEPROM ":pci:0a.0"
MACHINE_CONFIG_START(iteagle_state::iteagle)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", VR4310LE, 166666666)
MCFG_MIPS3_ICACHE_SIZE(16384)
MCFG_MIPS3_DCACHE_SIZE(8192)
MCFG_MIPS3_SYSTEM_CLOCK(66666667)
MCFG_PCI_ROOT_ADD( ":pci")
MCFG_VRC4373_ADD( PCI_ID_NILE, ":maincpu")
MCFG_VRC4373_SET_RAM(0x00800000)
MCFG_VRC4373_SET_SIMM0(0x02000000)
MCFG_ITEAGLE_PERIPH_ADD( PCI_ID_PERIPH)
MCFG_IDE_PCI_ADD( PCI_ID_IDE, 0x1080C693, 0x00, 0x0)
MCFG_IDE_PCI_IRQ_ADD( ":maincpu", MIPS3_IRQ2)
MCFG_ITEAGLE_FPGA_ADD( PCI_ID_FPGA, ":maincpu", MIPS3_IRQ1, MIPS3_IRQ4)
MCFG_ES1373_ADD( PCI_ID_SOUND)
MCFG_SOUND_ROUTE(0, PCI_ID_SOUND":lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, PCI_ID_SOUND":rspeaker", 1.0)
MCFG_ES1373_IRQ_ADD( ":maincpu", MIPS3_IRQ3)
MCFG_VOODOO_PCI_ADD( PCI_ID_VIDEO, TYPE_VOODOO_3, ":maincpu")
MCFG_VOODOO_PCI_FBMEM(16)
MCFG_DEVICE_MODIFY(PCI_ID_VIDEO":voodoo")
MCFG_VOODOO_VBLANK_CB(WRITELINE(PCI_ID_FPGA, iteagle_fpga_device, vblank_update))
MCFG_ITEAGLE_EEPROM_ADD( PCI_ID_EEPROM)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_UPDATE_DEVICE(PCI_ID_VIDEO, voodoo_pci_device, screen_update)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore01)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000401, 0x0b0b0b)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0401, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore02)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000402, 0x020201)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0402, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore03)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000403, 0x0a0b0a)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0403, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore04)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000404, 0x0a020b)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0404, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore05)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000405, 0x0b0a0c)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0405, 0x7);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::gtfore06)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000406, 0x0c0b0d)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0406, 0x9);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::carnking)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000a01, 0x0e0a0a)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0a01, 0x9)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::bbh)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
// 0xXX01XXXX = tournament board
MCFG_ITEAGLE_FPGA_INIT(0x02010600, 0x0b0a0a)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0000, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::bbhsc)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
// 0xXX01XXXX = tournament board
MCFG_ITEAGLE_FPGA_INIT(0x02010600, 0x0c0a0a)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0000, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::bbh2sp)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x02010602, 0x0d0a0a)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0000, 0x7)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::bbhcotw)
iteagle(config);
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x02010603, 0x080704)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0603, 0x9)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(iteagle_state::virtpool)
iteagle(config);
// Not sure what the actual value should be
// Setting a lower frequency helps delay the tutorial screen premature cut-out
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_CLOCK(99999999)
MCFG_MIPS3_SYSTEM_CLOCK(33333333)
MCFG_DEVICE_REMOVE(PCI_ID_VIDEO)
MCFG_VOODOO_PCI_ADD(PCI_ID_VIDEO, TYPE_VOODOO_1, ":maincpu")
MCFG_VOODOO_PCI_FBMEM(4)
MCFG_VOODOO_PCI_TMUMEM(4, 4)
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
MCFG_ITEAGLE_FPGA_INIT(0x01000202, 0x080808)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0202, 0x7)
MACHINE_CONFIG_END
/*************************************
*
* Port definitions
*
*************************************/
static INPUT_PORTS_START( iteagle )
PORT_START("SW5")
PORT_DIPNAME( 0x3, 0x1, "Resolution" )
PORT_DIPSETTING(0x1, "Medium" )
PORT_DIPSETTING(0x0, "Low" )
PORT_DIPSETTING(0x2, "Low_Alt" )
PORT_DIPNAME(0x4, 0x0, "SW5-3")
PORT_DIPSETTING(0x0, DEF_STR(On))
PORT_DIPSETTING(0x4, DEF_STR(Off))
PORT_DIPNAME(0x8, 0x0, "SW5-4")
PORT_DIPSETTING(0x0, DEF_STR(On))
PORT_DIPSETTING(0x8, DEF_STR(Off))
PORT_START("IN1")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Left" )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Right" )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Fly By" )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Backspin" )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0xfe00, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("SYSTEM")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME( "Service" )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x000c, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_DIPNAME( 0x0010, 0x00, "Operator Mode" )
PORT_DIPSETTING(0x00, DEF_STR(No))
PORT_DIPSETTING(0x10, DEF_STR(Yes))
PORT_DIPNAME( 0x0020, 0x00, "SW51-2" )
PORT_DIPSETTING(0x00, DEF_STR(On))
PORT_DIPSETTING(0x20, DEF_STR(Off))
PORT_DIPNAME( 0x40, 0x00, "SW51-3" )
PORT_DIPSETTING(0x00, DEF_STR(On))
PORT_DIPSETTING(0x40, DEF_STR(Off))
PORT_DIPNAME(0x80, 0x00, "SW51-4")
PORT_DIPSETTING(0x00, DEF_STR(On))
PORT_DIPSETTING(0x80, DEF_STR(Off))
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_VOLUME_UP )
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_VOLUME_DOWN )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BILL1 )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_DIPNAME( 0xC000, 0xC000, "Voltage" )
PORT_DIPSETTING(0xC000, "OK" )
PORT_DIPSETTING(0x8000, "Low" )
PORT_DIPSETTING(0x4000, "High" )
PORT_DIPSETTING(0x0000, "Not Detected" )
PORT_START("TRACKX1")
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1)
PORT_START("TRACKY1")
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1)
PORT_START("GUNX1")
PORT_BIT( 0x1ff, 0x100, IPT_LIGHTGUN_X )
PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
PORT_START("GUNY1")
PORT_BIT( 0x1ff, 0x100, IPT_LIGHTGUN_Y )
PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
INPUT_PORTS_END
static INPUT_PORTS_START( virtpool )
PORT_INCLUDE( iteagle )
PORT_MODIFY("SW5")
PORT_DIPNAME( 0x3, 0x1, "Resolution" ) // Setting to low resolution will hang the game
PORT_DIPSETTING(0x1, "Medium" )
PORT_DIPSETTING(0x0, "Low (Hangs)" )
PORT_DIPSETTING(0x3, "VGA (Buggy)" )
PORT_MODIFY("IN1")
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "English" )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Aim" )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Slop" )
PORT_DIPNAME(0x0010, 0x00, "SW51-1") // Turning this on freezes virtpool at boot
PORT_DIPSETTING(0x00, DEF_STR(On))
PORT_DIPSETTING(0x10, DEF_STR(Off))
PORT_DIPNAME(0x80, 0x00, "Operator Mode")
PORT_DIPSETTING(0x00, DEF_STR(No))
PORT_DIPSETTING(0x80, DEF_STR(Yes))
INPUT_PORTS_END
static INPUT_PORTS_START( bbh )
PORT_INCLUDE( iteagle )
// bbhsc is low resolution only, bbhsc version 1.60.01 will set low resolution automatically
PORT_MODIFY("SW5")
PORT_DIPNAME(0x3, 0x0, "Resolution")
PORT_DIPSETTING(0x1, "Medium" )
PORT_DIPSETTING(0x0, "Low" )
PORT_DIPSETTING(0x2, "Low_Alt" )
PORT_MODIFY("IN1")
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Trigger" )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Pump" )
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("SYSTEM")
// bbhsc and bbh2sp only work with seconday targeting
PORT_DIPNAME(0x0020, 0x20, "Targeting")
PORT_DIPSETTING(0x00, "Regular")
PORT_DIPSETTING(0x20, "Secondary")
PORT_MODIFY("GUNX1")
PORT_BIT( 0x3ff, 0x200, IPT_LIGHTGUN_X )
PORT_SENSITIVITY(50) PORT_KEYDELTA(24)
PORT_CROSSHAIR(X, 1.0, 0.0, 0)
PORT_MODIFY("GUNY1")
PORT_BIT( 0x1ff, 0x100, IPT_LIGHTGUN_Y )
PORT_SENSITIVITY(50) PORT_KEYDELTA(12)
PORT_CROSSHAIR(Y, 1.0, 0.0, 0)
INPUT_PORTS_END
static INPUT_PORTS_START( bbh2 )
PORT_INCLUDE( bbh )
// Default bbh2sp and bbhcotw to medium resolution
PORT_MODIFY("SW5")
PORT_DIPNAME(0x3, 0x1, "Resolution")
PORT_DIPSETTING(0x1, "Medium" )
PORT_DIPSETTING(0x0, "Low" )
PORT_DIPSETTING(0x2, "Low_Alt" )
PORT_MODIFY("GUNX1")
PORT_BIT( 0x1ff, 0x100, IPT_LIGHTGUN_X )
PORT_SENSITIVITY(50) PORT_KEYDELTA(12)
PORT_CROSSHAIR(X, 1.0, 0.0, 0)
INPUT_PORTS_END
/*************************************
*
* ROM definition(s)
*
*************************************/
#define EAGLE_BIOS \
ROM_REGION( 0x100000, PCI_ID_NILE":rom", 0 ) /* MIPS code */ \
ROM_SYSTEM_BIOS( 0, "209", "bootrom 2.09" ) \
ROMX_LOAD( "eagle209.u15", 0x000000, 0x100000, CRC(e0fc1a16) SHA1(c9524f7ee6b95bd484a3b75bcbe2243cb273f84c), ROM_BIOS(1) ) \
ROM_SYSTEM_BIOS( 1, "208", "bootrom 2.08" ) \
ROMX_LOAD( "eagle208.u15", 0x000000, 0x100000, CRC(772f2864) SHA1(085063a4e34f29ebe3814823cd2c6323a050da36), ROM_BIOS(2) ) \
ROM_SYSTEM_BIOS( 2, "204", "bootrom 2.04" ) \
ROMX_LOAD( "eagle204.u15", 0x000000, 0x100000, CRC(f02e5523) SHA1(b979cf72a6992f1ecad9695a08c8d51e315ab537), ROM_BIOS(3) ) \
ROM_SYSTEM_BIOS( 3, "201", "bootrom 2.01" ) \
ROMX_LOAD( "eagle201.u15", 0x000000, 0x100000, CRC(e180442b) SHA1(4f50821fed5bcd786d989520aa2559d6c416fb1f), ROM_BIOS(4) ) \
ROM_SYSTEM_BIOS( 4, "107", "bootrom 1.07" ) \
ROMX_LOAD( "eagle107.u15", 0x000000, 0x100000, CRC(97a01fc9) SHA1(a421dbf4d097b2f50cc005d3cd0d63e562e03df8), ROM_BIOS(5) ) \
ROM_SYSTEM_BIOS( 5, "106a", "bootrom 1.06a" ) \
ROMX_LOAD( "eagle106a.u15", 0x000000, 0x100000, CRC(9c79b7ad) SHA1(ccf1c86e79d65bee30f399e0fa33a7839570d93b), ROM_BIOS(6) ) \
ROM_SYSTEM_BIOS( 6, "106", "bootrom 1.06" ) \
ROMX_LOAD( "eagle106.u15", 0x000000, 0x100000, CRC(56bc193d) SHA1(e531d208ef27f777d0784414885f390d1be654b9), ROM_BIOS(7) ) \
ROM_SYSTEM_BIOS( 7, "105", "bootrom 1.05" ) \
ROMX_LOAD( "eagle105.u15", 0x000000, 0x100000, CRC(3870dbe0) SHA1(09be2d86c7259cd81d945c757044b167a76f30db), ROM_BIOS(8) ) \
ROM_SYSTEM_BIOS( 8, "103", "bootrom 1.03" ) \
ROMX_LOAD( "eagle103.u15", 0x000000, 0x100000, CRC(c35f4cf2) SHA1(45301c18c7f8f78754c8ad60ea4d2da5a7dc55fb), ROM_BIOS(9) ) \
ROM_SYSTEM_BIOS( 9, "102", "bootrom 1.02" ) \
ROMX_LOAD( "eagle102.u15", 0x000000, 0x100000, CRC(1fd39e73) SHA1(d1ac758f94defc5c55c62594b3999a406dd9ef1f), ROM_BIOS(10) ) \
ROM_SYSTEM_BIOS( 10, "101", "bootrom 1.01" ) \
ROMX_LOAD( "eagle101.u15", 0x000000, 0x100000, CRC(2600bc2b) SHA1(c4b89e69c51e4a3bb1874407c4d30b6caed4f396), ROM_BIOS(11) ) \
ROM_REGION( 0x30000, "fpga", 0 ) \
ROM_LOAD( "17s20lpc_sb4.u26", 0x000000, 0x008000, CRC(62c4af8a) SHA1(6eca277b9c66a401990599e98fdca64a9e38cc9a) ) \
ROM_LOAD( "17s20lpc_sb5.u26", 0x008000, 0x008000, CRC(c88b9d42) SHA1(b912d0fc50ecdc6a198c626f6e1644e8405fac6e) ) \
ROM_LOAD( "17s50a_red1.u26", 0x010000, 0x020000, CRC(f5cf3187) SHA1(83b4a14de9959e5a776d97d424945d43501bda7f) ) \
ROM_REGION( 0x2000, "pals", 0 ) \
ROM_LOAD( "e2-card1.u22.jed", 0x000000, 0x000bd1, CRC(9d1e1ace) SHA1(287d6a30e9f32137ef4eba54f0effa092c97a6eb) ) \
ROM_LOAD( "e2-res3.u117.jed", 0x001000, 0x000bd1, CRC(4f1ff45a) SHA1(213cbdd6cd37ad9b5bfc9545084892a68d29f5ff) )
ROM_START( iteagle )
EAGLE_BIOS
//DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
//DISK_REGION( PCI_ID_IDE":ide2:1:cdrom" ) // program CD-ROM
ROM_END
ROM_START( virtpool ) /* On earlier Eagle 1 PCB, possibly a prototype version - later boards are known as Eagle 2 */
ROM_REGION( 0x100000, PCI_ID_NILE":rom", 0 ) /* MIPS code */
ROM_SYSTEM_BIOS( 0, "pool", "Virtual Pool bootrom" )
ROMX_LOAD( "eagle1_bootrom_v1p01", 0x000000, 0x080000, CRC(6c8c1593) SHA1(707d5633388f8dd4e9252f4d8d6f27c98c2cb35a), ROM_BIOS(1) )
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "itvp-1.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "virtualpool", 0, SHA1(be8f890c33701ca17fab8112ee6cd7b5e435d8cf) ) /* HD hand labeled 3-1-99 V.P. */
ROM_END
ROM_START( carnking ) /* REQUIRES a "RED" board, will NOT work with earlier green boards */
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "ck1-us.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "carnival_king_v_1.00.11", 0, SHA1(c819af66d36df173ab17bf42f4045c7cca3203d8) ) /* Labeled Carnival King V 1.00.11 */
ROM_END
ROM_START( gtfore01 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "e2-led0.u53", 0x0000, 0x0880, CRC(6ec86dc6) SHA1(01665ad6d92d2b8e917e33ca705fab9258766513) )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_v1.00.25", 0, SHA1(6dc445b982aee3bab93ade5c4f5d148471939ecc) ) /* Build 19:19:59, Sep 11 2000 */
ROM_END
ROM_START( gtfore02 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g42-us-u.u53", 0x0000, 0x0880, CRC(06e0b452) SHA1(f6b865799cb94941e0e77453b9d556d5988b0194) )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2002_v2.01.06", 0, SHA1(d1363bc17337c91684148b76fa1e73ac9dd80d8f) ) /* Build 11:27:20, Nov 5 2001 */
ROM_END
ROM_START( gtfore03 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g43-us-u.u53", 0x0000, 0x0880, CRC(51c6f726) SHA1(9930337315128f89f7202893fb123ee3f0d33649) )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2003_v3.00.10", 0, SHA1(d789ef86837a5012beb224c487537dd563d93886) ) /* Build 09:36:45, Nov 7 2002 */
ROM_END
ROM_START( gtfore03a )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g43-us-u.u53", 0x0000, 0x0880, CRC(51c6f726) SHA1(9930337315128f89f7202893fb123ee3f0d33649) )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2003_v3.00.09", 0, SHA1(3c9cf82c3ad87b0d6b5a21089795abd8a08f8dd2) ) /* Build 09:36:45, Oct 17 2002 */
ROM_END
ROM_START( gtfore04 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g44-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2004_v4.00.08", 0, SHA1(739a52d6ce13bb6ac7a543ee0e8086fb66be19b9) ) /* Build 14:15:44, Aug 27 2003 - Has been upgraded to Extra */
ROM_END
ROM_START( gtfore04a )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g44-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2004_v4.00.00", 0, SHA1(fe7525de89d67e0e3d10c48572fd04382543c19f) ) /* Build 16:40:59, Feb 28 2003 */
ROM_END
ROM_START( gtfore05 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g45-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2005_v5.01.06", 0, SHA1(fa465263218d8e39102ec81d116c11447ef07e19) ) /* Build 10:55:49, Oct 27 2005 - Has been upgraded to Extra */
ROM_END
ROM_START( gtfore05a )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g45-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2005_v5.01.02", 0, SHA1(6e20d60fb7e9ab6bf0086267fa5b4329d8a9f468) ) /* Build 15:02:32, Feb 27 2004 - Has been upgraded to Extra */
ROM_END
ROM_START( gtfore05b )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g45-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2005_v5.01.00", 0, SHA1(d8de569d8cf97b5aaada10ce896eb3c75f1b37f1) ) /* Build 12:30:35, Feb 16 2004 - Has been upgraded to Extra */
ROM_END
ROM_START( gtfore05c )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g45-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_2005_v5.00.00", 0, SHA1(4236f57e639cae2e5a3eaa97fb24f5ff80557e84) ) /* Build 23:15:38, Jan 31 2004 - Has been upgraded to Extra */
ROM_END
ROM_START( gtfore06 )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "g4c-us-u.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "golf_fore_complete_v6.00.01", 0, SHA1(e902b91bd739daee0b95b10e5cf33700dd63a76b) ) /* Build 09:51:13, Jan 20 2006 */
ROM_END
ROM_START( bbh )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "e2-bbh0.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE("bbh_v1.00.14", 0, SHA1(dd56f758c3e421005e06ac24c21d12f0f29b0f44)) /* Build 10:59:51, Feb 25 2003 */
ROM_END
ROM_START( bbhsc )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "bb15-us.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE("bbhsc_v1.60.01", 0, SHA1(8554fdd7193ee27c0fe8ca921aa8db9c0378b313)) /* Build 09:50:13, May 29 2002 */
ROM_END
ROM_START( bbhsca )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "bb15-us.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "bbhsc_v1.50.07_cf", 0, SHA1(21dcf1f7e5ab901ac64e6afb099c35e273b3bf1f) ) /* Build 16:35:34, Feb 26 2002 - 4gb Compact Flash conversion */
ROM_END
ROM_START( bbh2sp )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "bbh2-us.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "bbh2sp_v2.02.11", 0, SHA1(63e41cca534f4774bfba4b4dda9620fe805029b4) ) /* Build 10:52:30, March 26, 2004 */
ROM_END
ROM_START( bbh2spa )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "bbh2-us.u53", 0x0000, 0x0880, NO_DUMP ) /* Build 18:07:45, Sept 15, 2003 */
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "bbh2sp_v2.02.09", 0, SHA1(fac3963b6da35a8c8b00f6826bc10e9c7230b1d6) ) /* Build 18:07:45, Sept 15, 2003 */
ROM_END
ROM_START( bbh2spb )
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "bbh2-us.u53", 0x0000, 0x0880, NO_DUMP )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "bbh2sp_v2.02.08", 0, SHA1(13b9b4ea0465f55dd1c7bc6e2f962c3c9b9566bd) ) /* Build 09:09:03, July 23, 2003 */
ROM_END
ROM_START( bbhcotw ) /* This version is meant for 8meg GREEN board PCBs */
EAGLE_BIOS
ROM_REGION( 0x0880, "atmel", 0 ) /* Atmel 90S2313 AVR internal CPU code */
ROM_LOAD( "cw-us-8.u53", 0x0000, 0x0880, CRC(c5234b58) SHA1(fb47b2233147a3f633f01edebef9994c358bd162) )
DISK_REGION( PCI_ID_IDE":ide:0:hdd:image" )
DISK_IMAGE( "bbhcotw_v3.02.05_cf", 0, SHA1(b1fcaab3a5aa51821673a914333c8868d36f77ae) ) /* Build 21:00:39, Sep 10 2006 - 4gb Compact Flash conversion */
ROM_END
/*************************************
*
* Game driver(s)
*
*************************************/
GAME( 2000, iteagle, 0, iteagle, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Eagle BIOS", MACHINE_IS_BIOS_ROOT )
GAME( 1998, virtpool, iteagle, virtpool, virtpool, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Virtual Pool", MACHINE_SUPPORTS_SAVE )
GAME( 2002, carnking, iteagle, carnking, bbh2, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", MACHINE_SUPPORTS_SAVE )
GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, gtfore03a, gtfore03, gtfore03, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.09)", MACHINE_SUPPORTS_SAVE )
GAME( 2003, gtfore04, iteagle, gtfore04, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 Extra (v4.00.08)", MACHINE_SUPPORTS_SAVE )
GAME( 2003, gtfore04a, gtfore04, gtfore04, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2004 (v4.00.00)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, gtfore05, iteagle, gtfore05, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.06)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, gtfore05a, gtfore05, gtfore05, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.02)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", MACHINE_SUPPORTS_SAVE )
GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", MACHINE_SUPPORTS_SAVE )
GAME( 2000, bbh, iteagle, bbh, bbh, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter (v1.00.14)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, bbhsc, iteagle, bbhsc, bbh, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.60.01)", MACHINE_SUPPORTS_SAVE )
GAME( 2002, bbhsca, bbhsc, bbhsc, bbh, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_SUPPORTS_SAVE )
GAME( 2004, bbh2sp, iteagle, bbh2sp, bbh2, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter II - Sportsman's Paradise (v2.02.11)", MACHINE_SUPPORTS_SAVE )
GAME( 2003, bbh2spa, bbh2sp, bbh2sp, bbh2, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter II - Sportsman's Paradise (v2.02.09)", MACHINE_SUPPORTS_SAVE )
GAME( 2003, bbh2spb, bbh2sp, bbh2sp, bbh2, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter II - Sportsman's Paradise (v2.02.08)", MACHINE_SUPPORTS_SAVE )
GAME( 2006, bbhcotw, iteagle, bbhcotw, bbh2, iteagle_state, empty_init, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", MACHINE_SUPPORTS_SAVE )