General TC > General TC Talk

Projects?

(1/3) > >>

Sliver X:
I recently started playing with Tiny Core 7.1 after not having used it since the 5.x series (To build a graphical recovery partition system for a bunch of Windows 7 machines I took care of at a previous job), and am pretty impressed so far. I initially started building a dedicated emulator setup from the minimal Core setup and ended up making a fairly functional (For the bulk of what I do on a daily basis, at least) general desktop:



For emulation I compiled and built a TCZ for Mednafen 0.9.38.7 and AdvanceMenu (An emulator frontend) and also the compositor Compton.

AdvanceMenu is tied to a shell script I wrote for my Ubuntu install (Hence why there's entries for emulators no available for TC currently) that allows running ROMs directly from 7zip files and other things:


--- Code: ---#Multi-Emulator Launcher Script
###############################
#2016 Sliver X


#DECOMPRESSION FUNCTIONS: 7zip, RAR and Zip
###########################################

#Get File Extension of file passed to script.
ExtensionTest=$(echo $1 | sed 's/.*\.//')

#Check if it's compressed. If so, decompress to a temp directory.
case $ExtensionTest in

#It's a 7zip!
7z)
mkdir ~/romtemp
7z x "$1" -o"$HOME/romtemp"
;;

#It's a RAR!
rar)
mkdir ~/romtemp
rar x "$1" "$HOME/romtemp"
;;

#It's a Zip!
zip)
mkdir ~/romtemp
unzip "$1" -d "$HOME/romtemp"
;;

#It's not compressed in a method we care about!
*)
NotCompressed=$(echo "1")
;;

#End CASE test.
esac

#DETERMINE ROM TYPE
###################

#Check if the called ROM was decompressed by our script or not.
case $NotCompressed in

#The ROM was not decompressed by us. Assign "$1" to $ROM and make $ROMPath blank (Not needed).
1)
ROMPath=$(echo "")
ROM=$(echo "$1")
;;

#We decompressed the ROM. Go to temp directory and set is as $ROM and $ROMPath as our temp directory.
*)
cd ~/romtemp
for ROM in *.*
do
ROMPath=$(echo ~/romtemp/)
done
;;

#End CASE statement.
esac

#RUN ROM
########

#Strip the ROM name to the extension, then load it into a variable.
ROMExt=$(echo $ROM | sed 's/.*\.//')

#We'll test the extension, and load the ROM with the appropriate emulator if it's recognized.
case $ROMExt in

a26)
stella "$ROMPath$ROM"
;;

nds)
desmume "$ROMPath$ROM"
;;

cue)
mednafen "$ROMPath$ROM"
;;

pbp)
wine /home/sliverx/epsxewin/epsxe.exe -nogui -loadbin "$ROMPath$ROM"
;;

fds)
mednafen "$ROMPath$ROM"
;;

gb)
mednafen "$ROMPath$ROM"
;;

gba)
mednafen "$ROMPath$ROM"
;;

gbc)
mednafen "$ROMPath$ROM"
;;

gg)
mednafen "$ROMPath$ROM"
;;

lnx)
mednafen "$ROMPath$ROM"
;;

nes)
mednafen "$ROMPath$ROM"
;;

ngc)
mednafen "$ROMPath$ROM"
;;

cso)
PPSSPPSDL "$ROMPath$ROM"
;;

ngp)
mednafen "$ROMPath$ROM"
;;

pce)
mednafen "$ROMPath$ROM"
;;

sgb)
mednafen "$ROMPath$ROM"
;;

sms)
mednafen "$ROMPath$ROM"
;;

unf)
mednafen "$ROMPath$ROM"
;;

ws)
mednafen "$ROMPath$ROM"
;;

wsc)
mednafen "$ROMPath$ROM"
;;

32x)
fusion "$ROMPath$ROM"
;;

iso)
fusion "$ROMPath$ROM"
;;

bin)
mednafen "$ROMPath$ROM"
;;

a52)
mess a5200 -cart "$ROMPath$ROM"
;;

a78)
mess a7800 -cart "$ROMPath$ROM"
;;

col)
mess coleco -cart "$ROMPath$ROM"
;;

vec)
mess vectrex -cart "$ROMPath$ROM"
;;

z64)
mupen64plus "$ROMPath$ROM"
;;

v64)
mupen64plus "$ROMPath$ROM"
;;

smc)
mednafen "$ROMPath$ROM"
;;

fig)
mednafen "$ROMPath$ROM"
;;

sfc)
mednafen "$ROMPath$ROM"
;;

#End CASE statement.
esac

#Cleanup
########

#Check if we decompressed a ROM in the beginning
case $NotCompressed in

#We didn't decompress a ROM, so nothing to clean up! Quit.
1)
exit
;;

#We did. Delete temp directory and quit.
*)
rm -rf ~/romtemp
exit
;;

#End Case statement.
esac

--- End code ---

As far as the OS iteslf goes, the list of packages I installed is as follows:


--- Code: ---ntfs-3g.tcz
nvidia-352.63-4.2.9-tinycore.tcz
Xorg-7.7.tcz
alsa-modules-4.2.9-tinycore.tcz
alsa.tcz
alsa-config.tcz
jwm.tcz
aterm.tcz
dosbox.tcz
mednafen.tcz
p7zip-full.tcz
compton.tcz
advancemenu.tcz
pcmanfm.tcz
xarchiver.tcz
mtpaint.tcz
iptables.tcz
firefox-ESR.tcz
nano.tcz
volumeicon.tcz
xchat.tcz
gftp.tcz

--- End code ---

The re-rolled initrd, TCZs and mydata.tar.gz totals about 269MB.

I started running into memory allocation errors with mount when trying to add the last bits of this: It seemed to have something to do with the 196(!) TCZ mounts in place. I directly integrated all the library TCZs into my initrd and was able to knock this down to 100 and no longer experience it.

ALSA initially gave me trouble as it would start my onboard audio muted. I unmuted it and turned the volume up via alsamixer then ran sudo alsactl --file /usr/local/etc/asound.state store, added that file to the Include list in the backup tool then added alsactl --file /usr/local/etc/asound.state restore to /opt/bootlocal.sh

OpenGL is the only thing that gave and is still giving me a headache: No matter what version I tried of the nVidia driver in the repositories I couldn't get GLX extensions to load, preventing Mednafen from working. I finally tracked down the issue to some symlinks under /usr/local/lib pointing to .so files from libGL instead of their nVidia equivalents. Adding the following to bootlocal.sh fixed it:


--- Code: ---rm -f /usr/local/lib/libGL.so
rm -f /usr/local/lib/libGL.so.1
rm -f /usr/local/lib/libGL.so.1.2.0

ln -sf /tmp/tcloop/nvidia-352.63-4.2.9-tinycore/usr/lib/libGL.so /usr/local/lib/libGL.so
ln -sf /tmp/tcloop/nvidia-352.63-4.2.9-tinycore/usr/lib/libGL.so.1 /usr/local/lib/libGL.so.1
ln -sf /tmp/tcloop/nvidia-352.63-4.2.9-tinycore/usr/lib/libGL.so.1.2.0 /usr/local/lib/libGL.so.1.2.0

--- End code ---

However, I can't get smooth scrolling working despite every xorg.conf tweak I can find. Compton also doesn't really seem to help either. It's almost like vsync isn't working at all.

Anyway, anyone else recently worked on a project that they would like to show? I'd be most interested in seeing what others are doing with Tiny Core.

coreplayer2:
I'm curious which Nvidia modules   extension gave you the symlink issue.   Because without the older hardware I couldn't test all the NVIDIA extensions thoroughly however those NVIDIA extension I use and have tested work flawlessly




Sent from my iPhone using Tapatalk

coreplayer2:
One area of cocern is if you're unpackng extensions into your own initrd but haven't considered handling of the extensions startup scripts then many extentions are likely to give problems like the nvidia module symlinks which are created by the startup script


Sent from my iPhone using Tapatalk

curaga:
This old thread lists some:
http://forum.tinycorelinux.net/index.php?topic=16464.0

Sliver X:

--- Quote from: coreplayer2 on June 04, 2016, 02:14:24 AM ---I'm curious which Nvidia modules   extension gave you the symlink issue.   Because without the older hardware I couldn't test all the NVIDIA extensions thoroughly however those NVIDIA extension I use and have tested work flawlessly

--- End quote ---

nvidia-352.63-4.2.9-tinycore.tcz, driving a GeForce 750 Ti


--- Quote from: coreplayer2 on June 04, 2016, 02:42:31 AM ---One area of cocern is if you're unpackng extensions into your own initrd but haven't considered handling of the extensions startup scripts then many extentions are likely to give problems like the nvidia module symlinks which are created by the startup script

--- End quote ---

The issue manifests with the stock initrd and loading everything as TCZs as well.

I'm loading the nVidia modules before Xorg, per what it states in the .info file for it:

      Install onboot
      This extension must load before Xorg

Is that right?


--- Quote from: curaga on June 04, 2016, 02:42:56 AM ---This old thread lists some:
http://forum.tinycorelinux.net/index.php?topic=16464.0

--- End quote ---

Thank you.

Navigation

[0] Message Index

[#] Next page

Go to full version