Foenijs: Difference between revisions
From Foenix F256 / Wildbits/K2 Wiki
Jump to navigationJump to search
m (→CPU) |
(→Audio) |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[https://white-flame.com/foenijs/ 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. | [https://white-flame.com/foenijs/ 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 == | == Current Status == | ||
=== Platforms === | |||
F256 series: | |||
* F256Jr | |||
* F256Jr2 | |||
* F256K | |||
* F256K2 | |||
=== CPU === | === CPU === | ||
* 65c02 and 65816 fully implemented, cycle-accurate. | * 65c02 and 65816 fully implemented, cycle-accurate instruction timing. | ||
* Powerful debugging features (no labels yet, though). | * Powerful debugging features (no labels yet, though). | ||
* '''Turbo mode''' still emulates the entire machine, stopping to display a frame every 100ms. <code>mandel.bas</code> turbos to | * '''Turbo mode''' still emulates the entire machine, stopping to display a frame every 100ms. On an AMD 7940HS mini PC, <code>mandel.bas</code> turbos to 90 MHz (14x) in Firefox, and 140 MHz (22x) on Chromium. | ||
=== MMU === | === MMU === | ||
Only 1 core is currently supported, with a combined memory model: | |||
* 512kB | * 512kB MMU implemented for both CPUs, in 8×8kB slots ('c' and partial '2x' compatible). | ||
* 65816 has access to flat RAM above bank 1. | * 65816 has access to flat RAM above bank 1, including bank $F0 IO addresses ('e' and '2x' compatible). | ||
=== Video === | === Video === | ||
All standard | All standard video features implemented directly in GPU shaders. Nothing from Core2x yet. | ||
* Rendering is per-rasterline, no mid-line changes will show. | * Rendering is per-rasterline, no mid-line changes will show. | ||
* Only I/O | * 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. | * 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 === | === Audio === | ||
All chips supported, with some rough edges remaining. | |||
* The VS1053b only does MP3, WAV, and MIDI right now. | |||
=== Joysticks === | === Joysticks === | ||
| Line 29: | Line 41: | ||
* Atari joystick emulated with cursor keys and <code>Z</code> <code>X</code> <code>C</code> for 3 buttons. | * Atari joystick emulated with cursor keys and <code>Z</code> <code>X</code> <code>C</code> for 3 buttons. | ||
=== Keyboards === | === Keyboards/Mouse === | ||
* PS/2 | * PS/2 mouse | ||
* | * PS/2 keyboard | ||
* K-series mechanical keyboard | |||
=== SD Card === | === SD Card === | ||
Only 1 slot | 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 | * Create a blank card | ||
| Line 46: | Line 59: | ||
K2 optical keyboard, maybe C64 keyboard | K2 optical keyboard, maybe C64 keyboard | ||
6809 | 6809 | ||
Latest revision as of 05:59, 27 January 2026
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