maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   OS2008 / Maemo 4 / Chinook - Diablo (https://talk.maemo.org/forumdisplay.php?f=29)
-   -   Ancient Domains of Mystery (https://talk.maemo.org/showthread.php?t=70484)

Addison 2011-03-01 06:17

Ancient Domains of Mystery
 
Hey all.

If you enjoy D & D or rogue games, this here will be quite the awesome treat for you. :)

You'll first need to have ROXterm, Open SSH, Sudser, and have root access.

Download and unzip to /media/mmc2/

http://www.mediafire.com/?6bhb9e36n12y3e3

It should look like this on your card /media/mmc2/N800/ADOM

Open the ADOM install file, select all, copy, then paste in Xterm.

To launch, it will be
roxterm -f
then type adom

If you want to quick launch this you can enter adom for the Custom command under Edit Current Profile in Roxterm.


Hardware keys:

Zoom out = minus, change targeting, previous page
Zoom in = plus, change targeting, next page
Full Screen = Removes virtual keyboard for two seconds. Sometimes the two keyboards overlap in the wrong order or sometimes you just need to check the status of your character on the very bottom of the screen.

D-Pad = Directions
Center D-Pad = Walk
So for faster gameplay, just press Center D-Pad then the direction you want your character to go.

Escape = Beserk tactics
Menu = Normal tactics
Home = Coward tactics

These can all be custom changed by editing the following two files:
/user/share/.xbindkeys_adom
/user/share/.Xmodmap_adom



In case something bad happens, like you lose your internet connection, there are two ways you can immediately get out of ROXterm:
CTRL - a
CTRL - z


Also, once you've created an account with your login name and password, you'll want to edit this file:
/usr/bin/adom
to change the login name.

You can edit the coloring in the file:
/usr/share/roxterm/Config/Colours/GTK

If you ever power down or reset your tablet, copy and paste the file Restore keyboards from /media/mmc2/N800/Keyboards/ into Xterm. This has to only be done once after every time you either power down or reset your N800.


Screenies:
http://img819.imageshack.us/img819/5769/44164163.png

http://img836.imageshack.us/img836/1497/70143926.png

http://img694.imageshack.us/img694/5025/57572238.png


It would be great if I got at least one tester on this.

By the way, in this version, there's also a multiplayer feature too which I would love to check out with somebody. :)

Addison 2011-03-03 10:13

Re: Ancient Domains of Mystery
 
Not even a single tester?

Poopers. :(

*lol*

Oh well. I do understand that this post is something like 4 years much too late. :D

At least I have the files on the internet now in case my memory card ever squibs. :)

jwernerny 2011-03-03 18:22

Re: Ancient Domains of Mystery
 
I may test it soon, I'm still trying out Diablo Turbo.

Does it really need roxterm, or will xterm (not osso-xterm) work?

- John

Addison 2011-03-04 01:00

Re: Ancient Domains of Mystery
 
Hey John.

The truth is, you don't need any of this crud except for Open SSH.

Here's the breakdown on everything that is packaged with this.

Well first, ROXterm lets you use GTK coloring while Xterm doesn't. That's only the real reason for the extra install.

Libvte removes an invisible 1 pixel border on the screen. Without it, you'll have a 798x478 screen which means you would have to go with a smaller font without it.

Konwert filters lets you treat your terminal as if it were an IBM computer. So say if you were to play Nethack, you can now choose IBM graphics rather than just DEC. This looks so much better.

Custom font that fits perfectly on the screen. Also, it's the only one I know of which will work 100% if you ever go to a BBS site.

Virtual, touchscreen keyboard in case you're like me using an older N800 tablet.

Keybindings and scripts which make gameplay so much simpler.

And really, that's about it.

I personally can't imagine a better setup, but if you have any suggestions, I'm willing to hear them. :)

szopin 2012-10-06 19:19

Re: Ancient Domains of Mystery
 
Someone managed to get raspbian binary to run under android, happens to also work on maemo:

http://www.adom.de/forums/showthread...oid-(no-dosbox)

Addison: should also work on N8x0, speed pretty much the same as qemulating, smaller memory footprint. And no worries about qemu/lib compatibility I hope.

Addison 2012-10-07 07:04

Re: Ancient Domains of Mystery
 
After I unzipped it, I have one folder called libs and a file called run.

Where do I put this libs folder?

Also what permissions and owners do all of these files need to be inside of it?

So far, I'm getting the following errors.


./run: line 12: /usr/share/adom/libs/ld-2.13.so: Permission denied
./run: line 12: exec: /usr/share/adom/libs/ld-2.13.so: cannot execute: Success


Thanks ahead szopin. :)

Addison 2012-10-07 07:51

Re: Ancient Domains of Mystery
 
I keep forgetting that I need to stop unzipping files from my SD card. *lol*

Okay. So I unzipped everything from /usr/share/

I'm getting this following error now.

FATAL: kernel too old

Any ideas? :)

lma 2012-10-07 08:13

Re: Ancient Domains of Mystery
 
Quote:

Originally Posted by Addison (Post 1277500)
FATAL: kernel too old

That message comes from glibc. I guess this binary is statically linked with a version incompatible with the Diablo kernel so it looks like a lost cause :-(

Addison 2012-10-07 08:29

Re: Ancient Domains of Mystery
 
Ah nuts.

So I guess I did everything correctly but it's just not possible to run on the older tablet?

Oh well.

Oh hell. :)

szopin 2012-10-07 13:00

Re: Ancient Domains of Mystery
 
Bummer... Not sure if it is adom binary fataling out, or maybe the provided libc-2.13.so that is too new. Managed to run the adom binary on N900's ld-2.5/libc by modifying the run file to this:
Code:

scr=`readlink -f $0`
if [ $? != 0 ]; then
  echo No busybox, you must run this from the adom directory
  dir=$PWD
else
  dir=`dirname $scr`
fi

lib=/lib
export HOME=$dir
export TERMINFO=$lib/terminfo
exec $lib/ld-2.5.so --library-path $lib $dir/adom

Make sure ld-2.5.so is so named in diablo, (running 'ls /lib/ld*' should tell you that, change the last line accordingly) libs folder can be deleted at this point, so only files needed are run script and adom raspbian binary. When trying to run it cried missing libtinfo.so, symlink to libncurses did the trick:
Code:

cd /lib
sudo ln -s libncurses.so.5 libtinfo.so.5

At this point 'run' managed to start adom with only maemo libs I believe. Probably won't help, but maybe worth a shot

lma 2012-10-07 13:21

Re: Ancient Domains of Mystery
 
Ah, so it's dynamically linked but bundled with its own private libs? Let's see...

Nope:
Code:

$ /lib/ld-2.5.so --library-path ./libs ./adom
./adom: error while loading shared libraries: ld-linux-armhf.so.3: cannot open shared object file: No such file or directory

Quote:

Originally Posted by szopin (Post 1277600)
Make sure ld-2.5.so is so named in diablo, (running 'ls /lib/ld*' should tell you that, change the last line accordingly) libs folder can be deleted at this point, so only files needed are run script and adom raspbian binary. When trying to run it cried missing libtinfo.so, symlink to libncurses did the trick:

Getting farther, but still no go:

Code:

$ /lib/ld-2.5.so  ./adom
./adom: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./adom)


szopin 2012-10-07 14:06

Re: Ancient Domains of Mystery
 
I was getting that lix-armhf missing when trying to mix provided libs with -2.5 (overwriting 2.13 with 2.5 was my first attempt) that GLIBC_2.7 looks like the final nail though, unless diablo kernel is just new enough to run a bit newer glibc?

szopin 2012-10-07 14:36

Re: Ancient Domains of Mystery
 
I've uploaded N900's libc here: http://depositfiles.com/files/dxz1kuz1i

You could try unpacking it in the directory where run script and binary are and do:
Code:

export LD_LIBRARY_PATH=.
./run

Most likely you'll end up with the fatal kernel too old message, but I'm out of ideas at this point :(

lma 2012-10-07 14:57

Re: Ancient Domains of Mystery
 
Quote:

Originally Posted by szopin (Post 1277618)
unless diablo kernel is just new enough to run a bit newer glibc?

Or maybe figure out what symbols (if any besides 'GLIBC_2.7') it needs out of glibc 2.7 and give them those in a separate lib.

Quote:

Originally Posted by szopin (Post 1277631)
I've uploaded N900's libc here:

I don't think that will help (even if it starts, it will probably crash due to the different instruction sets).

But... since you mention it, Fremantle runs 2.5 too, right? Let's have a look... Apparently Nokia patched it to also report support for 2.7, debian/patches/eventfd.diff should apply easily on the Diablo version too.

Of course this is all academic, it would be much easier than either of the above to just rebuild adom for Diablo :-)

szopin 2012-10-07 15:07

Re: Ancient Domains of Mystery
 
Closed source, not gonna happen. When you say Nokia patched it to report 2.7 - any way to trick it outside of patching libc (not even sure how to do that)? If it is just a patch in reporting, did they also patch something in to return kernel too old msg? The above approach shouldn't crash anything except adom, as Addison managed to run quite a few console-only N900 binaries on his N800, was hoping N900 libc wouldn't complain (vs raspbian 2.13 which is a lot newer)

lma 2012-10-07 15:27

Re: Ancient Domains of Mystery
 
Quote:

Originally Posted by szopin (Post 1277652)
Closed source, not gonna happen.

Ah, so it is :-(

Quote:

When you say Nokia patched it to report 2.7 - any way to trick it outside of patching libc (not even sure how to do that)?
Might be doable. The adom binary seems to require only a couple 2.7 functions:
Code:

$ readelf -a adom  | grep @GLIBC_2.7
    18: 0000980c    0 FUNC    GLOBAL DEFAULT  UND __isoc99_sscanf@GLIBC_2.7 (4)
    74: 000097d0    0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (4)

so something like this could work.

Quote:

If it is just a patch in reporting, did they also patch something in to return kernel too old msg?
No, the Fremantle libc is just 2.5 plus a few patches, it doesn't need a newer kernel for anything.

Quote:

The above approach shouldn't crash anything except adom, as Addison managed to run quite a few console-only N900 binaries on his N800, was hoping N900 libc wouldn't complain (vs raspbian 2.13 which is a lot newer)
Just tried it:

Quote:

$ LD_PRELOAD=./libc-2.5.so /lib/ld-2.5.so ./adom
Illegal instruction (core dumped)

szopin 2012-10-07 15:43

Re: Ancient Domains of Mystery
 
Quote:

Originally Posted by lma (Post 1277662)
Ah, so it is :-(

Sadly, yes. Jochen from the adom team said he might look into making maemo version (they have amiga/raspbian and are pretty happy with fringe compatibility) but he didn't have the hardware. I offered to lend him my spare N900 for testing, but it seems raspian binary is fine for fremantle and this would not help diablo :(

Quote:

Might be doable. The adom binary seems to require only a couple 2.7 functions:
Code:

$ readelf -a adom  | grep @GLIBC_2.7
    18: 0000980c    0 FUNC    GLOBAL DEFAULT  UND __isoc99_sscanf@GLIBC_2.7 (4)
    74: 000097d0    0 FUNC    GLOBAL DEFAULT  UND __isoc99_fscanf@GLIBC_2.7 (4)

so something like this could work.
Interesting... Would this require diablo-toolchain, or can this possibly be done on N900?

Quote:


Just tried it:
Hmmm, did they possibly update ld.so while faking libc reporting? I can upload N900's ld if that might help

szopin 2012-10-07 15:52

Re: Ancient Domains of Mystery
 
Just checked some history posts of Addison fighting with adom, glibc-2.7 showed up even when trying to qemulate 10 year old adom binary (1.1.1, yeah adom's been resurrected after a decade), so it was definitely qemu crying fould, not the adom binary at that point, one solution would be getting diablo qemu binary if someone has access to diablo tool-chain


All times are GMT. The time now is 13:55.

vBulletin® Version 3.8.8