EWM supports multiple machine profiles. Currently the Apple 1, Replica 1 and the Apple ][+. You can start an emulator with a specific machine profile easily from the command line:
ewm one --model=replica1 ewm two --model=apple2plus --drive1=choplifter.dsk This is useful, but I think there is probably a more common case where people start the emulator by double clicking or tapping an app icon or maybe even auto-boot it on a Raspberry Pi.
Today I found out that ProDOS 2.4.1 crashes in my Apple ][+ emulator. Very early on when booting a disk, even before it displays the welcome screen. This is odd because ProDOS 2.4.1 is supposed to be compatible with any Apple II model that has 64KB of RAM.
After some sleuthing I figured out what is happening here. The big hint is what the emulator prints:
CPU: Exited because of unimplemented instruction 0x1a at 0x2095 This is a good hint.
I’ve been making some more progress on my Apple 1 / Apple ][+ emulator. One thing I just finished is a status bar at the bottom of the screen that shows up when you hit Command-I. It shows the emulated CPU speed and disk activity.
The status bar is using the same character set as the Apple ][+.
If you are interested in playing around with my emulator, you can find the project at github.
Finished initial Joystick support for my emulator. Works pretty well with the XBox 360 Wireless controller. This is where using SDL is paying off. It has nice abstractions for finding game controllers and joysticks.
Choplifter is very playable. Also tried Hard Hat Mack and Ms Pac-man. Strangely Cider Spider does not work at all. Not sure what is going on there yet.
I’m thinking I should implement some kind of keyboard to D-pad mapping.
I have been posting a lot of pictures and movies of the progress that I’ve been making with my Apple ][+ emulator. That is going pretty well, but the project actually started as an Apple 1 emulator. And I have to admin that I have been neglecting that part.
So here is some progress on the Apple 1 side. I just finished a native terminal, using the same character generator as the Apple ][+.
Making some progress with color. I don’t think the colors are completely right. And other emulators show more solid colors instead of the stripey fills. So I have to figure out what is going on there. Getting there!
And how about this one:
If you are interested in playing around with my emulator, you can find the project at github.com/st3fan/ewm.
Most of my professional and personal work is Open Source.
So here is something funny. I added support for (monochrome) hires graphics to my emulator last week. It worked, but was too slow to play for example Frogger.
I thought my ‘renderer’ was too simple. I’m simply putting pixels on the screen with FillRect(), which SDL maps to OpenGL primitives. So that is a lot of calls. I started writing a little rendering benchmark so that I could establish a baseline performance and then improve on that.
The emulator now has the option to switch between color and monochrome support with the --color command line option.
Only green is supported for monochrome, but I plan to support all the common colors like white, amber and scanline emulation..
Yes, the colors are not right, and there is outstanding work to make colors look more solid and follow NTSC display rules.
It is still weird for me to see games in colour.
Things are moving fast now. Monochrome Hi-Res support.
The horizontal line in the Frogger screen is probably a typo in the table that I have to list the base addresses of lines of the HGR pages.
This is how I remember the Apple ][+ - everything in monochrome. Except that we had a Monitor ///, which was green. So I’ll have to make some options for monochrome color selection I think.
I found a quiet spot at the airport (SFO) and resolved my Language Card issues. ProDOS 1.0.1 boots now!
The best explanation of the Language Card and memory architecture was actually in Understanding the Apple II by James Sather. What a fantastic reference that is. I should really try to find a hard copy.
If you are interested in playing around with my emulator, you can find the project at github.