Author Topic: Kompatib.probleme GP2x / PC  (Read 3788 times)

4pac

  • Guest
Kompatib.probleme GP2x / PC
« on: 2007-Dec-23 »
Hallo Forumsfreunde!

Ich hab da mal ein Problem, weiß gar net Recht wie ich das betiteln soll.

Ich bin mit der Demo von GLBasic zugange und entwickle ein kleines Tool zum Icons Pixeln für die GP2x. Entwickelt wird unter WinXP, mit 320x240 px als Auflösung für das Projekt. Da läuft das Proggy auch so wie gedacht. Auf der GP2x hingegen funktionieren ein paar Sachen nicht so wie sie sollten.

1. Die mittels SetPixel gezeichnete 1:1 Preview dessen, was man im vergrößerten Arbeitsbereich malt, wird nicht an der im Programm angegebenen Stelle gezeichnet, sondern irgendwie höher und weiter links, und mit starkem flackern (dadurch kaum erkennbar)

2. Das Abbrechen des Programmes durch Drücken der beiden Schultertasten gleichzeitig geht nicht

3. Die Subroutine, die für die Auswahl der Malfarbe gedacht ist, ist nicht über die Select-Taste aufrufbar (ist bisher nur ein Entwurf, die Sub, sollte aber aufrufbar sein). Ich hab aber den Eindruck, das Programm läuft irgendwie in eine Endlosschleife, sobald man die Select-Taste auf der GP2x drückt, denn ab dann läst sich das Programm nicht mehr beenden. Auf dem PC mit der TAB-Taste (der Entsprechung, so wie ich das verstehe), geht das alles korrekt

4. Beim Beenden des Programmes soll das gemalte Icon als BMP-Datei gespeichert werden. Funzt auf dem PC, auf der GP2x aber nicht.

Das macht mich ratlos. Das Tool ist ja eigentlich für die GP2x gedacht (hauptsächlich f100). Was braucht ihr an Infos, um mir dabei helfen zu können? Ich poste erstmal denn gesamten Code hier rein... wie geagt, auf dem PC unter XP läuft das alles korrekt, und nach meinem Basic-Coder-Verständnis ist das soweit auch korrekt gecodet.

Viele Grüße,
4pac

Screenshot:


Code: GLBasic [Select]
GLOBAL joymouse_x = 20*6 // Startwert, beliebig
GLOBAL joymouse_y = 20*6 // Startwert, beliebig
GLOBAL joyspeed = 1
GLOBAL pixelfield_size = 5
GLOBAL pixelfields_x = 32 // Gesamtzahl Pixelfelder -> Maximalwert 32, begrenzt durch´s Layout
GLOBAL pixelfields_y = 32
GLOBAL pixelnow_x = 0   // zum ansprechen des aktuell bearbeiteten Pixelfeldes
GLOBAL pixelnow_y = 0
GLOBAL malfarbe_r = 255 // zum ansprechen der aktuell verwendeten Malfarbe
GLOBAL malfarbe_g = 255
GLOBAL malfarbe_b = 255

LOADFONT "arial11.bmp", 1
SETFONT 1

DIM pixelfield_r [pixelfields_x][pixelfields_y] // Jedes Pixelfeld hat die Eigenschaften R/G/B (Farbwerte).
DIM pixelfield_g [pixelfields_x][pixelfields_y] // Diese werden über diese 3 Arrays verwaltet
DIM pixelfield_b [pixelfields_x][pixelfields_y] // (=gespeichert und ggf. manipuliert).

FOR x=0 TO pixelfields_x-1
    FOR y=0 TO pixelfields_y-1
        pixelfield_r[x][y] = 255 // Initialisieren: Zu Beginn sind alle
        pixelfield_g[x][y] = 255 // Pixelfelder weiß.
        pixelfield_b[x][y] = 255
    NEXT
NEXT

LOADBMP "gui_layout.bmp"


WHILE KEY(1) = 0 // --- START MAIN LOOP ---

        // innerhalb des Mal-Bereiches bewegt sich die Joystick-Maus um die Hälfte langsamer
        joyspeed = 2                                                                                            // außerhalb des Mal-Bereiches
        IF joymouse_x < (pixelfield_size+1) * pixelfields_x  AND joymouse_y < (pixelfield_size+1) * pixelfields_y THEN joyspeed = 1 // im Mal-Bereich

        pixelnow_x = INTEGER(joymouse_x/(pixelfield_size+1))    // welches Pixelfeld hat gerade das Highlight?
        pixelnow_y = INTEGER(joymouse_y/(pixelfield_size+1))    // Hier ist wohl noch der WURM drin...

        // Joystick-Abfrage für die GP2x (beim PC sind das die Cursor-Tasten)
        LET text$="";
        IF KEY(203) ; LET text$="LINKS/LEFT";  IF joymouse_x > 0 THEN joymouse_x = joymouse_x - joyspeed; ENDIF;
        IF KEY(205) ; LET text$="RECHTS/RIGHT"; IF joymouse_x < 312 THEN joymouse_x = joymouse_x + joyspeed; ENDIF;
        IF KEY(200) ; LET text$="AUF/UP"; IF joymouse_y > 0 THEN joymouse_y = joymouse_y - joyspeed; ENDIF;
        IF KEY(208) ; LET text$="AB/DOWN"; IF joymouse_y < 232 THEN  joymouse_y = joymouse_y + joyspeed; ENDIF;




        IF joymouse_x < 190 AND joymouse_y < 190;

                IF KEY(30) ;    // GP2x-Taste A / PC-Taste A  /  aktuelles Pixelfeld GRÜN anmalen :-)))
                        LET text$="A: GRUEN"
                        pixelfield_r[pixelnow_x][pixelnow_y] = 0
                        pixelfield_g[pixelnow_x][pixelnow_y] = 155
                        pixelfield_b[pixelnow_x][pixelnow_y] = 0
                ENDIF

                IF KEY(45) ;    // GP2x-Taste B / PC-Taste X /  aktuelles Pixelfeld SCHWARZ anmalen :-)))
                        LET text$="B: SCHWARZ"
                        pixelfield_r[pixelnow_x][pixelnow_y] = 0
                        pixelfield_g[pixelnow_x][pixelnow_y] = 0
                        pixelfield_b[pixelnow_x][pixelnow_y] = 0
                ENDIF

                IF KEY(58) ;    // GP2x-Taste Y / PC-Taste CapsLock  /  aktuelles Pixelfeld WEIß anmalen :-)))
                        LET text$="Y: WEISS"
                        pixelfield_r[pixelnow_x][pixelnow_y] = 255
                        pixelfield_g[pixelnow_x][pixelnow_y] = 255
                        pixelfield_b[pixelnow_x][pixelnow_y] = 255
                ENDIF

                IF KEY(31) ;    // GP2x-Taste X / PC-Taste S /  aktuelles Pixelfeld ROT anmalen :-)))
                        LET text$="X: ROT"
                        pixelfield_r[pixelnow_x][pixelnow_y] = 190
                        pixelfield_g[pixelnow_x][pixelnow_y] = 0
                        pixelfield_b[pixelnow_x][pixelnow_y] = 0
                ENDIF

        ENDIF



        PRINT "JOYSTICK:",205,5;
        PRINT text$,205,20;

        // so landet das rote Highlight-RECT immer genau hinter einem Pixelfeld - im Mal-Bereich
        hover_pos_x = joymouse_x
        hover_pos_y = joymouse_y
        IF MOD(joymouse_x,pixelfield_size+1) <> 0 AND joymouse_x < 192  AND joymouse_y < 192 THEN hover_pos_x = joymouse_x - (MOD(joymouse_x,6))
        IF MOD(joymouse_y,pixelfield_size+1) <> 0 AND joymouse_x < 192  AND joymouse_y < 192 THEN hover_pos_y = joymouse_y - (MOD(joymouse_y,6))
        DRAWRECT hover_pos_x,hover_pos_y,pixelfield_size+2,pixelfield_size+2,RGB(255,0,0)

        // Zeichnen der Pixelfelder (mit je 1 px Grid dazwischen)
        FOR column=0 TO (pixelfields_x-1)
                FOR row = 0 TO  (pixelfields_y-1)
                        DRAWRECT 1+(column*(pixelfield_size+1)),1+(row*(pixelfield_size+1)),pixelfield_size,pixelfield_size,RGB(pixelfield_r[column][row],pixelfield_g[column][row],pixelfield_b[column][row])
                        SETPIXEL 205+column,110+row, RGB(pixelfield_r[column][row],pixelfield_g[column][row],pixelfield_b[column][row])
                NEXT
        NEXT

        PRINT "X/Y: " + joymouse_x + "," + joymouse_y + " / PnowX/Y = " + pixelnow_x + "," + pixelnow_y,10, 225

        // PC: LShift+RShift, GP2X: Schultertasten -> EXIT (mit Screenshot)
        IF KEY(42) AND KEY(54) ;
                LET text$="-> EXIT"; SAVEBMP "screenshot.bmp";
                GRABSPRITE 1,212,113,32,32
                SAVESPRITE "your_icon.bmp", 1
                END;
        ENDIF;

        // IF KEY(15) THEN GOSUB farbdialog// TAB am PC, SELECT an der GP2x

        WHILE KEY(15)
                GOSUB farbdialog
        WEND

        SHOWSCREEN;


WEND // --- END MAIN LOOP ---




SUB farbdialog:

        LOADBMP "colorselection_layout.bmp"
        substart_farbdialog:

        DRAWRECT 0,0,193,193,RGB(0,0,60)
        zaehler = 0
        r = 220 ; g = 220 ; b = 220
        // Zeichnen der Farben-Felder (mit je 1 px Grid dazwischen)
        FOR cols=0 TO 15
                FOR rows = 0 TO 15
                        zaehler = zaehler + 1
                        IF zaehler > 63 AND zaehler < 129 THEN r = r - 1
                        IF zaehler > 128 AND zaehler < 173 THEN g = g - 1
                        IF zaehler > 172 THEN b = b - 1
                        DRAWRECT 1+(cols*(11+1)),1+(rows*(11+1)),11,11,RGB(r,g,b)
                NEXT
        NEXT

        IF KEY(15) = 0 THEN GOTO subend_farbialog
        SHOWSCREEN
        GOTO substart_farbdialog

        subend_farbialog:
        LOADBMP "gui_layout.bmp"
        RETURN

ENDSUB

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Kompatib.probleme GP2x / PC
« Reply #1 on: 2007-Dec-23 »
Hi, leider kann ich die Fehler nicht nachvollziehen, da ich keine GP2X habe.

ABER:
Bist aber nicht der BlitzBasic 4Pac der mal so nen haufen tutorials gemacht hatte oder?
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

4pac

  • Guest
Kompatib.probleme GP2x / PC
« Reply #2 on: 2007-Dec-23 »
Oh Shit, ich wurde erkannt :-)  Ja, korrekt, ich bin der BlitzBasic 4pac :-) Bist du auch ein BB-Überläufer? Wenn ja, unter welchem Namen warst du da zugange? Sind ja ein paar mehr von uns hier unterwegs.

Also, Überläufer ist nicht ganz korrekt. Ich finde nur, man braucht für jeden Job das passende Tool, und die Freiheit nehme ich mir dann als Coder auch einfach :-) GLBasic ist für mich persönlich in erster Linie wegen der GP2x ultra-interessant. Ist schon echt toll, die Möglichkeit, für eine Handheld-Konsole in so einem leicht verständlichen Basic coden zu können. Echt ne ganz große Gechichte. Was darüberhinaus noch aus meiner Zuneigung zu GLBasic wird, wird die Zeit zeigen.

Im Moment finde ich die Idee geil, in der S-Bahn auf dem Weg zum Kunden zu sitzen und Grafiken zu pixeln. Daher dieses Tool. Und, ist mein Versuch, mich an GLB zu gewöhnen (daher noch die Demo-Version)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Kompatib.probleme GP2x / PC
« Reply #3 on: 2007-Dec-23 »
Ist ja krass :D

Hmm im BB hab ich net soooo viel gemacht.
War der Schranz0r aufn BB-Forum, hatte vom ersten Tag an die Ar***lochkarte gezogen, wieso auch immer null plan.

War da halt noch Anfänger und habs halt immer dicke ab bekommen... von den tollen Moderatoren da....

Hab aber denke ich doch recht schnell hinbekommen BB zu lernen, und da waren deine Tutorials mitunter derzeit gut hilfreich!

Dann stress mit den Admins gehabt(Jan, Dee, usw)....
und schwups war ich hier :)

Hier sind alle nett zueinander, frag mich nur wieso das im BB net so ist?
Aber Willkommen im Club der Umsteiger ;)
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

4pac

  • Guest
Kompatib.probleme GP2x / PC
« Reply #4 on: 2007-Dec-23 »
Jaja, das BB-Forum und was aus ihm wurde... *LOL* du hast ne PM (da kann man dann auch mal etwas ausgelassener nörgeln)

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5009
  • O Rly?
    • View Profile
Kompatib.probleme GP2x / PC
« Reply #5 on: 2007-Dec-23 »
wenn du mir im BB was schreiben willst dann bitte an "Beatenvoy", da mein alter nick wohl weg ist ^^
I <3 DGArray's :D

PC:
AMD RYzen 7 1700 @3.9Ghz, 16GB HyperX Fury 2666Mhz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kosta

  • Mr. Polyvector
  • ***
  • Posts: 167
  • nothing.....except 'Kosta'
    • View Profile
    • Kosta's Blog
Kompatib.probleme GP2x / PC
« Reply #6 on: 2007-Dec-24 »
Hi 4pac,


S.O.P.M hatte sich, über Flackern und Probleme bei der Darstellung einiger Befehle (auf der GP2X), geäussert:

http://www.glbasic.com/forum/viewtopic.php?id=1196&p=1

Letztendlich musste man nur die Optionen (Compiler) erneut auf GP2X stellen. Mehr hierzu:
schau mal obs hilft....

http://www.glbasic.com/forum/viewtopic.php?id=1196&p=1
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10683
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Kompatib.probleme GP2x / PC
« Reply #7 on: 2007-Dec-24 »
-OK. Setpixel flackert - aber nur leicht bei mir. Probier mal GRABSPRITE, STRETCHSPRITE statt dessen. (Das mini-image grabben)

2. Beenden geht bei mir. Screenshot+Icon sind da. (PNG sollte auch gehen)

3. Die Select-Taste:
    IF KEY(15)
        WHILE KEY(15); WEND
        GOSUB Farbwahl
    ENDIF
    -> Warte bis die Taste losgelassen wird. (Auch im Farbwahl-dialog, dann, OK).

4pac

  • Guest
Kompatib.probleme GP2x / PC
« Reply #8 on: 2007-Dec-24 »
Bei mir flackert SetPixel auf der GP2x ganz doll. Und mindestens genauso übel ist, dass die x/y-Position von SetPixel ganz und gar nicht stimmt. Die Preview des Icons wird locker 100 px höher und 50 px weiter links ab vom Schuss dargestellt. Mit Grabsprite wäre mir auch nicht richtig geholfen, denn beim abgreifen des BackBuffers wird auch das 1 px dünne Grid zwischen den Pixelfeldern mitgegrabt, und das soll in der Prewiew nicht passieren - würde dann durch das Runterskalieren mit Stretchsprite wahrscheinlich einfach nur noch wie Fliegendreck im gepixelten Bild aussehen.

Beenden klappt auch definitiv nicht bei mir (mit den beiden Schultertasten).

Auf dem PC klappen diese Sachen alle korrekt. Was kann denn das sein??

Ich hab die Firmware-Version 2.0.0 auf der GP2x. Kann es damit zusammenhängen?

Frohes Fest wünscht
4pac

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1061
    • View Profile
    • http://www.deuteriumoxid.com
Kompatib.probleme GP2x / PC
« Reply #9 on: 2007-Dec-25 »
HI Du Nordlicht,
werds im laufe des Tages mal auf meinem GP2X Testen, habe dort FW. 3 drauf
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10683
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Kompatib.probleme GP2x / PC
« Reply #10 on: 2007-Dec-25 »
Hast Du das aktuelle Update? Hast Du die Project-Options für GP2X gesetzt?
Kannst Du einen Screenshot (Digicam) von Deinem Pixelproblem machen?
Ich seh mal, ob man das mit den pixeln nicht anders machen kann...

Offline D2O

  • Prof. Inline
  • *****
  • Posts: 1061
    • View Profile
    • http://www.deuteriumoxid.com
Kompatib.probleme GP2x / PC
« Reply #11 on: 2007-Dec-25 »
Hi 4Pac,
das ganze läuft auf meinem Kleinen Tadellos.
Habe auch kein Flackern und beenden geht auch.

@Gernot:

Habe das Projekt auf GP2X gesetzt und mit "shift+F8" Compiliert, dann kommt folgende Meldung:

Quote
---------------------------
GLBasic
---------------------------
Bitte Platformoptionen setzen für: OS-X_UNI
---------------------------
OK  
---------------------------
Aber die gpe wird einwandfrei erstellt!??
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10683
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Kompatib.probleme GP2x / PC
« Reply #12 on: 2007-Dec-25 »
Jo. Musst für OSX setzten. Ist doofer Fehler, weil Du ja gar net für OSX machst... Muss ich mal ändern.

4pac

  • Guest
Kompatib.probleme GP2x / PC
« Reply #13 on: 2007-Dec-26 »
Quote from: GernotFrisch
Hast Du das aktuelle Update? Hast Du die Project-Options für GP2X gesetzt?
Kannst Du einen Screenshot (Digicam) von Deinem Pixelproblem machen?
Ich seh mal, ob man das mit den pixeln nicht anders machen kann...
Ich hatte auch schon daran gedacht, einen Screenhot vom GP2x mit der Digicam zu machen. Aber das flackert soo stark und ist dadurch so kaum zu sehen, das mit SetPixel gemalte, auf dem Bild würde man gar nichts sehen, so dass man sich fragen würde, hä? Wo werden denn da Pixel gesetzt, ich seh keine. Man erkennt es auf der GP2x echt nur mit ganz gut hinsehen, und weil man ja weiß was fehlt, und ganz nah ran geht mit den Augen. Man würde wenn man nicht wüsste wonach man sucht denken, das ist irgendwie eine Screen-Störung.

Das mit dem Update probiere ich mal. Die Project Options hatte ich korrekt gesetzt. Danke für die Tipps, Gernot!

Fabio, vielen Dank für´s testen!!!

Viele Grüße,
4pac

4pac

  • Guest
Kompatib.probleme GP2x / PC
« Reply #14 on: 2007-Dec-26 »
Quote from: GernotFrisch
3. Die Select-Taste:
    IF KEY(15)
        WHILE KEY(15); WEND
        GOSUB Farbwahl
    ENDIF
    -> Warte bis die Taste losgelassen wird. (Auch im Farbwahl-dialog, dann, OK).
Die finde ich gut, Gernot. Hab ich gleich ausprobiert. Die ist wie OnRelease. Braucht man aber auch für GLB, habe ich festgestellt.