Jump to content
IGNORED

Atari 2600/7800 Dualshock 2 Adapter Part Deux


CPUWIZ

Recommended Posts

Just need some clarity on how this listings translate exactly:

 

FIRE1

FIRE1A

FIRE1B

 

FIRE2

FIRE2A

 

I guess what's throwing me a curve is why three fire listings for Player 1?

 

How exactly does...

 

Player 1 Left Fire Button

Player 1 Right Fire Button

 

Player 2 Left Fire Button

Player 2 Right Fire Button

 

...translate?

 

I could possibly see...

 

FIRE1 = Player 1 Left Fire Button

FIRE1A = Player 1 Right Fire Button

 

FIRE2 = Player 2 Left Fire Button

FIRE2A = Player 2 Right Fire Button

 

...but then I don't understand what is FIRE1B supposed to denote, and why there is no FIRE2B :?

 

Pardon my ignorance. :dunce:

 

I just had an epiphany so there may be a Fire2B, I am just experimenting. :-o

 

Ok, let me make the button situation a bit more clear. Instead of using the funky resistor circuit, I figured out what you need to do in order to make it function properly with a MCU.

 

The 7800 uses the 2 paddle lines for the left and right fire buttons, in conjunction with the original fire button.

 

So if you want a button to be the left fire button on a 7800 game, you would insert "Fire1 + Fire1A" and if you want a right button "Fire1 + Fire1B". But for a 2600 game like Omega Race, you would need to assign Fire, Fire1A and Fire1B to different buttons.

 

Does that make more sense?

  • Like 2
Link to comment
Share on other sites

Remember both the 7800 buttons are the 2600 one fire button.

 

That is precisely why you need to specify left as "Fire1 + Fire1A" and right as "Fire1 + Fire1B", so it still works on a 2600. ;) But if you want to use it for a 3 button game on the 2600, you need to use all 3 on their own.

Link to comment
Share on other sites

I know people are mostly not tickled by this (judged by the lack of responses), but I just optimized the hell out of some other section and I bet I can get close to 30 configs working now. So I wrote some code where you can use the SELECT button as a SHIFT button so to speak and select even more configurations.

 

If you are interested in a configuration for another system, just replace the names with the pin numbers and state (HI/LO) of the pin, when a button is pushed.

 

 

DualShock2_Template_Config2.png

  • Like 1
Link to comment
Share on other sites

This is all I could think of. Something compatible with batari BASIC games that use a Genesis controller. The extra Genesis button being designated P1 FIRE 2 and P2 FIRE 2. Alternatly for 7800 use P1 FIRE 2 and P2 FIRE 2 would be the standard 2nd button.

 

This is the closest config I could think of that matches how I think a PSX joystick works for most games. I also took into consideration how the SNES joypad buttons are placed. This config should work for Princess Rescue as well as future games that would use the d-pad for shortcuts and analogue for movement.

 

P.S. I PM'ed you further about getting 256k boards for my Tunnel's & Trolls game. I hope we can work something out!

 

post-13304-0-24301800-1416196314_thumb.png

Link to comment
Share on other sites

YES! This is fantastic! Great to see this being worked on.

 

CPUWIZ, my prime concern lies with button layout. You can see mine and other's configuration thoughts here.

 

In summary (for me):

Ergonomically, holding the controller in the natural position of the hand and using your right thumb (Presuming common use of a PS2 pad)...

Button 1/Left button should be Square and Triangle (Tip of thumb usage).

Button 2/Right button should be X and O (Closer to palm usage).

 

If someone were using their pointer and middle fingers from their right hand instead (Presuming common use of a [PS2] Arcade joystick)...

Button 1/Left button should be Square and X.

Button 2/Right button should be Triangle and O.

 

More flushed out reasoning in this post respecting my preference, if interested.

It's really preference. I prefer the buttons in the down and right positions as with Virtual Console Classic Controller and GBA games on DS. I always use option 2 on SMAS but many other gamers hate that configuration. To each his own I guess.

Link to comment
Share on other sites

Can you have two buttons configured to the same input? Like l2 button 1 and x button 1?

If not a robotron with l3 player 1 and r3 players 2 directionals.

Then a dpad player one directional and r3 player 2 directional and x player one left fire and o player 1 right fire. and the same idea with box player 2 fire left triangle player 2 fire right.

 

Sorry I am so dumb I cant even begin to figure out how to use the template.

I would have to go to my computer and use some sorta program? Thats why I cant use symbols and avatar pics cause I do it all on my phone.

Edited by Jinks
Link to comment
Share on other sites

It's really preference. I prefer the buttons in the down and right positions as with Virtual Console Classic Controller and GBA games on DS. I always use option 2 on SMAS but many other gamers hate that configuration. To each his own I guess.

This is why when you plsy any mario hame U have these two config choices.
Link to comment
Share on other sites

OMG, it works!!!

 

I can control all 7 signals on both ports now, for any system that uses a DB9 connector and digital signals. Will update the template now.

 

bounce.gif

Excellent progress with this!

 

Can you use PWM with the pic pins going to DB9 5 and 9? If so, the analog joystick could act as a controller for paddle games.

 

[edit] Missed the earlier comment on PWM requiring a redesign. Bummer!

 

UDLR in one press would be a nice soft reset on a homebrew for sure.

Turning that into a hard reset inside the console should be pretty easy too. You'd need a cheap logic gate IC, a bit of wire, and little else. Maybe add a cap to it so a very brief press is ignored.

  • Like 1
Link to comment
Share on other sites

I would have to go to my computer and use some sorta program?

Hi Jinks,

 

Easiest method for me, is saving the template CPUWIZ provided in the opening post and then opening it under Paint (It's free and comes packaged with every version of Windows). You can then select to add text to the picture (highlighted in a red square box below) and place the cursor in the various box areas.

 

post-18-0-81424400-1416230989_thumb.png

 

To start entering text just click in the location.

If you see the location you picked isn't right hit 'Esc' and try again,

If after entering text, you do not like how it appears, do an 'undo' (CTRL-Z) and try again.

  • Like 2
Link to comment
Share on other sites

Excellent progress with this!

 

Can you use PWM with the pic pins going to DB9 5 and 9? If so, the analog joystick could act as a controller for paddle games.

The pots in the paddle controllers does not operate as a voltage divider but rather drains a capacitor within the console. PWM would only muck up the signal because the logic gate used to detect paddles is digital. When the paddle signal drops above/below the threshold, the state changes. The program counts the length of time transpired since the paddles were reset and this time constant increases as the pot value increases.

 

A better method would be to wait for the reset signal and then hold the state for a certain length of time based on emulated paddle position. The microcontroller has an idea about what paddle position it wants to emulate and holds the output for the specified length of time. The paddle position could either reflect the absolute position of the analog stick or tilting the analog stick could change the delta on the paddle. Delta method would result in smoother movement onscreen since it is difficult to hold an analog stick at a steady position. Using delta, the paddle would only change position when the analog stick is tilted.

Edited by stardust4ever
Link to comment
Share on other sites

Here's my 2nd preference/config setup, still keeping the PS2 pad in mind:

 

attachicon.gifPS2CONVERT_TREBOR2.png

 

 

Here's my 3rd preference/config setup, now keeping a PS2 joystick in mind:

 

attachicon.gifPS2CONVERT_TREBOR3.png

This would be my preference as well. :)

 

Damn I wish we could get the Select / Reset buttons in there... I know they are not extended into the joystick lines, but that would be cool

 

Great job CPUWIZ!

  • Like 2
Link to comment
Share on other sites

Interesting that the PS1 controller used a 7.5v bus. I thought they were 5V or 3.3V like other systems.

 

Edit: apparently they use a standard VCC. The 7.5v is only used to drive the rumble motors.

http://pinouts.ru/Game/playstation_9_pinout.shtml

Edited by stardust4ever
Link to comment
Share on other sites

The pots in the paddle controllers does not operate as a voltage divider but rather drains a capacitor within the console. PWM would only muck up the signal because the logic gate used to detect paddles is digital. When the paddle signal drops above/below the threshold, the state changes. The program counts the length of time transpired since the paddles were reset and this time constant increases as the pot value increases.

Just nitpicking... its the other way around. The cap typically gets grounded as part of vblank. The cap is then charged at a rate proportional to the pot resistance, and the time the logic "1" threshold is crossed is captured by code during the visible display.

 

I'm not sure how using PWM to feed the cap would muck up the scheme. The brief "1" part of the PWM duty cycle will get sucked up by the cap until its charged enough, no?

 

In any case, throw a low pass filter on that PWM and it will be indistinguishable from an analog voltage level, just like the pot.

Link to comment
Share on other sites

Damn I wish we could get the Select / Reset buttons in there... I know they are not extended into the joystick lines, but that would be cool

With this project and all of the custom controller projects coming out, someone should bang out a standard for hardware implementation of Select and Reset over the existing lines. I'll start the ball rolling...

 

Taking Shawn Sr.'s suggestion of "U+D+L+R" for Reset is a good start. I think it would be workable if we split that up into "U+D+L" for Select and "U+D+R" for Reset. The nice bit about this is it wouldn't take a lot more than a couple of logic gate ICs to implement, and it could also be implemented in software, in future homebrews. (so people with new controllers but no mod could still benefit)

 

It would probably need to be a first-port only thing, as I see likely collisions with AtariVox and the Keypad controller. The driving controller, regular joystick operation, and paddles shouldn't be able to accidentally trigger the mod. Anybody see any holes?

  • Like 1
Link to comment
Share on other sites

Exhibit 1: The Kid's Controller.

This setup will work for AlphaBeam with Ernie, (uses keypad buttons 2,4,6, 8.)

Big Bird's Egg Catch (L1 R1)

Cookie Monster Munch (2,4,6,8 and 5 = action)

and Oscar's Trash Race (2,4,6,8 = Direction, 5 = action, and 1,2,3 = pick the number)

Hope this helps, hope this makes sense.

Edited by toiletunes
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.
Note: Your post will require moderator approval before it will be visible.

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.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...