นี่คือเวอร์ชัน Android ของ [Ymir](https://github.com/StrikerX3/Ymir) โปรแกรมจำลอง Sega Saturn ของ StrikerX3
NEON SATURN ยังคงใช้แกนหลักของการจำลอง Ymir เหมือนเดิม และแทนที่ส่วนติดต่อผู้ใช้บนเดสก์ท็อปด้วยส่วนติดต่อผู้ใช้แบบเนทีฟของ Android
ซึ่งประกอบด้วย: ตัวช่วยตั้งค่า, คลังเกมพร้อมภาพปก, การควบคุมแบบสัมผัสสไตล์ Saturn และเมนูการกระทำด่วนในเกม
## คุณสมบัติ
### คลังเกม
- ตัวช่วยตั้งค่าสำหรับการนำเข้า ROM IPL (BIOS) และชี้แอปไปยังโฟลเดอร์เกม
- โฟลเดอร์เกมจะถูกอ่านผ่าน Storage Access Framework ดังนั้นจึงสามารถอยู่ที่ใดก็ได้บนอุปกรณ์
- มุมมองคลังเกมสามแบบ สลับจากส่วนหัว: รายการ, ภาพปกกล่อง NA และภาพปกกล่อง Jewel Case ของญี่ปุ่น
- Coverflow พร้อมมุมมองแบบเปอร์สเปคทีฟ การสะท้อน และการจัดหน้าแบบจัดกึ่งกลาง
- ดึงและแคชภาพปกตามต้องการ หรือดาวน์โหลดเป็นกลุ่มจากเมนูการตั้งค่า
- ฉากหลังดวงดาวแบบเคลื่อนไหว
- ธีมสว่าง / มืด / ตามระบบ โดยค่าเริ่มต้นเป็นธีมมืด
### ในเกม
- การควบคุมแบบสัมผัสสไตล์ Saturn: ปุ่มทิศทาง, จอยสติ๊กแบบอนาล็อก, A/B/C, X/Y/Z, L/R, Start
- เค้าโครงที่สามารถปรับตำแหน่งได้อย่างเต็มที่ จัดเก็บแยกต่างหากสำหรับแนวตั้งและแนวนอน
- ปุ่มย้อนกลับและกรอไปข้างหน้าบนโอเวอร์เลย์
- เมนูการกระทำด่วน (ปุ่มย้อนกลับหรือปุ่มเลือกบนเกมแพด): เล่นต่อ, บันทึกสถานะ, โหลดสถานะ, ออก
- เกมแพดและคีย์บอร์ดจริง รองรับผ่าน SDL รวมถึงฐานข้อมูลคอนโทรลเลอร์ที่รวมมาด้วย
### ตัวเลือกการจำลอง
- อัตราส่วนภาพ: 4:3, 16:9 หรือแบบยืด
- การกรองพื้นผิว: คมชัด (nearest) หรือเรียบ (bilinear)
- ตัวกรองการขยายภาพ: ปิด หรือ 6x xBRZ
- การเรนเดอร์แบบ Deinterlaced สำหรับโหมดความละเอียดสูง
- การเรนเดอร์โพลีกอนตาข่ายโปร่งใส
- บัฟเฟอร์ย้อนกลับ (ประมาณห้าวินาทีที่ 60 fps) ปิดโดยค่าเริ่มต้น
- การจำลองบล็อก CD ระดับต่ำ (ไม่บังคับ) เมื่อนำเข้า ROM บล็อก CD
## การใช้งาน
ติดตั้งแอป ตัวช่วยติดตั้งจะขอสองสิ่ง:
1. **IPL BIOS** — นำเข้า ROM BIOS ของ Saturn (`.bin` หรือ `.rom`) จำเป็น
2. **โฟลเดอร์เกม** — เลือกโฟลเดอร์ที่เก็บอิมเมจแผ่นดิสก์ของคุณ จำเป็น
สามารถนำเข้า **CD Block ROM** ได้เช่นกัน ซึ่งเป็นตัวเลือกเสริม และจะเปิดใช้งานการจำลองบล็อก CD ระดับต่ำ
เมื่อตั้งค่า BIOS และโฟลเดอร์เกมแล้ว ไลบรารีจะเข้ามาแทนที่ตัวช่วยสร้าง แตะเกมเพื่อเริ่มและเปิดใช้งาน
ไอคอนรูปเฟืองในส่วนหัวจะเปิดการตั้งค่า ไอคอนทางด้านซ้ายจะสลับระหว่างมุมมองรายการและมุมมองปก
รูปแบบแผ่นดิสก์ที่รองรับ: **MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS และ ISO** รูปแบบไฟล์หลายไฟล์จำเป็นต้องมีไฟล์แทร็กประกอบอยู่ในโฟลเดอร์เดียวกัน — ตัวเรียกใช้งานจะตรวจสอบและปฏิเสธการเริ่มต้นหากไม่มีไฟล์เหล่านั้น
## หมายเหตุและข้อจำกัด
**การเพิ่มความละเอียดภาพไม่ได้เพิ่มความละเอียดภายใน** แกนหลักของ Ymir มีเพียงตัวเรนเดอร์ซอฟต์แวร์และ
เรนเดอร์ภาพที่ความละเอียดดั้งเดิมของ Saturn ดังนั้นตัวกรองการเพิ่มความละเอียดภาพจึงเป็นการปรับให้เรียบโดยคำนึงถึงขอบภาพที่ใช้
กับเฟรมที่เสร็จสมบูรณ์แล้ว มันจะเพิ่มความคมชัดให้กับสไปรต์ 2 มิติและพื้นหลังอย่างเห็นได้ชัด มันไม่สามารถเพิ่มรายละเอียด 3 มิติได้ การเรนเดอร์ความละเอียดภายในที่แท้จริงจะต้องใช้ตัวเรนเดอร์ฮาร์ดแวร์ในแกนหลัก ซึ่งยังไม่มีอยู่ในขณะนี้
**การย้อนเวลาใช้ CPU และหน่วยความจำ** มันจะบันทึกสถานะของอีมูเลเตอร์ทุกเฟรมและเก็บค่าความแตกต่างที่บีบอัดด้วย LZ4 ไว้ไม่กี่วินาที ดังนั้นจึงปิดใช้งานโดยค่าเริ่มต้น และปุ่มบนหน้าจอจะถูกซ่อนไว้จนกว่าจะเปิดใช้งาน
**การตั้งค่าจะมีผลเมื่อเริ่มเกม** ตัวเลือกกราฟิกและการย้อนเวลาจะถูกอ่านเมื่อเกมเริ่มต้น ดังนั้นการเปลี่ยนแปลงจะมีผลในครั้งถัดไปที่คุณเริ่มเกม
## เครดิตและใบอนุญาต
NEON SATURN ได้รับอนุญาตภายใต้ **GNU General Public License v3.0** — ดู [LICENSE](LICENSE)
- **[Ymir](https://github.com/StrikerX3/Ymir)** โดย StrikerX3 — แกนหลักของอีมูเลเตอร์และทุกอย่างที่พอร์ตนี้สร้างขึ้น หากคุณชอบ โปรดสนับสนุนผู้เขียนต้นทางบน
[Patreon](https://www.patreon.com/StrikerX3) และเข้าร่วม
[Discord](https://discord.gg/NN3A7n5dzn)
- **[Kronos](https://github.com/FCare/Kronos)** / **Yabause** — เชเดอร์สำหรับเพิ่มความละเอียดภาพ 6x xBRZ ใน
[`android/app/src/main/cpp/xbrz6x_shader.hpp`](android/app/src/main/cpp/xbrz6x_shader.hpp) ซึ่งใช้งานภายใต้
GPL-2.0 หรือเวอร์ชันที่ใหม่กว่า ข้อความแจ้งลิขสิทธิ์ดั้งเดิมยังคงอยู่ในไฟล์นั้น
- **[SDL3](https://github.com/libsdl-org/SDL)** — การจัดการหน้าต่าง เสียง อินพุต และกิจกรรมของ Android
โปรแกรมจำลองเครื่องเล่นเกม Sega Saturn