PlayStation 1¶
I play PS1 games on an Anbernic RG-476H using DuckStation as the emulator.
Anbernic RG-476H¶
| Spec | Detail |
|---|---|
| Screen | 4.7" LTPS, 1280x960 (4:3), 120 Hz, 340 PPI |
| OS | Android 13 |
| Connectivity | WiFi 5, Bluetooth 5.0 |
| Controls | Hall effect analog sticks, L1/R1/L2/R2 shoulder buttons, touchscreen, gyroscope |
| Audio | Stereo speakers, 3.5mm jack |
| Dimensions | 176 x 86 x 16 mm |
| Weight | 290 g |
AI Translation¶
The RG-476H has a built-in AI translation feature that can parse text displayed on screen and overlay a translation in real time. This is particularly useful for playing Japanese PS1 games. The OCR and translation processing is handled by Anbernic's cloud services hosted in China.
Warning
This feature requires an active internet connection and sends screen content to Anbernic's servers in China for processing.
Converting Games to CHD¶
PS1 games are often distributed as CUE/BIN files inside 7z archives. I convert them to CHD (Compressed Hunks of Data) format, which combines all tracks into a single compressed file that DuckStation reads natively.
The following script extracts 7z archives and converts the CUE/BIN files to CHD using chdman (from the MAME tools package):
#!/bin/bash
# Script to extract 7z archives and convert PS1 CUE/BIN to CHD format
# Usage: ./convert-7z-to-chd.sh [directory]
# If no directory is provided, uses current directory
set -e
# Use provided directory or current directory
TARGET_DIR="${1:-.}"
cd "$TARGET_DIR"
echo "=========================================="
echo "7z to CHD Converter for PS1 Games"
echo "=========================================="
echo "Working directory: $(pwd)"
echo ""
# Count 7z files
TOTAL_7Z=$(find . -maxdepth 1 -name "*.7z" -type f | wc -l)
if [ "$TOTAL_7Z" -eq 0 ]; then
echo "No .7z files found in directory."
else
echo "Found $TOTAL_7Z .7z archive(s) to extract"
echo ""
# Extract all 7z files
COUNT=0
for file in *.7z; do
if [ -f "$file" ]; then
COUNT=$((COUNT + 1))
echo "[$COUNT/$TOTAL_7Z] Extracting: $file"
7z x -y "$file" > /dev/null
fi
done
echo ""
fi
# Convert CUE files to CHD
echo "Searching for CUE files to convert..."
TOTAL_CUE=0
CONVERTED=0
SKIPPED=0
# Count total CUE files
for dir in */; do
if [ -d "$dir" ]; then
TOTAL_CUE=$((TOTAL_CUE + $(find "$dir" -maxdepth 1 -name "*.cue" -type f | wc -l)))
fi
done
if [ "$TOTAL_CUE" -eq 0 ]; then
echo "No CUE files found to convert."
exit 0
fi
echo "Found $TOTAL_CUE CUE file(s) to convert"
echo ""
# Convert each CUE file to CHD
CURRENT=0
for dir in */; do
if [ -d "$dir" ]; then
cd "$dir"
for cuefile in *.cue; do
if [ -f "$cuefile" ]; then
CURRENT=$((CURRENT + 1))
base="${cuefile%.cue}"
if [ -f "$base.chd" ]; then
echo "[$CURRENT/$TOTAL_CUE] Skipping: $base (CHD already exists)"
SKIPPED=$((SKIPPED + 1))
else
echo "[$CURRENT/$TOTAL_CUE] Converting: $base"
if chdman createcd -i "$cuefile" -o "$base.chd" 2>&1 | grep -q "Compression complete"; then
CONVERTED=$((CONVERTED + 1))
echo " ✓ Success"
else
echo " ✗ Failed"
fi
fi
fi
done
cd ..
fi
done
echo ""
echo "=========================================="
echo "Conversion Complete!"
echo "=========================================="
echo "Converted: $CONVERTED"
echo "Skipped: $SKIPPED"
echo "Total: $TOTAL_CUE"
echo ""
echo "CHD files are ready for DuckStation!"
Prerequisites
Install p7zip and mame-tools (provides chdman) on Arch Linux: