~ubuntu-branches/ubuntu/lucid/sdlmame/lucid

« back to all changes in this revision

Viewing changes to src/mame/drivers/quakeat.c

  • Committer: Bazaar Package Importer
  • Author(s): Cesare Falco
  • Date: 2009-11-03 17:10:15 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20091103171015-6hop4ory5lxnumpn
Tags: 0.135-0ubuntu1
* New upstream release - Closes (LP: #403212)
* debian/watch: unstable releases are no longer detected
* mame.ini: added the cheat subdirectories to cheatpath so zipped
  cheatfiles will be searched too
* renamed crsshair subdirectory to crosshair to reflect upstream change
* mame.ini: renamed references to crosshair subdirectory (see above)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 
 
3
 Quake Arcade Tournament
 
4
 
 
5
 This is unknown PC hardware, only the HDD is dumped.  The HDD is stickered 'Release Beta 2'
 
6
 
 
7
 I've also seen CDs of this for sale, so maybe there should be a CD too, for the music?
 
8
 
 
9
 
 
10
 
 
11
 -- set info
 
12
 
 
13
Quake Arcade Tournament by Lazer-Tron
 
14
 
 
15
PC running Windows 95 with a Dongle on the parallel port
 
16
 
 
17
Created .chd with version 0.125
 
18
 
 
19
It found the following disk paramaters...
 
20
 
 
21
Input offset    511
 
22
Cyclinders  263
 
23
Heads       255
 
24
Sectors     63
 
25
Byte/Sector 512
 
26
Sectors/Hunk    8
 
27
Logical size    2,1163,248,864
 
28
 
 
29
 
 
30
The "backup" directory on hard disk was created by the dumper.
 
31
 
 
32
 
 
33
 -- Hardware info found in the following press release:
 
34
http://www.quantum3d.com/press/HTMLarchive/4-20-98.html
 
35
 
 
36
QUANTUM3D'S HEAVY METAL SYSTEM - HM233G
 
37
NLX form factor system that is based on the Intel 440LX chipset
 
38
233MHz Intel Pentium II processor with 512KB of L2 cache
 
39
32MB of SDRAM
 
40
Microsoft Windows 95 OSR2.5
 
41
shock-mounted 3.1GB Ultra DMA-33 hard drive
 
42
12-24x CD-ROM drive
 
43
1.44 MB floppy drive
 
44
16-bit per sample 3D audio
 
45
PCI-based 2D/VGA
 
46
built-in 10/100 Ethernet
 
47
Obsidian2 90-4440 AGP Voodoo2-based realtime 3D graphics accelerator
 
48
Quantum3D's GCI (Game Control Interface) - a unique, low-cost subsystem
 
49
    designed to interface coin-op and industrial input/output control devices to a PC
 
50
 
 
51
===============================================================================
 
52
TODO:
 
53
    * Add BIOS dump (custom 440LX motherboard or standard?)
 
54
    * Hook up PC hardware
 
55
    * Hook up the GCI (details? ROMs?)
 
56
    * What's the dongle do?
 
57
===============================================================================
 
58
*/
 
59
 
 
60
#include "driver.h"
 
61
#include "cpu/i386/i386.h"
 
62
#include "machine/pic8259.h"
 
63
/* Insert IBM PC includes here */
 
64
 
 
65
static VIDEO_START(quake)
 
66
{
 
67
}
 
68
 
 
69
static VIDEO_UPDATE(quake)
 
70
{
 
71
        return 0;
 
72
}
 
73
 
 
74
static struct {
 
75
        const device_config     *pic8259_1;
 
76
        const device_config     *pic8259_2;
 
77
} quakeat_devices;
 
78
 
 
79
static ADDRESS_MAP_START( quake_map, ADDRESS_SPACE_PROGRAM, 32 )
 
80
        AM_RANGE(0x00000000, 0x0000ffff) AM_ROM AM_REGION("pc_bios", 0) /* BIOS */
 
81
ADDRESS_MAP_END
 
82
 
 
83
static ADDRESS_MAP_START( quake_io, ADDRESS_SPACE_IO, 32 )
 
84
//  AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", dma8237_r, dma8237_w, 0xffffffff)
 
85
        AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_1", pic8259_r, pic8259_w, 0xffffffff)
 
86
//  AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8253_r, pit8253_w, 0xffffffff)
 
87
//  AM_RANGE(0x0060, 0x006f) AM_READWRITE(kbdc8042_32le_r,          kbdc8042_32le_w)
 
88
//  AM_RANGE(0x0070, 0x007f) AM_READWRITE(mc146818_port32le_r,      mc146818_port32le_w)
 
89
//  AM_RANGE(0x0080, 0x009f) AM_READWRITE(at_page32_r,              at_page32_w)
 
90
        AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("pic8259_2", pic8259_r, pic8259_w, 0xffffffff)
 
91
//  AM_RANGE(0x00c0, 0x00df) AM_DEVREADWRITE("dma8237_2", at32_dma8237_2_r, at32_dma8237_2_w)
 
92
        AM_RANGE(0x00e8, 0x00eb) AM_NOP
 
93
//  AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_r, ide_w)
 
94
        AM_RANGE(0x0300, 0x03af) AM_NOP
 
95
        AM_RANGE(0x03b0, 0x03df) AM_NOP
 
96
//  AM_RANGE(0x0278, 0x027b) AM_WRITE(pnp_config_w)
 
97
//  AM_RANGE(0x03f0, 0x03ff) AM_DEVREADWRITE("ide", fdc_r, fdc_w)
 
98
//  AM_RANGE(0x0a78, 0x0a7b) AM_WRITE(pnp_data_w)
 
99
//  AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_32le_r,  pci_32le_w)
 
100
ADDRESS_MAP_END
 
101
 
 
102
/*************************************************************
 
103
 *
 
104
 * pic8259 configuration
 
105
 *
 
106
 *************************************************************/
 
107
 
 
108
static PIC8259_SET_INT_LINE( quakeat_pic8259_1_set_int_line )
 
109
{
 
110
        cputag_set_input_line(device->machine, "maincpu", 0, interrupt ? HOLD_LINE : CLEAR_LINE);
 
111
}
 
112
 
 
113
 
 
114
static PIC8259_SET_INT_LINE( quakeat_pic8259_2_set_int_line )
 
115
{
 
116
        pic8259_set_irq_line( quakeat_devices.pic8259_1, 2, interrupt);
 
117
}
 
118
 
 
119
 
 
120
static const struct pic8259_interface quakeat_pic8259_1_config = {
 
121
        quakeat_pic8259_1_set_int_line
 
122
};
 
123
 
 
124
 
 
125
static const struct pic8259_interface quakeat_pic8259_2_config = {
 
126
        quakeat_pic8259_2_set_int_line
 
127
};
 
128
 
 
129
/*************************************************************/
 
130
 
 
131
static INPUT_PORTS_START( quake )
 
132
INPUT_PORTS_END
 
133
 
 
134
/*************************************************************/
 
135
 
 
136
static IRQ_CALLBACK(irq_callback)
 
137
{
 
138
        int r = 0;
 
139
        r = pic8259_acknowledge( quakeat_devices.pic8259_2);
 
140
        if (r==0)
 
141
        {
 
142
                r = pic8259_acknowledge( quakeat_devices.pic8259_1);
 
143
        }
 
144
        return r;
 
145
}
 
146
 
 
147
static MACHINE_START(quakeat)
 
148
{
 
149
        cpu_set_irq_callback(cputag_get_cpu(machine, "maincpu"), irq_callback);
 
150
 
 
151
        quakeat_devices.pic8259_1 = devtag_get_device( machine, "pic8259_1" );
 
152
        quakeat_devices.pic8259_2 = devtag_get_device( machine, "pic8259_2" );
 
153
}
 
154
/*************************************************************/
 
155
 
 
156
static MACHINE_DRIVER_START( quake )
 
157
        /* basic machine hardware */
 
158
        MDRV_CPU_ADD("maincpu", PENTIUM, 233000000) /* Pentium II, 233MHz */
 
159
        MDRV_CPU_PROGRAM_MAP(quake_map)
 
160
        MDRV_CPU_IO_MAP(quake_io)
 
161
 
 
162
        MDRV_MACHINE_START(quakeat)
 
163
 
 
164
        MDRV_PIC8259_ADD( "pic8259_1", quakeat_pic8259_1_config )
 
165
        MDRV_PIC8259_ADD( "pic8259_2", quakeat_pic8259_2_config )
 
166
 
 
167
        /* video hardware */
 
168
        MDRV_SCREEN_ADD("screen", RASTER)
 
169
        MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
 
170
        MDRV_SCREEN_REFRESH_RATE(60)
 
171
        MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
 
172
        MDRV_SCREEN_SIZE(64*8, 32*8)
 
173
        MDRV_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
 
174
 
 
175
        MDRV_PALETTE_LENGTH(0x100)
 
176
 
 
177
        MDRV_VIDEO_START(quake)
 
178
        MDRV_VIDEO_UPDATE(quake)
 
179
MACHINE_DRIVER_END
 
180
 
 
181
 
 
182
ROM_START(quake)
 
183
        ROM_REGION32_LE(0x20000, "pc_bios", 0)  /* motherboard bios */
 
184
        ROM_LOAD("quakearcadetournament.pcbios", 0x000000, 0x10000, NO_DUMP )
 
185
 
 
186
        DISK_REGION( "disks" )
 
187
        DISK_IMAGE( "quakeat", 0, SHA1(c44695b9d521273c9d3c0e18c88f0dca0185bd7b) )
 
188
ROM_END
 
189
 
 
190
 
 
191
GAME( 1998, quake,  0,   quake, quake, 0, ROT0, "Lazer-Tron / iD Software", "Quake Arcade Tournament (Release Beta 2)", GAME_NOT_WORKING|GAME_NO_SOUND )