Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/404-view
Browse files Browse the repository at this point in the history
  • Loading branch information
zurdi15 committed Dec 27, 2024
2 parents aa5e383 + d457ce0 commit 57b0f08
Show file tree
Hide file tree
Showing 306 changed files with 213 additions and 112 deletions.
8 changes: 4 additions & 4 deletions backend/alembic/versions/0009_models_refactor.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ def upgrade() -> None:
"url_screenshots",
existing_type=mysql.LONGTEXT(charset="utf8mb4", collation="utf8mb4_bin"),
nullable=True,
existing_server_default=sa.text("'[]'"),
existing_server_default=sa.text("(JSON_ARRAY())"),
)
batch_op.alter_column(
"path_screenshots",
existing_type=mysql.LONGTEXT(charset="utf8mb4", collation="utf8mb4_bin"),
nullable=True,
existing_server_default=sa.text("'[]'"),
existing_server_default=sa.text("(JSON_ARRAY())"),
)

try:
Expand Down Expand Up @@ -127,13 +127,13 @@ def downgrade() -> None:
"path_screenshots",
existing_type=mysql.LONGTEXT(charset="utf8mb4", collation="utf8mb4_bin"),
nullable=False,
existing_server_default=sa.text("'[]'"),
existing_server_default=sa.text("(JSON_ARRAY())"),
)
batch_op.alter_column(
"url_screenshots",
existing_type=mysql.LONGTEXT(charset="utf8mb4", collation="utf8mb4_bin"),
nullable=False,
existing_server_default=sa.text("'[]'"),
existing_server_default=sa.text("(JSON_ARRAY())"),
)
batch_op.alter_column(
"file_size_units", existing_type=mysql.VARCHAR(length=10), nullable=True
Expand Down
4 changes: 2 additions & 2 deletions backend/alembic/versions/0014_asset_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@


def migrate_to_mysql() -> None:
if ROMM_DB_DRIVER != "mariadb":
raise Exception("Version 3.0 requires MariaDB as database driver!")
if ROMM_DB_DRIVER not in ("mariadb", "mysql"):
raise Exception("Version 3.0 requires MariaDB or MySQL as database driver!")

# Skip if sqlite database is not mounted
if not os.path.exists(f"{SQLITE_DB_BASE_PATH}/romm.db"):
Expand Down
12 changes: 10 additions & 2 deletions backend/alembic/versions/1.8.1_.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,19 @@ def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table("roms") as batch_op:
batch_op.add_column(
sa.Column("url_screenshots", sa.JSON(), nullable=False, server_default="[]")
sa.Column(
"url_screenshots",
sa.JSON(),
nullable=False,
server_default=sa.text("(JSON_ARRAY())"),
)
)
batch_op.add_column(
sa.Column(
"path_screenshots", sa.JSON(), nullable=False, server_default="[]"
"path_screenshots",
sa.JSON(),
nullable=False,
server_default=sa.text("(JSON_ARRAY())"),
)
)
# ### end Alembic commands ###
Expand Down
7 changes: 3 additions & 4 deletions backend/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@ def str_to_bool(value: str) -> bool:
ASSETS_BASE_PATH: Final = f"{ROMM_BASE_PATH}/assets"
FRONTEND_RESOURCES_PATH: Final = "/assets/romm/resources"

# MARIADB
# DATABASE
DB_HOST: Final = os.environ.get("DB_HOST", "127.0.0.1")
DB_PORT: Final = int(os.environ.get("DB_PORT", 3306))
DB_USER: Final = os.environ.get("DB_USER")
DB_PASSWD: Final = os.environ.get("DB_PASSWD")
DB_NAME: Final = os.environ.get("DB_NAME", "romm")
ROMM_DB_DRIVER: Final = os.environ.get("ROMM_DB_DRIVER", "mariadb")

# REDIS
REDIS_HOST: Final = os.environ.get("REDIS_HOST", "127.0.0.1")
Expand Down Expand Up @@ -62,9 +63,6 @@ def str_to_bool(value: str) -> bool:
# MOBYGAMES
MOBYGAMES_API_KEY: Final = os.environ.get("MOBYGAMES_API_KEY", "")

# DB DRIVERS
ROMM_DB_DRIVER: Final = os.environ.get("ROMM_DB_DRIVER", "mariadb")

# AUTH
ROMM_AUTH_SECRET_KEY: Final = os.environ.get(
"ROMM_AUTH_SECRET_KEY", secrets.token_hex(32)
Expand All @@ -79,6 +77,7 @@ def str_to_bool(value: str) -> bool:
# OIDC
OIDC_ENABLED: Final = str_to_bool(os.environ.get("OIDC_ENABLED", "false"))
OIDC_PROVIDER: Final = os.environ.get("OIDC_PROVIDER", "")
OIDC_CREATE_USER: Final = str_to_bool(os.environ.get("OIDC_CREATE_USER", "false"))
OIDC_CLIENT_ID: Final = os.environ.get("OIDC_CLIENT_ID", "")
OIDC_CLIENT_SECRET: Final = os.environ.get("OIDC_CLIENT_SECRET", "")
OIDC_REDIRECT_URI: Final = os.environ.get("OIDC_REDIRECT_URI", "")
Expand Down
40 changes: 22 additions & 18 deletions backend/config/config_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,30 +83,34 @@ def get_db_engine() -> URL:
str: database connection string
"""

if ROMM_DB_DRIVER == "mariadb":
if not DB_USER or not DB_PASSWD:
log.critical(
"Missing database credentials, check your environment variables!"
)
sys.exit(3)

return URL.create(
drivername="mariadb+mariadbconnector",
username=DB_USER,
password=DB_PASSWD,
host=DB_HOST,
port=DB_PORT,
database=DB_NAME,
)

# DEPRECATED
if ROMM_DB_DRIVER == "sqlite":
log.critical("Sqlite is not supported anymore, migrate to mariaDB")
sys.exit(6)
# DEPRECATED

log.critical(f"{ROMM_DB_DRIVER} database not supported")
sys.exit(3)
if ROMM_DB_DRIVER == "mariadb":
driver = "mariadb+mariadbconnector"
elif ROMM_DB_DRIVER == "mysql":
driver = "mysql+mysqlconnector"
else:
log.critical(f"{ROMM_DB_DRIVER} database not supported")
sys.exit(3)

if not DB_USER or not DB_PASSWD:
log.critical(
"Missing database credentials, check your environment variables!"
)
sys.exit(3)

return URL.create(
drivername=driver,
username=DB_USER,
password=DB_PASSWD,
host=DB_HOST,
port=DB_PORT,
database=DB_NAME,
)

def _parse_config(self):
"""Parses each entry in the config.yml"""
Expand Down
28 changes: 22 additions & 6 deletions backend/handler/auth/base_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
from typing import Any, Final, Optional

import httpx
from config import OIDC_ENABLED, OIDC_SERVER_APPLICATION_URL, ROMM_AUTH_SECRET_KEY
from config import (
OIDC_CREATE_USER,
OIDC_ENABLED,
OIDC_SERVER_APPLICATION_URL,
ROMM_AUTH_SECRET_KEY,
)
from exceptions.auth_exceptions import OAuthCredentialsException, UserDisabledException
from fastapi import HTTPException, status
from joserfc import jwt
Expand Down Expand Up @@ -247,6 +252,7 @@ async def validate_token(self, token: str) -> jwt.Token:

async def get_current_active_user_from_openid_token(self, token: Any):
from handler.database import db_user_handler
from models.user import Role, User

if not OIDC_ENABLED:
return None, None
Expand Down Expand Up @@ -279,11 +285,21 @@ async def get_current_active_user_from_openid_token(self, token: Any):

user = db_user_handler.get_user_by_email(email)
if user is None:
log.error("User with email '%s' not found", email)
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="User not found",
)
if OIDC_CREATE_USER:
log.info("User with email '%s' not found, creating new user", email)
user = User(
username=email.split("@")[0],
email=email,
enabled=True,
role=Role.VIEWER,
)
db_user_handler.add_user(user)
else:
log.error("User with email '%s' not found", email)
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="User not found",
)

if not user.enabled:
raise UserDisabledException
Expand Down
29 changes: 14 additions & 15 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Stages:
# - front-build-stage: Build frontend
# - frontend-build: Build frontend
# - backend-build: Build backend environment
# - rahasher-build: Build RAHasher
# - nginx-build: Build nginx modules
Expand All @@ -13,7 +13,7 @@ ARG NODE_VERSION=20.16
ARG PYTHON_VERSION=3.12


FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS front-build-stage
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS frontend-build
WORKDIR /front

COPY ./frontend/package*.json ./
Expand Down Expand Up @@ -99,10 +99,20 @@ RUN git clone https://github.com/evanmiller/mod_zip.git && \
FROM nginx:${NGINX_VERSION}-alpine${ALPINE_VERSION} AS production-stage
ARG WEBSERVER_FOLDER=/var/www/html

# Install required packages and dependencies
RUN apk add --no-cache \
bash \
libmagic \
mariadb-connector-c \
p7zip \
python3 \
tzdata \
valkey

COPY --from=rahasher-build /RALibretro/bin64/RAHasher /usr/bin/RAHasher
COPY --from=nginx-build ./nginx/objs/ngx_http_zip_module.so /usr/lib/nginx/modules/

COPY --from=front-build-stage /front/dist ${WEBSERVER_FOLDER}
COPY --from=frontend-build /front/dist ${WEBSERVER_FOLDER}
COPY ./frontend/assets/default ${WEBSERVER_FOLDER}/assets/default
COPY ./frontend/assets/emulatorjs ${WEBSERVER_FOLDER}/assets/emulatorjs
COPY ./frontend/assets/ruffle ${WEBSERVER_FOLDER}/assets/ruffle
Expand All @@ -113,17 +123,6 @@ RUN mkdir -p ${WEBSERVER_FOLDER}/assets/romm && \
ln -s /romm/resources ${WEBSERVER_FOLDER}/assets/romm/resources && \
ln -s /romm/assets ${WEBSERVER_FOLDER}/assets/romm/assets

# Install required packages and dependencies
RUN apk add --no-cache \
bash \
libmagic \
mariadb-connector-c \
p7zip \
python3 \
tini \
tzdata \
valkey

COPY ./backend /backend

# Setup init script and config files
Expand Down Expand Up @@ -152,5 +151,5 @@ VOLUME ["/romm/resources", "/romm/library", "/romm/assets", "/romm/config", "/re
EXPOSE 8080 6379/tcp
WORKDIR /romm

ENTRYPOINT ["/sbin/tini", "--", "/docker-entrypoint.sh"]
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/init"]
37 changes: 32 additions & 5 deletions docker/init_scripts/init
Original file line number Diff line number Diff line change
Expand Up @@ -115,19 +115,43 @@ watchdog_process_pid() {
fi
}

stop_process_pid() {
PROCESS=$1
if [[ -f "/tmp/${PROCESS}.pid" ]]; then
PID=$(cat "/tmp/${PROCESS}.pid") || true
if [[ -d "/proc/${PID}" ]]; then
info_log "stopping ${PROCESS}"
kill "${PID}" || true
# wait for process exit
while [ -e "/proc/${PID}" ]; do sleep 0.1; done
fi
fi
}

shutdown() {
# shutdown in reverse order
stop_process_pid scheduler
stop_process_pid worker
stop_process_pid watcher
stop_process_pid nginx
stop_process_pid gunicorn
stop_process_pid valkey-server
}

# switch to backend directory
cd /backend || { error_log "/backend directory doesn't seem to exist"; }

info_log "Starting up, please wait..."

# setup trap handler
exited=0
trap 'exited=1 && shutdown' SIGINT SIGTERM EXIT

# clear any leftover PID files
rm /tmp/*.pid -f

# function definition done, lets start our main loop
while true; do
# check for died processes every 5 seconds
sleep 5

while ! ((exited)); do
# Start Valkey server if we dont have a corresponding PID file
# and REDIS_HOST is not set (which would mean we're using an external Redis/Valkey)
if [[ -z ${REDIS_HOST:=""} ]]; then
Expand All @@ -138,7 +162,7 @@ while true; do
# but only if it was not successful since the last full docker container start
if [[ ${ALEMBIC_SUCCESS:="false"} == "false" ]]; then
if alembic upgrade head; then
debug_log "database schema migrations suceeded"
debug_log "database schema migrations succeeded"
ALEMBIC_SUCCESS="true"
else
error_log "Something went horribly wrong with our database"
Expand All @@ -165,4 +189,7 @@ while true; do
watchdog_process_pid python worker
# Start scheduler if we dont have a corresponding PID file
watchdog_process_pid python scheduler

# check for died processes every 5 seconds
sleep 5
done
1 change: 1 addition & 0 deletions env.template
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ AUTHENTIK_BOOTSTRAP_PASSWORD=
ROMM_AUTH_SECRET_KEY=
OIDC_ENABLED=
OIDC_PROVIDER=
OIDC_CREATE_USER=false
OIDC_CLIENT_ID=
OIDC_CLIENT_SECRET=
OIDC_REDIRECT_URI=
Expand Down
Binary file modified frontend/assets/dashboard-icons/auth0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/authelia.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/authentik.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/aws.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/azure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/firebase.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/google.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/hydra.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/keycloak.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/ping.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/dashboard-icons/zitadel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/emulatorjs/loading_black.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/emulatorjs/powered_by_emulatorjs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/isotipo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/login_bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/platforms/3do.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/3ds.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/GamePark - GP32.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/acpc.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/adventure-vision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/amiga.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/amiibo.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/android.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/apple-pippin.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/appleii.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/arcade.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/arcadia-2001.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/astrocade.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari-jaguar-cd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari-st.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari2600.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari5200.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari7800.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atari8bit.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/atomiswave.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/bbcmicro.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/beena.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/c-plus-4.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/c64.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/casio-loopy.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/casio-pv-1000.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/chihiro.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/coleco.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/colecovision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/cps1.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/cps2.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/cps3.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/creativision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/daphne.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/dc.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/default.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/doom.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/dos.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/e-reader.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/epoch-super-cassette-vision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/fairchild-channel-f.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/fairchild.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/famicom.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/fba2012.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/fbneo.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/fds.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/flash.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/g-and-w.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/game-dot-com.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/game-master.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gamegear.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gb.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gba.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gbc.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/genesis-slash-megadrive.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gizmondo.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/gp32.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/hyperscan.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/intellivision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ios.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ique-player.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/j2me.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/jaguar.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/java.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/leappad.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/leapster.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/loopy.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/lynx.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/mac.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/md.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/megaduck.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ms.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/msx.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/msx2.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/n64.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/nds.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neo-geo-cd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neo-geo-pocket-color.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neo-geo-pocket.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neocd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neogeoaes.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/neogeomvs.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/nes.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/new-nintendo-3ds.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ngage.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ngc.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ngp.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/nintendo-64dd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/nintendo-dsi.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/nuon.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/odyssey--1.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/odyssey-2-slash-videopac-g7000.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/odyssey.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pc-98.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pc-fx.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pce.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pcecd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/philips-cd-i.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/picno.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pico-8.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pico.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pinball.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/playdia.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pocket-challenge-v2.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pocket-challenge-w.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pocketstation.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/pokemon-mini.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ps.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ps2.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ps3.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ps4--1.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/psp.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/psvita.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/rca-studio-ii.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/rpgmaker.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/satellaview.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/saturn.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/scummvm.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sega-master-system.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sega-pico.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sega32.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/segacd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/segasgone.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sfam.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sg1000.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sgb.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sgfx.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sharp-x68000.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sms.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/snes.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/snes_alt.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/study-box.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/sufami-turbo.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/super-acan.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/supergrafx.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/supervision.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/switch.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/tic.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/turbografx-16-slash-pc-engine-cd.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/turbografx16--1.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/vb.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/vectrex.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/vic-20.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/videopac-g7400.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/videopac.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/virtualboy.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/visicom.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/vsmile.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/wasm-4.ico
Binary file not shown.
Binary file not shown.
Binary file modified frontend/assets/platforms/wii.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/wiiu.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/win.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/wonderswan-color.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/wonderswan.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/ws.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/xbox.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/xbox360.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/xboxone.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/zeebo.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/zod.ico
Binary file not shown.
Binary file modified frontend/assets/platforms/zxs.ico
Binary file not shown.
Binary file modified frontend/assets/webrcade/feed/2600-background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/2600-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/3do-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/5200-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/7800-background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/7800-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/arcade-capcom-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/arcade-konami-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/arcade-thum.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/arcade-thumb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified frontend/assets/webrcade/feed/atari2600-background.png
Binary file modified frontend/assets/webrcade/feed/atari2600-thumb.png
Binary file modified frontend/assets/webrcade/feed/atari5200-thumb.png
Binary file modified frontend/assets/webrcade/feed/atari7800-background.png
Binary file modified frontend/assets/webrcade/feed/atari7800-thumb.png
Binary file modified frontend/assets/webrcade/feed/coleco-thumb.png
Binary file modified frontend/assets/webrcade/feed/colecovision-thumb.png
Binary file modified frontend/assets/webrcade/feed/default-background.png
Binary file modified frontend/assets/webrcade/feed/default-thumb.png
Binary file modified frontend/assets/webrcade/feed/doom-background.png
Binary file modified frontend/assets/webrcade/feed/doom-thumb.png
Binary file modified frontend/assets/webrcade/feed/gamegear-background.png
Binary file modified frontend/assets/webrcade/feed/gamegear-thumb.png
Binary file modified frontend/assets/webrcade/feed/gb-background.png
Binary file modified frontend/assets/webrcade/feed/gb-thumb.png
Binary file modified frontend/assets/webrcade/feed/gba-background.png
Binary file modified frontend/assets/webrcade/feed/gba-thumb.png
Binary file modified frontend/assets/webrcade/feed/gbc-background.png
Binary file modified frontend/assets/webrcade/feed/gbc-thumb.png
Binary file modified frontend/assets/webrcade/feed/genesis-slash-megadrive-thumb.png
Binary file modified frontend/assets/webrcade/feed/genesis-thumb.png
Binary file modified frontend/assets/webrcade/feed/lynx-thumb.png
Binary file modified frontend/assets/webrcade/feed/mastersystem-background.png
Binary file modified frontend/assets/webrcade/feed/mastersystem-thumb.png
Binary file modified frontend/assets/webrcade/feed/n64-thumb.png
Binary file modified frontend/assets/webrcade/feed/neo-geo-cd-thumb.png
Binary file modified frontend/assets/webrcade/feed/neo-geo-pocket-color-thumb.png
Binary file modified frontend/assets/webrcade/feed/neo-geo-pocket-thumb.png
Binary file modified frontend/assets/webrcade/feed/neogeo-thumb.png
Binary file modified frontend/assets/webrcade/feed/neogeoaes-thumb.png
Binary file modified frontend/assets/webrcade/feed/neogeocd-thumb.png
Binary file modified frontend/assets/webrcade/feed/neogeomvs-thumb.png
Binary file modified frontend/assets/webrcade/feed/nes-background.png
Binary file modified frontend/assets/webrcade/feed/nes-thumb.png
Binary file modified frontend/assets/webrcade/feed/ngc-thumb.png
Binary file modified frontend/assets/webrcade/feed/ngp-thumb.png
Binary file modified frontend/assets/webrcade/feed/pce-thumb.png
Binary file modified frontend/assets/webrcade/feed/pcecd-thumb.png
Binary file modified frontend/assets/webrcade/feed/pcecd.png
Binary file modified frontend/assets/webrcade/feed/ps-thumb.png
Binary file modified frontend/assets/webrcade/feed/psx-thumb.png
Binary file modified frontend/assets/webrcade/feed/quake-thumb.png
Binary file modified frontend/assets/webrcade/feed/scummvm-thumb.png
Binary file modified frontend/assets/webrcade/feed/segacd-thumb.png
Binary file modified frontend/assets/webrcade/feed/sg1000-thumb.png
Binary file modified frontend/assets/webrcade/feed/sgx-thumb.png
Binary file modified frontend/assets/webrcade/feed/sms-background.png
Binary file modified frontend/assets/webrcade/feed/sms-thumb.png
Binary file modified frontend/assets/webrcade/feed/snes-background.png
Binary file modified frontend/assets/webrcade/feed/snes-thumb.png
Binary file modified frontend/assets/webrcade/feed/supergrafx-thumb.png
Binary file modified frontend/assets/webrcade/feed/turbografx16--1.png
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Binary file modified frontend/assets/webrcade/feed/vb-thumb.png
Binary file modified frontend/assets/webrcade/feed/virtualboy-thumb.png
Binary file modified frontend/assets/webrcade/feed/wonderswan-color-thumb.png
Loading

0 comments on commit 57b0f08

Please sign in to comment.