# Search

Web imk.cx ps2dev.org forums.ps2dev.org
# Donate
# Updates
For all updates on any of my projects, please visit my news blog.
# License
This application uses the BSD license and a copy of the included Copyright LICENSE file can be found here for your viewing.
# About This Project
Mikko Mononen wrote the original controller program for the Sony PSP and the server for the PC. After using his program on the Sony PSP it seemed it was missing some things. The start button exited the program and select didn't work. It had a display for the buttons you would press, and while it was functional, I like a little more detail to be displayed. I then wrote my own controller from scratch and only borrowed a small portion of his code (the packet creation). Here is a link to the thread that started this all in a way for me.
# Affiliation Note
I don't know Mikko Mononen or the authors of PPJoy. There is no affiliation with them at all. I thank them for their programs.
# Google Ads
# Downloads
These zip archives contain the program for the Sony PSP, Microsoft Windows and all source code for the programs. These were built using the PSPSDK and tested with v3.0 OE of PspLink.
WiFiController v0.4.4 - 499KB (GPG Signature)
WiFiController v0.4.3 - 697KB (GPG Signature)
WiFiController v0.4.2 - 692KB (GPG Signature)
WiFiController v0.4 - 691KB (GPG Signature)
WiFiController v0.3 - 689KB (GPG Signature)
WiFiController v0.2 - 491KB (GPG Signature)
WiFiController v0.1 - 253KB (GPG Signature)
# Notes
I have only tested this under the v1.50 kernel and the v3.52 kernel. I have not tested whether WPA actually works or not. If you wish to use WPA, make sure you use the v3.xx version. Also, if you use CWCheat and the v3.xx version of WiFiController, make sure you use CWCheat v0.1.9 revision B or higher. Otherwise, it will just crash and you'll have to turn the PSP back on.
# Installation
I'm going to attempt to explain how to get this working. These steps are all necessary and you should pay close attention to them.

  1. Open the PSP directory and edit the proper wifi.cfg for your PSP version and set the IP of the computer you are going to use this on. If you don't know your IP address. Go to your "Start" menu. Click on "Run..." When the box opens up type "cmd.exe" without the quotes. When the command prompt opens type "ipconfig" without the quotes. It will report your IP address.
  2. Copy the correct director(y|ies) to your PSP depending on whether you have a v1.00, v1.50 or v3.xx PSP. If you use a custom firmware mod that allows the use of a single EBOOT.PBP files on a v1.50 PSP then you can use the v1.00 directory.
  3. Download and install PPJoy.
  4. After it is installed open up your "Control Panel" and click on "Parallel Port Joysticks".
  5. When the window comes up click "Add..." at the bottom. On the next screen change "Parallel port" to "Virtual joysticks" and then click "Add."
  6. It will want to install some drivers so either have it scan automatically or point it to the directory you installed PPJoy to.
  7. After it is done installing, click the "PPJoy Virtual joystick 1" in the menu and click "Mapping..."
  8. Choose "Set a custom mapping for this controller" and click "Next."
  9. Set these options for best results.
    Axes = 2 (X Axis and Y Axis)
    Buttons = 9
    POV hats = 1
  10. X Axis = Analog 0
    Y Axis = Analog 1
  11. These buttons are up to you to set. You should leave "Button 1" set to "nothing" otherwise you may have problems using the Triangle button on your PSP later.
    Button 1 = nothing
    Button 2 = Digital 0
    Button 3 = Digital 1
    Button 4 = Digital 2
    Button 5 = Digital 3
    Button 6 = Digital 4
    Button 7 = Digital 5
    Button 8 = Digital 11
    Button 9 = Digital 10
  12. Directional button POV
    North = Digital 6
    East = Digital 7
    West = Digital 9
    South = Digital 8
  13. Repeat the steps above to add up to a total of 4 joysticks.
  14. Inside the PC directory, you will find a WiFiServer.exe. If you are just using one PSP to play games, you can run this file directly. If, however, you are or will be using more than one PSP, you will need to run one of the batch files in the directory. Simply double-click the batch file for the appropriate controller. You must have a server running for each controller you wish to use. The server(s) must also be running at all times while using the PSP as a joystick. When you are done using it, you can safely exit the program by pressing CTRL+C or clicking the close button for the window.

    Example:
    Two players will be playing a game. You will need to start the batch files for controller 1 and 2. Player 1 will choose Controller 1 from WiFiController and player 2 will choose Controller 2.

    Note:
    If the window opens and closes immediately, something went wrong and you'll need to either contact me or figure it out yourself. However, make sure you RETRY all the steps before contacting me. Also try reading over this site and the PPJoy website for help.
  15. Now start the program on your PSP, choose your connection and your controller. It should connect to your computer and basically be working. You'll find out in the next step.
  16. Go back to your Control Panel and go to Game Controllers. Click on "PPJoy Virtual joystick 1" and choose Properties. On the screen that comes up you should be able to press buttons on the PSP and have them show as working on the screen. I recommend calibrating the Analog Stick too.
  17. Enjoy!
# More Help
If you use OE 3.x or M33 3.x, make sure your GAME directory is set to 3.x kernel. Otherwise, it will hang on stage 2 of connecting.
If you get the error "80110601" this means PSP_NETPARAM_ERROR_BAD_NETCONF. Try deleting your network configuration on your Sony PSP and making a new one.
The server uses port 20001 to 20004. Make sure you don't have these ports blocked in your firewall or router.
The packets sent are UDP packets so make sure your firewall or router is not dropping UDP packets.
# Screenshot
Selecting a network configuration.
[ Selecting a network configuration. ]

The main WiFiController display.
[ The main WiFiController display. ]

Pressing some buttons.
[ Pressing some buttons. ]

When you press and hold NOTE you have additional buttons.
[ When you press and hold NOTE you have additional buttons. ]
# Todo
These are in no specific order and are not planned for any specific version. They will simply be implemented when I implement them. Do not ask. :)
# Changes
v0.5 (Not released yet, but changes so far)
  • Added kernel mode to 1.x versions and removed the other for 2.x.
  • Removed flicker from menu.
  • Slowed down menu input so it's easier to select a config now.
  • Fixed some wording.
  • Renamed SocketTest.exe to WiFiController.exe.
  • Changed the invert button combo to NOTE + UP (1.x kernel mode only) and L+R+Select for 2.x.
  • Added a modifer button (note) to allow more buttons. (1.x kernel mode only)
  • NOTE + UP = invert Y, NOTE + L = L2, NOTE + R = R2. (1.x kernel mode only)
  • Cleaned up display some more.
v0.4.4
  • Fixed so it will work under 3.xx kernel and higher.
  • Added a little bit more detail to the connection screen.
v0.4.3
  • Renamed WiFiController.exe to WiFiServer.exe so it won't be confused for the actual PSP application itself.
  • Added the ability to act as up to 4 separate controllers.
  • Extended the life of some messages by 1 second. (This isn't in the CHANGES file itself.)
v0.4.2
  • Rewrote some functions to clean up code more.
  • Shortened all message displays by 1 second.
v0.4.1 (Never publically released)
  • Fixed configuration selection menu.
  • Changed invert combo to L+R+SELECT.
  • Renamed SocketTest.exe to WiFiController.exe
v0.4
  • Cleaned up code some more and removed old header files not used anymore.
  • Added ability to select which WLAN configuration to use.
  • L+R+START now inverts analog Y in case some games don't support it.
  • Probably new bugs introduced. :)
v0.3
  • Cleaned up and added more detailed instructions.
  • Fixed up on-screen display some.
  • Added some more detailed battery information.
  • Cleaned up the connection code some.
  • Moved some text strings to a new file.
  • Cleaned up code overall.
# Contact
If you wish to contact me regarding this program or any other reason, please send me an e-mail.
# Google Ads