PsNee – I went down the rabbit hole (pictures 650KB)

There is this Github repository: https://github.com/kalymos/PsNee
“PsNee, an open source stealth modchip for the Sony Playstation 1” the README.md file starts. Three good things I want to hear/read: It is a modchip (software) for the PlayStation 1, it is open source and the chip is stealth. Fine. Now starts the trouble: I didn’t find any trustworthy and cheap seller in Germany, didn’t want to wait for all eternity for a chip arrive from China,… so why not go all the way and buy an empty chip from the list in the readme file and upload the program myself?

Step 1 – Programming the ATtiny85
Naive Sinchen ordered a bunch of five ATtiny85 knowing nothing about them. Never used an Arduino, never had a naked microcontroller. Nothing. No idea how to program it. Luckily I didn’t receive naked chips but small PCBs containing the ATtiny85 and a bunch of components as well as a USB connector. It looks like this:
Digistump.JPG

kernel: usb 3-2: new low-speed USB device number 92 using xhci_hcd
kernel: usb 3-2: New USB device found, idVendor=16d0, idProduct=0753
kernel: usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
mtp-probe[30320]: checking bus 3, device 92: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2"
mtp-probe[30320]: bus: 3, device: 92 was not an MTP device
kernel: usb 3-2: USB disconnect, device number 92
kernel: usb 3-2: new low-speed USB device number 93 using xhci_hcd
kernel: usb 3-2: New USB device found, idVendor=16d0, idProduct=0753
kernel: usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
mtp-probe[30344]: checking bus 3, device 93: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2"
mtp-probe[30344]: bus: 3, device: 93 was not an MTP device
kernel: usb 3-2: USB disconnect, device number 93
kernel: usb 3-2: new low-speed USB device number 94 using xhci_hcd
kernel: usb 3-2: New USB device found, idVendor=16d0, idProduct=0753
kernel: usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
mtp-probe[30368]: checking bus 3, device 94: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2"
mtp-probe[30368]: bus: 3, device: 94 was not an MTP device
kernel: usb 3-2: USB disconnect, device number 94
and so on every few seconds. Why does that &§$* thing disconnect every few seconds?! Use the force search engine! This brought up http://digistump.com/wiki/digispark/tutorials/connecting which says:
If you unplug the Digispark and plug it back in or attach it to another power source there will be a delay of 5 seconds before the code you programmed will run. This 5 second delay is the Digispark Pro checking to see if you are trying to program it.
Clever. The bootloader(?) checks for a new program via USB and if none is uploaded it executes the one stored on the ATtiny85 (which is nothing on a new chip). I just skip the description of installing Arduino IDE and also the &§%* driver installation (used an offline Windows 7 test machine – I avoid running new, unknown software on my main Linux computer as good as I can). Result: The Arduino IDE successfully uploaded the test program from the digistump wiki site and the microcontroller started blinking with the LED. Nice control mechanism for success.


Step 2 – Compiling PsNee
Pretty neat to have a small PCB with two LEDs (power LED and a second one). But having a red LED flashing is not exactly a challenging task for the chip. Now that I know how to upload software to the chip, the rest is probably just compiling and uploading PsNee source code the same way as the example. Not so fast! There is no documentation file and the README.md isn’t very helpful either (but explains the PS1 disc copy protection). The readme doesn’t even tell to use Arduino IDE. Having not used it before I didn’t realize the extension “.ino” was giving a hint. It looked just like C code to me and previously I had no idea how to compile this (and why they didn't simply release some binaries).
So how to do it? Do I have to understand the complete source code? No. But a pretty good documentation is inside the source – in the form of comments. (Why not mention this in the readme?). Select the branch (ATtiny in my case) and insert the needed letter (E for Europe in my case) in the symbol injection loop for all three iterations for faster boot times.
To my surprise: Arduino IDE didn’t have any objections and uploaded the compiled program to the chip. No guarantee for it to be correct. PsNee is not designed for Digistump/Digispark boards and knows nothing about the connected LEDs. It doesn't assume the presence of any output devices… so it doesn't output anything. The only way to find out was:

Step 3 – Soldering
Yes, I could have, and maybe I even should have, desoldered the microcontroller from the small board after programming. The small board looks HUGE compared to the ATtiny85 and is much harder to fit into the PlayStation 1. Well… I didn’t desolder it. My SCPH-9002 has a PU-23 motherboard which is significantly smaller than on older PS1 revisions which leaves A LOT of empty space.
PsNee repository contains a PDF file with installation instructions and pictures for all(?) motherboard revisions. All I had to do additionally was continuity measurements from the chip to the pads with holes at the edges to get a “mapping” from the ATtiny85 chip legs to the outer solder pads. Then solder wires to the small board and those wires to the PS1 motherboard. Three of the six were pretty hard to do: One on a tiny resistor(?), one on a tiny chip pin and the last one directly next to the same chip pin.
Nightmarish. My hands shake so badly. I drank some booze to lessen the tremor and had even ask for help (somebody holding the wire with tweezers while I held the soldering iron with both hands).

Yes, I do know that my installation is suboptimal. Yes, I do know it is not professional. Yes, I do know that my wires are too long… and so on. The result counts for me: My SCPH-9002 now loads backups like originals and I’m happy and even a little proud (F…ing tremor, I beat you!). Not that it has any practical implications nowadays with all the emulators and the recent PS1/PS2 exploits allowing loading PS1 backups without a modchip. The drives and lasers are old anyway and an optical drive emulator would be so much better… Having uploaded a program to a chip without knowing anything about it and then having beat the tremor STILL FEELS AWESOME!

PsNee.JPG
Sorry for the bad photo of the PlayStation with my own PsNee. Rainy weather and
bad light conditions forced me to use an old powerful halogen lamp to get at least
enough light to convince my weak camera in taking a sharp picture. Bad colors.
Bad white balance (camera didn't catch on to artificial warm light)



If anybody made it through this mess of a blog: Thanks for reading!
  • Like
Reactions: 6 people

Comments

Hah, seems like it was a fun project regardless. I suck at soldering, so I just have a serial-port exploit device to load backups on my PS1, but my laser's about useless at this point. Playing Heritage for the Future results in 2-3 minute load times, and music stutters a bit in the beginning before playing properly. I'm yet to find a suitable replacement.

I always wanted to solder in one of the MM3 modchips, but I had no clue this sort of thing existed.
 
  • Like
Reactions: 2 people
It was a fun project! Guess how much I suck at soldering… Paranoid me measured everything on the motherboard around the points that needed to be connected to the ATtiny85 in multimeter diode mode before and after soldering, just to make sure I didn't accidentally short something.

Seems the MM3 are more or less the standard. PsNee sounded more interesting to me because of readily available source code on Github and the usage of more modern Atmel chips.

Dying drives are a big problem on PS1, especially on the older models with the extension port. This is why I chose the SCPH-9002 over the SCPH-1002. The newer model reads backups and originals almost equally good – while the older model has trouble with CD-R and needs to be standing almost vertically (against a table leg) for the drive to work properly.
 
  • Like
Reactions: 3 people
:bow:

Our little Genie from Germany.Awesome !!

Congratulations,Sinchen.

I would give a fucking Shit about too long Cables,suboptimal Installation and so on.
Genius Inventors at that Time did it also like you - with the only main Goal: IT WORKS.:)

Bravo,:bow:
 
  • Like
Reactions: 1 person
Alex, you know that I'm not interested in a perfect installation for myself. I'm not offering mods to anybody so it doesn't have to be professional.
I just mentioned it because if I didn't, chances are that some know-it-all fault-finder would drop a condescending comment in that direction. So, I included that comment right away.
 
  • Like
Reactions: 2 people
Well done! :D

I always wanted a PlayStation 1 with those magical black discs! Then I got a PS2 slim and only one actual PS1 game...G-POLICE and never thought about it again! Now with the possible softmods I REALLY want one again, hahaha :rofl2:

For a non-programmer you managed to figure out that .ino files are Arduino "scripts". And you're right that it's just C++ using a very specific library of functions to make things easier for beginners in electronics. :wink:

And I am impressed with you're soldering of those tiny wires!!! I would say I am "ok" with soldering...but not confident enough...getting older not seeing well...:cry:. I have once bought a kit for the N64 to get real RGB output from it. It needs to connect with a flat cable that is provided in the kit to a couple of chips with tiny pins and such...to this day....I have still not installed that kit!!! It must have been over 10 years even...not sure. :rofl:
And your soldering looks better than what I did in my GameCube for a XenoGC like thing with the raspberry pi! :D

Having uploaded a program to a chip without knowing anything about it and then having beat the tremor STILL FEELS AWESOME!
Hahaha, I know this feeling exactly!!! :lol::D It's the same as when during programming something does not work and then you finally figure it out! It works! Awesome feeling indeed! :lol:

Congratulations on the successful install of your mod! :D
 
  • Like
Reactions: 2 people
@Archerite
Don't talk about getting older. Aging is my Nemesis. The eyes not being what they were 15 years ago is the minor problem. A simple magnifying glass for 3 Euros works wonders. Maybe I'll get a digital microscope at some point. The drug induced tremor won't ever go away but likely get worse over time.

Want to see some really good solderwork?
https://quade.co/2020/ps1digital/
↑↑↑↑↑
This together with an ODE would make a perfect PS1.

William Quade does Modbo installations in PS2 as well. Impressive pictures. Having a Modbo sounds tempting, but… won't be able to do it.

If you have some time to spare, I suggest watching some videos by Jessa Jones. She revived the motherboard from an iPhone (for data recovery) that certainly looked like a hopeless case. "I dropped the phone several times. On what? Your blacksmith anvil and then hit it with a hammer? […] Girlfriend damage. That's what I call it."


Things like these two examples are what makes soldering, repairing, hardmod so interesting. I will never reach such a level. But I try my best.

p.s.
I did not forget Batterycheck. My concentration issues limit the time I can spent with things like that drastically. I had this PS1 project and today was the "kitchen really needs to be painted"-project.
Be assured: I will do the testing and reply to the threads.
==================


Thanks you all three for the nice comments.
 
  • Like
Reactions: 2 people
A magnifying glass works...and now you mention it I remember I bought a cheap 4K webcam just for that purpose! To point it at my desk while working with tiny parts and soldering etc...never used it for that purpose yet! Maybe a good chance to use it while soldering a USB-C port to my Wii U charging cradle or something. Hahaha

Yep, those brown/yellow flat flex cables are exactly what I meant are included with my N64RGB kit! But yeah.....really nice soldering of the tiny pins indeed! While I mostly hare optical media in general I make a slight exception for the black PS1 discs and the cute and tiny GameCube discs. Having an ODE in your console is awesome...but you wont ever be able to use the discs anymore! (that's why I tend to have multiple systems...the wii got out of hand with about 10+, hahaha)

OMG! The entire iPhone board is just like 15% of the size of the phone!!! Incredibly compact! Still amazing that the board survived after being abused in that smashed phone...and that she was able to repair it! No idea what happened to that thing...and while I don't like iPhone that much....it still hurts seeing a phone in that condition! Might have fallen out on the highway, from a rollercoaster...but that was not "several times" from the looks of it.

Don't worry, I know everybody's time is limited and you can only do so much. I am already very grateful you are willing to keep testing my small improvements and iterations on all the consoles it runs on. While I am not promising anything....in a few days I might have v0.3.5 ready with better collision detection! And I really want to fix the graphical issues on the Wii and GameCube. So I won't mind if you would like to wait for that...or still test v0.3.4 anyway. It's all good. :D

You're welcome! ^_^
 
  • Like
Reactions: 1 person

Blog entry information

Author
KleinesSinchen
Views
1,237
Comments
14
Last update

More entries in Personal Blogs

More entries from KleinesSinchen

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3N1 @ K3N1: https://i.ibb.co/gTVKLHF/bill-king-of-the-hill.gif