freeES - Free Entertainment System




freeES ( Free Entertainment System )





The goal of freeES or Free Entertainment System is to be a cross platform 'virtual game console', that can play games written for it. It includes a package management system,font rasterizer, and C++ plugin support for games. You can upgrade your system and update your dashboard online. This app is in very early stages of production. The base system is complete, now I need to write some games for it. Also this is a beta so there are most likely bugs, if you find any please email me jared@lostsidedead.biz.

Th FreeES SVN is located at: [ FreeES svn ]

up to date source tarball: here

and the RSS Feed


Straight from the SVN:


Sun, 22 Jun 2008 20:59:04 +0100
some changes, const char * needed instead of char * ...

Rev 131 - jared (3 file(s) modified)
some changes, const char * needed instead of char * seems to be the problem

Default Plugins included:

Dash 1.0 - " version 1.0 of the freeES dashboard "
Update 1.0 - " a update tool to update the dash "
Settings 1.0 - " a settings tool to allow you to edit app settings "
*NEW* GUI Installer 1.0 - " a tool to install and remove mxp packages "
*NEW* Command Line 1.0 - " a command line where you type commands "
*NEW* MXL Viewer - Supports Online MXL Pages

Builds for FreeES-0.6.2 including new Masterpiece:


Windows Build
Playstation 3 Linux Build






UPDATE

I have spent some time the other day writing a game demo for freeES 0.6.2, its just a recode
of MasterPiece, (yeah I know agian!@@!) but I almost got the ps3 controller working the way
it needs to for the program.


Makefiles are now seperated into three seperate types

.ppu (ppu-g++) .mingw ( i586-mingw32msvc-g++ ) Make file (g++)

the file Makefile with no extension trys to use the current platform


Make sure all cross compilers have all required headers and librarys
you may need to change the path in some off the Makefiles
they use the default directorys of kbuntu ppu and spu cross compiler packages



once you got all that figured out




a shortcut I use to build all platforms packages for release



$ make clean && make -f Makefile.ppu package && make clean && make -f Makefile.mingw package && make clean && make package


then you will have three new tar.gz files in your directory


lES.tar.gz - regular Makefile no extension current platform liinux-gnu
lES-win32.tar.gz - mingw32 Makefile used built dll and exe for windows package correctly
lES-ps3.tar.gz - using ppu-g++ sdl,libpng,libz contains working program






A screen shot of MasterPiece ES is below.








UPDATE
using the cell sdk, I have created a release of freeES for gentoo-2.6.23-ps3 that will run 'out of the box', as long as you installed from the stage4 image. The only required librarys are the SDL libs, all other librarys in this release were staticly compiled into the app or in the shared objects in the root folder of the applications directory. Just download this file: lES-ps3.tar.gz and issue the following command:

$ tar -xzvf lES-ps3.tar.gz
$ cd es
$ ./freeES
or you can build your own from scratch.



UPDATE
Recently I installed the Cell SDK, so I created some Makefiles, for freeES to cross compile to the PS3 instead of having to copy the source to the PS3 and compile that way. The extension of the Makefiles is .ppu and are within all areas of the source tree. To compile with the ppu cross compiler first you must compile (static recommended) libmxl libz libpng and SDL (non static) SDL libs come with gentoo stage4 image for those of us who use that and im sure it comes with yellow dog and fedora. Its fairly exciting I have been playing around with using spe threads, breaking up data into pieces then passing it to multiple threads to proccess. I am planning on using this technology to improve the application. by the way once you got all the required libs compiled with your cross compiler (You may have to edit the Path of the cellsdk in the Makefiles if your not using the ones that are downloadable from ubuntu ) all you have to do is:

$ make -f Makefile.ppu package
this will create a package of the application and a useable directory to try on your PS3.




UPDATE:
Flaws in the Makefile presented themselfs when I did a reinstall of gentoo on my PS3 Upgrading from 2.6.16-ps3 to 2.6.23-ps3 I noticed if you didnt have SDL_mxf installed sometimes the build would complain about SDL_mxf.h not being there. This was not the way I designed mxf to integrate into the program. It was a shared object in a folder within the tree called mxf and needed a CXXFLAG pointing to the location of SDL_mxf.h. This has been fixed. Another thing is for those of you who have SDL installed into /usr instead of /usr/local simply add a soft link to sdl-config in /usr/local/bin

$ cd /usr/local/bin
$ ln -sf /usr/bin/sdl-config sdl-config


also updated the install script for freeES for the ps3 in the ps3linux section of the SVN. now will work with 2.6.23-ps3 as long as you do the above steps.
if your not online with your ps3 you can download this offline version of the build script. here




UPDATE:
build 0.6.1 for x86 Ubuntu Linux is now avialable for download. Contains all available freeES packages as well as the package manager. This is just a demo, the final application will prob look completely different. Download this if your just interested in seeing the progress the app has made since the last deb release:
Instructions:

Donwload these three debian packages:
http://www.lostsidedead.biz/freeES/deb/libmasc-0.1-i386-gusty.deb
http://www.lostsidedead.biz/freeES/deb/libmxl-0.1-i386-gusty.deb
http://www.lostsidedead.biz/freeES/deb/freeES-0.6.1-i386-gusty.deb

download all three files into a emtpy directory and issue the following commands:
$ cd ( directory containing deb files )
$ sudo dpkg -i libmasc*deb
$ sudo dpkg -i libmxl*deb
$ sudo dpkg -i free*deb
$ sudo ldconfig
then just type:
$ freeES
and the app should appear





UPDATE:
build 0.6.1 for Windows XP/Vista is now available for download for those of you without the proper compilers. Comes with all available packages built in and the online module works unlike in 0.6 for win32.
http://www.lostsidedead.biz/freeES/FreeES-0.6.1-win32.zip

Simply extract, then run freeES.exe
Screen Shots







UPDATE:
New build script for the Playstation 3 is now out for download. It is located on the SVN and you can download it with this command

$ svn co svn://lostsidedead.com/ps3linux

or view the code on the svn the project is located @ / ps3linux
build script will most likely work for other platforms to. It also contains a example build, I compiled on my PS3 and tested.

Heres a note for those who already have it compiled and want to run roadkill but its slow.
$ ./freeES --width=480 --height=272 --resize=false --exec=plugins/roadkill/road.lsd

Heres the readme:

FreeES ( Free Entertainment System )

build script readme

Requirements to compile

binutils
gcc4
g++
gnu make
subversion
wget
automake
autoconf
autoheader
libtool
libstdc++6
libc6


Info:

This script will download and build freeES ( Free Entertainment System )
it is meant for linux distro's running on Playstation 3, but should work
for other systems. It will give you a fresh build . Up to date newest version
from the SVN, with all the programs bells and whistles so far.
It is designed for  SDTV 's, not HDTV's. If you have a HDTV and you run the program
it may run sluggish if so you can call the program from the command line and turn off
the automatic resize function that slows it to a halt.

$ ./freeES --width=640 --height=480 --resize=false

however if you are running a SDTV the resize function should be turned on since the resoultion
is so small you will not notice any slowdown. Unfourtnely sdl-stretch dosent support
the opcodes for ppc64 so I cant use that to speed things up, so ill have to work
on my own stretch code, however I doubt it will ever be as fast  as sdl-stretch.

if your system ever  crashes you can always use the recovery console

./freeES --width=640 --height=480 --resize=false --exec=plugins/console/Console.lsd

then use mxp within that console to reinstall the dash from a mxp file
or fix whatever problems are going on in the system.

if push comes to shove you can always use the package manager within the system
which is called mxp-i

examples of use of mxp-i

mxp-i --install=file.mxp
mxp-i --remove=file

etc.

This program is still under heavy development, and is just for a learning experience
if you are interested in helping email jared@lostsidedead.biz

How to use:


login as root

if you dont know what SDL is or dont have SDL then you should call the script like this

./ps3_freeES.sh

if you already have SDL and the dev librarys then you can call the script like this

./ps3_freeES.sh --no-sdl


it will first download libmxl and libmasc configure compile install
then download freeES call the custom Makefile
and build you a working directory and tar.gz file of the application




UPDATE:
Beta Version is at 0.6 today you can grab the windows prebuilt binarys at the following url:

http://lostsidedead.biz/freeES/FreeES-0.6-windows.zip
It includes a lot of bug fixes, new code and alot of time and effort. If your feeling lucky try compiling from source once you have all the dependecys all you have to do is type

$ make package


and a whole installation will be created for you from the files you just compiled.
MXL is so new ( i just made it up a few days ago ) that it cant really be used for much. However I am going to keep working on it.
Also im working towards using proper automake and autoconf compilation of the librarys versus -shared.
whole lot of thinking to do
well.. enjoy.



UPDATE:
*Important* update today, I coded a Console with a built it interpreted mxp package mangaer to manage packages directly in the program instead of after you exit. Also you can set the color, font, and background of the console with a few simple commands. Im hoping to add functionality of other programs into the console. For most users you can just update your install with the 0.5 mxp files for the http://lostsidedead.biz/freeES/mxp , however I made a special archive with all the packages nessicary already installed and the program ready to use for windows. Just unzip, and execute freeES.exe

Screen shot of console



[ download freeES 0.5 for windows ]




UPDATE:
New game demo released, roadkill2 its on the svn and in the mxp directory.
all the garbage from original version was stripped. Only keyboard is supported right now. pretty lame demo if you ask me. Yet it shows how freeES can be used, and its code shows how to port exisiting SDL applications to freeES.
save the file roadkill2-0.1-generic.mxp to the packages directory located in your freeES directory. Then run the Package manager from within the dashboard to install and uninstall the package.


UPDATE:
I recently upgraded from Kubuntu 7.04 to 7.10 gusty, I have created a .deb package of the current release of freeES for i386 computers running gusty. Its easy to use and install: Download it here: freeES-0.4-gusty-i386.deb

to install simply:
$ sudo dpkg -i freeES-0.4-gusty-i386.deb




UPDATE:
A New platform is now officaly supported on the freeES, it is the Playstation 3.
Playstation 3 Linux of course, but its just as cool. Binary packages for the ps3 have been created along with a install script. You can download them @ http://lostsidedead.biz/freeES/freeES-0.4-ps3.tar.gz
If you are having trouble with linking issues, try building the program with this build script ..
A New package is available: roadkill2-1.0-ps3.mxp
My stretch algorithim is not that fast , to run this game in a playable mode, use the following command when starting the program:
$ ./freeES --width=480 --height=272 --resize=false


Note:
Please read the README file for instructions on installation and how to use the program
The Playstation 3 SixAxis Controller is supported, if in USB mode.



UPDATE:
Update to 0.4 is a large update. Now the linux version is included in the packages and the package manager will install the right ones based on your OS. There is also a GUI Installer. This program will allow you to add programs and games to your install, in a simple fashion. It may still have bugs since it is still fairly new code. The install process for linux is straight forward as well, simply extract, change permissions on the mxp-i package manager and install script, and invoke the install script. Even more advanced instructions are available in the readme.txt

Download: freeES-0.4-generic.zip



UPDATE:
Update to 0.3 new features added like exec a plugin without using the dashboard instead from the command line. The --exec flag for use when calling the freeES executable. 0.3 mxp-i now manages menu information, install data, and can do more than just add programs it can remove them as well. When the packages are installed it builds a tiny registry to store the data for each package installed. There are more packages available now, and I will try to create more as soon as I get free time. You can add these packages to your installation using the mxp-i (MX Package Installer) using the command line. Soon there will be a visual package manager included with the dashboard.
If you wish to download the packages seperately and install them yourself by hand then visit the following url: http://lostsidedead.biz/freeES/mxp


Some Ideas for some plugins:


- complety cross platform
- Console with on screen keyboard or standard keyboard
- Online package search and installer
- GUI's for command line emulators
- a script language module for a custom language
- script language modules for other languages, like python, perl
- update the dashboard's menu, more effects and more smooth transination between menu screens
- New mxf font's, more detailed or use freetype.
- loading screen for load times versus static text
- any other ideas will be welcome > jared@lostsidedead.biz

-

Addon Packages Availabe so Far

How to install a package:
first go to the directory of where you installed freeES in command prompt.
type:
mxp-i.exe --install=pathtomxp

install results will appear
or you could type
mxp-i.exe --install "C:\path\to\test.mxp"
ethier way will work fine
How to remove packages:



To remove a package use the --remove flag:

mxp-i.exe --remove=packagename



Command Line Arugments for freeES.exe

--full
ethier yes or no, yes means run in fullscreen.

--resize
whether or not to use a resize algorithim to display if geometry is different than default

--width=
set width by pixels

--height=
set height by pixels



Controls:

Player 1 defualts to use the keyboard if no joystick is connected. Arrow keys A, and S, etc.

How to install

If you already know how to use mxp-i you can skip this. You have to ways to install freeES. You can ethier unpack the stage MXP's. Or you can use the included batch script in the all together download to install them all at once.
to do this simply download the zip file
extract
run build.bat
go into freeES directory
run freeES.exe
have fun!

Screen Shots





- Jared Bruni