# ChangeLog for app-emulation/e-uae
# Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/ChangeLog,v 1.9 2006/06/14 14:17:05 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/ChangeLog,v 1.10 2006/06/14 17:08:23 pva Exp $
+
+*e-uae-0.8.28-r1 (14 Jun 2006)
+
+ 14 Jun 2006; Peter Volkov <pva@gentoo.org>
+ +files/e-uae-0.8.28-fix-JIT-cache-on-NX-cpu.patch,
+ +files/e-uae-0.8.28-fix-atoscroll-screen-support.patch,
+ +files/e-uae-0.8.28-fix-joystick-conflicts.patch, +e-uae-0.8.28-r1.ebuild:
+ A bunch of fixes suggested by upstream developer Richard Drummond!
14 Jun 2006; Peter Volkov <pva@gentoo.org>
+files/e-uae-0.8.28-shm-crash.patch, e-uae-0.8.28.ebuild:
-MD5 9464ea4152adbbdd977cf85960bb365d ChangeLog 1463
+MD5 1ba5d65b48cb6fa4c5d849436e0c49ab ChangeLog 1799
MD5 624de9bf2b723d7882a4a8e2485f71ef e-uae-0.8.27.ebuild 1635
+MD5 d9c2dd5174bb239ea1bf58e729b8c0db e-uae-0.8.28-r1.ebuild 3595
MD5 1a85d3c4ef89e6d13eacb5f5a9f0b15d e-uae-0.8.28.ebuild 3431
MD5 851c3d9c0e2846a1241c99e5ff19bf01 files/digest-e-uae-0.8.27 66
MD5 856093362e575805efb4ef8117d8f98c files/digest-e-uae-0.8.28 66
+MD5 856093362e575805efb4ef8117d8f98c files/digest-e-uae-0.8.28-r1 66
+MD5 781bdea3cdebd0d2b11de41508613ab5 files/e-uae-0.8.28-fix-JIT-cache-on-NX-cpu.patch 660
+MD5 9f2bf139b66d3a4c3e6c8405c428ae60 files/e-uae-0.8.28-fix-atoscroll-screen-support.patch 3178
+MD5 66a07fc56b355aa2bb8ce779b66e17d7 files/e-uae-0.8.28-fix-joystick-conflicts.patch 907
MD5 774c0436b6e91dd8f18b0df23f10c75b files/e-uae-0.8.28-shm-crash.patch 582
MD5 107be5d8d010a6b3dac228473128bdf4 metadata.xml 468
--- /dev/null
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-emulation/e-uae/e-uae-0.8.28-r1.ebuild,v 1.1 2006/06/14 17:08:23 pva Exp $
+
+inherit eutils flag-o-matic
+
+DESCRIPTION="The Eggplant Umiquious Amiga Emulator"
+HOMEPAGE="http://www.rcdrummond.net/uae/"
+SRC_URI="http://www.rcdrummond.net/uae/${P}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="X dga ncurses sdl gtk alsa oss sdl-sound capslib"
+
+# Note: opposed to ./configure --help zlib support required! Check
+# src/Makefile.am that includes zfile.c unconditionaly.
+RDEPEND="X? ( || ( ( x11-libs/libXt
+ x11-libs/libxkbfile
+ x11-libs/libXext
+ dga? ( x11-libs/libXxf86dga
+ x11-libs/libXxf86vm )
+ )
+ virtual/x11
+ )
+ )
+ !X? ( sdl? ( media-libs/libsdl )
+ !sdl? ( sys-libs/ncurses ) )
+ alsa? ( media-libs/alsa-lib )
+ !alsa? ( sdl-sound? ( media-libs/sdl-sound ) )
+ gtk? ( >=x11-libs/gtk+-2.0 )
+ capslib? ( games-emulation/caps )
+ sys-libs/zlib
+ app-cdr/cdrtools"
+
+DEPEND="$RDEPEND
+ X? ( dga? ( x11-proto/xf86vidmodeproto
+ x11-proto/xf86dgaproto ) )"
+
+pkg_setup() {
+ # Sound setup.
+ if use alsa; then
+ einfo "Choosing alsa as sound target to use."
+ myconf="--with-alsa --without-sdl-sound"
+ elif use sdl-sound ; then
+ if ! use sdl ; then
+ ewarn "sdl-sound is not enabled because sdl is switched off. Leaving"
+ ewarn "sound on oss autodetection."
+ myconf="--without-alsa --without-sdl-sound"
+ ebeep
+ else
+ einfo "Choosing sdl-sound as sound target to use."
+ myconf="--without-alsa --with-sdl-sound"
+ fi
+ elif use oss ; then
+ einfo "Choosing oss as sound target to use."
+ ewarn "oss will be autodetected. See output of configure."
+ myconf="--without-alsa --without-sdl-sound"
+ else
+ ewarn "There is no alsa, sdl-sound or oss in USE. Sound target disabled!"
+ myconf="--disable-audio"
+ fi
+
+ # VIDEO setup. X is autodetected (there is no --with-X option).
+ if use X ; then
+ myconf="$myconf --without-curses --without-sdl-gfx"
+ use dga && myconf="$myconf --enable-dga --enable-vidmode"
+ elif use sdl ; then
+ myconf="$myconf --with-sdl --with-sdl-gfx --without-curses"
+ elif use ncurses; then
+ myconf="$myconf --with-curses --without-sdl-gfx"
+ else
+ ewarn "There is no X or sdl or ncurses in USE!"
+ ewarn "Following upstream falling back on ncurses."
+ myconf="$myconf --with-curses --without-sdl-gfx"
+ ebeep
+ fi
+
+ use gtk && myconf="$myconf --enable-ui --enable-threads"
+ use gtk || myconf="$myconf --disable-ui"
+
+ use capslib && myconf="$myconf --with-caps"
+
+ myconf="$myconf --with-zlib"
+
+ # And explicitly state defaults:
+ myconf="$myconf --enable-aga"
+ myconf="$myconf --enable-autoconfig --enable-scsi-device --enable-cdtv --enable-cd32"
+ myconf="$myconf --enable-bsdsock"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/${P}-shm-crash.patch
+ epatch ${FILESDIR}/${P}-fix-joystick-conflicts.patch
+ epatch ${FILESDIR}/${P}-fix-atoscroll-screen-support.patch
+ epatch ${FILESDIR}/${P}-fix-JIT-cache-on-NX-cpu.patch
+}
+
+src_compile() {
+ strip-flags
+
+ econf ${myconf} \
+ --with-libscg-includedir=/usr/include/scsilib \
+ || die "./configure failed"
+
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die "make install failed"
+
+ insinto /usr/share/uae/amiga-tools
+ doins amiga/{*hack,trans*,uae*,*.library}
+
+ # Rename it to e-uae
+ mv ${D}/usr/bin/uae ${D}/usr/bin/e-uae
+ mv ${D}/usr/bin/readdisk ${D}/usr/bin/e-readdisk
+ mv ${D}/usr/share/uae ${D}/usr/share/${PN}
+
+ dodoc docs/* README ChangeLog CHANGES
+}
--- /dev/null
+MD5 9fc186f9256d04f940304044e29175ef e-uae-0.8.28.tar.bz2 1148790
--- /dev/null
+diff -Naur e-uae-0.8.28.orig/src/od-generic/memory.c e-uae-0.8.28/src/od-generic/memory.c
+--- e-uae-0.8.28.orig/src/od-generic/memory.c 2005-01-07 05:25:04.000000000 +0300
++++ e-uae-0.8.28/src/od-generic/memory.c 2006-06-14 20:55:33.000000000 +0400
+@@ -14,6 +14,9 @@
+ #ifdef JIT
+
+ #include <sys/mman.h>
++#include <malloc.h>
++#include <stdlib.h>
++#include <unistd.h>
+
+ /*
+ * Allocate executable memory for JIT cache
+@@ -22,7 +25,9 @@
+ {
+ void *cache;
+
+- if ((cache = malloc (size)))
++ size = size < getpagesize() ? getpagesize() : size;
++
++ if ((cache = valloc (size)))
+ mprotect (cache, size, PROT_READ|PROT_WRITE|PROT_EXEC);
+
+ return cache;
--- /dev/null
+diff -Naur e-uae-0.8.28.orig/src/picasso96.c e-uae-0.8.28/src/picasso96.c
+--- e-uae-0.8.28.orig/src/picasso96.c 2005-09-01 22:17:22.000000000 +0400
++++ e-uae-0.8.28/src/picasso96.c 2006-06-14 20:53:06.000000000 +0400
+@@ -5,7 +5,7 @@
+ *
+ * Copyright 1997-2001 Brian King <Brian_King@Mitel.com, Brian_King@Cloanto.com>
+ * Copyright 2000-2001 Bernd Roesch
+- * Copyright 2003-2004 Richard Drummond
++ * Copyright 2003-2005 Richard Drummond
+ *
+ * Theory of operation:
+ * On the Amiga side, a Picasso card consists mainly of a memory area that
+@@ -27,7 +27,6 @@
+ * accesses which may be rather slow.
+ *
+ * TODO:
+- * - add panning capability
+ * - we want to add a manual switch to override SetSwitch for hardware banging
+ * programs started from a Picasso workbench.
+ */
+@@ -615,7 +614,7 @@
+ * coordinates for the source rectangle in the framebuffer - not the source
+ * coordinates.
+ */
+- srcp = ri->Memory + dstx * Bpp + dsty * ri->BytesPerRow;
++ srcp = ri->Memory + (dstx + xoff) * Bpp + (dsty + yoff) * ri->BytesPerRow;
+
+ dstp += dsty * picasso_vidinfo.rowbytes + dstx * picasso_vidinfo.pixbytes;
+
+@@ -625,7 +624,6 @@
+ width,height, picasso_vidinfo.pixbytes));
+ P96TRACE (("P96: gfxmem is at 0x%x\n", gfxmemory));
+
+- DX_Invalidate (dsty, dsty + height - 1);
+
+
+
+@@ -771,11 +769,11 @@
+
+ static void flush_currline (void)
+ {
+- unsigned int line_no = (unsigned int)(currline_y - picasso96_state.YOffset);
++ int line_no = currline_y - picasso96_state.YOffset;
+
+- /* We only need to flush this line to the screen if the line
+- * is acutally visible on screen */
+- if (/*line_no >= 0 && */line_no < picasso96_state.Height) {
++ /* We only need to flush this line to the screen if the line
++ * is acutally visible on screen */
++ if (line_no >= 0 && line_no < picasso96_state.Height) {
+
+ /* Tell the graphics system that this line needs to be
+ * redrawn */
+@@ -795,10 +793,11 @@
+ srcp += first_byte;
+ first_byte = 0;
+ }
+- if (first_byte + byte_count > picasso96_state.Width * fb_bpp)
++ if ((first_byte + byte_count) > (picasso96_state.Width * fb_bpp))
+ byte_count = picasso96_state.Width * fb_bpp - first_byte;
+
+- write_currline (srcp, line_no, first_byte, byte_count);
++ if (byte_count > 0)
++ write_currline (srcp, line_no, first_byte, byte_count);
+ }
+ }
+ currline_start = 0xFFFFFFFF;
+@@ -1548,6 +1547,8 @@
+ picasso96_state.YOffset = (uae_s16) m68k_dreg (®s, 2);
+ picasso96_state.RGBFormat = m68k_dreg (®s, 7);
+
++ wgfx_flushline();
++
+ /* Get our BoardInfo ptr's BitMapExtra ptr */
+ bmeptr = get_long (bi + PSSO_BoardInfo_BitMapExtra);
+
+@@ -2830,7 +2831,7 @@
+
+ /* If this line is outside of the p96 screen in the framebuffer
+ * we ignore it */
+- if (line_no < picasso96_state.VirtualHeight) {
++ if ((line_no >= picasso96_state.YOffset) && (line_no < picasso96_state.YOffset + picasso96_state.Height)) {
+ currline_start = picasso96_state.Address + line_no * picasso96_state.BytesPerRow;
+ currline_end = currline_start + picasso96_state.BytesPerRow;
+ currline_min = addr;
--- /dev/null
+diff -Naur e-uae-0.8.28.orig/src/jd-linuxold/joystick.c e-uae-0.8.28/src/jd-linuxold/joystick.c
+--- e-uae-0.8.28.orig/src/jd-linuxold/joystick.c 2005-08-21 19:02:09.000000000 +0400
++++ e-uae-0.8.28/src/jd-linuxold/joystick.c 2006-06-14 20:54:30.000000000 +0400
+@@ -8,7 +8,7 @@
+ *
+ * Copyright 1997 Bernd Schmidt
+ * Copyright 1998 Krister Walfridsson
+- * Copyright 2003-2005 Richard Drummond
++ * Copyright 2003-2006 Richard Drummond
+ * Copyright 2004 Nick Seow (Alternative Linux joystick device path)
+ */
+
+@@ -75,8 +75,10 @@
+ int fd = nr == 0 ? js0 : js1;
+ struct joy_range *r = nr == 0 ? &range0 : &range1;
+
+- if (nr >= nr_joysticks)
+- return;
++ if (currprefs.input_selected_setting == 0) {
++ if (jsem_isjoy (0, &currprefs) != (int)nr && jsem_isjoy (1, &currprefs) != (int)nr)
++ return;
++ }
+
+ len = read(fd, &buffer, sizeof(buffer));
+ if (len != sizeof(buffer))