Open2x Dr4


Wow! Excellent new updates. :D

Really looking forward for the official F-200 release.

Good work, and keep it up. :lol:
 
Last edited by a moderator:
really cool to hear about some of these updates, especially stick click emulation. I know that stick click was used for nethack and alternative methods were never developed cause since nothing was done with it for a while.

I remember there being a misconception when the f200 first came out that pushing all the directional buttons would function as a stick click. nice that its now going to be true. good work adding all the nice extra stuff that will make open2x perfect and what i wish gph would have given us in the first place
 
Forgot to mention some other things I added:

* New GMenu2x option to always apply the fast RAM tweak when first starting, ignoring each link's settings

* New Gmenu2x option to display uptime in the status bar (beside a little clock icon). This is so you can see how long your GP2X is on and if you are having a long session, you can estimate yourself how much battery power is left.
 
Last edited by a moderator:
'Senor Quack' said:
Forgot to mention some other things I added:

* New GMenu2x option to always apply the fast RAM tweak when first starting, ignoring each link's settings

* New Gmenu2x option to display uptime in the status bar (beside a little clock icon). This is so you can see how long your GP2X is on and if you are having a long session, you can estimate yourself how much battery power is left.
Nice aditions thanks, I can't wait :)
 
Last edited by a moderator:
One of the problems Open2X faced was that its kernel is compiled with version 3 of GCC but all of the mmuhack.o files distributed out there are from GCC 2.95. They therefore refuse to load. Because of the way they all specified the filename, it is impossible to just plop a new mmuhack into a folder somewhere and have everything load it instead..

So, last night with a little advice from Exophase I added a form of mmuhack right into the Open2X kernel. What mmuhack did was enable both write-buffering and caching on upper memory for just that one application, then when the application exits that is lost.

Exophase says most of the benefit is likely from write-buffering and so I thought to make write-buffering for all of upper memory to always be turned on in the Open2X kernel This won't have any compatibility problems at all. A new per-link option in GMenu2X allows one to also optionally turn on caching for an application (only turned on for the length of the application) like the traditional mmuhack. However, if you enable the caching on an app that didn't originally use mmuhack you might see screen artificats. You probably won't notice much of a benefit from enabling the caching anyway since write buffering is already turned on for everything.

What this means is that we have likely given a lot of GP2X apps a little speed boost, even ones that never used mmuhack..

What I am working on later today is finishing up mp2x and fixing its gui. Hopefully there's not much past that to do and we can get started packaging it up.
 
Last edited by a moderator:
Great news .. :D
Senor Quack for president !! B)
 
Last edited by a moderator:
At this point I hope that F200 user can install open2x on their device soon....
maybe it works also on the F200('B') with new lcd screen?
I'm very interested in this project also becouse the original firmware in my console (4.1.1) has some problems with homebrew application that provide touch screen and gmenu2x don't works fine.
Great job Senor Quack :D
 
Last edited by a moderator:
Last night I did my first test install of the F200 version. There are a few tiny bugs and tweaks to fix but it's aboutt 99.5% done now.

peelie: I looked into the pykaraoke problem.. Pykaraoke dynamically links to quite a few libraries including a few it includes itself. Unfortunately, it doesn't work and nothing I did could make it work. It will likely need to be re-released as a statically linked version. I might or might not get around to that.
 
Last edited by a moderator:
'Senor Quack' said:
Last night I did my first test install of the F200 version. There are a few tiny bugs and tweaks to fix but it's aboutt 99.5% done now.

peelie: I looked into the pykaraoke problem.. Pykaraoke dynamically links to quite a few libraries including a few it includes itself. Unfortunately, it doesn't work and nothing I did could make it work. It will likely need to be re-released as a statically linked version. I might or might not get around to that.
thanks for looking into it Mr SQ; though i have little idea what you said in the 2nd paragraph means! i think the guy who looks after the GP2X version may be interested in getting out a version that will run.

hmm just looked up that user - drwr and he has not logged into forums since july 2008; will try to make contact from their website.


eagerly waiting for the 0.5 percent :)
 
Last edited by a moderator:
News update:
Sorry we haven't had a release quite yet, we are darned close. I moved March 1st, into a place with no internet for a month and so have been using the library to get on the Internet. I am not allowed to steal wireless at this new apartment but we'll see if I can sneak a way. There was a small bug found in the volume stuff, so things got delayed a bit as I found and corrected it.

Now, the good news: I have a lot more free time this month because our factory is so slow with the economy the way it is. All this week I have spent about 16 hours a day coding new features and I have some exciting stuff 100% finished that I didn't think I'd have done:

TV Tweaking Daemon:
Frustrated that the GP2X's TV output often leaves the image hanging off the bottom and side of the screen? Well, I have fixed this for 90% of GP2X applications. I altered the tv chip's linux driver to allow a separate backdoor daemon to tweak the image while programs run. I added new per-application settings into GMenu2X to allow adjustment of the X and Y TV image offsets, as well as adjustment of the X-axis and Y-axis scaling (12%-200%). You can tell the daemon to tweak continuously every x seconds or you can tell it to just tweak once and then terminate.

The only applications this doesn't work on are some SDL apps that used Paeryn's library together with double buffering. The reason this doesn't work is because Paeryn's library resets the scaling registers with every buffer flip and there's no way to compensate for this. Some of my ports are affected by this (Tileworld2X, Koules2X), and some aren't. I will be releasing an updated version of SDL that fixes this behavior, and also hopefully releasing updated versions of my ports that use this newer SDL. Most SDL applications do work, however. Any that used Rlyeh's minlib are guaranteed to work, things like Picodrive, for instance, greatly benefit..

Application killer / GMenu2X relaunching daemon
Can't decide if I'm more excited about this or the TV daemon :) Ever have an application crash and leave you with a frozen screen or no way to exit? I have fixed this! I altered the Open2x kernel to continuously monitor if a specific combination of buttons is pressed (L+R+A+B+X+Y+VOLUP+VOLDOWN). Before GMenu2X launches a program, it makes a list of all the processes currently running. After that point, if you press the reset button combo, the kernel will instantly kill off everything not on that list of processes (using an unblockable KILL signal), then a separate daemon will detect this state and relaunch GMenu2X after a small delay. Unless something hard-freezes the GP2X or screws up hardware in someway, this should always get your GP2X back to a usable state.

This stuff is 99% complete, BTW. Just gotta package it all up, I swear it won't be too much longer :)

The thing that I haven't started yet that I am excited about and want to mention: Complete control of the GP2X from a USB gamepad. I am pretty sure I will be able to get this working. The pieces are in place, but a userspace daemon and configurator needs to be written.
 
Last edited by a moderator:
'Senor Quack' said:
News update:
Sorry we haven't had a release quite yet, we are darned close. I moved March 1st, into a place with no internet for a month and so have been using the library to get on the Internet. I am not allowed to steal wireless at this new apartment but we'll see if I can sneak a way. There was a small bug found in the volume stuff, so things got delayed a bit as I found and corrected it.

Now, the good news: I have a lot more free time this month because our factory is so slow with the economy the way it is. All this week I have spent about 16 hours a day coding new features and I have some exciting stuff 100% finished that I didn't think I'd have done:

TV Tweaking Daemon:
Frustrated that the GP2X's TV output often leaves the image hanging off the bottom and side of the screen? Well, I have fixed this for 90% of GP2X applications. I altered the tv chip's linux driver to allow a separate backdoor daemon to tweak the image while programs run. I added new per-application settings into GMenu2X to allow adjustment of the X and Y TV image offsets, as well as adjustment of the X-axis and Y-axis scaling (12%-200%). You can tell the daemon to tweak continuously every x seconds or you can tell it to just tweak once and then terminate.

The only applications this doesn't work on are some SDL apps that used Paeryn's library together with double buffering. The reason this doesn't work is because Paeryn's library resets the scaling registers with every buffer flip and there's no way to compensate for this. Some of my ports are affected by this (Tileworld2X, Koules2X), and some aren't. I will be releasing an updated version of SDL that fixes this behavior, and also hopefully releasing updated versions of my ports that use this newer SDL. Most SDL applications do work, however. Any that used Rlyeh's minlib are guaranteed to work, things like Picodrive, for instance, greatly benefit..

Application killer / GMenu2X relaunching daemon
Can't decide if I'm more excited about this or the TV daemon :) Ever have an application crash and leave you with a frozen screen or no way to exit? I have fixed this! I altered the Open2x kernel to continuously monitor if a specific combination of buttons is pressed (L+R+A+B+X+Y+VOLUP+VOLDOWN). Before GMenu2X launches a program, it makes a list of all the processes currently running. After that point, if you press the reset button combo, the kernel will instantly kill off everything not on that list of processes (using an unblockable KILL signal), then a separate daemon will detect this state and relaunch GMenu2X after a small delay. Unless something hard-freezes the GP2X or screws up hardware in someway, this should always get your GP2X back to a usable state.

This stuff is 99% complete, BTW. Just gotta package it all up, I swear it won't be too much longer :)

The thing that I haven't started yet that I am excited about and want to mention: Complete control of the GP2X from a USB gamepad. I am pretty sure I will be able to get this working. The pieces are in place, but a userspace daemon and configurator needs to be written.
Exciting and very useful stuff. I do remember you telling me about the USB controls, it would me nice to see my suggestion come to life! :D
Look forward to the net release, and I may even start using my GP2X again! :eek:
 
Last edited by a moderator:
Wow, we're really getting treated here. :) The USB pad control is the icing on the cake. Or, it may be the actual cake, I'm not sure.

burnsellent.jpg
 
Last edited by a moderator:
Awesome work SQ! The new features really rock!

Senor Quack said:
...I am not allowed to steal wireless at this new apartment but we'll see if I can sneak a way.

If there's a wireless network around with the name "Speedtouch12AB56", where 12AB56 is any random combination of hex numbers, there's a way to synthetically generate the correct WPA key... I've done it many times using a simple Windows program and it works flawlessly.
 
Last edited by a moderator:
Back
Top