Emulation
FoenixIDE
The FoenixIDE provides emulation of various Foenix Retro Systems including,
| System | Descripton |
|---|---|
| F256K(816) | The F256K computer with integrated keyboard and WDC65C816 processor. |
| F256K | The F256K computer with integrated keyboard and WDC65C02 processor. |
| Jr(816) | The F256 Jr. computer with a WDC65C816 processor. |
| Jr | The F256 Jr. computer with a WDC65C02 processor. |
| U+ | The C256 Foenix U+ (4Meg RAM Config) - Legacy |
| U | The C256 Foenix U (2Meg RAM Config) - Legacy |
| C | The C256 Foenix FMX - Legacy |
| B | The C256 Foenix (original) - Legacy |
Installation
The current Windows installation file (FoenixIDE.Setup.msi) and source code can be found here, https://github.com/Trinity-11/FoenixIDE/releases
Foenijs
https://www.white-flame.com/foenijs/
Runs in your browser with no setup.
Usably feature complete:
- Supports the F256 line (Jr, Jr2, K, K2), with 65c02 and 65816.
- All audio chips, though still not perfect.
- PS/2 mouse, PS/2 keyboard, and built-in K keyboard.
- NES/SNES via USB gamepad
- SD Card images are persistently stored in your browser's IndexedDB. Card library, disk image transfers, new image creation, individual file transfers, and 1-click program launch supported.
- Strong CPU, stack, and device debugging support, with live views for memory and individual graphics data.
- Direct link to run a program or mount a card by adding URL parameters:
?url=http://...to apgz/pgx/basprogram, orbin/iso/imgcard image with optional.gzor.zip.- Github links automatically rewrite to their
raw.githubusercontent.comform to get around CORS issues.
- Github links automatically rewrite to their
&run=filenameto autorun a file within a card image URL&model=f256jr,f256jr2,f256k, orf256k2
TODO:
- Core2x and 6809
- I/O features, networking, debug port, IEC port, hardware switches
- K2 optical keyboard
- Cartridges
Discord support channel on the Wildbits server, with the author wf2. Feature requests are welcomed.
MAME
This emulator is currently under development (23 Mar 2025). See here: https://github.com/dtremblay/mame
Releases are published in GitHub and announced in Discord: https://discord.com/channels/691915291721990194/1330998392481906768
(a work-in-progress sdcard .img file containing many games, tools and media files prepared in March 2025 can be found here: https://github.com/Mu0n/F256MiscGoodies/tree/main/SDCard_Collection consult the readme of that page to get the right file)
MAME is available for Linux, Mac and Windows. Future development of the F256 machines will support the 65816, 6809 and 68000 processors.
Currently, only the F256K is partially implemented.
- Memory Management Unit (MMU) at address $0
- SD Card with SPI
- Matrix Keyboard with VIA
- Game Controllers: Atari Joysticks with VIA
- Text display, Sprites, Tiles and Bitmaps (respecting the layers)
- Interrupts: SOF, SOL, RTC, Timers, VIA0, VIA1
- Timers: Real-Time Clock (RTC), Timer0 (at 25Mhz) and Timer1 (at SOF 60 or 70Hz)
- Math processor
- Random Number Generator (RNG)
- Sound Chips: PSG (dual - stereo), OPL, SID (dual - stereo)
- Direct Memory Access (DMA)
Unimplemented features:
- UART (serial port)
- IEC
- CODEC
- NES/SNES Game Controllers
- PS/2 Mouse and Keyboard
- WIFI
- Buzzer and status LEDs
- Debug port
- DIP switches
- External Memory Cartridge
How to Run MAME
MAME has quite an extensive list of features that can be enabled and disabled.
To run F256K in full screen mode:
./f256 f256k
To run in window mode:
./f256 f256k -window -resolution 800x600
To set a disk image (for the SD Card):
./f256 f256k -harddisk sdcard.img
To disable sound:
./f256 f256k -sound none
To collect logs:
./f256 f256k -log
Within MAME emulator, you can see the frame rate (in percent) by pressing the F11 key.
You can modify settings and key assignments using the TAB key.
You can see the debug console (to step in CPU memory and view memory values) using the back-tick key `.
Exit the emulator using the ESC key.
Note: all these keys can be modified, so these are the default settings.
Creating an SD Card Image to use in MAME Emulator and Foenix IDE
Easy Method:
You can use the FoenixIDE to write your SD Card to a single ISO file. In the FoenixIDE menu, select Tools | Export SD Card to IMG. You will then get a Save dialog: pick a filename to save.
Hard Method:
These instructions require a Linux Operating System or MinGW.
Create a blank image of 64 blocks of 1 MB:
dd if=/dev/zero of=sdcard.img bs=1M count=64
Partition the image:
parted sdcard.img --script mklabel msdos
parted sdcard.img --script mkpart primary fat32 1MiB 100%
You need to know the starting sector for the next step. To find the starting sector: fdisk -l sdcard.img
You'll get something like this:
Device Boot Start End Sectors Size Id Type
sdcard.img1 2048 131071 129024 63M c W95 FAT32 (LBA)
The starting sector is "2048" in the listing above.
Create a Loop Device for Formatting
Map the partition to a loop device:
sudo losetup -o $((2048 * 512)) --sizelimit $((129024 * 512)) /dev/loop0 sdcard.img
Format it: sudo mkfs.vfat -F 32 /dev/loop0
Detach it: sudo losetup -d /dev/loop0
The disk image is now ready, but it's empty. To copy files into the disk, you need to mount it. After it's mounted, you can copy files to it.
mkdir /mnt/f256
sudo mount -o loop,offset=$((2048 * 512)) sdcard.img /mnt/f256
cp myfile.txt mnt/
sudo umount mnt