#define AKIKO_DEBUG_IO 0
#define AKIKO_DEBUG_IO_CMD 0
-static void irq(void)
+// 43 48 49 4E 4F 4E 20 20 4F 2D 36 35 38 2D 32 20 32 34
+#define FIRMWAREVERSION "CHINON O-658-2 24"
+
+static void irq (void)
{
+#if AKIKO_DEBUG_IO > 1
+ write_log ("Akiko Interrupt\n");
+#endif
if (!(intreq & 8)) {
INTREQ_0 (0x8000 | 0x0008);
}
static int cdrom_data_offset, cdrom_speed, cdrom_sector_counter;
static int cdrom_current_sector;
static int cdrom_data_end, cdrom_leadout;
-static int cdrom_dosomething;
static int cdrom_audiotimeout;
+static int cdrom_led;
static uae_u8 *sector_buffer_1, *sector_buffer_2;
static int sector_buffer_sector_1, sector_buffer_sector_2;
irq ();
}
-static void set_status(uae_u32 status)
+static void set_status (uae_u32 status)
{
cdrom_status1 |= status;
checkint ();
write_log ("%02X\n", checksum);
#endif
cdrom_result_complete += len + 1;
- set_status(CDSTATUS_DATA_AVAILABLE);
+ set_status (CDSTATUS_DATA_AVAILABLE);
}
-static int cdrom_command_something (void)
+static int cdrom_command_led (void)
{
int v = cdrom_command_buffer[1];
- if (v & 0x80)
- return 1;
+ int old = cdrom_led;
+ cdrom_led = v & 1;
+ if (cdrom_led != old)
+ gui_cd_led (0, cdrom_led ? 1 : -1);
+ if (v & 0x80) {
+ cdrom_result_buffer[0] = cdrom_command;
+ cdrom_result_buffer[1] = cdrom_led;
+ return 2;
+ }
return 0;
}
return 2;
}
-/* check if cd drive door is open or closed */
-static int cdrom_command_door_status (void)
+/* check if cd drive door is open or closed, return firmware info */
+static int cdrom_command_status (void)
{
- if (unitnum >= 0 && !sys_command_ismedia (DF_IOCTL, unitnum, 0)) {
- cdrom_result_buffer[1] = 0x80;
- cdrom_disk = 0;
- } else {
- cdrom_result_buffer[1] = 1;
- cdrom_disk = 1;
- }
+ cdrom_result_buffer[1] = 0x01;
+ //cdrom_result_buffer[1] = 0x80; door open
if (unitnum >= 0)
cdrom_toc ();
+ /* firmware info */
+ strcpy (cdrom_result_buffer + 2, FIRMWAREVERSION);
cdrom_result_buffer[0] = cdrom_command;
return 20;
}
memcpy (cdrom_result_buffer + 2, cdrom_toc_buffer + cdrom_toc_counter * 13, 13);
cdrom_toc_counter++;
if (cdrom_toc_counter >= cdrom_toc_entries)
- cdrom_toc_counter = 0;
+ cdrom_toc_counter = -1;
return 15;
}
+static int checkerr (void)
+{
+ if (!cdrom_disk) {
+ cdrom_result_buffer[1] = CH_ERR_NODISK;
+ return 1;
+ }
+ return 0;
+}
/* pause CD audio */
static int cdrom_command_pause (void)
{
cdrom_toc_counter = -1;
cdrom_result_buffer[0] = cdrom_command;
+ if (checkerr ())
+ return 2;
cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0;
if (!cdrom_playing)
return 2;
static int cdrom_command_unpause (void)
{
cdrom_result_buffer[0] = cdrom_command;
+ if (checkerr ())
+ return 2;
cdrom_result_buffer[1] = cdrom_playing ? CDS_PLAYING : 0;
if (!cdrom_paused)
return 2;
cdrom_result_buffer[0] = cdrom_command;
cdrom_result_buffer[1] = 0;
if (!cdrom_disk) {
- cdrom_result_buffer[1] |= CDS_ERROR;
+ cdrom_result_buffer[1] = 1; // no disk
return 2;
}
len = cdrom_command_multi ();
break;
case 5:
- cdrom_dosomething = 1;
- len = cdrom_command_something ();
+ len = cdrom_command_led ();
break;
case 6:
len = cdrom_command_subq ();
break;
case 7:
- len = cdrom_command_door_status ();
+ len = cdrom_command_status ();
break;
default:
len = 0;
if (unitnum < 0)
return;
if (cdrom_result_complete > cdrom_result_last_pos && cdrom_result_complete - cdrom_result_last_pos < 100) {
- set_status(CDSTATUS_DATA_AVAILABLE);
+ //set_status (CDSTATUS_DATA_AVAILABLE);
return;
}
if (cdrom_result_last_pos < cdrom_result_complete)
return;
}
}
- if (cdrom_toc_counter >= 0 && !cdrom_command_active && cdrom_dosomething) {
+ if (cdrom_toc_counter >= 0 && !cdrom_command_active) {
cdrom_return_data (cdrom_return_toc_entry ());
- cdrom_dosomething--;
return;
}
}
framecounter--;
if (framecounter <= 0) {
- if (cdrom_playing || cdrom_toc_counter > 0)
+ if (cdrom_led)
gui_cd_led (0, 1);
cdrom_run_read ();
framecounter = 1000000 / (74 * 75 * cdrom_speed);
cdrom_current_sector = -1;
cdrom_command_offset_complete = 0;
cdrom_command_offset_todo = 0;
+ cdrom_led = 0;
if (akiko_thread_running > 0) {
akiko_thread_running = 0;
-static USHORT Process_Track(struct zfile *, struct zfile *, UCHAR *, UCHAR *, USHORT, USHORT, USHORT);
-static USHORT Unpack_Track(UCHAR *, UCHAR *, USHORT, USHORT, UCHAR, UCHAR, USHORT, USHORT, USHORT);
+static USHORT Process_Track(struct zfile *, struct zfile *, UCHAR *, UCHAR *, USHORT, USHORT, int);
+static USHORT Unpack_Track(UCHAR *, UCHAR *, USHORT, USHORT, UCHAR, UCHAR, USHORT, USHORT, USHORT, int);
static void printbandiz(UCHAR *, USHORT);
static int passfound, passretries;
if (cmd != CMD_VIEW) {
if (cmd == CMD_SHOWBANNER) /* Banner is in the first track */
- ret = Process_Track(fi,NULL,b1,b2,cmd,opt,(geninfo & 2)?pwd:0);
+ ret = Process_Track(fi,NULL,b1,b2,cmd,opt,(geninfo & 2));
else {
- while ( (ret=Process_Track(fi,fo,b1,b2,cmd,opt,(geninfo & 2)?pwd:0)) == NO_PROBLEM ) ;
+ while ( (ret=Process_Track(fi,fo,b1,b2,cmd,opt,(geninfo & 2))) == NO_PROBLEM ) ;
}
}
-static USHORT Process_Track(struct zfile *fi, struct zfile *fo, UCHAR *b1, UCHAR *b2, USHORT cmd, USHORT opt, USHORT pwd){
+static USHORT Process_Track(struct zfile *fi, struct zfile *fo, UCHAR *b1, UCHAR *b2, USHORT cmd, USHORT opt, int enc){
USHORT hcrc, dcrc, usum, number, pklen1, pklen2, unpklen, l;
UCHAR cmode, flags;
int crcerr = 0;
if ((cmd == CMD_UNPACK) && (number<80) && (unpklen>2048)) {
memset(b2, 0, unpklen);
if (!crcerr)
- Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum);
+ Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
if (zfile_fwrite(b2,1,(size_t)unpklen,fo) != unpklen) return ERR_CANTWRITE;
}
return NO_PROBLEM;
if ((cmd == CMD_SHOWBANNER) && (number == 0xffff)){
- Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum);
+ Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
printbandiz(b2,unpklen);
}
if ((cmd == CMD_SHOWDIZ) && (number == 80)) {
- Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum);
+ Unpack_Track(b1, b2, pklen2, unpklen, cmode, flags, number, pklen1, usum, enc);
printbandiz(b2,unpklen);
}
}
}
-static USHORT Unpack_Track(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags, USHORT number, USHORT pklen1, USHORT usum1)
+static USHORT Unpack_Track(UCHAR *b1, UCHAR *b2, USHORT pklen2, USHORT unpklen, UCHAR cmode, UCHAR flags, USHORT number, USHORT pklen1, USHORT usum1, int enc)
{
USHORT r, err = NO_PROBLEM;
static USHORT pass;
break;
}
}
- if (number == 80) {
+ if (number == 80 || !enc) {
err = ERR_CSUM;
break;
}
if (blitsing && blitonedot)
blitahold = 0;
blitonedot++;
- blt_info.bltddat = blit_func(blitahold, blitbhold, blitchold, bltcon0 & 0xFF);
+ blt_info.bltddat = blit_func (blitahold, blitbhold, blitchold, bltcon0 & 0xFF);
}
static void blitter_line_proc (void)
bltapt += (uae_s16)blt_info.bltamod;
if (bltcon1 & 0x10) {
if (bltcon1 & 0x8)
- blitter_line_decy();
+ blitter_line_decy ();
else
- blitter_line_incy();
+ blitter_line_incy ();
} else {
if (bltcon1 & 0x8)
- blitter_line_decx();
+ blitter_line_decx ();
else
- blitter_line_incx();
+ blitter_line_incx ();
}
} else {
if (bltcon0 & 0x800)
}
if (bltcon1 & 0x10) {
if (bltcon1 & 0x4)
- blitter_line_decx();
+ blitter_line_decx ();
else
- blitter_line_incx();
+ blitter_line_incx ();
} else {
if (bltcon1 & 0x4)
- blitter_line_decy();
+ blitter_line_decy ();
else
- blitter_line_incy();
+ blitter_line_incy ();
}
blitsign = 0 > (uae_s16)bltapt;
bltstate = BLT_write;
static void decide_blitter_line (int hpos)
{
- hpos++;
if (dmaen (DMA_BLITTER)) {
- while (blit_last_hpos < hpos) {
+ while (blit_last_hpos <= hpos) {
int c = blit_cyclecounter % 4;
for (;;) {
if (c == 1 || c == 3) {
blit_cyclecounter++;
if (blt_info.vblitsize == 0) {
bltdpt = bltcpt;
- blitter_done();
+ blitter_done ();
return;
}
break;
}
blit_cyclecounter++;
if (c == 1) {
- blitter_read();
+ blitter_read ();
alloc_cycle_ext (blit_last_hpos, CYCLE_BLITTER);
} else if (c == 2) {
if (ddat1use) {
bltdpt = bltcpt;
}
ddat1use = 1;
- blitter_line();
- blitter_line_proc();
- blitter_nxline();
+ blitter_line ();
+ blitter_line_proc ();
+ blitter_nxline ();
} else if (c == 3) {
- blitter_write();
+ blitter_write ();
alloc_cycle_ext (blit_last_hpos, CYCLE_BLITTER);
if (blt_info.vblitsize == 0) {
bltdpt = bltcpt;
- blitter_done();
+ blitter_done ();
return;
}
}
blit_last_hpos++;
}
} else {
- blit_last_hpos = hpos;
+ blit_last_hpos = hpos + 1;
}
if (blit_last_hpos > maxhpos)
blit_last_hpos = 0;
return;
if (blit_linecyclecounter > 0) {
- while (blit_linecyclecounter > 0 && blit_last_hpos < hpos) {
+ while (blit_linecyclecounter > 0 && blit_last_hpos <= hpos) {
blit_linecyclecounter--;
blit_last_hpos++;
}
blit_last_hpos = 0;
}
if (blit_linecyclecounter > 0) {
- blit_last_hpos = hpos;
+ blit_last_hpos = hpos + 1;
return;
}
decide_blitter_line (hpos);
return;
}
- hpos++;
+
if (dmaen (DMA_BLITTER)) {
- while (blit_last_hpos < hpos) {
+ while (blit_last_hpos <= hpos) {
int c = channel_state (blit_cyclecounter);
#ifdef BLITTER_SLOWDOWNDEBUG
blitter_slowdowndebug--;
blit_last_hpos++;
}
} else {
- blit_last_hpos = hpos;
+ blit_last_hpos = hpos + 1;
}
if (blit_last_hpos > maxhpos)
blit_last_hpos = 0;
{"gfx_linemode", "Can be none, double, or scanlines" },
{"gfx_fullscreen_amiga", "Amiga screens are fullscreen?" },
{"gfx_fullscreen_picasso", "Picasso screens are fullscreen?" },
- {"gfx_correct_aspect", "Correct aspect ratio?" },
{"gfx_center_horizontal", "Center display horizontally?" },
{"gfx_center_vertical", "Center display vertically?" },
{"gfx_colour_mode", "" },
static const char *scsimode[] = { "false", "true", "scsi", 0 };
static const char *maxhoriz[] = { "lores", "hires", "superhires", 0 };
static const char *maxvert[] = { "nointerlace", "interlace", 0 };
+static const char *abspointers[] = { "none", "mousehack", "tablet", 0 };
static const char *obsolete[] = {
"accuracy", "gfx_opengl", "gfx_32bit_blits", "32bit_blits",
"gfx_test_speed", "gfxlib_replacement", "enforcer", "catweasel_io",
"kickstart_key_file", "fast_copper", "sound_adjust",
"serial_hardware_dtrdsr", "gfx_filter_upscale",
+ "gfx_correct_aspect",
NULL
};
cfgfile_write (f, "ghostscript_parameters=%s\n", p->ghostscript_parameters);
cfgfile_write (f, "parallel_autoflush=%d\n", p->parallel_autoflush_time);
cfgfile_dwrite (f, "uae_hide=%d\n", p->uae_hide);
+ cfgfile_dwrite (f, "magic_mouse=%s\n", p->input_magic_mouse ? "true" : "false");
+ cfgfile_dwrite (f, "absolute_mouse=%s\n", abspointers[p->input_tablet]);
cfgfile_write (f, "gfx_display=%d\n", p->gfx_display);
cfgfile_write (f, "gfx_display_name=%s\n", p->gfx_display_name);
cfgfile_write (f, "gfx_resolution=%s\n", lorestype1[p->gfx_resolution]);
cfgfile_write (f, "gfx_lores_mode=%s\n", loresmode[p->gfx_lores_mode]);
cfgfile_write (f, "gfx_linemode=%s\n", linemode1[p->gfx_linedbl]);
- cfgfile_write (f, "gfx_correct_aspect=%s\n", p->gfx_correct_aspect ? "true" : "false");
cfgfile_write (f, "gfx_fullscreen_amiga=%s\n", fullmodes[p->gfx_afullscreen]);
cfgfile_write (f, "gfx_fullscreen_picasso=%s\n", fullmodes[p->gfx_pfullscreen]);
cfgfile_write (f, "gfx_center_horizontal=%s\n", centermode1[p->gfx_xcenter]);
cfgfile_write (f, "gfx_center_vertical=%s\n", centermode1[p->gfx_ycenter]);
cfgfile_write (f, "gfx_colour_mode=%s\n", colormode1[p->color_mode]);
+ cfgfile_write (f, "gfx_blacker_than_black=%s\n", p->gfx_blackerthanblack ? "true" : "false");
#ifdef GFXFILTER
if (p->gfx_filter > 0) {
|| cfgfile_yesno (option, value, "filesys_no_fsdb", &p->filesys_no_uaefsdb)
|| cfgfile_yesno (option, value, "gfx_vsync", &p->gfx_avsync)
|| cfgfile_yesno (option, value, "gfx_vsync_picasso", &p->gfx_pvsync)
- || cfgfile_yesno (option, value, "gfx_correct_aspect", &p->gfx_correct_aspect)
+ || cfgfile_yesno (option, value, "gfx_blacker_than_black", &p->gfx_blackerthanblack)
|| cfgfile_yesno (option, value, "show_leds", &p->leds_on_screen)
|| cfgfile_yesno (option, value, "synchronize_clock", &p->tod_hack)
+ || cfgfile_yesno (option, value, "magic_mouse", &p->input_magic_mouse)
|| cfgfile_yesno (option, value, "bsdsocket_emu", &p->socket_emu))
return 1;
|| cfgfile_strval (option, value, "gfx_color_mode", &p->color_mode, colormode1, 1)
|| cfgfile_strval (option, value, "gfx_color_mode", &p->color_mode, colormode2, 0)
|| cfgfile_strval (option, value, "gfx_max_horizontal", &p->gfx_max_horizontal, maxhoriz, 0)
- || cfgfile_strval (option, value, "gfx_max_vertical", &p->gfx_max_vertical, maxvert, 0))
+ || cfgfile_strval (option, value, "gfx_max_vertical", &p->gfx_max_vertical, maxvert, 0)
+ || cfgfile_strval (option, value, "absolute_mouse", &p->input_tablet, abspointers, 0))
return 1;
p->gfx_linedbl += 2 * (strchr (x2, 'D') != 0);
p->gfx_afullscreen = strchr (x2, 'a') != 0;
p->gfx_pfullscreen = strchr (x2, 'p') != 0;
- p->gfx_correct_aspect = strchr (x2, 'c') != 0;
if (p->gfx_linedbl == 3) {
write_log ("You can't use both 'd' and 'D' modifiers in the display mode specification.\n");
p->gfx_linedbl = 1;
p->gfx_afullscreen = 0;
p->gfx_pfullscreen = 0;
- p->gfx_correct_aspect = 0;
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->cs_slowmemisfast = 0;
p->cs_resetwarning = 1;
- p->gfx_filter = 0;
+ p->gfx_filter = 1;
p->gfx_filtershader[0] = 0;
p->gfx_filter_horiz_zoom_mult = 0;
p->gfx_filter_vert_zoom_mult = 0;
p->gfx_filter_filtermode = 0;
p->gfx_filter_scanlineratio = (1 << 4) | 1;
+ p->gfx_filter_keep_aspect = 0;
+ p->gfx_filter_autoscale = 1;
strcpy (p->df[0], "df0.adf");
strcpy (p->df[1], "df1.adf");
p->fpu_model = 0;
p->cpu_model = 68000;
- p->cpu060_revision = 1;
+ p->mmu_model = 0;
+ p->cpu060_revision = 6;
p->fpu_revision = -1;
p->m68k_speed = 0;
p->cpu_compatible = 1;
default_prefs_mini (p, 0);
#endif
+ p->input_tablet = TABLET_OFF;
+ p->input_magic_mouse = 0;
+
inputdevice_default_prefs (p);
zfile_fclose (default_file);
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#define FULLMMU
-
-
-#define DEBUG 0
+#define DEBUG 1
#include "sysconfig.h"
#include "sysdeps.h"
#include "newcpu.h"
#include "cpummu.h"
#include "debug.h"
-#ifdef USE_JIT
-# include "compiler/compemu.h"
-#endif
#define DBG_MMU_VERBOSE 1
#define DBG_MMU_SANITY 1
static mmu_atc_l1_array *current_atc;
static struct mmu_atc_line atc_l2[2][ATC_L2_SIZE];
-# ifdef ATC_STATS
+#ifdef ATC_STATS
static unsigned int mmu_atc_hits[ATC_L2_SIZE];
-# endif
+#endif
static void mmu_dump_ttr(const char * label, uae_u32 ttr)
from_addr = ttr & MMU_TTR_LOGICAL_BASE;
to_addr = (ttr & MMU_TTR_LOGICAL_MASK) << 8;
- D(bug("%s: [%08lx] %08lx - %08lx enabled=%d supervisor=%d wp=%d cm=%02d",
+ D(bug("%s: [%08lx] %08lx - %08lx enabled=%d supervisor=%d wp=%d cm=%02d\n",
label, ttr,
from_addr, to_addr,
ttr & MMU_TTR_BIT_ENABLED ? 1 : 0,
*ttr |= ((baseaddr + size - 1) & MMU_TTR_LOGICAL_BASE) >> 8;
*ttr |= MMU_TTR_BIT_ENABLED;
- D(bug("MMU: map transparent mapping of %08x", *ttr));
+ D(bug("MMU: map transparent mapping of %08x\n", *ttr));
}
/* check if an address matches a ttr */
}
#if DEBUG
+#define ROOT_TABLE_SIZE 128
+#define PTR_TABLE_SIZE 128
+#define PAGE_TABLE_SIZE 64
+#define ROOT_INDEX_SHIFT 25
+#define PTR_INDEX_SHIFT 18
/* {{{ mmu_dump_table */
static void mmu_dump_table(const char * label, uaecptr root_ptr)
{
- DUNUSED(label);
- const int ROOT_TABLE_SIZE = 128,
- PTR_TABLE_SIZE = 128,
- PAGE_TABLE_SIZE = 64,
- ROOT_INDEX_SHIFT = 25,
- PTR_INDEX_SHIFT = 18;
+// DUNUSED(label);
// const int PAGE_INDEX_SHIFT = 12;
int root_idx, ptr_idx, page_idx;
uae_u32 root_des, ptr_des, page_des;
/* {{{ mmu_dump_tables */
void mmu_dump_tables(void)
{
- D(bug("URP: %08x SRP: %08x MMUSR: %x TC: %x", regs.urp, regs.srp, regs.mmusr, regs.tcr));
+ D(bug("URP: %08x SRP: %08x MMUSR: %x TC: %x\n", regs.urp, regs.srp, regs.mmusr, regs.tcr));
mmu_dump_ttr("DTT0", regs.dtt0);
mmu_dump_ttr("DTT1", regs.dtt1);
mmu_dump_ttr("ITT0", regs.itt0);
glob = (opcode & 8) != 0;
if (opcode & 16) {
- D(bug("pflusha(%u,%u)", glob, regs.dfc));
+ D(bug("pflusha(%u,%u)\n", glob, regs.dfc));
mmu_flush_atc_all(glob);
} else {
addr = m68k_areg(®s, regno);
- D(bug("pflush(%u,%u,%x)", glob, regs.dfc, addr));
+ D(bug("pflush(%u,%u,%x)\n", glob, regs.dfc, addr));
mmu_flush_atc(addr, super, glob);
}
flush_internals();
-#ifdef USE_JIT
- flush_icache(0);
-#endif
} else if ((opcode & 0x0FD8) == 0x548) {
int write, regno;
uae_u32 addr;
write = (opcode & 32) == 0;
addr = m68k_areg(®s, regno);
//bug("ptest(%u,%u,%x)", write, regs.dfc, addr);
- D(bug("PTEST%c (A%d) %08x DFC=%d", write ? 'W' : 'R', regno, addr, regs.dfc));
+ D(bug("PTEST%c (A%d) %08x DFC=%d\n", write ? 'W' : 'R', regno, addr, regs.dfc));
mmu_flush_atc(addr, super, true);
SAVE_EXCEPTION;
TRY(prb) {
regs.mmusr = MMU_MMUSR_B;
}
RESTORE_EXCEPTION;
- D(bug("PTEST result: mmusr %08x", regs.mmusr));
+ D(bug("PTEST result: mmusr %08x\n", regs.mmusr));
} else
op_illg (opcode, ®s);
}
DIW_waiting_start, DIW_waiting_stop
};
-static int plffirstline, plflastline;
+int plffirstline, plflastline;
static int plfstrt_start, plfstrt, plfstop;
static int sprite_minx, sprite_maxx;
static int first_bpl_vpos;
static int last_fetch_hpos, last_sprite_hpos;
int diwfirstword, diwlastword;
static enum diw_states diwstate, hdiwstate, ddfstate;
+int first_planes_vpos, last_planes_vpos;
/* Sprite collisions */
static unsigned int clxdat, clxcon, clxcon2, clxcon_bpl_enable, clxcon_bpl_match;
#ifdef PICASSO96
init_hz_p96 ();
#endif
- write_log ("%s mode, V=%dHz H=%dHz (%dx%d)\n",
+ inputdevice_tablet_strobe ();
+ write_log ("%s mode%s%s V=%dHz H=%dHz (%dx%d)\n",
isntsc ? "NTSC" : "PAL",
+ (bplcon0 & 4) ? " interlaced" : "",
+ doublescan ? " dblscan" : "",
vblank_hz, vblank_hz * maxvpos,
maxhpos, maxvpos);
}
static void VPOSW (uae_u16 v)
{
#if 0
- write_log ("vposw %x at %x\n", v, m68k_getpc (®s));
+ write_log ("vposw %d PC=%08x\n", v, M68K_GETPC);
#endif
if (lof != (v & 0x8000))
lof_changed = 1;
lof = v & 0x8000;
if ((v & 1) && vpos > 0)
- hack_vpos = vpos;
+ hack_vpos = vpos + 1;
}
STATIC_INLINE uae_u16 VHPOSR (void)
decide_fetch (hpos);
decide_blitter (hpos);
+ if (vpos > first_planes_vpos && vpos >= minfirstline && first_planes_vpos == 0) {
+ if (GET_PLANES (v) > 0)
+ first_planes_vpos = vpos;
+ }
+ if (GET_PLANES (v) == 0 && GET_PLANES (bplcon0) > 0 && vpos > last_planes_vpos) {
+ last_planes_vpos = vpos;
+ }
+
// fake unused 0x0080 bit as an EHB bit (see below)
if (isehb (v, bplcon2))
v |= 0x80;
diwstate = DIW_waiting_start;
hdiwstate = DIW_waiting_start;
ddfstate = DIW_waiting_start;
+ first_planes_vpos = 0;
+ last_planes_vpos = 0;
}
void init_hardware_for_drawing_frame (void)
hsync_counter++;
//copper_check (2);
+ if (vpos == minfirstline) {
+ if (GET_PLANES (bplcon0) > 0)
+ first_planes_vpos = minfirstline;
+ } else if (vpos == maxvpos - 1) {
+ if (GET_PLANES (bplcon0) > 0)
+ last_planes_vpos = vpos - 1;
+ }
+
#if 0
{
static int skip;
static int min_diwstart, max_diwstop;
/* The visible window: VISIBLE_LEFT_BORDER contains the left border of the visible
area, VISIBLE_RIGHT_BORDER the right border. These are in window coordinates. */
-static int visible_left_border, visible_right_border;
+int visible_left_border, visible_right_border;
static int linetoscr_x_adjust_bytes;
static int thisframe_y_adjust;
static int thisframe_y_adjust_real, max_ypos_thisframe, min_ypos_for_screen;
#define xlinecheck
#endif
+
STATIC_INLINE void count_frame (void)
{
framecnt++;
frame_redraw_necessary = 2;
}
+
+extern int plffirstline, plflastline;
+extern int first_planes_vpos, last_planes_vpos;
+
+#define MIN_DISPLAY_W 256
+#define MIN_DISPLAY_H 192
+#define MAX_DISPLAY_W 344
+#define MAX_DISPLAY_H 272
+
+int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy)
+{
+ int w, h, dx, dy, y1, y2, dbl1, dbl2;
+ static int ow, oh, ox, oy;
+ int ret = 0;
+
+ *pw = ow;
+ *ph = oh;
+ *pdx = ox;
+ *pdy = oy;
+
+ if (ow > 0 && oh > 0)
+ ret = -1;
+
+ w = diwlastword - diwfirstword;
+ dx = diwfirstword - visible_left_border;
+ y2 = plflastline > last_planes_vpos ? last_planes_vpos : plflastline;
+ y1 = plffirstline > first_planes_vpos ? plffirstline : first_planes_vpos;
+ if (y1 < minfirstline)
+ y1 = first_planes_vpos;
+ h = y2 - y1;
+ dy = plffirstline - minfirstline;
+ if (dy < 0)
+ dy = first_planes_vpos - minfirstline;
+
+ dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
+ dy = xshift (dy, dbl2);
+ h = xshift (h, dbl1);
+
+ if (w == 0 || h == 0)
+ return 0;
+
+ if (ow == w && oh == h && ox == dx && oy == dy)
+ return ret;
+
+ if (w <= 0 || h <= 0 || dx <= 0 || dy <= 0)
+ return ret;
+ if (dx > gfxvidinfo.width / 4)
+ return ret;
+ if (dy > gfxvidinfo.height / 4)
+ return ret;
+
+ if ((w >> currprefs.gfx_resolution) < MIN_DISPLAY_W)
+ w = MIN_DISPLAY_W << currprefs.gfx_resolution;
+ if ((h >> dbl1) < MIN_DISPLAY_H)
+ h = MIN_DISPLAY_H << dbl1;
+
+ if ((w >> currprefs.gfx_resolution) > MAX_DISPLAY_W)
+ w = MAX_DISPLAY_W << currprefs.gfx_resolution;
+ if ((h >> dbl1) > MAX_DISPLAY_H)
+ h = MAX_DISPLAY_H << dbl1;
+
+ ow = w;
+ oh = h;
+ ox = dx;
+ oy = dy;
+ *pw = w;
+ *ph = h;
+ *pdx = dx;
+ *pdy = dy;
+ return 1;
+}
+
+void get_custom_mouse_limits (int *pw, int *ph, int *pdx, int *pdy, int dbl)
+{
+ int w, h, dx, dy, dbl1, dbl2, y1, y2;
+
+ w = diwlastword - diwfirstword;
+ dx = diwfirstword - visible_left_border;
+ y2 = plflastline > last_planes_vpos ? last_planes_vpos : plflastline;
+ y1 = plffirstline > first_planes_vpos ? plffirstline : first_planes_vpos;
+ h = y2 - y1;
+ dy = plffirstline - minfirstline;
+
+ if (*pw > 0)
+ w = *pw;
+
+ w = xshift (w, res_shift);
+
+ if (*ph > 0)
+ h = *ph;
+
+ dbl2 = dbl1 = currprefs.gfx_linedbl ? 1 : 0;
+ if ((doublescan || interlace_seen) && !dbl) {
+ dbl1--;
+ dbl2--;
+ }
+ if (interlace_seen)
+ dbl2++;
+ if (!interlace_seen && dbl)
+ dbl2--;
+ h = xshift (h, dbl1);
+ dy = xshift (dy, dbl2);
+
+ if (w < 1)
+ w = 1;
+ if (h < 1)
+ h = 1;
+ if (dx < 0)
+ dx = 0;
+ if (dy < 0)
+ dy = 0;
+ *pw = w; *ph = h;
+ *pdx = dx; *pdy = dy;
+}
+
static struct decision *dp_for_drawing;
static struct draw_info *dip_for_drawing;
}
}
-void drawing_adjust_mousepos (int *xp, int *yp)
-{
-}
-
STATIC_INLINE uae_u8 merge_2pixel8 (uae_u8 p1, uae_u8 p2)
{
return p1;
static void init_aspect_maps (void)
{
int i, maxl;
- double native_lines_per_amiga_line;
if (gfxvidinfo.height == 0)
/* Do nothing if the gfx driver hasn't initialized the screen yet */
amiga2aspect_line_map = xmalloc (sizeof (int) * (MAXVPOS + 1) * 2 + 1);
native2amiga_line_map = xmalloc (sizeof (int) * gfxvidinfo.height);
- if (currprefs.gfx_correct_aspect)
- native_lines_per_amiga_line = ((double)gfxvidinfo.height
- * (320 << lores_shift)
- / (linedbld ? 512 : 256)
- / gfxvidinfo.width);
- else
- native_lines_per_amiga_line = 1;
-
maxl = (MAXVPOS + 1) * (linedbld ? 2 : 1);
min_ypos_for_screen = minfirstline << (linedbl ? 1 : 0);
max_drawn_amiga_line = -1;
for (i = 0; i < maxl; i++) {
- int v = (int) ((i - min_ypos_for_screen) * native_lines_per_amiga_line);
+ int v = i - min_ypos_for_screen;
if (v >= gfxvidinfo.height && max_drawn_amiga_line == -1)
max_drawn_amiga_line = i - min_ypos_for_screen;
if (i < min_ypos_for_screen || v >= gfxvidinfo.height)
if (linedbl)
max_drawn_amiga_line >>= 1;
- if (currprefs.gfx_ycenter && !(currprefs.gfx_correct_aspect)) {
+ if (currprefs.gfx_ycenter && !currprefs.gfx_filter_autoscale) {
/* @@@ verify maxvpos vs. MAXVPOS */
extra_y_adjust = (gfxvidinfo.height - (maxvpos_max << (linedbl ? 1 : 0))) >> 1;
if (extra_y_adjust < 0)
for (i = 0; i < gfxvidinfo.height; i++)
native2amiga_line_map[i] = -1;
- if (native_lines_per_amiga_line < 1) {
- /* Must omit drawing some lines. */
- for (i = maxl - 1; i > min_ypos_for_screen; i--) {
- if (amiga2aspect_line_map[i] == amiga2aspect_line_map[i-1]) {
- if (linedbl && (i & 1) == 0 && amiga2aspect_line_map[i+1] != -1) {
- /* If only the first line of a line pair would be omitted,
- * omit the second one instead to avoid problems with line
- * doubling. */
- amiga2aspect_line_map[i] = amiga2aspect_line_map[i+1];
- amiga2aspect_line_map[i+1] = -1;
- } else
- amiga2aspect_line_map[i] = -1;
- }
- }
- }
-
for (i = maxl - 1; i >= min_ypos_for_screen; i--) {
int j;
if (amiga2aspect_line_map[i] == -1)
int prev_y_adjust = thisframe_y_adjust;
int tmp;
- if (currprefs.gfx_xcenter) {
+ if (currprefs.gfx_xcenter && !currprefs.gfx_filter_autoscale) {
int w = gfxvidinfo.width;
if (max_diwstop - min_diwstart < w && currprefs.gfx_xcenter == 2)
visible_right_border = max_diwlastword;
thisframe_y_adjust = minfirstline;
- if (currprefs.gfx_ycenter && thisframe_first_drawn_line != -1) {
+ if (currprefs.gfx_ycenter && thisframe_first_drawn_line != -1 && !currprefs.gfx_filter_autoscale) {
if (thisframe_last_drawn_line - thisframe_first_drawn_line < max_drawn_amiga_line && currprefs.gfx_ycenter == 2)
thisframe_y_adjust = (thisframe_last_drawn_line - thisframe_first_drawn_line - max_drawn_amiga_line) / 2 + thisframe_first_drawn_line;
return b;
if (currprefs.sana2)
return b;
- if (currprefs.win32_outsidemouse)
+ if (currprefs.input_tablet > 0 || currprefs.input_magic_mouse == 0)
return b;
if (currprefs.gfxmem_size)
return b;
v = check_boot_rom ();
if (v)
uae_boot_rom = 1;
+ if (!rtarea_base) {
+ uae_boot_rom = 0;
+ v = 0;
+ }
return v;
}
#include "sana2.h"
#include "bsdsocket.h"
#include "uaeresource.h"
+#include "inputdevice.h"
#define TRACING_ENABLED 0
#if TRACING_ENABLED
static uae_u32 REGPARAM2 mousehack_done (TrapContext *context)
{
- /* do not allow other fs threads to start another mousehack */
- rtarea[get_long (rtarea_base + 40) + 12 - 2] = 0xff;
+ int mode = m68k_dreg (&context->regs, 1);
+ uaecptr a2 = m68k_areg (&context->regs, 2);
+ uaecptr a3 = m68k_areg (&context->regs, 3);
+ input_mousehack_status (mode, a2, a3);
return 1;
}
void filesys_install_code (void)
{
+ uae_u32 a;
align(4);
+ a = here ();
/* The last offset comes from the code itself, look for it near the top. */
- EXPANSION_bootcode = here () + 8 + 0x1c + 4;
- /* Ouch. Make sure this is _always_ a multiple of two bytes. */
- filesys_initcode = here() + 8 + 0x30 + 4;
+ EXPANSION_bootcode = a + 40 - 4;
+ filesys_initcode = a + 40 - 4 + 20;
#include "filesys_bootrom.c"
}
db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x60); db(0x00); db(0x09); db(0x78); db(0x00); db(0x00); db(0x07); db(0x42);
- db(0x00); db(0x00); db(0x00); db(0x34); db(0x00); db(0x00); db(0x01); db(0x78);
- db(0x00); db(0x00); db(0x00); db(0x20); db(0x00); db(0x00); db(0x02); db(0x34);
- db(0x00); db(0x00); db(0x0b); db(0xba); db(0x00); db(0x00); db(0x0d); db(0x52);
- db(0x43); db(0xfa); db(0x0f); db(0x28); db(0x4e); db(0xae); db(0xff); db(0xa0);
- db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x16); db(0x20); db(0x40);
- db(0x4e); db(0x90); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xff); db(0xfe);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0xfc);
- db(0x61); db(0x00); db(0x0b); db(0x68); db(0x2a); db(0x50); db(0x43); db(0xfa);
- db(0x0f); db(0x20); db(0x70); db(0x24); db(0x7a); db(0x01); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0c); db(0x43); db(0xfa);
- db(0x0f); db(0x10); db(0x70); db(0x00); db(0x7a); db(0x00); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x4a); db(0xad); db(0x01); db(0x0c);
- db(0x67); db(0x5a); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x26); db(0x40); db(0x27); db(0x4c); db(0x01); db(0x9c);
- db(0x7c); db(0x00); db(0xbc); db(0xad); db(0x01); db(0x0c); db(0x64); db(0x2c);
- db(0x2f); db(0x06); db(0x7e); db(0x01); db(0x4a); db(0x45); db(0x67); db(0x04);
- db(0x08); db(0xc7); db(0x00); db(0x02); db(0x2f); db(0x0b); db(0x20); db(0x4b);
- db(0x61); db(0x00); db(0x06); db(0xa8); db(0x26); db(0x5f); db(0x0c); db(0x80);
- db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46);
- db(0x52); db(0x46); db(0x48); db(0x46); db(0x60); db(0xdc); db(0x2c); db(0x1f);
- db(0x52); db(0x46); db(0x60); db(0xce); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x22); db(0x4b); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x2c);
- db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x30); db(0x3c);
- db(0xff); db(0x80); db(0x61); db(0x00); db(0x0a); db(0xd6); db(0x4e); db(0x90);
- db(0x72); db(0x03); db(0x74); db(0xf6); db(0x20); db(0x7c); db(0x00); db(0x20);
- db(0x00); db(0x00); db(0x90); db(0x88); db(0x65); db(0x0a); db(0x67); db(0x08);
- db(0x78); db(0x00); db(0x22); db(0x44); db(0x4e); db(0xae); db(0xfd); db(0x96);
- db(0x41); db(0xfa); db(0x0e); db(0x2c); db(0x43); db(0xfa); db(0x00); db(0x1c);
- db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0b); db(0xf6); db(0x22); db(0x40);
- db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00);
- db(0x0a); db(0xa2); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0xff);
- db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x00);
- db(0x08); db(0xc0); db(0x00); db(0x11); db(0x4e); db(0xae); db(0xfe); db(0xc2);
- db(0x43); db(0xfa); db(0x0e); db(0x28); db(0x70); db(0x00); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x67); db(0xe4); db(0x2c); db(0x40);
- db(0x41); db(0xfa); db(0x0d); db(0xff); db(0x22); db(0x08); db(0x74); db(0x0f);
- db(0x41); db(0xfa); db(0x00); db(0x22); db(0x26); db(0x08); db(0xe4); db(0x8b);
- db(0x28); db(0x3c); db(0x00); db(0x00); db(0x1f); db(0x40); db(0x4e); db(0xae);
- db(0xff); db(0x76); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x60); db(0xbc); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
- db(0x72); db(0x02); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00);
- db(0x0a); db(0x42); db(0x4e); db(0x90); db(0x22); db(0x00); db(0x6b); db(0x04);
- db(0x61); db(0x00); db(0x07); db(0x90); db(0x70); db(0x00); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x00); db(0x20); db(0x30); db(0x3c); db(0xff); db(0x50);
- db(0x61); db(0x00); db(0x0a); db(0x28); db(0x70); db(0x00); db(0x4e); db(0x90);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa2); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
- db(0x0a); db(0x12); db(0x70); db(0x02); db(0x4e); db(0x90); db(0x0c); db(0x40);
- db(0x00); db(0x01); db(0x6d); db(0x00); db(0x00); db(0x7c); db(0x6e); db(0x06);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0xe4); db(0x0c); db(0x40);
- db(0x00); db(0x02); db(0x6e); db(0x08); db(0x20); db(0x01); db(0x4e); db(0xae);
- db(0xfe); db(0xbc); db(0x60); db(0xd6); db(0x0c); db(0x40); db(0x00); db(0x03);
- db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x86); db(0x60); db(0xca);
- db(0x0c); db(0x40); db(0x00); db(0x04); db(0x6e); db(0x06); db(0x4e); db(0xae);
- db(0xff); db(0x4c); db(0x60); db(0xbe); db(0x0c); db(0x40); db(0x00); db(0x05);
- db(0x6e); db(0x46); db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x70); db(0x26);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4c); db(0xdf); db(0x03); db(0x00); db(0x24); db(0x40);
- db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08); db(0x25); db(0x48);
- db(0x00); db(0x0e); db(0x35); db(0x7c); db(0x00); db(0x26); db(0x00); db(0x12);
- db(0x25); db(0x7c); db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14);
- db(0x35); db(0x7c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x25); db(0x49);
- db(0x00); db(0x1a); db(0x20); db(0x69); db(0x00); db(0x10); db(0x22); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x00); db(0xff); db(0x74);
- db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x09); db(0x84);
- db(0x70); db(0x04); db(0x4e); db(0x90); db(0x70); db(0x01); db(0x4c); db(0xdf);
- db(0x04); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xc0);
- db(0x70); db(0x1a); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xfa);
- db(0x0c); db(0xc7); db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
- db(0xff); db(0x28); db(0x23); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xfa);
- db(0xff); db(0x20); db(0x23); db(0x48); db(0x00); db(0x12); db(0x33); db(0x7c);
- db(0x02); db(0x14); db(0x00); db(0x08); db(0x70); db(0x03); db(0x4e); db(0xae);
- db(0xff); db(0x58); db(0x4c); db(0xdf); db(0x03); db(0x03); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0xc0); db(0xf2); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x24); db(0x48); db(0x26); db(0x49); db(0x20); db(0x3c); db(0x00); db(0x00);
- db(0x00); db(0xbe); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40); db(0x70); db(0x00);
- db(0x43); db(0xeb); db(0x01); db(0xa0); db(0x11); db(0xb1); db(0x00); db(0x00);
- db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c);
- db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40);
- db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); db(0x0c); db(0x61);
- db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x98);
- db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10);
- db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x7f); db(0x7e); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48);
- db(0x0c); db(0x9a); db(0x00); db(0x00); db(0x03); db(0xf3); db(0x66); db(0x00);
- db(0x00); db(0xe4); db(0x50); db(0x8a); db(0x2e); db(0x2a); db(0x00); db(0x04);
- db(0x9e); db(0x92); db(0x50); db(0x8a); db(0x52); db(0x87); db(0x26); db(0x4a);
- db(0x20); db(0x07); db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xd7); db(0xc0);
- db(0x28); db(0x4a); db(0x9b); db(0xcd); db(0x7c); db(0x00); db(0x24); db(0x12);
- db(0x72); db(0x01); db(0x08); db(0x02); db(0x00); db(0x1e); db(0x67); db(0x04);
- db(0x08); db(0xc1); db(0x00); db(0x01); db(0x08); db(0xc1); db(0x00); db(0x10);
- db(0xe5); db(0x8a); db(0x20); db(0x02); db(0x66); db(0x04); db(0x42); db(0x9a);
- db(0x60); db(0x1e); db(0x50); db(0x80); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0xa0); db(0x20); db(0x40);
- db(0x20); db(0xc2); db(0x24); db(0xc8); db(0x22); db(0x0d); db(0x67); db(0x06);
- db(0x20); db(0x08); db(0xe4); db(0x88); db(0x2a); db(0x80); db(0x2a); db(0x48);
- db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0xc0); db(0x7c); db(0x00);
- db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74);
- db(0x18); db(0x00); db(0x58); db(0x88); db(0x26); db(0x1b); db(0x28); db(0x1b);
- db(0xe5); db(0x8c); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xe9);
- db(0x67); db(0x08); db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xea);
- db(0x66); db(0x0c); db(0x20); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x0e);
- db(0x10); db(0xdb); db(0x53); db(0x80); db(0x60); db(0xf6); db(0x0c); db(0x83);
- db(0x00); db(0x00); db(0x03); db(0xeb); db(0x66); db(0x4e); db(0x26); db(0x1b);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xec); db(0x66); db(0x28);
- db(0x22); db(0x06); db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74);
- db(0x18); db(0x00); db(0x58); db(0x88); db(0x20); db(0x1b); db(0x67); db(0xe6);
- db(0x22); db(0x1b); db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x26); db(0x34);
- db(0x18); db(0x00); db(0x58); db(0x83); db(0x24); db(0x1b); db(0xd7); db(0xb0);
- db(0x28); db(0x00); db(0x53); db(0x80); db(0x66); db(0xf6); db(0x60); db(0xe4);
- db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xf2); db(0x66); db(0x14);
- db(0x52); db(0x86); db(0xbe); db(0x86); db(0x66); db(0x00); db(0xff); db(0x8a);
- db(0x7e); db(0x01); db(0x20); db(0x54); db(0x20); db(0x07); db(0x4c); db(0xdf);
- db(0x7e); db(0xfe); db(0x4e); db(0x75); db(0x7e); db(0x00); db(0x60); db(0xf4);
- db(0x48); db(0xe7); db(0x40); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x41); db(0xee); db(0x01); db(0x50); db(0x20); db(0x50); db(0x4a); db(0x90);
- db(0x67); db(0x1a); db(0x22); db(0x68); db(0x00); db(0x0a); db(0x45); db(0xfa);
- db(0x0b); db(0xa2); db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01);
- db(0x66); db(0x06); db(0x4a); db(0x00); db(0x67); db(0x42); db(0x60); db(0xf2);
- db(0x20); db(0x50); db(0x60); db(0xe2); db(0x70); db(0x20); db(0x22); db(0x3c);
+ db(0x60); db(0x00); db(0x09); db(0x6a); db(0x00); db(0x00); db(0x07); db(0x48);
+ db(0x00); db(0x00); db(0x00); db(0x30); db(0x00); db(0x00); db(0x01); db(0x74);
+ db(0x00); db(0x00); db(0x00); db(0x1c); db(0x00); db(0x00); db(0x02); db(0x30);
+ db(0x00); db(0x00); db(0x0d); db(0x52); db(0x43); db(0xfa); db(0x11); db(0xef);
+ db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
+ db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00); db(0x0b); db(0x56);
+ db(0x2a); db(0x50); db(0x43); db(0xfa); db(0x11); db(0xf8); db(0x70); db(0x24);
+ db(0x7a); db(0x01); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
+ db(0x66); db(0x0c); db(0x43); db(0xfa); db(0x11); db(0xe8); db(0x70); db(0x00);
+ db(0x7a); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
+ db(0x4a); db(0xad); db(0x01); db(0x0c); db(0x67); db(0x5a); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40);
+ db(0x27); db(0x4c); db(0x01); db(0x9c); db(0x7c); db(0x00); db(0xbc); db(0xad);
+ db(0x01); db(0x0c); db(0x64); db(0x2c); db(0x2f); db(0x06); db(0x7e); db(0x01);
+ db(0x4a); db(0x45); db(0x67); db(0x04); db(0x08); db(0xc7); db(0x00); db(0x02);
+ db(0x2f); db(0x0b); db(0x20); db(0x4b); db(0x61); db(0x00); db(0x06); db(0xb2);
+ db(0x26); db(0x5f); db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe);
+ db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46);
+ db(0x60); db(0xdc); db(0x2c); db(0x1f); db(0x52); db(0x46); db(0x60); db(0xce);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4b); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x22); db(0x4c); db(0x4e); db(0xae);
+ db(0xfe); db(0x62); db(0x30); db(0x3c); db(0xff); db(0x80); db(0x61); db(0x00);
+ db(0x0a); db(0xc4); db(0x4e); db(0x90); db(0x72); db(0x03); db(0x74); db(0xf6);
+ db(0x20); db(0x7c); db(0x00); db(0x20); db(0x00); db(0x00); db(0x90); db(0x88);
+ db(0x65); db(0x0a); db(0x67); db(0x08); db(0x78); db(0x00); db(0x22); db(0x44);
+ db(0x4e); db(0xae); db(0xfd); db(0x96); db(0x41); db(0xfa); db(0x10); db(0xf3);
+ db(0x43); db(0xfa); db(0x00); db(0x1c); db(0x70); db(0x0a); db(0x61); db(0x00);
+ db(0x0b); db(0xa2); db(0x22); db(0x40); db(0x72); db(0x01); db(0x30); db(0x3c);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0x90); db(0x4e); db(0x90);
+ db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x11);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x43); db(0xfa); db(0x10); db(0xef);
+ db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
+ db(0x67); db(0xe4); db(0x2c); db(0x40); db(0x41); db(0xfa); db(0x10); db(0xc6);
+ db(0x22); db(0x08); db(0x74); db(0x0f); db(0x41); db(0xfa); db(0x00); db(0x22);
+ db(0x26); db(0x08); db(0xe4); db(0x8b); db(0x28); db(0x3c); db(0x00); db(0x00);
+ db(0x1f); db(0x40); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x22); db(0x4e);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
+ db(0x60); db(0xbc); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x72); db(0x02); db(0x30); db(0x3c);
+ db(0xff); db(0x48); db(0x61); db(0x00); db(0x0a); db(0x30); db(0x4e); db(0x90);
+ db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x07); db(0x86);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x20);
+ db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x16);
+ db(0x70); db(0x00); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x00);
+ db(0x00); db(0xa2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x30); db(0x3c);
+ db(0xff); db(0x50); db(0x61); db(0x00); db(0x0a); db(0x00); db(0x70); db(0x02);
+ db(0x4e); db(0x90); db(0x0c); db(0x40); db(0x00); db(0x01); db(0x6d); db(0x00);
+ db(0x00); db(0x7c); db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0xe4); db(0x0c); db(0x40); db(0x00); db(0x02); db(0x6e); db(0x08);
+ db(0x20); db(0x01); db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x60); db(0xd6);
+ db(0x0c); db(0x40); db(0x00); db(0x03); db(0x6e); db(0x06); db(0x4e); db(0xae);
+ db(0xfe); db(0x86); db(0x60); db(0xca); db(0x0c); db(0x40); db(0x00); db(0x04);
+ db(0x6e); db(0x06); db(0x4e); db(0xae); db(0xff); db(0x4c); db(0x60); db(0xbe);
+ db(0x0c); db(0x40); db(0x00); db(0x05); db(0x6e); db(0x46); db(0x48); db(0xe7);
+ db(0x00); db(0xc0); db(0x70); db(0x26); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4c); db(0xdf);
+ db(0x03); db(0x00); db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08);
+ db(0x00); db(0x08); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x35); db(0x7c);
+ db(0x00); db(0x26); db(0x00); db(0x12); db(0x25); db(0x7c); db(0x40); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x14); db(0x35); db(0x7c); db(0x12); db(0x34);
+ db(0x00); db(0x18); db(0x25); db(0x49); db(0x00); db(0x1a); db(0x20); db(0x69);
+ db(0x00); db(0x10); db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xfe); db(0x92);
+ db(0x60); db(0x00); db(0xff); db(0x74); db(0x30); db(0x3c); db(0xff); db(0x50);
+ db(0x61); db(0x00); db(0x09); db(0x72); db(0x70); db(0x04); db(0x4e); db(0x90);
+ db(0x70); db(0x01); db(0x4c); db(0xdf); db(0x04); db(0x00); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x70); db(0x1a); db(0x22); db(0x3c);
db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08);
- db(0x41); db(0xfa); db(0x0b); db(0x78); db(0x25); db(0x48); db(0x00); db(0x0a);
- db(0x41); db(0xfa); db(0x0b); db(0x05); db(0x25); db(0x48); db(0x00); db(0x0e);
- db(0x41); db(0xea); db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90);
- db(0x21); db(0x48); db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50);
- db(0x22); db(0x4a); db(0x4e); db(0xae); db(0xff); db(0x0a); db(0x20); db(0x4a);
- db(0x20); db(0x08); db(0x4c); db(0xdf); db(0x47); db(0x02); db(0x4e); db(0x75);
- db(0x48); db(0xe7); db(0x01); db(0x02); db(0x2e); db(0x00); db(0x4a); db(0x2b);
- db(0x00); db(0x4c); db(0x67); db(0x7c); db(0x2c); db(0x6b); db(0x00); db(0xa0);
- db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e);
- db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80);
- db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07);
- db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20);
- db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
- db(0x66); db(0x0c); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x22); db(0x2b);
- db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07);
- db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20);
- db(0x61); db(0x00); db(0x00); db(0xac); db(0x08); db(0x07); db(0x00); db(0x01);
+ db(0x22); db(0x40); db(0x41); db(0xfa); db(0x0f); db(0x8e); db(0x23); db(0x48);
+ db(0x00); db(0x0a); db(0x41); db(0xfa); db(0xff); db(0x28); db(0x23); db(0x48);
+ db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xff); db(0x20); db(0x23); db(0x48);
+ db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
+ db(0x70); db(0x03); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x30); db(0x3a);
+ db(0x0a); db(0xea); db(0x67); db(0x04); db(0x61); db(0x00); db(0x0a); db(0x88);
+ db(0x4c); db(0xdf); db(0x03); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0xc0); db(0xf2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48);
+ db(0x26); db(0x49); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xbe);
+ db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x20); db(0x40); db(0x70); db(0x00); db(0x43); db(0xeb);
+ db(0x01); db(0xa0); db(0x11); db(0xb1); db(0x00); db(0x00); db(0x00); db(0x0e);
+ db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c); db(0x66); db(0xf2);
+ db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40); db(0x00); db(0x36);
+ db(0x22); db(0x48); db(0x41); db(0xfa); db(0x0f); db(0x1e); db(0x23); db(0x48);
+ db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x98); db(0x41); db(0xe8);
+ db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10); db(0x4c); db(0xdf);
+ db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x7f); db(0x7e);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x48); db(0x0c); db(0x9a);
+ db(0x00); db(0x00); db(0x03); db(0xf3); db(0x66); db(0x00); db(0x00); db(0xe4);
+ db(0x50); db(0x8a); db(0x2e); db(0x2a); db(0x00); db(0x04); db(0x9e); db(0x92);
+ db(0x50); db(0x8a); db(0x52); db(0x87); db(0x26); db(0x4a); db(0x20); db(0x07);
+ db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xd7); db(0xc0); db(0x28); db(0x4a);
+ db(0x9b); db(0xcd); db(0x7c); db(0x00); db(0x24); db(0x12); db(0x72); db(0x01);
+ db(0x08); db(0x02); db(0x00); db(0x1e); db(0x67); db(0x04); db(0x08); db(0xc1);
+ db(0x00); db(0x01); db(0x08); db(0xc1); db(0x00); db(0x10); db(0xe5); db(0x8a);
+ db(0x20); db(0x02); db(0x66); db(0x04); db(0x42); db(0x9a); db(0x60); db(0x1e);
+ db(0x50); db(0x80); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80);
+ db(0x67); db(0x00); db(0x00); db(0xa0); db(0x20); db(0x40); db(0x20); db(0xc2);
+ db(0x24); db(0xc8); db(0x22); db(0x0d); db(0x67); db(0x06); db(0x20); db(0x08);
+ db(0xe4); db(0x88); db(0x2a); db(0x80); db(0x2a); db(0x48); db(0x52); db(0x86);
+ db(0xbe); db(0x86); db(0x66); db(0xc0); db(0x7c); db(0x00); db(0x22); db(0x06);
+ db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
+ db(0x58); db(0x88); db(0x26); db(0x1b); db(0x28); db(0x1b); db(0xe5); db(0x8c);
+ db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xe9); db(0x67); db(0x08);
+ db(0x0c); db(0x83); db(0x00); db(0x00); db(0x03); db(0xea); db(0x66); db(0x0c);
+ db(0x20); db(0x04); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x10); db(0xdb);
+ db(0x53); db(0x80); db(0x60); db(0xf6); db(0x0c); db(0x83); db(0x00); db(0x00);
+ db(0x03); db(0xeb); db(0x66); db(0x4e); db(0x26); db(0x1b); db(0x0c); db(0x83);
+ db(0x00); db(0x00); db(0x03); db(0xec); db(0x66); db(0x28); db(0x22); db(0x06);
+ db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x20); db(0x74); db(0x18); db(0x00);
+ db(0x58); db(0x88); db(0x20); db(0x1b); db(0x67); db(0xe6); db(0x22); db(0x1b);
+ db(0xd2); db(0x81); db(0xd2); db(0x81); db(0x26); db(0x34); db(0x18); db(0x00);
+ db(0x58); db(0x83); db(0x24); db(0x1b); db(0xd7); db(0xb0); db(0x28); db(0x00);
+ db(0x53); db(0x80); db(0x66); db(0xf6); db(0x60); db(0xe4); db(0x0c); db(0x83);
+ db(0x00); db(0x00); db(0x03); db(0xf2); db(0x66); db(0x14); db(0x52); db(0x86);
+ db(0xbe); db(0x86); db(0x66); db(0x00); db(0xff); db(0x8a); db(0x7e); db(0x01);
+ db(0x20); db(0x54); db(0x20); db(0x07); db(0x4c); db(0xdf); db(0x7e); db(0xfe);
+ db(0x4e); db(0x75); db(0x7e); db(0x00); db(0x60); db(0xf4); db(0x48); db(0xe7);
+ db(0x40); db(0xe2); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xee);
+ db(0x01); db(0x50); db(0x20); db(0x50); db(0x4a); db(0x90); db(0x67); db(0x1a);
+ db(0x22); db(0x68); db(0x00); db(0x0a); db(0x45); db(0xfa); db(0x0e); db(0x70);
+ db(0x10); db(0x19); db(0x12); db(0x1a); db(0xb0); db(0x01); db(0x66); db(0x06);
+ db(0x4a); db(0x00); db(0x67); db(0x42); db(0x60); db(0xf2); db(0x20); db(0x50);
+ db(0x60); db(0xe2); db(0x70); db(0x20); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x24); db(0x40);
+ db(0x15); db(0x7c); db(0x00); db(0x08); db(0x00); db(0x08); db(0x41); db(0xfa);
+ db(0x0e); db(0x46); db(0x25); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa);
+ db(0x0d); db(0xc2); db(0x25); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xea);
+ db(0x00); db(0x12); db(0x20); db(0x88); db(0x58); db(0x90); db(0x21); db(0x48);
+ db(0x00); db(0x08); db(0x41); db(0xee); db(0x01); db(0x50); db(0x22); db(0x4a);
+ db(0x4e); db(0xae); db(0xff); db(0x0a); db(0x20); db(0x4a); db(0x20); db(0x08);
+ db(0x4c); db(0xdf); db(0x47); db(0x02); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x01); db(0x02); db(0x2e); db(0x00); db(0x4a); db(0x2b); db(0x00); db(0x4c);
+ db(0x67); db(0x7c); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
+ db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
+ db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
+ db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x08); db(0x07); db(0x00); db(0x01);
db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c);
- db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4);
- db(0x61); db(0x00); db(0x00); db(0x94); db(0x4e); db(0xae); db(0xff); db(0x76);
- db(0x4c); db(0xdf); db(0x40); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7);
- db(0x01); db(0x22); db(0x2e); db(0x00); db(0x2c); db(0x6b); db(0x00); db(0xa0);
- db(0x0c); db(0x6e); db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e);
- db(0x72); db(0x0e); db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80);
- db(0xff); db(0xff); db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07);
- db(0x00); db(0x00); db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20);
- db(0x22); db(0x08); db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e);
- db(0x67); db(0x0c); db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x22); db(0x2b);
- db(0x00); db(0xb4); db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x72); db(0x0e);
- db(0x4e); db(0xae); db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07);
- db(0x00); db(0x00); db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20);
- db(0x61); db(0x00); db(0x00); db(0x44); db(0x08); db(0x07); db(0x00); db(0x01);
+ db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
+ db(0x4e); db(0xae); db(0xfd); db(0x5a); db(0x72); db(0x0e); db(0x4e); db(0xae);
+ db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
+ db(0x00); db(0xac); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
+ db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x66); db(0x0c); db(0x50); db(0xeb);
+ db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
+ db(0x00); db(0x94); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
+ db(0x40); db(0x80); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x01); db(0x22);
+ db(0x2e); db(0x00); db(0x2c); db(0x6b); db(0x00); db(0xa0); db(0x0c); db(0x6e);
+ db(0x00); db(0x25); db(0x00); db(0x14); db(0x65); db(0x3e); db(0x72); db(0x0e);
+ db(0x4e); db(0xae); db(0xfd); db(0x66); db(0x02); db(0x80); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x62); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x0a); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x22); db(0x08);
+ db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x08); db(0x07); db(0x00); db(0x01);
db(0x67); db(0x12); db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c);
- db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4);
- db(0x61); db(0x00); db(0x00); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x76);
- db(0x4c); db(0xdf); db(0x44); db(0x80); db(0x4e); db(0x75); db(0x22); db(0x48);
- db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22);
- db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8);
- db(0x22); db(0xa8); db(0x00); db(0x04); db(0x20); db(0x09); db(0xe4); db(0x88);
- db(0x21); db(0x40); db(0x00); db(0x04); db(0x4e); db(0x75); db(0x24); db(0x48);
- db(0x20); db(0x6b); db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22);
- db(0x20); db(0x68); db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8);
- db(0x22); db(0x68); db(0x00); db(0x04); db(0xd3); db(0xc9); db(0xd3); db(0xc9);
- db(0xb3); db(0xca); db(0x66); db(0x06); db(0x21); db(0x52); db(0x00); db(0x04);
- db(0x60); db(0x18); db(0x20); db(0x09); db(0x67); db(0x0e); db(0x20); db(0x11);
- db(0xd0); db(0x80); db(0xd0); db(0x80); db(0xb5); db(0xc0); db(0x67); db(0x04);
- db(0x22); db(0x40); db(0x60); db(0xee); db(0x20); db(0x09); db(0x67); db(0x02);
- db(0x22); db(0x92); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
- db(0x74); db(0x16); db(0x9f); db(0xc2); db(0x24); db(0x4f); db(0x32); db(0x02);
- db(0x42); db(0x32); db(0x10); db(0xff); db(0x53); db(0x41); db(0x66); db(0xf8);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x72); db(0x0f); db(0x4a); db(0x80);
- db(0x67); db(0x02); db(0x72); db(0x10); db(0x15); db(0x41); db(0x00); db(0x04);
- db(0x35); db(0x7c); db(0x08); db(0x00); db(0x00); db(0x08); db(0x22); db(0x6b);
- db(0x00); db(0xa4); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c);
- db(0x23); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24);
- db(0x23); db(0x4a); db(0x00); db(0x28); db(0x13); db(0x7c); db(0x00); db(0x01);
- db(0x00); db(0x1e); db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x33); db(0x7c);
- db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01);
- db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6b);
- db(0x00); db(0xa8); db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e);
- db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6b);
- db(0x00); db(0xa4); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0xdf); db(0xc2);
- db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); db(0x4a); db(0x00);
- db(0x67); db(0x26); db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x66); db(0x36);
- db(0x70); db(0x00); db(0x4a); db(0x33); db(0x00); db(0x4d); db(0x67); db(0x04);
- db(0x52); db(0x00); db(0x60); db(0xf6); db(0x17); db(0x40); db(0x00); db(0x4c);
- db(0x67); db(0x24); db(0x20); db(0x01); db(0x61); db(0x00); db(0xfd); db(0xf2);
- db(0x70); db(0x01); db(0x61); db(0x00); db(0xff); db(0x60); db(0x60); db(0x16);
- db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x67); db(0x10); db(0x42); db(0x2b);
- db(0x00); db(0x4c); db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0x68);
- db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x48); db(0x4e); db(0x75);
- db(0x4a); db(0xac); db(0x00); db(0x14); db(0x67); db(0x0a); db(0x70); db(0x00);
- db(0x72); db(0x01); db(0x61); db(0x00); db(0xff); db(0xb2); db(0x4e); db(0x75);
- db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0xa8);
- db(0x4e); db(0x75); db(0x10); db(0x2b); db(0x00); db(0xac); db(0x6b); db(0x0a);
- db(0x70); db(0x01); db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0x98);
- db(0x4e); db(0x75); db(0x72); db(0x01); db(0x0c); db(0x00); db(0x00); db(0xfe);
- db(0x66); db(0x02); db(0x72); db(0x03); db(0x70); db(0x00); db(0x61); db(0x00);
- db(0xff); db(0x86); db(0x4e); db(0x75); db(0x20); db(0x6c); db(0x00); db(0x24);
- db(0x4a); db(0x90); db(0x67); db(0x0c); db(0x4a); db(0xa8); db(0x00); db(0x08);
- db(0x66); db(0x0a); db(0x4a); db(0xa8); db(0x00); db(0x0c); db(0x66); db(0x04);
- db(0x70); db(0x01); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e);
- db(0x2a); db(0x48); db(0x24); db(0x6c); db(0x00); db(0x18); db(0x2e); db(0x15);
- db(0x7a); db(0x00); db(0x4a); db(0x87); db(0x67); db(0x70); db(0x20); db(0x0a);
- db(0x67); db(0x6c); db(0x7c); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x08);
- db(0x67); db(0x12); db(0x24); db(0x2a); db(0x00); db(0x04); db(0x2c); db(0x6b);
- db(0x00); db(0xa0); db(0x4e); db(0xae); db(0xfc); db(0x34); db(0x4a); db(0x80);
- db(0x66); db(0x02); db(0x50); db(0xc6); db(0x22); db(0x2d); db(0x00); db(0x0c);
- db(0x67); db(0x1c); db(0x20); db(0x41); db(0x22); db(0x4a); db(0x2f); db(0x0a);
- db(0x45); db(0xec); db(0x00); db(0x20); db(0x48); db(0x7a); db(0x00); db(0x08);
- db(0x2f); db(0x28); db(0x00); db(0x08); db(0x4e); db(0x75); db(0x24); db(0x5f);
- db(0x4a); db(0x80); db(0x66); db(0x02); db(0x50); db(0xc6); db(0x4a); db(0x06);
- db(0x67); db(0x24); db(0x20); db(0x2a); db(0x00); db(0x04); db(0x90); db(0x8a);
- db(0x4a); db(0x92); db(0x66); db(0x0a); db(0x20); db(0x05); db(0x67); db(0x10);
- db(0x20); db(0x40); db(0x42); db(0x90); db(0x60); db(0x0a); db(0x20); db(0x52);
- db(0x22); db(0x4a); db(0x22); db(0xd8); db(0x59); db(0x80); db(0x6a); db(0xfa);
- db(0x53); db(0x95); db(0x53); db(0x87); db(0x60); db(0x94); db(0x2a); db(0x0a);
- db(0x24); db(0x52); db(0x53); db(0x87); db(0x60); db(0x8c); db(0x4c); db(0xdf);
- db(0x7c); db(0xfc); db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90);
- db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfc); db(0x7c); db(0x21); db(0x40);
- db(0x01); db(0x98); db(0x2f); db(0x08); db(0x30); db(0x3c); db(0xff); db(0xfc);
- db(0x61); db(0x00); db(0x04); db(0x58); db(0x2a); db(0x50); db(0x30); db(0x3c);
- db(0xff); db(0x28); db(0x61); db(0x00); db(0x04); db(0x4e); db(0x22); db(0x48);
- db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90); db(0x42); db(0xa8);
- db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00); db(0x0c); db(0x43);
- db(0xff); db(0xfe); db(0x67); db(0x00); db(0xf9); db(0x9c); db(0x0c); db(0x43);
- db(0x00); db(0x01); db(0x66); db(0x0e); db(0x08); db(0x07); db(0x00); db(0x02);
- db(0x66); db(0x08); db(0x08); db(0x07); db(0x00); db(0x01); db(0x66); db(0x00);
- db(0x00); db(0x02); db(0x20); db(0x28); db(0x01); db(0x90); db(0x67); db(0x14);
- db(0x6b); db(0x12); db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f);
- db(0x21); db(0x40); db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e);
- db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00);
- db(0x03); db(0xfa); db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c);
- db(0x2f); db(0x08); db(0x4e); db(0xae); db(0xff); db(0x70); db(0x20); db(0x5f);
- db(0x22); db(0x48); db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20);
- db(0x61); db(0x00); db(0x03); db(0xe0); db(0x4e); db(0x90); db(0x70); db(0x00);
- db(0x27); db(0x40); db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10);
- db(0x27); db(0x40); db(0x00); db(0x20); db(0x4a); db(0xa9); db(0x01); db(0x94);
- db(0x67); db(0x28); db(0x20); db(0x69); db(0x01); db(0x94); db(0x61); db(0x00);
- db(0xfa); db(0xde); db(0x48); db(0xe7); db(0x80); db(0xc0); db(0x20); db(0x29);
- db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x4c); db(0xdf);
- db(0x03); db(0x01); db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00);
- db(0xfa); db(0x68); db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf9); db(0x02);
- db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00); db(0x03); db(0x94);
- db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29); db(0x00); db(0x4f);
- db(0x4a); db(0x80); db(0x66); db(0x1a); db(0x27); db(0x7c); db(0x00); db(0x00);
- db(0x17); db(0x70); db(0x00); db(0x14); db(0x41); db(0xfa); db(0xf7); db(0xce);
- db(0x20); db(0x08); db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x20);
- db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0x24); db(0x08); db(0x07);
- db(0x00); db(0x00); db(0x67); db(0x3a); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x70); db(0x14); db(0x72); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x22); db(0x40); db(0x70); db(0x00); db(0x22); db(0x80); db(0x23); db(0x40);
- db(0x00); db(0x04); db(0x33); db(0x40); db(0x00); db(0x0e); db(0x30); db(0x3c);
- db(0x10); db(0x00); db(0x80); db(0x03); db(0x33); db(0x40); db(0x00); db(0x08);
- db(0x23); db(0x6d); db(0x01); db(0x04); db(0x00); db(0x0a); db(0x23); db(0x4b);
- db(0x00); db(0x10); db(0x41); db(0xec); db(0x00); db(0x4a); db(0x4e); db(0xae);
- db(0xfe); db(0xf2); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x24); db(0x49);
- db(0x20); db(0x4b); db(0x72); db(0x00); db(0x22); db(0x41); db(0x08); db(0x07);
- db(0x00); db(0x01); db(0x67); db(0x08); db(0x08); db(0x07); db(0x00); db(0x02);
- db(0x67); db(0x02); db(0x72); db(0x01); db(0x70); db(0xec); db(0x2c); db(0x4c);
- db(0x4e); db(0xae); db(0xff); db(0x6a); db(0x08); db(0x07); db(0x00); db(0x01);
- db(0x67); db(0x5c); db(0x08); db(0x07); db(0x00); db(0x02); db(0x66); db(0x56);
- db(0x20); db(0x52); db(0x74); db(0x02); db(0x52); db(0x82); db(0x4a); db(0x30);
- db(0x28); db(0xfd); db(0x66); db(0xf8); db(0x2c); db(0x78); db(0x00); db(0x04);
- db(0x20); db(0x02); db(0x72); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
- db(0x4a); db(0x80); db(0x67); db(0x3a); db(0x20); db(0x52); db(0x24); db(0x40);
- db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x13); db(0x7c);
- db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x43); db(0xfa); db(0x06); db(0x6e); db(0x70); db(0x00);
- db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2c); db(0x40); db(0x22); db(0x0a);
- db(0x4e); db(0xae); db(0xff); db(0x52); db(0x22); db(0x4e); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4a);
- db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x70); db(0x00);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2c); db(0x01);
- db(0x7e); db(0x06); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa);
- db(0x06); db(0x58); db(0x70); db(0x24); db(0x4e); db(0xae); db(0xfd); db(0xd8);
- db(0x4a); db(0x80); db(0x66); db(0x0e); db(0x08); db(0x87); db(0x00); db(0x02);
- db(0x43); db(0xfa); db(0x06); db(0x46); db(0x70); db(0x00); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x20); db(0x3c); db(0x00); db(0x00);
- db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40); db(0x4a); db(0x80);
- db(0x67); db(0x2c); db(0x21); db(0x4c); db(0x01); db(0x9c); db(0x48); db(0xe7);
- db(0x00); db(0x8a); db(0x61); db(0x00); db(0xfd); db(0xf6); db(0x4c); db(0xdf);
- db(0x51); db(0x00); db(0x0c); db(0x80); db(0xff); db(0xff); db(0xff); db(0xfe);
- db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46); db(0x48); db(0x46);
- db(0x60); db(0xe4); db(0x22); db(0x48); db(0x20); db(0x3c); db(0x00); db(0x00);
- db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x22); db(0x4c);
- db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf); db(0x7c); db(0xfc);
- db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9);
- db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40); db(0x4b); db(0xe8);
- db(0x00); db(0x5c); db(0x43); db(0xfa); db(0x05); db(0xbe); db(0x70); db(0x00);
- db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40); db(0x20); db(0x3c);
- db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x26); db(0x40);
- db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46); db(0x00); db(0x04);
- db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a); db(0x00); db(0xa0);
- db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0); db(0x61); db(0x00);
- db(0x02); db(0xc2); db(0x27); db(0x40); db(0x00); db(0xa4); db(0x61); db(0x00);
- db(0x02); db(0xee); db(0x27); db(0x40); db(0x00); db(0xa8); db(0x7a); db(0x00);
- db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d);
- db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x26); db(0x2c);
- db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00);
- db(0x01); db(0xba); db(0x70); db(0x00); db(0x4e); db(0x90); db(0x24); db(0x00);
- db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x34); db(0x08); db(0x02);
- db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01); db(0x61); db(0x00);
- db(0xfb); db(0x9c); db(0x61); db(0x00); db(0x03); db(0x4a); db(0x60); db(0x00);
- db(0x00); db(0xfc); db(0x61); db(0x00); db(0x03); db(0x42); db(0x20); db(0x4d);
- db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x4a); db(0x80);
- db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d); db(0x00); db(0x0f);
- db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x11); db(0x4e); db(0xae);
- db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x08);
- db(0x61); db(0x00); db(0xfc); db(0x40); db(0x42); db(0x2b); db(0x00); db(0xac);
- db(0x20); db(0x0c); db(0x67); db(0xce); db(0x0c); db(0x6c); db(0x00); db(0x26);
- db(0x00); db(0x12); db(0x66); db(0x4c); db(0x0c); db(0xac); db(0x40); db(0x00);
- db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x42); db(0x0c); db(0x6c);
- db(0x12); db(0x34); db(0x00); db(0x18); db(0x66); db(0x3a); db(0x20); db(0x6c);
- db(0x00); db(0x1a); db(0x20); db(0x28); db(0x00); db(0x0c); db(0x02); db(0x80);
- db(0x80); db(0x00); db(0x00); db(0x08); db(0x0c); db(0x80); db(0x80); db(0x00);
- db(0x00); db(0x08); db(0x66); db(0x18); db(0x02); db(0xa8); db(0x7f); db(0xff);
- db(0xff); db(0xff); db(0x00); db(0x0c); db(0x20); db(0x68); db(0x00); db(0x10);
- db(0x22); db(0x4c); db(0x12); db(0xbc); db(0x00); db(0x08); db(0x4e); db(0xae);
- db(0xfe); db(0x92); db(0x60); db(0x86); db(0x22); db(0x4c); db(0x70); db(0x26);
- db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00); db(0xff); db(0x7c);
- db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x66); db(0x3e); db(0x30); db(0x3c);
- db(0xff); db(0x50); db(0x61); db(0x00); db(0x01); db(0x06); db(0x70); db(0x01);
- db(0x4e); db(0x90); db(0x45); db(0xeb); db(0x00); db(0x04); db(0x20); db(0x52);
- db(0x20); db(0x08); db(0x67); db(0x00); db(0xff); db(0x5e); db(0x22); db(0x50);
- db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x04); db(0x6a); db(0x16);
- db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x28); db(0x68); db(0x00); db(0x0a);
- db(0x61); db(0x4a); db(0x53); db(0x85); db(0x4c); db(0xdf); db(0x03); db(0x00);
- db(0x24); db(0x89); db(0x20); db(0x49); db(0x60); db(0xda); db(0x24); db(0x48);
- db(0x20); db(0x49); db(0x60); db(0xd4); db(0x0c); db(0x85); db(0x00); db(0x00);
- db(0x00); db(0x14); db(0x65); db(0x00); db(0x00); db(0x0a); db(0x70); db(0x01);
- db(0x29); db(0x40); db(0x00); db(0x04); db(0x60); db(0x12); db(0x61); db(0x5c);
- db(0x30); db(0x3c); db(0xff); db(0x30); db(0x61); db(0x00); db(0x00); db(0xb4);
- db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x52); db(0x85);
- db(0x28); db(0xab); db(0x00); db(0x04); db(0x27); db(0x4c); db(0x00); db(0x04);
- db(0x60); db(0x00); db(0xff); db(0x08); db(0x28); db(0x43); db(0x61); db(0x04);
- db(0x60); db(0x00); db(0xff); db(0x00); db(0x0c); db(0xac); db(0x00); db(0x00);
- db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00);
- db(0xfb); db(0x40); db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09);
- db(0x00); db(0x08); db(0x66); db(0x12); db(0x61); db(0x00); db(0xfb); db(0x6e);
- db(0x66); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00);
- db(0x00); db(0x72); db(0x4e); db(0x90); db(0x60); db(0xee); db(0x22); db(0x54);
- db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d); db(0x00); db(0x04);
- db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05); db(0x7a); db(0xfc);
- db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a); db(0x67); db(0x00);
- db(0x00); db(0x0c); db(0x52); db(0x85); db(0x67); db(0x1e); db(0x22); db(0x4a);
- db(0x24); db(0x52); db(0x60); db(0xf0); db(0x52); db(0x85); db(0x67); db(0x3c);
- db(0x24); db(0x47); db(0x70); db(0x18); db(0x72); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x52); db(0x46); db(0x24); db(0x40); db(0x24); db(0x87);
- db(0x2e); db(0x0a); db(0x60); db(0xe8); db(0x20); db(0x12); db(0x67); db(0x24);
- db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x1e); db(0x20); db(0x40);
- db(0x20); db(0x10); db(0x67); db(0x18); db(0x70); db(0x00); db(0x22); db(0x80);
- db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18); db(0x4e); db(0xae);
- db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01); db(0x00); db(0x00);
- db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87); db(0x2a); db(0x1f);
- db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf4); db(0x48); db(0x02); db(0x80);
- db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75);
- db(0x00); db(0x00); db(0x0c); db(0xaf); db(0x00); db(0x00); db(0x00); db(0x22);
- db(0x00); db(0x08); db(0x66); db(0x30); db(0x48); db(0xe7); db(0xc0); db(0xe2);
- db(0x2c); db(0x78); db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae);
- db(0xfe); db(0xda); db(0x24); db(0x40); db(0x22); db(0x4a); db(0x70); db(0xec);
- db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x41); db(0xfa); db(0xff); db(0xda);
- db(0x32); db(0x10); db(0xb2); db(0x50); db(0x67); db(0xfc); db(0x22); db(0x4a);
- db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x72); db(0x01); db(0x4c); db(0xdf);
- db(0x47); db(0x03); db(0x58); db(0x8f); db(0x4e); db(0x75); db(0x20); db(0x88);
- db(0x58); db(0x90); db(0x42); db(0xa8); db(0x00); db(0x04); db(0x21); db(0x48);
- db(0x00); db(0x08); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
- db(0x2c); db(0x79); db(0x00); db(0x00); db(0x00); db(0x04); db(0x70); db(0xff);
- db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x91); db(0xc8); db(0x24); db(0x00);
- db(0x6b); db(0x32); db(0x70); db(0x22); db(0x22); db(0x3c); db(0x00); db(0x01);
- db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x91); db(0xc8);
- db(0x24); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x15); db(0x7c);
- db(0x00); db(0x04); db(0x00); db(0x08); db(0x15); db(0x42); db(0x00); db(0x0f);
- db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x25); db(0x40);
- db(0x00); db(0x10); db(0x41); db(0xea); db(0x00); db(0x14); db(0x61); db(0x00);
- db(0xff); db(0xae); db(0x20); db(0x4a); db(0x20); db(0x08); db(0x4c); db(0xdf);
- db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22);
- db(0x2c); db(0x79); db(0x00); db(0x00); db(0x00); db(0x04); db(0x4a); db(0x80);
+ db(0x42); db(0x2b); db(0x00); db(0x9e); db(0x22); db(0x2b); db(0x00); db(0xb4);
+ db(0x4e); db(0xae); db(0xfd); db(0x60); db(0x72); db(0x0e); db(0x4e); db(0xae);
+ db(0xfd); db(0x6c); db(0x60); db(0x32); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x08); db(0x07); db(0x00); db(0x00);
+ db(0x67); db(0x08); db(0x41); db(0xeb); db(0x00); db(0x20); db(0x61); db(0x00);
+ db(0x00); db(0x44); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x12);
+ db(0x4a); db(0x2b); db(0x00); db(0x9e); db(0x67); db(0x0c); db(0x42); db(0x2b);
+ db(0x00); db(0x9e); db(0x20); db(0x6b); db(0x00); db(0xb4); db(0x61); db(0x00);
+ db(0x00); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4c); db(0xdf);
+ db(0x44); db(0x80); db(0x4e); db(0x75); db(0x22); db(0x48); db(0x20); db(0x6b);
+ db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
+ db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0xa8);
+ db(0x00); db(0x04); db(0x20); db(0x09); db(0xe4); db(0x88); db(0x21); db(0x40);
+ db(0x00); db(0x04); db(0x4e); db(0x75); db(0x24); db(0x48); db(0x20); db(0x6b);
+ db(0x00); db(0xa0); db(0x20); db(0x68); db(0x00); db(0x22); db(0x20); db(0x68);
+ db(0x00); db(0x18); db(0xd1); db(0xc8); db(0xd1); db(0xc8); db(0x22); db(0x68);
+ db(0x00); db(0x04); db(0xd3); db(0xc9); db(0xd3); db(0xc9); db(0xb3); db(0xca);
+ db(0x66); db(0x06); db(0x21); db(0x52); db(0x00); db(0x04); db(0x60); db(0x18);
+ db(0x20); db(0x09); db(0x67); db(0x0e); db(0x20); db(0x11); db(0xd0); db(0x80);
+ db(0xd0); db(0x80); db(0xb5); db(0xc0); db(0x67); db(0x04); db(0x22); db(0x40);
+ db(0x60); db(0xee); db(0x20); db(0x09); db(0x67); db(0x02); db(0x22); db(0x92);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x20); db(0x22); db(0x74); db(0x16);
+ db(0x9f); db(0xc2); db(0x24); db(0x4f); db(0x32); db(0x02); db(0x42); db(0x32);
+ db(0x10); db(0xff); db(0x53); db(0x41); db(0x66); db(0xf8); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x72); db(0x0f); db(0x4a); db(0x80); db(0x67); db(0x02);
+ db(0x72); db(0x10); db(0x15); db(0x41); db(0x00); db(0x04); db(0x35); db(0x7c);
+ db(0x08); db(0x00); db(0x00); db(0x08); db(0x22); db(0x6b); db(0x00); db(0xa4);
+ db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c);
+ db(0x00); db(0x00); db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a);
+ db(0x00); db(0x28); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
+ db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x33); db(0x7c); db(0x00); db(0x0a);
+ db(0x00); db(0x1c); db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x22); db(0x6b); db(0x00); db(0xa8);
+ db(0x25); db(0x69); db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69);
+ db(0x00); db(0x24); db(0x00); db(0x12); db(0x22); db(0x6b); db(0x00); db(0xa4);
+ db(0x4e); db(0xae); db(0xfe); db(0x38); db(0xdf); db(0xc2); db(0x4c); db(0xdf);
+ db(0x44); db(0x04); db(0x4e); db(0x75); db(0x4a); db(0x00); db(0x67); db(0x26);
+ db(0x4a); db(0x2b); db(0x00); db(0x4c); db(0x66); db(0x36); db(0x70); db(0x00);
+ db(0x4a); db(0x33); db(0x00); db(0x4d); db(0x67); db(0x04); db(0x52); db(0x00);
+ db(0x60); db(0xf6); db(0x17); db(0x40); db(0x00); db(0x4c); db(0x67); db(0x24);
+ db(0x20); db(0x01); db(0x61); db(0x00); db(0xfd); db(0xf2); db(0x70); db(0x01);
+ db(0x61); db(0x00); db(0xff); db(0x60); db(0x60); db(0x16); db(0x4a); db(0x2b);
+ db(0x00); db(0x4c); db(0x67); db(0x10); db(0x42); db(0x2b); db(0x00); db(0x4c);
+ db(0x20); db(0x01); db(0x61); db(0x00); db(0xfe); db(0x68); db(0x70); db(0x00);
+ db(0x61); db(0x00); db(0xff); db(0x48); db(0x4e); db(0x75); db(0x4a); db(0xac);
+ db(0x00); db(0x14); db(0x67); db(0x0a); db(0x70); db(0x00); db(0x72); db(0x01);
+ db(0x61); db(0x00); db(0xff); db(0xb2); db(0x4e); db(0x75); db(0x70); db(0x01);
+ db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0xa8); db(0x4e); db(0x75);
+ db(0x10); db(0x2b); db(0x00); db(0xac); db(0x6b); db(0x0a); db(0x70); db(0x01);
+ db(0x72); db(0x03); db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75);
+ db(0x72); db(0x01); db(0x0c); db(0x00); db(0x00); db(0xfe); db(0x66); db(0x02);
+ db(0x72); db(0x03); db(0x70); db(0x00); db(0x61); db(0x00); db(0xff); db(0x86);
+ db(0x4e); db(0x75); db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90);
+ db(0x67); db(0x0c); db(0x4a); db(0xa8); db(0x00); db(0x08); db(0x66); db(0x0a);
+ db(0x4a); db(0xa8); db(0x00); db(0x0c); db(0x66); db(0x04); db(0x70); db(0x01);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e); db(0x2a); db(0x48);
+ db(0x24); db(0x6c); db(0x00); db(0x18); db(0x2e); db(0x15); db(0x7a); db(0x00);
+ db(0x4a); db(0x87); db(0x67); db(0x70); db(0x20); db(0x0a); db(0x67); db(0x6c);
+ db(0x7c); db(0x00); db(0x22); db(0x2d); db(0x00); db(0x08); db(0x67); db(0x12);
+ db(0x24); db(0x2a); db(0x00); db(0x04); db(0x2c); db(0x6b); db(0x00); db(0xa0);
+ db(0x4e); db(0xae); db(0xfc); db(0x34); db(0x4a); db(0x80); db(0x66); db(0x02);
+ db(0x50); db(0xc6); db(0x22); db(0x2d); db(0x00); db(0x0c); db(0x67); db(0x1c);
+ db(0x20); db(0x41); db(0x22); db(0x4a); db(0x2f); db(0x0a); db(0x45); db(0xec);
+ db(0x00); db(0x20); db(0x48); db(0x7a); db(0x00); db(0x08); db(0x2f); db(0x28);
+ db(0x00); db(0x08); db(0x4e); db(0x75); db(0x24); db(0x5f); db(0x4a); db(0x80);
+ db(0x66); db(0x02); db(0x50); db(0xc6); db(0x4a); db(0x06); db(0x67); db(0x24);
+ db(0x20); db(0x2a); db(0x00); db(0x04); db(0x90); db(0x8a); db(0x4a); db(0x92);
+ db(0x66); db(0x0a); db(0x20); db(0x05); db(0x67); db(0x10); db(0x20); db(0x40);
+ db(0x42); db(0x90); db(0x60); db(0x0a); db(0x20); db(0x52); db(0x22); db(0x4a);
+ db(0x22); db(0xd8); db(0x59); db(0x80); db(0x6a); db(0xfa); db(0x53); db(0x95);
+ db(0x53); db(0x87); db(0x60); db(0x94); db(0x2a); db(0x0a); db(0x24); db(0x52);
+ db(0x53); db(0x87); db(0x60); db(0x8c); db(0x4c); db(0xdf); db(0x7c); db(0xfc);
+ db(0x20); db(0x6c); db(0x00); db(0x24); db(0x4a); db(0x90); db(0x4e); db(0x75);
+ db(0x61); db(0x00); db(0xfc); db(0x7c); db(0x21); db(0x40); db(0x01); db(0x98);
+ db(0x2f); db(0x08); db(0x30); db(0x3c); db(0xff); db(0xfc); db(0x61); db(0x00);
+ db(0x04); db(0x3c); db(0x2a); db(0x50); db(0x30); db(0x3c); db(0xff); db(0x28);
+ db(0x61); db(0x00); db(0x04); db(0x32); db(0x22); db(0x48); db(0x20); db(0x5f);
+ db(0x42); db(0xa8); db(0x01); db(0x90); db(0x42); db(0xa8); db(0x01); db(0x94);
+ db(0x4e); db(0x91); db(0x26); db(0x00); db(0x0c); db(0x43); db(0xff); db(0xfe);
+ db(0x67); db(0x00); db(0xf9); db(0x92); db(0x20); db(0x28); db(0x01); db(0x90);
+ db(0x67); db(0x14); db(0x6b); db(0x12); db(0x2f); db(0x08); db(0x72); db(0x01);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x20); db(0x5f); db(0x21); db(0x40); db(0x01); db(0x94); db(0x4a); db(0x83);
+ db(0x6a); db(0x0e); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x20);
+ db(0x61); db(0x00); db(0x03); db(0xf2); db(0x4e); db(0x90); db(0x60); db(0x26);
+ db(0x2c); db(0x4c); db(0x2f); db(0x08); db(0x4e); db(0xae); db(0xff); db(0x70);
+ db(0x20); db(0x5f); db(0x22); db(0x48); db(0x26); db(0x40); db(0x30); db(0x3c);
+ db(0xff); db(0x20); db(0x61); db(0x00); db(0x03); db(0xd8); db(0x4e); db(0x90);
+ db(0x70); db(0x00); db(0x27); db(0x40); db(0x00); db(0x08); db(0x27); db(0x40);
+ db(0x00); db(0x10); db(0x27); db(0x40); db(0x00); db(0x20); db(0x4a); db(0xa9);
+ db(0x01); db(0x94); db(0x67); db(0x28); db(0x20); db(0x69); db(0x01); db(0x94);
+ db(0x61); db(0x00); db(0xfa); db(0xf2); db(0x48); db(0xe7); db(0x80); db(0xc0);
+ db(0x20); db(0x29); db(0x01); db(0x90); db(0x22); db(0x69); db(0x01); db(0x94);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x4c); db(0xdf); db(0x03); db(0x01); db(0x4a); db(0x80); db(0x67); db(0x04);
+ db(0x61); db(0x00); db(0xfa); db(0x7c); db(0x4a); db(0x83); db(0x6b); db(0x00);
+ db(0xf9); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00);
+ db(0x03); db(0x8c); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
+ db(0x00); db(0x4f); db(0x4a); db(0x80); db(0x66); db(0x1a); db(0x27); db(0x7c);
+ db(0x00); db(0x00); db(0x17); db(0x70); db(0x00); db(0x14); db(0x41); db(0xfa);
+ db(0xf7); db(0xdc); db(0x20); db(0x08); db(0xe4); db(0x88); db(0x27); db(0x40);
+ db(0x00); db(0x20); db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0x24);
+ db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x3a); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x70); db(0x14); db(0x72); db(0x00); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x22); db(0x40); db(0x70); db(0x00); db(0x22); db(0x80);
+ db(0x23); db(0x40); db(0x00); db(0x04); db(0x33); db(0x40); db(0x00); db(0x0e);
+ db(0x30); db(0x3c); db(0x10); db(0x00); db(0x80); db(0x03); db(0x33); db(0x40);
+ db(0x00); db(0x08); db(0x23); db(0x6d); db(0x01); db(0x04); db(0x00); db(0x0a);
+ db(0x23); db(0x4b); db(0x00); db(0x10); db(0x41); db(0xec); db(0x00); db(0x4a);
+ db(0x4e); db(0xae); db(0xfe); db(0xf2); db(0x70); db(0x00); db(0x4e); db(0x75);
+ db(0x24); db(0x49); db(0x20); db(0x4b); db(0x72); db(0x00); db(0x22); db(0x41);
+ db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x08); db(0x08); db(0x07);
+ db(0x00); db(0x02); db(0x67); db(0x02); db(0x72); db(0x01); db(0x70); db(0xec);
+ db(0x2c); db(0x4c); db(0x4e); db(0xae); db(0xff); db(0x6a); db(0x08); db(0x07);
+ db(0x00); db(0x01); db(0x67); db(0x5c); db(0x08); db(0x07); db(0x00); db(0x02);
+ db(0x66); db(0x56); db(0x20); db(0x52); db(0x74); db(0x02); db(0x52); db(0x82);
+ db(0x4a); db(0x30); db(0x28); db(0xfd); db(0x66); db(0xf8); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x20); db(0x02); db(0x72); db(0x01); db(0x4e); db(0xae);
+ db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x3a); db(0x20); db(0x52);
+ db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc);
+ db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x09); db(0x3f);
+ db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x2c); db(0x40);
+ db(0x22); db(0x0a); db(0x4e); db(0xae); db(0xff); db(0x52); db(0x22); db(0x4e);
+ db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae); db(0xfe); db(0x62);
+ db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3f); db(0x3e);
+ db(0x2c); db(0x01); db(0x7e); db(0x06); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x43); db(0xfa); db(0x09); db(0x3a); db(0x70); db(0x24); db(0x4e); db(0xae);
+ db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e); db(0x08); db(0x87);
+ db(0x00); db(0x02); db(0x43); db(0xfa); db(0x09); db(0x28); db(0x70); db(0x00);
+ db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x02); db(0x2c); db(0x22); db(0x3c); db(0x00); db(0x01);
+ db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x40);
+ db(0x4a); db(0x80); db(0x67); db(0x2c); db(0x21); db(0x4c); db(0x01); db(0x9c);
+ db(0x48); db(0xe7); db(0x00); db(0x8a); db(0x61); db(0x00); db(0xfe); db(0x0a);
+ db(0x4c); db(0xdf); db(0x51); db(0x00); db(0x0c); db(0x80); db(0xff); db(0xff);
+ db(0xff); db(0xfe); db(0x67); db(0x08); db(0x48); db(0x46); db(0x52); db(0x46);
+ db(0x48); db(0x46); db(0x60); db(0xe4); db(0x22); db(0x48); db(0x20); db(0x3c);
+ db(0x00); db(0x00); db(0x02); db(0x2c); db(0x4e); db(0xae); db(0xff); db(0x2e);
+ db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x4c); db(0xdf);
+ db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x20); db(0x40);
+ db(0x4b); db(0xe8); db(0x00); db(0x5c); db(0x43); db(0xfa); db(0x08); db(0x8f);
+ db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x24); db(0x40);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xb9); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86); db(0x27); db(0x46);
+ db(0x00); db(0x04); db(0x27); db(0x46); db(0x00); db(0x08); db(0x27); db(0x4a);
+ db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e); db(0x93); db(0xc9);
+ db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0);
+ db(0x61); db(0x00); db(0x02); db(0x78); db(0x27); db(0x40); db(0x00); db(0xa4);
+ db(0x61); db(0x00); db(0x02); db(0xa4); db(0x27); db(0x40); db(0x00); db(0xa8);
+ db(0x7a); db(0x00); db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x80);
+ db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
+ db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x40);
+ db(0x61); db(0x00); db(0x01); db(0xb2); db(0x70); db(0x00); db(0x4e); db(0x90);
+ db(0x24); db(0x00); db(0x70); db(0x01); db(0x61); db(0x00); db(0xfa); db(0x48);
+ db(0x08); db(0x02); db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01);
+ db(0x61); db(0x00); db(0xfb); db(0xb0); db(0x60); db(0x00); db(0x00); db(0xf8);
+ db(0x20); db(0x4d); db(0x4e); db(0xae); db(0xfe); db(0x8c); db(0x28); db(0x40);
+ db(0x4a); db(0x80); db(0x66); db(0x10); db(0x70); db(0x00); db(0x12); db(0x2d);
+ db(0x00); db(0x0f); db(0x03); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x11);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x4a); db(0x2b); db(0x00); db(0xac);
+ db(0x67); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x5c); db(0x42); db(0x2b);
+ db(0x00); db(0xac); db(0x20); db(0x0c); db(0x67); db(0xd2); db(0x0c); db(0x6c);
+ db(0x00); db(0x26); db(0x00); db(0x12); db(0x66); db(0x4c); db(0x0c); db(0xac);
+ db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x42);
+ db(0x0c); db(0x6c); db(0x12); db(0x34); db(0x00); db(0x18); db(0x66); db(0x3a);
+ db(0x20); db(0x6c); db(0x00); db(0x1a); db(0x20); db(0x28); db(0x00); db(0x0c);
+ db(0x02); db(0x80); db(0x80); db(0x00); db(0x00); db(0x08); db(0x0c); db(0x80);
+ db(0x80); db(0x00); db(0x00); db(0x08); db(0x66); db(0x18); db(0x02); db(0xa8);
+ db(0x7f); db(0xff); db(0xff); db(0xff); db(0x00); db(0x0c); db(0x20); db(0x68);
+ db(0x00); db(0x10); db(0x22); db(0x4c); db(0x12); db(0xbc); db(0x00); db(0x08);
+ db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x8a); db(0x22); db(0x4c);
+ db(0x70); db(0x26); db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x60); db(0x00);
+ db(0xff); db(0x80); db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x66); db(0x3e);
+ db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00); db(0x01); db(0x06);
+ db(0x70); db(0x01); db(0x4e); db(0x90); db(0x45); db(0xeb); db(0x00); db(0x04);
+ db(0x20); db(0x52); db(0x20); db(0x08); db(0x67); db(0x00); db(0xff); db(0x62);
+ db(0x22); db(0x50); db(0x20); db(0x40); db(0x20); db(0x28); db(0x00); db(0x04);
+ db(0x6a); db(0x16); db(0x48); db(0xe7); db(0x00); db(0xc0); db(0x28); db(0x68);
+ db(0x00); db(0x0a); db(0x61); db(0x4a); db(0x53); db(0x85); db(0x4c); db(0xdf);
+ db(0x03); db(0x00); db(0x24); db(0x89); db(0x20); db(0x49); db(0x60); db(0xda);
+ db(0x24); db(0x48); db(0x20); db(0x49); db(0x60); db(0xd4); db(0x0c); db(0x85);
+ db(0x00); db(0x00); db(0x00); db(0x14); db(0x65); db(0x00); db(0x00); db(0x0a);
+ db(0x70); db(0x01); db(0x29); db(0x40); db(0x00); db(0x04); db(0x60); db(0x12);
+ db(0x61); db(0x5c); db(0x30); db(0x3c); db(0xff); db(0x30); db(0x61); db(0x00);
+ db(0x00); db(0xb4); db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x0e);
+ db(0x52); db(0x85); db(0x28); db(0xab); db(0x00); db(0x04); db(0x27); db(0x4c);
+ db(0x00); db(0x04); db(0x60); db(0x00); db(0xff); db(0x0c); db(0x28); db(0x43);
+ db(0x61); db(0x04); db(0x60); db(0x00); db(0xff); db(0x04); db(0x0c); db(0xac);
+ db(0x00); db(0x00); db(0x00); db(0x1f); db(0x00); db(0x08); db(0x66); db(0x04);
+ db(0x61); db(0x00); db(0xfb); db(0x5c); db(0x0c); db(0xac); db(0x00); db(0x00);
+ db(0x04); db(0x09); db(0x00); db(0x08); db(0x66); db(0x12); db(0x61); db(0x00);
+ db(0xfb); db(0x8a); db(0x66); db(0x0c); db(0x30); db(0x3c); db(0xff); db(0x58);
+ db(0x61); db(0x00); db(0x00); db(0x72); db(0x4e); db(0x90); db(0x60); db(0xee);
+ db(0x22); db(0x54); db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d);
+ db(0x00); db(0x04); db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05);
+ db(0x7a); db(0xfc); db(0x24); db(0x53); db(0x2e); db(0x0a); db(0x22); db(0x0a);
+ db(0x67); db(0x00); db(0x00); db(0x0c); db(0x52); db(0x85); db(0x67); db(0x1e);
+ db(0x22); db(0x4a); db(0x24); db(0x52); db(0x60); db(0xf0); db(0x52); db(0x85);
+ db(0x67); db(0x3c); db(0x24); db(0x47); db(0x70); db(0x18); db(0x72); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x52); db(0x46); db(0x24); db(0x40);
+ db(0x24); db(0x87); db(0x2e); db(0x0a); db(0x60); db(0xe8); db(0x20); db(0x12);
+ db(0x67); db(0x24); db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x1e);
+ db(0x20); db(0x40); db(0x20); db(0x10); db(0x67); db(0x18); db(0x70); db(0x00);
+ db(0x22); db(0x80); db(0x22); db(0x4a); db(0x24); db(0x51); db(0x70); db(0x18);
+ db(0x4e); db(0xae); db(0xff); db(0x2e); db(0x06); db(0x86); db(0x00); db(0x01);
+ db(0x00); db(0x00); db(0x20); db(0x0a); db(0x66); db(0xec); db(0x26); db(0x87);
+ db(0x2a); db(0x1f); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0xf4); db(0x5e);
+ db(0x02); db(0x80); db(0x00); db(0x00); db(0xff); db(0xff); db(0xd1); db(0xc0);
+ db(0x4e); db(0x75); db(0x20); db(0x88); db(0x58); db(0x90); db(0x42); db(0xa8);
+ db(0x00); db(0x04); db(0x21); db(0x48); db(0x00); db(0x08); db(0x4e); db(0x75);
+ db(0x48); db(0xe7); db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x91); db(0xc8);
+ db(0x24); db(0x00); db(0x6b); db(0x32); db(0x70); db(0x22); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x91); db(0xc8); db(0x24); db(0x40); db(0x4a); db(0x80); db(0x67); db(0x1e);
+ db(0x15); db(0x7c); db(0x00); db(0x04); db(0x00); db(0x08); db(0x15); db(0x42);
+ db(0x00); db(0x0f); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
+ db(0x25); db(0x40); db(0x00); db(0x10); db(0x41); db(0xea); db(0x00); db(0x14);
+ db(0x61); db(0x00); db(0xff); db(0xb0); db(0x20); db(0x4a); db(0x20); db(0x08);
+ db(0x4c); db(0xdf); db(0x44); db(0x04); db(0x4e); db(0x75); db(0x48); db(0xe7);
+ db(0x20); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4a); db(0x80);
db(0x67); db(0x20); db(0x24); db(0x40); db(0x74); db(0x30); db(0x20); db(0x02);
db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
db(0xff); db(0x3a); db(0x20); db(0x40); db(0x11); db(0x7c); db(0x00); db(0x0a);
db(0x00); db(0x08); db(0x31); db(0x42); db(0x00); db(0x12); db(0x21); db(0x4a);
db(0x00); db(0x0e); db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x04);
db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x22); db(0x2c); db(0x78);
- db(0x00); db(0x04); db(0x61); db(0x00); db(0xff); db(0x70); db(0x61); db(0x00);
- db(0xff); db(0xbc); db(0x67); db(0x1a); db(0x22); db(0x40); db(0x24); db(0x40);
- db(0x41); db(0xfa); db(0x02); db(0x44); db(0x70); db(0x00); db(0x72); db(0x00);
+ db(0x00); db(0x04); db(0x61); db(0x00); db(0xff); db(0x74); db(0x61); db(0x00);
+ db(0xff); db(0xbe); db(0x67); db(0x1a); db(0x22); db(0x40); db(0x24); db(0x40);
+ db(0x41); db(0xfa); db(0x05); db(0x5c); db(0x70); db(0x00); db(0x72); db(0x00);
db(0x4e); db(0xae); db(0xfe); db(0x44); db(0x22); db(0x00); db(0x70); db(0x00);
db(0x4a); db(0x81); db(0x66); db(0x02); db(0x20); db(0x0a); db(0x4a); db(0x80);
db(0x4c); db(0xdf); db(0x44); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
db(0x00); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x61); db(0x00);
- db(0xff); db(0x3c); db(0x61); db(0x00); db(0xff); db(0x88); db(0x67); db(0x1a);
- db(0x24); db(0x40); db(0x22); db(0x40); db(0x41); db(0xfa); db(0x02); db(0x1d);
+ db(0xff); db(0x40); db(0x61); db(0x00); db(0xff); db(0x8a); db(0x67); db(0x1a);
+ db(0x24); db(0x40); db(0x22); db(0x40); db(0x41); db(0xfa); db(0x05); db(0x35);
db(0x70); db(0x00); db(0x72); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0x44);
db(0x22); db(0x00); db(0x70); db(0x00); db(0x4a); db(0x81); db(0x66); db(0x02);
db(0x20); db(0x0a); db(0x4a); db(0x80); db(0x4c); db(0xdf); db(0x44); db(0x00);
- db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x32); db(0x2c); db(0x79);
- db(0x00); db(0x00); db(0x00); db(0x04); db(0x28); db(0x00); db(0x24); db(0x08);
- db(0x26); db(0x09); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x08); db(0x5c);
- db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
- db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x34);
- db(0x24); db(0x40); db(0x15); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x08);
- db(0x15); db(0x44); db(0x00); db(0x09); db(0x25); db(0x42); db(0x00); db(0x0a);
- db(0x47); db(0xea); db(0x00); db(0x5c); db(0x25); db(0x4b); db(0x00); db(0x3a);
- db(0x47); db(0xeb); db(0x08); db(0x00); db(0x25); db(0x4b); db(0x00); db(0x3e);
- db(0x25); db(0x4b); db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43);
- db(0x97); db(0xcb); db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6);
- db(0x20); db(0x02); db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75);
- db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x2f); db(0x08);
- db(0x4a); db(0x2b); db(0x00); db(0x9d); db(0x66); db(0x26); db(0x41); db(0xfa);
- db(0xff); db(0xf0); db(0x0c); db(0x10); db(0x00); db(0x01); db(0x66); db(0x1c);
- db(0x41); db(0xfa); db(0x01); db(0x96); db(0x43); db(0xfa); db(0x00); db(0x1a);
- db(0x70); db(0x05); db(0x61); db(0x00); db(0xff); db(0x7e); db(0x50); db(0xeb);
- db(0x00); db(0x9d); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x61); db(0x00);
- db(0xfe); db(0x2a); db(0x4e); db(0x90); db(0x20); db(0x5f); db(0x4e); db(0x75);
- db(0x2c); db(0x79); db(0x00); db(0x00); db(0x00); db(0x04); db(0x70); db(0xff);
- db(0x4e); db(0xae); db(0xfe); db(0xb6); db(0x74); db(0x00); db(0x01); db(0xc2);
- db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x28); db(0x40);
- db(0x70); db(0x14); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0xd4);
- db(0x70); db(0x00); db(0x43); db(0xfa); db(0x01); db(0xaa); db(0x4e); db(0xae);
- db(0xfd); db(0xd8); db(0x2e); db(0x00); db(0x70); db(0x00); db(0x30); db(0x3c);
- db(0x00); db(0x44); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
- db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x61); db(0x00);
- db(0xfe); db(0xc2); db(0x2b); db(0x40); db(0x00); db(0x3c); db(0x67); db(0x00);
- db(0x00); db(0x4e); db(0x61); db(0x00); db(0xfe); db(0xea); db(0x2b); db(0x40);
- db(0x00); db(0x40); db(0x67); db(0x00); db(0x00); db(0x42); db(0x47); db(0xed);
- db(0x00); db(0x16); db(0x27); db(0x4c); db(0x00); db(0x0c); db(0x27); db(0x42);
- db(0x00); db(0x08); db(0x70); db(0xff); db(0x26); db(0x80); db(0x27); db(0x40);
- db(0x00); db(0x04); db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c);
- db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05);
- db(0x00); db(0x09); db(0x41); db(0xfa); db(0x00); db(0xfc); db(0x23); db(0x48);
- db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x00); db(0xa0); db(0x23); db(0x48);
- db(0x00); db(0x12); db(0x23); db(0x4b); db(0x00); db(0x0e); db(0x70); db(0x05);
- db(0x4e); db(0xae); db(0xff); db(0x58); db(0x60); db(0x02); db(0x4e); db(0x75);
- db(0x20); db(0x02); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x22); db(0x6d);
- db(0x00); db(0x3c); db(0x45); db(0xed); db(0x00); db(0x26); db(0x33); db(0x7c);
+ db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x32); db(0x2c); db(0x78);
+ db(0x00); db(0x04); db(0x28); db(0x00); db(0x24); db(0x08); db(0x26); db(0x09);
+ db(0x20); db(0x3c); db(0x00); db(0x00); db(0x08); db(0x5c); db(0x22); db(0x3c);
+ db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
+ db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x34); db(0x24); db(0x40);
+ db(0x15); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x08); db(0x15); db(0x44);
+ db(0x00); db(0x09); db(0x25); db(0x42); db(0x00); db(0x0a); db(0x47); db(0xea);
+ db(0x00); db(0x5c); db(0x25); db(0x4b); db(0x00); db(0x3a); db(0x47); db(0xeb);
+ db(0x08); db(0x00); db(0x25); db(0x4b); db(0x00); db(0x3e); db(0x25); db(0x4b);
+ db(0x00); db(0x36); db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb);
+ db(0x24); db(0x09); db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02);
+ db(0x4c); db(0xdf); db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa);
+ db(0x04); db(0xc8); db(0x43); db(0xfa); db(0x01); db(0x1e); db(0x70); db(0x13);
+ db(0x61); db(0x00); db(0xff); db(0x98); db(0x4e); db(0x75); db(0x22); db(0x6d);
+ db(0x01); db(0x80); db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c);
+ db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae);
+ db(0xfe); db(0x38); db(0x22); db(0x6d); db(0x01); db(0x80); db(0x25); db(0x69);
+ db(0x00); db(0x20); db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24);
+ db(0x00); db(0x12); db(0x22); db(0x6d); db(0x01); db(0x7c); db(0x13); db(0x7c);
+ db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0x4e); db(0x75); db(0x42); db(0xaa); db(0x00); db(0x0e); db(0x42); db(0xaa);
+ db(0x00); db(0x12); db(0x22); db(0x6d); db(0x01); db(0x7c); db(0x13); db(0x7c);
+ db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
+ db(0x4e); db(0x75); db(0x00); db(0x00); db(0xff); db(0xff); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00);
+ db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x48); db(0xe7);
+ db(0xf0); db(0xfe); db(0x2a); db(0x48); db(0x95); db(0xca); db(0x97); db(0xcb);
+ db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x20); db(0x6d); db(0x00); db(0x14);
+ db(0x20); db(0x28); db(0x00); db(0x38); db(0x67); db(0x3e); db(0x20); db(0x40);
+ db(0x41); db(0xe8); db(0x00); db(0x2c); db(0x4e); db(0xae); db(0xfc); db(0xe8);
+ db(0x72); db(0xff); db(0xb2); db(0x80); db(0x67); db(0x2e); db(0x26); db(0x00);
+ db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x28); db(0x70); db(0x00);
+ db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00);
+ db(0x10); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c);
+ db(0x72); db(0xff); db(0x74); db(0xff); db(0x4a); db(0x80); db(0x6b); db(0x0c);
+ db(0x45); db(0xed); db(0x00); db(0x28); db(0x22); db(0x2a); db(0x00); db(0x32);
+ db(0x24); db(0x2a); db(0x00); db(0x36); db(0xb2); db(0xad); db(0x00); db(0x20);
+ db(0x66); db(0x06); db(0xb4); db(0xad); db(0x00); db(0x24); db(0x67); db(0x34);
+ db(0x2b); db(0x41); db(0x00); db(0x20); db(0x2b); db(0x42); db(0x00); db(0x24);
+ db(0x91); db(0xc8); db(0x43); db(0xed); db(0x00); db(0x80); db(0x70); db(0x00);
+ db(0x30); db(0x3c); db(0x00); db(0x58); db(0x22); db(0x3c); db(0x80); db(0x00);
+ db(0x00); db(0x00); db(0x24); db(0x03); db(0x4e); db(0xae); db(0xfd); db(0x0c);
+ db(0x4a); db(0x80); db(0x6b); db(0x04); db(0x47); db(0xed); db(0x00); db(0x80);
+ db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x01); db(0x61); db(0x00);
+ db(0xfd); db(0x84); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0x0f);
+ db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x3e); db(0x2e);
+ db(0x00); db(0x14); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6);
+ db(0x7c); db(0x00); db(0x01); db(0xc6); db(0x93); db(0xc9); db(0x4e); db(0xae);
+ db(0xfe); db(0xda); db(0x28); db(0x40); db(0x70); db(0x14); db(0x22); db(0x4c);
+ db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x70); db(0x00); db(0x30); db(0x3c);
+ db(0x01); db(0x84); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
+ db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x47); db(0xed);
+ db(0x00); db(0x16); db(0x27); db(0x4e); db(0x00); db(0x10); db(0x27); db(0x4c);
+ db(0x00); db(0x08); db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff);
+ db(0x37); db(0x40); db(0x00); db(0x00); db(0x43); db(0xed); db(0x00); db(0x00);
+ db(0x13); db(0x7c); db(0x00); db(0x02); db(0x00); db(0x08); db(0x13); db(0x7c);
+ db(0x00); db(0x05); db(0x00); db(0x09); db(0x41); db(0xfa); db(0x03); db(0x4a);
+ db(0x23); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x02); db(0xf4);
+ db(0x23); db(0x48); db(0x00); db(0x12); db(0x23); db(0x4d); db(0x00); db(0x0e);
+ db(0x70); db(0x05); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x06);
+ db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x70); db(0x00); db(0x53); db(0xab);
+ db(0x00); db(0x1c); db(0x6a); db(0x06); db(0x70); db(0x0a); db(0x27); db(0x40);
+ db(0x00); db(0x1c); db(0x4a); db(0xab); db(0x00); db(0x14); db(0x66); db(0x18);
+ db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0xe0); db(0x43); db(0xfa);
+ db(0x03); db(0x69); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
+ db(0x27); db(0x40); db(0x00); db(0x14); db(0x67); db(0x00); db(0xff); db(0xd0);
+ db(0x4a); db(0xab); db(0x00); db(0x18); db(0x66); db(0x18); db(0x4a); db(0xab);
+ db(0x00); db(0x1c); db(0x66); db(0xc2); db(0x43); db(0xfa); db(0x03); db(0x5d);
+ db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40);
+ db(0x00); db(0x18); db(0x67); db(0x00); db(0xff); db(0xb2); db(0x4a); db(0xad);
+ db(0x01); db(0x7c); db(0x66); db(0x30); db(0x4a); db(0xab); db(0x00); db(0x1c);
+ db(0x66); db(0xa4); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
+ db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x02); db(0xb2); db(0x4e); db(0xae);
+ db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
+ db(0x4a); db(0x82); db(0x67); db(0x8a); db(0x61); db(0x00); db(0xfd); db(0x2c);
+ db(0x2b); db(0x40); db(0x01); db(0x7c); db(0x67); db(0x00); db(0x02); db(0x62);
+ db(0x60); db(0x00); db(0xff); db(0x7c); db(0x4a); db(0xad); db(0x01); db(0x80);
+ db(0x66); db(0x40); db(0x4a); db(0xab); db(0x00); db(0x1c); db(0x66); db(0x00);
+ db(0xff); db(0x6e); db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee);
+ db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x02); db(0x87); db(0x4e); db(0xae);
+ db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
+ db(0x4a); db(0x82); db(0x67); db(0x00); db(0xff); db(0x52); db(0x61); db(0x00);
+ db(0xfd); db(0x26); db(0x2b); db(0x40); db(0x01); db(0x80); db(0x67); db(0x00);
+ db(0x02); db(0x28); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x00);
+ db(0x61); db(0x00); db(0xfc); db(0x42); db(0x4e); db(0x90); db(0x60); db(0x00);
+ db(0xff); db(0x36); db(0x0c); db(0x47); db(0x00); db(0x24); db(0x65); db(0x06);
+ db(0x20); db(0x4b); db(0x61); db(0x00); db(0xfe); db(0x1a); db(0x22); db(0x6d);
+ db(0x01); db(0x7c); db(0x45); db(0xed); db(0x00); db(0xc6); db(0x33); db(0x7c);
db(0x00); db(0x0b); db(0x00); db(0x1c); db(0x23); db(0x7c); db(0x00); db(0x00);
db(0x00); db(0x16); db(0x00); db(0x24); db(0x23); db(0x4a); db(0x00); db(0x28);
- db(0x13); db(0x7c); db(0x00); db(0x01); db(0x00); db(0x1e); db(0x15); db(0x7c);
- db(0x00); db(0x04); db(0x00); db(0x04); db(0x42); db(0x2a); db(0x00); db(0x05);
- db(0x42); db(0x6a); db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08);
- db(0x20); db(0x47); db(0x20); db(0x2d); db(0x00); db(0x16); db(0x32); db(0x28);
- db(0x00); db(0x30); db(0xd2); db(0x41); db(0x90); db(0x41); db(0x35); db(0x40);
- db(0x00); db(0x0a); db(0x20); db(0x2d); db(0x00); db(0x1a); db(0x32); db(0x28);
- db(0x00); db(0x2e); db(0xd2); db(0x41); db(0x90); db(0x41); db(0x48); db(0xc0);
- db(0x35); db(0x40); db(0x00); db(0x0c); db(0x22); db(0x6d); db(0x00); db(0x40);
- db(0x33); db(0x7c); db(0x00); db(0x0a); db(0x00); db(0x1c); db(0x13); db(0x7c);
- db(0x00); db(0x01); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x22); db(0x6d); db(0x00); db(0x40); db(0x25); db(0x69); db(0x00); db(0x20);
- db(0x00); db(0x0e); db(0x25); db(0x69); db(0x00); db(0x24); db(0x00); db(0x12);
- db(0x22); db(0x6d); db(0x00); db(0x3c); db(0x4e); db(0xae); db(0xfe); db(0x38);
- db(0x60); db(0x00); db(0xff); db(0x76); db(0x30); db(0x3a); db(0xfe); db(0xa4);
- db(0x48); db(0xc0); db(0x32); db(0x3a); db(0xfe); db(0xa0); db(0x48); db(0xc1);
- db(0xb0); db(0x91); db(0x66); db(0x00); db(0x00); db(0x0a); db(0xb2); db(0xa9);
- db(0x00); db(0x04); db(0x67); db(0x00); db(0x00); db(0x18); db(0x23); db(0x41);
- db(0x00); db(0x04); db(0x22); db(0x80); db(0x20); db(0x29); db(0x00); db(0x08);
- db(0x22); db(0x69); db(0x00); db(0x0c); db(0x2c); db(0x78); db(0x00); db(0x04);
+ db(0x10); db(0x3a); db(0xfd); db(0xd0); db(0x6a); db(0x0a); db(0x0c); db(0x47);
+ db(0x00); db(0x24); db(0x64); db(0x04); db(0x60); db(0x00); db(0x01); db(0x9e);
+ db(0x15); db(0x7c); db(0x00); db(0x13); db(0x00); db(0x04); db(0x42); db(0x6a);
+ db(0x00); db(0x06); db(0x22); db(0x3a); db(0xfd); db(0xd8); db(0x02); db(0x41);
+ db(0x00); db(0x07); db(0x70); db(0x07); db(0x90); db(0x41); db(0xe1); db(0x48);
+ db(0xe9); db(0x48); db(0x35); db(0x40); db(0x00); db(0x08); db(0x41); db(0xed);
+ db(0x00); db(0xdc); db(0x25); db(0x48); db(0x00); db(0x0a); db(0x0c); db(0x47);
+ db(0x00); db(0x27); db(0x65); db(0x00); db(0x00); db(0xea); db(0x15); db(0x7c);
+ db(0x00); db(0x03); db(0x00); db(0x05); db(0x42); db(0x90); db(0x42); db(0xa8);
+ db(0x00); db(0x04); db(0x42); db(0xa8); db(0x00); db(0x08); db(0x42); db(0x68);
+ db(0x00); db(0x0c); db(0x31); db(0x7a); db(0xfd); db(0x88); db(0x00); db(0x0e);
+ db(0x42); db(0x68); db(0x00); db(0x10); db(0x31); db(0x7a); db(0xfd); db(0x80);
+ db(0x00); db(0x12); db(0x42); db(0x68); db(0x00); db(0x14); db(0x31); db(0x7a);
+ db(0xfd); db(0x6e); db(0x00); db(0x16); db(0x42); db(0x68); db(0x00); db(0x18);
+ db(0x31); db(0x7a); db(0xfd); db(0x66); db(0x00); db(0x1a); db(0x43); db(0xed);
+ db(0x00); db(0xfc); db(0x21); db(0x49); db(0x00); db(0x1c); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x06); db(0x30); db(0x3a); db(0xfd); db(0x6c);
+ db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x07); db(0x22); db(0xfa); db(0xfd); db(0x5e);
+ db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfd); db(0x46); db(0x6b); db(0x08);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x09); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfd); db(0x3a); db(0x6b); db(0x08); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x0a); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfd); db(0x22); db(0x6b); db(0x14); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x02); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfd); db(0x1a);
+ db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x01); db(0x22); db(0xc0);
+ db(0x30); db(0x3a); db(0xfd); db(0x14); db(0x6b); db(0x10); db(0x22); db(0xfc);
+ db(0x80); db(0x03); db(0xa0); db(0x03); db(0x30); db(0x3a); db(0xfd); db(0x0e);
+ db(0x48); db(0xc0); db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a);
+ db(0xfd); db(0x00); db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03);
+ db(0xa0); db(0x04); db(0x30); db(0x3a); db(0xfc); db(0xfa); db(0x48); db(0xc0);
+ db(0xe1); db(0x80); db(0x22); db(0xc0); db(0x30); db(0x3a); db(0xfc); db(0xec);
+ db(0x6b); db(0x10); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x05);
+ db(0x30); db(0x3a); db(0xfc); db(0xe6); db(0x48); db(0xc0); db(0xe1); db(0x80);
+ db(0x22); db(0xc0); db(0x70); db(0x00); db(0x30); db(0x3a); db(0xfc); db(0xe2);
+ db(0x6b); db(0x08); db(0x22); db(0xfc); db(0x80); db(0x03); db(0xa0); db(0x08);
+ db(0x22); db(0xc0); db(0x42); db(0x91); db(0x60); db(0x2e); db(0x0c); db(0x47);
+ db(0x00); db(0x24); db(0x65); db(0x00); db(0xfd); db(0xe2); db(0x15); db(0x7c);
+ db(0x00); db(0x02); db(0x00); db(0x05); db(0x30); db(0xba); db(0xfc); db(0xa0);
+ db(0x31); db(0x7a); db(0xfc); db(0x9e); db(0x00); db(0x02); db(0x31); db(0x7a);
+ db(0xfc); db(0x9c); db(0x00); db(0x04); db(0x31); db(0x7a); db(0xfc); db(0x98);
+ db(0x00); db(0x06); db(0x30); db(0x3a); db(0xfc); db(0xa6); db(0xe0); db(0x40);
+ db(0x31); db(0x40); db(0x00); db(0x08); db(0x61); db(0x00); db(0xfc); db(0x64);
+ db(0x10); db(0x3a); db(0xfc); db(0x78); db(0x6b); db(0x00); db(0xfd); db(0xb0);
+ db(0x36); db(0x3c); db(0x00); db(0x68); db(0x74); db(0x01); db(0x28); db(0x3a);
+ db(0xfc); db(0x8c); db(0x20); db(0x04); db(0xc0); db(0x82); db(0x22); db(0x2b);
+ db(0x00); db(0x04); db(0xc2); db(0x82); db(0xb2); db(0x80); db(0x67); db(0x22);
+ db(0x42); db(0x92); db(0x35); db(0x7c); db(0x02); db(0x00); db(0x00); db(0x04);
+ db(0x42); db(0xaa); db(0x00); db(0x0a); db(0x32); db(0x03); db(0x4a); db(0x00);
+ db(0x66); db(0x04); db(0x08); db(0xc1); db(0x00); db(0x07); db(0x35); db(0x41);
+ db(0x00); db(0x06); db(0x42); db(0x6a); db(0x00); db(0x08); db(0x61); db(0x00);
+ db(0xfc); db(0x22); db(0x52); db(0x43); db(0xd4); db(0x42); db(0x0c); db(0x42);
+ db(0x00); db(0x08); db(0x66); db(0xc6); db(0x27); db(0x44); db(0x00); db(0x04);
+ db(0x60); db(0x00); db(0xfd); db(0x64); db(0x42); db(0x92); db(0x35); db(0x7c);
+ db(0x04); db(0x00); db(0x00); db(0x04); db(0x42); db(0x6a); db(0x00); db(0x06);
+ db(0x42); db(0x6a); db(0x00); db(0x08); db(0x20); db(0x6b); db(0x00); db(0x14);
+ db(0x30); db(0x3a); db(0xfc); db(0x38); db(0x32); db(0x28); db(0x00); db(0x30);
+ db(0xd2); db(0x41); db(0x90); db(0x41); db(0x6a); db(0x02); db(0x70); db(0x00);
+ db(0x35); db(0x40); db(0x00); db(0x0a); db(0x30); db(0x3a); db(0xfc); db(0x26);
+ db(0x32); db(0x28); db(0x00); db(0x2e); db(0xd2); db(0x41); db(0x90); db(0x41);
+ db(0x6a); db(0x02); db(0x70); db(0x00); db(0x35); db(0x40); db(0x00); db(0x0c);
+ db(0x61); db(0x00); db(0xfb); db(0x9c); db(0x60); db(0x00); db(0xfd); db(0x20);
+ db(0x4e); db(0x75); db(0x4a); db(0xa9); db(0x01); db(0x7c); db(0x67); db(0x14);
+ db(0x4a); db(0xa9); db(0x01); db(0x80); db(0x67); db(0x0e); db(0x30); db(0x3a);
+ db(0xfb); db(0xd4); db(0xb0); db(0x69); db(0x00); db(0x16); db(0x67); db(0x14);
+ db(0x33); db(0x40); db(0x00); db(0x16); db(0x2c); db(0x69); db(0x00); db(0x26);
+ db(0x20); db(0x29); db(0x00); db(0x22); db(0x22); db(0x69); db(0x00); db(0x1e);
db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x41); db(0xf9); db(0x00); db(0xdf);
db(0xf0); db(0x00); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x69); db(0x6e);
db(0x70); db(0x75); db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
db(0x63); db(0x65); db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72);
db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00);
- db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73);
- db(0x65); db(0x20); db(0x68); db(0x61); db(0x63); db(0x6b); db(0x00); db(0x55);
- db(0x41); db(0x45); db(0x20); db(0x66); db(0x69); db(0x6c); db(0x65); db(0x73);
- db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41);
- db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74);
- db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72);
+ db(0x55); db(0x41); db(0x45); db(0x20); db(0x74); db(0x61); db(0x62); db(0x6c);
+ db(0x65); db(0x74); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65);
+ db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x69);
+ db(0x6c); db(0x65); db(0x73); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
- db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73);
- db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69);
- db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e);
- db(0x74); db(0x75); db(0x69); db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e);
- db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
- db(0x65); db(0x78); db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f);
- db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72);
- db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79);
- db(0x73); db(0x74); db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73);
- db(0x6f); db(0x75); db(0x72); db(0x63); db(0x65); db(0x00); db(0x00); db(0x00);
- db(0x00); db(0x00); db(0x03); db(0xf2);
+ db(0x74); db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20);
+ db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d);
+ db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f);
+ db(0x63); db(0x65); db(0x73); db(0x73); db(0x00); db(0x64); db(0x6f); db(0x73);
+ db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
+ db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); db(0x69);
+ db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
+ db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); db(0x68);
+ db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
+ db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); db(0x61);
+ db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69);
+ db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69);
+ db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
+ db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63);
+ db(0x65); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
int j;
if (currprefs.gfx_blackerthanblack) {
- j = i * 15 / 16 + 15;
+ j = i * 15 / 16 + 16;
} else {
j = i;
}
return 0;
}
-int scsi_emulate(struct hardfiledata *hfd, struct hd_hardfiledata *hdhfd, uae_u8 *cmdbuf, int scsi_cmd_len,
+int scsi_emulate (struct hardfiledata *hfd, struct hd_hardfiledata *hdhfd, uae_u8 *cmdbuf, int scsi_cmd_len,
uae_u8 *scsi_data, int *data_len, uae_u8 *r, int *reply_len, uae_u8 *s, int *sense_len)
{
uae_u64 len, offset;
#ifndef CPUMMU_H
#define CPUMMU_H
+#ifndef FULLMMU
+#define FULLMMU
+#endif
+
#define ALWAYS_INLINE __forceinline
#define bool int
#define DUNUSED(x)
extern void notice_interlace_seen (void);
extern void frame_drawn (void);
extern void redraw_frame (void);
+extern int get_custom_limits (int *pw, int *ph, int *pdx, int *pdy);
/* Finally, stuff that shouldn't really be shared. */
uae_u8 *getfilterrect1 (RECT *sr, RECT *dr, int dst_depth, int aw, int ah, int scale, int temp_width, int temp_height, uae_u8 *dptr, int pitch);
void getfilterrect2 (RECT *sr, RECT *dr, int dst_width, int dst_height, int aw, int ah, int scale, int temp_width, int temp_height);
+void getfilteroffset (int *dx, int *dy, int *mx, int *my);
#endif
extern int getbuttonstate (int joy, int button);
extern int getjoystate (int joy);
-enum mousestate { mousehack_unknown, mousehack_normal, mousehack_dontcare, mousehack_follow };
-
-extern void mousehack_set (enum mousestate);
-extern int mousehack_get (void);
-extern void mousehack_handle (int sprctl, int sprpos);
extern void togglemouse (void);
-extern int mousehack_alive (void);
-extern int mousehack_allowed (void);
extern int magicmouse_alive (void);
+extern int is_tablet (void);
+extern int inputdevice_is_tablet (void);
+extern void input_mousehack_status (int mode, uaecptr a2, uaecptr a3);
extern void setmousebuttonstateall (int mouse, uae_u32 buttonbits, uae_u32 buttonmask);
extern void setjoybuttonstateall (int joy, uae_u32 buttonbits, uae_u32 buttonmask);
extern void inputdevice_add_inputcode (int code, int state);
extern void inputdevice_handle_inputcode (void);
+extern void inputdevice_tablet (int x, int y, int z,
+ int pressure, uae_u32 buttonbits, int inproximity,
+ int ax, int ay, int az);
+extern void inputdevice_tablet_info (int maxx, int maxy, int maxz, int maxax, int maxay, int maxaz, int xres, int yres);
+extern void inputdevice_tablet_strobe (void);
+
+
#define JSEM_KBDLAYOUT 0
#define JSEM_JOYS 100
#define JSEM_MICE 200
#define CONFIG_TYPE_HOST 2
#define CONFIG_BLEN 2560
+#define TABLET_OFF 0
+#define TABLET_MOUSEHACK 1
+#define TABLET_REAL 2
+
struct wh {
int x, y;
int width, height;
int gfx_resolution;
int gfx_lores_mode;
int gfx_linedbl;
- int gfx_correct_aspect;
int gfx_afullscreen, gfx_pfullscreen;
int gfx_xcenter, gfx_ycenter;
int gfx_xcenter_pos, gfx_ycenter_pos;
int gfx_filter_noise, gfx_filter_blur;
int gfx_filter_saturation, gfx_filter_luminance, gfx_filter_contrast, gfx_filter_gamma;
int gfx_filter_keep_aspect, gfx_filter_aspect;
+ int gfx_filter_autoscale;
int immediate_blits;
unsigned int chipset_mask;
int win32_notaskbarbutton;
int win32_alwaysontop;
int win32_powersavedisabled;
- int win32_outsidemouse;
int win32_active_priority;
int win32_inactive_priority;
/* input */
+ char inputname[256];
struct jport jports[2];
int input_selected_setting;
int input_joymouse_multiplier;
int input_analog_joystick_offset;
int input_autofire_framecnt;
int input_mouse_speed;
+ int input_tablet;
+ int input_magic_mouse;
struct uae_input_device joystick_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
struct uae_input_device mouse_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
struct uae_input_device keyboard_settings[MAX_INPUT_SETTINGS + 1][MAX_INPUT_DEVICES];
extern int isfullscreen (void);
extern void toggle_fullscreen (void);
extern void toggle_mousegrab (void);
+extern void desktop_coords (int *dw, int *dh, int *x, int *y, int *w, int *h);
extern void flush_line (int);
extern void flush_block (int, int);
--- /dev/null
+
+static uae_u8 *inprec_buffer, *inprec_p;
+static struct zfile *inprec_zf;
+static int inprec_size;
+int input_recording = 0;
+static uae_u8 *inprec_plast, *inprec_plastptr;
+static int inprec_div;
+
+static uae_u32 oldbuttons[4];
+static uae_u16 oldjoy[2];
+
+int inprec_open(char *fname, int record)
+{
+ uae_u32 t = (uae_u32)time(0);
+ int i;
+
+ inprec_close();
+ inprec_zf = zfile_fopen(fname, record > 0 ? "wb" : "rb");
+ if (inprec_zf == NULL)
+ return 0;
+ inprec_size = 10000;
+ inprec_div = 1;
+ if (record < 0) {
+ uae_u32 id;
+ zfile_fseek (inprec_zf, 0, SEEK_END);
+ inprec_size = zfile_ftell (inprec_zf);
+ zfile_fseek (inprec_zf, 0, SEEK_SET);
+ inprec_buffer = inprec_p = (uae_u8*)xmalloc (inprec_size);
+ zfile_fread (inprec_buffer, inprec_size, 1, inprec_zf);
+ inprec_plastptr = inprec_buffer;
+ id = inprec_pu32();
+ if (id != 'UAE\0') {
+ inprec_close();
+ return 0;
+ }
+ inprec_pu32();
+ t = inprec_pu32();
+ i = inprec_pu32();
+ while (i-- > 0)
+ inprec_pu8();
+ inprec_p = inprec_plastptr;
+ oldbuttons[0] = oldbuttons[1] = oldbuttons[2] = oldbuttons[3] = 0;
+ oldjoy[0] = oldjoy[1] = 0;
+ if (record < -1)
+ inprec_div = maxvpos;
+ } else if (record > 0) {
+ inprec_buffer = inprec_p = (uae_u8*)xmalloc (inprec_size);
+ inprec_ru32('UAE\0');
+ inprec_ru8(1);
+ inprec_ru8(UAEMAJOR);
+ inprec_ru8(UAEMINOR);
+ inprec_ru8(UAESUBREV);
+ inprec_ru32(t);
+ inprec_ru32(0); // extra header size
+ } else {
+ return 0;
+ }
+ input_recording = record;
+ srand(t);
+ CIA_inprec_prepare();
+ write_log ("inprec initialized '%s', mode=%d\n", fname, input_recording);
+ return 1;
+}
+
+void inprec_close(void)
+{
+ if (!inprec_zf)
+ return;
+ if (inprec_buffer && input_recording > 0) {
+ hsync_counter++;
+ inprec_rstart(INPREC_END);
+ inprec_rend();
+ hsync_counter--;
+ zfile_fwrite (inprec_buffer, inprec_p - inprec_buffer, 1, inprec_zf);
+ inprec_p = inprec_buffer;
+ }
+ zfile_fclose (inprec_zf);
+ inprec_zf = NULL;
+ xfree (inprec_buffer);
+ inprec_buffer = NULL;
+ input_recording = 0;
+ write_log ("inprec finished\n");
+}
+
+void inprec_ru8(uae_u8 v)
+{
+ *inprec_p++= v;
+}
+void inprec_ru16(uae_u16 v)
+{
+ inprec_ru8((uae_u8)(v >> 8));
+ inprec_ru8((uae_u8)v);
+}
+void inprec_ru32(uae_u32 v)
+{
+ inprec_ru16((uae_u16)(v >> 16));
+ inprec_ru16((uae_u16)v);
+}
+void inprec_rstr(const char *s)
+{
+ while(*s) {
+ inprec_ru8(*s);
+ s++;
+ }
+ inprec_ru8(0);
+}
+void inprec_rstart(uae_u8 type)
+{
+ write_log ("INPREC: %08X: %d\n", hsync_counter, type);
+ inprec_ru32(hsync_counter);
+ inprec_ru8(0);
+ inprec_plast = inprec_p;
+ inprec_ru8(0xff);
+ inprec_ru8(type);
+}
+void inprec_rend(void)
+{
+ *inprec_plast = inprec_p - (inprec_plast + 2);
+ if (inprec_p >= inprec_buffer + inprec_size - 256) {
+ zfile_fwrite (inprec_buffer, inprec_p - inprec_buffer, 1, inprec_zf);
+ inprec_p = inprec_buffer;
+ }
+}
+
+int inprec_pstart(uae_u8 type)
+{
+ uae_u8 *p = inprec_p;
+ uae_u32 hc = hsync_counter;
+ static uae_u8 *lastp;
+ uae_u32 hc_orig, hc2_orig;
+
+ if (savestate_state)
+ return 0;
+ if (p[5 + 1] == INPREC_END) {
+ inprec_close();
+ return 0;
+ }
+ hc_orig = hc;
+ hc /= inprec_div;
+ hc *= inprec_div;
+ for (;;) {
+ uae_u32 hc2 = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
+ if (p > lastp) {
+ write_log ("INPREC: Next %08x (%08x=%d): %d (%d)\n", hc2, hc, hc2 - hc, p[5 + 1], p[5]);
+ lastp = p;
+ }
+ hc2_orig = hc2;
+ hc2 /= inprec_div;
+ hc2 *= inprec_div;
+ if (hc > hc2) {
+ write_log ("INPREC: %08x > %08x: %d (%d) missed!\n", hc, hc2, p[5 + 1], p[5]);
+ inprec_close();
+ return 0;
+ }
+ if (hc2 != hc) {
+ lastp = p;
+ break;
+ }
+ if (p[5 + 1] == type) {
+ write_log ("INPREC: %08x: %d (%d) (%+d)\n", hc, type, p[5], hc_orig - hc2_orig);
+ inprec_plast = p;
+ inprec_plastptr = p + 5 + 2;
+ return 1;
+ }
+ p += 5 + 2 + p[5];
+ }
+ inprec_plast = NULL;
+ return 0;
+}
+void inprec_pend(void)
+{
+ uae_u8 *p = inprec_p;
+ uae_u32 hc = hsync_counter;
+
+ if (!inprec_plast)
+ return;
+ inprec_plast[5 + 1] = 0;
+ inprec_plast = NULL;
+ inprec_plastptr = NULL;
+ hc /= inprec_div;
+ hc *= inprec_div;
+ for (;;) {
+ uae_u32 hc2 = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
+ hc2 /= inprec_div;
+ hc2 *= inprec_div;
+ if (hc2 != hc)
+ break;
+ if (p[5 + 1] != 0)
+ return;
+ p += 5 + 2 + p[5];
+ }
+ inprec_p = p;
+ if (p[5 + 1] == INPREC_END)
+ inprec_close();
+}
+
+uae_u8 inprec_pu8(void)
+{
+ return *inprec_plastptr++;
+}
+uae_u16 inprec_pu16(void)
+{
+ uae_u16 v = inprec_pu8() << 8;
+ v |= inprec_pu8();
+ return v;
+}
+uae_u32 inprec_pu32(void)
+{
+ uae_u32 v = inprec_pu16() << 16;
+ v |= inprec_pu16();
+ return v;
+}
+int inprec_pstr(char *s)
+{
+ int len = 0;
+ for(;;) {
+ uae_u8 v = inprec_pu8();
+ *s++ = v;
+ if (!v)
+ break;
+ len++;
+ }
+ return len;
+}
#include "autoconf.h"
#include "rp.h"
+// 01 = host events
+// 02 = joystick
+// 04 = cia buttons
+// 16 = potgo
+// 32 = vsync
+
int inputdevice_logging = 0;
#define DIR_LEFT 1
xfree (custom);
}
-static int ievent_alive, mouseedge_alive;
+static int mouseedge_alive;
static int lastmx, lastmy;
-static uae_u32 magicmouse_ibase = 0;
-#define intui "intuition.library"
+static uaecptr magicmouse_ibase, magicmouse_gfxbase;
+static int dimensioninfo_width, dimensioninfo_height, dimensioninfo_dbl;
+static int tablet_maxx, tablet_maxy, tablet_data;
-static uaecptr get_intuitionbase (void)
+static uaecptr get_base (const char *name)
{
uaecptr v = get_long (4);
addrbank *b = &get_mem_bank(v);
uae_u32 v2;
uae_u8 *p;
b = &get_mem_bank(v);
- if (!b || !b->check (v, 32) || b->flags != ABFLAG_RAM) {
- magicmouse_ibase = 0xffffffff;
- return 0;
- }
+ if (!b || !b->check (v, 32) || b->flags != ABFLAG_RAM)
+ return 0xffffffff;
v2 = get_long (v + 10); // name
b = &get_mem_bank(v2);
- if (!b || !b->check (v2, 20)) {
- magicmouse_ibase = 0xffffffff;
- return 0;
- }
+ if (!b || !b->check (v2, 20))
+ return 0xffffffff;
if (b->flags != ABFLAG_ROM && b->flags != ABFLAG_RAM)
return 0;
p = b->xlateaddr(v2);
- if (!memcmp(p, intui, strlen(intui) + 1))
+ if (!memcmp(p, name, strlen(name) + 1))
return v;
}
return 0;
}
-static void mousehack_enable (void)
+static uaecptr get_intuitionbase (void)
+{
+ if (magicmouse_ibase == 0xffffffff)
+ return 0;
+ if (magicmouse_ibase)
+ return magicmouse_ibase;
+ magicmouse_ibase = get_base ("intuition.library");
+ return magicmouse_ibase;
+}
+static uaecptr get_gfxbase (void)
+{
+ if (magicmouse_gfxbase == 0xffffffff)
+ return 0;
+ if (magicmouse_gfxbase)
+ return magicmouse_gfxbase;
+ magicmouse_gfxbase = get_base ("graphics.library");
+ return magicmouse_gfxbase;
+}
+
+#define MH_E 0
+#define MH_CNT 2
+#define MH_MAXX 4
+#define MH_MAXY 6
+#define MH_MAXZ 8
+#define MH_X 10
+#define MH_Y 12
+#define MH_Z 14
+#define MH_RESX 16
+#define MH_RESY 18
+#define MH_MAXAX 20
+#define MH_MAXAY 22
+#define MH_MAXAZ 24
+#define MH_AX 26
+#define MH_AY 28
+#define MH_AZ 30
+#define MH_PRESSURE 32
+#define MH_BUTTONBITS 34
+#define MH_INPROXIMITY 38
+#define MH_ABSX 40
+#define MH_ABSY 42
+
+#define MH_END 44
+#define MH_START 4
+
+int inputdevice_is_tablet (void)
+{
+ int v;
+ if (!uae_boot_rom)
+ return 0;
+ if (currprefs.input_tablet == TABLET_OFF)
+ return 0;
+ if (currprefs.input_tablet == TABLET_MOUSEHACK)
+ return -1;
+ v = is_tablet ();
+ if (!v)
+ return 0;
+ if (kickstart_version < 37)
+ return v ? -1 : 0;
+ return v ? 1 : 0;
+}
+
+static void mousehack_reset (void)
{
int off;
+
+ dimensioninfo_width = 0;
+ dimensioninfo_height = 0;
+ dimensioninfo_dbl = 0;
+ tablet_data = 0;
if (!uae_boot_rom)
return;
- off = get_long (rtarea_base + 40);
- if (rtarea[off + 12 - 2] == 0xff)
+ off = 12 + get_long (rtarea_base + 36);
+ rtarea[off + MH_E] = 0;
+}
+
+static void mousehack_enable (void)
+{
+ int off, mode;
+
+ if (!uae_boot_rom || currprefs.input_tablet == TABLET_OFF)
+ return;
+ off = 12 + get_long (rtarea_base + 36);
+ if (rtarea[off + MH_E])
return;
- rtarea[off + 12 - 2] = 1;
+ mode = 1;
+ if (inputdevice_is_tablet () < 0)
+ mode |= 0x80;
+ write_log ("Tablet driver enabled (%s)\n", (mode & 0x80) ? "mousehack" : "real");
+ rtarea[off + MH_E] = mode;
+}
+
+void input_mousehack_status (int mode, uaecptr a2, uaecptr a3)
+{
+ if (mode == 0) {
+ uae_u8 v = rtarea[12 + get_long (rtarea_base + 36)];
+ v |= 2;
+ rtarea[12 + get_long (rtarea_base + 36)] = v;
+ write_log ("Tablet driver running (%02x)\n", v);
+ } else if (mode == 1) {
+ int x1 = -1, y1 = -1, x2 = -1, y2 = -1;
+ uae_u32 props = 0;
+ dimensioninfo_width = -1;
+ dimensioninfo_height = -1;
+ if (a2) {
+ x1 = get_word (a2 + 50);
+ y1 = get_word (a2 + 52);
+ x2 = get_word (a2 + 54);
+ y2 = get_word (a2 + 56);
+ dimensioninfo_width = x2 - x1 + 1;
+ dimensioninfo_height = y2 - y1 + 1;
+ }
+ if (a3)
+ props = get_long (a3 + 18);
+ dimensioninfo_dbl = (props & 0x00020000) ? 1 : 0;
+ write_log ("%08x %dx%d %dx%d %s\n", props, x1, y1, x2, y2,
+ (props & 0x00020000) ? "dbl" : "");
+ }
}
-static void mousehack_setpos (int mousexpos, int mouseypos)
+void get_custom_mouse_limits (int *w, int *h, int *dx, int *dy, int dbl);
+
+void inputdevice_tablet_strobe (void)
{
uae_u8 *p;
+ uae_u32 off;
+ mousehack_enable ();
if (!uae_boot_rom)
return;
- p = rtarea + get_long (rtarea_base + 40) + 12;
- p[0] = mousexpos >> 8;
- p[1] = mousexpos;
- p[2] = mouseypos >> 8;
- p[3] = mouseypos;
- //write_log ("%dx%d\n", mousexpos, mouseypos);
+ if (!tablet_data)
+ return;
+ off = 12 + get_long (rtarea_base + 36);
+ p = rtarea + off;
+ p[MH_CNT]++;
}
-static int mouseedge_x, mouseedge_y, mouseedge_time;
-#define MOUSEEDGE_RANGE 300
-#define MOUSEEDGE_TIME 2
+void inputdevice_tablet (int x, int y, int z, int pressure, uae_u32 buttonbits, int inproximity, int ax, int ay, int az)
+{
+ uae_u8 *p;
+ uae_u8 tmp[MH_END];
+ uae_u32 off;
+
+ mousehack_enable ();
+ if (inputdevice_is_tablet () <= 0)
+ return;
+ //write_log ("%d %d %d %d %08X %d %d %d %d\n", x, y, z, pressure, buttonbits, inproximity, ax, ay, az);
+ off = 12 + get_long (rtarea_base + 36);
+ p = rtarea + off;
+
+ memcpy (tmp, p + MH_START, MH_END - MH_START);
+#if 0
+ if (currprefs.input_magic_mouse) {
+ int maxx, maxy, diffx, diffy;
+ int dw, dh, ax, ay, aw, ah;
+ float xmult, ymult;
+ float fx, fy;
+
+ fx = (float)x;
+ fy = (float)y;
+ desktop_coords (&dw, &dh, &ax, &ay, &aw, &ah);
+ xmult = (float)tablet_maxx / dw;
+ ymult = (float)tablet_maxy / dh;
+
+ diffx = 0;
+ diffy = 0;
+ if (picasso_on) {
+ maxx = gfxvidinfo.width;
+ maxy = gfxvidinfo.height;
+ } else {
+ get_custom_mouse_limits (&maxx, &maxy, &diffx, &diffy);
+ }
+ diffx += ax;
+ diffy += ah;
+
+ fx -= diffx * xmult;
+ if (fx < 0)
+ fx = 0;
+ if (fx >= aw * xmult)
+ fx = aw * xmult - 1;
+ fy -= diffy * ymult;
+ if (fy < 0)
+ fy = 0;
+ if (fy >= ah * ymult)
+ fy = ah * ymult - 1;
+
+ x = (int)(fx * (aw * xmult) / tablet_maxx + 0.5);
+ y = (int)(fy * (ah * ymult) / tablet_maxy + 0.5);
+
+ }
+#endif
+ p[MH_X] = x >> 8;
+ p[MH_X + 1] = x;
+ p[MH_Y] = y >> 8;
+ p[MH_Y + 1] = y;
+ p[MH_Z] = z >> 8;
+ p[MH_Z + 1] = z;
+
+ p[MH_AX] = ax >> 8;
+ p[MH_AX + 1] = ax;
+ p[MH_AY] = ay >> 8;
+ p[MH_AY + 1] = ay;
+ p[MH_AZ] = az >> 8;
+ p[MH_AZ + 1] = az;
+
+ p[MH_MAXX] = tablet_maxx >> 8;
+ p[MH_MAXX + 1] = tablet_maxx;
+ p[MH_MAXY] = tablet_maxy >> 8;
+ p[MH_MAXY + 1] = tablet_maxy;
+
+ p[MH_PRESSURE] = pressure >> 8;
+ p[MH_PRESSURE + 1] = pressure;
+
+ p[MH_BUTTONBITS + 0] = buttonbits >> 24;
+ p[MH_BUTTONBITS + 1] = buttonbits >> 16;
+ p[MH_BUTTONBITS + 2] = buttonbits >> 8;
+ p[MH_BUTTONBITS + 3] = buttonbits >> 0;
+
+ if (inproximity < 0) {
+ p[MH_INPROXIMITY] = p[MH_INPROXIMITY + 1] = 0xff;
+ } else {
+ p[MH_INPROXIMITY] = 0;
+ p[MH_INPROXIMITY + 1] = inproximity ? 1 : 0;
+ }
+
+ if (!memcmp (tmp, p + MH_START, MH_END - MH_START))
+ return;
+ p[MH_CNT]++;
+}
+
+void inputdevice_tablet_info (int maxx, int maxy, int maxz, int maxax, int maxay, int maxaz, int xres, int yres)
+{
+ uae_u8 *p;
+
+ if (!uae_boot_rom)
+ return;
+ p = rtarea + 12 + get_long (rtarea_base + 36);
+
+ tablet_maxx = maxx;
+ tablet_maxy = maxy;
+ p[MH_MAXX] = maxx >> 8;
+ p[MH_MAXX + 1] = maxx;
+ p[MH_MAXY] = maxy >> 8;
+ p[MH_MAXY + 1] = maxy;
+ p[MH_MAXZ] = maxz >> 8;
+ p[MH_MAXZ + 1] = maxz;
+
+ p[MH_RESX] = xres >> 8;
+ p[MH_RESX + 1] = xres;
+ p[MH_RESY] = yres >> 8;
+ p[MH_RESY + 1] = yres;
-void setamigamouse (int x, int y)
+ p[MH_MAXAX] = maxax >> 8;
+ p[MH_MAXAX + 1] = maxax;
+ p[MH_MAXAY] = maxay >> 8;
+ p[MH_MAXAY + 1] = maxay;
+ p[MH_MAXAZ] = maxaz >> 8;
+ p[MH_MAXAZ + 1] = maxaz;
+}
+
+static void inputdevice_tablet_abs (int x, int y)
+{
+ uae_u8 *p;
+ uae_u8 tmp[4];
+ uae_u32 off;
+
+ mousehack_enable ();
+ off = 12 + get_long (rtarea_base + 36);
+ p = rtarea + off;
+
+ memcpy (tmp, p + MH_ABSX, 4);
+
+ p[MH_ABSX] = x >> 8;
+ p[MH_ABSX + 1] = x;
+ p[MH_ABSY] = y >> 8;
+ p[MH_ABSY + 1] = y;
+
+ if (!memcmp (tmp, p + MH_ABSX, 4))
+ return;
+ p[MH_CNT]++;
+ tablet_data = 1;
+}
+
+void getgfxoffset (int *dx, int *dy, int*,int*);
+static void inputdevice_tablet_abs_v36 (int x, int y)
{
+ uae_u8 *p;
+ uae_u8 tmp[MH_END];
+ uae_u32 off;
+ int maxx, maxy, diffx, diffy;
+ int fdy, fdx, fmx, fmy;
+
mousehack_enable ();
- mousehack_setpos (x, y);
+ off = 12 + get_long (rtarea_base + 36);
+ p = rtarea + off;
+
+ memcpy (tmp, p + MH_START, MH_END - MH_START);
+
+ getgfxoffset (&fdx, &fdy, &fmx, &fmy);
+ x -= fdx;
+ y -= fdy;
+
+ diffx = diffy = 0;
+ maxx = maxy = 0;
+ if (picasso_on) {
+ maxx = picasso96_state.Width;
+ maxy = picasso96_state.Height;
+ } else if (dimensioninfo_width > 0 && dimensioninfo_height > 0) {
+ maxx = dimensioninfo_width;
+ maxy = dimensioninfo_height;
+ get_custom_mouse_limits (&maxx, &maxy, &diffx, &diffy, dimensioninfo_dbl);
+ } else {
+ uaecptr gb = get_gfxbase ();
+ maxx = 0; maxy = 0;
+ if (gb) {
+ maxy = get_word (gb + 216);
+ maxx = get_word (gb + 218);
+ }
+ get_custom_mouse_limits (&maxx, &maxy, &diffx, &diffy, 0);
+ }
+ maxx = maxx * 1000 / fmx;
+ maxy = maxy * 1000 / fmy;
+
+ if (maxx <= 0)
+ maxx = 1;
+ if (maxy <= 0)
+ maxy = 1;
+
+ x -= diffx;
+ if (x < 0)
+ x = 0;
+ if (x >= maxx)
+ x = maxx - 1;
+
+ y -= diffy;
+ if (y < 0)
+ y = 0;
+ if (y >= maxy)
+ y = maxy - 1;
+
+ //write_log ("%d %d %d %d\n", x, y, maxx, maxy);
+
+ p[MH_X] = x >> 8;
+ p[MH_X + 1] = x;
+ p[MH_Y] = y >> 8;
+ p[MH_Y + 1] = y;
+ p[MH_MAXX] = maxx >> 8;
+ p[MH_MAXX + 1] = maxx;
+ p[MH_MAXY] = maxy >> 8;
+ p[MH_MAXY + 1] = maxy;
+
+ p[MH_Z] = p[MH_Z + 1] = 0;
+ p[MH_MAXZ] = p[MH_MAXZ + 1] = 0;
+ p[MH_AX] = p[MH_AX + 1] = 0;
+ p[MH_AY] = p[MH_AY + 1] = 0;
+ p[MH_AZ] = p[MH_AZ + 1] = 0;
+ p[MH_PRESSURE] = p[MH_PRESSURE + 1] = 0;
+ p[MH_INPROXIMITY] = p[MH_INPROXIMITY + 1] = 0xff;
+
+ if (!memcmp (tmp, p + MH_START, MH_END - MH_START))
+ return;
+ p[MH_CNT]++;
+ tablet_data = 1;
+}
+
+static void mousehack_helper (void)
+{
+ int x, y;
+
+ if (currprefs.input_magic_mouse == 0 || currprefs.input_tablet == 0)
+ return;
+ if (kickstart_version >= 36) {
+ inputdevice_tablet_abs_v36 (lastmx, lastmy);
+ return;
+ }
+#ifdef PICASSO96
+ if (picasso_on) {
+ x = lastmx - picasso96_state.XOffset;
+ y = lastmy - picasso96_state.YOffset;
+ } else
+#endif
+ {
+ x = coord_native_to_amiga_x (lastmx);
+ y = coord_native_to_amiga_y (lastmy) << 1;
+ }
+ inputdevice_tablet_abs (x, y);
}
+static int mouseedge_x, mouseedge_y, mouseedge_time;
+#define MOUSEEDGE_RANGE 100
+#define MOUSEEDGE_TIME 2
+
extern void setmouseactivexy (int,int,int);
-extern void drawing_adjust_mousepos (int*,int*);
static int mouseedge (void)
{
static int melast_x, melast_y;
static int isnonzero;
- if (!currprefs.win32_outsidemouse || magicmouse_ibase == 0xffffffff)
+ if (currprefs.input_magic_mouse == 0 || currprefs.input_tablet > 0)
+ return 0;
+ if (magicmouse_ibase == 0xffffffff)
return 0;
dir = 0;
if (!mouseedge_time) {
isnonzero = 0;
goto end;
}
- if (magicmouse_ibase == 0)
- ib = get_intuitionbase();
- else
- ib = magicmouse_ibase;
+ ib = get_intuitionbase ();
if (!ib)
return 0;
x = get_word (ib + 70);
mouseedge_time = 0;
if (dir) {
if (!picasso_on) {
- drawing_adjust_mousepos (&x, &y);
+ int aw = 0, ah = 0, dx, dy;
+ get_custom_mouse_limits (&aw, &ah, &dx, &dy, dimensioninfo_dbl);
+ x += dx;
+ y += dy;
}
if (!dmaen(DMA_SPRITE))
setmouseactivexy (x, y, 0);
return 1;
}
-int mousehack_alive (void)
-{
- return ievent_alive > 0;
-}
-
int magicmouse_alive (void)
{
return mouseedge_alive > 0;
}
-static void mousehack_helper (void)
-{
- int mousexpos, mouseypos;
-
- if (!mousehack_allowed ())
- return;
-#ifdef PICASSO96
- if (picasso_on) {
- mousexpos = lastmx - picasso96_state.XOffset;
- mouseypos = lastmy - picasso96_state.YOffset;
- } else
-#endif
- {
- mousexpos = coord_native_to_amiga_x (lastmx);
- mouseypos = coord_native_to_amiga_y (lastmy) << 1;
- }
- mousehack_setpos (mousexpos, mouseypos);
-}
-
STATIC_INLINE int adjust (int val)
{
if (val > 127)
}
}
-
uae_u8 handle_joystick_buttons (uae_u8 dra)
{
uae_u8 but = 0;
inputdelay = uaerand () % (maxvpos <= 1 ? 1 : maxvpos - 1);
inputdevice_handle_inputcode ();
- if (ievent_alive > 0)
- ievent_alive--;
if (mouseedge_alive > 0)
mouseedge_alive--;
#ifdef ARCADIA
#endif
if (mouseedge ())
mouseedge_alive = 10;
+
inputdevice_checkconfig ();
}
void inputdevice_reset (void)
{
- ievent_alive = 0;
magicmouse_ibase = 0;
+ magicmouse_gfxbase = 0;
+ mousehack_reset ();
+ if (inputdevice_is_tablet ())
+ mousehack_enable ();
}
static int getoldport (struct uae_input_device *id)
cd32_pad_enabled[1] = 1;
#endif
- if (mousehack_allowed ())
- mousehack_enable ();
}
/* called when devices get inserted or removed */
testrecord (IDTYPE_MOUSE, mouse, IDEV_WIDGET_AXIS, axis, data);
return;
}
- if (!mice[mouse].enabled)
+ if (!mice[mouse].enabled) {
+ if (isabs && currprefs.input_tablet > 0) {
+ if (axis == 0)
+ lastmx = data;
+ else
+ lastmy = data;
+ if (axis)
+ mousehack_helper ();
+ }
return;
+ }
d = 0;
mouse_p = &mouse_axis[mouse][axis];
oldm_p = &oldm_axis[mouse][axis];
lastmx = data;
else
lastmy = data;
+ if (axis)
+ mousehack_helper ();
+ if (currprefs.input_tablet == TABLET_MOUSEHACK)
+ return;
}
v = (int)(d > 0 ? d + 0.5 : d - 0.5);
fract1[mouse][axis] += d;
}
for (i = 0; i < MAX_INPUT_SUB_EVENT; i++)
handle_input_event (id->eventid[ID_AXIS_OFFSET + axis][i], v, 0, 0);
- mousehack_helper ();
}
int getmousestate (int joy)
{
if (turbo_emulation) {
changed_prefs.gfx_framerate = currprefs.gfx_framerate = fr2;
turbo_emulation = 0;
- } else {
+ } else {
turbo_emulation = fr;
}
} else if (mode == 0 && turbo_emulation > 0) {
{
fixup_prefs_dim2 (&prefs->gfx_size_fs);
fixup_prefs_dim2 (&prefs->gfx_size_win);
+ if (prefs->gfx_filter == 0) {
+ prefs->gfx_filter = 1;
+ prefs->gfx_filter_horiz_zoom = 0;
+ prefs->gfx_filter_vert_zoom = 0;
+ prefs->gfx_filtershader[0] = 0;
+ prefs->gfx_filter_horiz_zoom_mult = 0;
+ prefs->gfx_filter_vert_zoom_mult = 0;
+ prefs->gfx_filter_filtermode = 0;
+ prefs->gfx_filter_autoscale = 1;
+ prefs->gfx_filter_keep_aspect = 0;
+ }
}
void fixup_cpu (struct uae_prefs *p)
memcpy (kickmemory, a1000_bootrom, 262144);
kickstart_version = 0;
}
+ if (kickstart_version == 0xffff)
+ kickstart_version = 0;
}
void a1000_reset (void)
buf[i + 1] = t;
}
}
+static void wordbyteswap (uae_u8 *buf, int size)
+{
+ int i;
+ for (i = 0; i < size; i += 4) {
+ uae_u8 t;
+ t = buf[i + 0];
+ buf[i + 0] = buf[i + 2];
+ buf[i + 2] = t;
+ t = buf[i + 1];
+ buf[i + 1] = buf[i + 3];
+ buf[i + 3] = t;
+ }
+}
+
static void mergecd32 (uae_u8 *dst, uae_u8 *src, int size)
{
int i, k;
crc32 = rd2->crc32;
name = rd->name;
buf = xmalloc (size * 2);
+ memset (buf, 0xff, size * 2);
if (!buf)
return NULL;
buf2 = buf + size;
while (rd->id == id) {
- int i;
+ int i, j, add;
int ok = 0;
uae_u32 flags = rd->type;
int odd = (flags & ROMTYPE_ODD) ? 1 : 0;
+ add = 0;
for (i = 0; i < 2; i++) {
memset (buf, 0, size);
if (!(flags & (ROMTYPE_EVEN | ROMTYPE_ODD))) {
memcpy (buf2, buf, size);
mergecd32 (buf, buf2, size);
}
- rd++;
+ add = 1;
i++;
} else {
int romsize = size / 2;
if (i)
odd = !odd;
- read_rom_file (buf2, rd);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd, buf2, romsize, odd);
- for (i = 0; i < size; i += 2)
- buf[i + odd] = buf2[i / 2];
- read_rom_file (buf2, rd + 1);
- if (flags & ROMTYPE_BYTESWAP)
- byteswap (buf2, romsize);
- if (flags & ROMTYPE_SCRAMBLED)
- descramble (rd + 1, buf2, romsize, !odd);
- for (i = 0; i < size; i += 2)
- buf[i + (1 - odd)] = buf2[i / 2];
- rd += 2;
+ if (flags & ROMTYPE_8BIT) {
+ read_rom_file (buf2, rd);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd, buf2, romsize, odd);
+ for (j = 0; j < size; j += 2)
+ buf[j + odd] = buf2[j / 2];
+ read_rom_file (buf2, rd + 1);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd + 1, buf2, romsize, !odd);
+ for (j = 0; j < size; j += 2)
+ buf[j + (1 - odd)] = buf2[j / 2];
+ } else {
+ read_rom_file (buf2, rd);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd, buf2, romsize, odd);
+ for (j = 0; j < size; j += 4) {
+ buf[j + 2 * odd + 0] = buf2[j / 2 + 0];
+ buf[j + 2 * odd + 1] = buf2[j / 2 + 1];
+ }
+ read_rom_file (buf2, rd + 1);
+ if (flags & ROMTYPE_BYTESWAP)
+ byteswap (buf2, romsize);
+ if (flags & ROMTYPE_SCRAMBLED)
+ descramble (rd + 1, buf2, romsize, !odd);
+ for (j = 0; j < size; j += 4) {
+ buf[j + 2 * (1 - odd) + 0] = buf2[j / 2 + 0];
+ buf[j + 2 * (1 - odd) + 1] = buf2[j / 2 + 1];
+ }
+ }
+ add = 2;
}
if (get_crc32 (buf, size) == crc32) {
ok = 1;
return zf;
}
}
+ rd += add;
}
xfree (buf);
#endif
kickstart_version = (kickmemory[12] << 8) | kickmemory[13];
+ if (kickstart_version == 0xffff)
+ kickstart_version = 0;
zfile_fclose (f);
return 1;
err:
#include "memory.h"
#include "custom.h"
#include "newcpu.h"
+#include "cpummu.h"
#include "cpu_prefetch.h"
#include "autoconf.h"
#include "traps.h"
}
}
}
+ if (currprefs.mmu_model)
+ mmu_set_super (regs->s);
doint ();
if (regs->t1 || regs->t0)
else
m68k_areg (regs, 7) = regs->isp;
regs->s = 1;
+ if (currprefs.mmu_model)
+ mmu_set_super (regs->s);
}
if (currprefs.cpu_model > 68000) {
if (nr == 2 || nr == 3) {
}
break;
/* 68040/060 only */
- case 3: regs.tcr = *regp & (currprefs.cpu_model == 68060 ? 0xfffe : 0xc000);
+ case 3:
+ regs.tcr = *regp & (currprefs.cpu_model == 68060 ? 0xfffe : 0xc000);
+ if (currprefs.mmu_model)
+ mmu_set_tc (regs.tcr);
break;
/* no differences between 68040 and 68060 */
regs.itt0 = regs.itt1 = regs.dtt0 = regs.dtt1 = 0;
regs.tcr = regs.mmusr = regs.urp = regs.srp = regs.buscr = 0;
+ if (currprefs.mmu_model)
+ mmu_reset ();
+
a3000_fakekick (0);
/* only (E)nable bit is zeroed when CPU is reset, A3000 SuperKickstart expects this */
tc_030 &= ~0x80000000;
#if MMUOP_DEBUG > 1
write_log ("mmu_op %04X PC=%08X\n", opcode, m68k_getpc (regs));
#endif
+ if (currprefs.cpu_model) {
+ mmu_op_real (opcode, extra);
+ return;
+ }
if ((opcode & 0xFE0) == 0x0500) {
/* PFLUSH */
regs->mmusr = 0;
#include "sysconfig.h"
#include "sysdeps.h"
+
+#include "resource"
+
#include "options.h"
#include "audio.h"
#include "custom.h"
#include "sound.h"
#include "gfxfilter.h"
#include "xwin.h"
-#include "resource.h"
#include "avioutput.h"
#include "registry.h"
#include "threaddep/thread.h"
#if defined(BSDSOCKET)
+#include "resource"
+
#include <winsock.h>
#include <stddef.h>
#include <process.h>
#include "threaddep/thread.h"
#include "registry.h"
#include "native2amiga.h"
-#include "resource.h"
#include "win32gui.h"
#include "wininet.h"
#include "mmsystem.h"
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
-#include "resource.h"
+
+#include "resource"
+
#include "options.h"
#include "memory.h"
#include "custom.h"
#include <setupapi.h>
#include <devguid.h>
+#include <wintab.h>
+#include "wintablet.h"
+
#include "win32.h"
#define MAX_MAPPINGS 256
return scancode;
}
-static int initialize_catweasel(void)
+static int tablet;
+static int axmax, aymax, azmax;
+static int xmax, ymax, zmax;
+static int xres, yres;
+static int maxpres;
+static char *tabletname;
+static int tablet_x, tablet_y, tablet_z, tablet_pressure, tablet_buttons, tablet_proximity;
+static int tablet_ax, tablet_ay, tablet_az, tablet_flags;
+
+static void tablet_send (void)
+{
+ static int eraser;
+
+ if ((tablet_flags & TPS_INVERT) && tablet_pressure > 0) {
+ tablet_buttons |= 2;
+ eraser = 1;
+ } else if (eraser) {
+ tablet_buttons &= ~2;
+ eraser = 0;
+ }
+ if (tablet_x < 0)
+ return;
+ inputdevice_tablet (tablet_x, tablet_y, tablet_z, tablet_pressure, tablet_buttons, tablet_proximity,
+ tablet_ax, tablet_ay, tablet_az);
+}
+
+void send_tablet_proximity (int inproxi)
+{
+ if (tablet_proximity == inproxi)
+ return;
+ tablet_proximity = inproxi;
+ if (!tablet_proximity) {
+ tablet_flags &= ~TPS_INVERT;
+ }
+ tablet_send ();
+}
+
+void send_tablet (int x, int y, int z, int pres, uae_u32 buttons, int flags, int ax, int ay, int az, int rx, int ry, int rz, RECT *r)
+{
+ //write_log ("%d %d %d (%d,%d,%d), %08X %d\n", x, y, pres, ax, ay, az, buttons, proxi);
+ if (axmax > 0)
+ ax = ax * 255 / axmax;
+ else
+ ax = 0;
+ if (aymax > 0)
+ ay = ay * 255 / aymax;
+ else
+ ay = 0;
+ if (azmax > 0)
+ az = az * 255 / azmax;
+ else
+ az = 0;
+ pres = pres * 255 / maxpres;
+
+ tablet_x = x;
+ tablet_y = ymax - y;
+ tablet_z = z;
+ tablet_pressure = pres;
+ tablet_buttons = buttons;
+ tablet_ax = abs (ax);
+ tablet_ay = abs (ay);
+ tablet_az = abs (az);
+ tablet_flags = flags;
+
+ tablet_send ();
+}
+
+static int gettabletres (AXIS *a)
+{
+ FIX32 r = a->axResolution;
+ switch (a->axUnits)
+ {
+ case TU_INCHES:
+ return r >> 16;
+ case TU_CENTIMETERS:
+ return (int)(((r / 65536.0) / 2.54) + 0.5);
+ default:
+ return -1;
+ }
+}
+
+void *open_tablet (HWND hwnd)
+{
+ LOGCONTEXT lc;
+ AXIS tx = { 0 }, ty = { 0 }, tz = { 0 };
+ AXIS pres = { 0 };
+
+ if (!tablet)
+ return 0;
+ xmax = -1;
+ ymax = -1;
+ zmax = -1;
+ WTInfo (WTI_DEFCONTEXT, 0, &lc);
+ WTInfo (WTI_DEVICES, DVC_X, &tx);
+ WTInfo (WTI_DEVICES, DVC_Y, &ty);
+ WTInfo (WTI_DEVICES, DVC_NPRESSURE, &pres);
+ xmax = tx.axMax;
+ ymax = ty.axMax;
+ if (WTInfo (WTI_DEVICES, DVC_Z, &tz))
+ zmax = tz.axMax;
+ lc.lcOptions |= CXO_MESSAGES;
+ lc.lcPktData = PACKETDATA;
+ lc.lcPktMode = PACKETMODE;
+ lc.lcMoveMask = PACKETDATA;
+ lc.lcBtnUpMask = lc.lcBtnDnMask;
+ lc.lcInExtX = tx.axMax;
+ lc.lcInExtY = ty.axMax;
+ if (zmax > 0)
+ lc.lcInExtZ = tz.axMax;
+ write_log ("Tablet '%s' parameters\n", tabletname);
+ write_log ("Xmax=%d,Ymax=%d,Zmax=%d\n", xmax, ymax, zmax);
+ write_log ("Xres=%.1f:%d,Yres=%.1f:%d,Zres=%.1f:%d\n",
+ tx.axResolution / 65536.0, tx.axUnits, ty.axResolution / 65536.0, ty.axUnits, tz.axResolution / 65536.0, tz.axUnits);
+ write_log ("Xrotmax=%d,Yrotmax=%d,Zrotmax=%d\n", axmax, aymax, azmax);
+ write_log ("PressureMin=%d,PressureMax=%d\n", pres.axMin, pres.axMax);
+ maxpres = pres.axMax;
+ xres = gettabletres (&tx);
+ yres = gettabletres (&ty);
+ tablet_proximity = -1;
+ tablet_x = -1;
+ inputdevice_tablet_info (xmax, ymax, zmax, axmax, aymax, azmax, xres, yres);
+ return WTOpen (hwnd, &lc, TRUE);
+}
+
+int close_tablet (void *ctx)
+{
+ if (ctx != NULL)
+ WTClose (ctx);
+ ctx = NULL;
+ if (!tablet)
+ return 0;
+ return 1;
+}
+
+int is_tablet (void)
+{
+ return tablet ? 1 : 0;
+}
+
+static int initialize_tablet (void)
+{
+ HANDLE h;
+ char name[MAX_DPATH];
+ struct tagAXIS ori[3];
+ int tilt = 0;
+
+ h = LoadLibrary ("wintab32.dll");
+ if (h == NULL) {
+ write_log ("Tablet: no wintab32.dll\n");
+ return 0;
+ }
+ FreeLibrary (h);
+ if (!WTInfo (0, 0, NULL)) {
+ write_log ("Tablet: WTInfo() returned failure\n");
+ return 0;
+ }
+ WTInfo (WTI_DEVICES, DVC_NAME, name);
+ axmax = aymax = azmax = -1;
+ tilt = WTInfo (WTI_DEVICES, DVC_ORIENTATION, &ori);
+ if (tilt) {
+ if (ori[0].axMax > 0)
+ axmax = ori[0].axMax;
+ if (ori[1].axMax > 0)
+ aymax = ori[1].axMax;
+ if (ori[2].axMax > 0)
+ azmax = ori[2].axMax;
+ }
+ write_log ("Tablet '%s' detected\n", name);
+ tabletname = my_strdup (name);
+ tablet = TRUE;
+ return 1;
+}
+
+static int initialize_catweasel (void)
{
int j, i;
char tmp[MAX_DPATH];
int i, j;
did += num_mouse;
- for (i = 0; i < 2; i++) {
+ for (i = 0; i < 1; i++) {
if (num_mouse >= MAX_INPUT_DEVICES)
return;
num_mouse++;
initialize_windowsmouse ();
write_log ("Catweasel joymouse initialization..\n");
initialize_catweasel ();
+ write_log ("wintab tablet initialization..\n");
+ initialize_tablet ();
write_log ("end\n");
sortdd (di_joystick, num_joystick, DID_JOYSTICK);
ddrval = restoresurface (surf);
if (FAILED (ddrval))
break;
- } else if (ddrval != DDERR_SURFACEBUSY) {
- break;
}
+ break;
}
}
#include "sysdeps.h"
#include <shellapi.h>
-#include "resource.h"
+
+#include "resource"
#include "threaddep/thread.h"
#include "options.h"
switch (scancode)
{
- case DIK_F12:
case DIK_F11:
if (currprefs.win32_ctrl_F11_is_quit) {
if (ctrlpressed ())
#if defined(LOGITECHLCD)
-#include "resource.h"
+#include "resource"
#include "gui.h"
#include "lcd.h"
#include <io.h>
#include "sysdeps.h"
+
+#include "resource"
+
#include "options.h"
#include "parser.h"
#include "midi.h"
#include "registry.h"
-#include "resource.h"
#include "win32gui.h"
//#define TRACING_ENABLED
len = sizeof (inputbuffer);
if (!ReadFile (hCom, inputbuffer, len, &actual, &readol)) {
if (GetLastError() == ERROR_IO_PENDING)
- WaitForSingleObject(&readol, INFINITE);
+ WaitForSingleObject (&readol, INFINITE);
else
return 0;
}
#define P96TRACING_ENABLED 1
#define P96TRACING_LEVEL 1
#endif
-static void flushpixels(void);
+static void flushpixels (void);
#if P96TRACING_ENABLED
#define P96TRACE(x) do { write_log x; } while(0)
#else
static int cursorwidth, cursorheight, cursorok;
static uae_u32 cursorrgb[4], cursorrgbn[4];
static int reloadcursor, cursorvisible, cursordeactivate;
+static HCURSOR wincursor;
+static int wincursor_shown;
static uaecptr boardinfo;
static int interrupt_enabled;
int p96vblank;
} BLIT_OPCODE;
#include "win32gui.h"
-#include "resource.h"
+#include "resource"
+
#define UAE_RTG_LIBRARY_VERSION 40
#define UAE_RTG_LIBRARY_REVISION 3994
static void checkrtglibrary(void)
int xdiff, ydiff, xdiff2, ydiff2;
LPDIRECTDRAWSURFACE7 dstsurf = dxdata.secondary;
- if (!cursorvisible || !hwsprite || !cursorok)
+ if (!cursorvisible || !hwsprite || !cursorok || wincursor_shown)
return;
if (remcursor_x + remcursor_w < sx)
DWORD ddrval;
LPDIRECTDRAWSURFACE7 dstsurf = dxdata.secondary;
- if (!cursorok)
+ if (!cursorok || wincursor_shown)
return;
if (!mouseput)
return;
}
}
+static void putwinmousepixel (HDC andDC, HDC xorDC, int x, int y, int c)
+{
+ if (c == 0) {
+ SetPixel (andDC, x, y, RGB (255, 255, 255));
+ SetPixel (xorDC, x, y, RGB (0, 0, 0));
+ } else {
+ uae_u32 val = cursorrgbn[c];
+ SetPixel (andDC, x, y, RGB (0, 0, 0));
+ SetPixel (xorDC, x, y, RGB ((val >> 16) & 0xff, (val >> 8) & 0xff, val & 0xff));
+ }
+}
+
+static int wincursorcnt;
+void picasso_setwincursor (void)
+{
+ if (wincursor) {
+ SetCursor (wincursor);
+ } else {
+ SetCursor (NULL);
+ }
+}
+
+static int createwindowscursor (uaecptr src, int w, int h, int hiressprite, int doubledsprite)
+{
+ HBITMAP andBM, xorBM;
+ HBITMAP andoBM, xoroBM;
+ HDC andDC, xorDC, DC, mainDC;
+ ICONINFO ic;
+ int x, y, yy;
+ int ret, isdata;
+
+ ret = 0;
+ if (wincursor)
+ DestroyIcon (wincursor);
+ wincursor = NULL;
+ wincursor_shown = 0;
+ if (isfullscreen () > 0 || currprefs.input_tablet == 0 || currprefs.input_magic_mouse == 0)
+ return 0;
+
+ DC = mainDC = andDC = xorDC = NULL;
+ andBM = xorBM = NULL;
+ DC = GetDC (NULL);
+ if (!DC)
+ goto end;
+ mainDC = CreateCompatibleDC (DC);
+ andDC = CreateCompatibleDC (DC);
+ xorDC = CreateCompatibleDC (DC);
+ if (!mainDC || !andDC || !xorDC)
+ goto end;
+ andBM = CreateCompatibleBitmap (DC, w, h);
+ xorBM = CreateCompatibleBitmap (DC, w, h);
+ if (!andBM || !xorBM)
+ goto end;
+ andoBM = SelectObject (andDC, andBM);
+ xoroBM = SelectObject (xorDC, xorBM);
+
+ isdata = 0;
+ for (y = 0, yy = 0; y < h; yy++) {
+ int dbl;
+ uaecptr img = src + yy * 4 * hiressprite;
+ for (dbl = 0; dbl < (doubledsprite ? 2 : 1); dbl++) {
+ x = 0;
+ while (x < w) {
+ uae_u32 d1 = get_long (img);
+ uae_u32 d2 = get_long (img + 2 * hiressprite);
+ int bits;
+ int maxbits = w - x;
+
+ if (maxbits > 16 * hiressprite)
+ maxbits = 16 * hiressprite;
+ for (bits = 0; bits < maxbits && x < w; bits++) {
+ uae_u8 c = ((d2 & 0x80000000) ? 2 : 0) + ((d1 & 0x80000000) ? 1 : 0);
+ d1 <<= 1;
+ d2 <<= 1;
+ putwinmousepixel (andDC, xorDC, x, y, c);
+ if (c > 0)
+ isdata = 1;
+ x++;
+ if (doubledsprite && x < w) {
+ putwinmousepixel (andDC, xorDC, x, y, c);
+ x++;
+ }
+ }
+ }
+ if (y <= h)
+ y++;
+ }
+ }
+ ret = 1;
+
+ SelectObject (andDC, andoBM);
+ SelectObject (xorDC, xoroBM);
+
+end:
+ DeleteDC (xorDC);
+ DeleteDC (andDC);
+ DeleteDC (mainDC);
+ ReleaseDC (NULL, DC);
+
+ if (!isdata) {
+ wincursor = LoadCursor (NULL, IDC_ARROW);
+ } else if (ret) {
+ memset (&ic, 0, sizeof ic);
+ ic.hbmColor = xorBM;
+ ic.hbmMask = andBM;
+ wincursor = CreateIconIndirect (&ic);
+ }
+
+ DeleteObject (andBM);
+ DeleteObject (xorBM);
+
+ if (wincursor) {
+ SetCursor (wincursor);
+ wincursor_shown = 1;
+ }
+
+ if (!ret)
+ write_log ("RTG Windows color cursor creation failed\n");
+ return ret;
+}
+
static uae_u32 setspriteimage (uaecptr bi)
{
DDSURFACEDESC2 desc;
if (!hwsprite || !dxdata.cursorsurface1)
return 0;
oldcursor_x = -10000;
- w = (uae_u32)get_byte (bi + PSSO_BoardInfo_MouseWidth);
- h = (uae_u32)get_byte (bi + PSSO_BoardInfo_MouseHeight);
+ w = get_byte (bi + PSSO_BoardInfo_MouseWidth);
+ h = get_byte (bi + PSSO_BoardInfo_MouseHeight);
tmpbuf = NULL;
flags = get_long (bi + PSSO_BoardInfo_Flags);
hiressprite = 1;
goto end;
}
+ createwindowscursor (get_long (bi + PSSO_BoardInfo_MouseImage) + 4 * hiressprite,
+ w, h, hiressprite, doubledsprite);
+
tmpbuf = xmalloc (w * h * bpp);
- yy = 0;
- for (y = 0; y < h; y++, yy++) {
+ for (y = 0, yy = 0; y < h; y++, yy++) {
uae_u8 *p = tmpbuf + w * bpp * y;
uae_u8 *pprev = p;
uaecptr img = get_long (bi + PSSO_BoardInfo_MouseImage) + 4 * hiressprite + yy * 4 * hiressprite;
uae_u32 result = 0;
if (NOBLITTER)
- return 1;
+ return 0;
if(CopyRenderInfoStructureA2U (rinf, &ri) && CopyPatternStructureA2U (pinf, &pattern)) {
Bpp = GetBytesPerPixel(ri.RGBFormat);
dw (0x6504); // bcs.s .l1
calltrap (deftrap (picasso_CalculateBytesPerRow));
dw (RTS);
- dw (0x0c87); dl (0x00000010); // l1: cmp.l #10,d7
+ dw (0x0c87); dl (0x00000010); // l1: cmp.l #$10,d7
dw (0x640a); // bcc.s .l2
dw (0x7200); // moveq #0,d1
dl (0x123b7010); // move.b table(pc,d7.w),d1
extern void picasso_handle_hsync (void);
extern int picasso_palette (void);
extern void picasso_reset (void);
+extern void picasso_setwincursor (void);
/* This structure describes the UAE-side framebuffer for the Picasso
* screen. */
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by winuae.rc
+//
+#define IDS_KICKSTART 1
+#define IDS_DISK 2
+#define IDS_DISPLAY 3
+#define IDC_HARDDRIVE_IMAGE 3
+#define IDS_HARDDISK 4
+#define IDS_FLOPPY 5
+#define IDS_ABOUT 6
+#define IDS_LOADSAVE 7
+#define IDS_AVIOUTPUT 8
+#define IDS_IOPORTS 9
+#define IDS_MISC1 10
+#define IDS_MEMORY 11
+#define IDS_CPU 12
+#define IDS_CHIPSET 13
+#define IDS_INPUT 14
+#define IDS_OPENGL 15
+#define IDS_FILTER 15
+#define IDS_MISC2 16
+#define IDS_PATHS 17
+#define IDS_QUICKSTART 18
+#define IDS_FRONTEND 19
+#define IDS_CHIPSET2 20
+#define IDS_GAMEPORTS 21
+#define IDS_EXTTEXT 100
+#define IDS_EXTACTUAL 101
+#define IDS_SOUND 102
+#define IDS_CDROM 103
+#define IDS_FRAMERATE 104
+#define IDS_SECOND 105
+#define IDS_THIRD 106
+#define IDD_KICKSTART 107
+#define IDS_FOURTH 107
+#define IDD_DISPLAY 108
+#define IDS_FIFTH 108
+#define IDD_MEMORY 109
+#define IDS_SIXTH 109
+#define IDD_FLOPPY 110
+#define IDS_SEVENTH 110
+#define IDD_CPU 111
+#define IDS_EIGHTH 111
+#define IDD_ABOUT 112
+#define IDS_NINTH 112
+#define IDD_HARDDISK 113
+#define IDS_TENTH 113
+#define IDS_SELECTADF 114
+#define IDS_ADF 115
+#define IDS_CHOOSEBLANK 116
+#define IDS_SELECTHDF 117
+#define IDS_HDF 118
+#define IDS_SELECTUAE 119
+#define IDS_UAE 120
+#define IDS_SELECTROM 121
+#define IDD_SOUND 122
+#define IDS_ROM 122
+#define IDI_APPICON 123
+#define IDS_SELECTKEY 123
+#define IDI_CPU 124
+#define IDS_KEY 124
+#define IDI_ABOUT 125
+#define IDS_SELECTINFO 125
+#define IDS_NONE 126
+#define IDS_VOLUME 127
+#define IDI_HARDDISK 128
+#define IDS_PATH 128
+#define IDS_RW 129
+#define IDI_SOUND 130
+#define IDS_SECTORS 130
+#define IDS_SURFACES 131
+#define IDS_RESERVED 132
+#define IDS_BLOCKSIZE 133
+#define IDI_FLOPPY 134
+#define IDS_NAME 134
+#define IDD_LOADSAVE 135
+#define IDS_DESCRIPTION 135
+#define IDS_ONEINSTANCE 136
+#define IDI_IOPORTS 137
+#define IDS_INSTALLDIRECTX 137
+#define IDD_IOPORTS 138
+#define IDS_REGKEYCREATEFAILED 138
+#define IDS_COULDNOTLOADCONFIG 139
+#define IDD_CONTRIBUTORS 140
+#define IDS_NOHELP 140
+#define IDD_MISC1 141
+#define IDS_MUSTSELECTCONFIG 141
+#define IDD_HARDFILE 142
+#define IDS_NOAGA 142
+#define IDD_FILESYS 143
+#define IDS_INVALIDCOMPORT 143
+#define IDS_WSOCK2NEEDED 144
+#define IDD_MISC2 144
+#define IDS_UNSUPPORTEDPIXELFORMAT 145
+#define IDS_WAVEOUTOPENFAILURE 146
+#define IDS_MUSTENTERNAME 147
+#define IDS_MUSTSELECTCONFIGFORDELETE 148
+#define IDS_DELETECONFIGCONFIRMATION 149
+#define IDI_MISC1 150
+#define IDS_DELETECONFIGTITLE 150
+#define IDC_MYHAND 151
+#define IDS_GFXCARDCHECK 151
+#define IDD_DIALOG1 152
+#define IDS_GFXCARDTITLE 152
+#define IDD_DEBUGGER 152
+#define IDD_SETINFO 153
+#define IDS_MUSTSELECTPATH 153
+#define IDI_ICON1 153
+#define IDS_SETTINGSERROR 154
+#define IDD_CHIPSET 154
+#define IDS_MUSTSELECTNAME 155
+#define IDI_MOVE_UP 155
+#define IDD_CHIPSET2 155
+#define IDS_MUSTSELECTFILE 156
+#define IDI_MOVE_DOWN 156
+#define IDS_FAILEDHARDFILECREATION 157
+#define IDD_AVIOUTPUT 157
+#define IDS_CREATIONERROR 158
+#define IDI_AVIOUTPUT 158
+#define IDS_ERRORTITLE 159
+#define IDS_SELECTFILESYSROOT 160
+#define IDD_OPENGL 160
+#define IDD_FILTER 160
+#define IDS_DEFAULTMIDIOUT 161
+#define IDS_DEFAULTMIDIIN 162
+#define IDS_CONTRIBUTORS1 163
+#define IDD_HARDDRIVE 163
+#define IDS_CONTRIBUTORS2 164
+#define IDS_INVALIDPRTPORT 165
+#define IDS_SELECTUSS 166
+#define IDS_RESTOREUSS 166
+#define IDS_USS 167
+#define IDS_WRONGOSVERSION 168
+#define IDR_DRIVE_STARTUP_A500_1 168
+#define IDS_SELECTFLASH 169
+#define IDR_DRIVE_CLICK_A500_1 169
+#define IDS_FLASH 170
+#define IDR_DRIVE_SPIN_A500_1 170
+#define IDD_INPUT 171
+#define IDS_INPUTHOSTWIDGET 171
+#define IDI_INPUT 172
+#define IDS_INPUTAMIGAEVENT 172
+#define IDD_DISK 172
+#define IDS_INPUTAUTOFIRE 173
+#define IDS_SAVEUSS 174
+#define IDS_MIDIOVERFLOW 175
+#define IDS_HFDSIZE 176
+#define IDS_DEVICE 177
+#define IDS_BOOTPRI 178
+#define IDS_WRONGDXVERSION 179
+#define IDI_MISC2 180
+#define IDS_FLOPPY_COMPATIBLE 180
+#define IDR_DRIVE_SNATCH_A500_1 181
+#define IDS_FLOPPY_TURBO 181
+#define IDI_DISK 182
+#define IDR_DRIVE_SPINND_A500_1 182
+#define IDS_YES 182
+#define IDD_PANEL 183
+#define IDS_NO 183
+#define IDD_PATHS 184
+#define IDS_PRI_ABOVENORMAL 184
+#define IDI_CONFIGFILE 185
+#define IDD_QUICKSTART 185
+#define IDS_PRI_NORMAL 185
+#define IDM_SYSTRAY 186
+#define IDS_PRI_BELOWNORMAL 186
+#define IDS_PRI_LOW 187
+#define IDI_FOLDER 188
+#define IDS_OLDRTGLIBRARY 188
+#define IDS_DEFAULT_AF2005 189
+#define IDI_DISPLAY 190
+#define IDS_DEFAULT_AF 190
+#define IDS_DEFAULT_WINUAE 191
+#define IDI_ROOT 192
+#define IDS_INP 192
+#define IDS_RESTOREINP 193
+#define IDI_ICON2 194
+#define IDI_MEMORY 194
+#define IDS_SAVEINP 194
+#define IDS_SCREEN_WINDOWED 195
+#define IDS_SCREEN_FULLSCREEN 196
+#define IDS_SCREEN_FULLWINDOW 197
+#define IDS_SCREEN_VSYNC 198
+#define IDS_SOUND_MONO 200
+#define IDS_SOUND_MIXED 201
+#define IDI_QUICKSTART 201
+#define IDS_SOUND_STEREO 202
+#define IDS_SOUND_INTERPOL_DISABLED 203
+#define IDS_DISABLED 203
+#define IDS_SOUND_INTERPOL_RH 204
+#define IDI_PATHS 204
+#define IDS_SOUND_INTERPOL_CRUX 205
+#define IDS_SOUND_FILTER_OFF 206
+#define IDS_SOUND_FILTER_EMULATED 207
+#define IDS_SOUND_FILTER_EMULATED_E 208
+#define IDS_INPUT_COMPATIBILITY 209
+#define IDS_INPUT_CUSTOM 210
+#define IDS_INPUT_COPY_DEFAULT 211
+#define IDS_INPUT_COPY_CUSTOM 212
+#define IDS_3D_NO_FILTER 213
+#define IDS_3D_BILINEAR 214
+#define IDS_VSYNC_DEFAULT 215
+#define IDS_DRIVESOUND_NONE 216
+#define IDS_DRIVESOUND_DEFAULT_A500 217
+#define IDS_AVIOUTPUT_NOCODEC 218
+#define IDS_DISK_IMAGENAME 219
+#define IDS_DISK_DRIVENAME 220
+#define IDS_AGA8BIT 221
+#define IDS_UNSUPPORTEDSCREENMODE 222
+#define IDS_UNSUPPORTEDSCREENMODE_1 223
+#define IDS_UNSUPPORTEDSCREENMODE_2 224
+#define IDS_UNSUPPORTEDSCREENMODE_3 225
+#define IDS_UNSUPPORTEDSCREENMODE_4 226
+#define IDS_FLOPPYTYPE35DD 227
+#define IDS_FLOPPYTYPE35HD 228
+#define IDS_FLOPPYTYPE525SD 229
+#define IDS_FLOPPYTYPEDISABLED 230
+#define IDS_STMENUNOFLOPPY 231
+#define IDS_TREEVIEW_HARDWARE 232
+#define IDS_TREEVIEW_HOST 233
+#define IDS_TREEVIEW_MISC 234
+#define IDS_TREEVIEW_SETTINGS 235
+#define IDS_WINUAETITLE_MMB 236
+#define IDS_WINUAETITLE_NORMAL 237
+#define IDS_STARTEMULATION 238
+#define IDS_TREEVIEW_ABOUT 239
+#define IDS_NOHARDDRIVES 240
+#define IDS_DEFAULT_HOST 241
+#define IDS_SOUND_4CHANNEL 242
+#define IDS_HF_FS_CUSTOM 243
+#define IDS_SELECTFS 244
+#define IDS_KEYJOY 245
+#define IDB_XARCADE 246
+#define IDS_STATEFILE_UNCOMPRESSED 246
+#define IDS_STATEFILE_RAMDUMP 247
+#define IDS_STATEFILE_WAVE 248
+#define IDD_FRONTEND 249
+#define IDS_SOUND_SWAP_PAULA 249
+#define IDS_SOUND_SWAP_AHI 250
+#define IDD_PROGRESSBAR 250
+#define IDS_SOUND_SWAP_BOTH 251
+#define IDD_STRINGBOX 251
+#define IDB_BITMAP1 252
+#define IDB_LCD160X43 252
+#define IDS_SOUND_FILTER_ON_AGA 252
+#define IDS_SOUND_FILTER_ON 253
+#define IDS_SOUND_FILTER_ON_A500 253
+#define IDS_DRIVESOUND_PC_FLOPPY 254
+#define IDS_FLOPPYTYPE35DDESCOM 255
+#define IDS_SOUND_STEREO2 256
+#define IDS_INPUT_CUSTOMEVENT 257
+#define IDS_DEFAULT_NEWWINUAE 258
+#define IDS_SOUND_CLONED51 259
+#define IDS_SOUND_51 260
+#define IDS_AUTOMATIC 261
+#define IDI_GAMEPORTS 262
+#define IDD_GAMEPORTS 263
+#define IDS_NUMSG_NEEDEXT2 300
+#define IDS_NUMSG_NOROMKEY 301
+#define IDS_NUMSG_KSROMCRCERROR 302
+#define IDS_NUMSG_KSROMREADERROR 303
+#define IDS_NUMSG_NOEXTROM 304
+#define IDS_NUMSG_MODRIP_NOTFOUND 305
+#define IDS_NUMSG_MODRIP_FINISHED 306
+#define IDS_NUMSG_MODRIP_SAVE 307
+#define IDS_NUMSG_KS68020 308
+#define IDS_NUMSG_ROMNEED 309
+#define IDS_NUMSG_NOZLIB 310
+#define IDS_NUMSG_STATEHD 311
+#define IDS_NUMSG_NOCAPS 312
+#define IDS_NUMSG_OLDCAPS 313
+#define IDS_IMGCHK_BOOTBLOCKCRCERROR 314
+#define IDS_IMGCHK_BOOTBLOCKNO 315
+#define IDS_IMGCHK_DAMAGED 316
+#define IDS_IMGCHK_KS2 317
+#define IDS_IMGCHK_KS3 318
+#define IDS_ROMSCANEND 319
+#define IDS_ROM_AVAILABLE 320
+#define IDS_ROM_UNAVAILABLE 321
+#define IDS_HARDDRIVESAFETYWARNING1 322
+#define IDS_NUMSG_KS68EC020 323
+#define IDS_ROMSCANNOROMS 324
+#define IDS_NUMSG_KICKREP 325
+#define IDS_NUMSG_KICKREPNO 326
+#define IDS_NUMSG_NOROM 327
+#define IDS_HDCLONE_OK 328
+#define IDS_HDCLONE_FAIL 329
+#define IDR_DBGACCEL 330
+#define IDS_NUMSG_KS68030 331
+#define IDS_NUMSG_EXPROMNEED 332
+#define IDS_HARDDRIVESAFETYWARNING2 333
+#define IDM_DBGCONTEXTMENU 334
+#define IDS_SB_FAVORITENAME 334
+#define IDD_DBGMEMINPUT 335
+#define IDS_SB_CUSTOMEVENT 335
+#define IDS_QS_MODELS 1000
+#define IDS_QS_MODEL_A500 1001
+#define IDS_QS_MODEL_A500P 1002
+#define IDS_QS_MODEL_A600 1003
+#define IDS_QS_MODEL_A1000 1004
+#define IDS_QS_MODEL_A1200 1005
+#define IDS_QS_MODEL_CD32 1006
+#define IDS_QS_MODEL_CDTV 1007
+#define IDS_QS_MODEL_UAE 1008
+#define IDS_QS_MODEL_ARCADIA 1009
+#define IDS_QS_MODEL_A3000 1010
+#define IDS_QS_MODEL_A4000 1011
+#define IDS_QS_MODEL_A4000T 1012
+#define IDC_RESOLUTION 1021
+#define IDC_SERIAL 1022
+#define IDC_REFRESHRATE 1022
+#define IDC_ILLEGAL 1023
+#define IDC_MIDILIST 1023
+#define IDC_MIDIOUTLIST 1023
+#define IDC_DA_MODE 1023
+#define IDC_SHOWGUI 1024
+#define IDC_MIDIINLIST 1024
+#define IDC_RESOLUTION2 1024
+#define IDC_DISPLAYSELECT 1024
+#define IDC_AUTOCONFIG 1025
+#define IDC_PRINTERLIST 1025
+#define IDC_RESOLUTION3 1025
+#define IDC_RESOLUTIONDEPTH 1025
+#define IDC_CHIPMEM 1026
+#define IDC_CREATELOGFILE 1026
+#define IDC_PORT0_JOYS 1026
+#define IDC_SCREENMODE_NATIVE 1026
+#define IDC_FASTMEM 1027
+#define IDC_SHOWLEDS 1027
+#define IDC_PORT1_JOYS 1027
+#define IDC_SCREENMODE_RTG 1027
+#define IDC_MBMEM1 1028
+#define IDC_SLOWMEM 1030
+#define IDC_MBMEM2 1031
+#define IDC_PARALLEL 1033
+#define IDC_JULIAN 1040
+#define IDC_FASTTEXT 1043
+#define IDC_FASTRAM 1044
+#define IDC_CHIPRAM 1045
+#define IDC_SLOWRAM 1046
+#define IDC_Z3TEXT 1047
+#define IDC_Z3FASTRAM 1048
+#define IDC_Z3FASTMEM 1049
+#define IDC_MBRAM1 1050
+#define IDC_MBRAM2 1051
+#define IDC_UAEHOME 1070
+#define IDC_PICASSOHOME 1071
+#define IDC_AMIGAHOME 1072
+#define IDC_WINUAEHOME 1073
+#define IDC_AIABHOME 1074
+#define IDC_CLOANTOHOME 1075
+#define IDC_THEROOTS 1076
+#define IDC_CAPS 1077
+#define IDC_ABIME 1078
+#define IDC_AMIGASYS 1079
+#define IDC_AMIKIT 1080
+#define IDC_RICHEDIT1 1091
+#define IDC_RICHEDIT2 1092
+#define IDC_CONTRIBUTORS 1124
+#define IDC_ASPECT 1170
+#define IDC_BLIT32 1173
+#define IDC_BLITIMM 1174
+#define IDC_LORES 1176
+#define IDC_LORES_SMOOTHED 1179
+#define IDC_FRAMERATE 1185
+#define IDC_RATETEXT 1186
+#define IDC_XSIZE 1187
+#define IDC_YSIZE 1188
+#define IDC_INPUTAUTOFIRERATE 1188
+#define IDC_LM_NORMAL 1189
+#define IDC_INPUTSPEEDD 1189
+#define IDC_LM_DOUBLED 1190
+#define IDC_INPUTSPEEDA 1190
+#define IDC_GFXCARDTEXT 1191
+#define IDC_LM_SCANLINES 1191
+#define IDC_INPUTSPEEDM 1191
+#define IDC_P96RAM 1192
+#define IDC_P96MEM 1193
+#define IDC_DA_SLIDER 1193
+#define IDC_FRAMERATE2 1194
+#define IDC_RATE2TEXT 1195
+#define IDC_CPU0 1200
+#define IDC_CPU1 1201
+#define IDC_CPU2 1202
+#define IDC_CPU3 1203
+#define IDC_CPU4 1204
+#define IDC_CPU5 1205
+#define IDC_CS_HOST 1209
+#define IDC_CS_68000 1210
+#define IDC_CS_ADJUSTABLE 1211
+#define IDC_CS_CPU_TEXT 1212
+#define IDC_CS_CHIPSET_TEXT 1213
+#define IDC_COMPATIBLE 1214
+#define IDC_TRUST0 1215
+#define IDC_TRUST1 1216
+#define IDC_CACHE 1218
+#define IDC_CYCLEEXACT 1219
+#define IDC_CS_CPU_TEXT2 1219
+#define IDC_CPUIDLE 1220
+#define IDC_GENLOCK 1220
+#define IDC_COMPATIBLE_FPU 1221
+#define IDC_FASTERRTG 1221
+#define IDC_COMPATIBLE24 1222
+#define IDC_SPEED 1223
+#define IDC_FPU0 1224
+#define IDC_FPU1 1225
+#define IDC_FPU2 1226
+#define IDC_FPU3 1227
+#define IDC_SOUNDSETTINGS 1229
+#define IDC_8BIT 1230
+#define IDC_16BIT 1231
+#define IDC_11KHZ 1232
+#define IDC_22KHZ 1233
+#define IDC_44KHZ 1234
+#define IDC_48KHZ 1235
+#define IDC_SOUNDSIZE 1236
+#define IDC_FREQUENCY 1237
+#define IDC_SOUND0 1238
+#define IDC_SOUND1 1239
+#define IDC_SOUND2 1240
+#define IDC_SOUND3 1241
+#define IDC_SOUNDSTYLE 1242
+#define IDC_SOUNDSTYLE0 1243
+#define IDC_STEREO 1244
+#define IDC_SOUNDSTYLE1 1245
+#define IDC_SOUNDINTERPOLATION 1248
+#define IDC_INTERPOLATION0 1249
+#define IDC_INTERPOLATION1 1250
+#define IDC_INTERPOLATION2 1251
+#define IDC_STEREOMODE 1252
+#define IDC_SOUNDINTERPOLATION2 1252
+#define IDC_STEREOMODE0 1253
+#define IDC_STEREOMODE1 1254
+#define IDC_STEREOMODE2 1255
+#define IDC_SOUNDINTERPOLATION3 1256
+#define IDC_DF0TEXT 1270
+#define IDC_DF1TEXT 1271
+#define IDC_DF2TEXT 1272
+#define IDC_DF3TEXT 1273
+#define IDC_EJECT0 1274
+#define IDC_EJECT1 1275
+#define IDC_EJECT2 1276
+#define IDC_EJECT3 1277
+#define IDC_DF0 1278
+#define IDC_DF1 1279
+#define IDC_DF2 1280
+#define IDC_DF3 1281
+#define IDC_CREATE 1282
+#define IDC_CREATE_RAW 1283
+#define IDC_SNAPSHOTNAME 1284
+#define IDC_SNAPSHOT 1285
+#define IDC_SAVEIMAGE0 1285
+#define IDC_DOSAVESTATE 1286
+#define IDC_SAVEIMAGE1 1286
+#define IDC_DOLOADSTATE 1287
+#define IDC_SAVEIMAGE2 1287
+#define IDC_PROWIZARD 1288
+#define IDC_SAVEIMAGE3 1288
+#define IDC_PORT0_JOYSC 1302
+#define IDC_PORT0_KBDA 1303
+#define IDC_PORT0_KBDB 1304
+#define IDC_PORT0_KBDC 1305
+#define IDC_PORT0_KBDD 1306
+#define IDC_PORT0_KBDE 1307
+#define IDC_PORT1_JOYSC 1308
+#define IDC_PORT1_KBDA 1309
+#define IDC_PORT1_KBDB 1310
+#define IDC_PORT1_KBDC 1311
+#define IDC_PORT1_KBDD 1312
+#define IDC_PORT1_KBDE 1313
+#define IDC_MIDIFRAME 1314
+#define IDC_SERPARFRAME 1315
+#define IDC_SERIALFRAME 1316
+#define IDC_EDIT 1334
+#define IDC_REMOVE 1335
+#define IDC_VOLUMELIST 1336
+#define IDC_UP 1337
+#define IDC_DOWN 1338
+#define IDC_NEW_FS 1339
+#define IDC_NEW_HF 1340
+#define IDC_NEW_HD 1341
+#define IDC_PORT0 1342
+#define IDC_NEW_FSARCH 1342
+#define IDC_PORT1 1343
+#define IDC_PATH_NAME 1362
+#define IDC_SELECTOR 1363
+#define IDC_VOLUME_NAME 1364
+#define IDC_HARDFILE_DEVICE 1364
+#define IDC_SECTORS 1365
+#define IDC_VOLUME_DEVICE 1365
+#define IDC_HEADS 1366
+#define IDC_RESERVED 1367
+#define IDC_BLOCKSIZE 1368
+#define IDC_HARDFILE_BOOTPRI 1369
+#define IDC_SECTORS_TEXT 1370
+#define IDC_SURFACES_TEXT 1371
+#define IDC_RESERVED_TEXT 1372
+#define IDC_RESERVED_TEXT2 1373
+#define IDC_BLOCKSIZE_TEXT 1374
+#define ID_OK 1375
+#define IDC_HARDFILE_BOOTPRI_TEXT 1375
+#define IDC_PATH_FILESYS 1376
+#define IDC_HARDFILE_DIR_TEXT 1377
+#define IDC_HARDFILE_DEVICE_TEXT 1378
+#define IDC_HFRDB 1380
+#define IDC_RDB 1380
+#define IDC_HARDFILE_FILESYS_TEXT 1380
+#define IDC_FS_AUTOBOOT 1380
+#define IDC_FILESYS_SELECTOR 1381
+#define IDC_HDF_AUTOBOOT 1382
+#define IDC_HDF_DONOTMOUNT 1383
+#define IDC_ROMFILE 1390
+#define IDC_KEYFILE 1391
+#define IDC_KICKCHOOSER 1392
+#define IDC_KEYCHOOSER 1393
+#define IDC_ROMFILE2 1394
+#define IDC_ROMCHOOSER2 1395
+#define IDC_FLASHCHOOSER 1396
+#define IDC_FLASHFILE 1397
+#define IDC_CARTFILE 1398
+#define IDC_CARTCHOOSER 1399
+#define IDC_SAVE 1400
+#define IDC_LOAD 1401
+#define IDC_DELETE 1403
+#define IDC_CONFIGLIST 1404
+#define IDC_EDITNAME 1405
+#define IDC_EDITDESCRIPTION 1406
+#define IDC_QUICKSAVE 1408
+#define IDC_QUICKLOAD 1409
+#define IDC_EXIT 1410
+#define IDC_EDITPATH 1410
+#define IDC_HDF_RDB 1500
+#define IDC_HFSIZE 1501
+#define IDC_HF_SIZE 1501
+#define IDC_LINEMODE 1502
+#define IDC_CREATEHF 1502
+#define IDC_HF_CREATE 1502
+#define IDC_SOCKETS 1503
+#define IDC_HF_DOSTYPE 1503
+#define IDC_HDF_CONTROLLER 1504
+#define IDC_RESETAMIGA 1504
+#define IDC_QUITEMU 1505
+#define IDC_MAPDRIVES 1507
+#define IDC_CPUTEXT 1508
+#define IDC_MAPDRIVES_NET 1508
+#define IDC_RESTARTEMU 1508
+#define IDC_SWAP 1509
+#define IDC_CACHETEXT 1509
+#define IDC_MAPDRIVES_CD 1509
+#define IDC_SELECTRESTEXT 1510
+#define IDC_FLUSHPRINTER 1510
+#define IDC_SCREENRESTEXT 1511
+#define IDC_MAPDRIVES_AUTO 1511
+#define IDC_WIDTHTEXT 1512
+#define IDC_WINDOWEDTEXT 1512
+#define IDC_HEIGHTTEXT 1513
+#define IDC_SETTINGSTEXT 1514
+#define IDC_REFRESHTEXT 1515
+#define IDC_SETTINGSTEXT2 1515
+#define IDC_DISABLE1 1516
+#define IDC_DF1WP 1516
+#define IDC_QUICKSTART_COMPA 1516
+#define IDC_REFRESH2TEXT 1516
+#define IDC_DISABLE2 1517
+#define IDC_DF2WP 1517
+#define IDC_QUICKSTART_DF 1517
+#define IDC_DISABLE3 1518
+#define IDC_XCENTER 1518
+#define IDC_DF3WP 1518
+#define IDC_DF1WP2 1518
+#define IDC_QUICKSTART_HOST 1518
+#define IDC_YCENTER 1519
+#define IDC_DISABLE0 1519
+#define IDC_DF0WP 1519
+#define IDC_OCS 1520
+#define IDC_HDFLOPPY 1520
+#define IDC_ECS_AGNUS 1521
+#define IDC_ECS_DENISE 1522
+#define IDC_ECS 1523
+#define IDC_AGA 1524
+#define IDC_NTSC 1525
+#define IDC_NOSPEED 1527
+#define IDC_NOSOUND 1528
+#define IDC_INACTIVE_NOSOUND 1528
+#define IDC_MIDI 1529
+#define IDC_NOSPEEDPAUSE 1529
+#define IDC_INACTIVE_PAUSE 1529
+#define IDC_KICKSHIFTER 1530
+#define IDC_MIDI2 1530
+#define IDC_HIGHPRIORITY 1530
+#define IDC_MINIMIZED_NOSOUND 1530
+#define IDC_MINIMIZED_PAUSE 1531
+#define IDC_STATE_CAPTURE 1532
+#define IDC_KBLED_USB 1533
+#define IDC_SER_SHARED 1553
+#define IDC_SER_CTSRTS 1554
+#define IDC_SER_DIRECT 1555
+#define IDC_PSPRINTER 1556
+#define IDC_PSPRINTERDETECT 1557
+#define IDC_UAESERIAL 1558
+#define IDC_VIEWINFO 1568
+#define IDC_SETINFO 1569
+#define IDC_FLOPPYSLIDER 1570
+#define IDC_FLOPPYSLIDERTEXT 1571
+#define IDC_FLOPPYSPEED 1572
+#define IDC_FLOPPYSPD 1572
+#define IDC_GUILANGUAGE_LIST 1573
+#define IDC_SOUNDBUFFERRAM 1574
+#define IDC_SOUNDADJUST 1575
+#define IDC_SOUNDBUFFERTEXT 1576
+#define IDC_SOUNDVOLUME 1576
+#define IDC_SOUNDBUFFERMEM 1577
+#define IDC_HARDFLUSH 1578
+#define IDC_SOUNDADJUSTNUM 1578
+#define IDC_CONSTJUMP 1579
+#define IDC_SOUNDDRIVEVOLUME 1579
+#define IDC_JITFPU 1580
+#define IDC_SOUNDVOLUME2 1580
+#define IDC_NOFLAGS 1581
+#define IDC_SOUNDDRIVEVOLUME2 1581
+#define IDC_CS_CACHE_TEXT 1582
+#define IDC_COLLISIONS 1584
+#define IDC_JITENABLE 1584
+#define IDC_DISASSEMBLY 1585
+#define IDC_CTRLF11 1586
+#define IDC_FASTCOPPER 1588
+#define IDC_COLLISION0 1589
+#define IDC_COLLISION1 1590
+#define IDC_AUDIOSYNC 1590
+#define IDC_COLLISION2 1591
+#define IDC_COLLISION3 1592
+#define IDC_SOUNDLAGSLIDER 1592
+#define IDC_SOUNDLAGCAPTION 1594
+#define IDC_FLOPPYTYPE 1594
+#define IDC_SYNCPARAMS 1595
+#define IDC_DF0TYPE 1595
+#define IDC_SOUNDLAGTEXT 1596
+#define IDC_DF1TYPE 1596
+#define IDC_DF2TYPE 1597
+#define IDC_SOUNDSPEEDSLIDER 1598
+#define IDC_DF0TYPE4 1598
+#define IDC_DF3TYPE 1598
+#define IDC_SOUNDSPEEDTEXT 1599
+#define IDC_SOUNDSPEEDCAPTION 1600
+#define IDC_RTGMATCHDEPTH 1601
+#define IDC_ROMFILE2TEXT 1602
+#define IDC_ROMTEXT 1603
+#define IDC_KEYTEXT 1604
+#define IDC_CD32 1605
+#define IDC_AKIKOC2P 1605
+#define IDC_FLASHTEXT 1605
+#define IDC_SCSIDEVICE 1606
+#define IDC_FLASHTEXT2 1606
+#define IDC_AVIOUTPUT_PAL 1607
+#define IDC_INPUTTYPE 1607
+#define IDC_AVIOUTPUT_NTSC 1608
+#define IDC_INPUTSELECTTEXT 1608
+#define IDC_NOUAEFSDB 1608
+#define IDC_NOTASKBARBUTTON 1608
+#define IDC_CLOCKSYNC 1609
+#define IDC_AVIOUTPUT_FPS 1609
+#define IDC_INPUTDEVICE 1609
+#define IDC_MAPROM 1609
+#define IDC_NORECYCLEBIN 1609
+#define IDC_AVIOUTPUT_FILETEXT 1610
+#define IDC_INPUTDEVICETEXT 1610
+#define IDC_ALWAYSONTOP 1610
+#define IDC_AVIOUTPUT_FILE 1611
+#define IDC_INPUTLIST 1611
+#define IDC_CATWEASEL 1611
+#define IDC_AVIOUTPUT_FPS_STATIC 1612
+#define IDC_INPUTAMIGA 1612
+#define IDC_ALWAYSONTOP2 1612
+#define IDC_BORDERLESS 1612
+#define IDC_POWERSAVE 1612
+#define IDC_AVIOUTPUT_VIDEO 1613
+#define IDC_INPUTAUTOFIRE 1613
+#define IDC_MOUSETRICK 1613
+#define IDC_AVIOUTPUT_AUDIO 1614
+#define IDC_INPUTCOPYFROM 1614
+#define IDC_SANA2 1614
+#define IDC_AVIOUTPUT_VIDEO_CODEC 1615
+#define IDC_INPUTDEVICEDISABLE 1615
+#define IDC_AVIOUTPUT_ACTIVATED 1615
+#define IDC_FILTERENABLE 1615
+#define IDC_AVIOUTPUT_AUDIO_CODEC 1616
+#define IDC_INPUTAMIGACNT 1616
+#define IDC_FILTERHZ 1616
+#define IDC_SAMPLERIPPER_ACTIVATED 1616
+#define IDC_AVIOUTPUT_BORDER_TRIM 1617
+#define IDC_FILTERVZ 1617
+#define IDC_INPREC_RECORD 1617
+#define IDC_AVIOUTPUT_AUDIO_STATIC 1618
+#define IDC_FILTERHO 1618
+#define IDC_AVIOUTPUT_VIDEO_STATIC 1619
+#define IDC_FILTERVO 1619
+#define IDC_AVIOUTPUT_8BIT 1620
+#define IDC_INPREC_PLAY 1620
+#define IDC_FILTERASPECT 1620
+#define IDC_AVIOUTPUT_24BIT 1621
+#define IDC_AVIOUTPUT_WIDTH 1622
+#define IDC_AVIOUTPUT_HEIGHT 1623
+#define IDC_AVIOUTPUT_FRAME 1624
+#define IDC_FILTERXL 1624
+#define IDC_FILTERSLR 1625
+#define IDC_FILTERHZMULT 1626
+#define IDC_FILTERMODE 1627
+#define IDC_FILTERFILTER 1628
+#define IDC_FILTERDEFAULT 1629
+#define IDC_FILTERXTRA 1630
+#define IDC_INPUTDEADZONE 1630
+#define IDC_INPUTCOPY 1631
+#define IDC_FILTERPRESETS 1631
+#define IDC_SCREENSHOT 1632
+#define IDC_INPUTSWAP 1632
+#define IDC_FILTERPRESETLOAD 1632
+#define IDC_FLOPPYSPDTEXT 1633
+#define IDC_FILTERPRESETSAVE 1633
+#define IDC_FLOPPYSPD_TEXT 1634
+#define IDC_FILTERPRESETDELETE 1634
+#define IDC_HARDDRIVE 1635
+#define IDC_INACTIVE_PRI 1635
+#define IDC_FILTERVZMULT 1635
+#define IDC_SOUNDPRIMARY 1636
+#define IDC_MINIMIZED_PRI 1636
+#define IDC_VOLUME_BOOTPRI_TEXT 1637
+#define IDC_VOLUME_BOOTPRI 1638
+#define IDC_KBLED1 1639
+#define IDC_KBLED2 1640
+#define IDC_SOUNDFILTER 1640
+#define IDC_KBLED3 1641
+#define IDC_SOUNDCALIBRATE 1641
+#define IDC_ACTIVE_PRIORITY 1642
+#define IDC_SOUNDDRIVE 1642
+#define IDC_INACTIVE_PRIORITY 1643
+#define IDC_ACTIVE_PRI 1644
+#define IDC_MINIMIZED_PRIORITY 1645
+#define IDC_AVIOUTPUT_FRAMELIMITER 1645
+#define IDC_STATE_RATE 1646
+#define IDC_INPREC_PLAYMODE 1646
+#define IDC_STATE_BUFFERSIZE 1647
+#define IDC_SOUNDDRIVESELECT 1647
+#define IDC_PANELTREE 1647
+#define IDC_AVIOUTPUT_FRAMELIMITER2 1647
+#define IDC_AVIOUTPUT_NOSOUNDOUTPUT 1647
+#define IDC_AVIOUTPUT_DIMENSIONS_STATIC 1648
+#define IDC_STATE_BUFFERSIZE_TEXT 1648
+#define IDC_CONFIGTREE 1648
+#define IDC_AVIOUTPUT_OPTIONS 1649
+#define IDC_STATE_RATE_TEXT 1649
+#define IDC_DISKLISTREMOVE 1649
+#define IDC_DF0QENABLE 1649
+#define IDC_SOUNDCARD 1650
+#define IDC_CS_SOUND0 1650
+#define IDC_UPBM 1650
+#define IDC_DISKLISTREMOVE2 1650
+#define IDC_DISKLISTINSERT 1650
+#define IDC_DF1QENABLE 1650
+#define IDC_SOUNDCARDLIST 1651
+#define IDC_CS_SOUND1 1651
+#define IDC_SOUNDFREQ 1652
+#define IDC_CS_SOUND2 1652
+#define IDC_SOUNDCARD2 1653
+#define IDC_SOUNDFREQTXT 1653
+#define IDC_PANEL_FRAME 1653
+#define IDC_SOUNDFILTERTXT 1654
+#define IDC_PANEL_FRAME_OUTER 1654
+#define IDC_SOUNDSTEREO 1655
+#define IDC_CONFIGTYPE 1655
+#define IDC_SOUNDDRIVETXT 1656
+#define IDC_PATHS_ROM 1656
+#define IDC_SOUNDSTEREOSEP 1656
+#define IDC_SOUNDSTEREOTXT 1657
+#define IDC_PATHS_CONFIG 1657
+#define IDC_SOUNDINTERPOLATIONTXT 1658
+#define IDC_PATHS_SCREENSHOT 1658
+#define IDC_DISK 1659
+#define IDC_DISKLIST 1659
+#define IDC_PATHS_SAVEIMAGE 1659
+#define IDC_SOUNDSTEREOSEPTXT 1659
+#define IDC_PATHS_SAVESTATE 1660
+#define IDC_SOUNDSTEREOMIXTXT 1660
+#define IDC_PATHS_ROMS 1661
+#define IDC_SOUNDSTEREOMIX 1661
+#define IDC_PATHS_CONFIGS 1662
+#define IDC_SOUNDSWAP 1662
+#define IDC_PATHS_SCREENSHOTS 1663
+#define IDC_PATHS_SAVESTATES 1664
+#define IDC_SOUNDSTEREOSWAPTXT 1664
+#define IDC_SOUNDSWAPTXT 1664
+#define IDC_PATHS_SAVEIMAGES 1665
+#define IDC_PATHS_ROML 1666
+#define IDC_PATHS_CONFIGL 1667
+#define IDC_PATHS_SCREENSHOTL 1668
+#define IDC_PATHS_STATEFILEL 1669
+#define IDC_PATHS_SAVEIMAGEL 1670
+#define IDC_PATHS_DEFAULT 1671
+#define IDC_ROM_RESCAN 1672
+#define IDC_QUICKSTARTMODE 1673
+#define IDC_RESETREGISTRY 1673
+#define IDC_QUICKSTART_MODEL 1674
+#define IDC_PATHS_AVIOUTPUTL 1674
+#define IDC_QUICKSTART_CONFIGURATION 1675
+#define IDC_PATHS_AVIOUTPUT 1675
+#define IDC_QUICKSTART_COMPATIBILITY 1676
+#define IDC_PATHS_AVIOUTPUTS 1676
+#define IDC_QUICKSTART_CONFIG 1677
+#define IDC_RESETDISKHISTORY 1677
+#define IDC_DF0Q 1678
+#define IDC_DF0QQ 1678
+#define IDC_DF1Q 1679
+#define IDC_QUICKSTART_HOSTCONFIG 1679
+#define IDC_DF1QQ 1680
+#define IDC_QUICKSTART_SETCONFIG 1681
+#define IDC_CONFIGAUTO 1682
+#define IDC_DF0TEXTQ 1683
+#define IDC_CONFIGNOLINK 1683
+#define IDC_DF0WPQ 1684
+#define IDC_EJECT0Q 1685
+#define IDC_DF1WPQ 1686
+#define IDC_EJECT1Q 1687
+#define IDC_DF1TEXTQ 1688
+#define IDC_FILTERXLV 1692
+#define IDC_FILTERVOV 1693
+#define IDC_FILTERHOV 1694
+#define IDC_CONFIGLINK 1694
+#define IDC_FILTERVZV 1695
+#define IDC_PS_PARAMS 1695
+#define IDC_FILTERHZV 1696
+#define IDC_HF_TYPE 1696
+#define IDC_PRINTERAUTOFLUSH 1697
+#define IDC_PRINTERAUTOFLUSHTXT 1698
+#define IDC_DISKTEXT 1699
+#define IDC_FE_LIST 1700
+#define IDC_FE_INFO 1701
+#define IDC_FE_INFO2 1702
+#define IDC_FE_SCREENSHOT 1702
+#define IDC_PATHS_DEFAULTTYPE 1704
+#define IDC_SCSIMODE 1705
+#define IDC_PROGRESS1 1705
+#define IDC_PROGRESSBAR 1705
+#define IDC_PROGRESSBAR_TEXT 1706
+#define IDC_SCSIMODE2 1706
+#define IDC_LANGUAGE 1706
+#define IDC_CREATE_NAME 1707
+#define IDC_FILTERAUTORES 1708
+#define IDC_SOUND_AUTO 1709
+#define IDC_FILTERKEEPASPECT 1709
+#define IDC_CS_RTC 1710
+#define IDC_CS_CIAA_TOD1 1711
+#define IDC_CS_CIAA_TOD2 1712
+#define IDC_CS_EXT 1712
+#define IDC_CS_CIAA_TOD3 1713
+#define IDC_CS_COMPATIBLE 1714
+#define IDC_CS_RAMSEYREV 1715
+#define IDC_CS_KSMIRROR_E0 1716
+#define IDC_STRINGBOXEDIT 1716
+#define IDC_CS_CD32CD 1717
+#define IDC_CS_CD32C2P 1718
+#define IDC_CS_CD32NVRAM 1719
+#define IDC_CS_CDTVCD 1720
+#define IDC_CS_CDTVRAM 1721
+#define IDC_CS_IDE1 1722
+#define IDC_CS_IDE2 1723
+#define IDC_CS_IDE3 1724
+#define IDC_CS_A1000RAM 1724
+#define IDC_CS_RAMSEY 1725
+#define IDC_CS_GARY 1726
+#define IDC_CS_FATGARY 1726
+#define IDC_CS_DMAC 1727
+#define IDC_CS_RTCADJUST 1728
+#define IDC_CS_RAMSEYREV3 1729
+#define IDC_CS_FATGARYREV 1729
+#define IDC_CS_CDTVRAMEXP 1730
+#define IDC_CS_RTC1 1731
+#define IDC_CS_RTC2 1732
+#define IDC_CS_RTC3 1733
+#define IDC_CS_IDE4 1734
+#define IDC_CS_DF0IDHW 1734
+#define IDC_CS_AGNUS 1735
+#define IDC_CS_AGNUSREV 1736
+#define IDC_CS_DENISE 1737
+#define IDC_CS_AGNUSREV2 1738
+#define IDC_CS_DENISEREV 1738
+#define IDC_DBG_OUTPUT1 1739
+#define IDC_CS_PCMCIA 1739
+#define IDC_CS_SLOWISFAST 1740
+#define IDC_DBG_HELP 1740
+#define IDC_DBG_INPUT 1741
+#define IDC_CS_KSMIRROR_A8 1741
+#define IDC_DBG_DREG 1742
+#define IDC_CS_CIAOVERLAY 1742
+#define IDC_DBG_AREG 1743
+#define IDC_CS_RESETWARNING 1743
+#define IDC_DBG_CCR 1744
+#define IDC_CS_NOEHB 1744
+#define IDC_DBG_AMEM 1745
+#define IDC_CS_BLITTERBUG 1745
+#define IDC_DBG_SP_VBR 1746
+#define IDC_DBG_MMISC 1747
+#define IDC_DBG_PC 1748
+#define IDC_DBG_PREFETCH 1749
+#define IDC_DBG_FPREG 1750
+#define IDC_DBG_FPSR 1751
+#define IDC_DBG_OUTPUT2 1752
+#define IDC_DBG_MEMINPUT 1753
+#define IDC_DBG_MEMDOWN 1754
+#define IDC_DBG_MEMUP 1755
+#define IDC_DBG_MEM 1756
+#define IDC_DBG_DASM 1757
+#define IDC_DBG_MEMDOWNFAST 1758
+#define IDC_DBG_MEMTOPC 1759
+#define IDC_DBG_MEMUPFAST 1760
+#define IDC_DA_RESET 1761
+#define IDC_DBG_STATUS 1762
+#define IDC_DBG_BRKPTS 1763
+#define IDC_DBG_MCUSTOM 1764
+#define IDC_DBG_MISC 1765
+#define IDC_DBG_CUSTOM 1766
+#define IDC_DBG_MISCCPU 1767
+#define IDC_CS_A2091 1768
+#define IDC_CS_DMAC2 1769
+#define IDC_CS_A4091 1770
+#define IDC_CS_CDTVSCSI 1771
+#define IDC_CS_SCSIMODE 1772
+#define IDC_DF0ENABLE 1773
+#define IDC_DF1ENABLE 1774
+#define IDC_FS_SELECT_DIR 1774
+#define IDC_FS_SELECT_FILE 1775
+#define IDC_DF2ENABLE 1776
+#define IDC_FS_SELECT_EJECT 1776
+#define IDC_FS_RW 1777
+#define IDC_DF3ENABLE 1778
+#define IDC_HDF_RW 1778
+#define IDC_HDFINFO 1779
+#define IDC_DBG_AUTOSET 1780
+#define IDC_HF_SPARSE 1780
+#define IDC_DBG_DASM2 1781
+#define IDC_HF_DYNAMIC 1781
+#define IDC_DBG_MEM2 1782
+#define IDC_DBG_MEMINPUT2 1783
+#define IDC_DBG_ADDRINPUTTXT 1784
+#define IDC_RTG_SCALE 1785
+#define IDC_RTG_MATCH_DEPTH 1786
+#define IDC_RTG_8BIT 1787
+#define IDC_RTG_16BIT 1788
+#define IDC_PATHS_CONFIGCACHE 1788
+#define IDC_RTG_24BIT 1789
+#define IDC_ASSOCIATELIST 1789
+#define IDC_RTG_32BIT 1790
+#define IDC_ASSOCIATE_OFF 1790
+#define IDC_DD_SURFACETYPE 1791
+#define IDC_RTG_SCALE_ALLOW 1791
+#define IDC_RTG_SCALE_ASPECTRATIO 1792
+#define IDC_ASSOCIATE_ON 1792
+#define IDC_RTG_VBLANKRATE 1793
+#define ID__FLOPPYDRIVES 40004
+#define ID_FLOPPYDRIVES_DF0 40005
+#define ID_ST_CONFIGURATION 40010
+#define ID_ST_HELP 40011
+#define ID_ST_QUIT 40012
+#define ID_ST_EJECTALL 40013
+#define ID_ST_DF0 40014
+#define ID_ST_DF1 40015
+#define ID_ST_DF2 40016
+#define ID_ST_DF3 40017
+#define ID_ST_RESET 40019
+#define ID_DBG_PAGE1 40020
+#define ID_DBG_PAGE2 40021
+#define ID_DBG_PAGE3 40022
+#define ID_DBG_PAGE4 40023
+#define ID_DBG_PAGE5 40024
+#define ID_DBG_PAGE6 40025
+#define ID_DBG_PAGE7 40026
+#define ID_DBG_PAGE8 40027
+#define ID_DBG_PAGE9 40028
+#define ID_DBG_STEP_OVER 40029
+#define ID_DBG_STEP_INTO 40030
+#define ID_DBG_SETTOA0 40031
+#define ID_DBG_SETTOA1 40032
+#define ID_DBG_SETTOA2 40033
+#define ID_DBG_SETTOA3 40034
+#define ID_DBG_SETTOA4 40035
+#define ID_DBG_SETTOA5 40036
+#define ID_DBG_SETTOA6 40037
+#define ID_DBG_SETTOA7 40038
+#define ID_DBG_ENTERADDR 40039
+#define ID_DBG_COPYLBLINE 40040
+#define ID_DBG_COPYLB 40041
+#define ID_DBG_TOGGLEBP 40042
+#define ID_DBG_DELETEBPS 40043
+#define ID_DBG_SETTOPC 40044
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NO_MFC 1
+#define _APS_3D_CONTROLS 1
+#define _APS_NEXT_RESOURCE_VALUE 335
+#define _APS_NEXT_COMMAND_VALUE 40045
+#define _APS_NEXT_CONTROL_VALUE 1789
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
#define IDS_ABOUT 6
#define IDS_LOADSAVE 7
#define IDS_AVIOUTPUT 8
-#define IDS_PORTS 9
+#define IDS_IOPORTS 9
#define IDS_MISC1 10
#define IDS_MEMORY 11
#define IDS_CPU 12
#define IDS_QUICKSTART 18
#define IDS_FRONTEND 19
#define IDS_CHIPSET2 20
+#define IDS_GAMEPORTS 21
#define IDS_EXTTEXT 100
#define IDS_EXTACTUAL 101
#define IDS_SOUND 102
#define IDD_LOADSAVE 135
#define IDS_DESCRIPTION 135
#define IDS_ONEINSTANCE 136
-#define IDI_PORTS 137
+#define IDI_IOPORTS 137
#define IDS_INSTALLDIRECTX 137
-#define IDD_PORTS 138
+#define IDD_IOPORTS 138
#define IDS_REGKEYCREATEFAILED 138
#define IDS_COULDNOTLOADCONFIG 139
#define IDD_CONTRIBUTORS 140
#define IDS_SOUND_CLONED51 259
#define IDS_SOUND_51 260
#define IDS_AUTOMATIC 261
+#define IDI_GAMEPORTS 262
+#define IDD_GAMEPORTS 263
#define IDS_NUMSG_NEEDEXT2 300
#define IDS_NUMSG_NOROMKEY 301
#define IDS_NUMSG_KSROMCRCERROR 302
#define IDC_RICHEDIT1 1091
#define IDC_RICHEDIT2 1092
#define IDC_CONTRIBUTORS 1124
-#define IDC_ASPECT 1170
+#define IDC_BLACKER_THAN_BLACK 1170
#define IDC_BLIT32 1173
#define IDC_BLITIMM 1174
#define IDC_LORES 1176
#define IDC_POWERSAVE 1612
#define IDC_AVIOUTPUT_VIDEO 1613
#define IDC_INPUTAUTOFIRE 1613
-#define IDC_MOUSETRICK 1613
+#define IDC_PORT_MOUSETRICK 1613
#define IDC_AVIOUTPUT_AUDIO 1614
#define IDC_INPUTCOPYFROM 1614
#define IDC_SANA2 1614
#define IDC_AVIOUTPUT_VIDEO_CODEC 1615
#define IDC_INPUTDEVICEDISABLE 1615
#define IDC_AVIOUTPUT_ACTIVATED 1615
-#define IDC_FILTERENABLE 1615
#define IDC_AVIOUTPUT_AUDIO_CODEC 1616
#define IDC_INPUTAMIGACNT 1616
#define IDC_FILTERHZ 1616
#define IDC_PATHS_CONFIGCACHE 1788
#define IDC_RTG_24BIT 1789
#define IDC_ASSOCIATELIST 1789
+#define IDC_PORT_TABLET 1789
#define IDC_RTG_32BIT 1790
#define IDC_ASSOCIATE_OFF 1790
+#define IDC_PORT_TABLET_FULL 1790
#define IDC_DD_SURFACETYPE 1791
#define IDC_RTG_SCALE_ALLOW 1791
#define IDC_RTG_SCALE_ASPECTRATIO 1792
#define _APS_3D_CONTROLS 1
#define _APS_NEXT_RESOURCE_VALUE 335
#define _APS_NEXT_COMMAND_VALUE 40045
-#define _APS_NEXT_CONTROL_VALUE 1789
+#define _APS_NEXT_CONTROL_VALUE 1790
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
EDITTEXT IDC_XSIZE,59,48,48,12,ES_NUMBER\r
EDITTEXT IDC_YSIZE,114,48,47,12,ES_NUMBER\r
GROUPBOX "Settings",IDC_SETTINGSTEXT,12,73,199,125\r
- CONTROL "Correct aspect ratio",IDC_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,126,92,10\r
+ CONTROL "Blacker than black",IDC_BLACKER_THAN_BLACK,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,19,126,92,10\r
LTEXT "Refresh:",IDC_REFRESHTEXT,18,162,28,8\r
CONTROL "Slider1",IDC_FRAMERATE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,47,157,75,20\r
EDITTEXT IDC_RATETEXT,124,161,77,12,ES_CENTER | ES_READONLY\r
RTEXT "Memory: [] Graphics card memory. Required for RTG (Picasso96) emulation.",IDC_GFXCARDTEXT,25,98,53,10,SS_NOTIFY | SS_CENTERIMAGE\r
CONTROL "Slider1",IDC_P96MEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,88,94,60,20\r
EDITTEXT IDC_P96RAM,152,97,34,12,ES_CENTER | ES_READONLY\r
- GROUPBOX "Advanced Memory Settings",-1,13,179,275,57\r
- RTEXT "Motherboard RAM (Low area):",-1,39,194,129,10,SS_CENTERIMAGE\r
+ GROUPBOX "A3000/A4000 Advanced Memory Settings",-1,13,179,275,57\r
+ RTEXT "Motherboard Fast RAM:",-1,39,194,129,10,SS_CENTERIMAGE\r
CONTROL "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,190,59,20\r
EDITTEXT IDC_MBRAM1,243,193,34,12,ES_CENTER | ES_READONLY\r
- RTEXT "Motherboard RAM (High area):",-1,39,217,129,10,SS_CENTERIMAGE\r
+ RTEXT "Prosessor Slot Fast RAM:",-1,39,217,129,10,SS_CENTERIMAGE\r
CONTROL "",IDC_MBMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,180,213,59,20\r
EDITTEXT IDC_MBRAM2,243,216,34,12,ES_CENTER | ES_READONLY\r
GROUPBOX "RTG Graphics Card Settings",-1,14,81,275,95\r
PUSHBUTTON "Save As...",IDC_SAVE,175,225,44,15\r
END\r
\r
-IDD_PORTS DIALOGEX 0, 0, 300, 238\r
+IDD_IOPORTS DIALOGEX 0, 0, 300, 208\r
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
FONT 8, "MS Sans Serif", 0, 0, 0x1\r
BEGIN\r
- GROUPBOX "Parallel Port",IDC_SERPARFRAME,5,2,291,68\r
+ GROUPBOX "Parallel Port",IDC_SERPARFRAME,5,2,291,86\r
RTEXT "Printer:",IDC_STATIC,12,15,25,15,SS_CENTERIMAGE\r
- COMBOBOX IDC_PRINTERLIST,49,15,153,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- PUSHBUTTON "Flush print job",IDC_FLUSHPRINTER,220,15,58,12\r
- CONTROL "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,11,33,79,12\r
- CONTROL "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,95,33,110,12\r
- RTEXT "Autoflush [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,202,32,57,15,SS_NOTIFY | SS_CENTERIMAGE\r
- EDITTEXT IDC_PRINTERAUTOFLUSH,263,33,25,12,ES_NUMBER\r
- RTEXT "Ghostscript extra parameters:",IDC_STATIC,12,49,102,15,SS_CENTERIMAGE\r
- EDITTEXT IDC_PS_PARAMS,124,50,165,12,ES_AUTOHSCROLL\r
- GROUPBOX "Serial Port",IDC_SERIALFRAME,4,72,292,48\r
- COMBOBOX IDC_SERIAL,49,84,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- CONTROL "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,15,103,48,12\r
- CONTROL "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,103,55,12\r
- GROUPBOX "MIDI",IDC_MIDIFRAME,4,123,292,33\r
- RTEXT "Out:",IDC_MIDI,10,134,34,15,SS_CENTERIMAGE\r
- COMBOBOX IDC_MIDIOUTLIST,50,134,95,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- RTEXT "In:",IDC_MIDI2,150,134,29,15,SS_CENTERIMAGE\r
- COMBOBOX IDC_MIDIINLIST,185,134,95,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- GROUPBOX "Mouse/Joystick Ports",IDC_PORT0,4,158,292,75\r
- COMBOBOX IDC_PORT0_JOYS,45,174,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- COMBOBOX IDC_PORT1_JOYS,45,195,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
- PUSHBUTTON "Swap ports",IDC_SWAP,211,214,75,14\r
- RTEXT "Port 0:",IDC_STATIC,11,173,25,15,SS_CENTERIMAGE\r
- RTEXT "Port 1:",IDC_STATIC,11,194,25,15,SS_CENTERIMAGE\r
- LTEXT "X-Arcade layout information []#1",IDC_STATIC,16,213,106,15,SS_NOTIFY | SS_CENTERIMAGE\r
+ COMBOBOX IDC_PRINTERLIST,49,15,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Flush print job",IDC_FLUSHPRINTER,114,51,58,12\r
+ CONTROL "PostScript detection",IDC_PSPRINTERDETECT,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,65,35,79,12\r
+ CONTROL "PostScript printer emulation",IDC_PSPRINTER,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,175,35,110,12\r
+ RTEXT "Autoflush [] Time in seconds after a pending print job is automatically flushed.",IDC_PRINTERAUTOFLUSHTXT,173,49,86,15,SS_NOTIFY | SS_CENTERIMAGE\r
+ EDITTEXT IDC_PRINTERAUTOFLUSH,263,50,25,12,ES_NUMBER\r
+ RTEXT "Ghostscript extra parameters:",IDC_STATIC,12,66,102,15,SS_CENTERIMAGE\r
+ EDITTEXT IDC_PS_PARAMS,124,67,165,12,ES_AUTOHSCROLL\r
+ GROUPBOX "Serial Port",IDC_SERIALFRAME,4,92,292,48\r
+ COMBOBOX IDC_SERIAL,49,104,232,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ CONTROL "Shared",IDC_SER_SHARED,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,15,123,48,12\r
+ CONTROL "RTS/CTS",IDC_SER_CTSRTS,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,75,123,55,12\r
+ GROUPBOX "MIDI",IDC_MIDIFRAME,4,143,292,50\r
+ RTEXT "Out:",IDC_MIDI,10,154,34,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_MIDIOUTLIST,49,154,232,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ RTEXT "In:",IDC_MIDI2,10,174,29,15,SS_CENTERIMAGE\r
+ COMBOBOX IDC_MIDIINLIST,49,174,232,134,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
CONTROL "Direct []Use when emulating serial-link games on two PCs running WinUAE",IDC_SER_DIRECT,\r
- "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,135,103,65,12\r
- CONTROL "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,103,78,12\r
+ "Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,135,123,65,12\r
+ CONTROL "uaeserial.device",IDC_UAESERIAL,"Button",BS_AUTOCHECKBOX | BS_VCENTER | WS_TABSTOP,200,123,78,12\r
+END\r
+\r
+IDD_GAMEPORTS DIALOGEX 0, 0, 300, 178\r
+STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
+BEGIN\r
+ COMBOBOX IDC_PORT0_JOYS,45,29,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_PORT1_JOYS,45,50,241,130,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
+ PUSHBUTTON "Swap ports",IDC_SWAP,211,69,75,14\r
+ RTEXT "Port 0:",IDC_STATIC,11,28,25,15,SS_CENTERIMAGE\r
+ RTEXT "Port 1:",IDC_STATIC,11,49,25,15,SS_CENTERIMAGE\r
+ LTEXT "X-Arcade layout information []#1",IDC_STATIC,16,68,106,15,SS_NOTIFY | SS_CENTERIMAGE\r
+ GROUPBOX "Mouse and Joystick settings",IDC_STATIC,4,15,292,76\r
+ GROUPBOX "Mouse extra settings",IDC_STATIC,4,92,292,79\r
+ RTEXT "Mouse speed:",IDC_STATIC,17,106,56,10,SS_CENTERIMAGE\r
+ EDITTEXT IDC_INPUTSPEEDM,87,106,25,12,ES_NUMBER\r
+ CONTROL "Drawing tablet support",IDC_PORT_TABLET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,113,110,10\r
+ CONTROL "Full tablet input emulation",IDC_PORT_TABLET_FULL,\r
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,167,127,110,10\r
+ CONTROL "Magic Mouse",IDC_PORT_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,122,119,10\r
END\r
\r
IDD_CONTRIBUTORS DIALOGEX 0, 0, 411, 242\r
COMBOBOX IDC_LANGUAGE,103,121,179,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP\r
GROUPBOX "Language",IDC_STATIC,7,113,285,25\r
CONTROL "Disable powersaving features",IDC_POWERSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,92,120,10\r
- CONTROL "Magic Mouse",IDC_MOUSETRICK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,66,119,10\r
- CONTROL "uaenet.device",IDC_SANA2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,79,94,10\r
+ CONTROL "uaenet.device",IDC_SANA2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,161,66,94,10\r
COMBOBOX IDC_DD_SURFACETYPE,217,93,68,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
RTEXT "Display buffer:",IDC_STATIC,159,94,52,10,SS_CENTERIMAGE\r
END\r
EDITTEXT IDC_INPUTSPEEDD,215,195,25,12,ES_NUMBER\r
RTEXT "Analog joy-mouse speed:",-1,120,212,88,10,SS_CENTERIMAGE\r
EDITTEXT IDC_INPUTSPEEDA,215,211,25,12,ES_NUMBER\r
- RTEXT "Mouse speed:",-1,132,228,76,10,SS_CENTERIMAGE\r
- EDITTEXT IDC_INPUTSPEEDM,215,227,25,12,ES_NUMBER\r
PUSHBUTTON "Copy from:",IDC_INPUTCOPY,249,195,45,14\r
COMBOBOX IDC_INPUTCOPYFROM,249,211,45,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
PUSHBUTTON "Swap 1<>2",IDC_INPUTSWAP,249,226,45,14\r
FONT 8, "MS Sans Serif", 0, 0, 0x1\r
BEGIN\r
GROUPBOX "Filter Settings",-1,0,0,294,186\r
- CONTROL "Enable",IDC_FILTERENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,16,40,11\r
- COMBOBOX IDC_FILTERMODE,53,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
- COMBOBOX IDC_FILTERFILTER,142,15,74,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERMODE,20,15,103,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERFILTER,132,15,83,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
PUSHBUTTON "Reset to defaults",IDC_FILTERDEFAULT,221,15,67,14\r
RTEXT "Horiz. size:",-1,7,44,54,10,SS_CENTERIMAGE\r
CONTROL "Slider1",IDC_FILTERHZ,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,99,37,152,19\r
COMBOBOX IDC_FILTERVZMULT,67,63,27,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
CONTROL "Autoscale",IDC_FILTERAUTORES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,168,83,10\r
COMBOBOX IDC_FILTERXTRA,105,134,138,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
- COMBOBOX IDC_FILTERASPECT,21,118,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
+ COMBOBOX IDC_FILTERASPECT,20,118,73,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
CONTROL "Keep aspect ratio",IDC_FILTERKEEPASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,9,153,85,10\r
END\r
\r
IDI_ABOUT ICON "amigainfo.ico"\r
IDI_HARDDISK ICON "Drive.ico"\r
IDI_CPU ICON "cpu.ico"\r
-IDI_PORTS ICON "joystick.ico"\r
+IDI_GAMEPORTS ICON "joystick.ico"\r
+IDI_IOPORTS ICON "joystick.ico"\r
IDI_INPUT ICON "joystick.ico"\r
IDI_MISC1 ICON "misc.ico"\r
IDI_MISC2 ICON "misc.ico"\r
IDB_XARCADE BITMAP "xarcade-winuae.bmp"\r
IDB_LCD160X43 BITMAP "lcd.bmp"\r
\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// DESIGNINFO\r
+//\r
+\r
+#ifdef APSTUDIO_INVOKED\r
+GUIDELINES DESIGNINFO \r
+BEGIN\r
+ IDD_IOPORTS, DIALOG\r
+ BEGIN\r
+ BOTTOMMARGIN, 180\r
+ END\r
+END\r
+#endif // APSTUDIO_INVOKED\r
+\r
+\r
/////////////////////////////////////////////////////////////////////////////\r
//\r
// String Table\r
IDS_ABOUT "About"\r
IDS_LOADSAVE "Configurations"\r
IDS_AVIOUTPUT "Output"\r
- IDS_PORTS "Game & IO ports"\r
+ IDS_IOPORTS "IO ports"\r
IDS_MISC1 "Miscellaneous"\r
IDS_MEMORY "RAM"\r
IDS_CPU "CPU and FPU"\r
IDS_QUICKSTART "Quickstart"\r
IDS_FRONTEND "Frontend"\r
IDS_CHIPSET2 "Adv. Chipset"\r
+ IDS_GAMEPORTS "Game ports"\r
END\r
\r
STRINGTABLE \r
checksend (0);
}
-/* Not (fully) implemented yet: (on windows this work)
- *
- * - Something's wrong with the Interrupts.
- * (NComm works, TERM does not. TERM switches to a
- * blind mode after a connect and wait's for the end
- * of an asynchronous read before switching blind
- * mode off again. It never gets there on UAE :-< )
- *
- */
-
void SERDAT (uae_u16 w)
{
serdat = w;
INTREQ_0 (0x8000 | 0x0800);
}
-void serial_dtr_on(void)
+void serial_dtr_on (void)
{
#if SERIALHSDEBUG > 0
write_log ( "SERIAL: DTR on\n" );
#endif
}
-void serial_dtr_off(void)
+void serial_dtr_off (void)
{
#if SERIALHSDEBUG > 0
write_log ( "SERIAL: DTR off\n" );
#endif
}
-void serial_flush_buffer(void)
+void serial_flush_buffer (void)
{
}
static uae_u8 oldserbits;
-static void serial_status_debug(char *s)
+static void serial_status_debug (char *s)
{
#if SERIALHSDEBUG > 1
write_log ("%s: DTR=%d RTS=%d CD=%d CTS=%d DSR=%d\n", s,
#endif
}
-uae_u8 serial_readstatus(uae_u8 dir)
+uae_u8 serial_readstatus (uae_u8 dir)
{
int status = 0;
uae_u8 serbits = oldserbits;
return oldserbits;
}
-void serial_open(void)
+void serial_open (void)
{
#ifdef SERIAL_PORT
if (serdev)
void serial_close (void)
{
#ifdef SERIAL_PORT
- closeser();
+ closeser ();
serdev = 0;
#endif
}
#define UAESERIAL /* uaeserial.device emulation */
#define FPUEMU /* FPU emulation */
#define FPU_UAE
-#define MMUEMU
+#define MMUEMU /* Aranym 68040 MMU */
+#define FULLMMU /* Aranym 68040 MMU */
#define CPUEMU_0 /* generic 680x0 emulation */
#define CPUEMU_11 /* 68000+prefetch emulation */
#define CPUEMU_12 /* cycle-exact cpu&blitter */
#include <shlwapi.h>
#include <dbghelp.h>
+#include "resource"
+
+#include <wintab.h>
+#include "wintablet.h"
+#include <pktdef.h>
+
#include "sysdeps.h"
#include "options.h"
#include "audio.h"
#include "win32gfx.h"
#include "registry.h"
#include "win32gui.h"
-#include "resource.h"
#include "autoconf.h"
#include "gui.h"
#include "sys/mman.h"
static HWND TaskbarRestartHWND;
static int forceroms;
static int start_data = 0;
+static void *tablet;
char VersionStr[256];
char BetaStr[64];
int y = (amigawin_rect.bottom - amigawin_rect.top) / 2;
mouseposx = oldx - x;
mouseposy = oldy - y;
-// write_log ("%d %d %d %d %d - %d %d %d %d %d\n",
+
+ if (currprefs.input_magic_mouse && currprefs.input_tablet > 0) {
+ mouseposx = mouseposy = 0;
+ return;
+ }
+// write_log ("%d %d %d %d %d - %d %d %d %d %d\n",
// x, amigawin_rect.left, amigawin_rect.right, mouseposx, oldx,
// y, amigawin_rect.top, amigawin_rect.bottom, mouseposy, oldy);
if (oldx >= 30000 || oldy >= 30000 || oldx <= -30000 || oldy <= -30000) {
//write_log ("setmouseactive(%d)\n", active);
releasecapture ();
recapture = 0;
-#if 0
- if (active > 0 && mousehack_allowed () && mousehack_alive ()) {
- if (isfullscreen () <= 0)
- return;
- }
-#endif
+
+ if (currprefs.input_magic_mouse && currprefs.input_tablet > 0)
+ return;
+
if (mouseactive > 0)
focus = 1;
if (focus) {
setmouseactive (0);
}
-extern void setamigamouse (int,int);
void setmouseactivexy (int x, int y, int dir)
{
int diff = 8;
+
if (isfullscreen () > 0)
return;
x += amigawin_rect.left;
{
HDC hDC;
int mx, my;
+ int istablet = (GetMessageExtraInfo () & 0xFFFFFF00) == 0xFF515700;
static int mm, minimized, recursive, ignoremousemove;
#if MSGDEBUG > 1
minimizewindow ();
#endif
if (mouseactive)
- setmouseactive(0);
+ setmouseactive (0);
} else {
if (dinput_winmouse () >= 0)
setmousebuttonstate (dinput_winmouse (), 2, 1);
rp_set_hwnd (hWnd);
#endif
DragAcceptFiles (hWnd, TRUE);
+ tablet = open_tablet (hWnd);
return 0;
case WM_DESTROY:
+ close_tablet (tablet);
inputdevice_unacquire ();
dinput_window ();
return 0;
}
break;
+ case WM_SETCURSOR:
+ {
+ static HCURSOR oldcursor;
+ if ((HWND)wParam == hAmigaWnd && currprefs.input_tablet > 0 && currprefs.input_magic_mouse) {
+ if (oldcursor == NULL)
+ oldcursor = LoadCursor (NULL, IDC_ARROW);
+ if (picasso_on) {
+ picasso_setwincursor ();
+ return 1;
+ } else {
+ SetCursor (oldcursor);
+ return 1;
+ }
+ }
+ break;
+ }
+
+
case WM_MOUSEMOVE:
{
+ int wm = dinput_winmouse ();
mx = (signed short) LOWORD (lParam);
my = (signed short) HIWORD (lParam);
mx -= mouseposx;
my -= mouseposy;
if (recapture && isfullscreen () <= 0) {
setmouseactive (1);
- setamigamouse (mx, my);
return 0;
}
- if (dinput_winmouse () >= 0) {
- if (dinput_winmousemode ()) {
- /* absolute + mousehack */
+ if (wm < 0 && (istablet || currprefs.input_tablet >= TABLET_MOUSEHACK)) {
+ /* absolute */
+ setmousestate (0, 0, mx, 1);
+ setmousestate (0, 1, my, 1);
+ return 0;
+ }
+ if (wm >= 0) {
+ if (istablet || currprefs.input_tablet >= TABLET_MOUSEHACK) {
+ /* absolute */
setmousestate (dinput_winmouse (), 0, mx, 1);
setmousestate (dinput_winmouse (), 1, my, 1);
return 0;
}
if (!focus)
return DefWindowProc (hWnd, message, wParam, lParam);
- }
- if (dinput_winmouse () >= 0) {
if (dinput_winmousemode () == 0) {
/* relative */
int mxx = (amigawin_rect.right - amigawin_rect.left) / 2;
}
break;
+ case WT_PROXIMITY:
+ {
+ send_tablet_proximity (LOWORD (lParam) ? 1 : 0);
+ return 0;
+ }
+ case WT_PACKET:
+ {
+ PACKET pkt;
+ if (inputdevice_is_tablet () <= 0) {
+ close_tablet (tablet);
+ tablet = NULL;
+ return 0;
+ }
+ if (WTPacket ((HCTX)lParam, wParam, &pkt)) {
+ int x, y, z, pres, proxi;
+ DWORD buttons;
+ ORIENTATION ori;
+ ROTATION rot;
+
+ x = pkt.pkX;
+ y = pkt.pkY;
+ z = pkt.pkZ;
+ pres = pkt.pkNormalPressure;
+ ori = pkt.pkOrientation;
+ rot = pkt.pkRotation;
+ buttons = pkt.pkButtons;
+ proxi = pkt.pkStatus;
+ send_tablet (x, y, z, pres, buttons, proxi, ori.orAzimuth, ori.orAltitude, ori.orTwist, rot.roPitch, rot.roRoll, rot.roYaw, &amigawin_rect);
+
+ }
+ return 0;
+ }
default:
break;
case WM_COMMAND:
case WM_NOTIFY:
case WM_ENABLE:
+ case WT_PACKET:
return AmigaWindowProc (hWnd, message, wParam, lParam);
case WM_DISPLAYCHANGE:
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = 0;
wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON));
- wc.hCursor = LoadCursor (NULL, IDC_ARROW);
+ wc.hCursor = NULL; //LoadCursor (NULL, IDC_ARROW);
wc.lpszMenuName = 0;
wc.lpszClassName = "AmigaPowah";
wc.hbrBackground = CreateSolidBrush (g_dwBackgroundColor);
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = 0;
wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON));
- wc.hCursor = LoadCursor (NULL, IDC_ARROW);
+ wc.hCursor = NULL; //LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = CreateSolidBrush (black);
wc.lpszMenuName = 0;
wc.lpszClassName = "PCsuxRox";
wc.cbWndExtra = DLGWINDOWEXTRA;
wc.hInstance = 0;
wc.hIcon = LoadIcon (GetModuleHandle (NULL), MAKEINTRESOURCE (IDI_APPICON));
- wc.hCursor = LoadCursor (NULL, IDC_ARROW);
+ wc.hCursor = NULL; //LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = CreateSolidBrush (g_dwBackgroundColor);
wc.lpszMenuName = 0;
wc.lpszClassName = "Useless";
return 0;
}
-int mousehack_allowed (void)
-{
- return dinput_winmouse () > 0 && dinput_winmousemode ();
-}
-
void toggle_mousegrab (void)
{
}
p->win32_uaescsimode = get_aspi (p->win32_uaescsimode);
p->win32_borderless = 0;
p->win32_powersavedisabled = 1;
- p->win32_outsidemouse = 0;
p->sana2 = 0;
p->win32_rtgmatchdepth = 1;
p->win32_rtgscaleifsmall = 1;
void target_save_options (struct zfile *f, struct uae_prefs *p)
{
cfgfile_target_dwrite (f, "middle_mouse=%s\n", p->win32_middle_mouse ? "true" : "false");
- cfgfile_target_dwrite (f, "magic_mouse=%s\n", p->win32_outsidemouse ? "true" : "false");
cfgfile_target_dwrite (f, "logfile=%s\n", p->win32_logfile ? "true" : "false");
cfgfile_target_dwrite (f, "map_drives=%s\n", p->win32_automount_drives ? "true" : "false");
cfgfile_target_dwrite (f, "map_drives_auto=%s\n", p->win32_automount_removable ? "true" : "false");
static const char *obsolete[] = {
"killwinkeys", "sound_force_primary", "iconified_highpriority",
"sound_sync", "sound_tweak", "directx6", "sound_style",
- "file_path", "iconified_nospeed", "activepriority",
+ "file_path", "iconified_nospeed", "activepriority", "magic_mouse",
0
};
|| cfgfile_yesno (option, value, "notaskbarbutton", &p->win32_notaskbarbutton)
|| cfgfile_yesno (option, value, "always_on_top", &p->win32_alwaysontop)
|| cfgfile_yesno (option, value, "powersavedisabled", &p->win32_powersavedisabled)
- || cfgfile_yesno (option, value, "magic_mouse", &p->win32_outsidemouse)
|| cfgfile_intval (option, value, "specialkey", &p->win32_specialkey, 1)
|| cfgfile_intval (option, value, "guikey", &p->win32_guikey, 1)
|| cfgfile_intval (option, value, "kbledmode", &p->win32_kbledmode, 1)
#endif
}
-int os_winnt, os_winnt_admin, os_64bit, os_vista, os_winxp;
+int os_winnt, os_winnt_admin, os_64bit, os_win7, os_vista, os_winxp;
static int isadminpriv (void)
{
{
PGETNATIVESYSTEMINFO pGetNativeSystemInfo;
PISUSERANADMIN pIsUserAnAdmin;
- os_winnt = 0;
- os_winnt_admin = 0;
- os_vista = 0;
- os_64bit = 0;
pGetNativeSystemInfo = (PGETNATIVESYSTEMINFO)GetProcAddress (
GetModuleHandle ("kernel32.dll"), "GetNativeSystemInfo");
os_winxp = 1;
if (osVersion.dwMajorVersion >= 6)
os_vista = 1;
+ if (osVersion.dwMajorVersion >= 7 || (osVersion.dwMajorVersion == 6 && osVersion.dwMinorVersion >= 1))
+ os_win7 = 1;
if (SystemInfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
os_64bit = 1;
}
#define WINUAEPUBLICBETA 1
-#define WINUAEBETA "4"
-#define WINUAEDATE MAKEBD(2008, 12, 6)
+#define WINUAEBETA "5"
+#define WINUAEDATE MAKEBD(2008, 12, 26)
#define WINUAEEXTRA ""
#define WINUAEREV ""
extern int dinput_wheelbuttonstart (void);
extern int dinput_winmousemode (void);
extern void dinput_window (void);
+extern void *open_tablet (HWND hwnd);
+extern int close_tablet (void*);
+extern void send_tablet (int x, int y, int z, int pres, uae_u32 buttons, int flags, int ax, int ay, int az, int rx, int ry, int rz, RECT *r);
+extern void send_tablet_proximity (int);
void addnotifications (HWND hwnd, int remove);
int win32_hardfile_media_change (const char *drvname, int inserted);
#include "gfxfilter.h"
#include "dxwrap.h"
#include "statusline.h"
+#include "drawing.h"
struct uae_filter uaefilters[] =
{
{ 0 }
};
+static int filteroffsetx, filteroffsety, filterxmult = 1000, filterymult = 1000;
+static int dst_width, dst_height, amiga_width, amiga_height, amiga_depth, dst_depth, scale;
+static int temp_width, temp_height;
+uae_u8 *bufmem_ptr;
+static LPDIRECTDRAWSURFACE7 tempsurf;
+static uae_u8 *tempsurf2, *tempsurf3;
+static int cleartemp;
+static uae_u32 rc[256], gc[256], bc[256];
+
+void getfilteroffset (int *dx, int *dy, int *mx, int *my)
+{
+ *dx = (dst_width - amiga_width * 1000 / filterxmult) / 2;
+ *dy = (dst_height - amiga_height * 1000 / filterymult) / 2;
+ *mx = filterxmult;
+ *my = filterymult;
+}
+
+static int vblscale (int v)
+{
+ static int o;
+ int n;
+
+ n = (beamcon0 & 0x80) + maxvpos;
+ if (n != o)
+ cleartemp = 1;
+ o = n;
+ if (beamcon0 & 0x80)
+ return v;
+ v = v * maxvpos / MAXVPOS_PAL;
+ return v;
+}
uae_u8 *getfilterrect1 (RECT *sr, RECT *dr, int dst_depth, int aw, int ah, int scale, int temp_width, int temp_height, uae_u8 *dptr, int pitch)
{
- int aws = aw * scale;
- int ahs = ah * scale;
+ int aws, ahs;
+
+ ah = vblscale (ah);
+ aws = aw * scale;
+ ahs = ah * scale;
SetRect (sr, 0, 0, 0, 0);
dr->left = sr->left + (temp_width - aws) /2;
void getfilterrect2 (RECT *sr, RECT *dr, int dst_width, int dst_height, int aw, int ah, int scale, int temp_width, int temp_height)
{
- int aws = aw * scale;
- int ahs = ah * scale;
+ int aws, ahs;
int xs, ys;
int xmult, ymult;
- int v;
+ int v, xy;
+
+ xy = 1;
+
+ ah = vblscale (ah);
+ aws = aw * scale;
+ ahs = ah * scale;
SetRect (sr, 0, 0, dst_width, dst_height);
dr->left = (temp_width - aws) /2;
dr->right = dr->left + dst_width;
dr->bottom = dr->top + dst_height;
- v = currprefs.gfx_filter ? currprefs.gfx_filter_horiz_offset : 0;
- OffsetRect (dr, (int)(-v * aws / 1000.0), 0);
- v = currprefs.gfx_filter ? currprefs.gfx_filter_vert_offset : 0;
- OffsetRect (dr, 0, (int)(-v * ahs / 1000.0));
xmult = currprefs.gfx_filter_horiz_zoom_mult;
- if (xmult <= 0)
- xmult = aws * 1000 / dst_width;
- else
- xmult = xmult + xmult * currprefs.gfx_filter_horiz_zoom / 2000;
-
ymult = currprefs.gfx_filter_vert_zoom_mult;
- if (ymult <= 0)
+ if (currprefs.gfx_filter_autoscale) {
+ int w, h, x, y, v;
+ int extraw = currprefs.gfx_filter_horiz_zoom;
+ int extrah = currprefs.gfx_filter_vert_zoom;
+ static int oxmult, oymult;
+ xmult = 1000;
+ ymult = 1000;
+ v = get_custom_limits (&w, &h, &x, &y);
+ if (v) {
+ int diff;
+ dr->left = (temp_width - aws) /2;
+ dr->top = (temp_height - ahs) / 2;
+ dr->right = dr->left + dst_width * scale;
+ dr->bottom = dr->top + dst_height * scale;
+ OffsetRect (dr, x * scale, y * scale);
+ dr->right -= (dst_width - w) * scale;
+ dr->bottom -= (dst_height - h) * scale;
+ dr->left -= dst_width * extraw / 1000;
+ dr->top -= dst_width * extrah / 1000;
+ dr->right += dst_width * extraw / 1000;
+ dr->bottom += dst_width * extrah / 1000;
+
+ if (currprefs.gfx_filter_keep_aspect || currprefs.gfx_filter_aspect > 0) {
+ int xratio = dst_width * 256 / w;
+ int yratio = dst_height * 256 / h;
+ int diffx = dr->right - dr->left;
+ int diffy = dr->bottom - dr->top;
+
+ if (currprefs.gfx_filter_aspect > 0) {
+ int xm = (currprefs.gfx_filter_aspect >> 8) * 256;
+ int ym = (currprefs.gfx_filter_aspect & 0xff) * 256;
+ xratio = xratio * ((dst_width * ym * 256) / (dst_height * xm)) / 256;
+ }
+
+ if (xratio > yratio) {
+ diff = diffx - diffx * yratio / xratio;
+ dr->right += diff;
+ dr->left -= diff;
+ } else {
+ diff = diffx - diffx * xratio / yratio;
+ dr->bottom += diff;
+ dr->top -= diff;
+ }
+ }
+ diff = dr->right - dr->left;
+ filterxmult = diff * 1000 / dst_width;
+ diff = dr->bottom - dr->top;
+ filterymult = diff * 1000 / dst_height;
+ return;
+ }
+ } else if (currprefs.gfx_filter_keep_aspect && !xmult && !ymult) {
+ xmult = aws * 1000 / dst_width;
ymult = ahs * 1000 / dst_height;
- else
- ymult = ymult + ymult * currprefs.gfx_filter_vert_zoom / 2000;
+ if (xmult < ymult)
+ xmult = ymult;
+ else
+ ymult = xmult;
+ ymult = vblscale (ymult);
+ } else {
+ if (xmult <= 0)
+ xmult = aws * 1000 / dst_width;
+ else
+ xmult = xmult + xmult * currprefs.gfx_filter_horiz_zoom / 2000;
+ if (ymult <= 0)
+ ymult = ahs * 1000 / dst_height;
+ else
+ ymult = ymult + ymult * currprefs.gfx_filter_vert_zoom / 2000;
+ }
if (currprefs.gfx_filter_aspect > 0) {
int srcratio, dstratio;
ymult = ymult * dstratio / srcratio;
}
+ if (xy) {
+ v = currprefs.gfx_filter ? currprefs.gfx_filter_horiz_offset : 0;
+ OffsetRect (dr, (int)(-v * aws / 1000.0), 0);
+ v = currprefs.gfx_filter ? currprefs.gfx_filter_vert_offset : 0;
+ OffsetRect (dr, 0, (int)(-v * ahs / 1000.0));
+ }
+
xs = dst_width - dst_width * xmult / 1000;
dr->left += xs / 2;
dr->right -= xs / 2;
ys = dst_height - dst_height * ymult / 1000;
dr->top += ys / 2;
dr->bottom -= ys / 2;
-}
-static int dst_width, dst_height, amiga_width, amiga_height, amiga_depth, dst_depth, scale;
-static int temp_width, temp_height;
-uae_u8 *bufmem_ptr;
-static LPDIRECTDRAWSURFACE7 tempsurf;
-static uae_u8 *tempsurf2, *tempsurf3;
-static uae_u32 rc[256], gc[256], bc[256];
+ filterxmult = xmult;
+ filterymult = ymult;
+}
static void statusline (void)
{
tempsurf2 = 0;
xfree (tempsurf3);
tempsurf3 = 0;
+ filteroffsetx = 0;
+ filteroffsety = 0;
+ filterxmult = 1000;
+ filterymult = 1000;
}
void S2X_init (int dw, int dh, int aw, int ah, int mult, int ad, int dd)
amiga_depth = ad;
scale = mult;
+ filteroffsetx = (dst_width - amiga_width) / 2;
+ filteroffsety = (dst_height - amiga_height) / 2;
+
temp_width = dst_width * 3;
if (temp_width > dxcaps.maxwidth)
temp_width = dxcaps.maxwidth;
endsptr = gfxvidinfo.bufmemend;
bufmem_ptr = sptr;
+ if (cleartemp) {
+ clearsurface (tempsurf);
+ cleartemp = 0;
+ }
if (!locksurface (tempsurf, &desc))
return;
pitch = desc.lPitch;
getfilterrect2 (&sr, &dr, dst_width, dst_height, amiga_width, amiga_height, scale, temp_width, temp_height);
if (dr.left >= 0 && dr.top >= 0 && dr.right < temp_width && dr.bottom < temp_height) {
- if (dr.left < dr.right && dr.top < dr.bottom)
- DirectDraw_BlitRect (NULL, &sr, tempsurf, &dr);
+ if (dr.left < dr.right && dr.top < dr.bottom)
+ DirectDraw_BlitRect (NULL, &sr, tempsurf, &dr);
}
statusline ();
}
#include <shellapi.h>
#include "sysdeps.h"
+
+#include "resource"
+
#include "options.h"
#include "audio.h"
#include "uae.h"
#include "win32.h"
#include "win32gfx.h"
#include "win32gui.h"
-#include "resource.h"
#include "sound.h"
#include "inputdevice.h"
#include "opengl.h"
return &Displays[display];
}
+void desktop_coords (int *dw, int *dh, int *ax, int *ay, int *aw, int *ah)
+{
+ struct MultiDisplay *md = getdisplay (&currprefs);
+
+ *dw = md->rect.right - md->rect.left;
+ *dh = md->rect.bottom - md->rect.top;
+ *ax = amigawin_rect.left;
+ *ay = amigawin_rect.top;
+ *aw = amigawin_rect.right - *ax;
+ *ah = amigawin_rect.bottom - *ay;
+}
+
void centerdstrect (RECT *dr)
{
if(!(currentmode->flags & (DM_DX_FULLSCREEN | DM_D3D_FULLSCREEN | DM_W_FULLSCREEN)))
}
}
+static int picasso_offset_x, picasso_offset_y, picasso_offset_mx, picasso_offset_my;
+
+void getgfxoffset (int *dxp, int *dyp, int *mxp, int *myp)
+{
+ int dx, dy;
+
+ getfilteroffset (&dx, &dy, mxp, myp);
+ *dxp = dx;
+ *dyp = dy;
+ if (picasso_on) {
+ dx = picasso_offset_x;
+ dy = picasso_offset_y;
+ *mxp = picasso_offset_mx;
+ *myp = picasso_offset_my;
+ } else if (currentmode->flags & DM_W_FULLSCREEN) {
+ if (scalepicasso && screen_is_picasso)
+ return;
+ if (usedfilter && !screen_is_picasso)
+ return;
+ if (currentmode->fullfill && (currentmode->current_width > currentmode->native_width || currentmode->current_height > currentmode->native_height))
+ return;
+ dx += (currentmode->native_width - currentmode->current_width) / 2;
+ dy += (currentmode->native_height - currentmode->current_height) / 2;
+ }
+ *dxp = dx;
+ *dyp = dy;
+}
void DX_Fill (int dstx, int dsty, int width, int height, uae_u32 color)
{
{
RECT dr, sr;
+ picasso_offset_x = 0;
+ picasso_offset_y = 0;
+ picasso_offset_mx = 1000;
+ picasso_offset_my = 1000;
if (scalepicasso) {
int srcratio, dstratio;
SetRect (&sr, 0, 0, picasso96_state.Width, picasso96_state.Height);
} else if (srcratio > dstratio) {
int yy = currentmode->native_height - currentmode->native_height * dstratio / srcratio;
SetRect (&dr, 0, yy / 2, currentmode->native_width, currentmode->native_height - yy / 2);
+ picasso_offset_y = yy / 2;
} else {
int xx = currentmode->native_width - currentmode->native_width * srcratio / dstratio;
SetRect (&dr, xx / 2, 0, currentmode->native_width - xx / 2, currentmode->native_height);
+ picasso_offset_x = xx / 2;
}
+ picasso_offset_mx = picasso96_state.Width * 1000 / (dr.right - dr.left);
+ picasso_offset_my = picasso96_state.Height * 1000 / (dr.bottom - dr.top);
DirectDraw_BlitToPrimaryScale (&dr, &sr);
} else {
SetRect (&sr, x, y, x + w, y + h);
c |= currprefs.gfx_lores_mode != changed_prefs.gfx_lores_mode ? (2 | 8) : 0;
c |= currprefs.gfx_display != changed_prefs.gfx_display ? (2|4|8) : 0;
c |= strcmp (currprefs.gfx_display_name, changed_prefs.gfx_display_name) ? (2|4|8) : 0;
+ c |= currprefs.gfx_blackerthanblack != changed_prefs.gfx_blackerthanblack ? (2 | 8) : 0;
+
c |= currprefs.win32_alwaysontop != changed_prefs.win32_alwaysontop ? 32 : 0;
c |= currprefs.win32_notaskbarbutton != changed_prefs.win32_notaskbarbutton ? 32 : 0;
c |= currprefs.win32_borderless != changed_prefs.win32_borderless ? 32 : 0;
currprefs.gfx_linedbl = changed_prefs.gfx_linedbl;
currprefs.gfx_display = changed_prefs.gfx_display;
strcpy (currprefs.gfx_display_name, changed_prefs.gfx_display_name);
+ currprefs.gfx_blackerthanblack = changed_prefs.gfx_blackerthanblack;
+
currprefs.win32_alwaysontop = changed_prefs.win32_alwaysontop;
currprefs.win32_notaskbarbutton = changed_prefs.win32_notaskbarbutton;
currprefs.win32_borderless = changed_prefs.win32_borderless;
return 1;
}
- if (currprefs.gfx_correct_aspect != changed_prefs.gfx_correct_aspect ||
+ if (currprefs.gfx_filter_autoscale != changed_prefs.gfx_filter_autoscale ||
currprefs.gfx_xcenter_pos != changed_prefs.gfx_xcenter_pos ||
currprefs.gfx_ycenter_pos != changed_prefs.gfx_ycenter_pos ||
currprefs.gfx_xcenter_size != changed_prefs.gfx_xcenter_size ||
currprefs.gfx_xcenter != changed_prefs.gfx_xcenter ||
currprefs.gfx_ycenter != changed_prefs.gfx_ycenter)
{
- currprefs.gfx_correct_aspect = changed_prefs.gfx_correct_aspect;
+ currprefs.gfx_filter_autoscale = changed_prefs.gfx_filter_autoscale;
currprefs.gfx_xcenter_pos = changed_prefs.gfx_xcenter_pos;
currprefs.gfx_ycenter_pos = changed_prefs.gfx_ycenter_pos;
currprefs.gfx_xcenter_size = changed_prefs.gfx_xcenter_size;
#endif
}
- if (currprefs.win32_automount_drives != changed_prefs.win32_automount_drives ||
- currprefs.win32_outsidemouse != changed_prefs.win32_outsidemouse ||
- currprefs.win32_powersavedisabled != changed_prefs.win32_powersavedisabled) {
+ if (currprefs.win32_powersavedisabled != changed_prefs.win32_powersavedisabled) {
- currprefs.win32_outsidemouse = changed_prefs.win32_outsidemouse;
- currprefs.win32_automount_drives = changed_prefs.win32_automount_drives;
currprefs.win32_powersavedisabled = changed_prefs.win32_powersavedisabled;
}
return 0;
#include <shobjidl.h>
#include <dbt.h>
-#include "resource.h"
+#include "resource"
#include "sysconfig.h"
#include "sysdeps.h"
#include "gui.h"
#define MAX_C_PAGES 30
static int LOADSAVE_ID = -1, MEMORY_ID = -1, KICKSTART_ID = -1, CPU_ID = -1,
DISPLAY_ID = -1, HW3D_ID = -1, CHIPSET_ID = -1, CHIPSET2_ID = -1, SOUND_ID = -1, FLOPPY_ID = -1, DISK_ID = -1,
- HARDDISK_ID = -1, PORTS_ID = -1, INPUT_ID = -1, MISC1_ID = -1, MISC2_ID = -1, AVIOUTPUT_ID = -1,
+ HARDDISK_ID = -1, IOPORTS_ID = -1, GAMEPORTS_ID = -1, INPUT_ID = -1, MISC1_ID = -1, MISC2_ID = -1, AVIOUTPUT_ID = -1,
PATHS_ID = -1, QUICKSTART_ID = -1, ABOUT_ID = -1, FRONTEND_ID = -1;
static HWND pages[MAX_C_PAGES];
#define MAX_IMAGETOOLTIPS 10
SendDlgItemMessage(hDlg, IDC_LORES, CB_ADDSTRING, 0, (LPARAM)"SuperHires");
SendDlgItemMessage (hDlg, IDC_LORES, CB_SETCURSEL, workprefs.gfx_resolution, 0);
- CheckDlgButton (hDlg, IDC_ASPECT, workprefs.gfx_correct_aspect);
+ CheckDlgButton (hDlg, IDC_BLACKER_THAN_BLACK, workprefs.gfx_blackerthanblack);
CheckDlgButton (hDlg, IDC_LORES_SMOOTHED, workprefs.gfx_lores_mode);
CheckDlgButton (hDlg, IDC_XCENTER, workprefs.gfx_xcenter);
&workprefs.gfx_pfullscreen, &workprefs.gfx_pvsync, 1);
workprefs.gfx_lores_mode = IsDlgButtonChecked (hDlg, IDC_LORES_SMOOTHED);
- workprefs.gfx_correct_aspect = IsDlgButtonChecked (hDlg, IDC_ASPECT);
+ workprefs.gfx_blackerthanblack = IsDlgButtonChecked (hDlg, IDC_BLACKER_THAN_BLACK);
workprefs.gfx_linedbl = (IsDlgButtonChecked(hDlg, IDC_LM_SCANLINES) ? 2 :
IsDlgButtonChecked(hDlg, IDC_LM_DOUBLED) ? 1 : 0);
workprefs.catweasel = 0;
CheckDlgButton (hDlg, IDC_CATWEASEL, workprefs.catweasel);
CheckDlgButton (hDlg, IDC_STATE_CAPTURE, workprefs.statecapture);
- CheckDlgButton (hDlg, IDC_MOUSETRICK, workprefs.win32_outsidemouse);
misc_kbled (hDlg, IDC_KBLED1, workprefs.keyboard_leds[0]);
misc_kbled (hDlg, IDC_KBLED2, workprefs.keyboard_leds[1]);
case IDC_CATWEASEL:
workprefs.catweasel = IsDlgButtonChecked (hDlg, IDC_CATWEASEL) ? -1 : 0;
break;
- case IDC_MOUSETRICK:
- workprefs.win32_outsidemouse = IsDlgButtonChecked (hDlg, IDC_MOUSETRICK) ? -1 : 0;
- break;
case IDC_NOTASKBARBUTTON:
workprefs.win32_notaskbarbutton = IsDlgButtonChecked (hDlg, IDC_NOTASKBARBUTTON);
break;
static int joy0previous, joy1previous;
static BOOL bNoMidiIn = FALSE;
+static void enable_for_gameportsdlg (HWND hDlg)
+{
+ int v = full_property_sheet;
+ ew (hDlg, IDC_PORT_TABLET_FULL, v && is_tablet () && workprefs.input_tablet > 0);
+ ew (hDlg, IDC_PORT_MOUSETRICK, v);
+}
+
static void enable_for_portsdlg (HWND hDlg)
{
int v;
int i, j;
char tmp[MAX_DPATH], tmp2[MAX_DPATH];
- enable_for_portsdlg (hDlg);
+ SetDlgItemInt (hDlg, IDC_INPUTSPEEDM, workprefs.input_mouse_speed, FALSE);
+ CheckDlgButton (hDlg, IDC_PORT_MOUSETRICK, workprefs.input_magic_mouse);
+ CheckDlgButton (hDlg, IDC_PORT_TABLET, workprefs.input_tablet > 0);
+ CheckDlgButton (hDlg, IDC_PORT_TABLET_FULL, workprefs.input_tablet == TABLET_REAL);
+
if (joy0previous < 0)
joy0previous = inputdevice_get_device_total (IDTYPE_JOYSTICK) + 1;
if (joy1previous < 0)
port->id = vv;
}
-static void values_from_portsdlg (HWND hDlg)
+static void values_from_gameportsdlg (HWND hDlg, int d)
{
- int i, lastside = 0, changed = 0, v;
- char tmp[256];
- BOOL success;
- LRESULT item;
+ int i, success;
+ int changed = 0;
+ int lastside = 0;
+
+ if (d) {
+ i = GetDlgItemInt (hDlg, IDC_INPUTSPEEDM, &success, FALSE);
+ if (success)
+ currprefs.input_mouse_speed = workprefs.input_mouse_speed = i;
+
+ workprefs.input_magic_mouse = IsDlgButtonChecked (hDlg, IDC_PORT_MOUSETRICK) ? -1 : 0;
+ workprefs.input_tablet = 0;
+ if (IsDlgButtonChecked (hDlg, IDC_PORT_TABLET)) {
+ workprefs.input_tablet = TABLET_MOUSEHACK;
+ if (IsDlgButtonChecked (hDlg, IDC_PORT_TABLET_FULL))
+ workprefs.input_tablet = TABLET_REAL;
+ }
+ return;
+ }
for (i = 0; i < 2; i++) {
int idx = 0;
else
fixjport (&workprefs.jports[1], workprefs.jports[0].id);
}
+
+}
+
+static void values_from_portsdlg (HWND hDlg)
+{
+ int v;
+ char tmp[256];
+ BOOL success;
+ LRESULT item;
item = SendDlgItemMessage (hDlg, IDC_PRINTERLIST, CB_GETCURSEL, 0, 0L);
if(item != CB_ERR) {
}
/* Handle messages for the Joystick Settings page of our property-sheet */
-static INT_PTR CALLBACK PortsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+static INT_PTR CALLBACK GamePortsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
static int recursive = 0;
int temp;
{
case WM_INITDIALOG:
recursive++;
- pages[PORTS_ID] = hDlg;
- currentpage = PORTS_ID;
- init_portsdlg (hDlg);
+ pages[GAMEPORTS_ID] = hDlg;
+ currentpage = GAMEPORTS_ID;
inputdevice_updateconfig (&workprefs);
- enable_for_portsdlg (hDlg);
- values_to_portsdlg (hDlg);
+ enable_for_gameportsdlg (hDlg);
updatejoyport (hDlg);
recursive--;
break;
case WM_USER:
recursive++;
- enable_for_portsdlg (hDlg);
+ enable_for_gameportsdlg (hDlg);
updatejoyport (hDlg);
recursive--;
return TRUE;
if (recursive > 0)
break;
recursive++;
- if (wParam == IDC_SWAP) {
+ if (LOWORD (wParam) == IDC_SWAP) {
struct jport tmp;
memcpy (&tmp, &workprefs.jports[0], sizeof (struct jport));
memcpy (&workprefs.jports[0], &workprefs.jports[1], sizeof (struct jport));
temp = joy0previous;
joy0previous = joy1previous;
joy1previous = temp;
+ enable_for_gameportsdlg (hDlg);
updatejoyport (hDlg);
inputdevice_updateconfig (&workprefs);
inputdevice_config_change ();
- } else if (wParam == IDC_FLUSHPRINTER) {
+ } else if (HIWORD (wParam) == CBN_SELCHANGE) {
+ switch (LOWORD (wParam))
+ {
+ case IDC_PORT0_JOYS:
+ case IDC_PORT1_JOYS:
+ values_from_gameportsdlg (hDlg, 0);
+ enable_for_gameportsdlg (hDlg);
+ updatejoyport (hDlg);
+ inputdevice_updateconfig (&workprefs);
+ inputdevice_config_change ();
+ break;
+ }
+ } else {
+ values_from_gameportsdlg (hDlg, 1);
+ enable_for_gameportsdlg (hDlg);
+ }
+ recursive--;
+ break;
+ }
+ return FALSE;
+}
+
+/* Handle messages for the IO Settings page of our property-sheet */
+static INT_PTR CALLBACK IOPortsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static int recursive = 0;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ recursive++;
+ pages[IOPORTS_ID] = hDlg;
+ currentpage = IOPORTS_ID;
+ init_portsdlg (hDlg);
+ inputdevice_updateconfig (&workprefs);
+ enable_for_portsdlg (hDlg);
+ values_to_portsdlg (hDlg);
+ recursive--;
+ break;
+ case WM_USER:
+ recursive++;
+ enable_for_portsdlg (hDlg);
+ recursive--;
+ return TRUE;
+
+ case WM_COMMAND:
+ if (recursive > 0)
+ break;
+ recursive++;
+ if (wParam == IDC_FLUSHPRINTER) {
if (isprinter ()) {
closeprinter ();
}
if (HIWORD (wParam) == CBN_SELCHANGE) {
switch (LOWORD (wParam))
{
- case IDC_PORT0_JOYS:
- case IDC_PORT1_JOYS:
case IDC_PRINTERLIST:
case IDC_SERIAL:
case IDC_MIDIOUTLIST:
case IDC_MIDIINLIST:
values_from_portsdlg (hDlg);
- updatejoyport (hDlg);
inputdevice_updateconfig (&workprefs);
inputdevice_config_change ();
break;
SetDlgItemInt (hDlg, IDC_INPUTAUTOFIRERATE, workprefs.input_autofire_framecnt, FALSE);
SetDlgItemInt (hDlg, IDC_INPUTSPEEDD, workprefs.input_joymouse_speed, FALSE);
SetDlgItemInt (hDlg, IDC_INPUTSPEEDA, workprefs.input_joymouse_multiplier, FALSE);
- SetDlgItemInt (hDlg, IDC_INPUTSPEEDM, workprefs.input_mouse_speed, FALSE);
CheckDlgButton (hDlg, IDC_INPUTDEVICEDISABLE, (!input_total_devices || inputdevice_get_device_status (input_selected_device)) ? BST_CHECKED : BST_UNCHECKED);
}
ew (hDlg, IDC_INPUTAUTOFIRERATE, v);
ew (hDlg, IDC_INPUTSPEEDA, v);
ew (hDlg, IDC_INPUTSPEEDD, v);
- ew (hDlg, IDC_INPUTSPEEDM, TRUE);
ew (hDlg, IDC_INPUTCOPY, v);
ew (hDlg, IDC_INPUTCOPYFROM, v);
ew (hDlg, IDC_INPUTSWAP, v);
v = GetDlgItemInt (hDlg, IDC_INPUTSPEEDA, &success, FALSE);
if (success)
currprefs.input_joymouse_multiplier = workprefs.input_joymouse_multiplier = v;
- v = GetDlgItemInt (hDlg, IDC_INPUTSPEEDM, &success, FALSE);
- if (success)
- currprefs.input_mouse_speed = workprefs.input_mouse_speed = v;
}
static void values_from_inputdlg (HWND hDlg, int inputchange)
case IDC_INPUTAUTOFIRERATE:
case IDC_INPUTSPEEDD:
case IDC_INPUTSPEEDA:
- case IDC_INPUTSPEEDM:
values_from_inputdlgbottom (hDlg);
break;
}
{
int v = workprefs.gfx_filter ? TRUE : FALSE;
int vv = FALSE, vv2 = FALSE, vv3 = FALSE, vv4 = FALSE;
+ int as = workprefs.gfx_filter_autoscale;
struct uae_filter *uf;
int i;
vv3 = TRUE;
if (v && uf->x[0])
vv4 = TRUE;
- ew (hDlg, IDC_FILTERENABLE, TRUE);
+// ew (hDlg, IDC_FILTERENABLE, TRUE);
ew (hDlg, IDC_FILTERMODE, v);
- CheckDlgButton (hDlg, IDC_FILTERENABLE, v);
+// CheckDlgButton (hDlg, IDC_FILTERENABLE, v);
ew (hDlg, IDC_FILTERHZ, v);
ew (hDlg, IDC_FILTERVZ, v);
- ew (hDlg, IDC_FILTERHZMULT, v);
- ew (hDlg, IDC_FILTERVZMULT, v);
- ew (hDlg, IDC_FILTERHO, v);
- ew (hDlg, IDC_FILTERVO, v);
- ew (hDlg, IDC_FILTERSLR, vv3);
- ew (hDlg, IDC_FILTERXL, vv2);
- ew (hDlg, IDC_FILTERXLV, vv2);
+ ew (hDlg, IDC_FILTERHZMULT, v && !as);
+ ew (hDlg, IDC_FILTERVZMULT, v && !as);
+ ew (hDlg, IDC_FILTERHO, v && !as);
+ ew (hDlg, IDC_FILTERVO, v && !as);
+ ew (hDlg, IDC_FILTERSLR, vv3 && !as);
+ ew (hDlg, IDC_FILTERXL, vv2 && !as);
+ ew (hDlg, IDC_FILTERXLV, vv2 && !as);
ew (hDlg, IDC_FILTERXTRA, vv2);
ew (hDlg, IDC_FILTERDEFAULT, v);
ew (hDlg, IDC_FILTERFILTER, vv);
- ew (hDlg, IDC_FILTERKEEPASPECT, vv && !vv2);
+ ew (hDlg, IDC_FILTERKEEPASPECT, v);
ew (hDlg, IDC_FILTERASPECT, v);
- ew (hDlg, IDC_FILTERAUTORES, vv && !vv2);
+ ew (hDlg, IDC_FILTERAUTORES, v);
ew (hDlg, IDC_FILTERPRESETSAVE, filterpreset_builtin < 0);
ew (hDlg, IDC_FILTERPRESETLOAD, filterpreset_selected > 0);
"Scanline level", &workprefs.gfx_filter_scanlinelevel, &currprefs.gfx_filter_scanlinelevel, 0, 100, 10,
NULL
};
+static int dummy_in, dummy_out;
static int *filtervars[] = {
&workprefs.gfx_filter, &workprefs.gfx_filter_filtermode,
&workprefs.gfx_filter_vert_zoom, &workprefs.gfx_filter_horiz_zoom,
&workprefs.gfx_filter_vert_zoom_mult, &workprefs.gfx_filter_horiz_zoom_mult,
&workprefs.gfx_filter_vert_offset, &workprefs.gfx_filter_horiz_offset,
&workprefs.gfx_filter_scanlines, &workprefs.gfx_filter_scanlinelevel, &workprefs.gfx_filter_scanlineratio,
- &workprefs.gfx_resolution, &workprefs.gfx_linedbl, &workprefs.gfx_correct_aspect,
+ &workprefs.gfx_resolution, &workprefs.gfx_linedbl, &dummy_in,
&workprefs.gfx_xcenter, &workprefs.gfx_ycenter,
&workprefs.gfx_filter_luminance, &workprefs.gfx_filter_contrast, &workprefs.gfx_filter_saturation,
&workprefs.gfx_filter_gamma, &workprefs.gfx_filter_blur, &workprefs.gfx_filter_noise,
&workprefs.gfx_filter_keep_aspect, &workprefs.gfx_filter_aspect,
+ &workprefs.gfx_filter_autoscale,
NULL
};
static int *filtervars2[] = {
&currprefs.gfx_filter_vert_zoom_mult, &currprefs.gfx_filter_horiz_zoom_mult,
&currprefs.gfx_filter_vert_offset, &currprefs.gfx_filter_horiz_offset,
&currprefs.gfx_filter_scanlines, &currprefs.gfx_filter_scanlinelevel, &currprefs.gfx_filter_scanlineratio,
- &currprefs.gfx_resolution, &currprefs.gfx_linedbl, &currprefs.gfx_correct_aspect,
+ &currprefs.gfx_resolution, &currprefs.gfx_linedbl, &dummy_out,
&currprefs.gfx_xcenter, &currprefs.gfx_ycenter,
&currprefs.gfx_filter_luminance, &currprefs.gfx_filter_contrast, &currprefs.gfx_filter_saturation,
&currprefs.gfx_filter_gamma, &currprefs.gfx_filter_blur, &currprefs.gfx_filter_noise,
&currprefs.gfx_filter_keep_aspect, &currprefs.gfx_filter_aspect,
+ &workprefs.gfx_filter_autoscale,
NULL
};
struct filterpreset {
char *name;
- int conf[24];
+ int conf[25];
};
static struct filterpreset filterpresets[] =
{
- { "PAL example", 8, 0, 0, 0, 1000, 1000, 0, 0, 50, 0, 0, 1, 1, 0, 0, 0, 10, 0, 0, 0, 300, 30, 0, 0 },
+ { "PAL example", 8, 0, 0, 0, 1000, 1000, 0, 0, 50, 0, 0, 1, 1, 0, 0, 0, 10, 0, 0, 0, 300, 30, 0, 0, 0 },
{ NULL }
};
(workprefs.gfx_filter_aspect == 15 * 256 + 9) ? 2 :
(workprefs.gfx_filter_aspect == 16 * 256 + 9) ? 3 :
(workprefs.gfx_filter_aspect == 16 * 256 + 10) ? 4 : 0, 0);
- CheckDlgButton (hDlg, IDC_FILTERAUTORES, workprefs.gfx_autoresolution);
+ CheckDlgButton (hDlg, IDC_FILTERAUTORES, workprefs.gfx_filter_autoscale);
SendDlgItemMessage (hDlg, IDC_FILTERHZ, TBM_SETRANGE, TRUE, MAKELONG (-999, +999));
SendDlgItemMessage (hDlg, IDC_FILTERHZ, TBM_SETPAGESIZE, 0, 1);
item = UAE_FILTER_DIRECT3D - 1;
sprintf (workprefs.gfx_filtershader, "%s.fx", tmp + 5);
}
- workprefs.gfx_filter = 0;
- if (IsDlgButtonChecked (hDlg, IDC_FILTERENABLE)) {
+ workprefs.gfx_filter = 1;
+ if (1) { //IsDlgButtonChecked (hDlg, IDC_FILTERENABLE)) {
workprefs.gfx_filter = uaefilters[item].type;
item = SendDlgItemMessage (hDlg, IDC_FILTERFILTER, CB_GETCURSEL, 0, 0L);
if (item != CB_ERR)
switch (msg)
{
case WM_INITDIALOG:
- if (strlen (WINUAEBETA) == 0)
- ShowWindow (GetDlgItem(hDlg, IDC_FILTERAUTORES), SW_HIDE);
+ //ShowWindow (GetDlgItem(hDlg, IDC_FILTERAUTORES), SW_HIDE);
pages[HW3D_ID] = hDlg;
currentpage = HW3D_ID;
SendDlgItemMessage (hDlg, IDC_FILTERASPECT, CB_RESETCONTENT, 0, 0);
filter_preset (hDlg, wParam);
recursive++;
break;
- case IDC_FILTERENABLE:
- filter_handle (hDlg);
- break;
+// case IDC_FILTERENABLE:
+// filter_handle (hDlg);
+// break;
case IDC_FILTERAUTORES:
- workprefs.gfx_autoresolution = IsDlgButtonChecked (hDlg, IDC_FILTERAUTORES);
+ workprefs.gfx_filter_autoscale = IsDlgButtonChecked (hDlg, IDC_FILTERAUTORES);
break;
case IDC_FILTERKEEPASPECT:
currprefs.gfx_filter_keep_aspect = workprefs.gfx_filter_keep_aspect = IsDlgButtonChecked (hDlg, IDC_FILTERKEEPASPECT);
-1,
IDD_PATHS, IDC_PATHS_ROM, IDC_PATHS_CONFIG, IDC_PATHS_SCREENSHOT, IDC_PATHS_SAVESTATE, IDC_PATHS_AVIOUTPUT, IDC_PATHS_SAVEIMAGE,
-1,
- IDD_PORTS, IDC_PRINTERLIST, IDC_PS_PARAMS, IDC_SERIAL, IDC_MIDIOUTLIST, IDC_MIDIINLIST,
+ IDD_IOPORTS, IDC_PRINTERLIST, IDC_PS_PARAMS, IDC_SERIAL, IDC_MIDIOUTLIST, IDC_MIDIINLIST,
-1,
IDD_SOUND, IDC_SOUNDCARDLIST, IDC_SOUNDDRIVESELECT,
-1,
p = CreateFolderNode (TVhDlg, IDS_TREEVIEW_HOST, root, LOADSAVE_ID, CONFIG_TYPE_HOST);
CN (DISPLAY_ID);
CN (SOUND_ID);
- CN (PORTS_ID);
+ CN (GAMEPORTS_ID);
+ CN (IOPORTS_ID);
CN (INPUT_ID);
CN (AVIOUTPUT_ID);
CN (HW3D_ID);
#ifdef FILESYS
HARDDISK_ID = init_page (IDD_HARDDISK, IDI_HARDDISK, IDS_HARDDISK, HarddiskDlgProc, HarddiskAccel, "gui/hard-drives.htm");
#endif
- PORTS_ID = init_page (IDD_PORTS, IDI_PORTS, IDS_PORTS, PortsDlgProc, NULL, "gui/ports.htm");
+ GAMEPORTS_ID = init_page (IDD_GAMEPORTS, IDI_GAMEPORTS, IDS_GAMEPORTS, GamePortsDlgProc, NULL, "gui/gameports.htm");
+ IOPORTS_ID = init_page (IDD_IOPORTS, IDI_IOPORTS, IDS_IOPORTS, IOPortsDlgProc, NULL, "gui/ioports.htm");
INPUT_ID = init_page (IDD_INPUT, IDI_INPUT, IDS_INPUT, InputDlgProc, NULL, "gui/input.htm");
MISC1_ID = init_page (IDD_MISC1, IDI_MISC1, IDS_MISC1, MiscDlgProc1, NULL, "gui/misc.htm");
MISC2_ID = init_page (IDD_MISC2, IDI_MISC2, IDS_MISC2, MiscDlgProc2, NULL, "gui/misc2.htm");
if (resetcounter > 0)
return;
}
+ if (led < 0)
+ led = 0;
#ifdef RETROPLATFORM
rp_cd_activity (unitnum, led);
#endif
#include "sysconfig.h"
#include "sysdeps.h"
-#include "resource.h"
+#include "resource"
#include "registry.h"
#include "win32.h"
#include "win32gui.h"
--- /dev/null
+#define PACKETDATA (PK_X | PK_Y | PK_Z | PK_BUTTONS | PK_NORMAL_PRESSURE | PK_ORIENTATION | PK_ROTATION | PK_CURSOR | PK_STATUS)
+#define PACKETMODE 0
+
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib capsimg.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib"
+ AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib capsimg.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib"
ShowProgress="0"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateManifest="false"
- DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll"
+ DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll;wintab32.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/winuae.pdb"
SubSystem="2"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib"
+ AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
GenerateManifest="true"
AdditionalManifestDependencies=""
- DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll"
+ DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll;wintab32.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Release/winuae.pdb"
SubSystem="2"
/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib"
+ AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib ddraw.lib dxguid.lib winmm.lib comctl32.lib version.lib vfw32.lib msacm32.lib dsound.lib dinput8.lib d3d9.lib d3dx9.lib winio.lib setupapi.lib wininet.lib dxerr9.lib shlwapi.lib zlibstat.lib libpng.lib lglcd.lib wpcap.lib packet.lib openal32.lib wintab32.lib"
OutputFile="d:\amiga\winuae.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
GenerateManifest="true"
AdditionalManifestDependencies=""
- DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll"
+ DelayLoadDLLs="wpcap.dll;packet.dll;d3dx9_40.dll;openal32.dll;wintab32.dll"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\FullRelease/winuae.pdb"
SubSystem="2"
RelativePath="..\hq4x32.obj"
>
</File>
+ <File
+ RelativePath="..\resources\resource"
+ >
+ </File>
</Files>
<Globals>
</Globals>
+Beta 5: WARNING: big changes. 1.6 version change expected.
+
+- KS loader 16-bit odd/even rom image to 32-bit merging fixed
+- A1000 bootstrap rom in even/odd format wasn't loaded correctly
+- added "Blacker than black" display configuration parameter.
+ Ticked = borderblank is full black, color register RGB range is
+ 0F0F0F to FFFFFF (instead of 000000 to FFFFFF) "Fixes" missing
+ "widescreen effect" in Nexus 7 galaxy effect. (blanked border is
+ "blacker than black" on real hardware, at least on TV-style
+ display devices)
+- useless correct aspect setting is gone (use null filter instead)
+- do not try to decrypt broken non-encrypted DMS files
+- added new panel "Gameports", moved joystick configuration from
+ io ports. (more space for future "easy" input configuration mode)
+- moved mouse related settings to new gameports panel
+- added tablet settings to new gameports panel
+- CD32 mode onscreen CD led now emulates real CD32 CD led behavior :)
+- some CD32 CD command and status code updates (did some logic
+ analyzer stuff, more to do later), now updated cd.device that comes
+ with FMV cartridge works. Also CD command 2 now returns full
+ firmware string, "CHINON O-658-2 24" (useless but fun, same with
+ CDTV CD ROM firmware versions..)
+- F12+CTRL was same as F11+CTRL (partial copypaste error)
+- renamed motherboard RAM expansion areas
+- Wings of Death "fake" NTSC works correctly
+- Null filter is default and non-filter mode is not anymore possible.
+ Finally I can use filters for other things than just simple
+ filtering . See below!
+- filter FS multiplier + keep aspect works as expected
+- pal/ntsc vertical size change emulated (using filter scaling, try
+ KS3.x early boot screen)
+
+- mouse and tablet/"absolute mouse" support completely rewritten
+ * mousehack mouse removed (not needed anymore)
+ * mousehack interrupt and task renamed to "UAE tablet driver"
+ * do not select any "tablet mouse" in ports-panel. Use normal mouse.
+ * tablet automatically detected (currently needs to be wintab32.dll
+ compatible. Really confusing Tablet PC support maybe later..)
+ Tablet properties in log file.
+ * tablet and mouse are separate devices, like real Amiga tablets.
+ * if tablet is detected (and "UAE boot rom" is installed), "UAE
+ tablet driver" will be automatically enabled:
+ KS1.x: uses old-style mousehack mode
+ KS2.x: creates IECLASS_NEWPOINTERPOS/IESUBCLASS_TABLET messages
+ (position, range and pressure. Note that pressure variable is
+ documented as "not used" in 2.x documentation..)
+ KS3.x: creates IECLASS_NEWPOINTERPOS/IESUBCLASS_NEWTABLET messages
+ ("lots of stuff")
+ * stylus inverted = right button (if supported by tablet)
+ * proximity detection (if supported by tablet)
+ * reported tilt angles are 99.9% surely totally wrong
+ * Tested only with old USB Wacom Graphire.
+ * No tablet.library emulation because no information available.
+ (Deluxe Paint requires it for pressure support)
+ * TODO: configuration (left button sensitivity, margins etc..)
+ * New gameports panel settings:
+ - "Drawing tablet support" = install "tablet driver", mousehack
+ or real tablet. Same as mouse in "mousehack" mode. (bad label,
+ will be renamed later..)
+ - "Full tablet emulation" = use wintab32.dll for all tablet
+ parameters (x, y, pressure etc..). Real mouse still works in
+ mousehack mode.
+ * "Magic Mouse" updated.
+ - without tablet mode enabled: like previously but more accurate
+ - mousehack/tablet mode: RTG mode perfectly smooth and seamless
+ mouse cursor movement inside and outside of emulation window.
+ (Changes Windows mouse cursor shape, hides real RTG cursor,
+ works only if RTG hardware mouse cursor enabled)
+ - native mode cursor sync should be always perfect. (this took
+ long and was really difficult to do properly..) Does not work
+ with screen dragging (yet?)
+
+ * NOTE: real table support can't be improved until I get more
+ information (tilt range etc..) Official documentation is non-existing.
+ (short comments in includes aren't really considered documentation..)
+
+ And finally extremely long awaited feature that was not supposed to
+ ever happen: automatic display scaling!
+ - enable checkbox is "autoscale" in filter panel
+ - supports all filters (maybe?)
+ - scaling sliders change extra border size (middle = no borders)
+ - keep aspect ratio does just that
+ - ignores possible sprites outside of display area (Banshee, Spheris
+ Legacy etc..) Will be updated later..
+ - enabled by default, aspect ratio disabled, at least during beta
+ phase. Perhaps there should be button in quickstart panel to disable
+ or enable autoscaling because not everyone likes blurry display to
+ become the default..
+ - to prevent very small displays scaled to fullscreen (like Guru
+ meditation boxes), minimum allowed internal display size is 256*192.
+ Max size is 344*272 (in lores, nonlaced pixels)
+ - the better this gets the more comments I get.. (which means
+ screenshot and complete name and/or CRC32)
+
+ Does not (cannot) work with all programs. Why did I finally do this?
+ Because "magic mouse" sync mode required position of display start
+ and end and it was more or less the same was required for automatic
+ scaling.. And also because filter internal algorithms are finally
+ good enough.
+
Beta 4:
- removable real harddrives (or other memory devices) work again
- added support for 81 and 82 cylinder PC/Atari ST image formats
- memwatch breakpoints work after reset/memory bank changes
-
Beta 3:
- HAM errors if left border was not fully visible (it seems this bug