News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devilmarkus

JavaCPC Desktop 1.0 official release

Started by Devilmarkus, 11:05, 14 August 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Morn

Quote from: Devilmarkus on 16:56, 12 March 15
Sure, playing samplefiles should work, without problems, with PA.
But JavaCPC produces sound for itself. (AudioStream) which seems is not working well with PA.

I tested several audioformats. 8,16bit, big endian, little endian, etc... All tests ended in the same result...
Software synths like Yoshimi work fine with PA. Maybe JavaCPC needs a way to set audio buffer size? A little lag between audio and video would be more acceptable than audio glitches I think.

Did you notice the Windows path problem with 2.9e? Please don't delete old versions of JavaCPC from Sourceforge so quickly before the new ones are fully tested on OS X/Linux.  :)

Devilmarkus

Quote from: Morn on 17:37, 12 March 15
Did you notice the Windows path problem with 2.9e? Please don't delete old versions of JavaCPC from Sourceforge so quickly before the new ones are fully tested on OS X/Linux.  :)

I hope I fixed that (Anyhow: It's funny, that it threw an exception, as I try{} catch (Exception ex){} this feature.

Let JavaCPC check for updates please... (Or launch Update.jar)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

kilon

#252
I have to say I am very impressed with this emulator. Its the most advanced emulator I ever used , has a tons of things inside it. I loved the database that allows you to download and loads games on the fly.

The Assembler and debugger look very powerful, I am sure they will come handy for learning how to do assembly with CPC. One problem I have , is that even though I can start the Assembler and Hex editor by double clicking the icons of the desktop I cannot do the same by clicking the relevant menu entries . Don't know why and the console does not report any errors. 



QuoteI hope I fixed that (Anyhow: It's funny, that it threw an exception, as I try{} catch (Exception ex){} this feature.

Let JavaCPC check for updates please... (Or launch Update.jar)

I launched Updater and it updated to 2.9f but it did not solve the problem.

Devilmarkus

Quote from: kilon on 21:58, 12 March 15
The Assembler and debugger look very powerful, I am sure they will come handy for learning how to do assembly with CPC. One problem I have , is that even though I can start the Assembler and Hex editor by double clicking the icons of the desktop I cannot do the same by clicking the relevant menu entries . Don't know why and the console does not report any errors. 

The menu entries are linked only, when you use it without desktop. Perhaps I link them for desktop, too... Did not check many menu items since I added the desktop.

So this is not really a bug but missing links ;)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

By the way, the old JavaCPC 6.7 .jar works perfectly with PulseAudio! Zero audio glitches. My test disk is ACF with its doody title music as TastefulMrShip would undoubtedly call it.  ;)

Morn

I've looked a little closer at PulseAudio and JavaCPC 6.7. While 6.7 works, it creates a whole load of unused mono streams (over 30!) at startup. This is in addition to the stereo stream for synthesized output and two mono streams for samples. (You can see all this in pavucontrol.)

The PulseAudio maximum number of streams is 64, so JavaCPC 6.7, even though it uses something like 40 streams or so, stays below that total. JavaCPC Desktop 2.9 however tries to open even more streams, so the limit is eventually exceeded (which you can see in the PA log):

(1980.361|   0.002) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.
(1980.365|   0.004) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.
(1980.369|   0.003) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.
(1980.374|   0.005) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.
(1980.381|   0.006) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.
(1980.502|   0.121) W: [pulseaudio] protocol-native.c: Warning! Too many connections (64), dropping incoming connection.

(...)

So the question is, why does JavaCPC open all these unused streams at startup?


Devilmarkus

I'd guess because the integrated speech synthesizer. Perhaps each phoneme sample opens one stream?

Will check that...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

Yes, it looks like JavaCPC 6.7 creates a mono stream for each sample. There are 33 wav samples in the 6.7 JAR and I counted 34 silent mono streams. So maybe my count was off by one.

JavCPC Desktop 2.9 only seems to have 22 WAVs in the JAR, so maybe you are right and it's the speech synth that causes the extra streams to be created.

I think a simple fix for PulseAudio would be a preference to disable sample loading entirely. Turning disk noises off does not make a difference, you still get all those streams.


Deckard

Good job Markus ! Keep on please ! :D

Devilmarkus

JavaCPC update to v2.9g...

Update from v2.9e to 2.9g changelog:

- GUI improvements for BDD databases, CPC-Power added, but no database is available yet!
- RAM-Management rewritten and 4MB RAM expansion added
- Fixed faulty start of JavaCPC on non-Windows OS (Hopefully)
- Internal samples will not playback when non-Windows OS is detected

Download: You know the download locations, don't you?
Ok, one is here:
https://sourceforge.net/projects/javacpc

@Morn: I disabled the internal drive and other noisy samples. SPO256 emulation is only activated, when speech synthesis is selected in Misc. Settings
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

New problem as 2.9g starts up. Only the bar with the restart button/frame rate etc. gets displayed, then it crashes after lots of null pointer exceptions:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.JEMU.update(JEMU.java:2918)
    at jemu.ui.JEMU$7$1.run(JEMU.java:2092)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


Devilmarkus

Please run "Update.jar"... I changed JavaCPC.jar...
(I cannot tell you why this bug appeared, because it appeared @ a place, where all things already should have been defined?!?, but I coded something around it...)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

#262
Still broken after updating:

Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.PCKeyBoard.keyHandle(PCKeyBoard.java:304)
    at jemu.ui.JEMU.keyReleased(JEMU.java:3754)
    at java.awt.Component.processKeyEvent(Component.java:6477)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2820)
    at java.awt.Component.processEvent(Component.java:6293)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.JEMU.focusLost(JEMU.java:4508)
    at java.awt.Component.processFocusEvent(Component.java:6408)
    at jemu.ui.Display.processFocusEvent(Display.java:1930)
    at java.awt.Component.processEvent(Component.java:6272)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:947)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:621)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.SentEvent.dispatch(SentEvent.java:70)
    at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:216)
    at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:243)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:687)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.SequencedEvent.dispatch(SequencedEvent.java:128)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)

Devilmarkus

Quote from: Morn on 18:37, 14 March 15
Still broken after updating:

Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.PCKeyBoard.keyHandle(PCKeyBoard.java:304)
    at jemu.ui.JEMU.keyReleased(JEMU.java:3754)
    at java.awt.Component.processKeyEvent(Component.java:6477)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2820)
    at java.awt.Component.processEvent(Component.java:6293)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Display is 5,3 pixels
Display is 5,3 pixels
Display is 5,3 pixels
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.JEMU.focusLost(JEMU.java:4508)
    at java.awt.Component.processFocusEvent(Component.java:6408)
    at jemu.ui.Display.processFocusEvent(Display.java:1930)
    at java.awt.Component.processEvent(Component.java:6272)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:947)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:621)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.SentEvent.dispatch(SentEvent.java:70)
    at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:216)
    at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:243)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:687)
    at java.awt.Component.dispatchEventImpl(Component.java:4742)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:740)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:710)
    at java.awt.SequencedEvent.dispatch(SequencedEvent.java:128)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:713)
    at java.awt.EventQueue$4.run(EventQueue.java:711)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)


Seems your JavaCPC doesn't create instance "Computer" (Which is the emulated CPC)
No idea, why this happens. On my pc works fine...
You could delete all JavaCPC settings and files in your user dir/JavaCPC/
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

Nuked ~/JavaCPC, but it still doesn't work.

There is also an audio-related exception at startup. Maybe related to the 0,0 display size?

Start time: [Sat Mar 14 18:43:35 CET 2015]
executable is true
Avail mem is 494816000
init()
Frequency=1000000, adder=65536
Samplerate is 44100hz
JavaSound: 256 x 2
Line Buffer: 44100 for class com.sun.media.sound.DirectAudioDevice$DirectSDL
resync: start=0
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at jemu.core.device.Computer.createComputer(Computer.java:101)
    at jemu.ui.JEMU.setComputer(JEMU.java:4254)
    at jemu.ui.JEMU.start(JEMU.java:1191)
    at jemu.ui.JEMU.main(JEMU.java:1555)
    at jemu.ui.Main.launchClassic(Main.java:487)
    at jemu.ui.Main.main(Main.java:447)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 109
    at jemu.core.device.memory.DynamicMemory.freeMem(DynamicMemory.java:49)
    at jemu.system.cpc.CPCMemory.setRAMType(CPCMemory.java:422)
    at jemu.system.cpc.CPCMemory.<init>(CPCMemory.java:70)
    at jemu.system.cpc.CPC.initCPCType(CPC.java:1303)
    at jemu.system.cpc.CPC.<init>(CPC.java:1005)
    ... 10 more
DEBUG=false, PAUSE=false, LARGE=true
System Set: null
Audio Enabled
Floppysound Enabled
Notebook Disabled
Autosave Disabled
Display is 0,0 pixels
Display is 0,0 pixels
Window is 574 Pixels with & 60 Pixels height!
Starting debugger hidden
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jemu.ui.JEMU.setFullSized(JEMU.java:7420)
    at jemu.ui.JEMU.update(JEMU.java:2909)
    at jemu.ui.JEMU$7$1.run(JEMU.java:2092)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:699)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo

Devilmarkus

Ok, found the problem... Erasing non.existing RAM isn't the best solution ;)

Compiling and will upload v2.9h ASAP... ;)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

Please re-check for updates, as I added a bug  2.9h is the version, you need....Sorry for the problems!

https://sourceforge.net/projects/javacpc/
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

Better, but still buggy. When JavaCPC starts, I briefly see at least two (?) stereo streams in pavucontrol, but they disappear after a few seconds. I do get audio from JavaCPC, but it sounds extremely scratchy and distorted. Something is not right here, the streams should stay visible in pavucontrol as long as Java CPC runs.



TFM

Quote from: Devilmarkus on 19:13, 14 March 15
Please re-check for updates, as I added a bug  2.9h is the version, you need....Sorry for the problems!

https://sourceforge.net/projects/javacpc/


Excellent! And the support of 4 MB RAM are a big step in the right direction.  :) :) :)

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Devilmarkus

#269
Quote from: Morn on 19:29, 14 March 15
Better, but still buggy. When JavaCPC starts, I briefly see at least two (?) stereo streams in pavucontrol, but they disappear after a few seconds. I do get audio from JavaCPC, but it sounds extremely scratchy and distorted. Something is not right here, the streams should stay visible in pavucontrol as long as Java CPC runs.

JavaCPC needs at least 3 streams. For each PSG one... (AY, Dual-YM)

For scratchy sound: Try "64bit OS" in System-Settings...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

Yes, 64 bit OS helped get the framerate back up to 50 fps. However audio is still initially scratchy, when I fiddle with the sample rate in audio settings there is clean audio for a minute or so, then it reverts back to scratchy (as the streams in pavucontrol disappear). Change sample rates again a few times, streams reappear, etc.

Also, in pavucontrol, during periods of clean-sounding audio the number of stereo streams from JavaCPC wildly fluctuates between 1 and 3. It seems to change literally every second or more frequently. As if JavaCPC is constantly creating and closing streams, or whatever it's called.

Quote from: Devilmarkus on 19:59, 14 March 15
JavaCPC needs at least 3 streams. For each PSG one... (AY, Dual-YM)
Is that new? I thought 6.7 only had one stereo stream and all the mono stuff for samples. At least I've never seen more than one stereo stream with 6.7.

I've looked at the PA log but have not found an explanation for the disappearing streams. Obviously 6.7 does something right that the later versions do not. E.g. in 6.7 I never had to do the initial dance with sample rates to get sound.

Devilmarkus

Quote from: Morn on 20:25, 14 March 15
Is that new? I thought 6.7 only had one stereo stream and all the mono stuff for samples. At least I've never seen more than one stereo stream with 6.7.

Since Version 2.6

No idea about pulseaudio. I only know, it's crap.
You should check if there is not another audio-library for Java on Linux.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Morn

It might be useful to have a debug version of 2.9h with some

    System.out.println("***");

whenever a synth stream is created or destroyed in the JavaCPC code. Because the silent mono streams in 6.7 did not get disconnected like that. So I would assume the tearing down comes from JavaCPC, not PA.

It looks like Java already uses SDL

Line Buffer: 44100 for class com.sun.media.sound.DirectAudioDevice$DirectSDL

which is the gold standard for gaming and multimedia on Linux. I don't think another Java library would have this differently. Unfortunately 6.7 does not print much debug output, it would be interesting to compare this.


Devilmarkus

Quote from: Morn on 21:01, 14 March 15
It might be useful to have a debug version of 2.9h with some

    System.out.println("***");

whenever a synth stream is created or destroyed in the JavaCPC code. Because the silent mono streams in 6.7 did not get disconnected like that. So I would assume the tearing down comes from JavaCPC, not PA.

JavaCPC doesn't destroy these 3 streams!
Sadly I lost sources for v6.7


Quote from: Morn on 21:01, 14 March 15
It looks like Java already uses SDL

Line Buffer: 44100 for class com.sun.media.sound.DirectAudioDevice$DirectSDL

which is the gold standard for gaming and multimedia on Linux. I don't think another Java library would have this differently. Unfortunately 6.7 does not print much debug output, it would be interesting to compare this.

Sure, class com.sun.media.sound.DirectAudioDevice$DirectSDL is, what I use in JavaCPC's sound emulation. It's just a reference. I guess, pulseaudio's libraries are under the same path...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

Together with Morn, I worked on a little workaround for Linux + Pulseaudio users.

You can get an update, when you launch Update.jar in your JavaCPC folder.

Added: In audio settings: Selector for audio buffersize
Changed: All 3 PSG AudioLines use the same frequency now.

(Windows users can wait for next release, it's not really necessary to update, so the version number did not change)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Powered by SMFPacks Menu Editor Mod