zondag 7 mei 2017

So what about libnsxs.so..

Let's dig a bit deeper into libnsxs.so

Without having the box, it's difficult to see what it actually does, and where the symlink in /tmp/libnsxs.so actually points to. But we can deduct it.

Step 1, a look at /usr/emu/runGame
rm -f /tmp/libnsxs.so
cp /tmp/configfile /usr/sd1/configfile.last.$GAME; sync
EMU0=`od -t d -N 1 -j 538 /tmp/configfile |  head -n 1 | awk '{print $2}`
EMU=$(( $EMU0 & 15 ))
In case of pb4s configfile i have on the dump, the value is '0'. which means
if [ $EMU -eq  0 ]; then
ln -sf /lib/$GAME/libnsxas.so    /tmp/libnsxs.so
So we need to look a libnsxas.so.

This is a copy of Final Burn with a menu tacked in front of it. Could be a heavily modded FBA since most ports have some sort of menu, like for example the Xbox 360 version(s).

Game list

Look at 0x005EE4F0 in a hex editor. Or search for "END_OF_THE_LIST"..
It should be possible to inject a new gamelist or at least edit existing entries, once we figure out the format. Perhaps it is similar to the older list.dat from PB3.

How the emu is switched is unclear, it would need to write configfile and exit out to a new instance.
It has to switch. libnsxas.so does not contain drivers for say, galaga or galaxian.

More soon :)

0 reacties:

Een reactie posten

Aanmelden bij Reacties posten [Atom]

<< Homepage