PowerMode 2003: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
{{Tool | {{Tool | ||
− | |name= | + | |name=PowerMode 2003 |
<!--|bild=--> | <!--|bild=--> | ||
|ersteller=[[firesta]]<br />[[Ripp3er]] <small>(hvm.dll)</small> | |ersteller=[[firesta]]<br />[[Ripp3er]] <small>(hvm.dll)</small> | ||
Zeile 11: | Zeile 11: | ||
}} | }} | ||
__NOTOC__ | __NOTOC__ | ||
− | ''' | + | '''PowerMode 2003''' ist ein vom russischen Entwickler [[firesta]] entwickelter Patch für den [[RPG Maker 2003]], der die Engine um einige über [[Variable]]n-Register steuerbare Funktionen und Kompatibilität für zusätzliche Audio-Formate erweitert. |
− | Eine erste (nicht mehr auffindbare) Preview-Version, des Patches wurde im Herbst 2006 im Forum des russischen Entwicklerteams [[GDSA Team]] in Form einer modifizierten [[RPG_RT.exe]] veröffentlicht und Anfang | + | Eine erste (nicht mehr auffindbare) Preview-Version, des Patches wurde im Herbst 2006 im Forum des russischen Entwicklerteams [[GDSA Team]] in Form einer modifizierten [[RPG_RT.exe]] veröffentlicht und Anfang Januar des darauffolgenden Jahres von einer als ''WIP-20070114'' deklarierten Version abgelöst. Eine englische Übersetzung der dokumentierten Patch-Funktionen wurde einen Monat später nachgereicht. Diese ''WIP-Version'' wurde anschließend von Entwicklern verschiedener internationaler Communities aufgegriffenen, übersetzt und weiter geteilt. |
− | Ein zentrales Feature des Patches ist der Ersatz des [[Harmony.dll|Harmony]] | + | Ein zentrales Feature des Patches ist der Ersatz des [[Harmony.dll|Harmony-Systems]] über die eigene Bibliothek ''warp.dll'', welche als Schnittstelle zu einem externen Audio-Backend in einer separaten DLL dient. Vor Version ''0.02'' wurde hierzu auf die proprietäre Sound-Engine [[wikipedia:de:FMOD|FMOD]] gesetzt. |
− | Die später im Juni 2007 veröffentlichte Version ''0.02'' enthält zwar keine zusätzlichen neuen Spezial-Funktionen, tauscht jedoch das in der | + | Die später im Juni 2007 veröffentlichte Version ''0.02'' enthält zwar keine zusätzlichen neuen Spezial-Funktionen, tauscht jedoch das in der vorherigen Fassung verwendete Audio-Backend gegen [[wikipedia:de:XMPlay|BASS]] aus und entfernt zudem die experimentelle (und undokumentierte) Spezial-DLL ''hvm.dll (Harmony Virtual System)'' von [[Ripp3er]] gänzlich. |
− | Im italienischen Raum war der Patch durch eine Übersetzung des Entwicklers [[Calev]] | + | Im italienischen Raum war der Patch durch eine Übersetzung des Entwicklers [[Calev]] unter dem Namen ''Mega Patch 2003'' bekannt. |
==Features== | ==Features== | ||
− | === Audiowiedergabe (warp.dll) === | + | ===Audiowiedergabe (warp.dll)=== |
− | + | Da der Patch nur für die ''RPG_RT.exe'' gedacht ist, und den Editor selbst nicht verändert, müssen Dateinamen entsprechend angepasst werden, um diese in den [[BGM|Musik]]- und [[SE|Soundeffekt]]-Auswahlfenstern des [[RPG Maker]]s verwenden zu können. | |
− | Da der Patch nur für die ''RPG_RT'' gedacht ist, und den Editor selbst nicht verändert, müssen Dateinamen entsprechend angepasst werden, um diese in den Musik- und Soundeffekt- | ||
(zB. ''music.ogg '''->''' music.ogg.wav'') | (zB. ''music.ogg '''->''' music.ogg.wav'') | ||
− | ==== | + | ====FMOD / FMOD Ex (vor 0.02)==== |
Abhängig von der Bibliothek ''fmodex.dll''. | Abhängig von der Bibliothek ''fmodex.dll''. | ||
− | * Unterstützung zusätzlicher Audio-Formate wie | + | *Unterstützung zusätzlicher Audio-Formate wie [[OGG Vorbis]] |
− | * Unterstützung verschiedener Tracker-Formate wie | + | *Unterstützung verschiedener [[wikipedia:de:Tracker_(Musik)|Tracker]]-Formate wie [[wikipedia:de:Mod_(Dateiformat)|MOD]] |
− | * "Smooth MP3 Looping" | + | *"Smooth [[wikipedia:de:MP3|MP3]] Looping" |
− | |||
− | |||
− | |||
− | + | ====BASS (ab 0.02)==== | |
− | + | Bibliotheksabhängig: ''bass.dll'', ''bass_aac.dll'', ''bass_fx.dll'' | |
− | |||
− | + | *Unterstützung des [[wikipedia:de:MPEG-4_High_Efficiency_Advanced_Audio_Coding|AAC+-Formats]] und von [[wikipedia:de:MP4|MP4-Containern]] | |
+ | *Unterstützung zusätzlicher Tracker-Formate wie [[wikipedia:en:MO3|MO3]] | ||
+ | *Wegfall der Unterstütung für [[wikipedia:Windows Media Audio|Windows Media Audio (WMA)]] | ||
− | Die Spezialfunktionen des Patches werden über eine Reihe von reservierten Variablen (''#0001'' - ''#0008'') gesteuert. In der ersten Spalte folgender Tabelle | + | ===Zusätzliche Kommandos & Operationen=== |
+ | Die Spezialfunktionen des Patches werden über eine Reihe von reservierten Variablen (''#0001'' - ''#0008'') gesteuert. In der ersten Spalte folgender Tabelle <span style="color: #6020C0;">hervorgehobene Variablen-Register</span> lösen bei Schreiboperationen den vorgesehenen Patch-Code aus, dienen teils aber auch als Register für Ausgabewerte. Ausgeklammerte ("''<small>(#000x)</small>''") Namen sind lediglich für Ausgaben vorgesehen. | ||
{| class="wikitable" style="width: 100%; font-size: 0.85em;" | {| class="wikitable" style="width: 100%; font-size: 0.85em;" | ||
!Register!!Funktions-Bezeichnung!!Auswirkung und Anmerkungen | !Register!!Funktions-Bezeichnung!!Auswirkung und Anmerkungen | ||
|- | |- | ||
− | | | + | |<span style="font-weight: bold; color: #6020C0;">#0001:CR0</span>||''Control Register 0''|| |
* Setzen auf Wert '''255''': Öffnen des Lade-Menüs (''Nur falls Spielstände vorhanden'') | * Setzen auf Wert '''255''': Öffnen des Lade-Menüs (''Nur falls Spielstände vorhanden'') | ||
* Setzen auf Wert '''254''': Schließen des Programms (''Exit to Windows'')<br/> | * Setzen auf Wert '''254''': Schließen des Programms (''Exit to Windows'')<br/> | ||
Beim Lesen der Variable wird abhängig davon, ob Speicherstände im Spielordner vorhanden sind, entweder '''0''' (keine Dateien vorhanden) oder '''1''' zurückgegeben. | Beim Lesen der Variable wird abhängig davon, ob Speicherstände im Spielordner vorhanden sind, entweder '''0''' (keine Dateien vorhanden) oder '''1''' zurückgegeben. | ||
|- | |- | ||
− | |''<small>(#0002:MCOORDX)</small>''<br/> | + | |''<small>(#0002:MCOORDX)</small>''<br/><span style="font-weight: bold; color: #6020C0;">#0003:MCOORDY</span>||Abfrage des Maus-Cursors|| |
Nach dem Setzen auf einen beliebigen Wert, werden die Variablen-Register ''#0002:MCOORDX''' / ''#0003:MCOORDY'' auf die aktuellen X/Y-Positionen des Maus-Cursors gesetzt. | Nach dem Setzen auf einen beliebigen Wert, werden die Variablen-Register ''#0002:MCOORDX''' / ''#0003:MCOORDY'' auf die aktuellen X/Y-Positionen des Maus-Cursors gesetzt. | ||
Dies passiert nicht automatisch, sondern es muss vor jeder neuen Abfrage von Koordinaten der Wert der Variable ''#0003:MCOORDY'' verändert werden! | Dies passiert nicht automatisch, sondern es muss vor jeder neuen Abfrage von Koordinaten der Wert der Variable ''#0003:MCOORDY'' verändert werden! | ||
|- | |- | ||
− | | | + | |<span style="font-weight: bold; color: #6020C0;">#0004:KEY</span>||Erweiterte Tastenabfrage|| |
Nach dem Setzen der Variable (entweder auf eine gültige ''VirtualKey-ID'' oder den Wert '''0'''), wird der aktuelle Status der Tastatur überprüft und im Falle einer gedrückten Taste, der ''ID-Wert'' dieser in dasselbe Variablen-Register zurückgeschrieben. | Nach dem Setzen der Variable (entweder auf eine gültige ''VirtualKey-ID'' oder den Wert '''0'''), wird der aktuelle Status der Tastatur überprüft und im Falle einer gedrückten Taste, der ''ID-Wert'' dieser in dasselbe Variablen-Register zurückgeschrieben. | ||
Zeile 66: | Zeile 64: | ||
Wurde kein Tastendruck registriert, wird der Wert '''0''' in das Register zurückgegeben. | Wurde kein Tastendruck registriert, wird der Wert '''0''' in das Register zurückgegeben. | ||
|- | |- | ||
− | |''<small>(#0005:FVALUE1)</small>''<br/>''<small>(#0006:FVALUE2)</small>''<br/> | + | |''<small>(#0005:FVALUE1)</small>''<br/>''<small>(#0006:FVALUE2)</small>''<br/><span style="font-weight: bold; color: #6020C0;">#0007:FCODE</span>||Fließkommazahl-Operationen|| |
* Wert '''1''': Berechnung des Sinus / Cosinus für Eingabe in Register ''#0005:FVALUE1''<br/>('''sin''': wird in ''#0006:FVALUE2'' gespeichert; '''cos''': wird ''#0005:FVALUE1'' gespeichert) | * Wert '''1''': Berechnung des Sinus / Cosinus für Eingabe in Register ''#0005:FVALUE1''<br/>('''sin''': wird in ''#0006:FVALUE2'' gespeichert; '''cos''': wird ''#0005:FVALUE1'' gespeichert) | ||
* Wert '''2''': Berechnung des Tangens für Eingabe in Register ''#0005:FVALUE1''<br/>('''tan''' wird in in Ziel-Register ''#0006:FVALUE2'' gespeichert) | * Wert '''2''': Berechnung des Tangens für Eingabe in Register ''#0005:FVALUE1''<br/>('''tan''' wird in in Ziel-Register ''#0006:FVALUE2'' gespeichert) | ||
Zeile 74: | Zeile 72: | ||
Da der ''RPG Maker'' standardmäßig keine Fließkommazahlen unterstütz, werden die Nachkommastellen für Operationen '''3''' & '''4''' als Ganzzahl zurückgegeben. | Da der ''RPG Maker'' standardmäßig keine Fließkommazahlen unterstütz, werden die Nachkommastellen für Operationen '''3''' & '''4''' als Ganzzahl zurückgegeben. | ||
|- | |- | ||
− | | | + | |<span style="font-weight: bold; color: #6020C0;">#0008:SPECIAL</span>||Special Mode|| |
Aktiviert die Möglichkeit, die Rotation von bis zu 50 Pictures (zur damaligen Zeit das Höchstlimit) über einen festgelegten Variablen-Block individuell zu steuern. Dabei wird der Standard-Effekt des Makers, die Rotation bei Update der Spiel-Logik automatisch mit einem festgelegten Effekt-Wert zu inkrementieren, mit einem fix festgelegten aus einer Variablen-Referenz gelesenen Wert zwischen '''0''' und '''256''' überschrieben. (''Werte außerhalb eines uint8-Typs führen zu einem Integer-Overflow'') | Aktiviert die Möglichkeit, die Rotation von bis zu 50 Pictures (zur damaligen Zeit das Höchstlimit) über einen festgelegten Variablen-Block individuell zu steuern. Dabei wird der Standard-Effekt des Makers, die Rotation bei Update der Spiel-Logik automatisch mit einem festgelegten Effekt-Wert zu inkrementieren, mit einem fix festgelegten aus einer Variablen-Referenz gelesenen Wert zwischen '''0''' und '''256''' überschrieben. (''Werte außerhalb eines uint8-Typs führen zu einem Integer-Overflow'') | ||
Zeile 82: | Zeile 80: | ||
|} | |} | ||
− | === Zusätzliche Änderungen am Verhalten | + | ===Zusätzliche Änderungen am Verhalten=== |
− | |||
Weiters hat der Patch noch folgende Nebeneffekte, die sich ohne manuelles Editieren mit einem Hex-Editor nicht deaktivieren lassen: | Weiters hat der Patch noch folgende Nebeneffekte, die sich ohne manuelles Editieren mit einem Hex-Editor nicht deaktivieren lassen: | ||
− | *Die Hersteller-Logos von [[Enterbrain]] | + | *Die Hersteller-Logos von [[Enterbrain]] werden entfernt. |
− | *Der Titelbildschirm wird immer übersprungen ( | + | *Der [[Titelbildschirm]] wird immer übersprungen (Funktion entspricht dem von [[Auto Enter Patch]]). |
− | *Die | + | *Die linke und rechte Maustaste können zum Bestätigungen, respektive Abbrechen innerhalb der Standardsysteme verwendet werden. |
− | |||
− | |||
− | |||
− | + | ====Zusätzliche Verhaltensänderung bei Picture-Rotationen==== | |
+ | Eine Besonderheit im ''RPG Maker 2003'' vor Version 1.10, die Transparenz der oberen & unteren Hälfte eines dargestellten Pictures unabhängig voneinander steuern zu können, wird durch ''PowerMode 2003'' entfernt. Dem Datenfeld für die ''"Untere Transparenz"'' weist der Patch die Funktion zu, das Picture, sofern Rotation aktiviert wurde, bei einem Wert von mindestens 50 entgegen statt mit dem Uhrzeitgersinn zu drehen. Dies kann für gewöhnlich jedoch auch darüber erzielt werden, der Effektstärke einen negativen Wert zuzuweisen, was über manipulierten Eventcode oder eine Änderung des Editors relativ einfach möglich ist. | ||
==Links== | ==Links== | ||
Zeile 104: | Zeile 99: | ||
{{NavboxAudio}} | {{NavboxAudio}} | ||
− | [[Kategorie:Patch (RPG_RT.exe)]] [[Kategorie:HarmonyReplacement]] | + | [[Kategorie:Patch (RPG Maker 2003)]] [[Kategorie:Patch (RPG_RT.exe)]] [[Kategorie:HarmonyReplacement]] |
Version vom 27. März 2025, 03:30 Uhr
PowerMode 2003 |
---|
Erstellt von | firesta Ripp3er (hvm.dll) |
Betriebssystem | Windows |
Für Maker/Engine | RPG Maker 2003 1.0.9.1 |
Sprache | Russisch Englisch Spanisch (Übersetzung) Französisch (Übersetzung) Italienisch (Übersetzung) |
Aktuelle Version | 0.02 |
Veröffentlichung | 17. Juni 2007 (0.02) |
Herunterladen |
PowerMode 2003 ist ein vom russischen Entwickler firesta entwickelter Patch für den RPG Maker 2003, der die Engine um einige über Variablen-Register steuerbare Funktionen und Kompatibilität für zusätzliche Audio-Formate erweitert.
Eine erste (nicht mehr auffindbare) Preview-Version, des Patches wurde im Herbst 2006 im Forum des russischen Entwicklerteams GDSA Team in Form einer modifizierten RPG_RT.exe veröffentlicht und Anfang Januar des darauffolgenden Jahres von einer als WIP-20070114 deklarierten Version abgelöst. Eine englische Übersetzung der dokumentierten Patch-Funktionen wurde einen Monat später nachgereicht. Diese WIP-Version wurde anschließend von Entwicklern verschiedener internationaler Communities aufgegriffenen, übersetzt und weiter geteilt.
Ein zentrales Feature des Patches ist der Ersatz des Harmony-Systems über die eigene Bibliothek warp.dll, welche als Schnittstelle zu einem externen Audio-Backend in einer separaten DLL dient. Vor Version 0.02 wurde hierzu auf die proprietäre Sound-Engine FMOD gesetzt.
Die später im Juni 2007 veröffentlichte Version 0.02 enthält zwar keine zusätzlichen neuen Spezial-Funktionen, tauscht jedoch das in der vorherigen Fassung verwendete Audio-Backend gegen BASS aus und entfernt zudem die experimentelle (und undokumentierte) Spezial-DLL hvm.dll (Harmony Virtual System) von Ripp3er gänzlich.
Im italienischen Raum war der Patch durch eine Übersetzung des Entwicklers Calev unter dem Namen Mega Patch 2003 bekannt.
Features
Audiowiedergabe (warp.dll)
Da der Patch nur für die RPG_RT.exe gedacht ist, und den Editor selbst nicht verändert, müssen Dateinamen entsprechend angepasst werden, um diese in den Musik- und Soundeffekt-Auswahlfenstern des RPG Makers verwenden zu können.
(zB. music.ogg -> music.ogg.wav)
FMOD / FMOD Ex (vor 0.02)
Abhängig von der Bibliothek fmodex.dll.
- Unterstützung zusätzlicher Audio-Formate wie OGG Vorbis
- Unterstützung verschiedener Tracker-Formate wie MOD
- "Smooth MP3 Looping"
BASS (ab 0.02)
Bibliotheksabhängig: bass.dll, bass_aac.dll, bass_fx.dll
- Unterstützung des AAC+-Formats und von MP4-Containern
- Unterstützung zusätzlicher Tracker-Formate wie MO3
- Wegfall der Unterstütung für Windows Media Audio (WMA)
Zusätzliche Kommandos & Operationen
Die Spezialfunktionen des Patches werden über eine Reihe von reservierten Variablen (#0001 - #0008) gesteuert. In der ersten Spalte folgender Tabelle hervorgehobene Variablen-Register lösen bei Schreiboperationen den vorgesehenen Patch-Code aus, dienen teils aber auch als Register für Ausgabewerte. Ausgeklammerte ("(#000x)") Namen sind lediglich für Ausgaben vorgesehen.
Register | Funktions-Bezeichnung | Auswirkung und Anmerkungen |
---|---|---|
#0001:CR0 | Control Register 0 |
Beim Lesen der Variable wird abhängig davon, ob Speicherstände im Spielordner vorhanden sind, entweder 0 (keine Dateien vorhanden) oder 1 zurückgegeben. |
(#0002:MCOORDX) #0003:MCOORDY |
Abfrage des Maus-Cursors |
Nach dem Setzen auf einen beliebigen Wert, werden die Variablen-Register #0002:MCOORDX' / #0003:MCOORDY auf die aktuellen X/Y-Positionen des Maus-Cursors gesetzt. Dies passiert nicht automatisch, sondern es muss vor jeder neuen Abfrage von Koordinaten der Wert der Variable #0003:MCOORDY verändert werden! |
#0004:KEY | Erweiterte Tastenabfrage |
Nach dem Setzen der Variable (entweder auf eine gültige VirtualKey-ID oder den Wert 0), wird der aktuelle Status der Tastatur überprüft und im Falle einer gedrückten Taste, der ID-Wert dieser in dasselbe Variablen-Register zurückgeschrieben. Im Falle des Werts 0 wird der Status für das gesamte Keyboard überprüft (Tasten mit niedrigererem Code haben Priorität), ansonsten wird nur der Status einer einzelnen Taste überprüft. Wurde kein Tastendruck registriert, wird der Wert 0 in das Register zurückgegeben. |
(#0005:FVALUE1) (#0006:FVALUE2) #0007:FCODE |
Fließkommazahl-Operationen |
Da der RPG Maker standardmäßig keine Fließkommazahlen unterstütz, werden die Nachkommastellen für Operationen 3 & 4 als Ganzzahl zurückgegeben. |
#0008:SPECIAL | Special Mode |
Aktiviert die Möglichkeit, die Rotation von bis zu 50 Pictures (zur damaligen Zeit das Höchstlimit) über einen festgelegten Variablen-Block individuell zu steuern. Dabei wird der Standard-Effekt des Makers, die Rotation bei Update der Spiel-Logik automatisch mit einem festgelegten Effekt-Wert zu inkrementieren, mit einem fix festgelegten aus einer Variablen-Referenz gelesenen Wert zwischen 0 und 256 überschrieben. (Werte außerhalb eines uint8-Typs führen zu einem Integer-Overflow) Wird das Register zB. auf den Wert 21 gesetzt, legt somit der Inhalt von Variable #0021 den Rotations-Wert für Picture-ID #01 fest. Variable #0022 den Wert für Picture #02, usw.. Werte unterhalb der ID 11 für Register #0008:SPECIAL werden als ungültig erkannt und deaktivieren das Verhalten des Patches. |
Zusätzliche Änderungen am Verhalten
Weiters hat der Patch noch folgende Nebeneffekte, die sich ohne manuelles Editieren mit einem Hex-Editor nicht deaktivieren lassen:
- Die Hersteller-Logos von Enterbrain werden entfernt.
- Der Titelbildschirm wird immer übersprungen (Funktion entspricht dem von Auto Enter Patch).
- Die linke und rechte Maustaste können zum Bestätigungen, respektive Abbrechen innerhalb der Standardsysteme verwendet werden.
Zusätzliche Verhaltensänderung bei Picture-Rotationen
Eine Besonderheit im RPG Maker 2003 vor Version 1.10, die Transparenz der oberen & unteren Hälfte eines dargestellten Pictures unabhängig voneinander steuern zu können, wird durch PowerMode 2003 entfernt. Dem Datenfeld für die "Untere Transparenz" weist der Patch die Funktion zu, das Picture, sofern Rotation aktiviert wurde, bei einem Wert von mindestens 50 entgegen statt mit dem Uhrzeitgersinn zu drehen. Dies kann für gewöhnlich jedoch auch darüber erzielt werden, der Effektstärke einen negativen Wert zuzuweisen, was über manipulierten Eventcode oder eine Änderung des Editors relativ einfach möglich ist.
Links
- Projekt-Webseite des Entwicklers (archiviert)
- Release-Tagebuch im Forum des GDSA-Teams (archiviert)
- Spanischer Artikel zu den Funktionen des Patches auf Hellsoft.net (inkl. Beispielprojekt)
- VirtualKey-Liste bei Microsoft Docs
- VirtualKey-Liste auf CherryTree