Benutzer:Käsekumpel/Power Mode 2003: Unterschied zwischen den Versionen

Aus Makerpendium.de
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
 
|os=Windows
 
|os=Windows
 
|engine=[[RPG Maker 2003]] 1.0.9.1
 
|engine=[[RPG Maker 2003]] 1.0.9.1
|sprache=-
+
|sprache=Russisch<br/>Englisch<br/>Spanisch <small>(Übersetzung)</small><br/>Französisch <small>(Übersetzung)</small><br/>Italienisch <small>(Übersetzung)</small>
 
|version=0.02
 
|version=0.02
 
|datum=17. Juni 2007 <small>(0.02)</small>
 
|datum=17. Juni 2007 <small>(0.02)</small>
Zeile 13: Zeile 13:
 
'''Power Mode 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.
 
'''Power Mode 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.
  
Die erste Version des Patches wurde im Herbst 2006 im Forum des russischen Entwicklerteams [[GDSA Team]] in Form einer modifizierten [[RPG_RT.exe]] veröffentlicht und später von Entwicklern verschiedener internationaler Communities weiter geteilt & übersetzt.
+
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 Jänner 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.
  
Geringe Popularität erfuhr der Patch durch die Möglichkeit, die Rotation von Pictures beliebig steuern zu können. Erweiterte Funktionen, wie die Möglichkeit einfache Fließkommazahl-Berechnungen durchführen zu können fanden eher kaum Verwendung, was zum Teil dem sehr verbuggten Code der Version ''0.01'' anzulasten ist.
+
Ein zentrales Feature des Patches ist der Ersatz des [[Harmony.dll|Harmony]]-Systems mit einer eigenen Bibliothek ''warp.dll'', welche als Schnittstelle zu einem externen Audio-Backend in einer separaten DLL dient. Vor Version ''0.02'' wurde hierzu eine die proprietäre Sound-Engine [[wikipedia:de:FMOD|FMOD]] gesetzt.
  
Die im darauffolgenden Jahr veröffentlichte Version ''0.02'' enthält zwar keine zusätzlichen neuen Spezial-Funktionen, tauscht jedoch das in der Vorgänger-Version verwendete Audio-Backend ''FMode'' gegen ''bass.dll'' aus, und entfernt zudem die experimentelle Spezial-DLL ''hvm.dll'' (''Harmony Virtual System'') von [[Ripp3er]] gänzlich.
+
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 Vorgänger-Version verwendete Audio-Backend gegen [[wikipedia:de:XMPlay|BASS]] aus, und entfernt zudem die experimentelle Spezial-DLL ''hvm.dll'' (''Harmony Virtual System'') von [[Ripp3er]] gänzlich.
  
 
Im italienischen Raum war der Patch unter dem Namen ''Mega Patch 2003'' bekannt.
 
Im italienischen Raum war der Patch unter dem Namen ''Mega Patch 2003'' bekannt.
  
 
==Features==
 
==Features==
 +
 +
=== Audiowiedergabe ===
 +
 +
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-Dialogen des ''RPG Makers'' verwenden zu können.
 +
 +
(zB. ''music.ogg '''->''' music.ogg.wav'')
 +
 +
==== via FMOD (Pre-0.02) ====
 +
Abhängig von ''fmodex.dll''.
 +
 +
* Unterstützung zusätzlicher Audio-Formate wie .OGG
 +
* Unterstützung verschiedener Tracker-Formate wie .MOD
 +
* "Smooth MP3 Looping"
 +
 +
==== via BASS (ab 0.02) ====
 +
DLLs: ''bass.dll'', ''bass_aac.dll'', ''bass_fx.dll''
 +
 +
* Unterstützung des AAC+-Formats & des MP4-Container-Formats
 +
* Unterstützung zusätzlicher Tracker-Formate wie .MO3
 +
* Keine Unterstütung mehr für .WMA
  
 
=== Zusätzliche Kommandos & Operationen ===
 
=== Zusätzliche Kommandos & Operationen ===
  
Die Spezialfunktionen des Patches werden über eine Reihe von reservierten Variablen (''#0001'' - ''#0008'') gesteuert. Beim Ändern des Wertes eines dieser Variablen-Registers, wird im Anschluss der vorgesehene Patch-Code ausgeführt.
+
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 ("''<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
 
|-
 
|-
|''#0001:CR0''||"Control Register 0"||
+
|'''''#0001:CR0'''''||''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.
 
|-
 
|-
|''#0003:MCOORDY''||Abfrage des Maus-Cursors||
+
|''<small>(#0002:MCOORDX)</small>''<br/>'''''#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.
+
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!
 
|-
 
|-
|''#0004:KEY''||Erweiterte Tastenabfrage||
+
|'''''#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.
 
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 47: Zeile 67:
 
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.
 
|-
 
|-
|''#0007:FCODE''||Fließkommazahl-Operationen||
+
|''<small>(#0005:FVALUE1)</small>''<br/>''<small>(#0006:FVALUE2)</small>''<br/>'''''#0007:FCODE'''''||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 '''2''': Berechnung des Tangens für Eingabe in Register ''#0005:FVALUE1''<br/>('''tan''' wird in in Ziel-Register ''#0006:FVALUE2'' gespeichert)
 +
* Wert '''3''': Berechnung der Quadratwurzel für Eingabe in Register ''#0005:FVALUE1''<br/>(Ausgabe des '''natürlichen Teils''' des Ergebnisses in ''#0005:FVALUE1''; '''Nachkommastellen''': im Ziel-Register ''#0006:FVALUE2'')
 +
* Wert '''3''': Berechnung einer Division mit Nachkommstellen (''#0005:FVALUE1'' / ''#0006:FVALUE2'')<br/>(Ausgabe des '''natürlichen Teils''' des Ergebnisses in ''#0005:FVALUE1''; '''Nachkommastellen''': im Ziel-Register ''#0006:FVALUE2'')
 +
 
 +
Da der ''RPG Maker'' standardmäßig keine Fließkommazahlen unterstütz, werden die Nachkommastellen für Operationen '''3''' & '''4''' als Ganzzahl zurückgegeben.
 
|-
 
|-
|''#000:SPECIAL''||Special Mode||
+
|'''''#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.
 
|}
 
|}
  
Zeile 60: Zeile 91:
 
*Die Funktion der linken & rechten Maustaste wurde auf die Eingabe- und Abbruchs-Funktion (''Enter'' / ''ESC'') gemappt.
 
*Die Funktion der linken & rechten Maustaste wurde auf die Eingabe- und Abbruchs-Funktion (''Enter'' / ''ESC'') gemappt.
  
 +
==== Zusätzliche Verhaltensänderung bei Picture-Rotationen ====
 
Eine Besonderheit der japanischen Version des ''RPG Maker 2003''s, die Transparenz der oberen & unteren Hälfte eines dargestellten Pictures unabhängig voneinander steuern zu können, wurde herausgepatcht. Stattdessen wurde dem Datenfeld für die ''"Untere Transparenz"'' eine neue Funktion zugewiesen:
 
Eine Besonderheit der japanischen Version des ''RPG Maker 2003''s, die Transparenz der oberen & unteren Hälfte eines dargestellten Pictures unabhängig voneinander steuern zu können, wurde herausgepatcht. Stattdessen wurde dem Datenfeld für die ''"Untere Transparenz"'' eine neue Funktion zugewiesen:
  

Aktuelle Version vom 26. März 2025, 10:15 Uhr

Power Mode 2003
Kein Bild verfügbar
Erstellt von firesta
Ripp3er
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

Power Mode 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 Jänner 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 mit einer eigenen Bibliothek warp.dll, welche als Schnittstelle zu einem externen Audio-Backend in einer separaten DLL dient. Vor Version 0.02 wurde hierzu eine 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 Vorgänger-Version verwendete Audio-Backend gegen BASS aus, und entfernt zudem die experimentelle Spezial-DLL hvm.dll (Harmony Virtual System) von Ripp3er gänzlich.

Im italienischen Raum war der Patch unter dem Namen Mega Patch 2003 bekannt.

Features

Audiowiedergabe

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-Dialogen des RPG Makers verwenden zu können.

(zB. music.ogg -> music.ogg.wav)

via FMOD (Pre-0.02)

Abhängig von fmodex.dll.

  • Unterstützung zusätzlicher Audio-Formate wie .OGG
  • Unterstützung verschiedener Tracker-Formate wie .MOD
  • "Smooth MP3 Looping"

via BASS (ab 0.02)

DLLs: bass.dll, bass_aac.dll, bass_fx.dll

  • Unterstützung des AAC+-Formats & des MP4-Container-Formats
  • Unterstützung zusätzlicher Tracker-Formate wie .MO3
  • Keine Unterstütung mehr für .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
  • 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)

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
  • Wert 1: Berechnung des Sinus / Cosinus für Eingabe in Register #0005:FVALUE1
    (sin: wird in #0006:FVALUE2 gespeichert; cos: wird #0005:FVALUE1 gespeichert)
  • Wert 2: Berechnung des Tangens für Eingabe in Register #0005:FVALUE1
    (tan wird in in Ziel-Register #0006:FVALUE2 gespeichert)
  • Wert 3: Berechnung der Quadratwurzel für Eingabe in Register #0005:FVALUE1
    (Ausgabe des natürlichen Teils des Ergebnisses in #0005:FVALUE1; Nachkommastellen: im Ziel-Register #0006:FVALUE2)
  • Wert 3: Berechnung einer Division mit Nachkommstellen (#0005:FVALUE1 / #0006:FVALUE2)
    (Ausgabe des natürlichen Teils des Ergebnisses in #0005:FVALUE1; Nachkommastellen: im Ziel-Register #0006:FVALUE2)

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 der Runtime

Weiters hat der Patch noch folgende Nebeneffekte, die sich ohne manuelles Editieren mit einem Hex-Editor nicht deaktivieren lassen:

  • Die Hersteller-Logos von Enterbrain wurden entfernt.
  • Der Titelbildschirm wird immer übersprungen (Funktion entspricht dem des Auto Enter Patches).
  • Die Funktion der linken & rechten Maustaste wurde auf die Eingabe- und Abbruchs-Funktion (Enter / ESC) gemappt.

Zusätzliche Verhaltensänderung bei Picture-Rotationen

Eine Besonderheit der japanischen Version des RPG Maker 2003s, die Transparenz der oberen & unteren Hälfte eines dargestellten Pictures unabhängig voneinander steuern zu können, wurde herausgepatcht. Stattdessen wurde dem Datenfeld für die "Untere Transparenz" eine neue Funktion zugewiesen:

Ist hier ein Wert >= 50 festgelegt, werden Standard-Rotationen von Pictures entgegen dem Uhrzeigersinn durchgeführt.

Links