Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e0053f3
.htaccess: Add redirect from /blog to the subdomain
AniLeo Dec 12, 2025
4886b4c
site: Sync missing changes from prod
AniLeo Dec 12, 2025
17725fe
.editorconfig: Add initial editorconfig
AniLeo Dec 12, 2025
b0fd124
.gitattributes: Add initial gitattributes
AniLeo Dec 12, 2025
c6d0b6d
.gitignore: Remove obsolete entries
AniLeo Dec 12, 2025
3eeab91
update: Add update API file call
AniLeo Dec 12, 2025
be3aa8c
patreon: Use relative URL
AniLeo Dec 12, 2025
48ff3d4
menu: Move out of place wordpress code to the blog
AniLeo Dec 12, 2025
98e1078
workflows: Update phpstan workflow
AniLeo Dec 12, 2025
50ab098
latest-appimage: Remove deprecated redirect
AniLeo Dec 12, 2025
60274a9
latest: Throw if compat plugin is missing
AniLeo Dec 12, 2025
466dca4
meta: Update keywords to mention x64, arm64
AniLeo Dec 12, 2025
a9fd089
download: Update linux CLI instructions
AniLeo Dec 12, 2025
b48ee86
freebsd: Update supported versions
AniLeo Dec 12, 2025
d879b3d
quickstart: Remove windows 10 recommendation
AniLeo Dec 12, 2025
47d6032
quickstart: Update storage requirements
AniLeo Dec 12, 2025
d106552
quickstart: Update Linux versions
AniLeo Dec 12, 2025
252dacb
quickstart: Update min macOS version to 14.4
AniLeo Dec 17, 2025
70847d7
menu: Remove obsolete inform msg code
AniLeo Dec 17, 2025
539b8e9
index: Reduce ad block height and padding
AniLeo Dec 17, 2025
66121cd
site: Fix HTML spec errors/warnings
AniLeo Dec 17, 2025
8e7e322
js: Fix ImageCycler errors on non-RPCN pages
AniLeo Dec 18, 2025
ea71822
site: Fix more HTML spec errors
AniLeo Dec 18, 2025
8d497d2
html: Restore video carousel div hack
AniLeo Jan 6, 2026
1f412e7
download: Enable Windows arm64 builds
AniLeo Jan 14, 2026
8ca3f76
home: Add 2025 highlights showcase video
AniLeo Jan 17, 2026
4754b53
download: Update example RPCS3 windows path
AniLeo Jan 20, 2026
d9f30c7
quickstart: Move emulator UI to FAQ
AniLeo Jan 20, 2026
6d22754
quickstart: Simplify installing PS3 system software instructions
AniLeo Jan 20, 2026
b2e9e05
faq: Revamp FAQ, remove unnecessary info and update some answers
AniLeo Jan 20, 2026
b8abcf4
quickstart: Move manual updating to FAQ, split software requirement i…
AniLeo Jan 20, 2026
f934012
quickstart: Revamp the sidebar to be more concise
AniLeo Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,14 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v6

# Run PHPStan level 3 analysis
- name: PHPStan Static Analysis
uses: php-actions/phpstan@v3
with:
version: latest
php-version: latest
php_version: latest
path: .
level: 3
memory_limit: 256M
10 changes: 10 additions & 0 deletions public_html/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*.php]
indent_style = space
indent_size = 4

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
9 changes: 9 additions & 0 deletions public_html/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# https://help.github.com/articles/dealing-with-line-endings/

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Declare files that will always have LF line endings on checkout.
*.php text eol=lf
*.sql text eol=lf
*.css text eol=lf
7 changes: 0 additions & 7 deletions public_html/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
*.html
*.bat
*.sh
*.zip
*log
.well-known/
/img/graphics/about/src/
/img/graphics/download/src/
Expand All @@ -14,8 +12,3 @@
/img/icons/arrows/src/
/img/meta/mobile/src/
/lib/compat/
blog/
cache/
forum/
update/
wiki/
133 changes: 70 additions & 63 deletions public_html/.htaccess
Original file line number Diff line number Diff line change
@@ -1,64 +1,71 @@
RewriteEngine on
Options All -Indexes

# Security flags for HTML headers
<IfModule mod_headers.c>
# Protect against XSS attacks
Header set X-XSS-Protection "1; mode=block"
# Protect against page-framing and click-jacking
Header always append X-Frame-Options SAMEORIGIN
# Protect against content-sniffing (MIME)
Header set X-Content-Type-Options nosniff
</IfModule>

# Unless directory, remove trailing slash
RewriteCond %{HTTP_HOST} !^wiki\.rpcs3\.net$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^([^/]+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

# Redirect external .php requests to extension less url
RewriteCond %{HTTP_HOST} !^wiki\.rpcs3\.net$ [NC]
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^(.+)\.php$ http://%{HTTP_HOST}/$1 [R=301,L]

# Resolve .php file for extension-less php urls
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^([^/.]+)$ $1.php [L]

# Disables page caching for real-time updating
# <filesMatch "\.(html|htm|js|css|php)$">
# FileETag None
# Header unset ETag
# Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
# Header set Pragma "no-cache"
# Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
# </filesMatch>

# Compatibility: Rewrite URLs
Redirect "/nightly" "/compatibility?b"
Redirect "/builds" "/compatibility?b"
Redirect "/compat" "/compatibility"
Redirect "/library" "/compatibility?l"

# Assigns an error page
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 401 /401.php
RewriteEngine on
Options All -Indexes

# Security flags for HTML headers
<IfModule mod_headers.c>
# Protect against XSS attacks
Header set X-XSS-Protection "1; mode=block"
# Protect against page-framing and click-jacking
Header always append X-Frame-Options SAMEORIGIN
# Protect against content-sniffing (MIME)
Header set X-Content-Type-Options nosniff
</IfModule>

# Redirect /blog/ (and anything under it) to https://blog.rpcs3.net/
RewriteCond %{HTTP_HOST} ^(www\.)?rpcs3\.net$ [NC]
RewriteRule ^blog(?:/(.*))?$ https://blog.rpcs3.net/$1 [R=301,L]

# Unless directory, remove trailing slash
RewriteCond %{HTTP_HOST} !^wiki\.rpcs3\.net$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^([^/]+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

# Redirect external .php requests to extension less url
RewriteCond %{HTTP_HOST} !^wiki\.rpcs3\.net$ [NC]
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^(.+)\.php$ http://%{HTTP_HOST}/$1 [R=301,L]

# Resolve .php file for extension-less php urls
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^([^/.]+)$ $1.php [L]

# Disables page caching for real-time updating
# <filesMatch "\.(html|htm|js|css|php)$">
# FileETag None
# Header unset ETag
# Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
# Header set Pragma "no-cache"
# Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
# </filesMatch>

# Compatibility: Rewrite URLs
Redirect "/nightly" "/compatibility?b"
Redirect "/builds" "/compatibility?b"
Redirect "/compat" "/compatibility"
Redirect "/library" "/compatibility?l"
Redirect "/patreon" "https://patreon.com/Nekotekina"
Redirect "/cputierlist" "https://docs.google.com/spreadsheets/d/1Rpq_2D4Rf3g6O-x2R1fwTSKWvJH7X63kExsVxHnT2Mc/htmlview"
Redirect "/2024/09/19/introducing-rpcs3-for-arm64/" "/2024/12/09/introducing-rpcs3-for-arm64/"

# Assigns an error page
ErrorDocument 404 /404.php
ErrorDocument 403 /403.php
ErrorDocument 401 /401.php
ErrorDocument 400 /400.php
Loading