Emulation: Difference between revisions
m (Added the MAME emulator) |
(→MAME: Added features implemented up to March 23, 2025. How to setup a disk image.) |
||
Line 45: | Line 45: | ||
== MAME == | == MAME == | ||
This emulator is currently under development. See here: https://github.com/dtremblay/mame | This emulator is currently under development (23 Mar 2025). See here: https://github.com/dtremblay/mame | ||
MAME is available for Linux, Mac and Windows. | Releases are published in GitHub and announced in Discord: https://discord.com/channels/691915291721990194/1330998392481906768 | ||
MAME is available for Linux, Mac and Windows. Future development of the F256 machines will support the 6809 and 68000 processors. | |||
Currently, only the F256K is partially implemented. | Currently, only the F256K is partially implemented. | ||
* Matrix Keyboard | * Memory Management Unit (MMU) at address $0 | ||
* Text display | * 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 | |||
====== Creating an SD Card Image to use in MAME Emulator and Foenix IDE ====== | |||
''These instructions require a Linux Operating System or MinGW.'' | |||
Create a blank image of 64 blocks of 1 MB: | |||
<code>dd if=/dev/zero of=sdcard.img bs=1M count=64</code> | |||
Partition the image: | |||
<code>parted sdcard.img --script mklabel msdos</code> | |||
<code>parted sdcard.img --script mkpart primary fat32 1MiB 100%</code> | |||
You need to know the starting sector for the next step. To find the '''starting''' sector: <code>fdisk -l sdcard.img</code> | |||
You'll get something like this: | |||
<code>Device Boot Start End Sectors Size Id Type</code> | |||
<code>sdcard.img1 2048 131071 129024 63M c W95 FAT32 (LBA)</code> | |||
Create a Loop Device for Formatting | |||
Map the partition to a loop device: | |||
<code>sudo losetup -o $((2048 * 512)) --sizelimit $((129024 * 512)) /dev/loop0 sdcard.img</code> | |||
Format it: <code>sudo mkfs.vfat -F 32 /dev/loop0</code> | |||
Detach it: <code>sudo losetup -d /dev/loop0</code> | |||
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. | |||
<code>mkdir /mnt/f256</code> | |||
<code>sudo mount -o loop,offset=$((2048 * 512)) sdcard.img /mnt/f256</code> | |||
<code>cp myfile.txt mnt/</code> | |||
<code>sudo umount mnt</code> |
Revision as of 03:33, 23 March 2025
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
A web-based emulator in development for the F256Jr and F256K, with 65c02.
Most of the primary functions work, including all text & graphics modes with raster effects, SD Card images, USB gamepads, and PSG square wave sound. SuperBASIC runs well, but a number of .pgz programs don't quite work fully yet.
A standout feature is the CPU and stack debugging support. If your program doesn't run correctly on here, and you'd like to help from the 65c02 side of things, contact user wf2 on the Foenix Discord.
https://www.white-flame.com/foenijs/
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
MAME is available for Linux, Mac and Windows. Future development of the F256 machines will support the 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
Creating an SD Card Image to use in MAME Emulator and Foenix IDE
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)
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