Jump to content

Multiple X8s connected


Recommended Posts

ooh, now you're talking !!!

love simple multi strategy games. was ____totally____ obsessed by a slow as in you ring up once or twice a day to the host machine and your 'capital' if it had enough people produced BTU's beaurcratic time units and so you could do a certain number of commands over time basically. then you'd build your country and armies and wage war eventually, but all in text. Print a map and each tile is just a letter or character. But obsessive. It's not the gfx, it's the strategy.

 

multiplayer online games at any resolution !

it's like a trainset, it's better to imagine the scenery.

 

Link to comment
Share on other sites

I suspect not. USB is usually either a host or a device. A host controls devices. A host cannot control another host.

There are USB on the go connectors that allow the port to be used either as a host or as a device, so it is possible that is what is on the x8, though I doubt it. Also, I would be surprised if the USB on the x8 does more than just present a keyboard and/or mouse as a (possibly virtualized) PS2 device to the hardware.

BUT! Wouldn't it be nice if that were the case? 🙂

  • Like 1
Link to comment
Share on other sites

1 hour ago, rje said:

Does that USB connection mean multiple X8s can be connected together in a strange informal kind of network?

imagine writing a multi-unit game...

From the vague descriptions I have heard of it, it doesn't sound like. It sounds like it is just a USB host for keyboard and gamepad.

But it would be interesting if the serial debug interface could be set up as a two X8 gamelink.

Edited by BruceMcF
  • Like 2
Link to comment
Share on other sites

3 hours ago, Scott Robison said:

I suspect not. USB is usually either a host or a device. A host controls devices. A host cannot control another host.[...]BUT! Wouldn't it be nice if that were the case? 🙂

agree 100 % here on the definition and sentiment, it would be.

 

Now the IRONY is that the name it was given, Universal Serial Bus is neither universal or serial in the RS232/485 sense. It's been hijacked along the way. (stern corporate voice) this is how you all want to use it. this is the choice you'll all make.

 

Similar pops to mind, there are WIFI routers, and they've got all the hardware right there, it's right there, but it's not very accessible, there is wrt and tomato, however you just can't hack it to do something so obvious, like connecting two computers by USB you can't easily connect a HD to a router and have it serve up all your personal or public websites. Can be done, but so hard to do and rare compared to the amount of equipment out there. USB cords and routers a plenty, but you can't do obvious things you want because of (often deliberate) poor design.

 

2 hours ago, BruceMcF said:

But it would be interesting if the serial debug interface could be set up as a two X8 gamelink.

multi player gaming is such an obviously good idea. very important.

Edited by Oldrooster
forgot to add "multi player " at the end
Link to comment
Share on other sites

NO.

2 hours ago, Oldrooster said:

Now the IRONY is that the name it was given, Universal Serial Bus is neither universal or serial in the RS232/485 sense. It's been hijacked along the way. (stern corporate voice) this is how you all want to use it. this is the choice you'll all make.

Wrong, and wrong. 

It is universal, in that it's designed to handle nearly any type of peripheral. It was designed to replace nearly all of the ports on the back of the computer, aside from the video and network port, and it does a pretty good job of that. You can actually build a fully connected, modern PC with nothing but USB ports now, so it is absolutely "universal" in the sense it was intended - that it can replace all of the external interface ports - even video.

I have a monitor, network, keyboard, and external hard drive connected to my laptop through a single USB C port... it doesn't get much more "universal" than that.

As to being "serial"... Yes, it's serial. RS-232 is hardly the only serial format out there, and it's completely incorrect to say something is not "serial" just because it's not RS-232... when you count synchronous protocols and protocols like I2C and SPI, there are dozens of serial protocols available for specific types of connections. 

Edited by TomXP411
  • Like 6
Link to comment
Share on other sites

7 hours ago, rje said:

Does that USB connection mean multiple X8s can be connected together in a strange informal kind of network?

It's unlikely, because that would mean enumerating network devices, which I doubt the FPGA or emulated 6502 are going to do.

MiSTer can actually get computers on the network, but it does so through a kludge: The MiSTer has a full Linux subsystem running, which actually handles the display, keyboard, mouse, game pads, and networking. That subsystem then connects to the FPGA through a set of internal GPIO pins and connects to the same logical connections on the FPGA that are used on the real thing. In the case of the Commodore 64 core, that would be the CIA pins. 

So if the CX8 was to run on MiSTer, then sure - you could get networking by connecting a virtual UART to the Linux host, and from there get out to the world by running a driver that bridges the UART and the network connector. The MiSTer even has a virtual modem that does just that - complete with fake dialup sounds and everything. 

However, if I recall, the FPGA that was described for the Commander X8 does not have a Linux host. However, there does seem to be a UART connected to an ESP32. So it should be possible to get the ESP32 running with either some AT firmware or (preferably) NodeMCU software, which would allow you to program the port and connect to the outside world that way.

 

  • Like 1
Link to comment
Share on other sites

 

2 hours ago, Oldrooster said:

Now the IRONY is that the name it was given, Universal Serial Bus is neither universal or serial in the RS232/485 sense. It's been hijacked along the way. (stern corporate voice) this is how you all want to use it. this is the choice you'll all make.

Similar pops to mind, there are WIFI routers, and they've got all the hardware right there, it's right there, but it's not very accessible, there is wrt and tomato, however you just can't hack it to do something so obvious, like connecting two computers by USB you can't easily connect a HD to a router and have it serve up all your personal or public websites. Can be done, but so hard to do and rare compared to the amount of equipment out there. USB cords and routers a plenty, but you can't do obvious things you want because of (often deliberate) poor design.

It's not ironic at all.  It is quite literally "serial" - a serial interface that transmits a single bit stream.  It also succeeded at being "universal", given how widely it is implemented for many application types and devices.  Firewire is also serial, and peer-oriented (so does not have USBs limitations in that regard), and it pretty readily supports network-style direct links.  But unfortunately, it is decidedly *not* universal at this point, after losing the 'serial bus war' to USB.  Apple's licensing policies, and Intel not including support in their chipsets pretty much doomed it.

I doubt the USB designers' decision to use a host/slave communication style was intended to deliberately prevent direct connections between computers (they added OTG later, to overcome some of those limitations).  But every design has tradeoffs.  I don't know USBs history well enough to say for certain, but there's a good chance that it allowed for simpler/cheaper devices if only one required the ability to act as a host (or a peer, if they had used that topology).  Given the original purpose of the interface and its design goals (faster than existing serial and parallel ports, simpler and cheaper-to-build cabling, basic power delivery, plug and play), and the devices that were being connected (mice, keyboards, printers), that seems reasonable.  Maybe if the X8 ever comes out, someone will hack in a way to tie them together.  Seems like a big "if" at this point.

  • Like 1
Link to comment
Share on other sites

I'm sure universal can mean lots of things, but for us users living in the 1990s, USB was a breath of fresh air.  Previously, we had a different connector for every peripheral.

Its serial nature was similarly a relief.  25-pin printer connectors were ridiculous, and shrinking computer sizes aligned with USB's rise more or less together.  The ability to daisy-chain made me think that the industry finally caught up with Commodore.

 

 

Edited by rje
Link to comment
Share on other sites

21 minutes ago, rje said:

I'm sure universal can mean lots of things, but for us users living in the 1990s, USB was a breath of fresh air.  Previously, we had a different connector for every peripheral.

Its serial nature was similarly a relief.  25-pin printer connectors were ridiculous, and shrinking computer sizes aligned with USB's rise more or less together.  The ability to daisy-chain made me think that the industry finally caught up with Commodore.

 

 

Not to mention if you happened to work in a shop with an old 68030-based minicomputer laying around, with a bunch of dumb terminals. Meant that your cheap boss never just let you just order a serial cable, even if it was something standard for use on someone’s desktop PC. We always had bulk cable and DB9/25 ends laying around, so we always had to build them. USB freed us from that time-wasting task. 
 

I suppose that’s a pretty specific benefit, but it was one I appreciated a lot lol

  • Like 2
Link to comment
Share on other sites

And even the slowest USB standard at 1.5 Mbps was an order of magnitude faster than the maximum "traditional" RS232 speed available on common hardware at the time (115200 bps). When you can transfer 10x more data in the same time over a serial connection, a separate parallel interface isn't nearly as important as it once was.

  • Like 1
Link to comment
Share on other sites

Well anyway.  I don't know why I was thinking of a strange X8 ad hoc connection, except for a niche of games.

Those racing games always work better when each person has his own monitor.  And things akin to FPS.  I'm sure an Ultima-style game COULD have multiple players on multiple consoles -- remember Diablo II?

The limitations of the hardware is a GOOD thing, but I like to test those limits.

 

 

Edited by rje
  • Like 1
Link to comment
Share on other sites

52 minutes ago, rje said:

I'm sure universal can mean lots of things, but for us users living in the 1990s, USB was a breath of fresh air.  Previously, we had a different connector for every peripheral.

When Steve Jobs Apple released the very first Bondi blue iMac in 1998 with NO floppy and NO serial ports (Apple never did Parallel), he was public enemy #1 : )

Companies like Keyspan jumped into the game and made USB to RS-422 dongles much in the same way that you can buy a USB to RS-232 cable today for talking between modern laptops and Arduino Uno sans USB.

It took a while for printers, scanners (SCSI, yuk) and everything else to transition away from legacy protocols.  Ben Eater in his recent vids dives a bit into USB and jokes about the sheer mass/length of the specification.  The low level detail is fascinating and without his body of work and his access to a super expensive scope, USB would be more mysterious than it is.  I find it quite funny that the Commander project found USB to be Kryptonite to Superman only to cave and [presumably] ONLY look to offer USB and no legacy connectivity, not even IEC Commodore Serial.

I'm not sure if USB offers multi-host.  OTG (on-da-go) allows something like a camera to be either (aka talk to a PC for xfer but then negotiate to be a host in order to 'print'). If that can be done quickly, perhaps multiple hosts can take turns when they have something to 'say' and address the other machines in a closed network.  Anybody ever play nSNIPES on the earliest versions of Novell NetWare?

 

  • Like 1
Link to comment
Share on other sites

8 hours ago, Calculon said:

I doubt the USB designers' decision to use a host/slave communication style was intended to deliberately prevent direct connections between computers (they added OTG later, to overcome some of those limitations).  But every design has tradeoffs.

The good news there is that host to host cables are pretty cheap. They usually take the form of either a USB Ethernet bridge or UART bridge. In either case, the cable presents as basically a USB null modem cable, which is super handy when you need to connect just two computers together.

I have one of these that I used to use as a “virtual KVM”. It would present as a 12 Mbps serial cable with an copy of VNC on an integrated flash drive. Just run the server on one machine and the client on the other, and you have remote control and file transfer in one cable. I’m not sure where that got off to, but it was handy the couple of times I used it. 

 

Edited by TomXP411
  • Like 2
Link to comment
Share on other sites

13 minutes ago, TomXP411 said:

The good news there is that host to host cables are pretty cheap. They usually take the form of either a USB Ethernet bridge, or a UART to UART bridge. In either case, the cable presents as basically a USB null modem cable, which is super handy when you need to connect just two computers together. 

Yes, the issue is rather that the USB port may well not be a general purpose USB interface that can be programmed to interface with arbitrary USB devices, but rather implementing to specific USB device protocols.

If that could be expanded to include the USB - RS232C device, then combined with the debug serial port, you might be able to have a ring, then you have a function in the game that picks between "base" and "extend", and base sends the "I'm number 1", that device sends "I'm number two", and so on until the base gets the notice "I'm number X", and sends the message, "there are X devices in the ring" command, which goes around.

  • Like 1
Link to comment
Share on other sites

50 minutes ago, BruceMcF said:

Yes, the issue is rather that the USB port may well not be a general purpose USB interface that can be programmed to interface with arbitrary USB devices, but rather implementing to specific USB device protocols.

If that could be expanded to include the USB - RS232C device, then combined with the debug serial port, you might be able to have a ring, then you have a function in the game that picks between "base" and "extend", and base sends the "I'm number 1", that device sends "I'm number two", and so on until the base gets the notice "I'm number X", and sends the message, "there are X devices in the ring" command, which goes around.

You missed that I wasn't talking about the X8 at this point... that was a comment about USB not being a peer-to-peer protocol, like Firewire. I already explained that the USB ports on the X8 will almost certainly not enumerate anything other than a keyboard and/or mouse. if it's anything like typical microcontroller USB code, it won't even deal with a keyboard that has a hub in it, like a lot of modern RGB or wireless keyboards. USB keyboard ports in microcontroller based devices typically have just enough smarts to deal with a USB HID device and handle keyboard reports.

Edited by TomXP411
Link to comment
Share on other sites

3 hours ago, TomXP411 said:

You missed that I wasn't talking about the X8 at this point... that was a comment about USB not being a peer-to-peer protocol, like Firewire. I already explained that the USB ports on the X8 will almost certainly not enumerate anything other than a keyboard and/or mouse. if it's anything like typical microcontroller USB code, it won't even deal with a keyboard that has a hub in it, like a lot of modern RGB or wireless keyboards. USB keyboard ports in microcontroller based devices typically have just enough smarts to deal with a USB HID device and handle keyboard reports.

Or perhaps what I was interested in was the aspect of what you were talking about which might be applied to the X8.

According to what I recall from the description, it only deals with keyboard and gamepads (no mouse, and that could well just be one device supported if the gamepads work like the cheap USB gamepads I got in China, with each available button press presented as a specific keypress). As you mentioned host to host cables being implemented as UART bridges, that recalled to mind the wish that the USB port could be extended to handling a USB UART device.

If a USB RS-232C serial cable can connect to the debug port, that gives the opportunity for a ring network, where the debug port itself would only support linking a pair of X8 boards.

Link to comment
Share on other sites

22 hours ago, BruceMcF said:

Or perhaps what I was interested in was the aspect of what you were talking about which might be applied to the X8.

According to what I recall from the description, it only deals with keyboard and gamepads (no mouse, and that could well just be one device supported if the gamepads work like the cheap USB gamepads I got in China, with each available button press presented as a specific keypress). As you mentioned host to host cables being implemented as UART bridges, that recalled to mind the wish that the USB port could be extended to handling a USB UART device.

If a USB RS-232C serial cable can connect to the debug port, that gives the opportunity for a ring network, where the debug port itself would only support linking a pair of X8 boards.

A ring network is an interesting idea, though, at least for specific applications like multiplayer games. 

Link to comment
Share on other sites

8 hours ago, paulscottrobson said:

The obvious thing to add to the X8 early on is an ESP32.

Apart from the I/O ports, this also gives you Wifi, Bluetooth, and it also has a data transfer protocol ESP-NOW which I have tinkered with a bit and seems fairly simple and reliable, and talk to it over SPI.

 

And with one pin and re-using the existing SPI MOSI/MISO/SCLK lines, the X8 could talk to it over SPI. That would be a lovely hat.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use