Pulsar : Milestone Custom ROM

Status
Für weitere Antworten geschlossen.
DroidDoes schrieb:
Nur das Nexus Wallpaper geht nicht.

Laufen die anderen denn Flüssig?
Vielleicht könnte man das auch so zum laufen kriegen.

Was genau musstest du denn ersetzen/aufs System packen, sodass die LiveWallpapers funktionieren?
 
Ja, die anderen laufen flüssig.
Ersetzen muss man die Dateien unter system/lib, system/app und system/etc.
Ist aber noch nicht alles so genau und richtig, wenn es einen Weg gäbe ohne ROM an die LiveWallpaper zu kommen hätte ich ihn euch schon verraten.
 
Musti schrieb:
Hmm, wir haben einen SOC Prozessor drin (System-on a-Chip, CPU und GPU in einem) und ich würd nicht sagen, das er "assi" ist. Der Chip ist durchaus Leistungsfähig, aber man kann sicherlich noch einiges rauskitzeln.

Ich hab meinen Beitrag schon editiert :D, mit assi meinte ich dass er einfach die GPU im Snapdragon zu boden knüppelt und ihm dann so richtig in die Ei** tritt wenn er am Boden liegt :D
Deswegen ist der assi :D

so BTT:

Ich bin leider kein Codeversteher (eher Frauenversteher, d.h. alle bis auf meine Freundin :D) aber wo kann man dden den ausführen? Einfach in eclipse reinkloppen und apk dranschreiben??? Und dann aufm sdk laufen lassen???:eek:


@Droiddoes

wenn du damit fertig bist und es auch nur annähernd läuft brauchst du dringend ein Paypal konto mei gutster!! :D
 
DroidDoes schrieb:
Ja, die anderen laufen flüssig.
Ersetzen muss man die Dateien unter system/lib, system/app und system/etc.
Ist aber noch nicht alles so genau und richtig, wenn es einen Weg gäbe ohne ROM an die LiveWallpaper zu kommen hätte ich ihn euch schon verraten.

2 Dateien für 3 Verzeichnisse?
Hab gerade gesehen, dass die Animationsscripts offen in der apk liegen. Werd ich mir gleich mal ansehen.
 
Tu das, mein Kopf ist im Moment zu voll dafür. Danke


Ich hab meinen Beitrag schon editiert , mit assi meinte ich dass er einfach die GPU im Snapdragon zu boden knüppelt und ihm dann so richtig in die Ei** tritt wenn er am Boden liegt
Deswegen ist der assi

so BTT:

Ich bin leider kein Codeversteher (eher Frauenversteher, d.h. alle bis auf meine Freundin ) aber wo kann man dden den ausführen? Einfach in eclipse reinkloppen und apk dranschreiben??? Und dann aufm sdk laufen lassen???
:D
 
kann jemand was daraus erkennen? also irgendnen fehler oder sonstiges warums aufm stone nich laufen könnte das nexus dings?


#pragma version(1)
#pragma stateVertex(PVOrtho)
#pragma stateFragment(PFTexture)
#pragma stateStore(PSSolid)

#define MAX_PULSES 20
#define MAX_EXTRAS 40
#define PULSE_SIZE 14 // Size in pixels of a cell
#define HALF_PULSE_SIZE 7
#define GLOW_SIZE 64 // Size of the leading glow in pixels
#define HALF_GLOW_SIZE 32
#define SPEED 0.2f // (200 / 1000) Pixels per ms
#define SPEED_VARIANCE 0.3f
#define PULSE_NORMAL 0
#define PULSE_EXTRA 1
#define TRAIL_SIZE 40 // Number of cells in a trail
#define MAX_DELAY 2000 // Delay between a pulse going offscreen and restarting

struct pulse_s {
int pulseType;
float originX;
float originY;
int color;
int startTime;
float dx;
float dy;
int active;
};
struct pulse_s gPulses[MAX_PULSES];

struct pulse_s gExtras[MAX_EXTRAS];

int gNow;


void setColor(int c) {
if (c == 0) {
// red
color(1.0f, 0.0f, 0.0f, 1.0f);
} else if (c == 1) {
// green
color(0.0f, 0.6f, 0.0f, 1.0f);
} else if (c == 2) {
// blue
color(0.0f, 0.4f, 0.8f, 1.0f);
} else if (c == 3) {
// yellow
color(1.0f, 0.8f, 0.0f, 1.0f);
}
}

void initPulse(struct pulse_s * pulse, int pulseType) {
if (randf(1) > 0.5f) {
pulse->originX = (int)randf(State->width * 2 / PULSE_SIZE) * PULSE_SIZE;
pulse->dx = 0;
if (randf(1) > 0.5f) {
// Top
pulse->originY = 0;
pulse->dy = randf2(1.0f - SPEED_VARIANCE, 1.0 + SPEED_VARIANCE);
} else {
// Bottom
pulse->originY = State->height;
pulse->dy = -randf2(1.0f - SPEED_VARIANCE, 1.0 + SPEED_VARIANCE);
}
} else {
pulse->originY = (int)randf(State->height / PULSE_SIZE) * PULSE_SIZE;
pulse->dy = 0;
if (randf(1) > 0.5f) {
// Left
pulse->originX = 0;
pulse->dx = randf2(1.0f - SPEED_VARIANCE, 1.0 + SPEED_VARIANCE);
} else {
// Right
pulse->originX = State->width * 2;
pulse->dx = -randf2(1.0f - SPEED_VARIANCE, 1.0 + SPEED_VARIANCE);
}
}
pulse->startTime = gNow + (int)randf(MAX_DELAY);

pulse->color = (int)randf(4.0f);

pulse->pulseType = pulseType;
if (pulseType == PULSE_EXTRA) {
pulse->active = 0;
} else {
pulse->active = 1;
}
}

void initPulses() {
gNow = uptimeMillis();
int i;
for (i=0; i<MAX_PULSES; i++) {
initPulse(&gPulses, PULSE_NORMAL);
}
for (i=0; i<MAX_EXTRAS; i++) {
struct pulse_s * p = &gExtras;
p->pulseType = PULSE_EXTRA;
p->active = 0;
}
}

void drawBackground(int width, int height) {
bindTexture(NAMED_PFTexture, 0, NAMED_TBackground);
color(1.0f, 1.0f, 1.0f, 1.0f);
if (State->rotate) {
drawRect(0.0f, 0.0f, height*2, width, 0.0f);
} else {
drawRect(0.0f, 0.0f, width*2, height, 0.0f);
}
}


void drawPulses(struct pulse_s * pulseSet, int setSize) {
bindProgramFragment(NAMED_PFTexture);
bindProgramFragmentStore(NAMED_PSBlend);

float matrix[16];

int i;
for (i=0; i<setSize; i++) {
struct pulse_s * p = &pulseSet;

int delta = gNow - p->startTime;

if (p->active != 0 && delta >= 0) {

float x = p->originX + (p->dx * SPEED * delta);
float y = p->originY + (p->dy * SPEED * delta);

matrixLoadIdentity(matrix);
if (p->dx < 0) {
vpLoadTextureMatrix(matrix);
float xx = x + (TRAIL_SIZE * PULSE_SIZE);
if (xx <= 0) {
initPulse(p, p->pulseType);
} else {
setColor(p->color);
bindTexture(NAMED_PFTexture, 0, NAMED_TPulse);
drawRect(x, y, xx, y + PULSE_SIZE, 0.0f);
bindTexture(NAMED_PFTexture, 0, NAMED_TGlow);
drawRect(x + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
x + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
0.0f);
}
} else if (p->dx > 0) {
x += PULSE_SIZE; // need to start on the other side of this cell
matrixRotate(matrix, 180.0f, 0.0f, 0.0f, 1.0f);
vpLoadTextureMatrix(matrix);
float xx = x - (TRAIL_SIZE * PULSE_SIZE);
if (xx >= State->width * 2) {
initPulse(p, p->pulseType);
} else {
setColor(p->color);
bindTexture(NAMED_PFTexture, 0, NAMED_TPulse);
drawRect(xx, y, x, y + PULSE_SIZE, 0.0f);
bindTexture(NAMED_PFTexture, 0, NAMED_TGlow);
drawRect(x - HALF_PULSE_SIZE - HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
x - HALF_PULSE_SIZE + HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
0.0f);
}
} else if (p->dy < 0) {
matrixRotate(matrix, -90.0f, 0.0f, 0.0f, 1.0f);
vpLoadTextureMatrix(matrix);
float yy = y + (TRAIL_SIZE * PULSE_SIZE);
if (yy <= 0) {
initPulse(p, p->pulseType);
} else {
setColor(p->color);
bindTexture(NAMED_PFTexture, 0, NAMED_TPulse);
drawRect(x, y, x + PULSE_SIZE, yy, 0.0f);
bindTexture(NAMED_PFTexture, 0, NAMED_TGlow);
drawRect(x + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
x + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
y + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
0.0f);
}
} else if (p->dy > 0) {
y += PULSE_SIZE; // need to start on the other side of this cell
matrixRotate(matrix, 90.0f, 0.0f, 0.0f, 1.0f);
vpLoadTextureMatrix(matrix);
float yy = y - (TRAIL_SIZE * PULSE_SIZE);
if (yy >= State->height) {
initPulse(p, p->pulseType);
} else {
setColor(p->color);
bindTexture(NAMED_PFTexture, 0, NAMED_TPulse);
drawRect(x, yy, x + PULSE_SIZE, y, 0.0f);
bindTexture(NAMED_PFTexture, 0, NAMED_TGlow);
drawRect(x + HALF_PULSE_SIZE - HALF_GLOW_SIZE,
y - HALF_PULSE_SIZE - HALF_GLOW_SIZE,
x + HALF_PULSE_SIZE + HALF_GLOW_SIZE,
y - HALF_PULSE_SIZE + HALF_GLOW_SIZE,
0.0f);
}
}
}
}


matrixLoadIdentity(matrix);
vpLoadTextureMatrix(matrix);
}

void addTap(int x, int y) {
int i;
int count = 0;
int color = (int)randf(4.0f);
x = (int)(x / PULSE_SIZE) * PULSE_SIZE;
y = (int)(y / PULSE_SIZE) * PULSE_SIZE;
for (i=0; i<MAX_EXTRAS; i++) {
struct pulse_s * p = &gExtras;
if (p->active == 0) {
p->originX = x;
p->originY = y;

if (count == 0) {
p->dx = 1.5f;
p->dy = 0.0f;
} else if (count == 1) {
p->dx = -1.5f;
p->dy = 0.0f;
} else if (count == 2) {
p->dx = 0.0f;
p->dy = 1.5f;
} else if (count == 3) {
p->dx = 0.0f;
p->dy = -1.5f;
}

p->active = 1;
p->color = color;
color++;
if (color >= 4) {
color = 0;
}
p->startTime = gNow;
count++;
if (count == 4) {
break;
}
}
}
}

int main(int index) {

gNow = uptimeMillis();

if (Command->command != 0) {
debugF("x", Command->x);
debugF("y", Command->y);
Command->command = 0;
addTap(Command->x, Command->y);
}

int width = State->width;
int height = State->height;

float matrix[16];
matrixLoadIdentity(matrix);
if (State->rotate) {
//matrixLoadRotate(matrix, 90.0f, 0.0f, 0.0f, 1.0f);
//matrixTranslate(matrix, 0.0f, -height, 1.0f);
} else {
matrixTranslate(matrix, -(State->xOffset * width), 0, 0);
}

vpLoadModelMatrix(matrix);

drawBackground(width, height);

drawPulses(gPulses, MAX_PULSES);
drawPulses(gExtras, MAX_EXTRAS);

return 45;
}
 
@Phame: Das ist nur der Code der grob gesagt die leuchtenden Impulse, die auf dem LiveWallpaper zu sehen sind, berechnet.

EDIT: Und zeichnet, natürlich :D

Aber daran lässt sich jetzt noch nicht erkennen, was beim Milestone schief geht. Muss mal schauen was der fürn Problem damit hat.
 
DroidDoes, wohin genau müssen die 2 .apk's die du hochgeladen hast?
 
Aber ohne Multitouch. ;)
 
Phame schrieb:
kann jemand was daraus erkennen? also irgendnen fehler oder sonstiges warums aufm stone nich laufen könnte das nexus dings?

....

Evtl. kann jemand den Source-Code mal in eine normale Standalone-App einbauen und dann schauen wo er rausfliegt. Also einfach in Eclipse debuggen. (evtl. kann man aber LiveWallpapers auch einfach so als StandaloneApp in Eclipse starten, das weiss ich nicht).
Die Y-Auflösung vom Milestone ist nicht gradzahlig durch 8 teilbar (854 Pixel). OpenGL hat damit evtl. Probleme bei Texturen. Ich schätze, dass es irgendwas damit zu tun hat.
Hab ja kein Milestone mehr, von daher kann ich mirs nicht anschauen.

Gruß
Jarny
 
DroidDoes schrieb:
Naja, wenn wir schon von Wallpapern reden, können sich die Leute, die davon Ahnung haben sich ja mal das Nexus Wallpaper angucken. Hoffe einer kriegt das hin.

Update: Bootscreen ist in Arbeit: 123 von 260 Bildern fertig gestellt.
Wird ansetzte des Droid Bootscreens haben.

Hm?
Ich check jetzt gar nix mehr.
Die Teile laufen doch nur mit dem China Pseudo Rom oder?
Klär uns auf :D
 
DroidDoes arbeitet an einem Custom Rom, wie es eben die Chinesen für ihre HK Version gemacht haben, nur halt für unsere DACH/o2/Vodafone-Versionen ;)
Also incl. LiveWallpapers... Die Chinesen sind ja auch keine Götter, die haben auch "nur" Dateien der HK 2.0.1 editiert, um die LiveWallpapers möglich zu machen.
 
Zuletzt bearbeitet:
Syrabane schrieb:
... da muss man ja nur irgendwelche Dateien editieren, ...

Den Arbeitsaufwand dezu sollte man nicht unterschätzen.
 
ja, das war falsch ausgedrückt, stimmt. Es war zumindest net abwertend gemeint, ganz im Gegenteil. Ich finds toll, was DroidDoes für die Community macht!
Habs mal editiert, denke so ists besser :)
 
DroidDoes when DroidDoes..

...sollte der eigentliche Slogan von Motorola heißen...
 
Mit uns wird dank Motorola garnix.

Was sagt eigentlich die GPL .... Ist das was Moto da macht kein Verstoß ?
 
Ich denke eher, dass der Verzicht auf offene Schnittstellen nicht direkt von Motorola gewolltist, sondern vielmehr eine europäische Eigenart...
 
Syrabane schrieb:
DroidDoes arbeitet an einem Custom Rom, wie es eben die Chinesen für ihre HK Version gemacht haben, nur halt für unsere DACH/o2/Vodafone-Versionen ;)
Also incl. LiveWallpapers... Die Chinesen sind ja auch keine Götter, die haben auch "nur" Dateien der HK 2.0.1 editiert, um die LiveWallpapers möglich zu machen.

Das weiss ich ja.
Mich wunderte nur, dass er zwei Dateien für die Live-Wallpaper angehangen hat :)
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

coolzero3389
Antworten
4
Aufrufe
913
coolzero3389
coolzero3389
coolzero3389
Antworten
2
Aufrufe
852
coolzero3389
coolzero3389
Thoxx
  • Thoxx
Antworten
4
Aufrufe
4.233
Thoxx
Thoxx
Zurück
Oben Unten