Skip to content

Commit

Permalink
docs: psx-webtools project
Browse files Browse the repository at this point in the history
  • Loading branch information
barrenechea committed Nov 16, 2024
1 parent 5d9ae8c commit 2e418de
Show file tree
Hide file tree
Showing 13 changed files with 614 additions and 0 deletions.
Binary file added src/assets/images/fellow-kids.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/project-psx-webtools.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 56 additions & 0 deletions src/content/projects/ar/psx-webtools.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: أدوات الويب لـ PSX
description: مجموعة من أدوات الويب لتطوير وبرامج PlayStation 1 المنزلية التي تستخدم WebSerial للتفاعل مع وحدة التحكم.
pubDate: 2024-11-15T23:47:00Z
link: https://psx.barrenechea.cl
img: ~/assets/images/project-psx-webtools.png
imgAlt: شعار أدوات الويب لـ PSX
tags:
- React
- TypeScript
- Hardware
translatedBy: chatgpt-4o-latest
checksum: a0a008abab0aacde676f6eb346a1bef8a7a87259ab26c2886a50dd277e29fb01
---

import FellowKids from '~/assets/images/fellow-kids.gif';
import { Image } from 'astro:assets';

كانت PlayStation 1، التي يمكن الآن محاكاتها بواسطة أي جهاز حديث تقريبًا، جزءًا من طفولة الكثيرين منا. إلى جانب Nintendo 64، كانت تمثل الدخول الكبير إلى عالم الألعاب ثلاثية الأبعاد.
على الرغم من أننا اليوم متقدمون بمراحل ضوئية عن قدرات الأجهزة في تلك الحقبة، إلا أن مجتمع المطورين والهواة لا يزال نشطًا على [PSX.Dev Discord](https://www.psx.dev)، ومنتدى [PSXDEV Network](https://www.psxdev.net)، وغيرها من المساحات.

مؤخرًا، ولإشباع رغبتي في الغوص في هذا العالم، قمت بإنشاء مجموعة من أدوات الويب لتطوير PlayStation 1 وبرامج المنزل باستخدام WebSerial للتواصل مع وحدة التحكم. الفكرة هي أن تكون قادرًا على تحميل البرامج، وقراءة وكتابة الذاكرة، ووظائف أخرى، كل ذلك من المتصفح.

لماذا؟ لأن البرامج الموجودة حاليًا ليست محمولة جدًا، ومع توفر WebSerial، لماذا لا نفعل ذلك؟

<div align="center">
<Image
src={FellowKids}
alt="ميم لستيف بوشيمي يرتدي ملابس شبابية ويحمل لوح تزلج مع التسمية التوضيحية 'كيف حالكم أيها الشباب؟'"
format="webp"
/>
<p class="italic">PlayStation 1 تدخل في محادثة WebSerial</p>
</div>

_هذا مشروع قيد التطوير المستمر، لذا سأحاول تحديث هذا المنشور مع التغييرات التي أجريها._

## مدير بطاقة الذاكرة

هذه الأداة هي عمليًا نسخة ويب من [MemcardRex](https://github.com/ShendoXT/memcardrex). تتيح قراءة وكتابة _بطاقات الذاكرة_ الخاصة بوحدة التحكم، بالإضافة إلى تصدير واستيراد ملفات الذاكرة. في الوقت الحالي، تتعامل فقط مع الملفات المرفقة أو قراءة وكتابة _بطاقات الذاكرة_ باستخدام [MemCARDuino](https://github.com/ShendoXT/memcarduino). في المستقبل، آمل أن أضيف خيار تحرير محتوى الذاكرة.

## مبرمج MemCARDuino

جاء MemCARDuino الذي اشتريته من AliExpress مع إصدار قديم من البرنامج (v0.4 بينما كان الأحدث v0.8). لتحديثه، تحتاج إلى تثبيت Arduino IDE وبرمجة الجهاز. الأمر سهل، لكنه ليس سهل الاستخدام للمستخدمين الأقل تقنيًا. بعد تنفيذ الوظائف الأساسية لمدير بطاقة الذاكرة، فكرت: "ماذا لو جعلت من السهل على الناس تحديث MemCARDuino الخاص بهم؟"

التنفيذ مقسم إلى جزأين:

- أجهزة Arduino: تتيح برمجة MemCARDuino باستخدام [stk500-esm](https://github.com/barrenechea/stk500-esm). في الوقت الحالي، يدعم بروتوكول STK500v1، لكنني أعمل على تضمين STK500v2.
- Raspberry Pi Pico: يتيح تنزيل ملف UF2 لتحديث الجهاز.

لتجميع الملفات التنفيذية لكل منصة، قمت بإنشاء [memcarduino-builder](https://github.com/barrenechea/memcarduino-builder)، الذي يقوم تلقائيًا بتجميع المشروع الأصلي باستخدام GitHub Actions. في المستقبل، أرغب في إضافة دعم لأجهزة Espressif.

## NoPS

تعديل آخر! هذه المرة لـ [NOTPSXSerial](https://github.com/leafy-psx/NOTPSXSerial) إلى الويب. يتيح تحميل البرامج على وحدة التحكم وقراءة/كتابة الذاكرة. في الوقت الحالي، يتيح فقط تحميل البرامج (وليس بشكل جيد جدًا)، لذا فهو قيد العمل ويظل مخفيًا إلى حد كبير.

## يتبع...
56 changes: 56 additions & 0 deletions src/content/projects/de/psx-webtools.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: PSX WebTools
description: Eine Sammlung von Web-Tools für die PlayStation 1-Entwicklung und Homebrew, die WebSerial verwendet, um mit der Konsole zu interagieren.
pubDate: 2024-11-15T23:47:00Z
link: https://psx.barrenechea.cl
img: ~/assets/images/project-psx-webtools.png
imgAlt: PSX WebTools Logo
tags:
- React
- TypeScript
- Hardware
translatedBy: chatgpt-4o-latest
checksum: a0a008abab0aacde676f6eb346a1bef8a7a87259ab26c2886a50dd277e29fb01
---

import FellowKids from '~/assets/images/fellow-kids.gif';
import { Image } from 'astro:assets';

Die PlayStation 1, die heute von fast jedem modernen Gerät emuliert werden kann, war ein Teil der Kindheit vieler von uns. Zusammen mit dem Nintendo 64 markierte sie den massiven Einstieg in die Welt des 3D-Gamings.
Obwohl wir heute Lichtjahre von den Hardware-Fähigkeiten jener Zeit entfernt sind, bleibt die Gemeinschaft der Entwickler und Enthusiasten auf dem [PSX.Dev Discord](https://www.psx.dev), im [PSXDEV Network Forum](https://www.psxdev.net) und in anderen Räumen aktiv.

Kürzlich habe ich, hauptsächlich um mein Verlangen zu stillen, in diese Welt einzutauchen, eine Sammlung von Web-Tools für die PlayStation 1-Entwicklung und Homebrew erstellt, die WebSerial verwendet, um mit der Konsole zu kommunizieren. Die Idee ist, Programme zu laden, in den Speicher zu lesen und zu schreiben und andere Funktionen, alles direkt aus dem Browser.

Warum? Weil die vorhandene Software nicht sehr portabel ist, und da WebSerial verfügbar ist, warum nicht?

<div align="center">
<Image
src={FellowKids}
alt="Meme von Steve Buscemi, der jugendlich gekleidet ist und ein Skateboard hält, mit der Bildunterschrift 'How do you do, fellow kids?'"
format="webp"
/>
<p class="italic">PlayStation 1 tritt in die WebSerial-Konversation ein</p>
</div>

_Dies ist ein Projekt in ständiger Entwicklung, daher werde ich versuchen, diesen Beitrag mit den von mir vorgenommenen Änderungen auf dem neuesten Stand zu halten._

## Memory Card Manager

Dieses Tool ist praktisch eine Web-Version von [MemcardRex](https://github.com/ShendoXT/memcardrex). Es ermöglicht das Lesen und Schreiben auf die _Memory Cards_ der Konsole sowie den Export und Import von Speicherdateien. Derzeit werden nur angehängte Dateien oder das Lesen und Schreiben von _Memory Cards_ mit [MemCARDuino](https://github.com/ShendoXT/memcarduino) unterstützt. In Zukunft hoffe ich, die Möglichkeit hinzuzufügen, den Speicherinhalt zu bearbeiten.

## MemCARDuino Flasher

Der MemCARDuino, den ich auf AliExpress gekauft habe, kam mit einer alten Version der Software (v0.4, während die neueste v0.8 war). Um ihn zu aktualisieren, muss man die Arduino IDE installiert haben und das Gerät programmieren. Es ist einfach, aber nicht sehr benutzerfreundlich für weniger technische Nutzer. Nachdem ich die Grundfunktionen des Memory Card Managers implementiert hatte, dachte ich: "Warum mache ich es den Leuten nicht einfacher, ihren MemCARDuino zu aktualisieren?"

Die Implementierung ist in zwei Teile unterteilt:

- Arduino-Geräte: Ermöglicht das Programmieren von MemCARDuino mit [stk500-esm](https://github.com/barrenechea/stk500-esm). Derzeit wird das STK500v1-Protokoll unterstützt, aber ich arbeite daran, STK500v2 hinzuzufügen.
- Raspberry Pi Pico: Ermöglicht das Herunterladen einer UF2-Datei, um das Gerät zu aktualisieren.

Um die Binärdateien für jede Plattform zu kompilieren, habe ich [memcarduino-builder](https://github.com/barrenechea/memcarduino-builder) erstellt, das das ursprüngliche Projekt automatisch mit GitHub Actions kompiliert. In Zukunft möchte ich Unterstützung für Espressif-Geräte hinzufügen.

## NoPS

Eine weitere Anpassung! Diesmal von [NOTPSXSerial](https://github.com/leafy-psx/NOTPSXSerial) ins Web. Es ermöglicht das Laden von Programmen auf die Konsole sowie das Lesen und Schreiben in den Speicher. Derzeit können nur Programme geladen werden (und das nicht sehr gut), daher ist es noch in Arbeit und bleibt größtenteils verborgen.

## Fortsetzung folgt...
56 changes: 56 additions & 0 deletions src/content/projects/en/psx-webtools.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: PSX WebTools
description: A collection of web tools for PlayStation 1 development and homebrew that uses WebSerial to interact with the console.
pubDate: 2024-11-15T23:47:00Z
link: https://psx.barrenechea.cl
img: ~/assets/images/project-psx-webtools.png
imgAlt: PSX WebTools Logo
tags:
- React
- TypeScript
- Hardware
translatedBy: chatgpt-4o-latest
checksum: 3db13f41cbf1bf252e366863c9f02e3eddf4bf310a435f01546c67a923674efc
---

import FellowKids from '~/assets/images/fellow-kids.gif';
import { Image } from 'astro:assets';

The PlayStation 1, which can now be emulated by almost any modern device, was a part of many of our childhoods. Along with the Nintendo 64, it marked the massive entry into the world of 3D gaming.
Although today we are light years ahead of the hardware capabilities of that era, the community of developers and enthusiasts remains active on the [PSX.Dev Discord](https://www.psx.dev), the [PSXDEV Network forum](https://www.psxdev.net), and other spaces.

Recently, and mainly to satisfy my desire to dive into that world, I created a collection of web tools for PlayStation 1 development and homebrew using WebSerial to communicate with the console. The idea is to be able to load programs, read and write to memory, and other functions, all from the browser.

Why? Because the existing software is not very portable, and with WebSerial available, why not do it?

<div align="center">
<Image
src={FellowKids}
alt="Meme of Steve Buscemi dressed youthfully and holding a skateboard with the caption 'How do you do, fellow kids?'"
format="webp"
/>
<p class="italic">PlayStation 1 entering the WebSerial conversation</p>
</div>

_This is a project in constant development, so I will try to keep this post updated with the changes I make._

## Memory Card Manager

This tool is practically a web version of [MemcardRex](https://github.com/ShendoXT/memcardrex). It allows reading and writing to the console's _Memory Cards_, as well as exporting and importing memory files. For now, it only handles attached files or reading and writing _Memory Cards_ using [MemCARDuino](https://github.com/ShendoXT/memcarduino). In the future, I hope to add the option to edit the memory content.

## MemCARDuino Flasher

The MemCARDuino I bought on AliExpress came with an old version of the software (v0.4 when the latest was v0.8). To update it, you need to have the Arduino IDE installed and program the device. It's easy, but not so user-friendly for less technical users. After implementing the basic functions of the Memory Card Manager, I thought, "what if I make it easier for people to update their MemCARDuino?"

The implementation is divided into two parts:

- Arduino Devices: Allows programming MemCARDuino using [stk500-esm](https://github.com/barrenechea/stk500-esm). For now, it supports the STK500v1 protocol, but I'm working to include STK500v2.
- Raspberry Pi Pico: Allows downloading a UF2 file to update the device.

To compile the binaries for each platform, I created [memcarduino-builder](https://github.com/barrenechea/memcarduino-builder), which automatically compiles the original project using GitHub Actions. In the future, I would like to add support for Espressif devices.

## NoPS

Another adaptation! This time of [NOTPSXSerial](https://github.com/leafy-psx/NOTPSXSerial) to the web. It allows loading programs onto the console and reading/writing to memory. For now, it only allows loading programs (and not very well), so it's a work in progress and remains mostly hidden.

## To be continued...
54 changes: 54 additions & 0 deletions src/content/projects/es/psx-webtools.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: PSX WebTools
description: Una colección de herramientas web para el desarrollo y homebrew de PlayStation 1 que usa WebSerial para interactuar con la consola.
pubDate: 2024-11-15T23:47:00Z
link: https://psx.barrenechea.cl
img: ~/assets/images/project-psx-webtools.png
imgAlt: Logo de PSX WebTools
tags:
- React
- TypeScript
- Hardware
---

import FellowKids from '~/assets/images/fellow-kids.gif';
import { Image } from 'astro:assets';

La PlayStation 1, que hoy puede ser emulada por casi cualquier dispositivo moderno, fue parte de la infancia de muchos de nosotros. Junto con la Nintendo 64, marcó la entrada masiva al mundo de los juegos en 3D.
Aunque hoy estamos a años luz de las capacidades del hardware de esa época, la comunidad de desarrolladores y entusiastas sigue activa en el [Discord de PSX.Dev](https://www.psx.dev), el [foro PSXDEV Network](https://www.psxdev.net) y otros espacios.

Hace poco, y principalmente para satisfacer mis ganas de meterme en ese mundo, creé una colección de herramientas web para el desarrollo y homebrew de PlayStation 1 usando WebSerial para comunicarse con la consola. La idea es poder cargar programas, leer y escribir en la memoria, y otras funciones, todo desde el navegador.

¿Por qué? Porque el software que existe es poco portable, y teniendo WebSerial disponible, ¿por qué no hacerlo?

<div align="center">
<Image
src={FellowKids}
alt="Meme de Steve Buscemi vestido juvenilmente y sosteniendo un skateboard con la leyenda 'How do you do, fellow kids?'"
format="webp"
/>
<p class="italic">PlayStation 1 ingresando a la conversación de WebSerial</p>
</div>

_Este es un proyecto en desarrollo constante, así que trataré de mantener actualizada esta publicación con los cambios que vaya haciendo._

## Memory Card Manager

Esta herramienta es prácticamente una versión web de [MemcardRex](https://github.com/ShendoXT/memcardrex). Permite leer y escribir en las _Memory Cards_ de la consola, además de exportar e importar archivos de memoria. Por ahora solo maneja archivos adjuntos o lectura y escritura de _Memory Cards_ usando [MemCARDuino](https://github.com/ShendoXT/memcarduino). A futuro espero agregar la opción de editar el contenido de la memoria.

## MemCARDuino Flasher

El MemCARDuino que compré en AliExpress venía con una versión antigua del software (v0.4 cuando la última era v0.8). Para actualizarlo necesitas tener instalado el IDE de Arduino y programar el dispositivo. Es fácil, pero no tan amigable para usuarios menos técnicos. Después de implementar las funciones básicas del Memory Card Manager, pensé "¿y si hago más fácil que la gente actualice sus MemCARDuino?"

La implementación está dividida en dos partes:

- Dispositivos Arduino: Permite programar MemCARDuino usando [stk500-esm](https://github.com/barrenechea/stk500-esm). Por ahora soporta el protocolo STK500v1, pero estoy trabajando para incluir STK500v2.
- Raspberry Pi Pico: Permite descargar un archivo UF2 para actualizar el dispositivo.

Para compilar los binarios para cada plataforma creé [memcarduino-builder](https://github.com/barrenechea/memcarduino-builder), que compila automáticamente el proyecto original usando GitHub Actions. En el futuro me gustaría agregar soporte para dispositivos Espressif.

## NoPS

¡Otra adaptación! Esta vez de [NOTPSXSerial](https://github.com/leafy-psx/NOTPSXSerial) a la web. Permite cargar programas en la consola y leer/escribir en la memoria. Por ahora solo permite cargar programas (y no muy bien), así que es un trabajo en progreso y se mantiene mayormente oculto.

## Continuará...
Loading

0 comments on commit 2e418de

Please sign in to comment.