mirror of
https://github.com/freewilll/apple2-go.git
synced 2024-05-28 10:41:27 +00:00
Apple 2 Emulator in Go
audio | ||
cmd | ||
cpu | ||
disk | ||
keyboard | ||
mmu | ||
system | ||
utils | ||
video | ||
.gitignore | ||
apple2.go | ||
bank_switch_test.go | ||
bell_test.go | ||
dos33_boot_test.go | ||
glide.yaml | ||
io_test.go | ||
LICENSE | ||
prodos_boot_test.go | ||
README.md | ||
rwts_write_test.go |
Apple //e emulator in go
Ebiten based apple //e emulator written in go.
Features
- MOS 6502 CPU
- keyboard
- 40 column text mode
- low resolution color graphics
- high resolution monochrome graphics
- upper memory bank switching: $d000 page and ROM/RAM switching
- main memory page1/page2 switching in text, lores and hires
- speaker audio
Installation
Install prerequisites with glide
glide up
Build the executable
go build
Download apple2e.rom
from
a2go.applearchives.com and put it in the root directory.
Running it
go run apple2e.go
go run apple2e.go my_disk_image.dsk
go run apple2e.go -drive-head-click my_disk_image.dsk
Running the tests
Setting up the tests
Some disk images are used for the tests
- dos33.dsk from e.g. mirrors.apple2.org.za
- prodos19.dsk from e.g. mirrors.apple2.org.za
Running the tests
go test -v
The CPU tests make use of Klaus2m5's excellent 6502 functional tests.
Known working images
- DOS 3.3
- Prodos 1.9
- Lemonade stand
- Montezuma's Revenge
Keyboard shortcuts
- ctrl-alt-R reset
- ctrl-alt-M mute
- ctrl-alt-C capslock
Remaining work
- 80 column card
- 48k aux memory
- double hires
- paddles
Known issues
- On MacOS, the initial beep is sometimes split into two little beeps. This appears to be an ebiten issue.
- On MacOS, shutting down sometimes takes 30 seconds or so