Foenijs
From Foenix F256 / Wildbits/K2 Wiki
Jump to navigationJump to search
Foenijs is a web-based emulator, whose unique purpose is ease of use in demonstrating the platform, as well as being a full-featured emulator.
It is decently complete & workable, with active refinement.
Current Status
Platforms
F256 series:
- F256Jr
- F256Jr2
- F256K
- F256K2
CPU
- 65c02 and 65816 fully implemented, cycle-accurate instruction timing.
- Powerful debugging features (no labels yet, though).
- Turbo mode still emulates the entire machine, stopping to display a frame every 100ms. On an AMD 7940HS mini PC,
mandel.basturbos to 90 MHz (14x) in Firefox, and 140 MHz (22x) on Chromium.
MMU
Only 1 core is currently supported, with a combined memory model:
- 512kB MMU implemented for both CPUs, in 8×8kB slots ('c' and partial '2x' compatible).
- 65816 has access to flat RAM above bank 1, including bank $F0 IO addresses ('e' and '2x' compatible).
Video
All standard video features implemented directly in GPU shaders. Nothing from Core2x yet.
- Rendering is per-rasterline, no mid-line changes will show.
- Only I/O registers can change mid-frame, in-RAM redefinitions won't show.
- Vertical scrolling mid-frame and such latches on real hardware aren't implemented; everything is draw independently on the fly and can be more dynamic than the real thing.
Audio
All chips supported, with some rough edges remaining.
- The VS1053b only does MP3, WAV, and MIDI right now.
Joysticks
- USB controllers for NES/SNES interface.
- Atari joystick emulated with cursor keys and
ZXCfor 3 buttons.
Keyboards/Mouse
- PS/2 mouse
- PS/2 keyboard
- K-series mechanical keyboard
SD Card
Only 1 slot at the moment. The current SD Card is held in IndexedDB browser storage, which will by default persist between sessions.
- Create a blank card
- Download/upload full card image
- Download/upload/delete individual files
- Launch programs directly from directory browser.
TODO & Wishlist
[Any and all mundane or insane ideas welcome.]
K2 optical keyboard, maybe C64 keyboard
6809
680x0
Core2x video stuff
Core2x memory mapping