Fixes for building MAME with Visual Studio 2013 preview [smf]

This commit is contained in:
smf- 2013-07-05 00:45:14 +00:00
parent 80c05d71d9
commit 2e9622ecdb
39 changed files with 107 additions and 133 deletions

View File

@ -550,13 +550,11 @@ static void check_irq_lines(hc11_state *cpustate)
{
int divider = div_tab[cpustate->pr & 3];
UINT64 cur_time = cpustate->device->total_cycles();
UINT64 add = (cur_time - cpustate->frc_base) / divider;
UINT32 add = (cur_time - cpustate->frc_base) / divider;
if (add > 0)
{
int i;
for(i=0;i<add;i++)
for(UINT32 i=0;i<add;i++)
{
cpustate->tcnt++;
if(cpustate->tcnt == cpustate->toc1)

View File

@ -2448,13 +2448,13 @@ INLINE void cfunc_rsp_vmacu(void *param)
{
if (ACCUM_H(i) != 0)
{
vres[i] = 0xffff;
vres[i] = (INT16)0xffff;
}
else
{
if ((INT16)ACCUM_M(i) < 0)
{
vres[i] = 0xffff;
vres[i] = (INT16)0xffff;
}
else
{

View File

@ -84,8 +84,8 @@
#define OR_V_ADD(a,b,r) do { UINT32 temp = ((((a) ^ (r)) & ((b) ^ (r))) >> 30) & VFLAG; IREG(TMR_ST) |= temp | (temp << 4); } while (0)
#define OR_C_SUB(a,b,r) do { IREG(TMR_ST) |= ((UINT32)(b) > (UINT32)(a)); } while (0)
#define OR_C_ADD(a,b,r) do { IREG(TMR_ST) |= ((UINT32)(a) > (UINT32)(r)); } while (0)
#define OR_C_SBB(a,b,c) do { INT64 temp = (UINT32)(a) - (UINT32)(b) - (UINT32)(c); IREG(TMR_ST) |= (temp < 0); } while (0)
#define OR_C_ADC(a,b,c) do { UINT64 temp = (UINT32)(a) + (UINT32)(b) + (UINT32)(c); IREG(TMR_ST) |= (temp > 0xffffffffUL); } while (0)
#define OR_C_SBB(a,b,c) do { INT64 temp = (INT64)(a) - (UINT32)(b) - (UINT32)(c); IREG(TMR_ST) |= (temp < 0); } while (0)
#define OR_C_ADC(a,b,c) do { UINT64 temp = (UINT64)(a) + (UINT32)(b) + (UINT32)(c); IREG(TMR_ST) |= (temp > 0xffffffff); } while (0)
#define OVM() (IREG(TMR_ST) & OVMFLAG)

View File

@ -2061,7 +2061,7 @@ static void execute_cheatinit(running_machine &machine, int ref, int params, con
return;
cheat_map *newmap = auto_alloc_array(machine, cheat_map, cheat.length + real_length);
for (int item = 0; item < cheat.length; item++)
for (UINT64 item = 0; item < cheat.length; item++)
newmap[item] = cheat.cheatmap[item];
auto_free(machine, cheat.cheatmap);
cheat.cheatmap = newmap;
@ -2373,7 +2373,7 @@ static void execute_find(running_machine &machine, int ref, int params, const ch
int cur_data_size;
int data_count = 0;
int found = 0;
UINT64 i, j;
int j;
/* validate parameters */
if (!debug_command_parameter_number(machine, param[0], &offset))
@ -2391,7 +2391,7 @@ static void execute_find(running_machine &machine, int ref, int params, const ch
cur_data_size = 1;
/* parse the data parameters */
for (i = 2; i < params; i++)
for (int i = 2; i < params; i++)
{
const char *pdata = param[i];
@ -2426,7 +2426,7 @@ static void execute_find(running_machine &machine, int ref, int params, const ch
}
/* now search */
for (i = offset; i <= endoffset; i += data_size[0])
for (UINT64 i = offset; i <= endoffset; i += data_size[0])
{
int suboffset = 0;
int match = 1;
@ -2469,7 +2469,7 @@ static void execute_dasm(running_machine &machine, int ref, int params, const ch
int minbytes, maxbytes, byteswidth;
address_space *space;
FILE *f = NULL;
int i, j;
int j;
/* validate parameters */
if (!debug_command_parameter_number(machine, param[1], &offset))
@ -2501,7 +2501,7 @@ static void execute_dasm(running_machine &machine, int ref, int params, const ch
}
/* now write the data out */
for (i = 0; i < length; )
for (UINT64 i = 0; i < length; )
{
int pcbyte = space->address_to_byte(offset + i) & space->bytemask();
char output[512], disasm[200];
@ -2677,7 +2677,7 @@ static void execute_history(running_machine &machine, int ref, int params, const
/* loop over lines */
int maxbytes = debug->max_opcode_bytes();
for (int index = 0; index < count; index++)
for (int index = 0; index < (int) count; index++)
{
offs_t pc = debug->history_pc(-index);

View File

@ -251,7 +251,7 @@ void msm6242_device::update_rtc_registers()
return;
// ticks
if ((m_tick % 200) != ((delta + m_tick) % 0x200))
if ((m_tick % 200) != (int)((delta + m_tick) % 0x200))
irq(IRQ_64THSECOND);
delta = bump(RTC_TICKS, delta, 0, 0x8000);
if (delta == 0)

View File

@ -226,7 +226,7 @@ static UINT32 adjusted_count(int bcd, UINT16 val)
void pit8253_device::decrease_counter_value(pit8253_timer *timer, UINT64 cycles)
{
UINT16 value;
int units, tens, hundreds, thousands;
UINT8 units, tens, hundreds, thousands;
if (CTRL_BCD(timer->control) == 0)
{

View File

@ -605,7 +605,7 @@ bool render_font::load_cached(emu_file &file, UINT32 hash)
m_height = (header[8] << 8) | header[9];
m_scale = 1.0f / (float)m_height;
m_yoffs = (INT16)((header[10] << 8) | header[11]);
int numchars = (header[12] << 24) | (header[13] << 16) | (header[14] << 8) | header[15];
UINT32 numchars = (header[12] << 24) | (header[13] << 16) | (header[14] << 8) | header[15];
if (filesize - CACHED_HEADER_SIZE < numchars * CACHED_CHAR_SIZE)
return false;

View File

@ -576,8 +576,8 @@ bool a2_16sect_format::supports_save() const
int a2_16sect_format::identify(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
int expected_size = 35 * 16 * 256;
UINT64 size = io_generic_size(io);
UINT32 expected_size = 35 * 16 * 256;
return size == expected_size;
}
@ -935,8 +935,8 @@ bool a2_rwts18_format::supports_save() const
int a2_rwts18_format::identify(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
int expected_size = 35 * 16 * 256;
UINT64 size = io_generic_size(io);
UINT32 expected_size = 35 * 16 * 256;
return size == expected_size;
}

View File

@ -1259,13 +1259,13 @@ bool dc42_format::supports_save() const
int dc42_format::identify(io_generic *io, UINT32 form_factor)
{
UINT8 h[0x54];
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
if(size < 0x54)
return 0;
io_generic_read(io, h, 0, 0x54);
int dsize = (h[0x40] << 24) | (h[0x41] << 16) | (h[0x42] << 8) | h[0x43];
int tsize = (h[0x44] << 24) | (h[0x45] << 16) | (h[0x46] << 8) | h[0x47];
UINT32 dsize = (h[0x40] << 24) | (h[0x41] << 16) | (h[0x42] << 8) | h[0x43];
UINT32 tsize = (h[0x44] << 24) | (h[0x45] << 16) | (h[0x46] << 8) | h[0x47];
return dsize > 0 && tsize >= 0 && size == 0x54+tsize+dsize && h[0] < 64 && h[0x52] == 1 && h[0x53] == 0 ? 100 : 0;
}

View File

@ -487,7 +487,8 @@ static FLOPPY_CONSTRUCT(coco_os9_construct)
static int coco_vdk_decode_header(floppy_image_legacy *floppy, struct basicdsk_geometry *geometry)
{
UINT8 header[12];
int heads, tracks, sectors, sector_length, offset;
UINT8 heads, tracks, sectors;
UINT16 sector_length, offset;
UINT64 size;
size = floppy_image_size(floppy);
@ -508,9 +509,9 @@ static int coco_vdk_decode_header(floppy_image_legacy *floppy, struct basicdsk_g
sectors = 18;
sector_length = 0x100;
offset = ((int) header[3]) * 0x100 + header[2];
offset = header[3] * 0x100 + header[2];
if (size != (heads * tracks * sectors * sector_length + offset))
if (size != ((UINT32) heads * tracks * sectors * sector_length + offset))
return -1;
if (geometry)

View File

@ -63,7 +63,7 @@ bool mgt_format::supports_save() const
int mgt_format::identify(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
if(/*size == 737280 || */ size == 819200)
return 50;
@ -73,7 +73,7 @@ int mgt_format::identify(io_generic *io, UINT32 form_factor)
bool mgt_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
int sector_count = size == 737280 ? 9 : 10;
UINT8 sectdata[10*512];

View File

@ -113,12 +113,12 @@ const int d64_format::speed_zone[] =
int d64_format::find_size(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
for(int i=0; formats[i].sector_count; i++) {
const format &f = formats[i];
if(size == f.sector_count*f.sector_base_size)
if(size == (UINT32) f.sector_count*f.sector_base_size)
return i;
if(size == (f.sector_count*f.sector_base_size) + f.sector_count)
if(size == (UINT32) (f.sector_count*f.sector_base_size) + f.sector_count)
return i;
}
return -1;
@ -218,10 +218,10 @@ bool d64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
return false;
const format &f = formats[type];
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 *img;
if(size == f.sector_count*f.sector_base_size) {
if(size == (UINT32)f.sector_count*f.sector_base_size) {
img = global_alloc_array(UINT8, size + f.sector_count);
memset(&img[size], ERROR_00, f.sector_count);
}

View File

@ -17,12 +17,12 @@ public:
UINT32 form_factor; // See floppy_image for possible values
UINT32 variant; // See floppy_image for possible values
int sector_count;
int track_count;
int head_count;
int sector_base_size;
int gap_1;
int gap_2;
UINT16 sector_count;
UINT8 track_count;
UINT8 head_count;
UINT16 sector_base_size;
UINT8 gap_1;
UINT8 gap_2;
};
d64_format();

View File

@ -444,7 +444,7 @@ const char *d88_format::extensions() const
int d88_format::identify(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 h[32];
io_generic_read(io, h, 0, 32);

View File

@ -96,8 +96,8 @@ int dfi_format::identify(io_generic *io, UINT32 form_factor)
bool dfi_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int size = io_generic_size(io);
int pos = 4;
UINT64 size = io_generic_size(io);
UINT64 pos = 4;
UINT8 *data = 0;
int data_size = 0; // size of currently allocated array for a track
int onerev_time = 0; // time for one revolution, used to guess clock and rpm for DFE2 files

View File

@ -343,7 +343,7 @@ bool dsk_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
UINT8 header[0x100];
bool extendformat = FALSE;
int image_size = io_generic_size(io);
UINT64 image_size = io_generic_size(io);
io_generic_read(io, &header, 0, sizeof(header));
if ( memcmp( header, EXT_FORMAT_HEADER, 16 ) ==0) {

View File

@ -68,14 +68,15 @@ bool esqimg_format::supports_save() const
return true;
}
void esqimg_format::find_size(io_generic *io, int &track_count, int &head_count, int &sector_count)
void esqimg_format::find_size(io_generic *io, UINT8 &track_count, UINT8 &head_count, UINT8 &sector_count)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
track_count = 80;
head_count = 2;
sector_count = 10;
if (size == 512*track_count*head_count*sector_count)
UINT32 expected_size = 512 * track_count*head_count*sector_count;
if (size == expected_size)
{
return;
}
@ -85,7 +86,7 @@ void esqimg_format::find_size(io_generic *io, int &track_count, int &head_count,
int esqimg_format::identify(io_generic *io, UINT32 form_factor)
{
int track_count, head_count, sector_count;
UINT8 track_count, head_count, sector_count;
find_size(io, track_count, head_count, sector_count);
if(track_count)
@ -95,7 +96,7 @@ int esqimg_format::identify(io_generic *io, UINT32 form_factor)
bool esqimg_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int track_count, head_count, sector_count;
UINT8 track_count, head_count, sector_count;
find_size(io, track_count, head_count, sector_count);
UINT8 sectdata[10*512];

View File

@ -30,7 +30,7 @@ public:
static const desc_e esq_10_desc[];
private:
void find_size(io_generic *io, int &track_count, int &head_count, int &sector_count);
void find_size(io_generic *io, UINT8 &track_count, UINT8 &head_count, UINT8 &sector_count);
};
extern const floppy_format_type FLOPPY_ESQIMG_FORMAT;

View File

@ -72,7 +72,7 @@ bool esq8img_format::supports_save() const
void esq8img_format::find_size(io_generic *io, int &track_count, int &head_count, int &sector_count)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
track_count = 80;
head_count = 1;
sector_count = 6;

View File

@ -84,7 +84,7 @@ int g64_format::identify(io_generic *io, UINT32 form_factor)
bool g64_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 *img = global_alloc_array(UINT8, size);
io_generic_read(io, img, 0, size);

View File

@ -364,11 +364,11 @@ int imd_format::identify(io_generic *io, UINT32 form_factor)
bool imd_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 *img = global_alloc_array(UINT8, size);
io_generic_read(io, img, 0, size);
int pos;
UINT64 pos;
for(pos=0; pos < size && img[pos] != 0x1a; pos++);
pos++;

View File

@ -41,7 +41,7 @@ int ipf_format::identify(io_generic *io, UINT32 form_factor)
bool ipf_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
UINT32 size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 *data = global_alloc_array(UINT8, size);
io_generic_read(io, data, 0, size);
bool res = parse(data, size, image);

View File

@ -52,8 +52,8 @@ static FLOPPY_IDENTIFY(oric_dsk_identify)
floppy_image_read(floppy, header, 0, mfm_disk_header_size);
if ( memcmp( header, MFM_ID, 8 ) ==0) {
int heads = pick_integer_le(header, 8, 4);
int tracks = pick_integer_le(header, 12, 4);
UINT32 heads = pick_integer_le(header, 8, 4);
UINT32 tracks = pick_integer_le(header, 12, 4);
if (floppy_image_size(floppy)==((tracks*heads*TRACK_SIZE_MFM)+mfm_disk_header_size)) {
*vote = 100;

View File

@ -63,16 +63,16 @@ const char *pc98fdi_format::extensions() const
int pc98fdi_format::identify(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
UINT8 h[32];
io_generic_read(io, h, 0, 32);
int hsize = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x8));
int psize = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0xc));
int ssize = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x10));
int scnt = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x14));
int sides = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x18));
int ntrk = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x1c));
UINT32 hsize = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0x8));
UINT32 psize = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0xc));
UINT32 ssize = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0x10));
UINT32 scnt = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0x14));
UINT32 sides = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0x18));
UINT32 ntrk = LITTLE_ENDIANIZE_INT32(*(UINT32 *) (h + 0x1c));
if(size == hsize + psize && psize == ssize*scnt*sides*ntrk)
return 100;
@ -85,11 +85,11 @@ bool pc98fdi_format::load(io_generic *io, UINT32 form_factor, floppy_image *imag
io_generic_read(io, h, 0, 32);
int hsize = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x8));
int sector_size = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x10));
int sector_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x14));
int head_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x18));
int track_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x1c));
UINT32 hsize = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x8));
UINT32 sector_size = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x10));
UINT32 sector_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x14));
UINT32 head_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x18));
UINT32 track_count = LITTLE_ENDIANIZE_INT32(*(UINT32 *)(h+0x1c));
int cell_count = form_factor == floppy_image::FF_35 ? 200000 : 166666;

View File

@ -66,20 +66,20 @@ bool st_format::supports_save() const
return true;
}
void st_format::find_size(io_generic *io, int &track_count, int &head_count, int &sector_count)
void st_format::find_size(io_generic *io, UINT8 &track_count, UINT8 &head_count, UINT8 &sector_count)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
for(track_count=80; track_count <= 82; track_count++)
for(head_count=1; head_count <= 2; head_count++)
for(sector_count=9; sector_count <= 11; sector_count++)
if(size == 512*track_count*head_count*sector_count)
if(size == (UINT32)512*track_count*head_count*sector_count)
return;
track_count = head_count = sector_count = 0;
}
int st_format::identify(io_generic *io, UINT32 form_factor)
{
int track_count, head_count, sector_count;
UINT8 track_count, head_count, sector_count;
find_size(io, track_count, head_count, sector_count);
if(track_count)
@ -89,7 +89,7 @@ int st_format::identify(io_generic *io, UINT32 form_factor)
bool st_format::load(io_generic *io, UINT32 form_factor, floppy_image *image)
{
int track_count, head_count, sector_count;
UINT8 track_count, head_count, sector_count;
find_size(io, track_count, head_count, sector_count);
UINT8 sectdata[11*512];

View File

@ -26,7 +26,7 @@ public:
virtual bool supports_save() const;
private:
void find_size(io_generic *io, int &track_count, int &head_count, int &sector_count);
void find_size(io_generic *io, UINT8 &track_count, UINT8 &head_count, UINT8 &sector_count);
};
class msa_format : public floppy_image_format_t

View File

@ -318,8 +318,9 @@ static floperr_t td0_get_indexed_sector_info(floppy_image_legacy *floppy, int he
int td0dsk_t::data_read(UINT8 *buf, UINT16 size)
{
if (floppy_file_offset + size > io_generic_size(floppy_file) ) {
size = io_generic_size(floppy_file) - floppy_file_offset;
UINT64 image_size = io_generic_size(floppy_file);
if (size > image_size - floppy_file_offset) {
size = image_size - floppy_file_offset;
}
io_generic_read(floppy_file,buf,floppy_file_offset,size);
floppy_file_offset += size;

View File

@ -251,7 +251,7 @@ static FLOPPY_CONSTRUCT(sap_dsk_construct)
{
struct FloppyCallbacks *callbacks;
struct sap_dsk_tag *tag;
int i,j;
int j;
UINT8 fmt;
tag = (struct sap_dsk_tag *) floppy_create_tag(floppy, sizeof(struct sap_dsk_tag));
if (!tag)
@ -263,12 +263,12 @@ static FLOPPY_CONSTRUCT(sap_dsk_construct)
/* start with an empty offset table */
tag->tracks = 0;
for ( i = 0; i < 80; i++ )
for ( int i = 0; i < 80; i++ )
for ( j = 0; j < 16; j++ )
tag->sector_pos[i][j] = 0;
/* count tracks & fill sector offset table */
for ( i = 0x42; i+4 < floppy_image_size(floppy); i += tag->sector_size + 6 ) // CRC 2 bytes + 4 bytes sector header
for ( UINT64 i = 0x42; i+4 < floppy_image_size(floppy); i += tag->sector_size + 6 ) // CRC 2 bytes + 4 bytes sector header
{
UINT8 sector, track;
floppy_image_read(floppy, &track, i+2, 1);

View File

@ -49,13 +49,13 @@ upd765_format::upd765_format(const format *_formats)
int upd765_format::find_size(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
for(int i=0; formats[i].form_factor; i++) {
const format &f = formats[i];
if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
continue;
if(size == compute_track_size(f) * f.track_count * f.head_count)
if(size == (UINT64) compute_track_size(f) * f.track_count * f.head_count)
return i;
}
return -1;

View File

@ -49,13 +49,13 @@ wd177x_format::wd177x_format(const format *_formats)
int wd177x_format::find_size(io_generic *io, UINT32 form_factor)
{
int size = io_generic_size(io);
UINT64 size = io_generic_size(io);
for(int i=0; formats[i].form_factor; i++) {
const format &f = formats[i];
if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
continue;
if(size == compute_track_size(f) * f.track_count * f.head_count)
if(size == (UINT64)compute_track_size(f) * f.track_count * f.head_count)
return i;
}
return -1;

View File

@ -368,7 +368,7 @@ INLINE void
)
{
bits64 z0, z1, z2;
int8 carry0, carry1;
uint8 carry0, carry1;
z2 = a2 + b2;
carry1 = ( z2 < a2 );
@ -424,7 +424,7 @@ INLINE void
)
{
bits64 z0, z1, z2;
int8 borrow0, borrow1;
uint8 borrow0, borrow1;
z2 = a2 - b2;
borrow1 = ( a2 < b2 );

View File

@ -475,7 +475,7 @@ ROM_END
READ32_MEMBER( beathead_state::speedup_r )
{
int result = *m_speedup_data;
UINT32 result = *m_speedup_data;
if ((space.device().safe_pcbase() & 0xfffff) == 0x006f0 && result == space.device().state().state_int(ASAP_R3))
space.device().execute().spin_until_interrupt();
return result;

View File

@ -1985,11 +1985,11 @@ WRITE16_HANDLER( hdgsp_speedup2_w )
READ16_HANDLER( rdgsp_speedup1_r )
{
harddriv_state *state = space.machine().driver_data<harddriv_state>();
int result = state->m_gsp_speedup_addr[0][offset];
UINT16 result = state->m_gsp_speedup_addr[0][offset];
/* if this address is equal to $f000, spin until something gets written */
if (&space.device() == state->m_gsp && space.device().safe_pc() == state->m_gsp_speedup_pc &&
(result & 0xff) < space.device().state().state_int(TMS34010_A1))
(UINT8)result < space.device().state().state_int(TMS34010_A1))
{
state->m_gsp_speedup_count[0]++;
space.device().execute().spin_until_interrupt();

View File

@ -215,7 +215,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state)
const UINT16* p2 = &m_helper2.pix16(y);
const UINT16* p3 = &m_helper3.pix16(y);
if (y % 2 != machine().primary_screen->frame_number() % 2)
if ((machine().primary_screen->frame_number() ^ y) & 1)
continue; /* video display is interlaced */
for (x = visarea.min_x; x <= visarea.max_x; x++)

View File

@ -835,7 +835,7 @@ WRITE8_MEMBER( tia_video_device::VBLANK_w )
{
if (data & 0x80)
{
paddle_cycles = machine().firstcpu->total_cycles();
paddle_start = machine().firstcpu->total_cycles();
}
if ( ! ( VBLANK & 0x40 ) ) {
INPT4 = 0x80;
@ -1588,8 +1588,8 @@ WRITE8_MEMBER( tia_video_device::GRP1_w )
READ8_MEMBER( tia_video_device::INPT_r )
{
UINT64 elapsed = machine().firstcpu->total_cycles() - paddle_cycles;
int input = TIA_INPUT_PORT_ALWAYS_ON;
UINT64 elapsed = machine().firstcpu->total_cycles() - paddle_start;
UINT16 input = TIA_INPUT_PORT_ALWAYS_ON;
if ( !m_read_input_port_func.isnull() )
{
input = m_read_input_port_func(offset & 3, 0xFFFF);
@ -1600,7 +1600,8 @@ READ8_MEMBER( tia_video_device::INPT_r )
if ( input == TIA_INPUT_PORT_ALWAYS_OFF )
return 0x00;
return elapsed > 76 * input ? 0x80 : 0x00;
UINT16 paddle_cycles = input * 76;
return elapsed > paddle_cycles ? 0x80 : 0x00;
}

View File

@ -117,7 +117,7 @@ private:
struct player_gfx p1gfx;
UINT64 frame_cycles;
UINT64 paddle_cycles;
UINT64 paddle_start;
int horzP0;
int horzP1;

View File

@ -104,7 +104,6 @@ typedef int running_machine;
// LED methods
#define LED_METHOD_PS2 0
#define LED_METHOD_USB 1
#define LED_METHOD_WIN9X 2
// window parameters
#define WINDOW_CLASS TEXT("LEDSample")
@ -508,18 +507,11 @@ static LRESULT handle_update_state(WPARAM wparam, LPARAM lparam)
static void output_startup(const char *commandline)
{
OSVERSIONINFO osinfo = { sizeof(OSVERSIONINFO) };
// default to PS/2, override if USB is specified as a parameter
ledmethod = LED_METHOD_PS2;
if (commandline != NULL && strcmp(commandline, "-usb") == 0)
ledmethod = LED_METHOD_USB;
// force Win9x method if we're on Win 9x
GetVersionEx(&osinfo);
if (osinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
ledmethod = LED_METHOD_WIN9X;
// output the method
switch (ledmethod)
{
@ -530,10 +522,6 @@ static void output_startup(const char *commandline)
case LED_METHOD_USB:
DEBUG_PRINTF(("Using USB method\n"));
break;
case LED_METHOD_WIN9X:
DEBUG_PRINTF(("Using Win9x method\n"));
break;
}
}
@ -653,7 +641,6 @@ static int led_get_state(void)
switch (ledmethod)
{
case LED_METHOD_WIN9X:
case LED_METHOD_USB:
{
BYTE key_states[256];
@ -704,23 +691,6 @@ static void led_set_state(int state)
switch (ledmethod)
{
case LED_METHOD_WIN9X:
{
// thanks to Lee Taylor for the original version of this code
BYTE key_states[256];
// get the current state
GetKeyboardState(&key_states[0]);
// mask states and set new states
key_states[VK_NUMLOCK] = (key_states[VK_NUMLOCK] & ~1) | ((state >> 0) & 1);
key_states[VK_CAPITAL] = (key_states[VK_CAPITAL] & ~1) | ((state >> 1) & 1);
key_states[VK_SCROLL] = (key_states[VK_SCROLL] & ~1) | ((state >> 2) & 1);
SetKeyboardState(&key_states[0]);
break;
}
case LED_METHOD_USB:
{
static const BYTE vk[3] = { VK_NUMLOCK, VK_CAPITAL, VK_SCROLL };

View File

@ -44,8 +44,10 @@
#ifdef _MSC_VER
#include <assert.h>
#include <malloc.h>
#if _MSC_VER < 1800
#define alloca _alloca
#define round(x) floor((x) + 0.5)
#endif
#if _MSC_VER < 1500
#define vsnprintf _vsnprintf
#endif

View File

@ -400,7 +400,7 @@ public:
virtual UINT32 read_data(void *_dest, UINT64 offset, UINT32 length)
{
UINT8 *dest = reinterpret_cast<UINT8 *>(_dest);
int interlace_factor = m_info.interlaced ? 2 : 1;
UINT8 interlace_factor = m_info.interlaced ? 2 : 1;
UINT32 length_remaining = length;
// iterate over frames
@ -1497,7 +1497,7 @@ static void do_verify(parameters_t &params)
progress(false, "Verifying, %.1f%% complete... \r", 100.0 * double(offset) / double(input_chd.logical_bytes()));
// determine how much to read
UINT32 bytes_to_read = MIN(buffer.count(), input_chd.logical_bytes() - offset);
UINT32 bytes_to_read = MIN((UINT32)buffer.count(), input_chd.logical_bytes() - offset);
chd_error err = input_chd.read_bytes(offset, buffer, bytes_to_read);
if (err != CHDERR_NONE)
report_error(1, "Error reading CHD file (%s): %s", params.find(OPTION_INPUT)->cstr(), chd_file::error_string(err));
@ -2213,7 +2213,7 @@ static void do_extract_raw(parameters_t &params)
progress(false, "Extracting, %.1f%% complete... \r", 100.0 * double(offset - input_start) / double(input_end - input_start));
// determine how much to read
UINT32 bytes_to_read = MIN(buffer.count(), input_end - offset);
UINT32 bytes_to_read = MIN((UINT32)buffer.count(), input_end - offset);
chd_error err = input_chd.read_bytes(offset, buffer, bytes_to_read);
if (err != CHDERR_NONE)
report_error(1, "Error reading CHD file (%s): %s", params.find(OPTION_INPUT)->cstr(), chd_file::error_string(err));
@ -2475,7 +2475,7 @@ static void do_extract_ld(parameters_t &params)
report_error(1, "Improperly formatted A/V metadata found");
fps_times_1million = fps * 1000000 + fpsfrac;
}
int interlace_factor = interlaced ? 2 : 1;
UINT8 interlace_factor = interlaced ? 2 : 1;
// determine key parameters and validate
max_samples_per_frame = (UINT64(rate) * 1000000 + fps_times_1million - 1) / fps_times_1million;
@ -2543,9 +2543,9 @@ static void do_extract_ld(parameters_t &params)
// iterate over frames
bitmap_yuy16 fullbitmap(width, height * interlace_factor);
for (int framenum = input_start; framenum < input_end; framenum++)
for (UINT64 framenum = input_start; framenum < input_end; framenum++)
{
progress(framenum == 0, "Extracting, %.1f%% complete... \r", 100.0 * double(framenum - input_start) / double(input_end - input_start));
progress(framenum == input_start, "Extracting, %.1f%% complete... \r", 100.0 * double(framenum - input_start) / double(input_end - input_start));
// set up the fake bitmap for this frame
avconfig.video.wrap(&fullbitmap.pix(framenum % interlace_factor), fullbitmap.width(), fullbitmap.height() / interlace_factor, fullbitmap.rowpixels() * interlace_factor);
@ -2565,7 +2565,7 @@ static void do_extract_ld(parameters_t &params)
}
// write video
if (framenum % interlace_factor == interlace_factor - 1)
if ((framenum + 1) % interlace_factor == 0)
{
avi_error avierr = avi_append_video_frame(output_file, fullbitmap);
if (avierr != AVIERR_NONE)