JEmu2 does Out Run

Chris White submitted a fully working JEmu2 driver for the classic Out Run, which also happens to be a personal favourite of mine.
It needs a quite fast PC to run at full speed (java performance still can be a problem when it comes to emulators, and Out Run is quite a bit more complex hardware than, say, Pac Man :))

The web start link: http://www.gagaplay.com/jemu2/jemu2.jnlp

Ah! Happy memories!

I even registered because of you!

Thanks!!! What a great collection, and damn I even found PaperBoy There! One of my favorite games.

Though it’s a shame no old grand prix / moto games that I used to play :(((

Woop woop thank you anyway :-*

Good Job!

By the way, none of the games I TRIED said what key are used to play it! :frowning:

Excellent!

AMD64 3000+
512MB RAM
ASUS Radeon 9600PRO
Win XP PRO
Java 6

Ran perfectly smooth.

Doesn’t work on my Intel Mac:

java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.javaws.Launcher.executeApplication(Launcher.java:1161)
	at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1108)
	at com.sun.javaws.Launcher.continueLaunch(Launcher.java:951)
	at com.sun.javaws.Launcher.handleApplicationDesc(Launcher.java:522)
	at com.sun.javaws.Launcher.handleLaunchFile(Launcher.java:218)
	at com.sun.javaws.Launcher.run(Launcher.java:165)
	at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.UnsatisfiedLinkError: /Users/markus/Library/Caches/Java/cache/javaws/http/Dwww.gagaplay.com/P80/DMjemu2/RNlwjgl_mac.jar/liblwjgl.jnilib: 
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1660)
	at java.lang.Runtime.loadLibrary0(Runtime.java:822)
	at java.lang.System.loadLibrary(System.java:992)
	at org.lwjgl.Sys$1.run(Sys.java:67)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.Sys.<clinit>(Sys.java:65)
	at jef.util.time.TimeLWJGLImpl.<init>(TimeLWJGLImpl.java:17)
	at jef.util.time.Time.init(Time.java:31)
	at jef.util.time.Time.<clinit>(Time.java:22)
	at net.movegaga.jemu2.FrontEnd.<init>(FrontEnd.java:277)
	at net.movegaga.jemu2.FrontEnd.main(FrontEnd.java:389)
	... 11 more

Other lwjgl stuff does work, though.

Sorry about that, I still haven’t got around to updating the LWJGL version supporting intel macs. :-[
I’ll see if I can do it tonight.

I’ve just upgraded to the latest LWJGL, hoping it now also works on Intel mac.
markush, could you give it another try?

It crashed when I launch Street Fighter on master system :

An unexpected error has been detected by Java Runtime Environment:

SIGSEGV (0xb) at pc=0xb3eb9550, pid=11178, tid=3026328480

Java VM: Java HotSpot™ Client VM (1.6.0_02-b05 mixed mode, sharing)

Problematic frame:

C 0xb3eb9550

If you would like to submit a bug report, please visit:

http://java.sun.com/webapps/bugreport/crash.jsp

--------------- T H R E A D ---------------

Current thread (0x0826a400): JavaThread “AWT-EventQueue-0” [_thread_in_native, id=11209]

siginfo:si_signo=11, si_errno=0, si_code=128, si_addr=0x00000000

Registers:
EAX=0x08a75319, EBX=0xb41534b8, ECX=0x08a74c78, EDX=0x00000000
ESP=0xb462044c, EBP=0xb41366d6, ESI=0x08a751b8, EDI=0x00443d09
EIP=0xb3eb9550, CR2=0x00000000, EFLAGS=0x00210212

Top of Stack: (sp=0xb462044c)
0xb462044c: b410256c 08a74c78 00000000 08a751c0
0xb462045c: 08a75318 b46205cc b46205c0 b46205b4
0xb462046c: b4620594 b4be8000 0000004c 0132189a
0xb462047c: b4150260 b46205d8 b7efb014 b46204dc
0xb462048c: b4620594 00000037 b46205cc 08502908
0xb462049c: 0852f6f8 08065690 08a74c78 0852f6f8
0xb46204ac: 00000002 08355350 00000001 00000038
0xb46204bc: 08a751b8 0132189a 0000004c 00000020

Instructions: (pc=0xb3eb9550)
0xb3eb9540: bf 09 3d 44 00 00 20 00 b9 70 ac 05 00 40 00 00
0xb3eb9550: fb 40 7f 00 20 00 20 08 79 12 bf 00 00 44 00 40

Stack: [0xb45d1000,0xb4622000), sp=0xb462044c, free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0xb3eb9550

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.lwjgl.opengl.LinuxDisplayPeerInfo.initDefaultPeerInfo(JILjava/nio/ByteBuffer;Lorg/lwjgl/opengl/PixelFormat;)V+0
j org.lwjgl.opengl.LinuxDisplayPeerInfo.(Lorg/lwjgl/opengl/PixelFormat;)V+24
j org.lwjgl.opengl.LinuxDisplay.createPeerInfo(Lorg/lwjgl/opengl/PixelFormat;)Lorg/lwjgl/opengl/PeerInfo;+6
j org.lwjgl.opengl.Display.create(Lorg/lwjgl/opengl/PixelFormat;Lorg/lwjgl/opengl/Drawable;)V+55
j org.lwjgl.opengl.Display.create(Lorg/lwjgl/opengl/PixelFormat;)V+8
j org.lwjgl.opengl.Display.create()V+13
j net.movegaga.jemu2.FrameWork.createGLWindow(III)V+554
j net.movegaga.jemu2.FrameWork.init(Ljef/machine/Emulator;Lnet/movegaga/jemu2/ControlsConfig;)V+420
j net.movegaga.jemu2.JEmu2.main([Ljava/lang/String;)V+351
j net.movegaga.jemu2.FrontEnd.actionPerformed(Ljava/awt/event/ActionEvent;)V+313
j javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j javax.swing.DefaultButtonModel.setPressed(Z)V+117
j javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
J java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V
J java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V
J java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V
J java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V
J java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V
J java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z
J java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z
J java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V
J java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V
J java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V
J java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j java.awt.EventDispatchThread.run()V+9
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x0851d800 JavaThread “Keep-Alive-Timer” daemon [_thread_blocked, id=11223]
0x08189800 JavaThread “Java Sound Event Dispatcher” daemon [_thread_blocked, id=11220]
0x082da000 JavaThread “TimerQueue” daemon [_thread_blocked, id=11212]
=>0x0826a400 JavaThread “AWT-EventQueue-0” [_thread_in_native, id=11209]
0x08369800 JavaThread “TimerQueue” daemon [_thread_blocked, id=11201]
0x08345c00 JavaThread “AWT-EventQueue-1” [_thread_blocked, id=11200]
0x08344c00 JavaThread “AWT-Shutdown” [_thread_blocked, id=11199]
0x082fc400 JavaThread “CacheCleanUpThread” daemon [_thread_blocked, id=11194]
0x082f1c00 JavaThread “traceMsgQueueThread” daemon [_thread_blocked, id=11193]
0x08058800 JavaThread “DestroyJavaVM” [_thread_blocked, id=11180]
0x082d9000 JavaThread “Javaws Secure Thread” [_thread_blocked, id=11191]
0x082d7c00 JavaThread “AWT-XAWT” daemon [_thread_blocked, id=11190]
0x080acc00 JavaThread “Java2D Disposer” daemon [_thread_blocked, id=11189]
0x0808d800 JavaThread “Low Memory Detector” daemon [_thread_blocked, id=11187]
0x0808bc00 JavaThread “CompilerThread0” daemon [_thread_blocked, id=11186]
0x0808a800 JavaThread “Signal Dispatcher” daemon [_thread_blocked, id=11185]
0x08081c00 JavaThread “Finalizer” daemon [_thread_blocked, id=11183]
0x08080800 JavaThread “Reference Handler” daemon [_thread_blocked, id=11182]

Other Threads:
0x08077400 VMThread [id=11181]
0x0808f000 WatcherThread [id=11188]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation total 9152K, used 8189K [0x70070000, 0x70a50000, 0x727d0000)
eden space 8192K, 88% used [0x70070000, 0x70787138, 0x70870000)
from space 960K, 96% used [0x70960000, 0x70a48400, 0x70a50000)
to space 960K, 0% used [0x70870000, 0x70870000, 0x70960000)
tenured generation total 121024K, used 38007K [0x727d0000, 0x79e00000, 0x90070000)
the space 121024K, 31% used [0x727d0000, 0x74cedd70, 0x74cede00, 0x79e00000)
compacting perm gen total 12288K, used 6297K [0x90070000, 0x90c70000, 0x94070000)
the space 12288K, 51% used [0x90070000, 0x90696700, 0x90696800, 0x90c70000)
ro space 8192K, 73% used [0x94070000, 0x946506f0, 0x94650800, 0x94870000)
rw space 12288K, 57% used [0x94870000, 0x94f61d68, 0x94f61e00, 0x95470000)

damn you’re good at crashing :o

What system do you have?
OS, hardware?

[quote]It crashed when I launch Street Fighter on master system :
[/quote]
It looks like your video driver is crashing for some reason.
Does the same happen when you try VirtuArcade? (on the last tab of the GUI)
Video initialization is a bit different there.

try the updated LinuxDisplay class in lwjgl from svn there was a fix added for a driver crash just yesterday.

Could anyone give this a try on an Intel Mac?
I’m getting reports that it starts up and runs, but that keyboard input either doesn’t work at all or the ESC key doesn’t work.

http://www.gagaplay.com/jemu2/jemu2.jnlp

I can confirm this. I could launch the game fine, but not add credits. I couldn’t even exit the game using the close button in windowed mode ?

Thanks for testing.
I’m not sure what’s going on… Anything particular regarding Intel Macs that I need to be aware of regarding keyboard input?

Cheers,
Erik

Yes it works very good except one point : I can’t stop the program. I launched “Mortal Kombat 2” and when I pushed ESC, nothing happened. I was in windowed mode. I use Firefox under Mandriva Linux 2007 with KDE 3.7.

Since upgrading to the latest LWJGL, JEmu2 has problems with the controls (on non-windows machines) and with vsync on some video cards. No idea yet how to solve it, but I didn’t have time yet to really look into it.

I see there is no perfect solution. With LWJGL, there are some lacks of reliability and with JOGL, there are problems with the JOGLAppletLauncher and with the fullscreen mode. But JEmu2 is really impressive, it has been a pleasure to use it. Is it legal to use it? We didn’t pay for all these games.

I deny everything ;D

AFAIK, in my country it is legal to use it, but strictly speaking it’s not legal for me to host it.
In the end it comes down to whether or not the copyright holders care to take legal action. Many are out of business, these games are not for sale anymore, and I’m not selling anything. Now of course that doesn’t make it any less illegal, but less likely to bother anyone.
I’ve even tried to contact a few copyright owners in an attempt to make JEmu2 legal, but I got NO replies whatsoever. None. Zilch. Not even a Cease and Desist letter.
So I just figured that nobody cares, at least as long as JEmu2 stays as low profile as it is and I’m not selling anything, so I just kept it online.

JEmu2 is already legal. It is just having the roms when you don’t already own the rights to the game that is illegal.