Retrode Forum

General Category => General Discussion => Topic started by: EvilDragon on 13/Jun/2015 11:42:00 AM

Title: RetroPi / more plugins
Post by: EvilDragon on 13/Jun/2015 11:42:00 AM
Hiya,

first, let me introduce myself here on the boards.
I'm EvilDragon, the one running the DragonBox Shop and also the one now handling the production run for the Retrode2 and the Plugins (thanks to Matthias :))

I'm currently planning some new addition, which might be of interest for you.
I'm planning to fund it via Kickstarter, so please support me if you like :)

A lot of people like the Raspberry Pi2, as it is perfect for running emulators and also has some nice frontends.
However, what the Pi2 is missing is a cartridge slot and controller slots.

That's why I want to create the RetroPi - a simple case where you can put the Retrode2 and the RaspberryPi2 PCB in to turn both into a perfect retro-gaming console.

Here are some quick CAD-Pictures (not yet finished):

(https://forum.retrode.com/proxy.php?request=http%3A%2F%2Fboards.openpandora.org%2Fuploads%2Fpost-1-0-70817100-1433510707.png&hash=e6c6cdcc19e9b29f92c6de3f7db804271e2fda25)

This is what it will look like from the front (though we need to change the height, so that the N64 plugin will fit including the controller ports).

In the back right you can put in the Pi2.

(https://forum.retrode.com/proxy.php?request=http%3A%2F%2Fboards.openpandora.org%2Fuploads%2Fpost-1-0-94170100-1433510712.png&hash=800606fa3bf457312aa4aee73dd454687ed0228e)

This is how it will look like from the back. As you can see, both the USB Port of the Retrode and all ports of the Raspberry Pi are accessible, but all cabling is nicely hidden thanks to the roof.

So you can still use the Retrode with your PC, and when you want to use it with the Pi2, you can use a short USB Cable which is completely hidden.

You still got Network, USB, etc. on the Pi2.

As the Pi2 has both HDMI as well as analogue TV out, you can play on modern LCD and classic CRTs.

Additionally, as stretch goals, I'd like to offer more plugins.
AFAIK, there are schematics for PC-Engine, NES and VCS2600 available.
How well does NES work? I know it has literally hundreds of mappers - do they all work?

Well, I hope you like the idea and I'm happy if you post some more ideas, etc. here.
And - of course - support the Kickstarter when it goes life (probably in about 2 - 3 weeks).
Title: Re: RetroPi / more plugins
Post by: information_paradox on 14/Jun/2015 01:27:58 PM
I've never used the Raspberry Pi, but this seems interesting.
If the option of using it in a pseudo integrated fashion with the Pi offers a more console like experience, it may garner more interest. Especially if an OS/emulator front end can be tailored for such a purpose.
Getting a few more adapters is probably crucial for generating more interest in the Retrode as well.
Lack of formal support for NES probably keeps a good number of people from taking the plunge.
There are a lot of mappers. I've heard that the vast majority of them are used more for home brew and pirate games though. Seems like most of the NES catalog uses just a handful of mappers.
I'll keep an eye out for the Kickstarter.
Title: Re: RetroPi / more plugins
Post by: Matthias_H on 15/Jun/2015 01:58:34 PM
So has anyone ever managed to set up a practical Retrode+Pi combo that performs reasonably well? From what I've seen, the software side will require lots more work. My solution was really, really rudimentary, and then there is still this unresolved problem of abysmal data rates that some users report (https://twitter.com/aaale83/status/608582640485167104).
Title: Re: RetroPi / more plugins
Post by: Adr990 on 15/Jun/2015 06:19:29 PM
Ohhh yes please!

I sure want to be updated about the Kickstarter, I am probably really interested int this one.
(I was just thinking about getting a Retrode with the Pi2)

Thanks for doing this :D
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 16/Jun/2015 02:52:04 AM
Quote from: Matthias_H on 15/Jun/2015 01:58:34 PM
So has anyone ever managed to set up a practical Retrode+Pi combo that performs reasonably well? From what I've seen, the software side will require lots more work. My solution was really, really rudimentary, and then there is still this unresolved problem of abysmal data rates that some users report (https://twitter.com/aaale83/status/608582640485167104).

Hmm, I tried it at the GamesCom with a Pi - while the transfer wasn't the fastest (loading StarFox took about 30 seconds), it wasn't that bad either.

Maybe it works with a Pi2 - I'll try setting it up properly.

I found someone who created some scripts for RetroPie to make the Retrode working, so it should work.

I'll play around with that :)
Title: Re: RetroPi / more plugins
Post by: rayman on 17/Jun/2015 08:53:52 PM
I would like to request making any plugins available standalone on the kickstarter too!
Personally, I refuse to use raspberry pi for anything (Don't ask), but I do intend to use my newly ordered retrode with my Nvidia Jetson board and perhaps a custom 3d printed case.
Either way, more, buyable, plugins would be awesome in itself! (for those of us challenged in the way of building our own)

Case design looks great btw!
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 19/Jun/2015 02:22:43 AM
Well, if the plugin goals for Kickstarter will be reached, you will be able to buy those at the shop regularly as well.

Quick update:
We installed RetroPie 3 Beta on a Pi2 today.
Just symlinking /media/usb into the emulators directory makes the Carts appear in the emulator list once you plug them in - automounting works like a charm :)

We got an issue with the controller though - it seems the DPad registers as analog axis and most emulators don't work with that.

Does anyone has any suggestions for that?
Should I simply change the Joystick mode inside the Retrode.cfg?
Title: Re: RetroPi / more plugins
Post by: Aleron Ives on 19/Jun/2015 05:35:57 AM
Did you try HIDMode 3 or 4 to simulate keyboard input instead of controller input? If you can't get USB controllers to work, using keyboard mode may work.
Title: Re: RetroPi / more plugins
Post by: Wannado on 21/Jun/2015 11:04:16 PM
Quote from: EvilDragon on 13/Jun/2015 11:42:00 AM
How well does NES work? I know it has literally hundreds of mappers - do they all work?

A few details about the NES plugin (prototype):

And one thought about your RetroPi case:
Title: Re: RetroPi / more plugins
Post by: hammer on 02/Jul/2015 04:13:48 PM
I honestly don't care about Pi and maybe wouldn't support the kickstarter as a result, but I really want the NES, VCS, and PC Engine plug-ins. I can't be the only one. Why not kickstart those separately?
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 02/Jul/2015 05:16:00 PM
Sorry for the lack of updates, had a few things to try around :)

First: The slow transfer still exists on the Raspberry Pi2. It's not that bad with Sega or Nintendo games, but an N64 game takes 3 minutes.

Thanks a lot Wannado for your information.
It sounds you are working on the firmware - did you do it from scratch?
I can imagine the firmware needs some fixes to work with the Pi. Maybe something isn't 100% conform?

The case has already been changed so that the N64 plugin works as well, right now it's not that useful though.

Now, my findings about the firmwares:

FW 0.17:
That one works with the Raspberry Pi, both for joysticks, keyboard HID mode and cart reading. It doesn't support the N64 sticks yet though, and the joysticks have the issue that the DPad register as axis, which doesn't work well with most emulators.
In keyboard mode it works fine though.
The only real issue here is the transfer speed, and the non-working N64-controllers.

FW 0.18:
Well, that one doesn't really work well at all.
When the Retrode is plugged in, it takes quite a while until it is finished initializing (10 - 20 seconds), whereas FW 0.17 initializes almost instantly.

Reading the carts works fine, but is still slow.

From what I read in the changelog, it has some changes in the HID mode (which could probably fix the DPAD-Issue in joystick mode?), however, for some reason, on the Raspberry Pi it doesn't work at all anymore.
dmesg finds the joysticks (or keyboard, when I change to that mode), but strangely, the Linux system doesn't find any joysticks and the keyboard doesn't even work anymore in the terminal.
So I can't get ANY input on the Raspberry Pi with FW 0.18 (regardless which version).

I wonder whether there is something wrong with the HID setup in the Retrode?

I'll try playing around with the USB drivers parameters on the Raspberry Pi to see if that changes something.
According to dmesg, the Retrode is being found as Highspeed device, but AFAIK it should be USB 1.1, maybe that has something to do with the speed cap?

Anyways, I'm happy to test out any experimental firmware version, and I'd love to support the development as well.
Maybe Matthias could also give me the sourcecode of the standard firmware (or release it to the public), so we can work on fixes.
I'd be happy to pay for improvements and bugfixes as well, I'd love to improve the Retrode further.
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 02/Jul/2015 05:18:21 PM
Quote from: hammer on 02/Jul/2015 04:13:48 PM
I honestly don't care about Pi and maybe wouldn't support the kickstarter as a result, but I really want the NES, VCS, and PC Engine plug-ins. I can't be the only one. Why not kickstart those separately?

I can entirely imagine doing that, in case we won't reach the stretch goals.
Title: Re: RetroPi / more plugins
Post by: Matthias_H on 04/Jul/2015 04:32:16 AM
Quote from: EvilDragon on 02/Jul/2015 05:16:00 PM
Thanks a lot Wannado for your information.
It sounds you are working on the firmware - did you do it from scratch?
I can imagine the firmware needs some fixes to work with the Pi. Maybe something isn't 100% conform?
[...]
I'll try playing around with the USB drivers parameters on the Raspberry Pi to see if that changes something.
According to dmesg, the Retrode is being found as Highspeed device, but AFAIK it should be USB 1.1, maybe that has something to do with the speed cap?
[\quote]
Retrode's USB controller is 2.0 Full-Speed, not 1.1.
Quote
Maybe Matthias could also give me the sourcecode of the standard firmware (or release it to the public), so we can work on fixes.
Sure, why not. Though I figure a first place to look would be USB communication. Install a sniffer and see how Raspi differs from, say, Windows protocol.
Title: Re: RetroPi / more plugins
Post by: MasterOfPuppets on 06/Jul/2015 10:02:27 PM
Quote from: EvilDragon on 02/Jul/2015 05:18:21 PM
I can entirely imagine doing that, in case we won't reach the stretch goals.

I'd like to see a Virtual Boy plugin produced, even if it doesn't have an edge connector (though that would be nice as well).
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 08/Jul/2015 10:00:21 PM
Just a quick update:
Getting the case printed, so Kickstarter shouldn't be too far away.
Title: Re: RetroPi / more plugins
Post by: gadgetoid on 09/Jul/2015 06:08:23 PM
I've installed WireShark and captured a whole bunch of packets of a Pi ( B+ ) talking to Retrode 1. I haven't got a capture for context/comparison yet, but I'm seeing mostly blocks of 30 URB_SUBMIT requests of 64byes each, followed by 30 URB_COMPLETE responses of 4160 bytes each- intermingled with other cruft like submits with 77 or 95 byte responses.

A typical response block of 30 responses seems to take 1.9sec and constitutes 0.1mb data. There's a load of other noise, but if I'm not wrong that's ( Super Mario 64 ) 16MB/0.1 = 160  * 1.9 = 304. Which is about 5 minutes, or just under the amount of time it took for a straight copy. So I'm obviously getting the right data.

More when I get Wireshark running on my Mac or PC.

Title: Re: RetroPi / more plugins
Post by: Wannado on 11/Jul/2015 05:02:29 PM
Quote from: EvilDragon on 02/Jul/2015 05:16:00 PM
Thanks a lot Wannado for your information.
It sounds you are working on the firmware - did you do it from scratch?

Fortunately, doing it from scratch is not necessary. And if I tried that, it would fail for lack of time. I only refactored some code that had grown heavily with all the plugins added. I hope it's now easier to understand, maintain and expand.

So far, no firmware release has been built from the refactored code, but I hope the next beta release will be.

The refactoring happened a while ago, and I mostly worked on the NES plugin since then. Recently, I'm trying simplify a few more things in the standard firmware.


Quote from: EvilDragon on 02/Jul/2015 05:16:00 PM
I can imagine the firmware needs some fixes to work with the Pi. Maybe something isn't 100% conform?

I recently streamlined the initialization sequence a bit. But I have no Pi, so I cannot test if the change has any effect on that.


Note: I may not be able to respond to any posts in the next few weeks. In the best case, I'll manage to make some progress on the firmware.
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 12/Jul/2015 01:12:05 AM
I'm happy to test anything you send me :)

Simplifying will surely help, it might fix something automatically - and if not, it'll at least make things easier to debug.
Title: Re: RetroPi / more plugins
Post by: EvilDragon on 06/Sep/2015 11:26:06 PM
Okay, took a look at the Joystick ports on a Linux system today. It seems to me the Retrode2 is not reporting the joystick devices properly.
Here's what happens (with current 0.18 firmware):

HID Mode 1:
"4 USB game controllers plus mouse"

The devices are NOT reporting themselves as joysticks / joypads.
Therefore, only the mouse is found - and the rest appears
as /dev/input/eventx in Linux. They should appear as /dev/input/jsx,
but apparently Linux does not recognize them as joystick.

HID Mode 2:
"2 USB game controllers. The left Sega and SNES ports are both mapped to
controller 1, the right ones to controller 2. Up to 2 players."

In that mode, the Retrode2 appears as ONE joystick (/dev/input/jsx)
with lots of buttons on a Linux system.
Both the DPad for the left and right controller ports appear as the
same axis, the left controller uses Buttons 1 - 8, the right one higher
numbers.

So the joystick setup is something that could need a fix in the
firmware to properly work with Linux.

Ideally in HID Mode 1, it should appear as 4 joysticks and a mouse. And
in HID Mode 2 as 2 joysticks.

I haven't tried the N64 sticks yet, but the analog stick should also
appear as analog stick I guess :)

Hopefully, it's just a small fix that's needed in the firmware - maybe
just some USB description is wrongly setup.
Title: Re: RetroPi / more plugins
Post by: datastry on 21/Aug/2017 02:38:18 AM
Apologies for replying to an old post, but I tried a new post and it got no response.
(http://forum.retrode.org/index.php/topic,366.0.html (http://forum.retrode.org/index.php/topic,366.0.html))

Can you tell me if there's been any development on Linux support?
I just received a new Retrode and it is performing exactly as described in the last comment of this thread.
Title: Re: RetroPi / more plugins
Post by: ssokolow on 31/Aug/2017 02:12:05 PM
EDIT: Oh yeah. The post I was replying to is a repost. I've moved this post to the original thread (http://forum.retrode.org/index.php/topic,366.0.html).