Commit 397698e3 authored by GnoStiC's avatar GnoStiC

puae 2.3.1

parent c356c142
......@@ -1184,7 +1184,7 @@ static void setirq (int nr, int which)
{
struct audio_channel_data *cdp = audio_channel + nr;
#if DEBUG_AUDIO > 0
if (debugchannel (nr))
if (debugchannel (nr) && cdp->wlen > 1)
write_log ("SETIRQ%d (%d,%d) PC=%08X\n", nr, which, isirq (nr) ? 1 : 0, M68K_GETPC);
#endif
INTREQ_0 (0x8000 | (0x80 << nr));
......@@ -1215,7 +1215,7 @@ STATIC_INLINE void setdr (int nr)
if (cdp->wlen == 1) {
cdp->dsr = true;
#if DEBUG_AUDIO > 0
if (debugchannel (nr))
if (debugchannel (nr) && cdp->wlen > 1)
write_log ("DSR%d PT=%08X PC=%08X\n", nr, cdp->pt, M68K_GETPC);
#endif
}
......@@ -1841,7 +1841,7 @@ void AUDxDAT (int nr, uae_u16 v, uaecptr addr)
if (sampleripper_enabled)
do_samplerip (cdp);
#if DEBUG_AUDIO > 0
if (debugchannel (nr))
if (debugchannel (nr) && cdp->wlen > 1)
write_log ("AUD%d looped, IRQ=%d, LC=%08X LEN=%d\n", nr, isirq (nr) ? 1 : 0, cdp->pt, cdp->wlen);
#endif
} else {
......
......@@ -815,6 +815,12 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
cfgfile_dwrite (f, "gfx_filter_overlay", "%s%s",
p->gfx_filteroverlay, _tcschr (p->gfx_filteroverlay, ',') ? "," : "");
}
cfgfile_dwrite (f, "gfx_center_horizontal_position", "%d", p->gfx_xcenter_pos);
cfgfile_dwrite (f, "gfx_center_vertical_position", "%d", p->gfx_ycenter_pos);
cfgfile_dwrite (f, "gfx_center_horizontal_size", "%d", p->gfx_xcenter_size);
cfgfile_dwrite (f, "gfx_center_vertical_size", "%d", p->gfx_ycenter_size);
#endif
cfgfile_write_bool (f, "immediate_blits", p->immediate_blits);
......@@ -3663,8 +3669,10 @@ void default_prefs (struct uae_prefs *p, int type)
p->gfx_afullscreen = GFX_WINDOW;
p->gfx_pfullscreen = GFX_WINDOW;
p->gfx_xcenter = 0; p->gfx_ycenter = 0;
p->gfx_xcenter_pos = -1; p->gfx_ycenter_pos = -1;
p->gfx_xcenter_size = -1; p->gfx_ycenter_size = -1;
p->gfx_xcenter_pos = -1;
p->gfx_ycenter_pos = -1;
p->gfx_xcenter_size = -1;
p->gfx_ycenter_size = -1;
p->gfx_max_horizontal = RES_HIRES;
p->gfx_max_vertical = VRES_DOUBLE;
p->color_mode = 2;
......
......@@ -5,7 +5,7 @@
*
* Copyright 1995-2002 Bernd Schmidt
* Copyright 1995 Alessandro Bissacco
* Copyright 2000-2010 Toni Wilen
* Copyright 2000-2011 Toni Wilen
*/
#include "sysconfig.h"
......@@ -1912,9 +1912,10 @@ static void record_color_change (int hpos, int regno, unsigned long value)
if (thisline_decision.ctable == -1)
remember_ctable ();
if (regno < 0x1000 && hpos < HBLANK_OFFSET && !(beamcon0 & 0x80) && prev_lineno >= 0) {
if ((regno < 0x1000 || regno == 0x1000 + 0x10c) && hpos < HBLANK_OFFSET && !(beamcon0 & 0x80) && prev_lineno >= 0) {
struct draw_info *pdip = curr_drawinfo + prev_lineno;
int idx = pdip->last_color_change;
int extrahpos = regno == 0x1000 + 0x10c ? 1 : 0;
bool lastsync = false;
/* Move color changes in horizontal cycles 0 to HBLANK_OFFSET to end of previous line.
* Cycles 0 to HBLANK_OFFSET are visible in right border on real Amigas. (because of late hsync)
......@@ -1925,7 +1926,7 @@ static void record_color_change (int hpos, int regno, unsigned long value)
}
pdip->last_color_change++;
pdip->nr_color_changes++;
curr_color_changes[idx].linepos = (hpos + maxhpos) * 2;
curr_color_changes[idx].linepos = (hpos + maxhpos) * 2 + extrahpos;
curr_color_changes[idx].regno = regno;
curr_color_changes[idx].value = value;
if (lastsync) {
......@@ -3484,6 +3485,13 @@ static void INTENA (uae_u16 v)
}
}
void INTREQ_nodelay (uae_u16 v)
{
setclr (&intreq, v);
setclr (&intreq_internal, v);
doint ();
}
void INTREQ_f (uae_u16 v)
{
if (use_eventmode (v)) {
......
......@@ -2111,8 +2111,10 @@ static void gen_opcode (unsigned long int opcode)
fill_prefetch_next ();
printf ("\tcpureset ();\n");
addcycles000 (128);
if (using_prefetch)
if (using_prefetch) {
printf ("\tregs.irc = %s (4);\n", srcwi);
m68k_pc_offset = 0;
}
break;
case i_NOP:
fill_prefetch_next ();
......
......@@ -357,7 +357,6 @@ uae_u32 REGPARAM2 chipmem_wget_ce2 (uaecptr addr)
m = (uae_u16 *)(chipmemory + addr);
ce2_timeout ();
v = do_get_mem_word (m);
//last_custom_value = v;
return v;
}
......@@ -394,7 +393,6 @@ void REGPARAM2 chipmem_wput_ce2 (uaecptr addr, uae_u32 w)
addr &= chipmem_mask;
m = (uae_u16 *)(chipmemory + addr);
ce2_timeout ();
//last_custom_value = w;
do_put_mem_word (m, w);
}
......@@ -426,7 +424,6 @@ uae_u32 REGPARAM2 chipmem_wget (uaecptr addr)
addr &= chipmem_mask;
m = (uae_u16 *)(chipmemory + addr);
v = do_get_mem_word (m);
//last_custom_value = v;
return v;
}
......@@ -435,7 +432,6 @@ uae_u32 REGPARAM2 chipmem_bget (uaecptr addr)
uae_u8 v;
addr &= chipmem_mask;
v = chipmemory[addr];
//last_custom_value = (v << 8) | v;
return v;
}
......@@ -454,14 +450,12 @@ void REGPARAM2 chipmem_wput (uaecptr addr, uae_u32 w)
addr &= chipmem_mask;
m = (uae_u16 *)(chipmemory + addr);
//last_custom_value = w;
do_put_mem_word (m, w);
}
void REGPARAM2 chipmem_bput (uaecptr addr, uae_u32 b)
{
addr &= chipmem_mask;
//last_custom_value = (b << 8) | b;
chipmemory[addr] = b;
}
......
......@@ -2895,7 +2895,7 @@ unsigned long REGPARAM2 op_illg (uae_u32 opcode)
if ((opcode & 0xF000) == 0xF000) {
if (warned < 20) {
//write_log ("B-Trap %x at %x (%p)\n", opcode, pc, regs.pc_p);
warned++;
//warned++;
}
Exception (0xB);
//activate_debugger ();
......@@ -2904,14 +2904,14 @@ unsigned long REGPARAM2 op_illg (uae_u32 opcode)
if ((opcode & 0xF000) == 0xA000) {
if (warned < 20) {
//write_log ("A-Trap %x at %x (%p)\n", opcode, pc, regs.pc_p);
warned++;
//warned++;
}
Exception (0xA);
//activate_debugger();
return 4;
}
if (warned < 20) {
//write_log ("Illegal instruction: %04x at %08X -> %08X\n", opcode, pc, get_long (regs.vbr + 0x10));
write_log ("Illegal instruction: %04x at %08X -> %08X\n", opcode, pc, get_long (regs.vbr + 0x10));
warned++;
//activate_debugger();
}
......@@ -3064,7 +3064,7 @@ void mmu_op30 (uaecptr pc, uae_u32 opcode, uae_u16 extra, uaecptr extraa)
void mmu_op (uae_u32 opcode, uae_u32 extra)
{
if (currprefs.cpu_model) {
#if MMU
#ifdef MMU
mmu_op_real (opcode, extra);
return;
#endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment