JOAL status

I know there have been a number of issues with JOAL on Windows, so I wanted to get a sense of how many people are still experiencing difficulty.

Before voting, please download the following tutorial bundle:

https://joal-demos.dev.java.net/devmaster/OpenAL_Tutorials_Bundle.zip

unpack the zip file, and then run the following from the command line in each folder:

ant clean run

After running the examples, select one of the options from the list above. If you vote “no” please post your platform configuration: CPU, AudioCard, OS, etc and a copy of whatever printouts you get as a result of running the test.

Thanks in advance!

It compiles but it won’t run; option 2 for me :’(

[quote]It compiles but it won’t run; option 2 for me :’(
[/quote]
Bummer. What are you running on? (CPU, sound card, OS, etc)

It works for me now. Can’t get it to not work again. =/

“Update your sound card drivers if the game crashes to desktop” isn’t the most user frienly error message one can give. :wink:

[quote]It works for me now. Can’t get it to not work again. =/

“Update your sound card drivers if the game crashes to desktop” isn’t the most user frienly error message one can give. :wink:
[/quote]
Gremlins, maybe ???

Lessons 1-3 work just fine but 5 dies. Win2k with an old aureal card so no hope of driver updats.


ALFactory.init - Native: Enter
ALFactory.init - Native: Exit
     [java] Using device null
     [java] Pointer = 408624144
     [java] ALC = net.java.games.joal.ALCImpl@3c0007
     [java] Could not initialize


"Thread-0" prio=5 tid=0x009c8a80 nid=0xdc in Object.wait() [1943f000..1943fd90]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x100a01d0> (a net.java.games.joal.ALCImpl$Mutex)
        at java.lang.Object.wait(Object.java:429)
        at net.java.games.joal.ALCImpl$Mutex.acquire(ALCImpl.java:206)
        - locked <0x100a01d0> (a net.java.games.joal.ALCImpl$Mutex)
        at net.java.games.joal.ALCImpl.alcMakeContextCurrent(ALCImpl.java:82)
        at net.java.games.joal.ALCImpl.exit(ALCImpl.java:194)
        at net.java.games.joal.ALCImpl.access$100(ALCImpl.java:38)
        at net.java.games.joal.ALCImpl$1.run(ALCImpl.java:46)
        at java.lang.Thread.run(Thread.java:534)

Actually, this is a completely new one, and probably a bug in the context (thread) management code, as opposed to OpenAL initialization, which is the issue we’ve been seeing up till now. The bad news is updating your drivers isn’t likely to fix anything even if you could update them. The good news is, the problem appears to be in a very specific piece of code which we have control over, so with luck it will be an easy fix.

EDIT: Could you make sure to report this to issuezilla? Give as much info as you can on platform, hardware, configuration, etc along with any printouts or stack traces you may have. Thanks.

https://joal.dev.java.net/servlets/ProjectIssues

Issuetracker won’t let me file a new bug. It tells me that I am not logged in even though I do log in repeatedly. So maybe you can file the bug. The two bits of code I posted I got from using the thread dump mechanism(ctrl-brk) not from an actual jvm crash. It just hangs there after “could not initialise.”

win2k
dual p2’s
aureal 8830
1.4.2_02
joal @ 11/22/03

Thanks, will do. And will look into this shortly.

Worked without any problems!

Windows XP Prof, Nvidia Soundstorm (nforce2 on Asus A7N8X)

[quote]Worked without any problems!

Windows XP Prof, Nvidia Soundstorm (nforce2 on Asus A7N8X)
[/quote]
So cast your vote!

“No, it runs, but it doesn’t sound right.”
I’m running OSX on a G4. (not sure where I can find what my sound card is) I’m using the latest OSX build.
The program runs perfectly, but the sound played back is only static with certain wav files.
lesson1/wavdata/FancyPants.wav plays clearly.
lesson2/wavdata/Footsteps.wav plays static. Footsteps.wav is not corrupted because I can play it in other programs.

[quote]“No, it runs, but it doesn’t sound right.”
I’m running OSX on a G4. (not sure where I can find what my sound card is) I’m using the latest OSX build.
The program runs perfectly, but the sound played back is only static with certain wav files.
lesson1/wavdata/FancyPants.wav plays clearly.
lesson2/wavdata/Footsteps.wav plays static. Footsteps.wav is not corrupted because I can play it in other programs.
[/quote]
Hmmm… Very strange. Let me check to see if greg pierce (he did the port to OSX) is getting similar results with the footsteps. I’ll go back and take a look at the demo that uses footsteps and see if there’s any obvious culprits.

Won’t work on my nForce2 built in sound device and my other Hercules Fortissimo II

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x77F580C9
Function=RtlAllocateHeap+0x51B
Library=C:\WINDOWS\System32\ntdll.dll

Current Java thread:
      at net.java.games.joal.ALCImpl.openDeviceNative(Native Method)
      at net.java.games.joal.ALCImpl.alcOpenDevice(ALCImpl.java:53)
      at net.java.games.joal.util.ALut.alutInit(ALut.java:75)
      at SingleStaticSource.main(SingleStaticSource.java:133)

Dynamic libraries:
0x00400000 - 0x00406000       F:\JDK\bin\java.exe
0x77F50000 - 0x77FF7000       C:\WINDOWS\System32\ntdll.dll
0x77E60000 - 0x77F46000       C:\WINDOWS\system32\kernel32.dll
0x77DD0000 - 0x77E5D000       C:\WINDOWS\system32\ADVAPI32.dll
0x78000000 - 0x78086000       C:\WINDOWS\system32\RPCRT4.dll
0x77C10000 - 0x77C63000       C:\WINDOWS\system32\MSVCRT.dll
0x08000000 - 0x08138000       F:\JDK\jre\bin\client\jvm.dll
0x77D40000 - 0x77DCC000       C:\WINDOWS\system32\USER32.dll
0x77C70000 - 0x77CB0000       C:\WINDOWS\system32\GDI32.dll
0x76B40000 - 0x76B6C000       C:\WINDOWS\System32\WINMM.dll
0x10000000 - 0x10007000       F:\JDK\jre\bin\hpi.dll
0x00390000 - 0x0039E000       F:\JDK\jre\bin\verify.dll
0x003A0000 - 0x003B9000       F:\JDK\jre\bin\java.dll
0x003C0000 - 0x003CD000       F:\JDK\jre\bin\zip.dll
0x003F0000 - 0x003FF000       F:\JDK\jre\bin\joal.dll
0x02E80000 - 0x02E88000       C:\WINDOWS\System32\OpenAL32.dll
0x72D20000 - 0x72D29000       C:\WINDOWS\System32\wdmaud.drv
0x72D10000 - 0x72D18000       C:\WINDOWS\System32\msacm32.drv
0x77BE0000 - 0x77BF4000       C:\WINDOWS\System32\MSACM32.dll
0x77BD0000 - 0x77BD7000       C:\WINDOWS\System32\midimap.dll
0x76670000 - 0x76757000       C:\WINDOWS\System32\setupapi.dll
0x76C90000 - 0x76CB2000       C:\WINDOWS\system32\imagehlp.dll
0x6D510000 - 0x6D58D000       C:\WINDOWS\system32\DBGHELP.dll
0x77C00000 - 0x77C07000       C:\WINDOWS\system32\VERSION.dll
0x76BF0000 - 0x76BFB000       C:\WINDOWS\System32\PSAPI.DLL

Heap at VM Abort:
Heap
 def new generation   total 576K, used 327K [0x10010000, 0x100b0000, 0x104f0000)
  eden space 512K,  63% used [0x10010000, 0x10061d70, 0x10090000)
  from space 64K,   0% used [0x10090000, 0x10090000, 0x100a0000)
  to   space 64K,   0% used [0x100a0000, 0x100a0000, 0x100b0000)
 tenured generation   total 1408K, used 0K [0x104f0000, 0x10650000, 0x14010000)
   the space 1408K,   0% used [0x104f0000, 0x104f0000, 0x104f0200, 0x10650000)
 compacting perm gen  total 4096K, used 1151K [0x14010000, 0x14410000, 0x18010000)
   the space 4096K,  28% used [0x14010000, 0x1412fda0, 0x1412fe00, 0x14410000)

Local Time = Mon Dec 08 02:00:16 2003
Elapsed Time = 0
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_02-b03 mixed mode)
#

:sad panda:

Hey chaps, if anyone (on Windows) is having trouble with JOAL would you mind grabbing Alien Flux and seeing if that works? That’ll basically put any driver worries to rest for Athomas and he will be able to tell if it’s just in the JOAL code.

Cas :slight_smile:

I tried it yesterday on my Redhat 9.0 Athlon box, with J2SE 1.4.2_02, SB Live (emu10k driver), and openAL from CVS:

Lesson 1 to 3 ran, after some Linux specific tweaking of the build
files and sources: You need to set java.library.path via a jvmarg tag and the keyboard input loop in Lesson 1 does not work with Linux. Propably some issues with buffered stdin stream, I havn’t investigated but simply hardcoded the al* functions calls seperated by Thread.sleep().

Lesson 5 hangs in after failed ALC initialization. Same thing GKW sees.

Similar error as mentioned above by JCD:

[java] Go TEAM!
[java] Entering alutInit()
[java] In alutInit(): Device Name = null

[java] An unexpected exception has been detected in native code outside the VM.
[java] Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x0
[java] Function=[Unknown.]
[java] Library=(N/A)

[java] NOTE: We are unable to locate the function name symbol for the error
[java] just occurred. Please refer to release documentation for possible
[java] reason and solutions.

[java] Current Java thread:
[java] at net.java.games.joal.ALCImpl.openDeviceNative(Native Method)
[java] at net.java.games.joal.ALCImpl.alcOpenDevice(ALCImpl.java:53)
[java] at net.java.games.joal.util.ALut.alutInit(ALut.java:75)
[java] at LoopingAndFadeaway.main(Unknown Source)

[java] Dynamic libraries:
[java] 0x00400000 - 0x00406000 C:\jdk\j2sdk1.4.2_01\jre\bin\java.exe
[java] 0x77F50000 - 0x77FF7000 C:\WINDOWS\System32\ntdll.dll
[java] 0x77E60000 - 0x77F46000 C:\WINDOWS\system32\kernel32.dll
[java] 0x77DD0000 - 0x77E5D000 C:\WINDOWS\system32\ADVAPI32.dll
[java] 0x78000000 - 0x78086000 C:\WINDOWS\system32\RPCRT4.dll
[java] 0x77C10000 - 0x77C63000 C:\WINDOWS\system32\MSVCRT.dll
[java] 0x08000000 - 0x08136000 C:\jdk\j2sdk1.4.2_01\jre\bin\client\jvm.dll
[java] 0x77D40000 - 0x77DCC000 C:\WINDOWS\system32\USER32.dll
[java] 0x77C70000 - 0x77CB0000 C:\WINDOWS\system32\GDI32.dll
[java] 0x76B40000 - 0x76B6C000 C:\WINDOWS\System32\WINMM.dll
[java] 0x10000000 - 0x10007000 C:\jdk\j2sdk1.4.2_01\jre\bin\hpi.dll
[java] 0x00390000 - 0x0039E000 C:\jdk\j2sdk1.4.2_01\jre\bin\verify.dll
[java] 0x003A0000 - 0x003B8000 C:\jdk\j2sdk1.4.2_01\jre\bin\java.dll
[java] 0x003C0000 - 0x003CD000 C:\jdk\j2sdk1.4.2_01\jre\bin\zip.dll
[java] 0x003F0000 - 0x003FF000 E:\temp\gldemos\joal\test\lesson2\joal.dll
[java] 0x02C80000 - 0x02C94000 C:\WINDOWS\System32\OpenAL32.dll
[java] 0x72D20000 - 0x72D29000 C:\WINDOWS\System32\wdmaud.drv
[java] 0x72D10000 - 0x72D18000 C:\WINDOWS\System32\msacm32.drv
[java] 0x77BE0000 - 0x77BF4000 C:\WINDOWS\System32\MSACM32.dll
[java] 0x77BD0000 - 0x77BD7000 C:\WINDOWS\System32\midimap.dll
[java] 0x76C90000 - 0x76CB2000 C:\WINDOWS\system32\imagehlp.dll
[java] 0x6D510000 - 0x6D58D000 C:\WINDOWS\system32\DBGHELP.dll
[java] 0x77C00000 - 0x77C07000 C:\WINDOWS\system32\VERSION.dll
[java] 0x76BF0000 - 0x76BFB000 C:\WINDOWS\System32\PSAPI.DLL

[java] Heap at VM Abort:
[java] Heap
[java] def new generation total 576K, used 270K [0x10010000, 0x100b0000, 0x104f0000)
[java] eden space 512K, 52% used [0x10010000, 0x100539d0, 0x10090000)
[java] from space 64K, 0% used [0x10090000, 0x10090000, 0x100a0000)
[java] to space 64K, 0% used [0x100a0000, 0x100a0000, 0x100b0000)
[java] tenured generation total 1408K, used 0K [0x104f0000, 0x10650000, 0x14010000)
[java] the space 1408K, 0% used [0x104f0000, 0x104f0000, 0x104f0200, 0x10650000)
[java] compacting perm gen total 4096K, used 1127K [0x14010000, 0x14410000, 0x18010000)
[java] the space 4096K, 27% used [0x14010000, 0x14129da0, 0x14129e00, 0x14410000)

[java] Local Time = Mon Dec 08 16:49:42 2003
[java] Elapsed Time = 0
[java] #
[java] # The exception above was detected in native code outside the VM
[java] #
[java] # Java VM: Java HotSpot™ Client VM (1.4.2_01-b06 mixed mode)
[java] #
[java] # An error report file has been saved as hs_err_pid3772.log.
[java] # Please refer to the file for further information.
[java] #
[java] ALFactory.init - Native: Enter
[java] ALFactory.init - Native: Exit
[java] Java Result: 1

System is laptop, winXP with a crystal soundcard.

AlienFlux does work.
Also, an earlier version I got (.dll and jar dated 18 nov. ) works fine. That version started working after updating the openAL drivers from openAL.org.
Running with the older version (not using ant) gives me the following output :

Entering alutInit()
In alutInit(): Device Name = null
Entering alcOpenDevice()
Entering openDeviceNative()
In openDeviceNative() test 1
In openDeviceNative() test 2b – NULL - 46800720
In openDeviceNative() test 3
Exiting openDeviceNative()
In alcOpenDevice: Device Pointer = 46800720
Exiting alcOpenDevice()
In alutInit(): Device = net.java.games.joal.ALC$Device@2ca1f50
Exiting alutInit()
Press a key and hit ENTER:
‘p’ to play, ‘s’ to stop, ‘h’ to pause and ‘q’ to quit
p
Press a key and hit ENTER:
‘p’ to play, ‘s’ to stop, ‘h’ to pause and ‘q’ to quit
q

Hope you get it to work perfectly!

Linux Results (Gentoo 2.4.23-pre8-gss, ALSA, EsD available)
Nvidia Soundstorm (Nforce2) on Asus A7N8X Deluxe (ALSA: snd-intel8x0)

OpenAL taken from portage: openal-20020127

Alien Flux: no probs, works!!!
JOAL (any lesson): failed to initialize - “net.java.games.joal.OpenALException: Could not load OpenAL function”

Some notes beside this:
I had to copy the native library into a java.library.path directory. Isn’t there any alternative? I remember the native library mechanism searches in the same dir as the class file first …

Can anyone comment on the state of OpenAL (not JOAL) for Linux in general?

That Alien Flux works fine for me as well.

Everything compiles fine for me, but when I try to run any examples, I get an error that crashs the program. It always happens just after the alutInit() call. Here’s a run log:

ant clean run
Buildfile: build.xml

clean:
[delete] Deleting directory C:\Documents and Settings\Spockmeat\Desktop\OpenA
L_Tutorials_Bundle\lesson1\classes

init:
[mkdir] Created dir: C:\Documents and Settings\Spockmeat\Desktop\OpenAL_Tuto
rials_Bundle\lesson1\classes

compile:
[javac] Compiling 1 source file to C:\Documents and Settings\Spockmeat\Deskt
op\OpenAL_Tutorials_Bundle\lesson1\classes

run:
ALFactory.init - Native: Enter
ALFactory.init - Native: Exit
[java] Go TEAM!
[java] Entering alutInit()
ALFactory.init - Native: Enter
ALFactory.init - Native: Exit
[java] In alutInit(): Device Name = null

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x0
Function=[Unknown.]
Library=(N/A)

NOTE: We are unable to locate the function name symbol for the error
just occurred. Please refer to release documentation for possible
reason and solutions.

Current Java thread:
at net.java.games.joal.ALCImpl.openDeviceNative(Native Method)
at net.java.games.joal.ALCImpl.alcOpenDevice(ALCImpl.java:53)
at net.java.games.joal.util.ALut.alutInit(ALut.java:75)
at SingleStaticSource.main(SingleStaticSource.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:208)
at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:15
0)
at org.apache.tools.ant.taskdefs.Java.run(Java.java:443)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:163)
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.tools.ant.Target.execute(Target.java:309)
at org.apache.tools.ant.Target.performTasks(Target.java:336)
at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
at org.apache.tools.ant.Main.runBuild(Main.java:609)
at org.apache.tools.ant.Main.start(Main.java:196)
at org.apache.tools.ant.Main.main(Main.java:235)

Dynamic libraries:
0x00400000 - 0x00406000 c:\j2sdk1.4.2_02\bin\java.exe
0x77F40000 - 0x77FFA000 C:\WINDOWS\system32\ntdll.dll
0x77E40000 - 0x77F34000 C:\WINDOWS\system32\kernel32.dll
0x77DA0000 - 0x77E30000 C:\WINDOWS\system32\ADVAPI32.dll
0x77C50000 - 0x77CF4000 C:\WINDOWS\system32\RPCRT4.dll
0x77BA0000 - 0x77BF4000 C:\WINDOWS\system32\MSVCRT.dll
0x08000000 - 0x08138000 c:\j2sdk1.4.2_02\jre\bin\client\jvm.dll
0x77D00000 - 0x77D8F000 C:\WINDOWS\system32\USER32.dll
0x77C00000 - 0x77C44000 C:\WINDOWS\system32\GDI32.dll
0x76AA0000 - 0x76ACC000 C:\WINDOWS\system32\WINMM.dll
0x10000000 - 0x10007000 c:\j2sdk1.4.2_02\jre\bin\hpi.dll
0x00380000 - 0x0038E000 c:\j2sdk1.4.2_02\jre\bin\verify.dll
0x003B0000 - 0x003C9000 c:\j2sdk1.4.2_02\jre\bin\java.dll
0x00390000 - 0x0039D000 c:\j2sdk1.4.2_02\jre\bin\zip.dll
0x03260000 - 0x0326F000 C:\Documents and Settings\Spockmeat\Desktop\Open
AL_Tutorials_Bundle\lesson1\joal.dll
0x03290000 - 0x032A4000 C:\WINDOWS\system32\OpenAL32.dll
0x72D70000 - 0x72D79000 C:\WINDOWS\system32\wdmaud.drv
0x72D60000 - 0x72D68000 C:\WINDOWS\system32\msacm32.drv
0x77B70000 - 0x77B84000 C:\WINDOWS\system32\MSACM32.dll
0x77B60000 - 0x77B67000 C:\WINDOWS\system32\midimap.dll
0x76C10000 - 0x76C38000 C:\WINDOWS\system32\imagehlp.dll
0x6D580000 - 0x6D621000 C:\WINDOWS\system32\dbghelp.dll
0x77B90000 - 0x77B98000 C:\WINDOWS\system32\VERSION.dll
0x76B70000 - 0x76B7B000 C:\WINDOWS\system32\PSAPI.DLL

Heap at VM Abort:
Heap
def new generation total 576K, used 150K [0x10010000, 0x100b0000, 0x104f0000)

eden space 512K, 20% used [0x10010000, 0x10029de0, 0x10090000)
from space 64K, 73% used [0x100a0000, 0x100abcd0, 0x100b0000)
to space 64K, 0% used [0x10090000, 0x10090000, 0x100a0000)
tenured generation total 5544K, used 4282K [0x104f0000, 0x10a5a000, 0x1401000
0)
the space 5544K, 77% used [0x104f0000, 0x1091ea28, 0x1091ec00, 0x10a5a000)
compacting perm gen total 5376K, used 5283K [0x14010000, 0x14550000, 0x1801000
0)
the space 5376K, 98% used [0x14010000, 0x14538d50, 0x14538e00, 0x14550000)

Local Time = Fri Dec 12 12:45:13 2003
Elapsed Time = 2

The exception above was detected in native code outside the VM

Java VM: Java HotSpot™ Client VM (1.4.2_02-b03 mixed mode)

An error report file has been saved as hs_err_pid2500.log.

Please refer to the file for further information.

C:\Documents and Settings\Spockmeat\Desktop\OpenAL_Tutorials_Bundle\lesson1>

[quote]Some notes beside this:
I had to copy the native library into a java.library.path directory. Isn’t there any alternative? I remember the native library mechanism searches in the same dir as the class file first …
[/quote]
The current directory will be searched, as well as OS default library locations. If you have it somewhere else you can specify de library path yourself when running java by setting the property. -Djava.library.path="…"