YAE, Yet another Apple ][ Emulator

YAE, Yet another Apple ][ Emulator

The emulator and this page is under construction

Powered by FreeBSD

Original version of YAE

I have been developing a fast Apple ][ Emulator for Unix systems with X windows. It is tuned for speed on RISC based systems by employing compiler technology and dirty but fast C coding. The emulator is sort of working now. It emulates a 64K Apple ][+ plus with a 65C02 (for ProDOS). I have done text, low resoultion graphics and black and white high resolution graphics. It supports a single drive with R/W. Audio emulation is available on Sparc's and SGI's. Sun & MIPS (SGI & DECstations) version of the emulator translates on-the-fly 65C02 machine code into equivalent native code.

New features of the next version

After a break of more than a year, I want to pick up YAE again to make it more prensentable. I am now working on a new version of YAE with the following enhancements.

MIT-SHM based colour video emulation

I have re-written the video emulation of YAE to make use of the MIT-SHM shared memory extention of X11 to produce better graphics. The new video driver is optimized for a typical 32 bit workstation with an 8-bit pseudo colour display. This set-up (32-bit CPU, 8-bit display and MIT-SHM) is quite common in the UNIX community. It also works for display with pixel size 16 or 32 bits. However, the video emulation is the fastest when dealing with 8-bit pixels. Note, if you happen to use an Alpha or any 64-bit machine, the emulator may or may not work. I have yet to test it on a 64-bit workstation. The new video driver renders by simulating the behaviour of the NTSC video generator of a real Apple. You can see the distictive colour blending effect in the following screen captures.

YAE now supports 40 column text, low-res, hi-res, 80 column, double low-res and double hi-res. Normal, inverse and flash, mand MouseText characters are available in both 40 and 80 column modes

To speed up video emualtion, MIT-SHM extension is used. If your server does not support MIT-SHM or your are using a non-local X server, YAE falls back to use plain XImage. Running YAE with a non-local X server is not recommended.

Speed Regulation

A speed regulator has been added to the emulator to stablize the speed at 1.023MHz. YAE will release the CPU to other processes if it can run at that speed stably. The video driver also dynamically regulates the frame rate for machine with not enough CPU speed or under load. When the emulator is not fast enough, frame rate is reduced until 5 FPS which is minimum.

//e emulation

I have implemented the IOU,MMU functions of //e. I can now boot the emulator in the //e mode with 128K RAM. The 80 column card firmware works fine and YAE also passed the //e self-test with a "SYSTEM OK".

I have solved a memory banks swithing problem. Now YAE has two memory access modes. These are the fast mode and the slow mode. The fast mode requires updating a memory map. The map introduces considerable overhead if memory banks are switched very frequently. This can happens when moving data between the main memory and the auxilliary memory. YAE now flushes the memory map and falls back to the slow memory acesss mode when a bank switch occurs. The memory map will be re-built when banks switching become less freqent. The slow memory access mode does a function call in every access but it is still faster than updating memory map very frequently.(6/8/97)

After a day of intensive programming and debugging, I have get rid of a nasty bug I introduced earlier and solve the performance problem of memory bank switching now YAE runs Airheart, Dazzle Draw and Death Sword and some other 128K programmes without any problem.(7/8/97)

Mouse Emulation

I have implemented a mouse emulator. I had made a silly mistake which caused Dazzle Draw craching when I actived the mouse. That was fixed. There are still some glitches and design issues to be solve but I hope it would be better when v0.5 is out.(11/8/97)


Download YAE

The test version for my Apple II emulator is available now.

Click to get

This software is still under development and may be buggy. You are encouraged to pick the most recent version here. However, I upload it to ftp.apple.asimov.net every now and then.

If you have tried my emulator, please send me a mail so that I know my emulator runs on what kind of platforms.

Go to my Home Page

Last modified by Doug Kwan 7th August 97