rRootage for GP2X 1.0

  1. Senor Quack (Dan Silsby)
    rRootage for GP2X v1.0
    February 18 2010

    Ported by Senor Quack (dan silsby)
    (dansilsby <at> gmail (dot) com)

    Important credit goes to:
    * rixed - gpu940, a brillaint fixed-point ASM-optimized
    3D graphics library with OpenGL glue that transfers
    all rendering to the second CPU core
    * GameGod - Initial work on GP2X port

    GP2X Control Mapping:

    Y, B, R_Trigger: Laser
    X, A, L_Trigger: Special
    Start: Pause
    Select: Exit to menu (new feature I added)
    Vol+/-: Change volume
    DPAD: Move


    * For me, it is 100% stable and reasonably fullspeed
    at 220mhz. It is recommended you overclock rRootage
    to 220mhz, if possible, using GMenu2X settings for
    your rRootage link. It is also *highly* advisable
    to turn on the Fast RAM Timings option. I can
    frequently get 20-60fps throughout levels
    and even the higher levels remain playable, too.

    Running without music or sound should have no effect
    on your FPS, by the way. The bottleneck is all the
    3D rendering occuring on the second core.

    If you aren't already using GMenu2X on your GP2X,
    you should be. rRootage does not touch your RAM
    timings or overclock your CPU, because GMenu2X can
    do this already and is the overall best, most flexible
    solution for everybody. Or, just install the Open2X
    firmware that already comes with it included.

    Many will find that rRootage cannot overclock as high
    as other programs can because of the higher current
    draw imposed by the use of the second core. My unit,
    even running Picodrive which runs sound on the second
    core, was always able to overclock to 250mhz running
    off batteries. However, running rRootage which does
    all 3D rendering on the second core, I can only
    go to 220mhz reliably. Plugging the unit into a wall
    adapter allows for somewhat higher overlcocks.

    If you are interested, the full-featured replacement
    firmware, Open2X DR7, I helped develop has the awesome
    GMenu2X shell built into the NAND, preinstalled
    and with new added features for your GP2X:

    * I have added a command line option to those already
    present: -laser

    If you use it, the laser will always fire *unless*
    you are pressing down the assigned laser button.
    Someone requested it for noiz2sa and I thought it
    was a good idea for this, too. If you want to
    apply this feature, delete the rRootage.gpe launch
    script that is already present and rename
    the file _rRootage.gpe-laser to be rRootage.gpe

    * rRootage will hang if loaded a second time, upon having
    quit and restarted the program. I was not able to
    resolve this. So, run rRootage only once and then
    restart your GP2X if you quit and play something
    else and want to go back. Sorry .)

    It should be noted that if you are running the Open2X
    firmware you can use the software reset feature I
    added to quickly reset back to GMenu2X if this occurs
    and simply run rRootage a third time and it will work.
    (Press L+R+VOLUP+VOLDOWN+A+B+X+Y to quickly get back
    to the GMenu2X shell if any program hangs on you)

    * For both speed and stability reasons, almost all line
    rendering and texture effects have been disabled. So,
    for example, the scrolling background is gone, the
    alpha-blended starbursts present in the PC version are
    missing, bullet outlines, etc. The GP2X is rendering
    everthing on a very limited integer-only ARM CPU that
    can barely keep up with everything being thrown at it
    already. I have also sped up things by significantly
    reducing the number of polygons in the laser beam, and
    changing the appearance of it in the process. I find
    it is a nice compromise and helps free up several

    The gpu940 3D library's line rendering also contains a
    bug whose presence is fortunately gone for
    good in my port thanks to many lost evenings filled
    full of bug hunting and experimentation. Further work
    might be done to allow optional display of some of the
    missing effects. The small number of lines drawn in
    my port compared to the PC version allows this bug to
    remain hidden for now.