Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jace. it is stable.

176 views
Skip to first unread message

BLuRry

unread,
Aug 28, 2012, 3:32:02 PM8/28/12
to
This is the first major release, bringing this emulator within a hair of my original vision for what I wanted it to be: it is a complete recreation of the computer I had growing up. (yaaaaaay!) There are a few bugs left to fix, but the only people in this world that claim software is ever complete are sales people. In spite of its flaws it's ready to get some heavy use: I took the BETA label off the sourceforge page.

] Several timing and deadlock fixes, this not only spells more stable but also a lot more efficient in some cases.

] AE RamFactor card implemented and working. You will need to install the AE Ram Expander for Appleworks to see the extra storage.
*There is an additional option to max out the speed of the emulator when the ramfactor is in use. This means that any applications using Ram for cache or extra storage will speed up dramatically.

] Mockingboard works perfectly with Ultima 5.
*AE Phasor support has been implemented, but it isn't working right just yet. For now, just use Mockingboard mode.
*Note: Only use ONE mockingboard. Using more than one will cause the timing issues and sound horrible.
*You can use a mockingboard at the same time as a Passport MIDI card. It has a strange syncopated sound to it. it does reveal, however, that the mockingboard playback is pitch-perfect. :-)

] Visual UI completely overhauled: Now fullscreen is possible (press F9)
*Pressing F8 while in fullscreen will toggle aspect-constrained or stretched displays.

] Indicator icons now appear for:
*Disk II activity
*Mass storage activity
*Mouse activation
*SSC activity
*RamFactor activity

BLuRry

unread,
Aug 28, 2012, 3:55:20 PM8/28/12
to
I forgot to mention that RamFactor can go as high as 16mb (16384kb). The AE diagnostics don't work for some reason, but the card's ROM can see and partition all of the memory without any apparent issues.

-B

bpi...@gmail.com

unread,
Aug 28, 2012, 6:44:21 PM8/28/12
to
Jace is the perfect Apple II emulator except for ONE little thing:

It is written in the abominable JAVA. Why, oh why did you write it in the bloated Java?

I know I should not gripe, and instead thank you for all your hard work, but Java is a 200+ megabyte crapfest. It is slow as hell, and inefficient beyond all reckoning. I know you'll state your reason as "portability"e
I still use Apple PC. At 40 kb of Assembler code, there are no dependencies (ie, do not need "200 mb of crap" to run it! You have to remember we Apple II fans are used to optimized, non bloated code.

But I shall shut up now and realize that you've done a great job nonetheless and hope someday it will be rewritten in C++ or the godly Assembler.

BLuRry

unread,
Aug 28, 2012, 9:12:48 PM8/28/12
to
On Tuesday, August 28, 2012 5:44:23 PM UTC-5, (unknown) wrote:
> Jace is the perfect Apple II emulator except for ONE little thing:
>

Perfect? No it will never be perfect, and I'm not the type of person to ever stake that claim.

>
>
> It is written in the abominable JAVA. Why, oh why did you write it in the bloated Java?
>
>
>
> I know I should not gripe, and instead thank you for all your hard work, but Java is a 200+ megabyte crapfest. It is slow as hell, and inefficient beyond all reckoning. I know you'll state your reason as "portability"

Is it slow? I haven't noticed. Last I checked, I was able to run 60fps emulation scaled to 1920x1080 without any tricks. Surely we must be using different JVM implementations.

And your assumption about my preferences is incorrect. I wrote it in Java because I like Java and I've been using it professionally for over a decade. The fact that the emulator works in Mac and Windows is just a bonus for anyone that uses those platforms.

>
> I still use Apple PC. At 40 kb of Assembler code, there are no dependencies (ie, do not need "200 mb of crap" to run it! You have to remember we Apple II fans are used to optimized, non bloated code.

Apple PC doesn't work in my setup. Alas, it was good for its time but since it's closed-source and the David Ellsworth fell off the map, I would be hard-pressed to find any way to improve on it. I'm glad to hear you still have a use for that old 486 on your desk.

>
> But I shall shut up now and realize that you've done a great job nonetheless and hope someday it will be rewritten in C++ or the godly Assembler.

This exercise in coding has taught me some valuable lessons about how to write high-performing thread-safe java code. And the reward is on a professional scale: I used this knowledge to help me pull off some amazing, yet unrelated, feats at work.

Sorry that my experience of self-enlightenment doesn't compete well with your need to start a pointless gripe-fest. The source code is open. If you want a C++ port, I suggest you get started.

-Brendan

David Schmidt

unread,
Aug 28, 2012, 9:44:21 PM8/28/12
to
On 8/28/2012 9:12 PM, BLuRry wrote:
> On Tuesday, August 28, 2012 5:44:23 PM UTC-5, (unknown) wrote:
>> I know I should not gripe, and instead thank you for all your hard work, but Java is a 200+ megabyte crapfest. It is slow as hell, and inefficient beyond all reckoning. I know you'll state your reason as "portability"
>
> Is it slow? I haven't noticed. Last I checked, I was able to run 60fps emulation scaled to 1920x1080 without any tricks. Surely we must be using different JVM implementations.
>
> And your assumption about my preferences is incorrect. I wrote it in Java because I like Java and I've been using it professionally for over a decade. The fact that the emulator works in Mac and Windows is just a bonus for anyone that uses those platforms.

I also write in Java, mostly because that's what we use at work. I've
also been doing it so long it's like second nature to me. I know there
are others here that gripe about Java too, and I sympathize with
you/them - that would be like somebody writing something in Visual BASIC
to me. I totally get it. I wish I could help you see why it's actually
a good thing... but, like any religious argument, there's really no point.

aiia...@gmail.com

unread,
Aug 28, 2012, 10:57:06 PM8/28/12
to
On Tuesday, August 28, 2012 12:32:02 PM UTC-7, BLuRry wrote:
> This is the first major release, bringing this emulator within a hair of my original vision for what I wanted it to be: it is a complete recreation of the computer I had growing up.

Awesome work! I would switch to JACE if it had some more features in the debugger.

Kevin

unread,
Aug 28, 2012, 11:03:16 PM8/28/12
to
Java is just naturally slower, yea you cant see it in FPS's but your using more system power to get the effect. Does it matter for an apple II emulator .. nah, does 200 megs of crap on my machine bother me? not really cause theres always something that needs java so its already installed.

To answer the original question, I dunno, I use appleWin, why, cause somewhere I missed the link and its not mentioned much (though Jace is talked about all the time) and since appleWin runs fine on windows and linux though wine, I never bothered to go tromping though the newsgroup looking for it

shout out a link =)

Steve Nickolas

unread,
Aug 28, 2012, 11:17:47 PM8/28/12
to
On Tue, 28 Aug 2012, bpi...@gmail.com wrote:

> But I shall shut up now and realize that you've done a great job
> nonetheless and hope someday it will be rewritten in C++ or the godly
> Assembler.

Or plain C with SDL, which is almost as portable as Java.

-uso.

Steve Nickolas

unread,
Aug 28, 2012, 11:20:27 PM8/28/12
to
On Tue, 28 Aug 2012, BLuRry wrote:

> Is it slow? I haven't noticed. Last I checked, I was able to run 60fps
> emulation scaled to 1920x1080 without any tricks. Surely we must be
> using different JVM implementations.

Java is a bit of a resource hog, but in these days of 2-3 GHz CPUs it's
less noticeable.

> Apple PC doesn't work in my setup. Alas, it was good for its time but
> since it's closed-source and the David Ellsworth fell off the map, I
> would be hard-pressed to find any way to improve on it. I'm glad to
> hear you still have a use for that old 486 on your desk.

I clung to ApplePC for years and still use it occasionally, though for
most purposes I've moved on to AppleWin.

Dapple was designed, originally, as a rewrite of ApplePC - and for the
most part it worked, but it had issues of its own.

-uso.

rich....@gmail.com

unread,
Aug 28, 2012, 11:46:49 PM8/28/12
to
Great work, Brendan! Your hard work is appreciated, and it looks like you've been able to tackle quite a bit of new stuff recently (RamFactor and Mockingboard). I've been using it more and more since playing around with WUSDN-- The heatmap is pretty slick.

Any idea of what you're adding next?
If you're taking requests, I'd like to see the debugger improved a bit, and is there any way that Uthernet support can be added? I'm thinking that might not be possible, as it would require a virtual NIC of some sort to bind to, and that may be more OS specific...

Regards,
Rich

mdj

unread,
Aug 29, 2012, 1:23:56 AM8/29/12
to
On Wednesday, 29 August 2012 08:44:23 UTC+10, (unknown) wrote:

> It is written in the abominable JAVA. Why, oh why did you write it in the bloated Java?

Luckily for you only *your* sense of aesthetics is offended; the machine you run it on couldn't give a damn.

BLuRry

unread,
Aug 29, 2012, 2:00:42 AM8/29/12
to
On Tuesday, August 28, 2012 10:46:49 PM UTC-5, datawiz wrote:
> Great work, Brendan! Your hard work is appreciated, and it looks like you've been able to tackle quite a bit of new stuff recently (RamFactor and Mockingboard). I've been using it more and more since playing around with WUSDN-- The heatmap is pretty slick.
>
>
>
> Any idea of what you're adding next?

Because Jac integrated Wudsn (a proper IDE) it would make a lot of sense to tackle proper debugging. The F10 debugging panel and the trace-to-stdout are only marginally useful. I have been doing many rounds of optimization under the hood to pave the way for a high-performance debugger. But it will have to wait a little while. I need a little break from this to focus on non-computer stuff for a while. :-D

I should probably hand over some code I wrote to disassemble Applesoft. It probably wouldn't be a lot of work to rig up a functional applesoft basic editor view in Wudsn if I give Jac the bits to convert code. Since Wudsn is also written in that god-forsaken bloated java, it's right up my alley. ;-)

>
> If you're taking requests, I'd like to see the debugger improved a bit, and is there any way that Uthernet support can be added? I'm thinking that might not be possible, as it would require a virtual NIC of some sort to bind to, and that may be more OS specific...

A virtual NIC would be difficult, but the java port handling code is pretty well handled in the SSC emulation. I think that outbound TCP/IP would be extremely trivial. But because uthernet isn't used much outside of Contiki (granted, Contiki is really cool) it wouldn't get as much bang for the development buck as, say, a real debugger.

>
> Regards,
>
> Rich

J. Vernet

unread,
Aug 29, 2012, 8:39:27 AM8/29/12
to
The only one is Linapple... Is there other Apple II SDL emulator ?

Jace is now working on my mac ;). Slowly, sure.


J. VERNET


aiia...@gmail.com

unread,
Aug 29, 2012, 9:23:51 AM8/29/12
to
On Tuesday, August 28, 2012 8:03:16 PM UTC-7, Kevin wrote:
> To answer the original question, I dunno, I use appleWin, why, cause somewhere I missed the link and its not mentioned much (though Jace is talked about all the time) and since appleWin runs fine on windows and linux though wine, I never bothered to go tromping though the newsgroup looking for it
>
>
>
> shout out a link =)

https://sites.google.com/site/brendanrobert/projects/jace

aiia...@gmail.com

unread,
Aug 29, 2012, 9:24:46 AM8/29/12
to
I liked ApplePC alot but have not booted it in years.

Rich

Marc S Ressl

unread,
Aug 29, 2012, 10:01:44 AM8/29/12
to
Hello there,

congratulations on achieving that milestone!! I think I understand what this
means, although my project is still quite far away from where I want to be
:-).

In regard to Java, let me point out two things. First, I am writing OE in
C++. And second, under special circumstances Java is faster than C++
(because of garbage collection).

I think the flames have been extinguished now :-).

With the best wishes,

Marc.-

BLuRry

unread,
Aug 29, 2012, 11:21:08 AM8/29/12
to
On Wednesday, August 29, 2012 9:01:45 AM UTC-5, Marc S Ressl wrote:
> Hello there,
>
>
>
> congratulations on achieving that milestone!! I think I understand what this
>
> means, although my project is still quite far away from where I want to be
>
> :-).

Your project is exciting and awesome and I can't wait to see where OpenEmulator goes next! :-D Now that I hit this milestone I can try to brave the waters to cross-compile it.

>
> In regard to Java, let me point out two things. First, I am writing OE in
> C++. And second, under special circumstances Java is faster than C++

Both things are true. Actually, in raw computation Java is a little slower in some cases but only slightly. In reality, the JIT runtime does a fantastic job of finding the hotspots of activity and optimizing them on the fly to run incredibly fast. Jace was designed to allocate and keep as many objects as possible so that the garbage collector doesn't have to chime in much at all. The memory consumption is fairly stable. After boot the only thing you can do that will consume a large chunk of ram is throwing a lot of memory to the RamFactor. The heatmap feature probably uses a fair chunk of memory also. The rest of it is pretty tame.

The overall goal was to write a well-structured emulator that serves as documentation for how this old stuff worked. By implementing everything according to datasheets (for things like the 6522 and 6551 chips), it makes for a good starting point for someone else to piece together other efforts without having to start from scratch. I like AppleWin for what it is, and it is rather nice for an emulator. However, and it could just be a C++ thing, looking at the code makes my head hurt.

> I think the flames have been extinguished now :-).

Oh, it's a debate without end because everyone is bound to have their own opinion. But there are far more important things to worry about than software platform choices of a solitary developer. Case in point: What is for dinner tonight? That is a much more important concern. ;-) I don't think it is a good topic for this forum as it doesn't apply to 8-bit apple computers, unless you're talking about VM2. (and before anyone asks, no jace will never run in VM2 -- that would be silly)

-B

aiia...@gmail.com

unread,
Aug 29, 2012, 11:30:31 AM8/29/12
to
On Tuesday, August 28, 2012 6:12:48 PM UTC-7, BLuRry wrote:
> This exercise in coding has taught me some valuable lessons about how to write high-performing thread-safe java code. And the reward is on a professional scale: I used this knowledge to help me pull off some amazing, yet unrelated, feats at work.


OOOh key words. Exercise. Taught lessons. Your brain is doing pushups! I've read your descriptions of coding adventures with JACE, and it does sound like you've learned a bunch (I wish I could understand more of it, but I don't do Java)


> Sorry that my experience of self-enlightenment doesn't compete well.

It's not a competition. You already won.


Rich

Marc S Ressl

unread,
Aug 29, 2012, 12:31:54 PM8/29/12
to
Hello Brendon (I always keep confusing it with Brandon or Branden... sorry)!

I think JACE and OE go nicely hand in hand. OE attempts to emulate all the
little details of old machines, so you (hopefully) get the same experience
you used to. It does not attempt to be an aid for debugging, so that's where
JACE steps in.

Also, congrats for your work on the RamFactor. I know how hard these things
are, in particular when you are the first who attempts it. It was hard work
to develop a cycle-accurate Videoterm card, but now it pays off as most
other emulations using the MC6845 CRT controller will be extremely easy to
implement. And it is being a lot of hard work to achieve a cycle-accurate
Apple III. I am taking a few days off now, for the same reason you mention:
what's for dinner tonight? ;-D In my particular case the question is a bit
more open: what's life about? :-) I encourage you to make that question, it
gives very satisfying answers!

With the best wishes,

Marc.-

Antoine Vignau

unread,
Aug 29, 2012, 1:16:52 PM8/29/12
to
I believe the winners are us, Apple II users. Your emulators are now offering us a real experience with well-emulated machines.

So, congratulations to both of you and to those who keep on updating their emulators.

As far as I am concerned, the more Apple IIgs emulators exist, the better I am :-)

antoine (and for dinner? an Apple pie, arf)

BLuRry

unread,
Aug 29, 2012, 3:28:34 PM8/29/12
to
On Wednesday, August 29, 2012 12:16:52 PM UTC-5, Antoine Vignau wrote:
> I believe the winners are us, Apple II users. Your emulators are now offering us a real experience with well-emulated machines.
>
>
>
> So, congratulations to both of you and to those who keep on updating their emulators.
>
>
>
> As far as I am concerned, the more Apple IIgs emulators exist, the better I am :-)
>

Maybe one day. A 65816-enabled Apple //e would be pretty straight-forward for JACE. The MMU would be the only real tricky part, but IIRC the //GS MMU was a lot more straight-forward than the //e since it had a larger address space to work with. Like your OpenEmulator, the object-oriented approach allows swapping out different implementations of various hardware elements.

At any rate, the core fundamentals of Jace use integers for addresses, so supporting a 16-bit address space wouldn't be hard. In fact, supporting a 16-bit address space wouldn't even require rewriting the memory model. I think that I would only have to look for instances of 0x0FFFF or 0x10000 in the code and replace them with Computer.getComputer().getMemory().getSize() or something like that.

The only video "mode" I might have trouble with is the awesome 3200 color mode -- but really I don't think I'm anywhere near attempting //gs emulation. Namely because Kegs complies under Linux just fine. ;-)

-B

behey...@gmail.com

unread,
Aug 31, 2012, 2:20:43 PM8/31/12
to
On Tuesday, August 28, 2012 3:32:02 PM UTC-4, BLuRry wrote:
> This is the first major release, bringing this emulator within a hair of my

I tried it and had a number of issues. The primary one being it constantly 'beeps' (break sound). The previous version doesn't do this. It would also be nice to have a 'power/reset' function key (unless I'm missing it). Inserting disks and then restarting isn't friendly.

BLuRry

unread,
Aug 31, 2012, 6:37:48 PM8/31/12
to
On Friday, August 31, 2012 1:20:44 PM UTC-5, (unknown) wrote:
> On Tuesday, August 28, 2012 3:32:02 PM UTC-4, BLuRry wrote:
>
> > This is the first major release, bringing this emulator within a hair of my
>
>
>
> I tried it and had a number of issues. The primary one being it constantly 'beeps' (break sound).

There have been changes to the timing, but the speaker should shut off when not in use. Can you check that the sound settings (bit rate, frequency) match your sound system? It currently defaults to 44800 khz, but some devices work better with 44100.

> The previous version doesn't do this.

I haven't changed the sound implementation that much -- I did try some major changes to it but I rolled them back when they didn't work.

>It would also be nice to have a 'power/reset' function key (unless I'm missing it). Inserting disks and then restarting isn't friendly.

F1/F2 insert disks into S6 D1 and S6 D2. F12 and pause/break work like the reset button, so ctrl + left alt + F12 for example. Eventually I will add key remapping support, but I haven't gotten around to it yet (there are better internals for key remapping though, so I'm halfway on that goal.)

behey...@gmail.com

unread,
Aug 31, 2012, 9:37:09 PM8/31/12
to
I've tried various sound settings to no avail. Booting JACE just has it going beep....beep...beep....beep...beep....beep...beep....beep...

Inserting disks it will sometimes change the pace of the beeps. I should have recorded the last time, it actually was a pretty cool rhythm someone could lay down a track over top of it.

thanks for the pointer on ctrl/atl/f12. Still would be nice to have a hard power reset button though.



BLuRry

unread,
Aug 31, 2012, 10:04:34 PM8/31/12
to
It could be an underlying driver problem. I had a lot of trouble with the Oracle JDK and I've had ZERO issues with the OpenJDK implementation -- but this is probably just because of how Linux sound works and is not as applicable to Windows or Mac. Can you let me know what is listed for Audio Devices in the Computer > Motherboard > Sound Output?

behey...@gmail.com

unread,
Sep 1, 2012, 7:11:07 AM9/1/12
to
I have a Dell 435MT with Windows 7-64 Ultimate. There's two audio adapters one is from the ATI card but I don't use that.

My speakers are connected to:

Audio Adapter: Intel ICH10 - High Definition Audio Controller [A0]
Audio Controller Hardware ID:PCI\VEN_8086&DEV_3A3E&SUBSYS_02C91028&REV_00

High Definition Audio Codec: RealTek ALC888
Audio Codec Hardware ID:HDAUDIO\FUNC_03&VEN_10EC&DEV_0888&SUBSYS_00000000

Java is 32bit 1.6.0_35 (also tried 1.6.0_32)
0 new messages