atari800 / atari800

Atari 8-bit computer and 5200 console emulator
https://atari800.github.io/
GNU General Public License v2.0
343 stars 95 forks source link

Add supported procedure to connect to FujiNet device #127

Closed eahumada closed 4 months ago

eahumada commented 3 years ago

Add support procedure to connect a real FujiNet device via SIO2USB cable.

https://fujinet.online/

mikrosk commented 3 years ago

I'm sorry but what's the idea here? Fujinet is a Atari device, that way you could ask to support basically any Atari peripheral via SIO2USB... more sense would make to emulate (some of) its features in software.

eahumada commented 3 years ago

Yes, you are right, could be great to emulate some of the features (to play online for example with FujiNet users or open files over the network using the same software and protocols that FujiNet from the emulator). I wonder if require some extra work to connect from the atari800 emulator to Fujinet, or simple connect it via SIO2USB will work.

Also, I get some answers here: https://atariage.com/forums/topic/316678-connect-atari800-emulator-on-pc-to-sio-fujinet-device/

eahumada commented 3 years ago

Is the access to the emulated R: device enabled by default? How can be enabled? I'm running on MacOSX Catalina and installer atari800 using brew (brew install atari800). When I issue 'atari800 --help' I don't see the -rdevice options in the list.

mikrosk commented 3 years ago

simple connect it via SIO2USB will work

No it wont but it shouldn't be that much work either.

Is the access to the emulated R: device enabled by default

Yes, at least in the newer versions (Linux/Win32 only).

mikrosk commented 3 years ago

Out of curiosity I have taken a deeper look on R: -- there are basically two ways how the FujiNet integration could work:

The former looks to me way easier. I personally do have a FujiNet adaptor + SIO2USB but right now they are in storage and to be honest, its usage in an emulator is not exactly on top of my Atari TODO list.

mozzwald commented 3 years ago

There has been some success at porting the FujiNet code to PC (more info here and the ported code here). This may be useful for adding something to atari800. I'm not familiar with atari800 myself, just sharing what I know.

Another option would be to connect a real FujiNet device to the host machine running the emulator, but I'm not sure that all the SIO pins are emulated. FujiNet requires all of the SIO pins.

mozzwald commented 1 year ago

FujiNet-PC has matured since I last posted here so I figured I would update with some more info.

fujinet-pc uses a custom netsio protocol which communicates over UDP and can be used by emulators to send/receive Atari SIO data. This protocol is currently being used with the Altirra emulator via the fujinet-emulator-bridge. The protocol is documented in the bridge repo at https://github.com/FujiNetWIFI/fujinet-emulator-bridge/blob/main/netsio.md.

From what I can tell of the atari800 emulator (please correct me if I am wrong), the INTERRUPT and PROCEED SIO lines are not used anywhere. These are required for the FujiNet network device to function. FujiNet uses these to notify the Atari when more data is available from the network to read.

I have been thinking about how to implement this in atari800 and my first thought is to have a fujinet mode (command line option?) that pipes all SIO traffic through netsio to fujinet-pc and disables all atari800 SIO devices. Fujinet emulates most of the devices that atari800 does so it could be easier to just use one or the other.

Edit: if anyone has ideas or tips of where to even begin or if this idea makes sense, please share

mikrosk commented 4 months ago

Discussed already in #226, TL;DR: patches are welcome but we certainly don't have capacity to do this on our own. :(