puae 2.3.0

parent 0de8c585
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(dist_noinst_SCRIPTS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/configure COPYING config.guess config.sub \
depcomp install-sh missing mkinstalldirs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \
$(top_srcdir)/m4/as-objc.m4 \
$(top_srcdir)/m4/ax_check_compiler_flags.m4 \
$(top_srcdir)/m4/ax_gcc_archflag.m4 \
$(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \
$(top_srcdir)/m4/framework.m4 $(top_srcdir)/m4/fsusage.m4 \
$(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk.m4 \
$(top_srcdir)/m4/sdl.m4 $(top_srcdir)/m4/type_socklen_t.m4 \
$(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/sysconfig.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SCRIPTS = $(dist_noinst_SCRIPTS)
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
ASMOBJS = @ASMOBJS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BSDSOCKOBJS = @BSDSOCKOBJS@
CC = @CC@
CCAS = @CCAS@
CCASDEPMODE = @CCASDEPMODE@
CCASFLAGS = @CCASFLAGS@
CCDEPMODE = @CCDEPMODE@
CDOBJS = @CDOBJS@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPUOBJS = @CPUOBJS@
CXX = @CXX@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUGOBJS = @DEBUGOBJS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
EXTRAOBJS = @EXTRAOBJS@
FILEPRG = @FILEPRG@
FILESYSOBJS = @FILESYSOBJS@
GENCPUOPTS = @GENCPUOPTS@
GFX_DEP = @GFX_DEP@
GREP = @GREP@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
GUI_DEP = @GUI_DEP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
JITOBJS = @JITOBJS@
JOY_DEP = @JOY_DEP@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MACHDEP = @MACHDEP@
MAKEDEPPRG = @MAKEDEPPRG@
MAKEINFO = @MAKEINFO@
MATHLIB = @MATHLIB@
MKDIR_P = @MKDIR_P@
NO_SCHED_CFLAGS = @NO_SCHED_CFLAGS@
OBJC = @OBJC@
OBJCDEPMODE = @OBJCDEPMODE@
OBJC_LDFLAGS = @OBJC_LDFLAGS@
OBJEXT = @OBJEXT@
OSDEP = @OSDEP@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PRTDIAG = @PRTDIAG@
PTHREAD_CC = @PTHREAD_CC@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
RANLIB = @RANLIB@
RCLPRG = @RCLPRG@
RESOBJS = @RESOBJS@
SCSIOBJS = @SCSIOBJS@
SDL_CFLAGS = @SDL_CFLAGS@
SDL_CONFIG = @SDL_CONFIG@
SDL_LIBS = @SDL_LIBS@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SND_DEP = @SND_DEP@
STRIP = @STRIP@
TARGET = @TARGET@
THREADDEP = @THREADDEP@
UAE_CFLAGS = @UAE_CFLAGS@
UAE_CPPFLAGS = @UAE_CPPFLAGS@
UAE_LIBS = @UAE_LIBS@
UAE_RSRCFILE = @UAE_RSRCFILE@
VERSION = @VERSION@
WRCPRG = @WRCPRG@
XMKMF = @XMKMF@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_OBJC = @ac_ct_OBJC@
ac_cv_c_inline = @ac_cv_c_inline@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
subdirs = @subdirs@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = m4 amiga docs CHANGES README
SUBDIRS = src
dist_noinst_SCRIPTS = bootstrap.sh
all: all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(SCRIPTS)
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am:
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
dist-hook:
rm -rf `find $(distdir) -name CVS`
rm -rf `find $(distdir) -name *.bak`
rm -rf `find $(distdir) -name *~`
rm -rf `find $(distdir) -name *.orig`
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
...@@ -6,8 +6,9 @@ PUAE versioning is based on the merged WinUAE version.. ...@@ -6,8 +6,9 @@ PUAE versioning is based on the merged WinUAE version..
All is done by: All is done by:
Mustafa 'GnoStiC' TUFAN (mustafa.tufan@gmail.com) Mustafa 'GnoStiC' TUFAN (mustafa.tufan@gmail.com)
with OS-X fixes from: with fixes from:
Steven 'xaind' Saunders Steven 'xaind' Saunders (MacOSX)
'wuffe' (FreeBSD)
Thanks for the morale support: Thanks for the morale support:
Dom 'Hungry Horace' Cresswell Dom 'Hungry Horace' Cresswell
...@@ -144,6 +145,7 @@ See the docs/compiling.txt file for more information about building PUAE. ...@@ -144,6 +145,7 @@ See the docs/compiling.txt file for more information about building PUAE.
GIT GIT
=== ===
http://github.com/GnoStiC/PUAE
Contact Contact
......
...@@ -1728,16 +1728,27 @@ static void add_p96_mode (int width, int height, int emulate_chunky, int *count) ...@@ -1728,16 +1728,27 @@ static void add_p96_mode (int width, int height, int emulate_chunky, int *count)
for (i = 0; i <= (emulate_chunky ? 1 : 0); i++) { for (i = 0; i <= (emulate_chunky ? 1 : 0); i++) {
if (*count < MAX_PICASSO_MODES) { if (*count < MAX_PICASSO_MODES) {
DisplayModes[*count].res.width = width; DisplayModes[*count].res.width = width;
DisplayModes[*count].res.height = height; DisplayModes[*count].res.height = height;
DisplayModes[*count].depth = (i == 1) ? 1 : bit_unit >> 3; DisplayModes[*count].depth = (i == 1) ? 1 : bit_unit >> 3;
DisplayModes[*count].refresh[0] = 75; DisplayModes[*count].refresh[0] = 75;
(*count)++; (*count)++;
write_log ("SDLGFX: Added P96 mode: %dx%dx%d\n", width, height, (i == 1) ? 8 : bitdepth); write_log ("SDLGFX: Added P96 mode: %dx%dx%d\n", width, height, (i == 1) ? 8 : bitdepth);
addmode (md, width, height, bitdepth, 75, 0); addmode (md, width, height, bitdepth, 75, 0);
} }
} }
md1 = Displays;
if (md1->DisplayModes[0].depth >= 0)
md1->disabled = 0;
i = 0;
while (md1->DisplayModes[i].depth > 0)
i++;
write_log ("'%s', %d display modes (%s)\n", md1->name, i, md1->disabled ? "disabled" : "enabled");
md1++;
return; return;
} }
......
...@@ -25,7 +25,9 @@ ...@@ -25,7 +25,9 @@
#define IPC_CREAT 0x04 #define IPC_CREAT 0x04
#define IPC_STAT 0x08 #define IPC_STAT 0x08
#if !defined(__FreeBSD__)
typedef int key_t; typedef int key_t;
#endif
/* One shmid data structure for each shared memory segment in the system. */ /* One shmid data structure for each shared memory segment in the system. */
struct shmid_ds { struct shmid_ds {
......
...@@ -55,28 +55,22 @@ int p96hack_vpos, p96hack_vpos2, p96refresh_active; ...@@ -55,28 +55,22 @@ int p96hack_vpos, p96hack_vpos2, p96refresh_active;
#include "picasso96.h" #include "picasso96.h"
#include "uae_endian.h" #include "uae_endian.h"
#include "traps.h" #include "traps.h"
#ifdef JIT
int have_done_picasso = 0; /* For the JIT compiler */
int picasso_is_special = PIC_WRITE; /* ditto */
int picasso_is_special_read = PIC_READ; /* ditto */
#endif
static int hwsprite = 0;
#define NOBLITTER 0 #define NOBLITTER 0
#define NOBLITTER_BLIT 0 #define NOBLITTER_BLIT 0
#define P96TRACING_ENABLED 0 #define P96TRACING_ENABLED 0
#define P96SPRTRACING_ENABLED 0 #define P96SPRTRACING_ENABLED 0
static int hwsprite = 0;
static int picasso96_BT = BT_uaegfx; static int picasso96_BT = BT_uaegfx;
static int picasso96_GCT = GCT_Unknown; static int picasso96_GCT = GCT_Unknown;
static int picasso96_PCT = PCT_Unknown; static int picasso96_PCT = PCT_Unknown;
bool have_done_picasso = 1; /* For the JIT compiler */
static int p96syncrate; static int p96syncrate;
int p96hsync_counter, full_refresh; int p96hsync_counter, full_refresh;
#ifdef PICASSO96 #ifdef PICASSO96
#define P96TRACING_ENABLED 0
#ifdef DEBUG // Change this to _DEBUG for debugging #ifdef DEBUG // Change this to _DEBUG for debugging
#define P96TRACING_ENABLED 1 #define P96TRACING_ENABLED 1
#define P96TRACING_LEVEL 1 #define P96TRACING_LEVEL 1
...@@ -85,7 +79,7 @@ static int flushpixels (void); ...@@ -85,7 +79,7 @@ static int flushpixels (void);
#if P96TRACING_ENABLED #if P96TRACING_ENABLED
#define P96TRACE(x) do { write_log ("P96: "); write_log x; } while(0) #define P96TRACE(x) do { write_log ("P96: "); write_log x; } while(0)
#else #else
#define P96TRACE(x) do { } while(0) #define P96TRACE(x)
#endif #endif
#if P96SPRTRACING_ENABLED #if P96SPRTRACING_ENABLED
#define P96TRACE_SPR(x) do { write_log x; } while(0) #define P96TRACE_SPR(x) do { write_log x; } while(0)
...@@ -115,12 +109,12 @@ static struct ScreenResolution hicolour = { 640, 480 }; ...@@ -115,12 +109,12 @@ static struct ScreenResolution hicolour = { 640, 480 };
static struct ScreenResolution truecolour = { 640, 480 }; static struct ScreenResolution truecolour = { 640, 480 };
static struct ScreenResolution alphacolour = { 640, 480 }; static struct ScreenResolution alphacolour = { 640, 480 };
static int mode_count = 0;
uae_u16 picasso96_pixel_format = RGBFF_CHUNKY; uae_u16 picasso96_pixel_format = RGBFF_CHUNKY;
uae_u32 p96_rgbx16[65536]; uae_u32 p96_rgbx16[65536];
uae_u32 p96rc[256], p96gc[256], p96bc[256]; uae_u32 p96rc[256], p96gc[256], p96bc[256];
struct PicassoResolution DisplayModes[MAX_PICASSO_MODES]; struct PicassoResolution DisplayModes[MAX_PICASSO_MODES];
static int mode_count = 0;
static int cursorwidth, cursorheight, cursorok; static int cursorwidth, cursorheight, cursorok;
static uae_u8 *cursordata; static uae_u8 *cursordata;
...@@ -287,6 +281,28 @@ static void DumpTemplate (struct Template *tmp, unsigned long w, unsigned long h ...@@ -287,6 +281,28 @@ static void DumpTemplate (struct Template *tmp, unsigned long w, unsigned long h
} }
} }
static void DumpLine(struct Line *line)
{
if (line) {
write_log ("Line->X = %d\n", line->X);
write_log ("Line->Y = %d\n", line->Y);
write_log ("Line->Length = %d\n", line->Length);
write_log ("Line->dX = %d\n", line->dX);
write_log ("Line->dY = %d\n", line->dY);
write_log ("Line->sDelta = %d\n", line->sDelta);
write_log ("Line->lDelta = %d\n", line->lDelta);
write_log ("Line->twoSDminusLD = %d\n", line->twoSDminusLD);
write_log ("Line->LinePtrn = %d\n", line->LinePtrn);
write_log ("Line->PatternShift = %d\n", line->PatternShift);
write_log ("Line->FgPen = 0x%x\n", line->FgPen);
write_log ("Line->BgPen = 0x%x\n", line->BgPen);
write_log ("Line->Horizontal = %d\n", line->Horizontal);
write_log ("Line->DrawMode = %d\n", line->DrawMode);
write_log ("Line->Xorigin = %d\n", line->Xorigin);
write_log ("Line->Yorigin = %d\n", line->Yorigin);
}
}
static void ShowSupportedResolutions (void) static void ShowSupportedResolutions (void)
{ {
int i = 0; int i = 0;
...@@ -600,7 +616,7 @@ void picasso_handle_vsync (void) ...@@ -600,7 +616,7 @@ void picasso_handle_vsync (void)
if (doskip () && p96skipmode == 0) { if (doskip () && p96skipmode == 0) {
; ;
} else { } else {
flushed = 0; //flushpixels (); flushed = flushpixels ();
} }
if (!flushed) if (!flushed)
gfx_unlock_picasso (); gfx_unlock_picasso ();
...@@ -809,7 +825,7 @@ void picasso_refresh (void) ...@@ -809,7 +825,7 @@ void picasso_refresh (void)
width = picasso96_state.Width; width = picasso96_state.Width;
height = picasso96_state.Height; height = picasso96_state.Height;
} }
//flushpixels (); flushpixels ();
} else { } else {
write_log ("P96: ERROR - picasso_refresh() can't refresh!\n"); write_log ("P96: ERROR - picasso_refresh() can't refresh!\n");
} }
...@@ -3202,6 +3218,440 @@ static uae_u32 REGPARAM2 picasso_BlitPlanar2Direct (TrapContext *ctx) ...@@ -3202,6 +3218,440 @@ static uae_u32 REGPARAM2 picasso_BlitPlanar2Direct (TrapContext *ctx)
return result; return result;
} }
#include "statusline.h"
static void statusline (uae_u8 *dst)
{
int y, yy;
int dst_height, pitch;
dst_height = picasso96_state.Height;
if (dst_height > picasso_vidinfo.height)
dst_height = picasso_vidinfo.height;
pitch = picasso_vidinfo.rowbytes;
yy = 0;
for (y = dst_height - TD_TOTAL_HEIGHT; y < dst_height; y++) {
uae_u8 *buf = dst + y * pitch;
draw_status_line_single (buf, picasso_vidinfo.pixbytes, yy, picasso96_state.Width, p96rc, p96gc, p96bc, NULL);
yy++;
}
}
static void copyrow (uae_u8 *src, uae_u8 *dst, int x, int y, int width)
{
uae_u8 *src2 = src + y * picasso96_state.BytesPerRow;
uae_u8 *dst2 = dst + y * picasso_vidinfo.rowbytes;
int endx = x + width, endx4;
int dstpix = picasso_vidinfo.pixbytes;
int srcpix = picasso96_state.BytesPerPixel;
if (picasso96_state.RGBFormat == host_mode) {
memcpy (dst2 + x * dstpix, src2 + x * srcpix, width * dstpix);
return;
}
// native match?
if (currprefs.gfx_api) {
switch (picasso_convert)
{
case RGBFB_B8G8R8A8_32:
case RGBFB_R5G6B5PC_16:
memcpy (dst2 + x * dstpix, src2 + x * srcpix, width * dstpix);
return;
}
} else {
switch (picasso_convert)
{
case RGBFB_B8G8R8A8_32:
case RGBFB_R5G6B5PC_16:
memcpy (dst2 + x * dstpix, src2 + x * srcpix, width * dstpix);
return;
}
}
endx4 = endx & ~3;
switch (picasso_convert)
{
/* 24bit->32bit */
case RGBFB_R8G8B8_32:
while (x < endx) {
((uae_u32*)dst2)[x] = (src2[x * 3 + 0] << 16) | (src2[x * 3 + 1] << 8) | (src2[x * 3 + 2] << 0);
x++;
}
break;
case RGBFB_B8G8R8_32:
while (x < endx) {
((uae_u32*)dst2)[x] = ((uae_u32*)(src2 + x * 3))[0] & 0x00ffffff;
x++;
}
break;
/* 32bit->32bit */
case RGBFB_R8G8B8A8_32:
while (x < endx) {
((uae_u32*)dst2)[x] = (src2[x * 4 + 0] << 16) | (src2[x * 4 + 1] << 8) | (src2[x * 4 + 2] << 0);
x++;
}
break;
case RGBFB_A8R8G8B8_32:
while (x < endx) {
((uae_u32*)dst2)[x] = (src2[x * 4 + 1] << 16) | (src2[x * 4 + 2] << 8) | (src2[x * 4 + 3] << 0);
x++;
}
break;
case RGBFB_A8B8G8R8_32:
while (x < endx) {
((uae_u32*)dst2)[x] = ((uae_u32*)src2)[x] >> 8;
x++;
}
break;
/* 15/16bit->32bit */
case RGBFB_R5G6B5PC_32:
case RGBFB_R5G5B5PC_32:
case RGBFB_R5G6B5_32:
case RGBFB_R5G5B5_32:
case RGBFB_B5G6R5PC_32:
case RGBFB_B5G5R5PC_32:
{
while ((x & 3) && x < endx) {
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
while (x < endx4) {
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
while (x < endx) {
((uae_u32*)dst2)[x] = p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
}
break;
/* 16/15bit->16bit */
case RGBFB_R5G5B5PC_16:
case RGBFB_R5G6B5_16:
case RGBFB_R5G5B5_16:
case RGBFB_B5G5R5PC_16:
case RGBFB_B5G6R5PC_16:
case RGBFB_R5G6B5PC_16:
{
while ((x & 3) && x < endx) {
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
while (x < endx4) {
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
while (x < endx) {
((uae_u16*)dst2)[x] = (uae_u16)p96_rgbx16[((uae_u16*)src2)[x]];
x++;
}
}
break;
/* 24bit->16bit */
case RGBFB_R8G8B8_16:
while (x < endx) {
uae_u8 r, g, b;
r = src2[x * 3 + 0];
g = src2[x * 3 + 1];
b = src2[x * 3 + 2];
((uae_u16*)dst2)[x] = p96_rgbx16[(((r >> 3) & 0x1f) << 11) | (((g >> 2) & 0x3f) << 5) | (((b >> 3) & 0x1f) << 0)];
x++;
}
break;
case RGBFB_B8G8R8_16:
while (x < endx) {
uae_u32 v;
v = ((uae_u32*)(&src2[x * 3]))[0] >> 8;
((uae_u16*)dst2)[x] = p96_rgbx16[(((v >> (8 + 3)) & 0x1f) << 11) | (((v >> (0 + 2)) & 0x3f) << 5) | (((v >> (16 + 3)) & 0x1f) << 0)];
x++;
}
break;
/* 32bit->16bit */
case RGBFB_R8G8B8A8_16:
while (x < endx) {
uae_u32 v;
v = ((uae_u32*)src2)[x];
((uae_u16*)dst2)[x] = p96_rgbx16[(((v >> (0 + 3)) & 0x1f) << 11) | (((v >> (8 + 2)) & 0x3f) << 5) | (((v >> (16 + 3)) & 0x1f) << 0)];
x++;
}
break;
case RGBFB_A8R8G8B8_16:
while (x < endx) {
uae_u32 v;
v = ((uae_u32*)src2)[x];
((uae_u16*)dst2)[x] = p96_rgbx16[(((v >> (8 + 3)) & 0x1f) << 11) | (((v >> (16 + 2)) & 0x3f) << 5) | (((v >> (24 + 3)) & 0x1f) << 0)];
x++;
}
break;
case RGBFB_A8B8G8R8_16:
while (x < endx) {
uae_u32 v;
v = ((uae_u32*)src2)[x];
((uae_u16*)dst2)[x] = p96_rgbx16[(((v >> (24 + 3)) & 0x1f) << 11) | (((v >> (16 + 2)) & 0x3f) << 5) | (((v >> (8 + 3)) & 0x1f) << 0)];
x++;
}
break;
case RGBFB_B8G8R8A8_16:
while (x < endx) {
uae_u32 v;
v = ((uae_u32*)src2)[x];
((uae_u16*)dst2)[x] = p96_rgbx16[(((v >> (16 + 3)) & 0x1f) << 11) | (((v >> (8 + 2)) & 0x3f) << 5) | (((v >> (0 + 3)) & 0x1f) << 0)];
x++;
}
break;
/* 8bit->32bit */
case RGBFB_CLUT_RGBFB_32:
{
while ((x & 3) && x < endx) {
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
while (x < endx4) {
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
while (x < endx) {
((uae_u32*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
}
break;
/* 8bit->16bit */
case RGBFB_CLUT_RGBFB_16:
{
while ((x & 3) && x < endx) {
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
while (x < endx4) {
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
while (x < endx) {
((uae_u16*)dst2)[x] = picasso_vidinfo.clut[src2[x]];
x++;
}
}
break;
}
}
static void copyallinvert (uae_u8 *src, uae_u8 *dst)
{
int x, y, w;
w = picasso96_state.Width * picasso_vidinfo.pixbytes;
if (picasso96_state.RGBFormat == host_mode) {
for (y = 0; y < picasso96_state.Height; y++) {
for (x = 0; x < w; x++)
dst[x] = src[x] ^ 0xff;
dst += picasso_vidinfo.rowbytes;
src += picasso96_state.BytesPerRow;
}
} else {
uae_u8 *src2 = src;
for (y = 0; y < picasso96_state.Height; y++) {
for (x = 0; x < w; x++)
src2[x] ^= 0xff;
copyrow (src, dst, 0, y, picasso96_state.Width);
for (x = 0; x < w; x++)
src2[x] ^= 0xff;
src2 += picasso96_state.BytesPerRow;
}
}
}
static void copyall (uae_u8 *src, uae_u8 *dst)
{
int y;
uae_u8 *dstb;
dstb = dst;
if (picasso96_state.RGBFormat == host_mode) {
int w = picasso96_state.Width * picasso_vidinfo.pixbytes;
for (y = 0; y < picasso96_state.Height; y++) {
memcpy (dst, src, w);
dst += picasso_vidinfo.rowbytes;
src += picasso96_state.BytesPerRow;
}
} else {
for (y = 0; y < picasso96_state.Height; y++)
copyrow (src, dst, 0, y, picasso96_state.Width);
}
}
static int flushpixels (void)
{
int i;
uae_u8 *src = p96ram_start + natmem_offset;
int off = picasso96_state.XYOffset - gfxmem_start;
uae_u8 *src_start = src + (off & ~gwwpagemask);
uae_u8 *src_end = src + ((off + picasso96_state.BytesPerRow * picasso96_state.Height + gwwpagesize - 1) & ~gwwpagemask);
int maxy = -1;
int miny = picasso96_state.Height - 1;
int lock = 0;
uae_u8 *dst = NULL;
long gwwcnt;
#if 0
write_log ("%dx%d %dx%d %dx%d\n", picasso96_state.Width, picasso96_state.Width,
picasso96_state.VirtualWidth, picasso96_state.VirtualHeight,
picasso_vidinfo.width, picasso_vidinfo.height);
#endif
if (!picasso_vidinfo.extra_mem || !gwwbuf || src_start >= src_end)
return 0;
if (flashscreen) {
full_refresh = 1;
}
if (full_refresh)
full_refresh = -1;
for (;;) {
int dofull;
gwwcnt = 0;
if (doskip () && p96skipmode == 1)
break;
if (full_refresh < 0) {
gwwcnt = (src_end - src_start) / gwwpagesize + 1;
full_refresh = 1;
for (i = 0; i < gwwcnt; i++)
gwwbuf[i] = src_start + i * gwwpagesize;
} else {
long ps;
gwwcnt = gwwbufsize;
//if (mman_GetWriteWatch (src_start, src_end - src_start, gwwbuf, &gwwcnt, &ps))
break;
}
if (gwwcnt == 0)
break;
dofull = gwwcnt >= ((src_end - src_start) / gwwpagesize) * 80 / 100;
dst = gfx_lock_picasso ();
if (dst == NULL)
break;
lock = 1;
dst += picasso_vidinfo.offset;
if (doskip () && p96skipmode == 2)
break;
if (dofull) {
if (flashscreen != 0)
copyallinvert (src + off, dst);
else
copyall (src + off, dst);
miny = 0;
maxy = picasso96_state.Height;
break;
}
for (i = 0; i < gwwcnt; i++) {
uae_u8 *p = (uae_u8*)gwwbuf[i];
if (p >= src_start && p < src_end) {
int y, x, realoffset;
if (p >= src + off) {
realoffset = p - (src + off);
} else {
realoffset = 0;
}
y = realoffset / picasso96_state.BytesPerRow;
if (y < picasso96_state.Height) {
int w = gwwpagesize / picasso96_state.BytesPerPixel;
x = (realoffset % picasso96_state.BytesPerRow) / picasso96_state.BytesPerPixel;
if (x < picasso96_state.Width)
copyrow (src + off, dst, x, y, picasso96_state.Width - x);
w = (gwwpagesize - (picasso96_state.BytesPerRow - x * picasso96_state.BytesPerPixel)) / picasso96_state.BytesPerPixel;
if (y < miny)
miny = y;
y++;
while (y < picasso96_state.Height && w > 0) {
int maxw = w > picasso96_state.Width ? picasso96_state.Width : w;
copyrow (src + off, dst, 0, y, maxw);
w -= maxw;
y++;
}
if (y > maxy)
maxy = y;
}
}
}
break;
}
if (!currprefs.gfx_api && (currprefs.leds_on_screen & STATUSLINE_RTG)) {
if (dst == NULL) {
dst = gfx_lock_picasso ();
lock = 1;
}
if (dst) {
statusline (dst);
maxy = picasso_vidinfo.height;
if (miny > picasso_vidinfo.height - TD_TOTAL_HEIGHT)
miny = picasso_vidinfo.height - TD_TOTAL_HEIGHT;
}
}
if (maxy >= 0) {
if (doskip () && p96skipmode == 4) {
;
} else {
DX_Invalidate (0, miny, picasso96_state.Width, maxy - miny);
}
}
if (lock)
gfx_unlock_picasso ();
if (dst && gwwcnt) {
if (doskip () && p96skipmode == 3) {
;
} else {
;//mman_ResetWatch (src_start, src_end - src_start);
}
full_refresh = 0;
}
return lock;
}
static uae_u32 REGPARAM2 gfxmem_lgetx (uaecptr addr) static uae_u32 REGPARAM2 gfxmem_lgetx (uaecptr addr)
{ {
uae_u32 *m; uae_u32 *m;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment