A while ago I purchased the Yinlips YDPG18A. It's a PSP look-alike from China that runs Android and has a pretty beefy processor. For the cost (~$130) it's nice, but some things about it could be improved.
CPU: BoxChip/AllWinner A10 1.2ghz
2900mah battery (if that)
multitouch 800x480 display
I replaced my battery with the biggest battery I could fit - a 4200 mah battery. It makes the device feel better in my hands since it is a touch heavier.
The device gets warm when playing games. I followed Ashen's advice about adding a heatsink, but I went small. Just a thermal adhesive pad and a copper shim (search ebay for copper shim and you'll find several small ones meant for low end GPUs and such).
The only difference I can find between the YDPG18 and the YDPG18A, hardware-wise, is that the LCD with built-in resistive touch lacks the resistive touch layer (even though it brings out the signals to the host), the YDPG18A case has a capacitive digitizer built into it, and there is a connector soldered on the board. Other than that I think it's all in the software. It might be possible to create a rom that is compatible with both the YDPG18A and the YDPG18.
Replacing the screen if it breaks
I was eager to do this, since I figured the display was shoddy, and part of my display had been affected by poor heating insulation. The KENTEC K50DWN0-V1-F fits the bill. Same size, same signals. The display that came with the device seems like a clone of it. This display will work for both the YDPG18 and YDPG18A - if you have the latter, carefully use a razor-blade to remove the resistive digitizer overlay and snip the flex pcb connecting it to the rest of the display. After replacing, the area that was marred by heat is gone, but I can't really tell a difference in quality. Certainly this did not affect brightness - brightness is just a function of the backlight (which is the same) and the backlight driver.
Fixing screen brightness
Washed colors/oily looking screen
As near as I can tell, this is from the oxidized materials that are a part of the multitouch digitizer. Unfortunately nothing can be done about this.
Gamepad does not work without running Game Manager
Yinlips' IOC driver waits for a specific IOCtl before enabling the gamepad. Game Manager sends it while a game is running, and sends another to disable it. To enable gamepad at boot just add the following to your /init.sun4i.rc file after "insmod /drv/ioc.ko":
exec /system/bin/ioctl -d /dev/ioc 0x0 0x1
Note: the 0x bit is important, this will not work otherwise.
Analog stick and d-pad send the same input
I disassembled the gamepad driver - there is no way to fix this. The driver receives the same button flags from the hardware for both the stick and the d-pad.