Yes - It appears there are PS2 receivers out there that are not 5v tolerant, so yes hooking up resistors and the like should help.
If it were me, I would probably play around with the PS2 test program and see what type of results I was getting... There is a test program that is part of the tutorials: http://www.lynxmotion.com/images/html/build034.htm
. You will have to modify to use the IO pins of the Arc32...
Alternatively I used to have debug code in the PS2 input control, that you could compile in, that would look at the data coming from the PS2 and if it was different than the previous time, would print it out on the debug terminal. That code was removed, but you can easily add the equivalent...
Do you have any sound on your Arc32? I have a simple speaker from Radioshack that I connected up to a servo extension wire that I plugged into my Arc32 phoenix. It also helps to debug, as if the code is hung trying to get the PS2 into the proper Analog mode, it will continuously make sounds... If this is the case, sometimes I have run into issues that some controllers don't like to stay/go into extended analog mode... If this is the case I often change the lines that look like:
if DS2Mode <> PadMode THEN
to look more like:
if (DS2Mode & 0xf0) <> 0x70 THEN
There are I believe two places you would need to change. This relaxes the test to simply ask am I in Analog mode instead of am I in Analog mode and have an extra 18 bytes of data available(mode = 0x79), even though I am only using the 6 extra bytes, so mode (0x73) is perfectly fine... I also sometimes simplify the commands sent in the PS2 init as again we are not using all of the data anyway...
Also in cases like this, I use the LEDs on the board to help debug. For example maybe toggle an LED on the board each time you enter the ControlInput function for the Ps2. This way (assuming you can see the LED), you can see if the program is still trying to do something or completely hung...
Don't have enough information here to help debug... Like is the robot hanging in PS2 stuff, or maybe you did not fully remove any LiPo test code or...