Git Product home page Git Product logo

fujinet-pc's Introduction

FujiNet-PC

Work in progress FujiNet firmware port to Linux, macOS and Windows

If your are interested into FujiNet - A multi-function peripheral built on ESP32 hardware being developed for the Atari 8-bit systems - please visit the project at GitHub: https://github.com/FujiNetWIFI


Warning: FujiNet-PC is still work in progress with ported components in various state of completeness and erroneousness...


Port Status

Working

  • Disk drive (D:) emulation with support for ATR disk images and XEX files (no ATX yet)
  • Modem emulation (R:)
  • Printer emulation (P:)
  • APETIME protocol
  • TNFS File System to access image files over network
  • Web interface to control program's settings, browse TNFS hosts and mount disk images
  • FujiNet network device (N:) with support for various network protocols: TCP, UDP, TNFS, HTTP, SMB, FTP, Telnet, SSH
  • CP/M emulation
  • Compiles and runs on Linux, macOS and Windows
  • Binary packages for selected platforms

Not (yet) working

  • SAM voice synthesizer
  • MIDIMaze support
  • Program recorder (tape) emulation

Download

FujiNet-PC pre-compiled binaries for selected operating systems are available in Releases section.

If interested into running FujiNet-PC with Altirra take a look at FujiNet-PC Launcher. The provided bundle includes FujiNet-PC binaries, Launcher GUI, NetSIO hub and NetSIO custom device for Altirra. An alternative to all in one bundle is a variant which includes scripts only (no binaries). Python 3 is needed to run scripts.

Build instructions

The build process is controlled with CMake. Build works with GNU Make or Ninja build systems, with GCC or Clang/LLVM C and C++ compilers.

Build tools

The steps to get ready for building on macOS are described here and for Windows here.

To install necessary build tools on Debian, Ubuntu and derivatives:

sudo apt install cmake g++

Dependencies

Install necessary build libraries.

Debian/Ubuntu

sudo apt install libexpat-dev libmbedtls-dev

macOS

brew install mbedtls

Windows MSYS2 CLANG64

pacman -S clang64/mingw-w64-clang-x86_64-mbedtls clang64/mingw-w64-clang-x86_64-python-jinja clang64/mingw-w64-clang-x86_64-python-yaml

Python packages (all platforms)

Install Python packages for scripts used for build.

python -m pip install -U Jinja2 pyyaml

Build

Linux and macOS

# get the source code
git clone https://github.com/FujiNetWIFI/fujinet-pc.git

# enter build directory
cd fujinet-pc/build

# prepare build
cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug

# run build
cmake --build .

# after successful build populate dist directory with necessary files
cmake --build . --target dist

Windows

To build on Windows use MSYS2/CLANG64 environment. Start CLANG64 shell (clang64.exe).

# get the source code
git clone https://github.com/FujiNetWIFI/fujinet-pc.git

# enter build directory
cd fujinet-pc/build

# prepare build
cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug -G "MSYS Makefiles"

# run build
cmake --build .

# after successful build populate dist directory with necessary files
cmake --build . --target dist

SD Card

FN-PC uses SD folder, not real SD Card. Visit FujiNet SD Card to get some useful utilities which can be placed into SD folder.

Run it

dist directory (build/dist) contains files needed to run FujiNet-PC. You can run fujinet directly inside dist or copy/move/rename the dist directory to the place of your preference and run fujinet from there.

# enter dist directory (or copied/moved/renamed directory, if you copied/moved/...), must be inside
cd dist

# optionally, put some additional disk image(s) to SD sub-directory
cp /your/dir/some/image.atr SD

# start fujinet with wrapper script
./run-fujinet  # or run-fujinet.bat from Windows command prompt

It can be stopped with Ctrl+C

Configure

Visit http://localhost:8000 and configure Serial Port to communicate with real Atari or enable SIO over Network for communication with Altirra Atari emulator.

For emulator options check instructions here. Alternatively, FujiNet-PC Launcher can be used.

Connect SIO2PC/USB and boot the Atari from FujiNet.

By default FujiNet Web Interface is available on port 8000 listening on all available IP addresses. This can be changed with -u <URL> parameter. For example:

# to limit the web interface only for machine which is running fujinet 
# and to listen on non-default port 9001
./run-fujinet -u http://localhost:9001

# "http://" part can be omitted
# this will make web interface available on any address assigned to PC/Mac/RPi
# port for web interface will be 8080
./run-fujinet -u 0.0.0.0:8080

fujinet-pc's People

Contributors

tschak909 avatar jeffpiep avatar kaelef avatar mozzwald avatar a8jan avatar idolpx avatar oliverschmidt avatar markjfisher avatar techcowboy avatar themontezuma avatar jagmod avatar robjustice avatar juzzas avatar damosan314 avatar wschaub avatar dillera avatar billkendrick avatar frachel avatar michaelsternberg avatar ericcarrgh avatar dabada79 avatar 8bitandmore avatar fozztexx avatar djtersteegc avatar mnemo70 avatar a8bit avatar mike-wiese avatar 48kram avatar ivanizag avatar turboss avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.