all repos — mgba @ master

mGBA Game Boy Advance Emulator

README_DE.md (view raw)

  1mGBA
  2====
  3
  4mGBA ist ein Emulator für Game Boy Advance-Spiele. Das Ziel von mGBA ist, schneller und genauer als viele existierende Game Boy Advance-Emulatoren zu sein. Außerdem verfügt mGBA über Funktionen, die anderen Emulatoren fehlen. Zusätzlich werden auch Game Boy- und Game Boy Color-Spiele unterstützt.
  5
  6Aktuelle Neuigkeiten und Downloads findest Du auf [mgba.io](https://mgba.io).
  7
  8[![Build-Status](https://travis-ci.org/mgba-emu/mgba.svg?branch=master)](https://travis-ci.org/mgba-emu/mgba)
  9[![Status der Übersetzungen](https://hosted.weblate.org/widgets/mgba/-/svg-badge.svg)](https://hosted.weblate.org/engage/mgba)
 10
 11Features
 12--------
 13
 14- Sehr genaue Unterstützung der Game Boy Advance-Hardware[<sup>[1]</sup>](#missing).
 15- Unterstützung der Game Boy-/Game Boy Color-Hardware.
 16- Schnelle Emulation. mGBA ist dafür bekannt, auch auf schwacher Hardware wie Netbooks mit voller Geschwindigkeit zu laufen.
 17- Qt- und SDL-Portierungen für eine vollwertige und eine "leichtgewichtige" Benutzeroberfläche.
 18- Lokale (gleicher Computer) Unterstützung für Link-Kabel.
 19- Erkennung des Speichertypes, einschließlich der Größe des Flash-Speichers[<sup>[2]</sup>](#flashdetect).
 20- Unterstützung für Spielmodule mit Bewegungssensoren und Rüttel-Effekten (nur verwendbar mit Spiele-Controllern).
 21- Unterstützung für Echtzeituhren, selbst ohne Konfiguration.
 22- Unterstützung für den Lichtsensor in Boktai-Spielen
 23- Unterstützung für Game Boy Printer und Game Boy Camera.
 24- Eingebaute BIOS-Implementierung mit der Möglichkeit, externe BIOS-Dateien zu laden.
 25- Turbo/Vorlauf-Unterstützung durch drücken der Tab-Taste.
 26- Rücklauf-Unterstützung durch drücken der Akzent-Taste.
 27- Frameskip von bis zu 10 Bildern.
 28- Unterstützung für Screenshots.
 29- Unterstützung für Cheat-Codes.
 30- 9 Speicherstände für Savestates/Spielzustände. Savestates können auch als Screenshots dargestellt werden.
 31- Video-, GIF-, WebP- und APNG-Aufzeichnung.
 32- e-Reader-Unterstützung.
 33- Frei wählbare Tastenbelegungen für Tastaturen und Controller.
 34- Unterstützung für ZIP- und 7z-Archive.
 35- Unterstützung für Patches im IPS-, UPS- und BPS-Format.
 36- Spiele-Debugging über ein Kommandozeilen-Interface und IDA Pro-kompatible GDB-Unterstützung.
 37- Einstellbare Rücklauf-Funktion.
 38- Unterstützung für das Laden und Exportieren von GameShark- und Action Replay-Abbildern.
 39- Verfügbare Cores für RetroArch/Libretro und OpenEmu.
 40- Übersetzungen für mehrere Sprachen über [Weblate](https://hosted.weblate.org/engage/mgba).
 41- Viele, viele kleinere Dinge.
 42
 43### Game Boy-Mapper
 44
 45Die folgenden Mapper werden vollständig unterstützt:
 46
 47- MBC1
 48- MBC1M
 49- MBC2
 50- MBC3
 51- MBC3+RTC (MBC3+Echtzeituhr)
 52- MBC5
 53- MBC5+Rumble (MBC5+Rüttel-Modul)
 54- MBC7
 55- Wisdom Tree (nicht lizenziert)
 56- Pokémon Jade/Diamond (nicht lizenziert)
 57- BBD (nicht lizenziert, ählich MBC5)
 58- Hitek (nicht lizenziert, ähnlich MBC5)
 59
 60Die folgenden Mapper werden teilweise unterstützt:
 61
 62- MBC6 (fehlende Unterstützung für Schreibzugriffe auf den Flash-Speicher)
 63- MMM01
 64- Pocket Cam
 65- TAMA5 (fehlende RTC-Unterstützung)
 66- HuC-1 (fehlende Infrarot-Unterstützung)
 67- HuC-3 (fehlende RTC- und Infrarot-Unterstützung)
 68
 69### Geplante Features
 70
 71- Unterstützung für Link-Kabel-Multiplayer über ein Netzwerk.
 72- Unterstützung für Link-Kabel über Dolphin/JOY-Bus.
 73- MP2k-Audio-Abmischung für höhere Audio-Qualität als echte Hardware.
 74- Unterstützung für Tool-Assisted Speedruns.
 75- Lua-Unterstützung für Scripting.
 76- Eine umfangreiche Debugging-Suite.
 77- Unterstützung für Drahtlosadapter.
 78
 79Unterstützte Plattformen
 80------------------------
 81
 82- Windows Vista oder neuer
 83- OS X 10.8 (Mountain Lion)[<sup>[3]</sup>](#osxver) oder neuer
 84- Linux
 85- FreeBSD
 86- Nintendo 3DS
 87- Nintendo Switch
 88- Wii
 89- PlayStation Vita
 90
 91Andere Unix-ähnliche Plattformen wie OpenBSD sind ebenfalls dafür bekannt, mit mGBA kompatibel zu sein. Sie sind jedoch nicht getestet und werden nicht voll unterstützt.
 92
 93### Systemvoraussetzungen
 94
 95Die Systemvoraussetzungen sind minimal. Jeder Computer, der mit Windows Vista oder neuer läuft, sollte in der Lage sein, die Emulation zu bewältigen. Unterstützung für OpenGL 1.1 oder neuer ist ebenfalls voraussgesetzt. OpenGL 3.2 oder neuer wird für Shader und erweiterte Funktionen benötigt.
 96
 97Downloads
 98---------
 99
100Download-Links befinden sich in der [Downloads][downloads]-Sektion auf der offiziellen Website. Der Quellcode befindet sich auf [GitHub][source].
101
102Steuerung
103---------
104
105Die Steuerung kann im Einstellungs-Menü konfiguriert werden. Viele Spiele-Controller werden automatisch erkannt und entsprechend belegt. Für Tastaturen wird standardmäßig folgende Belegung verwendet:
106
107- **A**: X
108- **B**: Z
109- **L**: A
110- **R**: S
111- **Start**: Enter
112- **Select**: Rücktaste
113
114Kompilieren
115-----------
116
117Um mGBA kompilieren zu können, wird CMake 3.1 oder neuer benötigt. GCC und Clang sind beide dafür bekannt, mGBA kompilieren zu können. Visual Studio 2013 und älter funktionieren nicht. Unterstützung für Visual Studio 2015 und neuer wird bald hinzugefügt.
118
119#### Kompilieren mit Docker
120
121Der empfohlene Weg, um mGBA für die meisten Plattformen zu kompilieren, ist die Verwendung von Docker. Mehrere Docker-Images sind verfügbar, welche die benötigte Compiler-Umgebung und alle benötigten Abhängigkeiten beinhaltet, um mGBA für verschiedene Plattformen zu bauen.
122
123Um ein Docker-Image zum Bau von mGBA zu verwenden, führe einfach folgenden Befehl in dem Verzeichnis aus, in welches Du den mGBA-Quellcode ausgecheckt hast:
124
125	docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
126
127Dieser Befehl erzeugt ein Verzeichnis `build-win32` mit den erzeugten Programmdateien. Ersetze `mgba/windows:32` durch ein Docker-Image für eine andere Plattform, wodurch dann das entsprechende Verzeichnis erzeugt wird. Die folgenden Docker-Images sind im Docker Hub verfügbar:
128
129- mgba/3ds
130- mgba/switch
131- mgba/ubuntu:xenial
132- mgba/ubuntu:bionic
133- mgba/ubuntu:focal
134- mgba/ubuntu:groovy
135- mgba/vita
136- mgba/wii
137- mgba/windows:w32
138- mgba/windows:w64
139
140#### Unter *nix kompilieren
141
142Verwende folgende Befehle, um mGBA mithilfe von CMake auf einem Unix-basierten System zu bauen:
143
144	mkdir build
145	cd build
146	cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
147	make
148	sudo make install
149
150Damit wird mGBA gebaut und in `/usr/bin` und `/usr/lib` installiert. Installierte Abhängigkeiten werden automatisch erkannt. Features, die aufgrund fehlender Abhängigkeiten deaktiviert wurden, werden nach dem `cmake`-Kommando angezeigt.
151
152Wenn Du macOS verwendest, sind die einzelnen Schritte etwas anders. Angenommen, dass Du den Homebrew-Paketmanager verwendest, werden folgende Schritte zum installieren der Abhängigkeiten und anschließenden bauen von mGBA empfohlen:
153
154	brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-config
155	mkdir build
156	cd build
157	cmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..
158	make
159
160Bitte beachte, dass Du unter macOS nicht `make install` verwenden solltest, da dies nicht korrekt funktionieren wird.
161
162#### Für Entwickler: Kompilieren unter Windows
163
164##### MSYS2
165
166Um mGBA auf Windows zu kompilieren, wird MSYS2 empfohlen. Befolge die Installationsschritte auf der [MSYS2-Website](https://msys2.github.io). Stelle sicher, dass Du die 32-Bit-Version ("MSYS2 MinGW 32-bit") (oder die 64-Bit-Version "MSYS2 MinGW 64-bit", wenn Du mGBA für x86_64 kompilieren willst) verwendest und führe folgendes Kommando (einschließlich der Klammern) aus, um alle benötigten Abhängigkeiten zu installieren. Bitte beachte, dass dafür über 1100MiB an Paketen heruntergeladen werden, was eine Weile dauern kann:
167
168	pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
169
170Lade den aktuellen mGBA-Quellcode mithilfe des folgenden Kommandos herunter:
171
172	git clone https://github.com/mgba-emu/mgba.git
173
174Abschließend wird mGBA über folgende Kommandos kompiliert:
175
176	mkdir -p mgba/build
177	cd mgba/build
178	cmake .. -G "MSYS Makefiles"
179	make -j$(nproc --ignore=1)
180
181Bitte beachte, dass mGBA für Windows aufgrund der Vielzahl an benötigten DLLs nicht für die weitere Verteilung geeignet ist, wenn es auf diese Weise gebaut wurde. Es ist jedoch perfekt für Entwickler geeignet. Soll mGBA dennoch weiter verteilt werden (beispielsweise zu Testzwecken auf Systemen, auf denen keine MSYS2-Umgebung installiert ist), kann mithilfe des Befehls `cpack -G ZIP` ein ZIP-Archiv mit allen benötigten DLLs erstellt werden.
182
183##### Visual Studio
184
185mGBA mit Visual Studio zu bauen erfordert ein ähnlich kompliziertes Setup. Zuerst musst Du [vcpkg](https://github.com/Microsoft/vcpkg) installieren. Nachdem vcpkg installiert ist, musst Du noch folgende zusätzlichen Pakete installieren:
186
187	vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip sdl2 sqlite3
188
189Bitte beachte, dass diese Installation keine hardwarebeschleunigtes Video-Encoding auf Nvidia-Hardware unterstützen wird. Wenn Du darauf Wert legst, musst Du zuerst CUDA installieren und anschließend den vorherigen Befehl um `ffmpeg[vpx,x264,nvcodec]` ergänzen.
190
191Zusätzlich wirst Du auch Qt installieren müssen. Unglücklicherweise steht für Qt kein Offline-Installationsprogramm für die jeweils aktuelle Version bereit. Daher musst Du entweder auf eine [ältere Version](https://download.qt.io/official_releases/qt/5.12/5.12.9/qt-opensource-windows-x86-5.12.9.exe) zurückgreifen (hierfür benötigst Du ein ansonsten nutzloses Benutzerkonto, aber Du kannst das umgehen, indem Du temporär einen ungültigen Netzwerk-Proxy hinterlegst oder über andere Methoden deine Netzwerkverbindung deaktivierst). Alternativ kannst Du auch den Online-Installer nutzen (für den ohnehin ein Benutzeraccount erfortderlich ist) oder Qt selbst mithilfe von vcpkg bauen (was verhältnismäßig lange dauert). Keine dieser Optionen ist besonders elegant. Bitte achte bei der Verwendung eines Installers darauf, die passende MSVC-Version zu wählen. Der Offline-Installer unterstützt aktuell noch nicht MSVC 2019. Die Installation mit vcpkg dauert ein wenig länger, besonders, wenn Du einen Computer mit vier oder weniger CPU-Cores nutzt:
192
193    vcpkg install qt5-base qt5-multimedia
194
195Öffne anschließend Visual Studio, wähle "Clone Repository" und gib dort `https://github.com/mgba-emu/mgba.git` ein. Wenn Visual Studio das Repository geklont hat, gehe zu "Datei > CMake" und öffne die Datei CMakeLists.txt im Stammverzeichnis des ausgecheckten Repos. Anschließend kann mGBA in Visual Studio entwickelt werden, ähnlich wie andere Visual Studio CMake-Projekte.
196
197#### Kompilieren mithilfe einer Toolchain
198
199Wenn Du devkitARM (für 3DS), devkitPPC (für Wii), devkitA64 (für Switch) oder vitasdk (für PS Vita) installiert hast, kannst Du die folgenden Befehle zum Kompilieren verwenden:
200
201	mkdir build
202	cd build
203	cmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..
204	make
205	
206Ersetze den Parameter `-DCMAKE_TOOLCHAIN_FILE` dabei folgendermaßen:
207
208- 3DS: `../src/platform/3ds/CMakeToolchain.txt`
209- Switch: `../src/platform/switch/CMakeToolchain.txt`
210- Vita: `../src/platform/psp2/CMakeToolchain.vitasdk`
211- Wii: `../src/platform/wii/CMakeToolchain.txt`
212
213### Abhängigkeiten
214
215mGBA hat keine "harten" Abhängigkeiten. Dennoch werden die folgenden optionalen Abhängigkeiten für einige Features benötigt. Diese Features werden automatisch deaktiviert, wenn die benötigten Abhängigkeiten nicht gefunden werden.
216
217- Qt 5: Für die Benutzeroberfläche. Qt Multimedia oder SDL werden für Audio-Ausgabe benötigt.
218- SDL: Für eine einfachere Benutzeroberfläche und Spiele-Controller-Unterstützung in der Qt-Oberfläche. SDL 2 ist empfohlen, SDL 1.2 wird jedoch auch unterstützt.
219- zlib und libpng: Für die Unterstützung von Bildschirmfotos und Savestates-in-PNG-Unterstützung.
220- libedit: Für die Unterstützung des Kommandozeilen-Debuggers.
221- ffmpeg oder libav: Für Videoaufzeichnungen.
222- libzip oder zlib: Um ROMs aus ZIP-Dateien zu laden.
223- SQLite3: Für Spiele-Datenbanken.
224- libelf: Für das Laden von ELF-Dateien.
225
226SQLite3, libpng und zlib werden mit dem Emulator mitgeliefert, sodass sie nicht zuerst kompiliert werden müssen.
227
228Fußnoten
229--------
230
231<a name="missing">[1]</a> Zurzeit fehlende Features sind
232
233- OBJ-Fenster für die Modi 3, 4 und 5 ([Bug #5](http://mgba.io/b/5))
234
235<a name="flashdetect">[2]</a> In manchen Fällen ist es nicht möglich, die Größe des Flash-Speichers automatisch zu ermitteln. Diese kann dann zur Laufzeit konfiguriert werden, es wird jedoch empfohlen, den Fehler zu melden.
236
237<a name="osxver">[3]</a> 10.8 wird nur für die Qt-Portierung benötigt. Es ist wahrscheinlich möglich, die Qt-Portierung unter macOS 10.7 und älter zu bauen und zu nutzen, aber das wird nicht offiziell unterstützt. Die SDL-Portierung ist dafür bekannt, mit 10.7 und möglicherweise auf älteren Versionen zu funktionieren.
238
239[downloads]: http://mgba.io/downloads.html
240[source]: https://github.com/mgba-emu/mgba/
241
242Copyright
243---------
244
245Copyright für mGBA © 2013 – 2021 Jeffrey Pfau. mGBA wird unter der [Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/) veröffentlicht. Eine Kopie der Lizenz ist in der mitgelieferten Datei LICENSE verfügbar.
246
247mGBA beinhaltet die folgenden Bibliotheken von Drittanbietern:
248
249- [inih](https://github.com/benhoyt/inih), Copyright © 2009 - 2020 Ben Hoyt, verwendet unter einer BSD 3-clause-Lizenz.
250- [blip-buf](https://code.google.com/archive/b/blip-buf), Copyright © 2003 - 2009 Shay Green, verwendet unter einer Lesser GNU Public License.
251- [LZMA SDK](http://www.7-zip.org/sdk.html), Public Domain.
252- [MurmurHash3](https://github.com/aappleby/smhasher), Implementierung von Austin Appleby, Public Domain.
253- [getopt fot MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/), Public Domain.
254- [SQLite3](https://www.sqlite.org), Public Domain.
255
256Wenn Du ein Spiele-Publisher bist und mGBA für kommerzielle Verwendung lizenzieren möchtest, schreibe bitte eine e-Mail an [licensing@mgba.io](mailto:licensing@mgba.io) für weitere Informationen.