sschuberth / foo-cdartdisplay

A foobar2000 component for use with CD Art Display.
GNU Lesser General Public License v2.1
0 stars 0 forks source link

No AMD AthlonXP or Celeron support for version 3.0 anymore? #5

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. PC with AMD Athlon or Celeron processor
2. Install the new plugin
3.

What is the expected output? What do you see instead?
The plugin should be loaded, but foobar gives this error message:

Failed to load DLL: foo_cdartdisplay.dll
Reason: Unzulässiger Zugriff auf einen Speicherbereich.  

What version of the product are you using? On what operating system?
- foo_cdartdisplay-3.0-release-144
- foobar2000 v1.1 or 1.1.7 (tried both)
- CD Art Display 3.0 Beta Build 1472
- WinXP SP3
- Athlon or Celeron processor

Please provide any additional information below.
I changed from CAD2 to CAD3, because the new version supports ID3v2.4 tags with 
CD art. So I needed the new foo_cdartdisplay plugin, too. But the new version 
isn't loaded due to invalid memory access. I tried it on 2 Athlon and 1 Celeron 
PCs with the same result and error message. On a 4th PC with Pentium4 processor 
everything worked well.
Then I installed the foo_winamp_spam plugin instead of foo_cdartdisplay on a PC 
with Athlon processor, CAD3 and foobar2000 1.1.7.. This setup is functional. 
Therefore, I conclude that foobar and CAD are installed correctly and only the 
foo_cdartdisplay plugin causes the problem.
Is there a chance to get a fixed version even for this old equipment? I would 
prefer to use foo_cdartdisplay instead of foo_winamp_spam.

Original issue reported on code.google.com by a.b.c....@online.de on 30 Jun 2011 at 7:52

GoogleCodeExporter commented 9 years ago
Could you try which is the last version that works for you? Any of the 
foo_cdartdisplay version 2 plugins should also work with CAD 3, so there's not 
need to downgrade CAD when trying the older plugin versions.

Original comment by sschuberth on 3 Jul 2011 at 12:20

GoogleCodeExporter commented 9 years ago
sschuberth, thank you for your fast response!

I haven't tried every combination. Just on one Athlon-PC with the actual 
versions of foobar (1.1.7) and CAD (3.0 Beta Build 1472). These are the results:

1. foo_cdartdisplay-3.0-release-144
   Failed to load DLL

2. foo_cdartdisplay-2.0.1-release-100
   It seems that foorbar starts as normally. Then it tries to start CAD and crashes.
   The Crash-Report-Window opens.
   This behavior was the reason for me to look for an update for foo_cdartdisplay.

3. foo_cdartdisplay-2.0.1-release-86
   With this version of foo_cdartdisplay foorbar is functional and interacts with CAD.

In the meantime I looked through the History of Change and noticed, that the 
newer versions need SSE2 support. I would presume that this is the reason why 
the newer versions don't do on an AthlonXP.
But on the other hand, the combination of foobar 1.1.7, CAD 2.0.1 and 
foo_cdartdisplay-2.0.1-release-100 works just fine on my Athlon.
So I'm little bit confused. But I'm glad that build 86 works. Do I miss 
anything with this old version? Will there be an update with Athlon support?

Original comment by a.b.c....@online.de on 3 Jul 2011 at 7:40

GoogleCodeExporter commented 9 years ago
Would you mind trying the attached debug build with a preliminary fix?

Original comment by sschuberth on 3 Jul 2011 at 8:44

Attachments:

GoogleCodeExporter commented 9 years ago
Hallo sschubert,

I never thought to get an answer that fast.

Unfortunately, the fix didn't work. foobar and CAD both load (this is an 
improvement), but when I start to play a song it crashes. Here is part of the 
crash report, maybe it helps you:

Illegal operation:
Code: C0000005h, flags: 00000000h, address: 0221514Ah
Access violation, operation: read, address: 00000000h

Call path:
entry=>app_mainloop

Code bytes (0221514Ah):
0221510Ah:  83 7D F8 06 72 04 33 C0 EB 08 EB CB 8B 45 F8 83
0221511Ah:  C0 01 8B E5 5D C3 55 8B EC 83 EC 14 B8 CC CC CC
0221512Ah:  CC 89 45 EC 89 45 F0 89 45 F4 89 45 F8 89 45 FC
0221513Ah:  8B 45 08 89 45 FC C7 45 F8 06 00 00 00 8B 4D FC
0221514Ah:  0F B6 11 81 FA 80 00 00 00 7D 1D 8B 45 FC 0F B6
0221515Ah:  08 8B 55 0C 89 0A 8B 45 FC 0F B6 08 33 C0 85 C9
0221516Ah:  0F 9F C0 E9 1E 01 00 00 8B 55 0C C7 02 00 00 00
0221517Ah:  00 C7 45 F4 00 00 00 00 C7 45 EC 00 00 00 00 8B

Stack (0012A5FCh):
0012A5DCh:  E225A8E0 9A55D4C8 9A55D4C0 00000008
0012A5ECh:  00000000 00000001 00000001 9A55D6EC
0012A5FCh:  CCCCCCCC CCCCCCCC CCCCCCCC 00000006
0012A60Ch:  00000000 0012A634 02215BC4 00000000
0012A61Ch:  0012A62C 00000000 CCCCCCCC CCCCCCCC
0012A62Ch:  CCCCCCCC CCCCCCCC 0012D000 021B9AD7
0012A63Ch:  00000000 FFFFFFFF B9783A99 0012D068
0012A64Ch:  021AB99C 00000000 CCCCCCCC CCCCCCCC
0012A65Ch:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A66Ch:  CCCCCCCC 02A12900 CCCCCCCC CCCCCCCC
0012A67Ch:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A68Ch:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A69Ch:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6ACh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6BCh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6CCh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6DCh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6ECh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A6FCh:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC
0012A70Ch:  CCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCC

Registers:
EAX: 00000000, EBX: 00000000, ECX: 00000000, EDX: 00000015
ESI: 0012A644, EDI: 0012CFF4, EBP: 0012A610, ESP: 0012A5FC

Crash location:
Module: foo_cdartdisplay
Offset: D514Ah

Original comment by a.b.c....@online.de on 3 Jul 2011 at 9:01

GoogleCodeExporter commented 9 years ago
As I assume you do not have Visual Studio installed, would you mind following 
basically these steps (the guide is from the SmartFTP application, but should 
work here, too):

http://www.smartftp.com/support/kb/how-to-collect-crash-reports-f2594.html

When done, please make the .dmp files available for download somewhere. Thanks!

Original comment by sschuberth on 6 Jul 2011 at 2:27

GoogleCodeExporter commented 9 years ago
The OP confirmed the bug to be fixed in a private debug build. The issue was 
actually twofold: There was a check in the component for SSE2 instructions, but 
the compiler already used SSE2 instructions before that check. Secondly, there 
was a NULL pointer check missing the lyrics code.

Original comment by sschuberth on 9 Jul 2011 at 10:22