diff --git a/src/disc.c b/src/disc.c index 32250b8d5..372a88cd7 100644 --- a/src/disc.c +++ b/src/disc.c @@ -14,7 +14,7 @@ #include "fdd.h" #include "timer.h" -int64_t disc_poll_time[2] = { 16, 16 }; +int disc_poll_time[2] = { 16, 16 }; int disc_track[2]; int writeprot[2], fwriteprot[2]; @@ -39,7 +39,7 @@ int drive_empty[2] = {1, 1}; int disc_changed[2]; int motorspin; -int64_t motoron[2]; +int motoron[2]; int fdc_indexcount = 52; @@ -190,11 +190,11 @@ void disc_poll(int drive) { if (drive > 1) { - disc_poll_time[drive] += (int64_t) (32.0 * TIMER_USEC); + disc_poll_time[drive] += (int) (32.0 * TIMER_USEC); return; } - disc_poll_time[drive] += (int64_t) disc_real_period(drive); + disc_poll_time[drive] += (int) disc_real_period(drive); if (drives[drive].poll) drives[drive].poll(drive); diff --git a/src/disc.h b/src/disc.h index c60ce30da..5525c2635 100644 --- a/src/disc.h +++ b/src/disc.h @@ -39,7 +39,7 @@ void disc_stop(int drive); int disc_empty(int drive); void disc_set_rate(int drive, int drvden, int rate); extern int disc_time; -extern int64_t disc_poll_time[2]; +extern int disc_poll_time[2]; void fdc_callback(); int fdc_data(uint8_t dat); @@ -57,7 +57,7 @@ extern int fdc_ready; extern int fdc_indexcount;*/ extern int motorspin; -extern int64_t motoron[2]; +extern int motoron[2]; extern int swwp; extern int disable_write; diff --git a/src/disc_86f.c b/src/disc_86f.c index 63f3e85d0..187e8a711 100644 --- a/src/disc_86f.c +++ b/src/disc_86f.c @@ -1986,6 +1986,11 @@ void d86f_poll(int drive) { if (!d86f_can_read_address(drive)) { + /* if (fdc_get_bitcell_period() != d86f_get_bitcell_period(drive)) pclog("Bitcell period mismatch\n"); + if (!fdd_can_read_medium(drive ^ fdd_swap)) pclog("Drive can not read medium (hole = %01X)\n", d86f_hole(drive)); + if (fdc_is_mfm() != d86f_is_mfm(drive)) pclog("Encoding mismatch\n"); + if (d86f_get_encoding(drive) > 1) pclog("Image encoding (%s) not FM or MFM\n", (d86f_get_encoding(drive) == 2) ? "M2FM" : "GCR"); */ + d86f[drive].state = STATE_SECTOR_NOT_FOUND; } } @@ -2114,7 +2119,7 @@ void d86f_poll(int drive) if ((d86f[drive].index_count == 2) && (d86f[drive].state != STATE_IDLE)) { - // pclog("[State: %02X] [Side %i] Sector not found (%i != %i?) (%02X) (%08X)\n", d86f[drive].state, side, fdc_get_bitcell_period(), d86f_get_bitcell_period(drive), d86f_handler[drive].side_flags(drive), d86f[drive].req_sector.dword); + // pclog("[State: %02X] [Side %i] Sector not found (%i != %i?) (%02X) (%08X) (%i)\n", d86f[drive].state, side, fdc_get_bitcell_period(), d86f_get_bitcell_period(drive), d86f_handler[drive].side_flags(drive), d86f[drive].req_sector.dword, d86f_handler[drive].get_raw_size(drive, side)); d86f[drive].state = STATE_IDLE; fdc_notfound(); } diff --git a/src/disc_fdi.c b/src/disc_fdi.c index 4f907e93e..1f9be5950 100644 --- a/src/disc_fdi.c +++ b/src/disc_fdi.c @@ -34,11 +34,14 @@ uint16_t fdi_disk_flags(int drive) { case 500: temp_disk_flags |= 2; + break; case 300: case 250: temp_disk_flags |= 0; + break; case 1000: temp_disk_flags |= 4; + break; default: temp_disk_flags |= 0; } @@ -61,12 +64,16 @@ uint16_t fdi_side_flags(int drive) { case 500: temp_side_flags = 0; + break; case 300: temp_side_flags = 1; + break; case 250: temp_side_flags = 2; + break; case 1000: temp_side_flags = 3; + break; default: temp_side_flags = 2; } @@ -81,30 +88,53 @@ uint16_t fdi_side_flags(int drive) return temp_side_flags; } +int fdi_density() +{ + if (!fdc_is_mfm()) + { + return 0; + } + + switch (fdc_get_bit_rate()) + { + case 0: + return 2; + case 1: + return 1; + case 2: + return 1; + case 3: + case 5: + return 3; + default: + return 1; + } +} + int32_t fdi_extra_bit_cells(int drive, int side) { int density = 0; int raw_size = 0; + density = fdi_density(); + switch (fdc_get_bit_rate()) { case 0: raw_size = (fdd_getrpm(drive ^ fdd_swap) == 300) ? 200000 : 166666; - density = 2; + break; case 1: raw_size = (fdd_getrpm(drive ^ fdd_swap) == 300) ? 120000 : 100000; - density = 1; + break; case 2: raw_size = (fdd_getrpm(drive ^ fdd_swap) == 300) ? 100000 : 83333; - density = 1; case 3: case 5: raw_size = (fdd_getrpm(drive ^ fdd_swap) == 300) ? 400000 : 333333; - density = 3; + break; default: raw_size = (fdd_getrpm(drive ^ fdd_swap) == 300) ? 100000 : 83333; - density = 1; } return (fdi[drive].tracklen[side][density] - raw_size); @@ -148,7 +178,7 @@ void fdi_read_revolution(int drive) { int c = fdi2raw_loadtrack(fdi[drive].h, (uint16_t *)fdi[drive].track_data[side][density], (uint16_t *)fdi[drive].track_timing[side][density], - track * fdi[drive].sides, + (track * fdi[drive].sides) + side, &fdi[drive].tracklen[side][density], &fdi[drive].trackindex[side][density], NULL, density); // pclog("Side 0 [%i]: len %i, index %i\n", density, fdi[drive].tracklen[side][density], fdi[drive].trackindex[side][density]); @@ -168,20 +198,7 @@ uint32_t fdi_index_hole_pos(int drive, int side) { int density; - switch (fdc_get_bit_rate()) - { - case 0: - density = 2; - case 1: - density = 1; - case 2: - density = 1; - case 3: - case 5: - density = 3; - default: - density = 1; - } + density = fdi_density(); return fdi[drive].trackindex[side][density]; } @@ -190,20 +207,7 @@ uint32_t fdi_get_raw_size(int drive, int side) { int density; - switch (fdc_get_bit_rate()) - { - case 0: - density = 2; - case 1: - density = 1; - case 2: - density = 1; - case 3: - case 5: - density = 3; - default: - density = 1; - } + density = fdi_density(); return fdi[drive].tracklen[side][density]; } @@ -212,17 +216,7 @@ uint16_t* fdi_encoded_data(int drive, int side) { int density = 0; - if (fdc_get_bit_rate() == 2) - density = 1; - if (fdc_get_bit_rate() == 0) - density = 2; - if (fdc_get_bit_rate() == 3) - density = 3; - - if (!fdc_is_mfm()) - { - density = 0; - } + density = fdi_density(); return (uint16_t *)fdi[drive].track_data[side][density]; } @@ -294,12 +288,12 @@ void fdi_seek(int drive, int track) { if (fdd_doublestep_40(drive)) { - if (fdi[drive].lasttrack < 43) + if (fdi2raw_get_tpi(fdi[drive].h) < 2) { track /= 2; } - // pclog("fdi_seek(): %i %i\n", fdi[drive].lasttrack, track); } + // pclog("fdi_seek(): %i %i (%i)\n", fdi[drive].lasttrack, track); if (!fdi[drive].f) return; diff --git a/src/fdc.c b/src/fdc.c index e1bcfefd5..5f16d84f4 100644 --- a/src/fdc.c +++ b/src/fdc.c @@ -12,7 +12,7 @@ #include "pic.h" #include "timer.h" -extern int64_t motoron[2]; +extern int motoron[2]; int ui_writeprot[2] = {0, 0}; @@ -57,7 +57,7 @@ typedef struct FDC int pcjr, ps1; - int64_t watchdog_timer; + int watchdog_timer; int watchdog_count; int data_ready; diff --git a/src/fdi2raw.c b/src/fdi2raw.c index 1b921717b..a82af5230 100644 --- a/src/fdi2raw.c +++ b/src/fdi2raw.c @@ -1996,6 +1996,11 @@ int fdi2raw_get_write_protect (FDI *fdi) return fdi->write_protect; } +int fdi2raw_get_tpi (FDI *fdi) +{ + return fdi->header[148]; +} + FDI *fdi2raw_header(FILE *f) { int i, offset, oldseek; diff --git a/src/fdi2raw.h b/src/fdi2raw.h index 5db4e285e..207dabd7e 100644 --- a/src/fdi2raw.h +++ b/src/fdi2raw.h @@ -29,6 +29,7 @@ extern int fdi2raw_get_type (FDI *); extern int fdi2raw_get_bit_rate (FDI *); extern int fdi2raw_get_rotation (FDI *); extern int fdi2raw_get_write_protect (FDI *); +extern int fdi2raw_get_tpi (FDI *); #ifdef __cplusplus } diff --git a/src/gameport.c b/src/gameport.c index b979f84fe..84fb021e3 100644 --- a/src/gameport.c +++ b/src/gameport.c @@ -88,7 +88,7 @@ char *joystick_get_pov_name(int joystick, int id) typedef struct gameport_axis_t { - int64_t count; + int count; int axis_nr; struct gameport_t *gameport; } gameport_axis_t; diff --git a/src/ibm.h b/src/ibm.h index 14e295a54..9e5edda49 100644 --- a/src/ibm.h +++ b/src/ibm.h @@ -342,7 +342,7 @@ extern int pic_intpending; int intcount; -int64_t disctime; +int disctime; char discfns[2][256]; int driveempty[2]; @@ -502,14 +502,14 @@ void writeega_chain4(uint32_t addr, uint8_t val); extern uint32_t svgarbank,svgawbank; /*Serial*/ -extern int64_t mousedelay; +extern int mousedelay; /*Sound*/ uint8_t spkstat; float spktime; -int64_t rtctime; +int rtctime; int soundtime,gustime,gustime2,vidtime; int ppispeakon; float CGACONST; @@ -563,13 +563,13 @@ uint64_t hdt[128][3]; int image_is_hdi(const char *s); /*Keyboard*/ -int64_t keybsenddelay; +int keybsenddelay; /*CD-ROM*/ extern int cdrom_drive; extern int old_cdrom_drive; -extern int64_t idecallback[3]; +extern int idecallback[3]; extern int cdrom_enabled; #define CD_STATUS_EMPTY 0 diff --git a/src/ide.c b/src/ide.c index 288906a6c..aa23f5652 100644 --- a/src/ide.c +++ b/src/ide.c @@ -355,7 +355,7 @@ static void callnonreadcd(IDE *ide); static void callreadcd(IDE *ide); static void atapicommand(int ide_board); -int64_t idecallback[3] = {0, 0, 0}; +int idecallback[3] = {0, 0, 0}; int cur_ide[3]; diff --git a/src/ide.h b/src/ide.h index e9f8d1934..38dd8e822 100644 --- a/src/ide.h +++ b/src/ide.h @@ -54,7 +54,7 @@ void atapi_insert_cdrom(); extern int ideboard; -extern int64_t idecallback[3]; +extern int idecallback[3]; extern char ide_fn[4][512]; diff --git a/src/joystick_ch_flightstick_pro.c b/src/joystick_ch_flightstick_pro.c index f2dfebd7c..3ced21653 100644 --- a/src/joystick_ch_flightstick_pro.c +++ b/src/joystick_ch_flightstick_pro.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/joystick_ch_flightstick_pro.h b/src/joystick_ch_flightstick_pro.h index c8d4c04d9..291cb0bfa 100644 --- a/src/joystick_ch_flightstick_pro.h +++ b/src/joystick_ch_flightstick_pro.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern joystick_if_t joystick_ch_flightstick_pro; diff --git a/src/joystick_standard.c b/src/joystick_standard.c index e56a99422..6f961a896 100644 --- a/src/joystick_standard.c +++ b/src/joystick_standard.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/joystick_standard.h b/src/joystick_standard.h index f31ab0161..7150058a8 100644 --- a/src/joystick_standard.h +++ b/src/joystick_standard.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern joystick_if_t joystick_standard; extern joystick_if_t joystick_standard_4button; extern joystick_if_t joystick_standard_6button; diff --git a/src/joystick_sw_pad.c b/src/joystick_sw_pad.c index 4a043cbbc..007dd5492 100644 --- a/src/joystick_sw_pad.c +++ b/src/joystick_sw_pad.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ /*Sidewinder game pad notes : - Write to 0x201 starts packet transfer (5*N or 15*N bits) @@ -33,13 +30,13 @@ typedef struct { - int64_t poll_time; + int poll_time; int poll_left; int poll_clock; uint64_t poll_data; int poll_mode; - int64_t trigger_time; + int trigger_time; int data_mode; } sw_data; diff --git a/src/joystick_sw_pad.h b/src/joystick_sw_pad.h index 0674d2389..ba5ceb680 100644 --- a/src/joystick_sw_pad.h +++ b/src/joystick_sw_pad.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern joystick_if_t joystick_sw_pad; diff --git a/src/joystick_tm_fcs.c b/src/joystick_tm_fcs.c index a30a81422..02c153e49 100644 --- a/src/joystick_tm_fcs.c +++ b/src/joystick_tm_fcs.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/joystick_tm_fcs.h b/src/joystick_tm_fcs.h index 0fc4d4077..9759cf897 100644 --- a/src/joystick_tm_fcs.h +++ b/src/joystick_tm_fcs.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern joystick_if_t joystick_tm_fcs; diff --git a/src/model.c b/src/model.c index d5e184750..47cc68a83 100644 --- a/src/model.c +++ b/src/model.c @@ -488,7 +488,7 @@ void at_advanced_common_init() pci_init(PCI_CONFIG_TYPE_1, 0xd, 0x10); i430fx_init(); piix_init(7); - pc87306_init(); + // pc87306_init(); intel_endeavor_init(); if (cdrom_channel >= 4) ide_ter_init(); } diff --git a/src/mouse.h b/src/mouse.h index 4bc67c489..5d55c3121 100644 --- a/src/mouse.h +++ b/src/mouse.h @@ -4,5 +4,5 @@ extern void (*mouse_poll)(int x, int y, int b); extern int mousepos; -extern int64_t mousedelay; +extern int mousedelay; diff --git a/src/nethandler.c b/src/nethandler.c index 872f8235b..c1ffafa67 100644 --- a/src/nethandler.c +++ b/src/nethandler.c @@ -72,7 +72,7 @@ static struct static int vlan_handlers_num; -static int64_t vlan_poller_time = 0; +static int vlan_poller_time = 0; void vlan_handler(void (*poller)(void *p), void *p) //void vlan_handler(int (*can_receive)(void *p), void (*receive)(void *p, const uint8_t *buf, int size), void *p) diff --git a/src/nvr.c b/src/nvr.c index 2f760d7ea..1c9082657 100644 --- a/src/nvr.c +++ b/src/nvr.c @@ -13,7 +13,7 @@ int nvraddr; int nvr_dosave = 0; -static int64_t nvr_onesec_time = 0, nvr_onesec_cnt = 0; +static int nvr_onesec_time = 0, nvr_onesec_cnt = 0; void getnvrtime() { @@ -59,7 +59,7 @@ int nvr_check_alarm(int nvraddr) return (nvrram[nvraddr + 1] == nvrram[nvraddr] || (nvrram[nvraddr + 1] & ALARM_DONTCARE) == ALARM_DONTCARE); } -int64_t nvr_update_end_count = 0; +int nvr_update_end_count = 0; void nvr_update_end(void *p) { diff --git a/src/pc87306.c b/src/pc87306.c index 875014190..fe04a9827 100644 --- a/src/pc87306.c +++ b/src/pc87306.c @@ -251,6 +251,7 @@ process_value: break; case 9: // pclog("Setting DENSEL polarity to: %i (before: %i)\n", (val & 0x40 ? 1 : 0), fdc_get_densel_polarity()); + fdc_update_enh_mode((val & 4) ? 1 : 0); fdc_update_densel_polarity((val & 0x40) ? 1 : 0); break; case 0xF: @@ -309,6 +310,7 @@ void pc87306_init() { pc87306_regs[0] = 0xF; pc87306_regs[1] = 0x11; + pc87306_regs[3] = 2; pc87306_regs[5] = 0xD; pc87306_regs[8] = 0x70; pc87306_regs[9] = 0xFF; @@ -321,6 +323,7 @@ void pc87306_init() 1 = Default, 300 rpm @ 500,300,250,1000 kbps for 3.5" */ fdc_update_is_nsc(1); + fdc_update_enh_mode(0); fdc_update_densel_polarity(1); fdc_update_max_track(85); fdd_swap = 0; diff --git a/src/serial.c b/src/serial.c index 6b50c5a0d..9ea1b4f6b 100644 --- a/src/serial.c +++ b/src/serial.c @@ -19,7 +19,7 @@ enum SERIAL serial1, serial2; int mousepos=-1; -int64_t mousedelay; +int mousedelay; void serial_reset() { diff --git a/src/sound.c b/src/sound.c index 68b471fbe..1fedb4c79 100644 --- a/src/sound.c +++ b/src/sound.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker, Tenshi - see COPYING for more details -*/ #include #include #include "ibm.h" @@ -41,7 +38,6 @@ static SOUND_CARD sound_cards[] = {"Sound Blaster Pro v2", &sb_pro_v2_device}, {"Sound Blaster 16", &sb_16_device}, {"Sound Blaster AWE32", &sb_awe32_device}, - // {"Sound Blaster AWE64 PCI",&sb_awe64pci_device}, {"Adlib Gold", &adgold_device}, {"Windows Sound System", &wss_device}, {"Pro Audio Spectrum 16", &pas16_device}, @@ -88,7 +84,7 @@ static struct static int sound_handlers_num; -static int64_t sound_poll_time = 0, sound_get_buffer_time = 0, sound_poll_latch; +static int sound_poll_time = 0, sound_get_buffer_time = 0, sound_poll_latch; int sound_pos_global = 0; int soundon = 1; diff --git a/src/sound.h b/src/sound.h index 5d9f192ac..352d0cf41 100644 --- a/src/sound.h +++ b/src/sound.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include "timer.h" void sound_add_handler(void (*get_buffer)(int32_t *buffer, int len, void *p), void *p); diff --git a/src/sound_ad1848.c b/src/sound_ad1848.c index 287dc559f..9dd339bce 100644 --- a/src/sound_ad1848.c +++ b/src/sound_ad1848.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ /*PCem v0.8 by Tom Walker AD1848 CODEC emulation (Windows Sound System compatible)*/ diff --git a/src/sound_ad1848.h b/src/sound_ad1848.h index 9c9ae5e56..b97e1e499 100644 --- a/src/sound_ad1848.h +++ b/src/sound_ad1848.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include "timer.h" typedef struct ad1848_t @@ -16,13 +13,13 @@ typedef struct ad1848_t int16_t out_l, out_r; - int64_t enable; + int enable; int irq, dma; int freq; - int64_t timer_count, timer_latch; + int timer_count, timer_latch; int16_t buffer[SOUNDBUFLEN * 2]; int pos; diff --git a/src/sound_adlib.c b/src/sound_adlib.c index a673dfe4c..f4e24bb44 100644 --- a/src/sound_adlib.c +++ b/src/sound_adlib.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/sound_adlib.h b/src/sound_adlib.h index be44345ec..c8db01482 100644 --- a/src/sound_adlib.h +++ b/src/sound_adlib.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t adlib_device; diff --git a/src/sound_adlibgold.c b/src/sound_adlibgold.c index b56cc4ee1..a0f0956a9 100644 --- a/src/sound_adlibgold.c +++ b/src/sound_adlibgold.c @@ -1,7 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ -#include #include #include #include "ibm.h" @@ -39,16 +35,16 @@ typedef struct adgold_t int16_t adgold_mma_out[2]; int adgold_mma_intpos[2]; - int64_t adgold_mma_timer_count; + int adgold_mma_timer_count; struct { - int64_t timer0_latch, timer0_count; - int64_t timerbase_latch, timerbase_count; - int64_t timer1_latch, timer1_count; - int64_t timer2_latch, timer2_count, timer2_read; + int timer0_latch, timer0_count; + int timerbase_latch, timerbase_count; + int timer1_latch, timer1_count; + int timer2_latch, timer2_count, timer2_read; - int64_t voice_count[2], voice_latch[2]; + int voice_count[2], voice_latch[2]; } adgold_mma; opl_t opl; @@ -790,7 +786,7 @@ void *adgold_init() for (; c >= 0; c--) attenuation[c] = 0; - f = romfopen(nvr_concat("adgold.bin"), "rb"); + f = romfopen("nvr/adgold.bin", "rb"); if (f) { fread(adgold->adgold_eeprom, 0x18, 1, f); @@ -830,7 +826,7 @@ void adgold_close(void *p) FILE *f; adgold_t *adgold = (adgold_t *)p; - f = romfopen(nvr_concat("adgold.bin"), "wb"); + f = romfopen("nvr/adgold.bin", "wb"); if (f) { fwrite(adgold->adgold_eeprom, 0x18, 1, f); diff --git a/src/sound_adlibgold.h b/src/sound_adlibgold.h index b255435dd..b952aaf03 100644 --- a/src/sound_adlibgold.h +++ b/src/sound_adlibgold.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t adgold_device; diff --git a/src/sound_cms.c b/src/sound_cms.c index 51c04e701..f38f46f9c 100644 --- a/src/sound_cms.c +++ b/src/sound_cms.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include #include "ibm.h" diff --git a/src/sound_cms.h b/src/sound_cms.h index 43030ce94..d5795cc0f 100644 --- a/src/sound_cms.h +++ b/src/sound_cms.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t cms_device; diff --git a/src/sound_emu8k.c b/src/sound_emu8k.c index 165ea45db..6274b8839 100644 --- a/src/sound_emu8k.c +++ b/src/sound_emu8k.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ /*12log2(r) * 4096 freq = 2^((in - 0xe000) / 4096)*/ diff --git a/src/sound_emu8k.h b/src/sound_emu8k.h index 0f7213d94..79478ad56 100644 --- a/src/sound_emu8k.h +++ b/src/sound_emu8k.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ typedef struct emu8k_t { struct diff --git a/src/sound_gus.c b/src/sound_gus.c index 8a6511834..7158c7203 100644 --- a/src/sound_gus.c +++ b/src/sound_gus.c @@ -1,7 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ -#include #include #include #include @@ -46,13 +42,13 @@ typedef struct gus_t int16_t buffer[2][SOUNDBUFLEN]; int pos; - int64_t samp_timer, samp_latch; + int samp_timer, samp_latch; uint8_t *ram; int irqnext; - int64_t timer_1, timer_2; + int timer_1, timer_2; int irq, dma, irq_midi; int latch_enable; @@ -531,7 +527,7 @@ gus->curx[gus->voice]=(gus->curx[gus->voice]&0xFFF8000)|((val&0x7F)<<8); if (gus->latch_enable == 2) { gus->irq = gus_irqs[val & 7]; - + if (val & 0x40) { if (gus->irq == -1) @@ -957,8 +953,8 @@ void gus_poll_wave(void *p) { gus->ctrl[d] |= 1; gus->cur[d] = (gus->ctrl[d] & 0x40) ? gus->end[d] : gus->start[d]; - } - + } + if ((gus->ctrl[d] & 0x20) && !gus->waveirqs[d]) { gus->waveirqs[d] = 1; @@ -974,6 +970,7 @@ void gus_poll_wave(void *p) if (gus->cur[d] >= gus->end[d]) { int diff = gus->cur[d] - gus->end[d]; + if (gus->ctrl[d]&8) { if (gus->ctrl[d]&0x10) gus->ctrl[d]^=0x40; @@ -983,7 +980,8 @@ void gus_poll_wave(void *p) { gus->ctrl[d] |= 1; gus->cur[d] = (gus->ctrl[d] & 0x40) ? gus->end[d] : gus->start[d]; - } + } + if ((gus->ctrl[d] & 0x20) && !gus->waveirqs[d]) { gus->waveirqs[d] = 1; diff --git a/src/sound_gus.h b/src/sound_gus.h index 94ccb66f9..6c124f9f8 100644 --- a/src/sound_gus.h +++ b/src/sound_gus.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t gus_device; diff --git a/src/sound_mpu401_uart.c b/src/sound_mpu401_uart.c index 417ff6bfc..3ff22de61 100644 --- a/src/sound_mpu401_uart.c +++ b/src/sound_mpu401_uart.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include "ibm.h" #include "io.h" #include "sound_mpu401_uart.h" @@ -58,13 +55,3 @@ void mpu401_uart_init(mpu401_uart_t *mpu, uint16_t addr) io_sethandler(addr, 0x0002, mpu401_uart_read, NULL, NULL, mpu401_uart_write, NULL, NULL, mpu); } - -void mpu401_uart_set(mpu401_uart_t *mpu, uint16_t addr) -{ - io_sethandler(addr, 0x0002, mpu401_uart_read, NULL, NULL, mpu401_uart_write, NULL, NULL, mpu); -} - -void mpu401_uart_remove(mpu401_uart_t *mpu, uint16_t addr) -{ - io_sethandler(addr, 0x0002, mpu401_uart_read, NULL, NULL, mpu401_uart_write, NULL, NULL, mpu); -} diff --git a/src/sound_mpu401_uart.h b/src/sound_mpu401_uart.h index 34741cc99..893c53fc4 100644 --- a/src/sound_mpu401_uart.h +++ b/src/sound_mpu401_uart.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ typedef struct mpu401_uart_t { uint8_t status; @@ -10,5 +7,3 @@ typedef struct mpu401_uart_t } mpu401_uart_t; void mpu401_uart_init(mpu401_uart_t *mpu, uint16_t addr); -void mpu401_uart_set(mpu401_uart_t *mpu, uint16_t addr); -void mpu401_uart_remove(mpu401_uart_t *mpu, uint16_t addr); diff --git a/src/sound_opl.h b/src/sound_opl.h index e99f716f9..14df05b9d 100644 --- a/src/sound_opl.h +++ b/src/sound_opl.h @@ -5,8 +5,8 @@ typedef struct opl_t { int chip_nr[2]; - int64_t timers[2][2]; - int64_t timers_enable[2][2]; + int timers[2][2]; + int timers_enable[2][2]; int16_t filtbuf[2]; diff --git a/src/sound_pas16.c b/src/sound_pas16.c index 14366eb88..cc5a23538 100644 --- a/src/sound_pas16.c +++ b/src/sound_pas16.c @@ -1,7 +1,3 @@ -/* Copyright holders: Sarah Walker, SA1988 - see COPYING for more details -*/ -#include #include #include "ibm.h" @@ -12,7 +8,6 @@ #include "pic.h" #include "pit.h" #include "sound.h" -#include "sound_mpu401_uart.h" #include "sound_opl.h" #include "sound_pas16.h" #include "sound_sb_dsp.h" @@ -122,8 +117,8 @@ typedef struct pas16_t struct { - uint64_t l[3]; - int64_t c[3]; + uint32_t l[3]; + int c[3]; uint8_t m[3]; uint8_t ctrl, ctrls[2]; int wp, rm[3], wm[3]; @@ -131,11 +126,10 @@ typedef struct pas16_t int thit[3]; int delay[3]; int rereadlatch[3]; - int64_t enable[3]; + int enable[3]; } pit; opl_t opl; - mpu401_uart_t mpu; sb_dsp_t dsp; int16_t pcm_buffer[2][SOUNDBUFLEN]; @@ -147,7 +141,8 @@ static uint8_t pas16_pit_in(uint16_t port, void *priv); static void pas16_pit_out(uint16_t port, uint8_t val, void *priv); static void pas16_update(pas16_t *pas16); -static int pas16_dma = 0, pas16_irq = 0; +static int pas16_dmas[8] = {4, 1, 2, 3, 0, 5, 6, 7}; +static int pas16_irqs[16] = {0, 2, 3, 4, 5, 6, 7, 10, 11, 12, 14, 15, 0, 0, 0, 0}; static int pas16_sb_irqs[8] = {0, 2, 3, 5, 7, 10, 11, 12}; static int pas16_sb_dmas[8] = {0, 1, 2, 3}; @@ -178,11 +173,12 @@ static uint8_t pas16_in(uint16_t port, void *p) { pas16_t *pas16 = (pas16_t *)p; uint8_t temp; - - switch (port) +/* if (CS == 0xCA53 && pc == 0x3AFC) + fatal("here");*/ + switch ((port - pas16->base) + 0x388) { case 0x388: case 0x389: case 0x38a: case 0x38b: - temp = opl3_read(port, &pas16->opl); + temp = opl3_read((port - pas16->base) + 0x388, &pas16->opl); break; case 0xb88: @@ -210,7 +206,7 @@ static uint8_t pas16_in(uint16_t port, void *p) break; case 0x2789: /*Board revision*/ - temp = 1; + temp = 0; break; case 0x7f89: @@ -259,23 +255,32 @@ static uint8_t pas16_in(uint16_t port, void *p) break; case 0xff88: /*Board model*/ - temp = 3; /*PAS16*/ + temp = 4; /*PAS16*/ break; case 0xff8b: /*Master mode read*/ temp = 0x20 | 0x10 | 0x01; /*AT bus, XT/AT timing*/ break; } +/* if (port != 0x388 && port != 0x389 && port != 0xb8b) */pclog("pas16_in : port %04X return %02X %04X:%04X\n", port, temp, CS,cpu_state.pc); +/* if (CS == 0x1FF4 && pc == 0x0585) + { + if (output) + fatal("here"); + output = 3; + }*/ return temp; } static void pas16_out(uint16_t port, uint8_t val, void *p) { pas16_t *pas16 = (pas16_t *)p; - pclog("pas16_out : port %04X val %02X %04X:%04X\n", port, val, CS,cpu_state.pc); - switch (port) +/* if (port != 0x388 && port != 0x389) */pclog("pas16_out : port %04X val %02X %04X:%04X\n", port, val, CS,cpu_state.pc); +/* if (CS == 0x369 && pc == 0x2AC5) + fatal("here\n");*/ + switch ((port - pas16->base) + 0x388) { case 0x388: case 0x389: case 0x38a: case 0x38b: - opl3_write(port, val, &pas16->opl); + opl3_write((port - pas16->base) + 0x388, val, &pas16->opl); break; case 0xb88: @@ -283,8 +288,8 @@ static void pas16_out(uint16_t port, uint8_t val, void *p) break; case 0xb89: - pas16_update(pas16); pas16->irq_stat &= ~val; +// pas16_update_irqs(); break; case 0xb8a: @@ -294,6 +299,7 @@ static void pas16_out(uint16_t port, uint8_t val, void *p) case 0xb8b: pas16->irq_ena = val; +// pas16_update_irqs(); break; case 0xf88: @@ -305,6 +311,8 @@ static void pas16_out(uint16_t port, uint8_t val, void *p) pas16->pcm_dat = (pas16->pcm_dat & 0x00ff) | (val << 8); break; case 0xf8a: + if ((val & PAS16_PCM_ENA) && !(pas16->pcm_ctrl & PAS16_PCM_ENA)) /*Guess*/ + pas16->stereo_lr = 0; pas16->pcm_ctrl = val; break; @@ -334,11 +342,13 @@ static void pas16_out(uint16_t port, uint8_t val, void *p) break; case 0xf389: pas16->io_conf_2 = val; - pas16->dma = pas16_dma; + pas16->dma = pas16_dmas[val & 0x7]; + pclog("pas16_out : set PAS DMA %i\n", pas16->dma); break; case 0xf38a: pas16->io_conf_3 = val; - pas16->irq = pas16_irq; + pas16->irq = pas16_irqs[val & 0xf]; + pclog("pas16_out : set PAS IRQ %i\n", pas16->irq); break; case 0xf38b: pas16->io_conf_4 = val; @@ -361,18 +371,20 @@ static void pas16_out(uint16_t port, uint8_t val, void *p) pas16->sb_irqdma = val; sb_dsp_setirq(&pas16->dsp, pas16_sb_irqs[(val >> 3) & 7]); sb_dsp_setdma8(&pas16->dsp, pas16_sb_dmas[(val >> 6) & 3]); - pclog("pas16_out : set SB IRQ %i DMA %i\n", pas16_sb_irqs[(val >> 3) & 7], pas16_sb_dmas[(val >> 6) & 3]); + pclog("pas16_out : set SB IRQ %i DMA %i\n", pas16_sb_irqs[(val >> 3) & 7], pas16_sb_dmas[(val >> 6) & 3]); break; - case 0x9a01: - pas16->base = val << 2; - pclog("pas16_out : PAS16 base now at %04X\n", pas16->base); - break; - default: pclog("pas16_out : unknown %04X\n", port); - break; } + if (cpu_state.pc == 0x80048CF3) + { + if (output) + fatal("here\n"); + output = 3; + } +/* if (CS == 0x1FF4 && pc == 0x0431) + output = 3;*/ } static void pas16_pit_out(uint16_t port, uint8_t val, void *p) @@ -480,7 +492,7 @@ static uint8_t pas16_pit_in(uint16_t port, void *p) pas16_t *pas16 = (pas16_t *)p; uint8_t temp; int t = port & 3; - printf("Read PIT %04X ",port); +// printf("Read PIT %04X ",addr); switch (port & 3) { case 0: case 1: case 2: /*Timers*/ @@ -623,58 +635,54 @@ static void pas16_pcm_poll(void *p) pclog("pas16_pcm_poll : cause IRQ %i %02X\n", pas16->irq, 1 << pas16->irq); picint(1 << pas16->irq); } - else - picintc(1 << pas16->irq); } } } -static void pas16_io_remove(pas16_t *pas16) +static void pas16_out_base(uint16_t port, uint8_t val, void *p) { - io_removehandler(0x0388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x0788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x0b88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x0f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x1388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x1788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x2788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x7f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x8388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xbf88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xe388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xe788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xeb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xef88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xf388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xf788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xfb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0xff88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_removehandler(0x9a01, 0x0004, NULL, NULL, NULL, pas16_out, NULL, NULL, pas16); -} + pas16_t *pas16 = (pas16_t *)p; -static void pas16_io_set(pas16_t *pas16) -{ - pas16_io_remove(pas16); - - io_sethandler(0x0388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x0788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x0b88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x0f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x1388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x1788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x2788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x7f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x8388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xbf88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xe388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xe788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xeb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xef88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xf388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xf788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xfb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0xff88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); - io_sethandler(0x9a01, 0x0004, NULL, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x0388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x0788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x0b88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x0f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x1388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x1788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x2788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x7f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0x8388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xbf88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xe388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xe788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xeb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xef88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xf388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xf788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xfb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_removehandler((pas16->base - 0x388) + 0xff88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + + pas16->base = val << 2; + pclog("pas16_write_base : PAS16 base now at %04X\n", pas16->base); + + io_sethandler((pas16->base - 0x388) + 0x0388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x0788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x0b88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x0f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x1388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x1788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x2788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x7f88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0x8388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xbf88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xe388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xe788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xeb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xef88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xf388, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xf788, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xfb88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); + io_sethandler((pas16->base - 0x388) + 0xff88, 0x0004, pas16_in, NULL, NULL, pas16_out, NULL, NULL, pas16); } @@ -706,7 +714,6 @@ void pas16_get_buffer(int32_t *buffer, int len, void *p) opl3_update2(&pas16->opl); sb_dsp_update(&pas16->dsp); pas16_update(pas16); - for (c = 0; c < len * 2; c++) { buffer[c] += pas16->opl.buffer[c]; @@ -726,16 +733,12 @@ void *pas16_init() opl3_init(&pas16->opl); sb_dsp_init(&pas16->dsp, SB2); - - pas16_irq = device_get_config_int("irq"); - pas16_dma = device_get_config_int("dma"); - - pas16_io_set(pas16); + + io_sethandler(0x9a01, 0x0001, NULL, NULL, NULL, pas16_out_base, NULL, NULL, pas16); timer_add(pas16_pcm_poll, &pas16->pit.c[0], &pas16->pit.enable[0], pas16); sound_add_handler(pas16_get_buffer, pas16); - mpu401_uart_init(&pas16->mpu, 0x330); return pas16; } @@ -747,94 +750,14 @@ void pas16_close(void *p) free(pas16); } -static device_config_t pas16_config[] = -{ - { - .name = "irq", - .description = "IRQ", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "IRQ 2", - .value = 2 - }, - { - .description = "IRQ 3", - .value = 3 - }, - { - .description = "IRQ 5", - .value = 5 - }, - { - .description = "IRQ 7", - .value = 7 - }, - { - .description = "IRQ 10", - .value = 10 - }, - { - .description = "IRQ 11", - .value = 11 - }, - { - .description = "IRQ 15", - .value = 15 - }, - { - .description = "" - } - }, - .default_int = 5 - }, - { - .name = "dma", - .description = "DMA", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "DMA 0", - .value = 0 - }, - { - .description = "DMA 1", - .value = 1 - }, - { - .description = "DMA 3", - .value = 3 - }, - { - .description = "DMA 5", - .value = 5 - }, - { - .description = "DMA 7", - .value = 7 - }, - { - .description = "" - } - }, - .default_int = 1 - }, - { - .type = -1 - } -}; - device_t pas16_device = { "Pro Audio Spectrum 16", - 0, + DEVICE_NOT_WORKING, pas16_init, pas16_close, NULL, NULL, NULL, - NULL, - pas16_config + NULL }; diff --git a/src/sound_pas16.h b/src/sound_pas16.h index e2bad974e..e3a134751 100644 --- a/src/sound_pas16.h +++ b/src/sound_pas16.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t pas16_device; diff --git a/src/sound_ps1.c b/src/sound_ps1.c index 3b0f7681f..4f42cd4d8 100644 --- a/src/sound_ps1.c +++ b/src/sound_ps1.c @@ -1,7 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ -#include #include #include "ibm.h" #include "device.h" @@ -16,7 +12,7 @@ typedef struct ps1_audio_t uint8_t status, ctrl; - int64_t timer_latch, timer_count, timer_enable; + int timer_latch, timer_count, timer_enable; uint8_t fifo[2048]; int fifo_read_idx, fifo_write_idx; diff --git a/src/sound_ps1.h b/src/sound_ps1.h index 4297fe0cf..04bb209d5 100644 --- a/src/sound_ps1.h +++ b/src/sound_ps1.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t ps1_audio_device; diff --git a/src/sound_pssj.c b/src/sound_pssj.c index dda285291..0e4963d5d 100644 --- a/src/sound_pssj.c +++ b/src/sound_pssj.c @@ -1,7 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ -#include #include #include "ibm.h" #include "device.h" @@ -25,8 +21,8 @@ typedef struct pssj_t int amplitude; int irq; - int64_t timer_count; - int64_t enable; + int timer_count; + int enable; int wave_pos; int pulse_width; diff --git a/src/sound_pssj.h b/src/sound_pssj.h index 3e455ebf9..2255d48fb 100644 --- a/src/sound_pssj.h +++ b/src/sound_pssj.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t pssj_device; diff --git a/src/sound_resid.cc b/src/sound_resid.cc index 587c499c2..8185b6046 100644 --- a/src/sound_resid.cc +++ b/src/sound_resid.cc @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include #include diff --git a/src/sound_resid.h b/src/sound_resid.h index 27e7261d5..402ee0ceb 100644 --- a/src/sound_resid.h +++ b/src/sound_resid.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #ifdef __cplusplus extern "C" { #endif diff --git a/src/sound_sb.c b/src/sound_sb.c index a9624f5fc..34ca8b4d7 100644 --- a/src/sound_sb.c +++ b/src/sound_sb.c @@ -1,11 +1,6 @@ -/* Copyright holders: Sarah Walker, Tenshi - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" -#include "io.h" -#include "pci.h" #include "sound_emu8k.h" #include "sound_mpu401_uart.h" #include "sound_opl.h" @@ -449,14 +444,11 @@ void *sb_pro_v2_init() void *sb_16_init() { sb_t *sb = malloc(sizeof(sb_t)); - uint16_t addr = device_get_config_int("addr"); memset(sb, 0, sizeof(sb_t)); opl3_init(&sb->opl); sb_dsp_init(&sb->dsp, SB16); - sb_dsp_setaddr(&sb->dsp, addr); - sb_dsp_setirq(&sb->dsp, device_get_config_int("irq")); - sb_dsp_setdma8(&sb->dsp, device_get_config_int("dma")); + sb_dsp_setaddr(&sb->dsp, 0x0220); sb_mixer_init(&sb->mixer); io_sethandler(0x0220, 0x0004, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); io_sethandler(0x0228, 0x0002, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); @@ -490,15 +482,12 @@ int sb_awe32_available() void *sb_awe32_init() { sb_t *sb = malloc(sizeof(sb_t)); - uint16_t addr = device_get_config_int("addr"); int onboard_ram = device_get_config_int("onboard_ram"); memset(sb, 0, sizeof(sb_t)); opl3_init(&sb->opl); sb_dsp_init(&sb->dsp, SB16 + 1); - sb_dsp_setaddr(&sb->dsp, addr); - sb_dsp_setirq(&sb->dsp, device_get_config_int("irq")); - sb_dsp_setdma8(&sb->dsp, device_get_config_int("dma")); + sb_dsp_setaddr(&sb->dsp, 0x0220); sb_mixer_init(&sb->mixer); io_sethandler(0x0220, 0x0004, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); io_sethandler(0x0228, 0x0002, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); @@ -525,175 +514,6 @@ void *sb_awe32_init() return sb; } -typedef union -{ - uint16_t word; - uint8_t byte_regs[2]; -} word_t; - -typedef union -{ - uint32_t addr; - uint8_t addr_regs[4]; -} bar_t; - -uint8_t sb_awe64_pci_regs[256]; - -word_t sb_awe64_pci_words[6]; - -bar_t sb_awe64_pci_bar[6]; - -uint8_t sb_awe64_pci_read(int func, int addr, void *p) -{ - switch (addr) - { - case 0: case 1: - return sb_awe64_pci_words[0].byte_regs[addr & 1]; - case 2: case 3: - return sb_awe64_pci_words[1].byte_regs[addr & 1]; - case 8: case 9: - return sb_awe64_pci_words[2].byte_regs[addr & 1]; - case 0xA: case 0xB: - return sb_awe64_pci_words[3].byte_regs[addr & 1]; - case 0x10: case 0x11: case 0x12: case 0x13: - case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1A: case 0x1B: - case 0x1C: case 0x1D: case 0x1E: case 0x1F: - case 0x20: case 0x21: case 0x22: case 0x23: - case 0x24: case 0x25: case 0x26: case 0x27: - return sb_awe64_pci_bar[(addr - 0x10) >> 2].addr_regs[addr & 3]; - case 0x2C: case 0x2D: - return sb_awe64_pci_words[4].byte_regs[addr & 1]; - case 0x2E: case 0x2F: - return sb_awe64_pci_words[5].byte_regs[addr & 1]; - default: - return sb_awe64_pci_regs[addr]; - } - return 0; -} - -uint32_t sb_base_addr, old_base_addr; - -void sb_awe64_io_remove(uint32_t base_addr, sb_t *sb) -{ - io_removehandler(base_addr, 0x0004, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); - io_removehandler(base_addr + 4, 0x0002, sb_16_mixer_read, NULL, NULL, sb_16_mixer_write, NULL, NULL, sb); - io_removehandler(base_addr + 8, 0x0002, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); - mpu401_uart_remove(&sb->mpu, base_addr + 8); -} - -void sb_awe64_io_set(uint32_t base_addr, sb_t *sb) -{ - sb_dsp_setaddr(&sb->dsp, base_addr); - - io_sethandler(base_addr, 0x0004, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); - io_sethandler(base_addr + 4, 0x0002, sb_16_mixer_read, NULL, NULL, sb_16_mixer_write, NULL, NULL, sb); - io_sethandler(base_addr + 8, 0x0002, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); - mpu401_uart_set(&sb->mpu, base_addr + 8); - - old_base_addr = base_addr; -} - -void sb_awe64_pci_write(int func, int addr, uint8_t val, void *p) -{ - sb_t *sb = (sb_t *) p; - - switch (addr) - { - case 4: - if (val & PCI_COMMAND_IO) - { - sb_awe64_io_remove(sb_base_addr, sb); - sb_awe64_io_set(sb_base_addr, sb); - } - else - { - sb_awe64_io_remove(sb_base_addr, sb); - } - sb_awe64_pci_regs[addr] = val; - return; - case 0x10: - val &= 0xfc; - val |= 1; - case 0x11: case 0x12: case 0x13: - /* case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1A: case 0x1B: - case 0x1C: case 0x1D: case 0x1E: case 0x1F: - case 0x20: case 0x21: case 0x22: case 0x23: - case 0x24: case 0x25: case 0x26: case 0x27: */ - sb_awe64_pci_bar[(addr - 0x10) >> 2].addr_regs[addr & 3] = val; - sb_awe64_pci_bar[(addr - 0x10) >> 2].addr &= 0xffc0; - sb_awe64_pci_bar[(addr - 0x10) >> 2].addr |= 1; - if ((addr & 0x14) == 0x10) - { - sb_awe64_io_remove(sb_base_addr, sb); - sb_base_addr = sb_awe64_pci_bar[0].addr & 0xffc0; - pclog("SB AWE64 PCI: New I/O base %i is %04X\n" , ((addr - 0x10) >> 2), sb_base_addr); - } - return; - case 0x3C: - sb_awe64_pci_regs[addr] = val; - if (val != 0xFF) - { - pclog("SB AWE64 PCI IRQ now: %i\n", val); - sb_dsp_setirq(&sb->dsp, val); - } - return; - default: - return; - } - return 0; -} - -void *sb_awe64pci_init() -{ - sb_t *sb = malloc(sizeof(sb_t)); - uint16_t i = 0; - int onboard_ram = device_get_config_int("onboard_ram"); - memset(sb, 0, sizeof(sb_t)); - - opl3_init(&sb->opl); - sb_dsp_init(&sb->dsp, SB16 + 1); - sb_dsp_setirq(&sb->dsp, 5); - sb_dsp_setdma8(&sb->dsp, 1); - mpu401_uart_init(&sb->mpu, 0x228); - mpu401_uart_remove(&sb->mpu, 0x228); - sb_awe64_io_set(0x220, sb); - sb_mixer_init(&sb->mixer); - io_sethandler(0x0388, 0x0002, opl3_read, NULL, NULL, opl3_write, NULL, NULL, &sb->opl); - sound_add_handler(sb_get_buffer_emu8k, sb); - emu8k_init(&sb->emu8k, onboard_ram); - - sb->mixer.regs[0x30] = 31 << 3; - sb->mixer.regs[0x31] = 31 << 3; - sb->mixer.regs[0x32] = 31 << 3; - sb->mixer.regs[0x33] = 31 << 3; - sb->mixer.regs[0x34] = 31 << 3; - sb->mixer.regs[0x35] = 31 << 3; - sb->mixer.regs[0x44] = 8 << 4; - sb->mixer.regs[0x45] = 8 << 4; - sb->mixer.regs[0x46] = 8 << 4; - sb->mixer.regs[0x47] = 8 << 4; - sb->mixer.regs[0x22] = (sb->mixer.regs[0x30] & 0xf0) | (sb->mixer.regs[0x31] >> 4); - sb->mixer.regs[0x04] = (sb->mixer.regs[0x32] & 0xf0) | (sb->mixer.regs[0x33] >> 4); - sb->mixer.regs[0x26] = (sb->mixer.regs[0x34] & 0xf0) | (sb->mixer.regs[0x35] >> 4); - - pci_add(sb_awe64_pci_read, sb_awe64_pci_write, sb); - - sb_awe64_pci_words[0].word = 0x1102; /* Creative Labs */ - sb_awe64_pci_words[1].word = 0x0003; /* CT-8800-SAT chip (EMU8008) */ - sb_awe64_pci_words[3].word = 0x0401; /* Multimedia device, audio device */ - sb_awe64_pci_words[4].word = 0x1102; /* Creative Labs */ - sb_awe64_pci_words[5].word = device_get_config_int("revision"); /* Revision */ - sb_awe64_pci_bar[0].addr = 1; - sb_awe64_pci_regs[0x3C] = 5; - sb_awe64_pci_regs[0x3D] = 1; - sb_awe64_pci_regs[0x3E] = 0x0c; - sb_awe64_pci_regs[0x3F] = 0x80; - - return sb; -} - void sb_close(void *p) { sb_t *sb = (sb_t *)p; @@ -773,7 +593,7 @@ static device_config_t sb_config[] = .description = "" } }, - .default_int = 5 + .default_int = 7 }, { .name = "dma", @@ -849,7 +669,7 @@ static device_config_t sb_pro_config[] = .description = "" } }, - .default_int = 5 + .default_int = 7 }, { .name = "dma", @@ -878,75 +698,6 @@ static device_config_t sb_pro_config[] = static device_config_t sb_16_config[] = { - { - .name = "addr", - .description = "Address", - .type = CONFIG_BINARY, - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "0x220", - .value = 0x220 - }, - { - .description = "0x240", - .value = 0x240 - }, - { - .description = "" - } - }, - .default_int = 0x220 - }, - { - .name = "irq", - .description = "IRQ", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "IRQ 2", - .value = 2 - }, - { - .description = "IRQ 5", - .value = 5 - }, - { - .description = "IRQ 7", - .value = 7 - }, - { - .description = "IRQ 10", - .value = 10 - }, - { - .description = "" - } - }, - .default_int = 5 - }, - { - .name = "dma", - .description = "DMA", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "DMA 1", - .value = 1 - }, - { - .description = "DMA 3", - .value = 3 - }, - { - .description = "" - } - }, - .default_int = 1 - }, { .name = "midi", .description = "MIDI out device", @@ -960,141 +711,6 @@ static device_config_t sb_16_config[] = static device_config_t sb_awe32_config[] = { - { - .name = "addr", - .description = "Address", - .type = CONFIG_BINARY, - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "0x220", - .value = 0x220 - }, - { - .description = "0x240", - .value = 0x240 - }, - { - .description = "" - } - }, - .default_int = 0x220 - }, - { - .name = "irq", - .description = "IRQ", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "IRQ 2", - .value = 2 - }, - { - .description = "IRQ 5", - .value = 5 - }, - { - .description = "IRQ 7", - .value = 7 - }, - { - .description = "IRQ 10", - .value = 10 - }, - { - .description = "" - } - }, - .default_int = 5 - }, - { - .name = "dma", - .description = "DMA", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "DMA 1", - .value = 1 - }, - { - .description = "DMA 3", - .value = 3 - }, - { - .description = "" - } - }, - .default_int = 1 - }, - { - .name = "midi", - .description = "MIDI out device", - .type = CONFIG_MIDI, - .default_int = 0 - }, - { - .name = "onboard_ram", - .description = "Onboard RAM", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "None", - .value = 0 - }, - { - .description = "512 KB", - .value = 512 - }, - { - .description = "2 MB", - .value = 2048 - }, - { - .description = "8 MB", - .value = 8192 - }, - { - .description = "28 MB", - .value = 28*1024 - }, - { - .description = "" - } - }, - .default_int = 512 - }, - { - .type = -1 - } -}; - -static device_config_t sb_awe64pci_config[] = -{ - { - .name = "revision", - .description = "Revision", - .type = CONFIG_BINARY, - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "CT4600", - .value = 0x0010 - }, - { - .description = "CT4650", - .value = 0x0030 - }, - { - .description = "" - } - }, - .default_int = 0x0010 - }, { .name = "midi", .description = "MIDI out device", @@ -1222,15 +838,3 @@ device_t sb_awe32_device = sb_add_status_info, sb_awe32_config }; -device_t sb_awe64pci_device = -{ - "Sound Blaster AWE64 PCI", - 0, - sb_awe64pci_init, - sb_close, - sb_awe32_available, - sb_speed_changed, - NULL, - sb_add_status_info, - sb_awe64pci_config -}; diff --git a/src/sound_sb.h b/src/sound_sb.h index 1eba1f415..81130fecd 100644 --- a/src/sound_sb.h +++ b/src/sound_sb.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker, Tenshi - see COPYING for more details -*/ extern device_t sb_1_device; extern device_t sb_15_device; extern device_t sb_2_device; @@ -8,4 +5,3 @@ extern device_t sb_pro_v1_device; extern device_t sb_pro_v2_device; extern device_t sb_16_device; extern device_t sb_awe32_device; -extern device_t sb_awe64pci_device; diff --git a/src/sound_sb_dsp.c b/src/sound_sb_dsp.c index b5f860d54..dc4013c1c 100644 --- a/src/sound_sb_dsp.c +++ b/src/sound_sb_dsp.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ /*Jazz sample rates : 386-33 - 12kHz 486-33 - 20kHz @@ -161,12 +158,12 @@ void sb_dsp_speed_changed(sb_dsp_t *dsp) if (dsp->sb_timeo < 256) dsp->sblatcho = TIMER_USEC * (256 - dsp->sb_timeo); else - dsp->sblatcho = (int64_t)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_timeo - 256))); + dsp->sblatcho = (int)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_timeo - 256))); if (dsp->sb_timei < 256) dsp->sblatchi = TIMER_USEC * (256 - dsp->sb_timei); else - dsp->sblatchi = (int64_t)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_timei - 256))); + dsp->sblatchi = (int)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_timei - 256))); } void sb_add_data(sb_dsp_t *dsp, uint8_t v) @@ -333,7 +330,7 @@ void sb_exec_command(sb_dsp_t *dsp) case 0x41: /*Set output sampling rate*/ case 0x42: /*Set input sampling rate*/ if (dsp->sb_type < SB16) break; - dsp->sblatcho = (int64_t)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_data[1] + (dsp->sb_data[0] << 8)))); + dsp->sblatcho = (int)(TIMER_USEC * (1000000.0f / (float)(dsp->sb_data[1] + (dsp->sb_data[0] << 8)))); // pclog("Sample rate - %ihz (%i)\n",dsp->sb_data[1]+(dsp->sb_data[0]<<8), dsp->sblatcho); dsp->sb_freq = dsp->sb_data[1] + (dsp->sb_data[0] << 8); dsp->sb_timeo = 256 + dsp->sb_freq; @@ -612,7 +609,7 @@ void sb_dsp_init(sb_dsp_t *dsp, int type) { dsp->sb_type = type; - dsp->sb_irqnum = 5; + dsp->sb_irqnum = 7; dsp->sb_8_dmanum = 1; sb_doreset(dsp); diff --git a/src/sound_sb_dsp.h b/src/sound_sb_dsp.h index 2dae20442..444513642 100644 --- a/src/sound_sb_dsp.h +++ b/src/sound_sb_dsp.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ typedef struct sb_dsp_t { int sb_type; @@ -46,11 +43,11 @@ typedef struct sb_dsp_t uint8_t sb_asp_regs[256]; - int64_t sbenable, sb_enable_i; + int sbenable, sb_enable_i; - int64_t sbcount, sb_count_i; + int sbcount, sb_count_i; - int64_t sblatcho, sblatchi; + int sblatcho, sblatchi; uint16_t sb_addr; @@ -58,7 +55,7 @@ typedef struct sb_dsp_t int asp_data_len; - int64_t wb_time, wb_full; + int wb_time, wb_full; int16_t buffer[SOUNDBUFLEN * 2]; int pos; diff --git a/src/sound_sn76489.c b/src/sound_sn76489.c index 60e2969e3..2dae07669 100644 --- a/src/sound_sn76489.c +++ b/src/sound_sn76489.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/sound_sn76489.h b/src/sound_sn76489.h index 3cf190910..84c102821 100644 --- a/src/sound_sn76489.h +++ b/src/sound_sn76489.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ enum { SN76496, @@ -16,7 +13,7 @@ extern int sn76489_mute; typedef struct sn76489_t { int stat[4]; - int64_t latch[4], count[4]; + int latch[4], count[4]; int freqlo[4], freqhi[4]; int vol[4]; uint32_t shift; diff --git a/src/sound_speaker.c b/src/sound_speaker.c index 1be6f2121..8e678253e 100644 --- a/src/sound_speaker.c +++ b/src/sound_speaker.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include "ibm.h" #include "sound.h" #include "sound_speaker.h" diff --git a/src/sound_speaker.h b/src/sound_speaker.h index 4034a8681..409a7c4e6 100644 --- a/src/sound_speaker.h +++ b/src/sound_speaker.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ void speaker_init(); extern int speaker_mute; diff --git a/src/sound_ssi2001.c b/src/sound_ssi2001.c index f1d4e3ab6..fd675c309 100644 --- a/src/sound_ssi2001.c +++ b/src/sound_ssi2001.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include #include "ibm.h" #include "device.h" diff --git a/src/sound_ssi2001.h b/src/sound_ssi2001.h index b48a8b1d5..337c6260a 100644 --- a/src/sound_ssi2001.h +++ b/src/sound_ssi2001.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t ssi2001_device; diff --git a/src/sound_wss.c b/src/sound_wss.c index 0ab1a70ea..b5fecd08f 100644 --- a/src/sound_wss.c +++ b/src/sound_wss.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ /*PCem v0.8 by Tom Walker Windows Sound System emulation*/ diff --git a/src/sound_wss.h b/src/sound_wss.h index 089e41efd..bd387d6f3 100644 --- a/src/sound_wss.h +++ b/src/sound_wss.h @@ -1,4 +1 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ extern device_t wss_device; diff --git a/src/sound_ym7128.c b/src/sound_ym7128.c index 3ccb13d36..7c1aa06ff 100644 --- a/src/sound_ym7128.c +++ b/src/sound_ym7128.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ #include "ibm.h" #include "sound_ym7128.h" diff --git a/src/sound_ym7128.h b/src/sound_ym7128.h index 1f3ac417d..f71aa2f86 100644 --- a/src/sound_ym7128.h +++ b/src/sound_ym7128.h @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker - see COPYING for more details -*/ typedef struct ym7128_t { int a0, sci; diff --git a/src/soundopenal.c b/src/soundopenal.c index 683f67d6a..78f81ed87 100644 --- a/src/soundopenal.c +++ b/src/soundopenal.c @@ -1,6 +1,3 @@ -/* Copyright holders: Sarah Walker, Tenshi - see COPYING for more details -*/ #define USE_OPENAL #include #include diff --git a/src/vid_cga.h b/src/vid_cga.h index c2d23fec1..e3b187777 100644 --- a/src/vid_cga.h +++ b/src/vid_cga.h @@ -21,7 +21,7 @@ typedef struct cga_t int oddeven; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; diff --git a/src/vid_ega.h b/src/vid_ega.h index 6151acb4e..0d3c12439 100644 --- a/src/vid_ega.h +++ b/src/vid_ega.h @@ -46,7 +46,7 @@ typedef struct ega_t int vres; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; uint8_t scrblank; diff --git a/src/vid_hercules.c b/src/vid_hercules.c index c74bb879f..9c24d8de5 100644 --- a/src/vid_hercules.c +++ b/src/vid_hercules.c @@ -20,7 +20,7 @@ typedef struct hercules_t uint8_t ctrl, ctrl2, stat; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; diff --git a/src/vid_incolor.c b/src/vid_incolor.c index 9db14a0ae..947cdef6a 100644 --- a/src/vid_incolor.c +++ b/src/vid_incolor.c @@ -151,7 +151,7 @@ typedef struct incolor_t uint8_t ctrl, ctrl2, stat; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; diff --git a/src/vid_mda.c b/src/vid_mda.c index 6c14d2b38..41461331a 100644 --- a/src/vid_mda.c +++ b/src/vid_mda.c @@ -21,7 +21,7 @@ typedef struct mda_t uint8_t ctrl, stat; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; diff --git a/src/vid_olivetti_m24.c b/src/vid_olivetti_m24.c index 9a2e82aad..cc80b7f12 100644 --- a/src/vid_olivetti_m24.c +++ b/src/vid_olivetti_m24.c @@ -37,7 +37,7 @@ typedef struct m24_t int dispon; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; } m24_t; diff --git a/src/vid_pc1512.c b/src/vid_pc1512.c index 8df13bf64..5f75ed157 100644 --- a/src/vid_pc1512.c +++ b/src/vid_pc1512.c @@ -39,7 +39,7 @@ typedef struct pc1512_t int blink; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; uint8_t *vram; diff --git a/src/vid_pc1640.c b/src/vid_pc1640.c index aaedee2f4..610f322c0 100644 --- a/src/vid_pc1640.c +++ b/src/vid_pc1640.c @@ -27,7 +27,7 @@ typedef struct pc1640_t int cga_enabled; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; } pc1640_t; void pc1640_out(uint16_t addr, uint8_t val, void *p) diff --git a/src/vid_pcjr.c b/src/vid_pcjr.c index 3f07f59b4..38e1ff049 100644 --- a/src/vid_pcjr.c +++ b/src/vid_pcjr.c @@ -37,7 +37,7 @@ typedef struct pcjr_t uint16_t ma, maback; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; } pcjr_t; diff --git a/src/vid_svga.h b/src/vid_svga.h index 29e67d73d..dce4278be 100644 --- a/src/vid_svga.h +++ b/src/vid_svga.h @@ -56,7 +56,7 @@ typedef struct svga_t int bpp; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; uint8_t scrblank; diff --git a/src/vid_tandy.c b/src/vid_tandy.c index dbba96481..6a438e672 100644 --- a/src/vid_tandy.c +++ b/src/vid_tandy.c @@ -39,7 +39,7 @@ typedef struct tandy_t uint16_t ma, maback; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; } tandy_t; diff --git a/src/vid_tandysl.c b/src/vid_tandysl.c index 464df8bf4..48d53d496 100644 --- a/src/vid_tandysl.c +++ b/src/vid_tandysl.c @@ -39,7 +39,7 @@ typedef struct tandysl_t uint16_t ma, maback; int dispontime, dispofftime; - int64_t vidtime; + int vidtime; int firstline, lastline; } tandysl_t;