Dxx-Rebirth (1 And 2)


SteveM said:
WizardStan said:
I think the problem is that timidity is a daemon. In theory I imagine it could be packaged into some kind of PND file, but until someone figures out a secure way to make PND daemons, you'll have to manually start it every boot before playing anything that uses midi music.
One PND could always start another by doing a find and pnd_run in its start-up script.

I'm guessing that your concerns about security are to do with starting stuff as root. Most daemons only need root to open privileged ports (<1024) so as long as that's not a requirement there's no real problem.

what...there is no daemon that im aware, sdlmixer has timidity support. All you need to so is put the timidity files some where, and put the timidity conf file in /etc. The conf file needs a path to the instruments. I had put in my nand at the time since the sd card path was not consistent, but now that it uses the card label i could move them to the sd card and correct my etc file.
 
Last edited by a moderator:
DaveC said:
It doesn't have to be a pnd, I would just put all of the loose files into a directory in appdata called "timidity".
Use Hooka instruction there : http://www.gp32x.de/board/index.php?/topic/54633-zelda-kind-of/page__view__findpost__p__883536
 
Last edited by a moderator:
Pickle said:
what...there is no daemon that im aware, sdlmixer has timidity support. All you need to so is put the timidity files some where, and put the timidity conf file in /etc. The conf file needs a path to the instruments. I had put in my nand at the time since the sd card path was not consistent, but now that it uses the card label i could move them to the sd card and correct my etc file.
Ok, if you're sure. When I was messing around with midi music (trying to get that early 90s feel in a game I was working on) the midi engine I used simply opened a channel to the timidity daemon and played the sounds that way. I guess I foolishly assumed that's how other midi engines which use timidity do it. I mean, why duplicate work implementing a music engine when one already exists, eh?
 
Last edited by a moderator:
Pickle, I don't know if you missed it but is there a way to make the text more readible in Descent 2? Parts of it are missing and it is hard to read as well as being kind of fuzzy. Not sure what the issue is.
 
DaveC said:
Pickle, I don't know if you missed it but is there a way to make the text more readible in Descent 2? Parts of it are missing and it is hard to read as well as being kind of fuzzy. Not sure what the issue is.

you can try changing an option in the cfg file, i think its called texfil or something try setting it to 0
 
Last edited by a moderator:
@Pickle: Really nice port, big thanks !

For those like me who wants to enjoy music with mp3 ripped track for descent1, then you need to create a file called dx1.ini in :
<root_location_of_your_pnd>/pandora/appdata/d1x

Add the following line :
-music_ext mp3

Create a folder "Music" in <root_location_of_your_pnd>/pandora/appdata/d1x and put your mp3 there (for example descent.mp3).

Launch the game, you can listen to descent1 music :p

EDIT: btw, nub is working fine if you choose Joystick in option menu (Descent 1)
 
@Pickle

I dont' know if you have the time to do me a favor but I'd be pleased if you could integrate a small patch into D2X for me. (have no cross compiling set up on my windoze)

So why a patch? I'm playing with nub joystick mode and I noticed that the nubs are too sensitive and too jumpy around the center for aiming in Descent. Sure I could lower the axis sensitivities in the game but then turning and movement takes ages. Then I coded a small SDL joystick test program to find out how to correct that. A simple deadzone is boring (and often bad) and now I got this, a soft deadzone. It really makes a difference in my test program.

What the patch does:
It applies this IO-curve to the joystick x and y values. It only alters the controls around the center.
f(x)=x/(6*(exp(-1/2*(x*7)^2))+1)
graphp.gif

X-Axis: input distance from center
Y-Axis: changed distance from center

Where to patch:
main/slew.c in the function do_slew_movement
I hope that I found the right spot in the sources. Its a bit complicated for me..
The values centerSoftness and centerness should ideally be configurable by a small text file in appdata.

...
if (check_joy && joy_present && (Function_mode == FMODE_EDITOR) ) {
joy_get_pos(&joy_x,&joy_y);
btns=joy_get_btns();

// Pandora nub specific: Soft deadzone correction for better nub control near center
if (true) //make configurable
{
float centerSoftness = 6; // Good values from 0 (no correction) to 10 or more (heavy correction)
float centerness= 7; // Good values from 4-15 (bigger number means: correction more restricted to the center)
float xx,yy;
xx= (float)joy_x/256.0f; // I don't know exactly the range. Correct if its the wrong range
yy= (float)joy_y/256.0f;
float dist=sqrt( xx*xx+yy*yy);
dist=dist/ (centerSoftness*(exp(-1.0f/2.0f*(dist*centerness)*(dist*centerness))) +1.0f);
joy_x=(int)(dist*yy*256.0f);
joy_x=(int)(dist*yy*256.0f);
}
// soft dead zone


joyx_moved = (abs(joy_x - old_joy_x)>JOY_NULL);
joyy_moved = (abs(joy_y - old_joy_y)>JOY_NULL);
...


Btw: I browsed through the pandora firmware git to find the joystick(nub) driver code - no success, I have no clue. This small code fragment could improve mouse and joystick control precision for all pandora games.
 
sqrt and exp function are really time consuming, so i guess you'd better to have a pre-computed table for a small range of discret values.
 
zx-81 said:
sqrt and exp function are really time consuming, so i guess you'd better to have a pre-computed table for a small range of discret values.
Right. A lookup table for the whole IO mapping function is a good idea. We are talking about joystick values, a well defined range ;)

torpor said:
Brilliant idea Whynodd .. I'm making notes of this hack for future nub use ..
It'd be better if some kernel hacker could integrate this into the nub driver, the place where the values are read. If I had the knowledge where to patch and how to compile the firmware, I would do it.

A note: I chose(designed ;) ) this function above and not a gamma curve like or quadratic function because with those I had problems with the diagonals in my joystick test program, could not reach the full circle anymore.
 
Last edited by a moderator:
Whynodd said:
zx-81 said:
sqrt and exp function are really time consuming, so i guess you'd better to have a pre-computed table for a small range of discret values.
Right. A lookup table for the whole IO mapping function is a good idea. We are talking about joystick values, a well defined range ;)

torpor said:
Brilliant idea Whynodd .. I'm making notes of this hack for future nub use ..
It'd be better if some kernel hacker could integrate this into the nub driver, the place where the values are read. If I had the knowledge where to patch and how to compile the firmware, I would do it.

A note: I chose(designed ;) ) this function above and not a gamma curve like or quadratic function because with those I had problems with the diagonals in my joystick test program, could not reach the full circle anymore.

A loop up table may be best, there actually arnt many values that come from the nub themselves (cant remember the exact number but its a low resolution). If i remember right these are in turn scaled to 0-255 in the kernel. And i dont recall if SDL does it own scaling on top of that.

Either way if you come up something that works well and is fast ill add it in.
 
Last edited by a moderator:
I have descent stored in pandora menu and appdata,cant get it to run though.Im a linux noob and still learning how to do stuff in genaral.oh well
 
Pickle said:
A look up table may be best, there actually arnt many values that come from the nub themselves (cant remember the exact number but its a low resolution). If i remember right these are in turn scaled to 0-255 in the kernel. And i dont recall if SDL does it own scaling on top of that.
IIRC -32 ... 32 is the range (atleast in op_test_inputs also). Also loop up table sounds funny :p
 
Last edited by a moderator:
I grabbed the PND for D1X from openhandhelds.org. I ran the PND once, as you had mentioned it creates a data directory. The disk activity light blips a few times, but nothing comes up. It makes two hidden file/directories: .d1x-rebirth and .wh..wh.orph. So I made an appdata/d1x/data directory, put all my original Descent files in there. Running the app still doesn't open up anything, but shows the disk activity light. Just in case I got it wrong, I tried moving the pig/hog files to just the appdata/d1x directory, but to the same effect.

I also tried patching my data files to 1.4, in case that was the problem. The linux diff patcher seemed to think my .hog was already patched. So I tried it with just patching the .pig, and also tried the whole thing with a forced-patched .hog.

I feel like I'm missing something. Is it supposed to show some kind of window even if the data files don't exist? I'm presently running Hotfix 4. I've tried rebooting, but not reflashing. I've also tried removing the whole d1x appdata directory and having it recreate it.
 
Yamara said:
I grabbed the PND for D1X from openhandhelds.org. I ran the PND once, as you had mentioned it creates a data directory. The disk activity light blips a few times, but nothing comes up. It makes two hidden file/directories: .d1x-rebirth and .wh..wh.orph. So I made an appdata/d1x/data directory, put all my original Descent files in there. Running the app still doesn't open up anything, but shows the disk activity light. Just in case I got it wrong, I tried moving the pig/hog files to just the appdata/d1x directory, but to the same effect.

I also tried patching my data files to 1.4, in case that was the problem. The linux diff patcher seemed to think my .hog was already patched. So I tried it with just patching the .pig, and also tried the whole thing with a forced-patched .hog.

I feel like I'm missing something. Is it supposed to show some kind of window even if the data files don't exist? I'm presently running Hotfix 4. I've tried rebooting, but not reflashing. I've also tried removing the whole d1x appdata directory and having it recreate it.

check the /tmp log file
 
Last edited by a moderator:
Pickle said:
Yamara said:
I grabbed the PND for D1X from openhandhelds.org. I ran the PND once, as you had mentioned it creates a data directory. The disk activity light blips a few times, but nothing comes up. It makes two hidden file/directories: .d1x-rebirth and .wh..wh.orph. So I made an appdata/d1x/data directory, put all my original Descent files in there. Running the app still doesn't open up anything, but shows the disk activity light. Just in case I got it wrong, I tried moving the pig/hog files to just the appdata/d1x directory, but to the same effect.

I also tried patching my data files to 1.4, in case that was the problem. The linux diff patcher seemed to think my .hog was already patched. So I tried it with just patching the .pig, and also tried the whole thing with a forced-patched .hog.

I feel like I'm missing something. Is it supposed to show some kind of window even if the data files don't exist? I'm presently running Hotfix 4. I've tried rebooting, but not reflashing. I've also tried removing the whole d1x appdata directory and having it recreate it.

check the /tmp log file

I didn't realize it was writing out errors to /tmp/pndrun*. Handy. I also should have read your original post more carefully, where you state where to stick files.

With the original files, I'm getting the error that there are not enough strings, which sounds like I need to patch it.
Code:
rm: cannot remove `/tmp/cpuspeed': No such file or directory
not mounted on loop yet, doing so
LoopMountedon:
/dev/loop1
Filetype is Squashfs
sudo mount -t squashfs  /dev/loop1
mounting union!
Filesystem is vfat
[------------------------------]{ App start }[---------------------------------]
cp: cannot stat `default/*': No such file or directory
cp: `default/..' and `.' are the same file
Error: Not enough strings in text file - expecting 621 (or at least 514), found 555
Error: Not enough strings in text file - expecting 621 (or at least 514), found 555
[-------------------------------]{ App end }[----------------------------------]
cleanup done
If I try to run it with a patched hog, using the linux patcher from the site listed in the above post, it says it can't find a valid file.
Code:
pithos:/media/GEORGE/pandora/appdata/d1x$ cat /tmp/pndrund1x_run.out
rm: cannot remove `/tmp/cpuspeed': No such file or directory
not mounted on loop yet, doing so
LoopMountedon:
/dev/loop2
Filetype is Squashfs
sudo mount -t squashfs  /dev/loop2
mounting union!
Filesystem is vfat
[------------------------------]{ App start }[---------------------------------]
cp: cannot stat `default/*': No such file or directory
cp: `default/..' and `.' are the same file
Error: Could not find a valid hog file (descent.hog)
Possible locations are:
        ./.d1x-rebirth
        /mythtv/media/devel/toolchains/pandora/arm-2010q1/share/games/d1x-rebirth/
        In a subdirectory called 'Data'
Or use the -hogdir option to specify an alternate location.Segmentation fault
[-------------------------------]{ App end }[----------------------------------]
cleanup done
I'm using a backup from an old DOS install from ages back though. It wouldn't surprise me if we'd done something funny to the data files when I was a kid. Permissions on the files are the same, and the location is the same.
 
Last edited by a moderator:
Yamara said:
I'm using a backup from an old DOS install from ages back though. It wouldn't surprise me if we'd done something funny to the data files when I was a kid. Permissions on the files are the same, and the location is the same.

Yeah looks like file issues. You also try the files with a windows/linux version. Its a little easier to debug.
One thing to look into is make the files lower case.
Another option you might want to consider is buying the games again on gog.com, they are pretty cheap.
 
Last edited by a moderator:
Pickle said:
Yamara said:
I'm using a backup from an old DOS install from ages back though. It wouldn't surprise me if we'd done something funny to the data files when I was a kid. Permissions on the files are the same, and the location is the same.

Yeah looks like file issues. You also try the files with a windows/linux version. Its a little easier to debug.
One thing to look into is make the files lower case.
Another option you might want to consider is buying the games again on gog.com, they are pretty cheap.

After a second furious search through old game disks, I found the install disks. The vanilla original files worked without fuss. Now, to configure the joysticks. It looks gorgeous on the screen, Pickle. Thanks for the port and the advice.
 
Last edited by a moderator:
Yamara said:
Pickle said:
Yamara said:
I'm using a backup from an old DOS install from ages back though. It wouldn't surprise me if we'd done something funny to the data files when I was a kid. Permissions on the files are the same, and the location is the same.

Yeah looks like file issues. You also try the files with a windows/linux version. Its a little easier to debug.
One thing to look into is make the files lower case.
Another option you might want to consider is buying the games again on gog.com, they are pretty cheap.

After a second furious search through old game disks, I found the install disks. The vanilla original files worked without fuss. Now, to configure the joysticks. It looks gorgeous on the screen, Pickle. Thanks for the port and the advice.

Good to hear, and have fun, and thank you :)
 
Last edited by a moderator:
Is it a known bug that a blue box stays stuck on the screen (until you beat the level) whenever you pick up a key? Or is there something wrong on my end?

For example:

When I get a red key:
http://s4.photobucket.com/albums/y141/djAZUL/DSC00730.jpg
http://s4.photobucket.com/albums/y141/djAZUL/DSC00731.jpg

When I get a blue key:
http://s4.photobucket.com/albums/y141/djAZUL/DSC00734.jpg
 
Back
Top