JEmu2 SCC-Konami music player with enhanced sound

Pagina 1/3
| 2 | 3

Door erikd

Master (255)

afbeelding van erikd

13-02-2015, 22:18

http://www.gaga-play.com/test/JEmu2-KonamiSCC-native.zip

A version of JEmu2 running *that* DSK image that could play lots of original Konami SCC tunes and sounds.
The emulator adds stereo sound, drum samples, and some other sound enhancements.
It also displays a little GUI where you can play around with various audio enhancement settings (or you can just disable them if you want).

Just unzip and run the .exe

Aangemeld of registreer om reacties te plaatsen

Van Manuel

Ascended (15355)

afbeelding van Manuel

13-02-2015, 22:30

Is there version that runs on Linux?

Van erikd

Master (255)

afbeelding van erikd

13-02-2015, 22:40

Sorry, not right now.
If you really want, I can create a cross-platform build. You'll have to do some testing though, because I'm (sadly) not running Linux right now.
The native Windows-only build was just a few clicks away, and I figured that would be good enough for now.

Van erikd

Master (255)

afbeelding van erikd

13-02-2015, 23:41

@Manuel
I've put a java-version here: http://www.gaga-play.com/test/JEmu2-KonamiSCC-java.zip
There's an .sh file that might work on Linux (not tested, but you need to have java6 or higher installed. I'm not sure if openjdk still works here, but last time I checked it did, otherwise install a JVM from Oracle)

Van Manuel

Ascended (15355)

afbeelding van Manuel

14-02-2015, 17:20

Thanks!

I get only some sound settings pop up when starting it and also this:

$ sh jemu2.sh 
JEmu2 v5.0
Running stand-alone
Initializing cache...
Trying to select driver 'msx2_dsk_60Hz_scckonami'...sound.freq=44100
sound.stereo=true
sound.stereodelay=true
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl64 in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
	at java.lang.Runtime.loadLibrary0(Runtime.java:849)
	at java.lang.System.loadLibrary(System.java:1088)
	at org.lwjgl.Sys$1.run(Sys.java:72)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
	at org.lwjgl.Sys.loadLibrary(Sys.java:87)
	at org.lwjgl.Sys.(Sys.java:117)
	at jef.util.time.TimeLWJGLImpl.(TimeLWJGLImpl.java:17)
	at jef.util.time.Time.init(Time.java:31)
	at jef.util.time.Time.(Time.java:22)
	at jef.sound.Settings.(Settings.java:28)
	at jef.sound.SoundChip.(SoundChip.java:31)
	at jef.sound.SoundChip.(SoundChip.java:54)
	at jef.sound.chip.SamplePlayerChip.(SamplePlayerChip.java:211)
	at net.movegaga.jemu2.driver.msx.MSX.(MSX.java:144)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:191)
	at net.movegaga.jemu2.EmulatorFactory.createEmulator(EmulatorFactory.java:260)
	at net.movegaga.jemu2.JEmu2.main(JEmu2.java:137)

That's odd, as the library seems to be in the current path and the shell script sets the library path to .

Van erikd

Master (255)

afbeelding van erikd

14-02-2015, 18:09

Thanks for testing!
Sorry, I made an error in the .sh script:
-Dlibrary.path=. should be -Djava.library.path=.

Van Manuel

Ascended (15355)

afbeelding van Manuel

14-02-2015, 19:49

ah, indeed, I should have known that Smile

Anyway, it runs fine, but I hear no sound at all...

Everything seems to be OK otherwise:

JEmu2 v5.0
Running stand-alone
Initializing cache...
Trying to select driver 'msx2_dsk_60Hz_scckonami'...sound.freq=44100
sound.stereo=true
sound.stereodelay=true
LWJGL Timer selected, timer resolution=1000
JRE supports Nano Timer
kick.wav -> format=PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
snare.wav -> format=PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
hihat.wav -> format=PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
Low-Tom-2.wav -> format=PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
Open-Hi-Hat-3.wav -> format=PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
Ok!
INFO: net.movegaga.jemu2.driver.msx.MSX is a JEmu2 driver.
int[].ADDRESS_STACK, type : class [I
Component type : int
adding
boolean.IRQ_SELF_ACK, type : boolean
adding
int.addressStackPointer, type : int
adding
boolean.irq, type : boolean
adding
boolean.m_3F, type : boolean
adding
boolean.m_5F, type : boolean
adding
int.m_a8, type : int
adding
boolean.m_addsubtractF, type : boolean
adding
int.m_af16alt, type : int
adding
int.m_b8, type : int
adding
int.m_bc16alt, type : int
adding
int.m_c8, type : int
adding
boolean.m_carryF, type : boolean
adding
int.m_d8, type : int
adding
int.m_de16alt, type : int
adding
int.m_e8, type : int
adding
int.m_f8, type : int
adding
int.m_h8, type : int
adding
boolean.m_halfcarryF, type : boolean
adding
boolean[].m_halfcarryTable, type : class [Z
Component type : boolean
adding
int.m_hl16alt, type : int
adding
int.m_i8, type : int
adding
int.m_iff1a, type : int
adding
int.m_iff1b, type : int
adding
int.m_im2, type : int
adding
int.m_ix16, type : int
adding
int.m_iy16, type : int
adding
int.m_l8, type : int
adding
boolean[].m_overflowTable, type : class [Z
Component type : boolean
adding
boolean.m_parityoverflowF, type : boolean
adding
boolean.m_pause, type : boolean
adding
int.m_pc16, type : int
adding
int.m_r8, type : int
adding
boolean.m_signF, type : boolean
adding
int.m_sp16, type : int
adding
boolean.m_stop, type : boolean
adding
boolean[].m_subhalfcarryTable, type : class [Z
Component type : boolean
adding
boolean[].m_suboverflowTable, type : class [Z
Component type : boolean
adding
int.m_tstates, type : int
adding
int.m_x8, type : int
adding
int.m_xx16, type : int
adding
boolean.m_zeroF, type : boolean
adding
boolean.nmi, type : boolean
adding
boolean.tracing, type : boolean
adding
int.IRQPending, type : int
adding
int[].RGB, type : class [I
Component type : int
adding
int.addrChrPatterns, type : int
adding
int.addrChrTable, type : int
adding
int.addrColorTable, type : int
adding
int.addrSpriteColor, type : int
adding
int.addrSpritePatterns, type : int
adding
int.addrSpriteTable, type : int
adding
int.adjustHOR, type : int
adding
int.adjustVER, type : int
adding
int.colBackGround, type : int
adding
int.colForeGround, type : int
adding
int.cycles, type : int
adding
int.displayStart, type : int
adding
int.displayStartOffset, type : int
adding
boolean.executeCPU, type : boolean
adding
int.frame, type : int
adding
int.framesPerSec, type : int
adding
boolean.incPort3, type : boolean
adding
int.ioState, type : int
adding
int.irqLine, type : int
adding
int.linesPerField, type : int
adding
int.linesPerFrame, type : int
adding
int[].pixels, type : class [I
Component type : int
adding
int[].regControl, type : class [I
Component type : int
adding
int[].regStatus, type : class [I
Component type : int
adding
int.rwAddress, type : int
adding
int.scrMode, type : int
adding
ScreenMode[].screenMode, type : class [Lnet.movegaga.jemu2.driver.msx.v9938.ScreenMode;
boolean.skipSprites, type : boolean
adding
int.vBlankIRQ, type : int
adding
int[].vram, type : class [I
Component type : int
adding
int.writeBuffer, type : int
adding
int.r44_ex, type : int
adding
int.r44_ey, type : int
adding
int.r44_sx, type : int
adding
int.r44_sy, type : int
adding
int.r44_x, type : int
adding
int.r44_xsize, type : int
adding
int.r44_y, type : int
adding
int.v_lop, type : int
adding
int.v_xbytes, type : int
adding
int.v_xmask, type : int
adding
int.v_xshift, type : int
adding
int.v_ymask, type : int
adding
int.v_yshift, type : int
adding
int.xdir, type : int
adding
int.ydir, type : int
adding
Start loading from msx2_dsk_60Hz_scckonami.zip
Checking classpath for 'msx2_dsk_60Hz_scckonami.zip'
msx2_dsk_60Hz_scckonami.zip found at file:/tmp/release/rom/msx2_dsk_60Hz_scckonami.zip
Loading 'scckonami.dsk' (eb2a4f7)...
Finished loading from msx2_dsk_60Hz_scckonami.zip
Checking results...
Checking classpath for 'msx2.zip'
msx2.zip found at file:/tmp/release/rom/msx2.zip
Loading msx2.rom(6cdaf3a5)...Ok!
Loading msx2ext.rom(66237ecf)...Ok!
Checking classpath for 'msxdisk.zip'
msxdisk.zip found at file:/tmp/release/rom/msxdisk.zip
Loading disk.rom(721f61df)...Ok!
Checking classpath for 'fmpac.zip'
fmpac.zip found at file:/tmp/release/rom/fmpac.zip
Loading fmpac.rom(e84505d)...Ok!
Sound initializing...
SoundChip emulators found:4
SoundChip [email protected] initialized.
AY8910_init 0
SoundChip [email protected] initialized.
SoundChip [email protected] initialized.
SoundChip [email protected] initialized.
Audio line size 4096
interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian, and buffers of 4096 to 4096 bytes
buffer    : 50000
Sound initialized successfully.
SoundChip [email protected] initialized.
Video initializing...
Generating palette...
Starting video emulation...
Video initialized successfully.
Machine initializing...
Machine initialized successfully.
18071120
controls.left=KEY_LEFT
controls.right=KEY_RIGHT
controls.up=KEY_UP
controls.down=KEY_DOWN
controls.button1=KEY_LCONTROL
controls.button2=KEY_SPACE
controls.button3=KEY_LSHIFT
controls.button4=KEY_Z
controls.button5=KEY_X
controls.button6=KEY_C
Renderer = DEFAULT
FPS:50 LPF:192
Screen dimensions 272x212
Texture dimensions 512x256
Current bits per pixel = 24
Failed to choose preferred display mode, falling back to any mode:640 x 480 x 24 @59Hz
Setting display mode 640 x 480 x 24 @59Hz...
OK. Mode chosen:640 x 480 x 24 @59Hz
VSync:false
Throttle:true
Fullscreen:false
Aspect ratio:1.6
OK. Setting up keyboard/mouse...
OK. Initialization seems to be ok.
font.png
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192
FPS:50 LPF:192

Van erikd

Master (255)

afbeelding van erikd

14-02-2015, 20:18

Hm, that's strange.
Is it OpenJDK you're using? Because that's sometimes a bit finicky with JavaSound (iirc selecting the right mixer requires some extra work there).
I'll check what I can do to make it more compatible.

Van Manuel

Ascended (15355)

afbeelding van Manuel

14-02-2015, 21:31

$ java -version
java version "1.7.0_65"
OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-2)
OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)

Van erikd

Master (255)

afbeelding van erikd

14-02-2015, 21:51

Thanks, I'll see what what i can do.
I'm guessing OpenJDK doesn't select the right audio driver, since I depend on whatever JavaSound selects as the 'default' mixer (which is often wrong on Linux).

Anyway, your feedback is really appreciated.

Van Manuel

Ascended (15355)

afbeelding van Manuel

14-02-2015, 22:43

Your efforts are also really appreciated Smile

Pagina 1/3
| 2 | 3