Dette er en Android-portering af [Ymir](https://github.com/StrikerX3/Ymir), StrikerX3's Sega Saturn-emulator.
NEON SATURN beholder Ymirs emuleringskerne som den er og erstatter desktop-frontend'en med en indbygget Android-frontend: en opsætningsguide, et spilbibliotek med omslag, berøringskontroller i Saturn-stil og en hurtighandlingsmenu i spillet.
## Funktioner
### Bibliotek
- Opsætningsguide til import af IPL (BIOS) ROM og peger appen mod en spilmappe
- Spilmappen læses gennem Storage Access Framework, så den kan findes hvor som helst på enheden
- Tre biblioteksvisninger, cyklisk fra headeren: en liste, NA-bokscovers og japanske jewel cases
- Coverflow med perspektiv, refleksioner og snap-to-centre paging
- Cover art hentes og caches efter behov eller downloades i bulk fra Indstillinger
- Animeret stjernefeltbaggrund
- Lys / mørk / følg-system-tema, standard til mørk
### I spillet
- Saturn-stil touch control overlay: D-pad, analog stick, A/B/C, X/Y/Z, L/R, Start
- Fuldt flytbart layout, gemt separat til stående og liggende
- Tilbage- og fremadspolingsknapper på overlayet
- Hurtighandlingsmenu (tilbage-knap eller gamepad-valg): genoptag, gem tilstand, indlæs tilstand, afslut
- Fysisk gamepad og tastaturunderstøttelse via SDL, inklusive en bundtet controllerdatabase
### Emuleringsmuligheder
- Billedformat: 4:3, 16:9 eller stretch
- Teksturfiltrering: skarp (nærmeste) eller glat (bilineær)
- Opskaleringsfilter: fra eller 6x xBRZ
- Deinterlaced rendering af højopløsningstilstande
- Transparent mesh polygon-rendering
- Tilbagespolingsbuffer (ca. fem sekunder ved 60 fps), fra som standard
- Valgfri lavniveau CD-blokemulering, når en CD-blok-ROM importeres
## Brug
Installer appen. Opsætningsguiden beder om to ting:
1. **IPL BIOS** — importer en Saturn BIOS ROM (`.bin` eller `.rom`). Påkrævet.
2. **Spilmappe** — vælg den mappe, der indeholder dine diskbilleder. Påkrævet.
En **CD-blok-ROM** kan også importeres. Det er valgfrit og muliggør lavniveau CD-blokemulering.
Når BIOS- og spilmappen er indstillet, erstatter biblioteket guiden. Tryk på et spil for at starte det. Tandhjulsikonet i overskriften åbner Indstillinger; ikonet til venstre skifter mellem liste- og omslagsvisning.
Understøttede diskformater: **MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS og ISO**. Multifilformater kræver, at deres
ledsagersporfiler er til stede i den samme mappe — launcheren søger efter dem og nægter at starte, hvis de mangler.
## Bemærkninger og begrænsninger
**Opskalering hæver ikke den interne opløsning.** Ymirs kerne har kun en software-renderer og
rasteriserer ved Saturn-native opløsning, så opskaleringsfilteret er en kantbevidst udjævning, der anvendes
på den færdige ramme. Det skærper 2D-sprites og baggrunde mærkbart; det kan ikke tilføje 3D-detaljer. Ægte
gengivelse med intern opløsning ville kræve en hardware-renderer i kernen, som endnu ikke findes.
**Tilbagespoling koster CPU og hukommelse.** Den gemmer emulatorens tilstand for hver frame og beholder et par sekunder af
LZ4-komprimerede deltaer, så den er som standard slået fra, og dens skærmknap er skjult, indtil den aktiveres.
**Indstillinger gælder ved opstart.** Grafik og tilbagespolingsmuligheder læses, når et spil starter, så ændring af dem
træder i kraft næste gang du starter et spil.
## Medvirkende og licens
NEON SATURN er licenseret under **GNU General Public License v3.0** — se [LICENS](LICENS).
- **[Ymir](https://github.com/StrikerX3/Ymir)** af StrikerX3 — emulatorkernen og alt, hvad denne port er bygget på. Hvis du kan lide dette, så støt upstream-forfatteren på
[Patreon](https://www.patreon.com/StrikerX3) og bliv medlem af [Discord](https://discord.gg/NN3A7n5dzn).
- **[Kronos](https://github.com/FCare/Kronos)** / **Yabause** — 6x xBRZ opskaleringsshaderen i
[`android/app/src/main/cpp/xbrz6x_shader.hpp`](android/app/src/main/cpp/xbrz6x_shader.hpp), brugt under GPL-2.0-eller nyere. Den originale copyright-meddelelse opbevares i den fil.
- **[SDL3](https://github.com/libsdl-org/SDL)** — vinduesfunktioner, lyd, input og Android-aktivitet.
En Sega Saturn-emulator