The restoration of jpcsp.org
[ Posted by AniLeo on 2022-01-01 23:59:00 ]
Hello JPCSP community,
As you might already have known, the jpcsp.org website had been abandoned for many years, at least since 2013, with the original code having been written in 2008 and not very updated ever since. Due to that, and because the original backend code was written in a very insecure way, the website has been hacked several times throughout the years, leaving the website out of the air and/or leaving malware on it. Most recently, the website had been hacked and several resources had been deleted, leaving the website as a blank page with a bunch of leftover links.
Seeing as the website had been abandoned for at least 8 years, I decided to contact the current owner of the website and got permission and access to restore it. The plan was to clean all the malware uploaded to the website, update the website's backend to modern PHP, rewrite code to be secure and fix original bugs that the website already had a decade ago, and whatever else I felt needed to be fixed while going at it, all while maintaining the same front-end, as that would require a lot of extra work, and my goal here was to restore and preserve this important piece of history before it was lost for good.
When I started, the website was in a worst shape than what I already imagined. There were several malicious scripts that had been uploaded throughout the past hacking attempts, missing/tampered database entries that were blasted with SQLis, there was no download system backend left whatsoever, among other things. Fast forward 3 days, the website was restored, up and running with actively supported backend software, with a brand new automatic download system that imports new builds from GitHub, and a new page with changelog and version release date information.
Here's a list of the main changes made to the website:
- Clean malware, thoroughly going through every directory and file;
- Remove unused/unneeded files, there were example web server files from a web server the website had been previously been hosted on, as well as a dependency folder for a framework that the website never used, among other things;
- Re-arrange code styling, the files were a mix of spaces/tabs and with no coherent code styling guidelines.
- Port website code from PHP 5.2 / 5.3 to active PHP 7.4 / 8.X, the website was running on the latest PHP 5.6, granted, with errors, but the code was originally written in the late 2000s and largely untouched.
- Restore lost resources and database entries, with the help of Web Archive. Image backgrounds for header/body/footer were missing, as well as the oldest news entry, and a few other news entries had been tampered with on the database. A mistake circa February 2009 by the developers caused the oldest news post dates to be overwritten, but I have restored them thanks to information from Web Archive.
- Achieve HTML5 / CSS3 spec compliance, the website had some errors in regards to those. Properties that were long gone from spec were being used, granted, looking at the age of the website. Validation still fails due to the usage of lightbox.js code from 2008, which I am yet to replace, as it currently works fine despite the age.
- Enable and force HTTPS, website wasn't using HTTPS, now it is.
- Remove old integrations, really old version of analytics that wasn't even working properly and Facebook Like Box, a true relic of the past.
- Update sidebar, link to the GitHub repository instead of Google Code page that doesn't exist anymore, remove duplicated link to forums, open links in new tabs by default, fix design in order for it to not overflow.
- Design fixes, padding/margin fixes here and there, replace usage of Windows specific fonts Trebuchet MS and Verdana with Open Sans, to ensure font compatibility with any device.
- HTML metadata and OpenGraph, added favicon and support for link previews.
- URL adjustements, always use lowercase on URLs, p=news instead of p=News and so on, remove .php from links, remove func parameter from the news section by rewriting the paging system, as it made no sense and just generated duplicated URLs for the same content.
- Compatibility section adjustements, there's barely any data there, but I've quickly made a few changes to it, now it displays every game by default and has an all sorting flag, instead of having to click all 27 characters to figure out what has entries on them or not. This will be left as is for now, further functional changes to use newer data may be made in the future.
- SEO enhancements, JPCSP website is now back to being the first result on Google, DuckDuckGo, Bing, and others, when searching for JPCSP.
- Rewrite downloads system, it now automatically imports data and builds from JPCSP GitHub Actions, using the Workflow and Artifact GitHub APIs. The backend data was also plugged on the existing frontend, and a few changes to the frontend were made for builds to be more descriptive. The builds are separated by 5 tables as that was how the frontend was originally made. More work can still be done here in regards to frontend while keeping the same design style.
- Update the about page, add current active developers, rewrite the first paragraph to fix grammar and consistency issues.
- Add changelogs page, with information from the JPCSP Readme as well as Web Archive data. Lists all the release dates, obtained on Git History, Web Archive from the older Google Code page, and other web sources.
- Add code quality continuous integration, PHP static analysis with PHPStan on the maximum level, 9, has been added, and it runs every time a change is pushed to the website.
That sums everything up pretty much. You can visit the JPCSP website at https://jpcsp.org and enjoy a relic from 2008, now fully restored, and able to serve you emulator builds as they release.
Thank you for keeping JPCSP alive with important research breakthroughs still happening,
Join the discussion on the forums: The restoration of jpcsp.org @ EmuNewz
[ Posted by shadow on 2013-05-15 10:37:21 ]
Last year i was working on a project for converting JPCSP source to C language.
Although it was progressing well , i didn't work on in lately due to other obligations with pcsp , pspe4all .
Today i decided to release it's source in case someone want to check it or maybe help with it.
It is based on an old src (revision 950 if i remember ) and it's capable to run a few framebuffer demos (minifire , threadstatus ,rtcdemo are a few that come to my mind)
Source is located here : https://github.com/georgemoralis/jpcsp2c
pspudb is now open source
[ Posted by shadow on 2013-05-02 12:26:50 ]
Hykem needs our help
[ Posted by shadow on 2013-02-24 18:41:58 ]
As you have noticed Hykem one of the main authors of jpcsp is not longer available. I had a chat with him today and he said that his laptop has totally destroyed and he can't afford to get a new one.
So i jumped and made a donate of 100$ for him . Of course he needs more than that so if anyone is willing to help him pls donate using the paypal button at the left of the site and i will make sure to forward these donations to him. :)
Jpcsp asks for your help once more :D
New compatibility site
[ Posted by shadow on 2012-09-02 17:27:13 ]
A new (beta) site for checking psp games and psp emulators compatibility from jpcsp at http://www.psp-compatibility.com
We still working on this but you can get an idea :)
Latest svn builds (r2483)
[ Posted by shadow on 2012-03-19 11:40:34 ]
Here are the latest snapshots of jpcsp. Changes includes increase compatibility for software render,cleanups a new frameskip option and several compatibility fixes.
Also don't forget pspudb a tool is being developing from jpcsp , pcsp team and it's a frontend that includes support for all the above emulators.Check it out at : http://www.pspudb.com
Here the links: