mirror of
https://github.com/holub/mame
synced 2025-06-09 22:33:00 +03:00
TMS3203x core updates:
* fixed interrupt handling * added support for edge-triggered interrupts on '32 * expanded interrupt support for the '32 * updated drivers using TMS3203x core to deassert interrupts * added externally accessible functions for converting '3x floating point format * updated gaelco3d driver to use new functions Zeus2 (+related) updates: * fixed save states for DCS games * cleaned up Zeus2 waveram handling * added Zeus2 save state support * added preliminary model and quad rendering support for Zeus2 * added support to timekpr for the ZPRAM used on Zeus2 * hooked up ZPRAM in Zeus2 games * hooked up controls in Zeus2 games * updated poly.c to ensure it is idle before saving state
This commit is contained in:
parent
7ad91eead6
commit
0738d02527
@ -118,3 +118,371 @@ enum
|
||||
XTAL_384kHz = 384000,
|
||||
XTAL_640kHz = 640000
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
|
||||
For further reference:
|
||||
|
||||
A search at http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=852333;keywords=cry
|
||||
reveals the following shipping frequencies as of 1/1/2008:
|
||||
|
||||
20kHz
|
||||
25.600kHz
|
||||
26.667kHz
|
||||
28kHz
|
||||
|
||||
30kHz
|
||||
30.720kHz
|
||||
30.76kHz
|
||||
31.2kHz
|
||||
31.25kHz
|
||||
31.5kHz
|
||||
32.000kHz
|
||||
32.56kHz
|
||||
32.768kHz
|
||||
32.919kHz
|
||||
34kHz
|
||||
36kHz
|
||||
38kHz
|
||||
38.4kHz
|
||||
39.500kHz
|
||||
|
||||
40kHz
|
||||
44.100kHz
|
||||
46.604kHz
|
||||
46.6084kHz
|
||||
|
||||
50kHz
|
||||
59.787kHz
|
||||
|
||||
60.000kHz
|
||||
60.002kHz
|
||||
60.005kHz
|
||||
65.535kHz
|
||||
65.536kHz
|
||||
69kHz
|
||||
|
||||
70kHz
|
||||
71kHz
|
||||
72kHz
|
||||
73kHz
|
||||
74kHz
|
||||
74.3kHz
|
||||
74.4kHz
|
||||
75kHz
|
||||
76kHz
|
||||
76.79kHz
|
||||
76.8kHz
|
||||
76.81kHz
|
||||
77kHz
|
||||
77.204kHz
|
||||
77.287kHz
|
||||
77.500kHz
|
||||
77.503kHz
|
||||
77.504kHz
|
||||
78kHz
|
||||
79kHz
|
||||
|
||||
83kHz
|
||||
|
||||
96kHz
|
||||
96.006kHz
|
||||
|
||||
100kHz
|
||||
111kHz
|
||||
117.72kHz
|
||||
120kHz
|
||||
120.8475kHz
|
||||
125kHz
|
||||
131.072kHz
|
||||
149.475kHz
|
||||
153.600kHz
|
||||
|
||||
200kHz
|
||||
|
||||
307.2kHz
|
||||
|
||||
1.000MHz
|
||||
1.8432MHz
|
||||
|
||||
2.000MHz
|
||||
2.048MHz
|
||||
2.097152MHz
|
||||
2.4576MHz
|
||||
2.5MHz
|
||||
2.560MHz
|
||||
2.949120MHz
|
||||
|
||||
3.000MHz
|
||||
3.276MHz
|
||||
3.2768MHz
|
||||
3.579MHz
|
||||
3.579545MHz
|
||||
3.640MHz
|
||||
3.6864MHz
|
||||
3.700MHz
|
||||
3.859MHz
|
||||
3.93216MHz
|
||||
|
||||
4.000MHz
|
||||
4.032MHz
|
||||
4.096MHz
|
||||
4.09625MHz
|
||||
4.194MHz
|
||||
4.194304MHz
|
||||
4.332MHz
|
||||
4.433MHz
|
||||
4.433616MHz
|
||||
4.433618MHz
|
||||
4.433619MHz
|
||||
4.74687MHz
|
||||
4.800MHz
|
||||
4.8970MHz
|
||||
4.90625MHz
|
||||
4.915MHz
|
||||
4.9152MHz
|
||||
|
||||
5.000MHz
|
||||
5.0688MHz
|
||||
5.120MHz
|
||||
5.185MHz
|
||||
5.223438MHz
|
||||
5.5MHz
|
||||
5.5296MHz
|
||||
5.9904MHz
|
||||
|
||||
6.000MHz
|
||||
6.14MHz
|
||||
6.144MHz
|
||||
6.1760MHz
|
||||
6.400 MHz
|
||||
6.49830MHz
|
||||
6.5MHz
|
||||
6.5536MHz
|
||||
6.612813MHz
|
||||
6.7458MHz
|
||||
6.757MHz
|
||||
6.76438MHz
|
||||
|
||||
7.1505MHz
|
||||
7.15909 MHz
|
||||
7.2MHz
|
||||
7.3728MHz
|
||||
7.68MHz
|
||||
7.94888MHz
|
||||
|
||||
8.000MHz
|
||||
8.000156MHz
|
||||
8.192MHz
|
||||
8.388608MHz
|
||||
8.432MHz
|
||||
8.5MHz
|
||||
8.6432MHz
|
||||
|
||||
9.000MHz
|
||||
9.216MHz
|
||||
9.509375MHz
|
||||
9.545MHz
|
||||
9.6MHz
|
||||
9.7941MHz
|
||||
9.830MHz
|
||||
9.8304MHz
|
||||
9.84375MHz
|
||||
9.8438MHz
|
||||
|
||||
10.000MHz
|
||||
10.240MHz
|
||||
10.245MHz
|
||||
10.6244MHz
|
||||
10.738635MHz
|
||||
10.73865MHz
|
||||
|
||||
11.000MHz
|
||||
11.046MHz
|
||||
11.0592MHz
|
||||
11.228MHz
|
||||
11.2896MHz
|
||||
11.520MHz
|
||||
11.981350MHz
|
||||
|
||||
12.000MHz
|
||||
12.000393MHz
|
||||
12.096MHz
|
||||
12.1875MHz
|
||||
12.288MHz
|
||||
12.352MHz
|
||||
12.500MHz
|
||||
12.688MHz
|
||||
12.800MHz
|
||||
12.96MHz
|
||||
|
||||
13.000MHz
|
||||
13.0625MHz
|
||||
13.225MHz
|
||||
13.2256MHz
|
||||
13.500MHz
|
||||
13.5168MHz
|
||||
13.56MHz
|
||||
13.605MHz
|
||||
13.824MHz
|
||||
13.94916MHz
|
||||
|
||||
14.00MHz
|
||||
14.318MHz
|
||||
14.31818MHz
|
||||
14.3359MHz
|
||||
14.3594MHz
|
||||
14.4MHz
|
||||
14.5MHz
|
||||
14.69MHz
|
||||
14.7456MHz
|
||||
14.850MHz
|
||||
|
||||
15MHz
|
||||
15.360MHz
|
||||
|
||||
16.000MHz
|
||||
16.000312MHz
|
||||
16.128MHz
|
||||
16.257MHz
|
||||
16.3676MHz
|
||||
16.368MHz
|
||||
16.384MHz
|
||||
16.576MHz
|
||||
16.6660MHz
|
||||
16.667MHz
|
||||
16.670MHz
|
||||
16.800MHz
|
||||
16.934MHz
|
||||
16.9344MHz
|
||||
|
||||
17.734475MHz
|
||||
|
||||
18.000MHz
|
||||
18.432MHz
|
||||
18.869MHz
|
||||
|
||||
19.200MHz
|
||||
19.440MHz
|
||||
19.660MHz
|
||||
19.6608MHz
|
||||
19.68MHz
|
||||
19.800MHz
|
||||
|
||||
20.000MHz
|
||||
20.35625MHz
|
||||
20.3563MHz
|
||||
20.480MHz
|
||||
|
||||
21.47727MHz
|
||||
|
||||
22.000MHz
|
||||
22.118MHz
|
||||
22.1184MHz
|
||||
22.400MHz
|
||||
22.5MHz
|
||||
22.5792MHz
|
||||
22.6278MHz
|
||||
|
||||
23MHz
|
||||
23.2643MHz
|
||||
23.5MHz
|
||||
23.5122MHz
|
||||
23.592MHz
|
||||
|
||||
24.000MHz
|
||||
24.00014MHz
|
||||
24.5MHz
|
||||
24.545454 MHz
|
||||
24.5535MHz
|
||||
24.576MHz
|
||||
24.704MHz
|
||||
24.7456MHz
|
||||
|
||||
25.000MHz
|
||||
25MHz
|
||||
25.175MHz
|
||||
25.2235MHz
|
||||
25.4563MHz
|
||||
25.5MHz
|
||||
|
||||
26.000MHz
|
||||
26.45125MHz
|
||||
26.4513MHz
|
||||
26.5MHz
|
||||
26.5971MHz
|
||||
26.800MHz
|
||||
|
||||
27.000MHz
|
||||
27.1344MHz
|
||||
27.3067MHz
|
||||
27.4688MHz
|
||||
|
||||
28.000MHz
|
||||
28.224MHz
|
||||
28.259375MHz
|
||||
28.2594MHz
|
||||
28.322MHz
|
||||
28.375MHz
|
||||
28.5938MHz
|
||||
28.636MHz
|
||||
28.6363MHz
|
||||
28.63636MHz
|
||||
|
||||
29.4912MHz
|
||||
29.498928MHz
|
||||
29.500MHz
|
||||
|
||||
30.000MHz
|
||||
32.000MHz
|
||||
32.514MHz
|
||||
32.768MHz
|
||||
33.000MHz
|
||||
33.333MHz
|
||||
33.3333MHz
|
||||
33.8688MHz
|
||||
35.2512MHz
|
||||
35.3280MHz
|
||||
36.000MHz
|
||||
38.000MHz
|
||||
38.00053MHz
|
||||
38.400MHz
|
||||
38.880MHz
|
||||
39MHz
|
||||
|
||||
40.000MHz
|
||||
40.320MHz
|
||||
40.960 MHz
|
||||
42.000MHz
|
||||
44.000MHz
|
||||
44.2368MHz
|
||||
44.545MHz
|
||||
44.736MHz
|
||||
44.800MHz
|
||||
44.900MHz
|
||||
45.000MHz
|
||||
46.000MHz
|
||||
48.000MHz
|
||||
49.152MHz
|
||||
49.86MHz
|
||||
|
||||
50.000MHz
|
||||
53.125MHz
|
||||
55.000MHz
|
||||
|
||||
60.000MHz
|
||||
64.000MHz
|
||||
66.000MHz
|
||||
66.666MHz
|
||||
66.6666MHz
|
||||
|
||||
73.66979MHz
|
||||
75.957292MHz
|
||||
76.121875MHz
|
||||
|
||||
80.000MHz
|
||||
|
||||
100.00MHz
|
||||
|
||||
*/
|
||||
|
@ -869,6 +869,23 @@ void memory_set_bank(int banknum, int entrynum)
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
memory_get_bank - return the currently
|
||||
selected bank
|
||||
-------------------------------------------------*/
|
||||
|
||||
int memory_get_bank(int banknum)
|
||||
{
|
||||
/* validation checks */
|
||||
if (banknum < STATIC_BANK1 || banknum > MAX_EXPLICIT_BANKS || !bankdata[banknum].used)
|
||||
fatalerror("memory_get_bank called with invalid bank %d", banknum);
|
||||
if (bankdata[banknum].dynamic)
|
||||
fatalerror("memory_get_bank called with dynamic bank %d", banknum);
|
||||
return bankdata[banknum].curentry;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
memory_set_bankptr - set the base of a bank
|
||||
-------------------------------------------------*/
|
||||
@ -2118,7 +2135,7 @@ static void *allocate_memory_block(int cpunum, int spacenum, offs_t start, offs_
|
||||
int allocatemem = (memory == NULL);
|
||||
int region;
|
||||
|
||||
VPRINTF(("allocate_memory_block(%d,%d,%08X,%08X,%08X)\n", cpunum, spacenum, start, end, (UINT32)(FPTR)memory));
|
||||
VPRINTF(("allocate_memory_block(%d,%d,%08X,%08X,%p)\n", cpunum, spacenum, start, end, memory));
|
||||
|
||||
/* if we weren't passed a memory block, allocate one and clear it to zero */
|
||||
if (allocatemem)
|
||||
@ -2188,7 +2205,7 @@ static address_map *assign_intersecting_blocks(addrspace_data *space, offs_t sta
|
||||
if (map->share && shared_ptr[map->share])
|
||||
{
|
||||
map->memory = shared_ptr[map->share];
|
||||
VPRINTF(("memory range %08X-%08X -> shared_ptr[%d] [%08X]\n", map->start, map->end, map->share, (UINT32)(FPTR)map->memory));
|
||||
VPRINTF(("memory range %08X-%08X -> shared_ptr[%d] [%p]\n", map->start, map->end, map->share, map->memory));
|
||||
}
|
||||
|
||||
/* otherwise, look for a match in this block */
|
||||
@ -2199,7 +2216,7 @@ static address_map *assign_intersecting_blocks(addrspace_data *space, offs_t sta
|
||||
if (map->start >= start && map->end <= end)
|
||||
{
|
||||
map->memory = base + (map->start - start);
|
||||
VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%08X]\n", map->start, map->end, start, end, (UINT32)(FPTR)map->memory));
|
||||
VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%p]\n", map->start, map->end, start, end, map->memory));
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2207,7 +2224,7 @@ static address_map *assign_intersecting_blocks(addrspace_data *space, offs_t sta
|
||||
if (map->start >= start && map->start + map->mask <= end)
|
||||
{
|
||||
map->memory = base + (map->start - start);
|
||||
VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%08X]\n", map->start, map->end, start, end, (UINT32)(FPTR)map->memory));
|
||||
VPRINTF(("memory range %08X-%08X -> found in block from %08X-%08X [%p]\n", map->start, map->end, start, end, map->memory));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2290,7 +2307,7 @@ static void find_memory(void)
|
||||
if (!IS_AMENTRY_EXTENDED(map) && map->start == bankdata[banknum].base)
|
||||
{
|
||||
bank_ptr[banknum] = map->memory;
|
||||
VPRINTF(("assigned bank %d pointer to memory from range %08X-%08X [%08X]\n", banknum, map->start, map->end, (UINT32)(FPTR)map->memory));
|
||||
VPRINTF(("assigned bank %d pointer to memory from range %08X-%08X [%p]\n", banknum, map->start, map->end, map->memory));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2328,7 +2345,7 @@ static void *memory_find_base(int cpunum, int spacenum, int readwrite, offs_t of
|
||||
{
|
||||
if (maskoffs >= map->start && maskoffs <= map->end)
|
||||
{
|
||||
VPRINTF(("found in entry %08X-%08X [%08X]\n", map->start, map->end, (UINT32)(FPTR)map->memory + (maskoffs - map->start)));
|
||||
VPRINTF(("found in entry %08X-%08X [%p]\n", map->start, map->end, (UINT8 *)map->memory + (maskoffs - map->start)));
|
||||
return (UINT8 *)map->memory + (maskoffs - map->start);
|
||||
}
|
||||
}
|
||||
@ -2336,7 +2353,7 @@ static void *memory_find_base(int cpunum, int spacenum, int readwrite, offs_t of
|
||||
{
|
||||
if ((maskoffs & map->end) == map->start)
|
||||
{
|
||||
VPRINTF(("found in entry %08X-%08X [%08X]\n", map->start, map->end, (UINT32)(FPTR)map->memory + (maskoffs - map->start)));
|
||||
VPRINTF(("found in entry %08X-%08X [%p]\n", map->start, map->end, (UINT8 *)map->memory + (maskoffs - map->start)));
|
||||
return (UINT8 *)map->memory + (maskoffs - map->start);
|
||||
}
|
||||
}
|
||||
@ -2346,7 +2363,7 @@ static void *memory_find_base(int cpunum, int spacenum, int readwrite, offs_t of
|
||||
for (blocknum = 0, block = memory_block_list; blocknum < memory_block_count; blocknum++, block++)
|
||||
if (block->cpunum == cpunum && block->spacenum == spacenum && block->start <= offset && block->end > offset)
|
||||
{
|
||||
VPRINTF(("found in allocated memory block %08X-%08X [%08X]\n", block->start, block->end, (UINT32)(FPTR)block->data + (offset - block->start)));
|
||||
VPRINTF(("found in allocated memory block %08X-%08X [%p]\n", block->start, block->end, block->data + (offset - block->start)));
|
||||
return block->data + offset - block->start;
|
||||
}
|
||||
|
||||
|
@ -953,6 +953,7 @@ void * memory_get_op_ptr(int cpunum, offs_t offset, int arg);
|
||||
void memory_configure_bank(int banknum, int startentry, int numentries, void *base, offs_t stride);
|
||||
void memory_configure_bank_decrypted(int banknum, int startentry, int numentries, void *base, offs_t stride);
|
||||
void memory_set_bank(int banknum, int entrynum);
|
||||
int memory_get_bank(int banknum);
|
||||
void memory_set_bankptr(int banknum, void *base);
|
||||
|
||||
/* ----- debugging ----- */
|
||||
|
Loading…
Reference in New Issue
Block a user