Package: xmess-sdl
Version: 0.106-2
Severity: normal
Tags: patch
The graphical output of the Sega Genesis emulator is wrong on big endian
architectures. Every pair of 4 vertical scanlines which should display
as |1234| are displayed as |3412|. The problem is that genesis_vdp_vram
is filled with 16-bit values but is passed to decodechar and decodegfx
as 8-bit values without compensating for the fact that big-endian
systems will have each pair of 8-bit values swapped.
The fix that I implemented for this is to conditionally change the
gfx_layout to reflect this difference. This fix works for me on powerpc
and does not affect anything on my i386 boxen. I hope you find it
acceptable.
Cheers,
Kevin
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 2.6.24-kevinoid (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages xmess-sdl depends on:
ii libc6 2.7-6 GNU C Library: Shared libraries
ii libexpat1 1.95.8-4 XML parsing C library - runtime li
ii liblircclient0 0.8.0-13 infra-red remote control support -
ii libsdl1.2debian 1.2.13-2 Simple DirectMedia Layer
ii xmess-common 0.106-2 Support files for the Multi Emulat
ii zlib1g 1:1.2.3.3.dfsg-11 compression library - runtime
xmess-sdl recommends no packages.
-- no debconf information
--- xmame-0.106/mess/machine/genesis.c.orig 2008-03-01 13:20:44.000000000
-0700
+++ xmame-0.106/mess/machine/genesis.c 2008-03-01 13:17:30.000000000 -0700
@@ -77,7 +77,11 @@
0x800,
4,
{ 0, 1, 2, 3 },
+#ifdef LSB_FIRST
{ 2*4, 3*4, 0*4, 1*4, 6*4, 7*4, 4*4, 5*4 },
+#else
+ { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
+#endif
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
8*8*4
};