Foenijs

From F256 Foenix
Revision as of 17:46, 31 December 2025 by WF (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 so far, notably missing sound and some hardware support.

Current Status

CPU

  • 65c02 and 65816 fully implemented, cycle-accurate.
  • Powerful debugging features (no labels yet, though).
  • Turbo mode still emulates the entire machine, stopping to display a frame every 100ms. mandel.bas turbos to 70MHz on an AMD 7940HS mini PC under Firefox.

MMU

  • 512kB 1x mode implemented for both CPUs.
  • 65816 has access to flat RAM above bank 1.

Video

All standard F256K/Jr video features implemented directly in GPU shaders. Nothing from 2x yet.

  • Rendering is per-rasterline, no mid-line changes will show.
  • Only I/O changes 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

Still need to tackle this. Square waves from PSGs are the only thing implemented right now.

Joysticks

  • USB controllers for NES/SNES interface.
  • Atari joystick emulated with cursor keys and Z X C for 3 buttons.

Keyboards

  • PS/2 interface
  • K2 internal 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

PS/2 Mouse support (mouse pointer works already)

6809

680x0

Core2x video stuff

Core2x memory mapping