YACE64 Logo

The Commodore 64 3D and VR Emulator

Home Introduction Features Screenshots Download Links Help About
Commodore 64
www.icons8.com

What is YACE 64?

Was ist YACE 64?

YACE64 is Yet Another Commodore Emulator

YACE64 ist Yet Another Commodore Emulator

Screenshot of Application Screenshot of Application
Commodore Pool in 3D view Fort Apocalypse in normal view Fort Apocalypse in normal view

Latest News

Interview as Podcast of Brotkastenfreund.de for all who are interessed in C64 and Emulation (German)

Released version 2.4.0.59 of 15.3.2020 available, including 3D and VR supporting HTC vive and other openVR compatible virtual reality devices. See the playlist or 3D and VR.

Released version 2.3.0.57 of 23.2.2020 available, including 3D and VR supporting HTC vive and other openVR compatible virtual reality devices. See the playlist or 3D and VR.

Released version 2.2.0.52 of 23.2.2019 available, including experimental VR supporting HTC vive and other openVR compatible virtual reality devices. See the feature introduction.

Released version 2.2.0.47 of 14.7.2018 with lots of changes and new features.

Support

Feel free to contact me or look at the help or FAQ!

Why another Emulator?

Warum ein weiterer Emulator?

Just for fun! 

Nur aus Spaß! 

It will not try to compete to others like VICE, CCS64 and so on, it has its own priorities!

Er soll sich nicht mit anderen wie z.B. VICE, CCS64 und so weiter messen - er hat seine eigenen Prioritäten.!

What is YACE64?

YACE64 is a Commodore 64 Emulator. That is nothing special, but everything else you have not seen...

The new 2.2.0.x version has some more unique features and allows a real new visual experience, like VR using a C64...
Other emulators just try to give a realistic visual and sound experience - YACE64 tries to transform the old technic of the 80's into a modern design and using state of the art technology like 3D, stereoscopie and virtual reality. Also it tries to unmystify the internal operation of a C64 and 1541 with detailed traces, disamssembler and visual VIC debugger.

If you want to know more, read the history below or look at the new features or just look at YouTube YouTube.

Is it perfect ?

No - not every program is running. I can not tell you how many and which programs are running or not.

Applications and Games like GEOS, Fort Apocalypse, Summer Games, Maniac Mansion, many demos and so on are working fine.

Feel free to tell me what doesn't work.

or Google+


History

Starting with the goal to improve my java experience, I decided to write an emulation for the 6502 processor. The first implementation was done quickly and wanted to test it with the C64 ROM. A quick fake implementation of the VIC text-mode provided a little visual feedback At this time I recognized how slow the java vm is and then translated all to C++. This was a real performance explosion!

Ok, now the CPU worked, the C64 started up with a blinking cursor... wouldn't it be nice to have a keyboard input now...? Done.

Hmmm... trying some .prg files (just injected them into the RAM) showed that a graphics mode would be nice too - "this can not be so complicated" - I thought. It wasn't and all the other modes were quick easy to implement, but at this point is was disappointing to load any game - nothing was running. I didn't really looked at the timings. Now the challenge had begone... Reading nearly all available documentations, changing the complete VIC implementation, finally I got the reward - the first game (pit-stop II) was running!

The assortment of prg files is small, so I needed a simple disk drive emulation for d64 files. Starting with a simulator for a 1541 command server I had many problems with the IEC port and the simulation of the ATN, Clock and Data pins. Finally the serial port worked, but recognized that the command interpreter is getting complicated. So I switched again fundamentally and decided to implement the drive with my already working 6502 CPU emulation a little RAM and the nearly CIA equal VIA chip... Upps! I was so wrong - they are so different - this took then most of the time. Finally I could read and write d64 files with the emulated drive... but whats this - some programs didn't load! WTF is wrong? Internet says - there's something called V-MAX - why is this a problem? I thought  I've done everything correct - timings and so on! No I was so wrong - nothing was correct! The IEC port timing was wrong, the 6502 timing was wrong, the read/write head timing was wrong... give up now?

No! I started to rework everything - changing the 6502 emulation to micro command emulation and changing the drive mechanics emulation to physical impulses took the breakthrough - now many things worked suddenly and only minor problems were left.

Now the emulator was working, but whats next...? Maybe it would be nice to share this - and here we are.

I didn't reached my goal to improve my java experience - but learned so much more - from writing cross-plattform C++ 11 code, improved Objective-C, iOS and Android (started on Android with java) experience to TCP communication, OpenGL and OpenAL rendering, using Direct Input and Direct Sound - learned how realtime sound synthesis works, a computer works down to the electrical signals and finally how to setup a domain. Never thought that you can learn so many modern technology with emulating a 30 years old computer...

The story continues... now:

When my last computer was end of lifetime, I decided to get a real cool one - fast, big screen and stereoscopic display! Playing "Rise of the Tombraider" created such a wow-effect, that I wanted give the good old commodore 64 just a little of this new experience. This leads to the new version 2.0 of YACE64.

But this wasn't as easy as it looked - there have been many problems - starting with the hardware and driver, then how to realize this for a good performance and finally the optimized stereoscopic effect...

So again I learned so much about tesselation, geometry shader, stereoscopic view mechanism and so on. It was hard, with many ups and downs - but again I won't miss the new knowledge.


Commodore Banner Exchange