add license. added about in app. updated readme

This commit is contained in:
izzy2lost
2025-09-12 09:14:06 -04:00
parent 55de53061a
commit e560aa0d6b
6 changed files with 1659 additions and 8 deletions
+675
View File
File diff suppressed because it is too large Load Diff
+205 -6
View File
@@ -1,9 +1,208 @@
* PCSX2 - Android project
* EE Recompiler x86 => arm64
# PSX2 - PlayStation 2 Emulator for Android
* It is still unfinished because I made it while studying due to my lack of experience with assembler.
* I think it would be good to look at it for reference.
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Android](https://img.shields.io/badge/Platform-Android-green.svg)](https://developer.android.com/)
[![ARM64](https://img.shields.io/badge/Architecture-ARM64-orange.svg)](https://developer.arm.com/)
* [https://www.youtube.com/watch?v=ACxMJufB1EM](https://youtu.be/hNc3k3wPyTM)
PSX2 is a high-performance PlayStation 2 emulator for Android devices, bringing your favorite PS2 games to mobile platforms with enhanced graphics and modern features.
![Image](https://github.com/user-attachments/assets/534405ee-c622-4726-876b-31f398bbb46d)
## 🎮 About
PSX2 is an Android port of the renowned [PCSX2](https://github.com/PCSX2/pcsx2) emulator, specifically forked from [PCSX2_ARM64](https://github.com/pontos2024/PCSX2_ARM64) to provide optimized performance on ARM64 Android devices.
### Key Features
- **High Compatibility** - Play thousands of PlayStation 2 games
- **Enhanced Graphics** - Upscaling, texture filtering, and modern rendering
- **Multiple Formats** - Support for ISO, CHD, CSO, ZSO, and compressed formats
- **Touch Controls** - Intuitive on-screen gamepad with customizable layout
- **External Controllers** - Full support for Bluetooth and USB gamepads
- **Save States** - Quick save and load functionality
- **Game Covers** - Automatic cover art downloading and display
- **Per-Game Settings** - Individual configuration for optimal performance
## 📱 Requirements
- **Android 8.0** (API level 26) or higher
- **ARM64 device** (64-bit processor required)
- **4GB RAM** minimum (8GB+ recommended)
- **OpenGL ES 3.2** or Vulkan support
- **Storage space** for games and BIOS files
## 🚀 Installation
### Option 1: Google Play Store (Recommended)
Download PSX2 directly from the Google Play Store for automatic updates and easy installation.
### Option 2: Build from Source (Free)
For users who prefer to build from source, follow the build instructions below.
**Note:** Paid users get convenient automatic updates through the Play Store, while free users can build from source using the instructions provided.
## 🔧 Build Instructions
### Prerequisites
1. **Android Studio** (latest version)
2. **Android NDK** 28.2.13676358
3. **CMake** 3.22.1+
4. **Git**
5. **Java 17**
### Step-by-Step Build Process
1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/PSX2-Android.git
cd PSX2-Android
```
2. **Open in Android Studio:**
- Launch Android Studio
- Select "Open an existing project"
- Navigate to the cloned PSX2-Android folder
- Click "OK"
3. **Install required components:**
- Android Studio will prompt to install missing SDK components
- Accept all license agreements
- Wait for Gradle sync to complete
4. **Build the APK:**
```bash
./gradlew assembleRelease
```
Or use Android Studio:
- Go to **Build** → **Generate Signed Bundle/APK**
- Select **APK**
- Choose **release** build variant
- Click **Build**
5. **Install the APK:**
```bash
adb install app/build/outputs/apk/release/PSX2_*.apk
```
### Build Variants
- **Release**: Optimized for performance and size
- **Debug**: For development with debugging symbols
## 📋 Setup Guide
### 1. BIOS Files
PSX2 requires PlayStation 2 BIOS files to function:
- **Required**: PS2 BIOS files (not included)
- **Location**: Follow the setup wizard to import BIOS
- **Supported**: All official PS2 BIOS versions
- **Legal**: You must own a PlayStation 2 console to legally use BIOS files
### 2. Game Files
Supported game formats:
- **ISO** - Standard disc images
- **CHD** - Compressed Hunks of Data
- **CSO/ZSO** - Compressed ISO formats
- **BIN/CUE** - Binary disc images
- **IMG/MDF/NRG** - Various disc formats
### 3. First Launch
1. Run PSX2 and complete the setup wizard
2. Pick your data/user folder
3. Choose your games directory
4. Select your BIOS folder
5. Start playing!
## ⚙️ Configuration
### Graphics Settings
- **Renderer**: Auto, Vulkan, OpenGL, Software
- **Resolution**: 1x to 8x native scaling
- **Aspect Ratio**: Multiple options including widescreen
### Game-Specific Settings
Each game can have individual settings for optimal compatibility and performance.
## 🎯 Compatibility
PSX2 aims for high compatibility with the PlayStation 2 library. Performance varies by device capabilities and game requirements.
## 📄 Legal Information
### Important Disclaimers
- **No Games Included**: PSX2 does not include any copyrighted games
- **No BIOS Included**: PlayStation 2 BIOS files are not provided
- **Legal Requirements**: Users must own original games and console
- **Educational Purpose**: This emulator is for educational and preservation purposes
### License
This project is licensed under the **GNU General Public License v3.0** - see the [LICENSE](LICENSE) file for details.
### Third-Party Licenses
PSX2 incorporates code from several open-source projects:
- [PCSX2](https://github.com/PCSX2/pcsx2) - GPL v3.0
- [PCSX2_ARM64](https://github.com/pontos2024/PCSX2_ARM64) - GPL v3.0
- Additional libraries listed in the app's About section
## 🤝 Contributing
We welcome contributions! Please read our contributing guidelines and submit pull requests for improvements.
### Development
- Follow Android development best practices
- Test on multiple devices and Android versions
- Ensure compatibility with existing save data
- Document any new features or changes
## 📞 Support
### Getting Help
- Check the [Issues](https://github.com/yourusername/PSX2-Android/issues) page for known problems
- Search existing issues before creating new ones
- Provide device information and logs when reporting bugs
### Community
- Join discussions in the Issues section
- Share compatibility reports and performance tips
- Help other users with setup and configuration
## 🙏 Acknowledgments
Special thanks to:
- **PCSX2 Team** - For the incredible PlayStation 2 emulator
- **PCSX2_ARM64 Contributors** - For ARM64 optimization work
- **Android Community** - For testing and feedback
- **Open Source Contributors** - For various improvements and fixes
## 📊 Project Status
PSX2 is actively maintained and regularly updated with:
- Performance improvements
- Compatibility enhancements
- Bug fixes and stability improvements
- New features and quality of life updates
---
**Disclaimer**: PlayStation and PlayStation 2 are trademarks of Sony Interactive Entertainment. This project is not affiliated with or endorsed by Sony Interactive Entertainment.
@@ -425,6 +425,14 @@ public class GamesCoverDialogFragment extends DialogFragment {
try { new SavesDialogFragment().show(getParentFragmentManager(), "saves_dialog"); } catch (Throwable ignored) {}
});
}
View btnAbout = header.findViewById(R.id.drawer_btn_about);
if (btnAbout != null) {
btnAbout.setOnClickListener(v -> {
try {
showAboutDialog();
} catch (Throwable ignored) {}
});
}
// Setup drawer settings controls to mirror quick actions
setupDialogDrawerSettings(header);
@@ -994,6 +1002,38 @@ public class GamesCoverDialogFragment extends DialogFragment {
} catch (Throwable ignored) {}
}
private void showAboutDialog() {
String aboutMessage = "PSX2 - PlayStation 2 Emulator for Android\n\n" +
"This is an Android port of PCSX2, the renowned PlayStation 2 emulator.\n\n" +
"Based on:\n" +
"• PCSX2: https://github.com/PCSX2/pcsx2\n" +
"• PCSX2_ARM64: https://github.com/pontos2024/PCSX2_ARM64\n\n" +
"Free Version: Follow the build instructions in the repository to compile from source.\n" +
"Paid Version: Get convenient automatic updates through the Play Store.\n\n" +
"Important:\n" +
"• No games or BIOS files are included\n" +
"• You must own original PlayStation 2 games and console\n" +
"• This emulator is for educational and preservation purposes\n\n" +
"Licensed under GNU General Public License v3.0\n" +
"View full license: https://github.com/YOUR_USERNAME/PSX2-Android/blob/main/LICENSE";
new MaterialAlertDialogBuilder(requireContext(),
com.google.android.material.R.style.ThemeOverlay_Material3_MaterialAlertDialog)
.setTitle("About PSX2")
.setMessage(aboutMessage)
.setPositiveButton("OK", null)
.setNeutralButton("View License", (dialog, which) -> {
// Open LICENSE file or GitHub link
android.content.Intent intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse("https://github.com/YOUR_USERNAME/PSX2-Android/blob/main/LICENSE"));
try {
startActivity(intent);
} catch (Exception e) {
Toast.makeText(requireContext(), "Could not open license link", Toast.LENGTH_SHORT).show();
}
})
.show();
}
}
@@ -593,6 +593,14 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
} catch (Throwable ignored) {}
});
}
View btnAbout = header.findViewById(R.id.drawer_btn_about);
if (btnAbout != null) {
btnAbout.setOnClickListener(v -> {
try {
showAboutDialog();
} catch (Throwable ignored) {}
});
}
// Setup drawer settings controls to mirror quick actions
setupDrawerSettings(header);
@@ -2077,7 +2085,37 @@ public class MainActivity extends AppCompatActivity implements GamesCoverDialogF
updatePausePlayButton();
}
private void showAboutDialog() {
String aboutMessage = "PSX2 - PlayStation 2 Emulator for Android\n\n" +
"This is an Android port of PCSX2, the renowned PlayStation 2 emulator.\n\n" +
"Based on:\n" +
"• PCSX2: https://github.com/PCSX2/pcsx2\n" +
"• PCSX2_ARM64: https://github.com/pontos2024/PCSX2_ARM64\n\n" +
"Free Version: Follow the build instructions in the repository to compile from source.\n" +
"Paid Version: Get convenient automatic updates through the Play Store.\n\n" +
"Important:\n" +
"• No games or BIOS files are included\n" +
"• You must own original PlayStation 2 games and console\n" +
"• This emulator is for educational and preservation purposes\n\n" +
"Licensed under GNU General Public License v3.0\n" +
"View full license: https://github.com/YOUR_USERNAME/PSX2-Android/blob/main/LICENSE";
new MaterialAlertDialogBuilder(this,
com.google.android.material.R.style.ThemeOverlay_Material3_MaterialAlertDialog)
.setTitle("About PSX2")
.setMessage(aboutMessage)
.setPositiveButton("OK", null)
.setNeutralButton("View License", (dialog, which) -> {
// Open LICENSE file or GitHub link
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://github.com/YOUR_USERNAME/PSX2-Android/blob/main/LICENSE"));
try {
startActivity(intent);
} catch (Exception e) {
Toast.makeText(this, "Could not open license link", Toast.LENGTH_SHORT).show();
}
})
.show();
}
}
}
@@ -286,6 +286,30 @@
android:textAllCaps="false"
android:layout_marginBottom="8dp"/>
<!-- About Section -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="About"
android:textStyle="bold"
android:textColor="@color/brand_primary"
android:paddingBottom="8dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/drawer_btn_about"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="About PSX2"
android:textColor="@android:color/white"
android:textAllCaps="false"
app:icon="@drawable/info_24px"
app:iconTint="@color/brand_primary"
app:iconGravity="textStart"
app:iconPadding="8dp"
app:iconSize="20dp"
android:layout_marginBottom="16dp"/>
</LinearLayout>
</ScrollView>
+675
View File
File diff suppressed because it is too large Load Diff