diff --git a/src/audio.cpp b/src/audio.cpp index 4d03face..bdb2ffd6 100644 --- a/src/audio.cpp +++ b/src/audio.cpp @@ -309,9 +309,9 @@ static void samplexx_anti_handler (int *datasp) static void sinc_prehandler_paula(unsigned long best_evtime) { int i, output; - struct audio_channel_data2 *acd; + struct audio_channel_data2 *acd; - for (i = 0; i < AUDIO_CHANNELS_PAULA; i++) { + for (i = 0; i < AUDIO_CHANNELS_PAULA; i++) { acd = audio_data[i]; int vol = acd->mixvol; output = (acd->current_sample * vol) & acd->adk_mask; @@ -339,8 +339,7 @@ static void samplexx_sinc_handler (int *datasp) n = (sound_use_filter_sinc == FILTER_MODEL_A500) ? 0 : 2; if (led_filter_on) n += 1; - } - else { + } else { n = 4; } auto winsinc = winsinc_integral[n]; @@ -415,7 +414,7 @@ static void sample16i_anti_handler(void) static void sample16i_rh_handler(void) { - unsigned long delta, ratio; + unsigned long delta, ratio; int data0 = audio_channel[0].data.current_sample; int data1 = audio_channel[1].data.current_sample; @@ -427,14 +426,14 @@ static void sample16i_rh_handler(void) int data3p = audio_channel[3].data.last_sample; int data; - DO_CHANNEL_1(data0, 0); - DO_CHANNEL_1(data1, 1); - DO_CHANNEL_1(data2, 2); - DO_CHANNEL_1(data3, 3); - DO_CHANNEL_1(data0p, 0); - DO_CHANNEL_1(data1p, 1); - DO_CHANNEL_1(data2p, 2); - DO_CHANNEL_1(data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); data0 &= audio_channel[0].data.adk_mask; data0p &= audio_channel[0].data.adk_mask; @@ -446,8 +445,8 @@ static void sample16i_rh_handler(void) data3p &= audio_channel[3].data.adk_mask; /* linear interpolation and summing up... */ - delta = audio_channel[0].per; - ratio = ((audio_channel[0].evtime % delta) << 8) / delta; + delta = audio_channel[0].per; + ratio = ((audio_channel[0].evtime % delta) << 8) / delta; data0 = (data0 * (256 - ratio) + data0p * ratio) >> 8; delta = audio_channel[1].per; ratio = ((audio_channel[1].evtime % delta) << 8) / delta; @@ -465,7 +464,7 @@ static void sample16i_rh_handler(void) check_sound_buffers(); } -static void sample16i_crux_handler(void) +static void sample16i_crux_handler (void) { int data0 = audio_channel[0].data.current_sample; int data1 = audio_channel[1].data.current_sample; @@ -477,14 +476,14 @@ static void sample16i_crux_handler(void) int data3p = audio_channel[3].data.last_sample; int data; - DO_CHANNEL_1(data0, 0); - DO_CHANNEL_1(data1, 1); - DO_CHANNEL_1(data2, 2); - DO_CHANNEL_1(data3, 3); - DO_CHANNEL_1(data0p, 0); - DO_CHANNEL_1(data1p, 1); - DO_CHANNEL_1(data2p, 2); - DO_CHANNEL_1(data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); data0 &= audio_channel[0].data.adk_mask; data0p &= audio_channel[0].data.adk_mask; @@ -653,7 +652,7 @@ static void sample16si_crux_handler(void) check_sound_buffers(); } -static void sample16si_rh_handler(void) +static void sample16si_rh_handler (void) { auto data0 = audio_channel[0].data.current_sample; auto data1 = audio_channel[1].data.current_sample; @@ -664,14 +663,14 @@ static void sample16si_rh_handler(void) auto data2p = audio_channel[2].data.last_sample; auto data3p = audio_channel[3].data.last_sample; - DO_CHANNEL_1(data0, 0); - DO_CHANNEL_1(data1, 1); - DO_CHANNEL_1(data2, 2); - DO_CHANNEL_1(data3, 3); - DO_CHANNEL_1(data0p, 0); - DO_CHANNEL_1(data1p, 1); - DO_CHANNEL_1(data2p, 2); - DO_CHANNEL_1(data3p, 3); + DO_CHANNEL_1 (data0, 0); + DO_CHANNEL_1 (data1, 1); + DO_CHANNEL_1 (data2, 2); + DO_CHANNEL_1 (data3, 3); + DO_CHANNEL_1 (data0p, 0); + DO_CHANNEL_1 (data1p, 1); + DO_CHANNEL_1 (data2p, 2); + DO_CHANNEL_1 (data3p, 3); data0 &= audio_channel[0].data.adk_mask; data0p &= audio_channel[0].data.adk_mask; @@ -704,7 +703,7 @@ static void sample16si_rh_handler(void) static int audio_work_to_do; -static void zerostate(int nr) +static void zerostate (int nr) { auto cdp = audio_channel + nr; cdp->state = 0; @@ -714,7 +713,7 @@ static void zerostate(int nr) cdp->dmaofftime_active = 0; } -static void schedule_audio(void) +static void schedule_audio (void) { unsigned long best = MAX_EV; diff --git a/src/custom.cpp b/src/custom.cpp index 01e255c2..045c55d4 100644 --- a/src/custom.cpp +++ b/src/custom.cpp @@ -1063,7 +1063,7 @@ STATIC_INLINE int isocs7planes (void) return !(currprefs.chipset_mask & CSMASK_AGA) && bplcon0_res == 0 && bplcon0_planes == 7; } -int is_bitplane_dma(int hpos) +int is_bitplane_dma (int hpos) { if (hpos < bpl_hstart || fetch_state == fetch_not_started || plf_state == plf_wait) { if (bitplane_overrun && hpos < bitplane_overrun_hpos) { @@ -1077,7 +1077,7 @@ int is_bitplane_dma(int hpos) return curr_diagram[(hpos - cycle_diagram_shift) & fetchstart_mask]; } -STATIC_INLINE int is_bitplane_dma_inline(int hpos) +STATIC_INLINE int is_bitplane_dma_inline (int hpos) { if (hpos < bpl_hstart || fetch_state == fetch_not_started || plf_state == plf_wait) { if (bitplane_overrun && hpos < bitplane_overrun_hpos) { @@ -8391,6 +8391,7 @@ static void hsync_handler_post (bool onvsync) vsyncmintime = vsyncmaxtime; /* emulate if still time left */ is_syncline_end = read_processor_time() + vsynctimebase; /* far enough in future, we never wait that long */ is_syncline = -12; + //maybe_process_pull_audio(); } } else { static int linecounter; @@ -8418,6 +8419,7 @@ static void hsync_handler_post (bool onvsync) } } } + //maybe_process_pull_audio(); } } else if (!currprefs.cpu_thread) { diff --git a/src/include/custom.h b/src/include/custom.h index d8a6b8aa..96da0c84 100644 --- a/src/include/custom.h +++ b/src/include/custom.h @@ -27,10 +27,13 @@ #define MAXVPOS_LINES_OCS 512 #define HPOS_SHIFT 3 +uae_u32 get_copper_address (int copno); + extern int custom_init (void); extern void custom_prepare (void); extern void custom_reset (bool hardreset, bool keyboardreset); extern int intlev (void); +extern void dumpcustom (void); extern void do_copper (void); @@ -40,13 +43,20 @@ extern void init_row_map (void); extern void init_hz_normal (void); extern void init_custom (void); -extern unsigned long int hsync_counter; +extern void set_picasso_hack_rate(int hz); + +/* Set to 1 to leave out the current frame in average frame time calculation. +* Useful if the debugger was active. */ +extern int bogusframe; +extern unsigned long int hsync_counter, vsync_counter; extern uae_u16 dmacon; -extern uae_u16 intreq; +extern uae_u16 intena, intreq, intreqr; extern int vpos, lof_store; +extern int n_frames; + STATIC_INLINE int dmaen (unsigned int dmamask) { return (dmamask & dmacon) && (dmacon & 0x200); @@ -231,12 +241,12 @@ struct customhack { uae_u16 v; int vpos, hpos; }; -void customhack_put(struct customhack *ch, uae_u16 v, int hpos); -uae_u16 customhack_get(struct customhack *ch, int hpos); -extern void alloc_cycle_ext(int, int); -extern void alloc_cycle_blitter(int hpos, uaecptr *ptr, int); -extern bool ispal(void); -extern bool isvga(void); +void customhack_put (struct customhack *ch, uae_u16 v, int hpos); +uae_u16 customhack_get (struct customhack *ch, int hpos); +extern void alloc_cycle_ext (int, int); +extern void alloc_cycle_blitter (int hpos, uaecptr *ptr, int); +extern bool ispal (void); +extern bool isvga (void); extern int current_maxvpos (void); extern struct chipset_refresh *get_chipset_refresh(struct uae_prefs*); extern void compute_framesync(void);