Project Bliss-Box completed - an all in one usb adapter

Started by ulao, April 12, 2010, 01:24:44 AM

Previous topic - Next topic

ulao

Just wanted to post this, something I have been working on for some time. I have been making quite a few of then and finally after 2 years I have no pending orders.  So I figure it would be best to start a bit of advertising.  There are currently a lot of options here, I make singles doubles arcade cabs inserts and for the most part anything you can think of.  There is also a a cheep DIY version.

So what is it? -- This thing will adapt just about any controller to usb, and  with no switches or keyed cables, It does so  via my own auto-detection algorithm.

for a Full list see the compatibility list go here.
http://spreadsheets.google.com/pub?key=tGD-U_eW1Rc7rNyqkpgJuIg&output=html


Here is a preview

 
here is the main site.


This adapter hands down is the most comprehensive adapter out there and does not require anything more than plugging it in.

Features
    *  Auto Pause, most controllers have an auto pause when the controller is unplugged. When you are in the middle of a game and your fried, wife, or otherwise clueless parter trips over your cord resulting in NO GAME CONTROLE, the game will pause ;)

    * Auto Detect, no switches needed. The Bliss-Box will detect the controller. The Bliss-Box is Out of the Box ready. Nothing need, no drivers, wiring, or setup. Plug in the controller, then the Bliss-Box, and you are done.

    * Upgrades. The chip is designed to be upgraded via the neogeo connector. If you know how to use an avr-isp you can do this on your own, otherwise it requires shipping to be upgraded. For avr info see the technical page.

    * Full emulation, each controller is fully emulated unless otherwise stated. For example psx2 pressure sensitive buttons work! Version 1.0 of the Bliss-Box did not indented to support rumble or mem pack reading. This is planned in 2.0 (see 2.0 notes in "what is new new" section)


I have started working on 2.0 that will support rumble, mempack, and the ability to work on consoles.

 I'm not going in to details about cost and what not, feel free to browse the site if this sort of thing interests you.  If anyone is interested in how I adapted any of these controllers, I'd be happy to explain.  If you have a controller you think would be cool to add to my list , challenge me.. I have not met one I could not do yet. In some case I even custom make the plugs like nes-v-boy and pcfx . The Dream cast was the beast of them all and I'm the only one able to do this on a 12 mhz chip.  Unfortunately I cant do 3rd party DC's  on this chip, but 2.0 will have a 16 mhz and allow 3rd party DC's controllers. 

If you have any questions you may email me or post here but for the most part the site should clear things up.

kendrick

I don't doubt the potential usefulness of this device, and I applaud every bit of hard work and engineering genius that went into it. But that image is gloriously, unintentionally hilarious. It's like a reverse tentacle porn monster, which has a hundred orifices instead of a hundred phalluses.

ulao

QuoteIt's like a reverse tentacle porn monster, which has a hundred orifices instead of a hundred phalluses.
wow I have heard some negative comments on the design but that takes the cake :)   , and thx for the kind words :)

I hate to think what your intentions woudl be with this box... Funny before I locked the name of the box down I did not take the time to research the name. Searching on blissBox is not recommended. I wonder if you knew the connection before posting that?

Waterbury

Quote from: ulao on April 12, 2010, 06:42:01 AM
QuoteIt's like a reverse tentacle porn monster, which has a hundred orifices instead of a hundred phalluses.
wow I have heard some negative comments on the design but that takes the cake :)   , and thx for the kind words :)

I hate to think what your intentions woudl be with this box... Funny before I locked the name of the box down I did not take the time to research the name. Searching on blissBox is not recommended. I wonder if you knew the connection before posting that?

I going to have to take a sip of the hater-ade and say the project box could use a redesign. The texture of the plastic makes it look like alligator skin, and after what kendrick said, good thoughts don't come to mind.  :o

As far as the engineering side of things, this box is incredible. I read you are considering writing code to implement reading N64 controller packs, that would definably be a step up from other boxes.

With all these ports, I wonder if the project wouldn't be better served having multiple cables coming out as the ports.  Something like the video cables in the picture below:


ulao

Yeah I know well and good that the design is not the most appealing. The texture actually is not that bad up close not to mention can be sanded down on request ( but have had no-one request it yet) . I'm working with a few plastic makers and hopping for a better design.  As for the cable thing,  I have no way of making some of the cables. Making the ports is one thing but a modest homemade cable would be way uglier.   The other option is to make a universal cable but that means 15 patch cables to make and not to loose.. So the community I was working with agreed its best to have them on the box.

And really, you can buy the board for cheep, so if you dont like the design , make your own ;) This is just what works best for the general non DIY public.

Yes version 2.0 will have mem pack reading and rumble support, along with being able to work on a Xbox and possibly a few more consoles. I'm planning on reproducible the n64 Adaptoid dongle as I get so many requests for this and also plan to make a version go from n64->usb and n64->GC and GC->n64 and GC-->usb. Seems to be a lot of interest in that also.

And there is always other colors.


Waterbury


ulao

Just wanted to through an update on here, I was finally able to get HID-FFB to work.  That is a non driver based force feed back descriptor. This has to be one of the most difficult things I have ever done and as far as I can tell I'm alone.  So far I can support n64,cameCube,psx, and dreamcast. Can anyone think of any other controller that should rumble?

On an interesting note. The Dream cast has 15  levels of power. 0 to 7 0 to -7. It is actually only 8 levels.  off,1,2,3,4,5,6,7 because the negatives just spin the motor the other way.  now here is the interesting part.  they use in like so 0bx111x111 where the 1's are data 7 bits for each direction.  So in essence you would do this..
01110000 7
01100000 6
01010000 5
01000000 4
00110000 3
00100000 2
00010000 1
00000000  0

Now while working with a saturn pad I saw 3 bits come across that I toss out. No one knows what those bits are used for... Hmmmm any saturn pads use rumble?




kendrick

I think the leading theory is that those three bits are for the second analog input. The only device that uses that signal is the Mission Stick, which has an option for you to attach a second joystick from another unit. Panzer Dragoon Zwei lets you use one for movement and another for aiming, but I'm not aware of any other games that even support the feature.

ulao

Initially I though the same , but what are you going to do with 3 bits? Not much analog data can be used there.  Also on my mission stick nothing ever come across those bits but zeros, whether I use the right or the left side.  Unless they use the bit to alternate back and forth, sampling from one joystick then the next but in that case why 3 bits? Maybe I need to get a second joystick.

l_oliveira

Sorry to bump a old thread but I just saw it now. The three bits that are tossed out are used to identify (on a real console) that a Saturn controller is connected. The port is capable of using legacy controllers too (SMS and MD) so an method of detecting the controller type is necessary.

ulao

No that is not right, First if you have access to the analog data you can clearly see the ID of the device is in the first and second  data set. There would be no need to have two sets of id's. Second if you watch this data its never anything but 000.

see my thread on the analog controller
http://nfggames.com/forum2/index.php?topic=3726.0


Here are the data coming in.The ID is  in the first set of data and works for analog or digital mode. In digital mode it stops at 6. analog mode goes to byte 14

00         1          NA ( maybe second part of ID data )
01         2          ID
00         3          right, left, down up ( Directional keys )
01         4          Start, A, C, B
00         5          Right shoulder, X, Y, Z
01         6          Left shoulder, 1, 1, 1 ( no idea what these 3 bits are for )
00         7          X axis first 4 bits
01         8          X axis second 4 bits
00         9          Y axis first 4 bits
01         10        Y axis  second 4 bits
00         11        R_shoulder first 4 bits
01         12        R_ shoulder  second 4 bits
00         13        L_shoulder first 4 bits
01         14        L_shoulder  second 4 bits

I have a 3d pad, mission stick, and wheel. None of these use those bits. Here are the ID's in data 2
1001 3d pad
0101 ms
0011 wheel
0000 Pad


l_oliveira

Quote from: ulao on January 21, 2011, 12:36:36 AM
No that is not right, First if you have access to the analog data you can clearly see the ID of the device is in the first and second  data set. There would be no need to have two sets of id's. Second if you watch this data its never anything but 000.

see my thread on the analog controller
http://nfggames.com/forum2/index.php?topic=3726.0


Here are the data coming in.The ID is  in the first set of data and works for analog or digital mode. In digital mode it stops at 6. analog mode goes to byte 14
...
01         6          Left shoulder, 1, 1, 1 ( no idea what these 3 bits are for )
...


I'm talking exactly of these  "no idea what these 3 bits are for". These bits are the  three pins of the two 74LS153 chips that are not connected to any buttons.  They're respectively Pins 3 (goes to D0 when address is "11") and 13 (Goes to D1 when address is "11")  of the first chip, Pin 3 (Goes to D2 on the port when address is "11") of the second that chip goes to +5v.

Read back of that nibble should be:

Lbutton bit + "100".

Schematic for the saturn pad posted on this very forum:

http://nfggames.com/forum2/index.php?topic=3686.0

It's an extremely simple circuit which only supports 4 address states, if you see "100" on D2, D1 and D0 of the last address you should refrain from trying to detect other pad types as you can see, you will end reading button presses by the user instead of "detecting" anything valid.

Additionally, if these three lines were not connected, one could use 16 buttons with that design. The Saturn uses the 3 bits to determine if the pad is connected. Obviously it does different things if that value is not "100" as the other more advanced pads actually have microcontrollers in them...

You could try an standard Saturn pad on your bliss box, while it's detecting which pad is connected, try mashing buttons on the pad, it may have unexpected results... :)

ulao

I pmed you a link please dont pass the link around.  You can clearly see the data  I'm talking about is for something else.  This is a page from the saturn tech manual .  If you watch this data its clear the datsa 2 is for ID's.

Like you said it may be for additional button that were never implemented. Either way, if you watch this data it never changes from 0,0,0 in analog mode.

If you set the bits to on on you will get L x x x and sure its possible that the digital pad will respond with L 1 0 0 with the Dpad ( like you indicate its hardware fixed )but that is not an ID.  All other devices use this analog protocol for the most part.  And that is what the mystery is about.

The ID of the pad is clearly in data 2 as I already pointed out.  The digital pad may have 100 for those bits but the ID of the dPad is not 4 its 0.  If you want the ID from a pad you simply send 1,1,1 followed by an 0,1.1  Once you have the id you know how far to run the protocol before sending the termination bits.  

imparanoic

wonderful engineer project, but very ugly design, at best described as very utilitarian.

surely, a better material such as transparent acrylic (show the nice guts of your work) or even with some blue leds and frosted acrylic

or even more retro and uniquely gaming design, a large preused cartridge casing/housing such as nes or neogeo would be so  cool or a gutted gameboy housing.

imparanoic

yes, bliss box also may also sounds like if it has some hentai gaming function

ulao

Yeah I'm no fabricator. If I ever get the money and wish to mass produce it, I will redesign the look for sure.  I realized blissbox was connected to such a thing much too late. So for only two people made the connection are you and the one other guy bashing the design. It all comes down to the users though, and they dont really care what it looks like or what the name is, it works, and it does what they want.

ulao

Ok I got the rest of the saturn manual. Those extra bits are just what was figure "for future use " They where just never used. They provide room for 3 more buttons.

imparanoic

considering you have seem to mastered the art of creating the holy grail for joypad/joystick connectivity to usb

a even more useful item which you oculd create and may even a lot of demand

would you consider making a USB  joystick adaptor to individual consoles, ie, maybe using a hori joystick to control pc engines, snes, gc, saturn, neo geo, ps1, etc

ulao

its in the works for 3.0 and I think micro here may have the solution. He has developed a wireless transmitter/receiver  that takes X controller and goes to "many" consoles. So my plan is to like up to the transmitter and let his product to the rest.

reasons to consider.
1) wireless is ideal,  as multiple cables hanging off the end would be uglier that it is now.
2) There are a few project out there that do this like UPCB, but they are designed to use an arcade stick on all consoles not any controller.
3) button mapping hell! Fortunately my controllers use a global button paradigm. This does not defeat the art of preference.  Someone will be unhappy with it.

I really hate to design a driver but I dont see this working well with out it.