PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 23.02.2007, 15:22   #1
 
Benutzerbild von Dygera
 
Registriert seit: 07.02.2007
Ort: Hamburg
Alter: 33

Dygera wird schon bald berühmt werden

Dygera eine Nachricht über ICQ schicken Dygera eine Nachricht über MSN schicken
Standard GBA Performance

Nach einigen Problemen in letzter Zeit habe ich nun mein erstes Testprogramm fertig. Da Problem dabei sind jedoch starke Performanceprobleme.
Hier eine Beschreibung was mein Spiel schon alles "kann":
Das Ganze läuft in Mode_1 und es gibt keinen Hintergrund. Beim Start sind 2 Sprites zu sehen (bei Pokemon Smaragd ausgeliehen). Den einen kann man mit den Pfeiltasten steuern, der andere steht nur da.

Je nachdem in welche Richtung man läuft, ändert sich das Bild (Sprite), außerdem gibt es eine Schrittanimation für jede Richtung.

Wenn man z.B. den Nach-Rechts-Pfeil drückt, wird also zuerst das Modell gewechselt, sodass da eine nach rechts gedrehte Figur steht. Dann läuft eine Schleife 16 mal durch, weil ein Schritt bei mir nunmal 16 Px lang ist. Wenn die Figur gerademal die Hälft von dem Schritt gegangen ist, wird das Bild gewechselt und man sieht das Sprite mit der einen Schritt machenden Figur. Am Ende werden die Bilder wieder getauscht, sodass die Figur steht.

Als das "Spiel" nur aus dem oben genannten bestand, lief alles perfekt flüssig, (wie im Original). Dann kam das 2te Sprite dazu. Es ist die selbe Figur, die nur dasteht. Bei jedem Schritt, den man macht, wird überprüft, ob der Player gerade an einer bestimmten Stelle ist und wenn das so ist, bewegt sich die andere Figur eine bestimmte Strecke nach unten.


Seit ich das eingebaut hab, gibts die krassen Performanceprobleme.
Schon wenn man es anmacht kann man nur halb so schnell laufen wie vorher. Irgentwas mache ich da ganz falsch. Im Original sind ja immerhin manchmal über 5 Chars auf einmal auf dem Bildschirm und laufen alle rum und es geht alles schnell.

Ich werde die Sourcedateien mit der .bin in einen Zip-Ordner packen und dann hier einen Link posten. Ich hoffe ihr könnt mir helfen.


EDIT (autom. Beitragszusammenführung) :

So hier der Link:

http://www.flyff-world.de/Project_X.rar

"h**p://www.flyff-world.de/Project_X.rar"

Die make.bat in dem Ordner dürfte aber nicht funktionieren, da der Compiler woanders gespeichert ist. Ist aber auch die .bin bei. Ihr braucht also nur nen Emu.

Geändert von Dygera (23.02.2007 um 15:22 Uhr) Grund: Antwort auf eigenen Beitrag innerhalb von 24 Stunden!
Dygera ist offline   Mit Zitat antworten
Sponsored Links
Alt 23.02.2007, 17:37   #2
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard AW: GBA Performance

Also auf den ersten Blick kann ich eigentlich keinen Geschwindigkeitsunterschied feststellen. Sofern ich mich an mein letztes Pokemonspiel erinnern kann. Es gibt lediglich ein paar Einbrüche beim Emulator. Wäre vielleicht noch hilfreich, wenn du die vorherige Version posten würdest. Damit man das auch vergleichen könnte.

Aber auf jedenfall solltest du bei den Sprites den 16 Farben Modus einstellen. Dann würde die Menge an Daten halbiert die du kopieren möchtest, außerdem wird es im Original auch so gemacht. Das wäre aber eigentlich für keinen großen Geschwindigkeitseinbruch verantwortlich, so wie du ihn beschreibst.
Jim ist offline   Mit Zitat antworten
Alt 24.02.2007, 18:05   #3
 
Benutzerbild von Dygera
 
Registriert seit: 07.02.2007
Ort: Hamburg
Alter: 33

Dygera wird schon bald berühmt werden

Dygera eine Nachricht über ICQ schicken Dygera eine Nachricht über MSN schicken
Standard AW: GBA Performance

Hmm
Vielleicht liegt der Geschwindigkeitsunterschied an meinem Computer!?!

Ich habe hier gerade mal 1 GHz und 256 MB-RAM.
Muss mal aufm anderen PC ausprobieren.

Die alte Version suche ich gleich mal. Müsste noch im Backupordner sein.

Das mit den 16 Farben ist eine gute Idee. Daran hab ich noch gar nicht gedacht. (Dabei steht doch dick und fett im Quelltext Color_256 ;-))


EDIT (autom. Beitragszusammenführung) :

So hier mal die .bin wo es (bei mir) noch wesentlich schneller läuft.

www.flyff-world.de/project.bin


EDIT (autom. Beitragszusammenführung) :

Nein die Farben runterzuschrauben hat nichts gebracht.

Aber es kann doch nicht daran liegen, dass mein Computer so schlecht ist.
Denn ich kann ja Pokemon perfekt mit nem Emu spielen.

Geändert von Dygera (24.02.2007 um 18:05 Uhr) Grund: Antwort auf eigenen Beitrag innerhalb von 24 Stunden!
Dygera ist offline   Mit Zitat antworten
Alt 24.02.2007, 19:44   #4
Jim männlich
 
Benutzerbild von Jim
 
Registriert seit: 14.08.2005

Jim hat die Renommee-Anzeige deaktiviert

Standard AW: GBA Performance

So, hab mir jetzt mal den Code angeschaut (hätte ich vielleicht früher machen sollen), nachdem die 2 Version bei mir auch schneller lief.

Du rufst in der "Refresh_Position" Funktion den Befehl "WaitforVsync" auf. Nachdem du jetzt 2 Sprites hast, wartest du auch 2mal. Das "WaitforVsync" gehört am besten in die Hauptschleife und das nur 1mal.

Das "CopyOAM" brauchst du dann übrigens auch nur 1mal (auch wenn es für die Geschwindigkeit im Moment nicht so wichtig ist.
Jim ist offline   Mit Zitat antworten
Alt 25.02.2007, 15:16   #5
 
Benutzerbild von Dygera
 
Registriert seit: 07.02.2007
Ort: Hamburg
Alter: 33

Dygera wird schon bald berühmt werden

Dygera eine Nachricht über ICQ schicken Dygera eine Nachricht über MSN schicken
Standard AW: GBA Performance

Vielen Dank ich glaube das wirds sein.

Inzwischen dachte ich schon, das wäre, weil ich bei jedem Refresh_Position die Structur mit call-by-value übergeb und der GBA/Emu durch das ständige kopieren der Structur überlastet ist.
Jetzt hab ich das schon so geändert, dass es immer per Pointer übergeben wird; ohne Kopie. Brachte nix.

Das mit WaitforVSync ist absolut logisch. Der wartet dauernd auf etwas.

Ich weiß zwar noch nicht auf was, aber wenn man es weglässt, flackert das Bild.
Und das CopyOAM packe ich dann mal unter die beiden Funktionasaufrufe.




So. Ausprobiert. Geht.

Es lief wirklich nur nicht, weil da tausensmal die Pause "wiederholt" wurde.
Jetzt ist die Geschwindigkeit perfekt. Genau wie vorher.

Vielen Dank für die Hilfe.
Dygera ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[DRINGENT!!!!]GBA - GBA Verlinken mit Pokemon Blau/Rot Nuperman Spiele (GBA) 6 29.06.2003 12:34
Hilfe - GBA mit GBA verlinken u. MarioKart zocken (Universallinkkabel) dreamfreak Hardware (GBA) 8 02.06.2003 11:33
Gba mini camera & co... für was kann ich mkeinen gba alles missbrauche Veers Hardware (GBA) 1 31.10.2002 12:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:08 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231