diff options
author | Max Horn | 2006-07-06 21:44:48 +0000 |
---|---|---|
committer | Max Horn | 2006-07-06 21:44:48 +0000 |
commit | 1d8d9f5510dc5f574e926bd6fadb9d20337daede (patch) | |
tree | 5cdcf6c8a233159776be9d90f3f39885222f65eb /backends/platform/symbian | |
parent | 9269ebe9f5a281f452594f1e8108e31c88a398fb (diff) | |
download | scummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.tar.gz scummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.tar.bz2 scummvm-rg350-1d8d9f5510dc5f574e926bd6fadb9d20337daede.zip |
Moving remaining platform/backends code, as previously threatened
svn-id: r23380
Diffstat (limited to 'backends/platform/symbian')
75 files changed, 5143 insertions, 0 deletions
diff --git a/backends/platform/symbian/.placeholder b/backends/platform/symbian/.placeholder new file mode 100644 index 0000000000..dcf4d34a62 --- /dev/null +++ b/backends/platform/symbian/.placeholder @@ -0,0 +1 @@ +>> SumthinWicked *grins* <<
\ No newline at end of file diff --git a/backends/platform/symbian/AdaptAllMMPs.pl b/backends/platform/symbian/AdaptAllMMPs.pl new file mode 100644 index 0000000000..48b100b2ee --- /dev/null +++ b/backends/platform/symbian/AdaptAllMMPs.pl @@ -0,0 +1,382 @@ + +use Cwd; + +$buildDir = getcwd(); +chdir("../../"); + +# list of project files to process +@mmp_files = ( + "mmp/scummvm_scumm.mmp", + "mmp/scummvm_queen.mmp", + "mmp/scummvm_simon.mmp", + "mmp/scummvm_sky.mmp", + "mmp/scummvm_gob.mmp", + "mmp/scummvm_saga.mmp", + "mmp/scummvm_kyra.mmp", + "mmp/scummvm_sword1.mmp", + "mmp/scummvm_sword2.mmp", + "mmp/scummvm_lure.mmp", + "mmp/scummvm_cine.mmp", + "mmp/scummvm_agi.mmp", + "S60/ScummVM_S60.mmp", + "S60v3/ScummVM_S60v3.mmp", + "S80/ScummVM_S80.mmp", + "S90/ScummVM_S90.mmp", + "UIQ2/ScummVM_UIQ2.mmp", + "UIQ3/ScummVM_UIQ3.mmp" +); + +# do this first to set all *.mmp & *.inf files to *.*.in states +ResetProjectFiles(); + +print " +======================================================================================= +Updating slave MACRO settings in MMP files from master 'scummvm_base.mmp' +======================================================================================= + +"; + +# do this first so we have @DisableDefines for correct inclusion of SOURCE files later +UpdateSlaveMacros(); + +print " +======================================================================================= +Preparing to update all the Symbian MMP project files with objects from module.mk files +======================================================================================= + +"; + +my @section_empty = (""); # section standard: no #ifdef's in module.mk files +my @sections_scumm = ("", "DISABLE_SCUMM_7_8", "DISABLE_HE"); # special sections for engine SCUMM + +# files excluded from build, case insensitive, will be matched in filename string only +my @excludes_snd = ( + "mt32", + "fluidsynth", + "i386", + "part.cpp", + "partial.cpp", + "partialmanager.cpp", + "synth.cpp", + "tables.cpp", + "freeverb.cpp" +); +my @excludes_gui = ( +); + +#arseModule(mmpStr, dirStr, ifdefArray, [exclusionsArray]) +ParseModule("_base", "base", \@section_empty); # now in ./TRG/ScummVM_TRG.mmp, these never change anyways... +ParseModule("_base", "common", \@section_empty); +ParseModule("_base", "gui", \@section_empty, \@excludes_gui); +ParseModule("_base", "graphics", \@section_empty); +ParseModule("_base", "sound", \@section_empty, \@excludes_snd); + +chdir("engines/"); +ParseModule("_scumm", "scumm", \@sections_scumm); +ParseModule("_queen", "queen", \@section_empty); +ParseModule("_simon", "simon", \@section_empty); +ParseModule("_sky", "sky", \@section_empty); +ParseModule("_gob", "gob", \@section_empty); +ParseModule("_saga", "saga", \@section_empty); + +ParseModule("_kyra", "kyra", \@section_empty); +ParseModule("_sword1", "sword1", \@section_empty); +ParseModule("_sword2", "sword2", \@section_empty); +ParseModule("_lure", "lure", \@section_empty); +ParseModule("_cine", "cine", \@section_empty); +ParseModule("_agi", "agi", \@section_empty); +print " +======================================================================================= +Done. Enjoy :P +======================================================================================= +"; + +################################################################################################################## +################################################################################################################## + +# parses multiple sections per mmp/module +sub ParseModule +{ + my ($mmp,$module,$sections,$exclusions) = @_; + my @sections = @{$sections}; + my @exclusions = @{$exclusions}; + + foreach $section (@sections) + { + CheckForModuleMK($module, $section, @exclusions); + UpdateProjectFile($mmp, $module, $section); + } +} + +################################################################################################################## + +# parses all module.mk files in a dir and its subdirs +sub CheckForModuleMK +{ + my ($item,$section,@exclusions) = @_; + + # if dir: check subdirs too + if (-d $item) + { + #print "$item\n"; + + opendir DIR, $item; + #my @Files = readdir DIR; + my @Files = grep s/^([^\.].*)$/$1/, readdir DIR; + closedir DIR; + + foreach $entry (@Files) + { + CheckForModuleMK("$item/$entry", $section, @exclusions); + } + } + + # if this is a module.mk file + if (-f $item and $item =~ /.*\/module.mk$/) + { + my $sec = ""; + my $ObjectsSelected = 0; + my $ObjectsTotal = 0; + + print "$item for section '$section' ... "; + + open FILE, $item; + my @lines = <FILE>; + close FILE; + + my $count = @lines; + print "$count lines"; + + A: foreach $line (@lines) + { + # found a section? reset + if ($line =~ /^ifndef (.*)/) + { + $sec = $1; + } + # found an object? Not uncommented! + if (!($line =~ /^#/) && $line =~ s/\.o/.cpp/) + { + # handle this section? + if ($sec eq $section) + { + $ObjectsTotal++; + + $line =~ s/^\s*//g; # remove possible leading whitespace + $line =~ s/ \\//; # remove possible trailing ' \' + $line =~ s/\//\\/g; # replace / with \ + chop($line); # remove \n + + # do we need to skip this file? According to our own @exclusions array + foreach $exclusion (@exclusions) + { + if ($line =~ /$exclusion/i) + { + print "\n ! $line (excluded, \@exclusions[$exclusion])"; + next A; + } + } + + # do we need to skip this file? According to MACROs in .MMPs + foreach $DisableDefine (@DisableDefines) + { + if ($DisableDefine eq $section && $section ne '') + { + print "\n !$line (excluded, MACRO $DisableDefine)"; + next A; + } + } + + $ObjectsSelected++; + #print "\n $line"; + $output .= "SOURCE $line\n"; + } + } + } + print " -- $ObjectsSelected/$ObjectsTotal objects selected\n"; + } +} + +################################################################################################################## + +# update an MMP project file with the new objects +sub UpdateProjectFile +{ + my ($mmp,$module,$section) = @_; + my $n = "AUTO_OBJECTS_".uc($module)."_$section"; + my $a = "\/\/START_$n\/\/"; + my $b = "\/\/STOP_$n\/\/"; + my $updated = " Updated @ ".localtime(); + my $name; + my @mmp_files_plus_one = @mmp_files; + unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; + + foreach $name (@mmp_files_plus_one) + { + my $file = "$buildDir/$name"; + + open FILE, "$file"; + my @lines = <FILE>; + close FILE; + + my $onestr = join("",@lines); + + if ($onestr =~ /$n/) + { + + print " - $name @ $n updating ... "; + + $onestr =~ s/$a.*$b/$a$updated\n$output$b/s; + open FILE, ">$file"; + print FILE $onestr; + close FILE; + + print "done.\n"; + } + } + + $output = ""; +} + +################################################################################################################## + +sub UpdateSlaveMacros +{ + my $updated = " Updated @ ".localtime(); + + my $name = "mmp/scummvm_base.mmp"; + my $file = "$buildDir/$name"; + print "Reading master MACROS from backends/symbian/$name ... "; + + open FILE, "$file"; + my @lines = <FILE>; + close FILE; + my $onestr = join("",@lines); + + my $n = "AUTO_MACROS_MASTER"; + my $a = "\/\/START_$n\/\/"; + my $b = "\/\/STOP_$n\/\/"; + $onestr =~ /$a(.*)$b/s; + my $macros = $1; + + my $libs_first = "\n// automagically enabled static libs from macros above\n"; + my $libs_second = "STATICLIBRARY scummvm_base.lib // must be above USE_* .libs\n"; + my $macro_counter = 0; + my $macros2 = "\n"; # output for in *.mmp MACROS section + my $projects = "\n..\\mmp\\scummvm_base.mmp\n"; # output for in BLD.INF projects section + + foreach $line (split("\n", $macros)) + { + # do we need to add a static .lib? + if ($line =~ /^.*MACRO\s*([0-9A-Z_]*)\s*\/\/\s*LIB\:(.*)$/) + { + my $macro = $1; my $lib = $2; + + # this macro enabled? then also add the .lib + if ($line =~ /^\s*MACRO\s*$macro/m) + { + # these are the USE_ libs + $libs_second .= "STATICLIBRARY $lib\n" if ($macro =~ /^USE_/); + } + else + { + # these are the non DISABLED_ libs + $libs_first .= "STATICLIBRARY $lib\n" if ($macro =~ /^DISABLE_/); + + # add projects for BLD.INF's + my $projectname = substr("$lib",0,-4); + $projects .= "..\\mmp\\$projectname.mmp\n" if ($macro =~ /^DISABLE_/); + } + $macro_counter++; + } + # not commented out? then add the macro to output string + if ($line =~ /^\s*MACRO\s*([0-9A-Z_]*)\s*/) + { + my $macro = $1; + $macros2 .= "$line\n"; + push @DisableDefines, $macro; # used in CheckForModuleMK()!! + } + } + + print "$macro_counter macro lines.\n"; + + $n = "AUTO_MACROS_SLAVE"; + $a = "\/\/START_$n\/\/"; + $b = "\/\/STOP_$n\/\/"; + + $m = "AUTO_PROJECTS"; + $p = "\/\/START_$m\/\/"; + $q = "\/\/STOP_$m\/\/"; + + foreach $name (@mmp_files) + { + $file = "$buildDir/$name"; + $fileBLDINF = $buildDir .'/'. substr($name, 0, rindex($name, "/")) . "/BLD.INF"; + print "Updating macros in $file ... "; + #print "Updating macros in backends/symbian/$name ... "; + + open FILE, "$file"; @lines = <FILE>; close FILE; + $onestr = join("",@lines); + + my $extralibs = ""; # output + # slash in name means it's a phone specific build file: add LIBs + $extralibs .= "$libs_first$libs_second" if (-e $fileBLDINF); + + $onestr =~ s/$a.*$b/$a$updated$macros2$extralibs$b/s; + + open FILE, ">$file"; print FILE $onestr; close FILE; + + my $count = @lines; + print "wrote $count lines.\n"; + + if (-e $fileBLDINF) + { + # slash in name means it's a phone specific build file: + # this also means we need to update a BLD.INF file here! + print "Updating projects in $fileBLDINF ... \n"; + + open FILE, "$fileBLDINF"; @lines = <FILE>; close FILE; + $onestr = join("",@lines); + + $onestr =~ s/$p.*$q/$p$updated$projects$q/s; + + open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE; + } + } +} + +################################################################################################################## + +sub ResetProjectFiles() +{ + my $onestr, @lines; + my @mmp_files_plus_one = @mmp_files; +# unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; + + print "Resetting project files: "; + + # we don't need to do mmp/scummvm_base.mmp", it was done in BuildPackageUpload.pl before the call to this script + foreach $name (@mmp_files_plus_one) + { + my $file = "$buildDir/$name"; + + print "$name "; + open FILE, "$file.in"; @lines = <FILE>; close FILE; + $onestr = join("",@lines); + open FILE, ">$file"; print FILE $onestr; close FILE; + + # also do BLD.INF if it is there... + my $fileBLDINF = $buildDir .'/'. substr($name, 0, rindex($name, "/")) . "/BLD.INF"; + if (-e "$fileBLDINF.in") + { + print substr($name, 0, rindex($name, "/")) . "/BLD.INF "; + open FILE, "$fileBLDINF.in"; @lines = <FILE>; close FILE; + $onestr = join("",@lines); + open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE; + } + } + + print "... done.\n"; +} + +################################################################################################################## diff --git a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl new file mode 100644 index 0000000000..7a4d6e21e2 --- /dev/null +++ b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl @@ -0,0 +1,637 @@ + +use Cwd; +use Switch; + +system("cls"); +require "BuildPackageUpload_LocalSettings.pl"; + +################################################################################################################## +# prep some vars + +$SDK_BuildDirs{'UIQ2'} = "UIQ2"; +$SDK_BuildDirs{'UIQ3'} = "UIQ3"; +$SDK_BuildDirs{'S60v1'} = "S60"; +$SDK_BuildDirs{'S60v2'} = "S60"; +$SDK_BuildDirs{'S60v3'} = "S60v3"; +$SDK_BuildDirs{'S80'} = "S80"; +$SDK_BuildDirs{'S90'} = "S90"; + +$SDK_TargetName{'UIQ2'} = "armi"; +$SDK_TargetName{'UIQ3'} = "gcce"; +$SDK_TargetName{'S60v1'}= "armi"; +$SDK_TargetName{'S60v2'}= "armi"; +$SDK_TargetName{'S60v3'}= "gcce"; +$SDK_TargetName{'S80'} = "armi"; +$SDK_TargetName{'S90'} = "armi"; + +$SDK_TargetDir{'UIQ2'} = "armi"; +$SDK_TargetDir{'UIQ3'} = "armv5"; +$SDK_TargetDir{'S60v1'} = "armi"; +$SDK_TargetDir{'S60v2'} = "armi"; +$SDK_TargetDir{'S60v3'} = "armv5"; +$SDK_TargetDir{'S80'} = "armi"; +$SDK_TargetDir{'S90'} = "armi"; + +$build_dir = getcwd(); +$output_dir = "$build_dir/Packages"; +chdir("../../"); +$base_dir = getcwd(); +chdir($build_dir); +$build_log_out = "$build_dir/Build.out.log"; +$build_log_err = "$build_dir/Build.err.log"; + +$initial_path = $ENV{'PATH'}; # so we can start with a fresh PATH for each Build + +($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); +$date = sprintf("%02d%02d%02d", $year-100, $mon+=1, $mday); +$file_tpl_pkg = "scummvm-CVS-Symbian%s.pkg"; +$file_tpl_sis = "scummvm-%s-Symbian%s%s.sis"; +$version_tpl_sis = "$date"; # "CVS$date" + +$PackagesQueued = 0; +$PackagesCreated = 0; +$PackagesUploaded = 0; +@ErrorMessages = (); +$ftp_url = "FTP://$FTP_User\@$FTP_Host/$FTP_Dir/"; + +$ExtraMacros = "MACRO NONSTANDARD_PORT\n"; +$ExtraMacros .= "MACRO DISABLE_FANCY_THEMES\n"; + +# prep nice list of SDKs +#while( ($SDK, $RootDir) = each(%SDK_RootDirs) ) +foreach $SDK (sort keys(%SDK_RootDirs)) +{ + $SDKs .= "$SDK\t$SDK_RootDirs{$SDK}\n\t\t\t"; +} + +# prep nice list of Libraries +while( ($SDK, $Value) = each(%SDK_LibraryDirs) ) +{ + while( ($Library, $Path) = each(%{$SDK_LibraryDirs{$SDK}}) ) + { + $PresentLibs{$Library} = $Path; + } +} +foreach $Library (sort keys(%PresentLibs)) +{ + $LIBs .= "$Library\t$PresentLibs{$Library}\n\t\t\t"; +} + +# prep nice list of Variations +while( ($SDK, $Value) = each(%SDK_Variations) ) +{ + while( ($Variation, $Value2) = each(%{$SDK_Variations{$SDK}}) ) + { + $Extra = ($Variation ne '' ? "_$Variation" : ""); + if ($SDK eq "ALL") + { + while( ($SDK2, $RootDir) = each(%SDK_RootDirs) ) + { + if ($SDK_RootDirs{$SDK2} ne '') # is this SDK listed as installed? (fails silently) + { + push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK2, $Extra); + $PackagesQueued++; + } + } + } + else + { + if ($SDK_RootDirs{$SDK} ne '') # is this SDK listed as installed? (fails silently) + { + push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra); + $PackagesQueued++; + } + } + } +} +foreach $Package (sort @Packages) +{ + $PackagesStr .= "$Package\n\t\t\t"; +} + +print " +======================================================================================= +Preparing to Build, Package & Upload $PackagesQueued SymbianOS ScummVM variations +======================================================================================= + + Producer \t$Producer (RedirE:$RedirectSTDERR HaltE:$HaltOnError Skip:$SkipExistingPackages Quiet:$ReallyQuiet) + + SDKs inst'd \t$SDKs ".( %SDK_LibraryDirs ? " + LIBs inst'd \t$LIBs " : "" )." + $PackagesQueued Variations \t$PackagesStr + DIR base \t$base_dir + build \t$build_dir + output \t$output_dir +".( $FTP_Host ne '' ? " + FTP host \t$FTP_Host + user \t$FTP_User + pass \t"."*" x length($FTP_Pass)." + dir \t$FTP_Dir +" : "" )." +======================================================================================= +Press Ctrl-C to abort or enter to continue Build, Package & Upload $PackagesQueued Variations... +======================================================================================= +"; + +$line = <STDIN>; + +# make sure the output dir exists! +mkdir($output_dir, 0755) if (! -d $output_dir); + +unlink($build_log_out); +unlink($build_log_err); + +# init _base.mmp now, so we can start changing it without affecting the CVS version _base.mmp.in! +my $name = "mmp/scummvm_base.mmp"; +my $file = "$build_dir/$name"; +open FILE, "$file.in"; @lines = <FILE>; close FILE; +my $onestr = join("",@lines); +open FILE, ">$file"; print FILE $onestr; close FILE; + +################################################################################################################## +# do the actual deeds for all present libs + +while( ($SDK, $Value) = each(%SDK_LibraryDirs) ) +{ + while( ($Library, $Path) = each(%{$SDK_LibraryDirs{$SDK}}) ) + { + if ($SDK eq "ALL") + { + while( ($SDK2, $RootDir) = each(%SDK_RootDirs) ) + { + if ($SDK_RootDirs{$SDK2} ne '') # is this SDK listed as installed? (fails silently) + { + $LibrariesQueued++; + DoLibrary($SDK2, $Library, $Path); + } + } + } + else + { + if ($SDK_RootDirs{$SDK} ne '') # is this SDK listed as installed? (fails silently) + { + $LibrariesQueued++; + DoLibrary($SDK, $Library, $Path); + } + } + } +} + +#system('pause'); + +################################################################################################################## +# do the actual deeds for all configured variations + +while( ($SDK, $VariationsHash) = each(%SDK_Variations) ) +{ + while( ($Variation, $MacroBlock) = each(%{$SDK_Variations{$SDK}}) ) + { + if ($SDK eq "ALL") + { + while( ($SDK2, $RootDir) = each(%SDK_RootDirs) ) + { + if ($SDK_RootDirs{$SDK2} ne '') + { + DoVariation($SDK2, $Variation, $MacroBlock); + } + } + } + else + { + if ($SDK_RootDirs{$SDK} ne '') + { + DoVariation($SDK, $Variation, $MacroBlock); + } + } + } +} + +################################################################################################################## +# give report + +chdir($build_dir); + +print " +=======================================================================================".( %SDK_LibraryDirs ? " +Libraries selected: \t$LibrariesQueued + built: \t$LibrariesSucceeded " : "" )." +Packages selected: \t$PackagesQueued $base_dir ".( $PackagesExisted ? " + existed: \t$PackagesExisted $output_dir " : "" )." + created: \t$PackagesCreated $output_dir ".( $FTP_Host ne '' ? " + uploaded: \t$PackagesUploaded $ftp_url " : "" )." +======================================================================================= +"; + +my $count = @ErrorMessages; +if ($count) +{ + print "Hmm, unfortunately some ERRORs have occurred during the process:\n"; + foreach $Error (@ErrorMessages) + { + print "> $Error\n"; + } + print "=======================================================================================\n"; + print "\007\007"; +} + +# first clean up 'initial path' by removing possible old entries (in case of aborted builds) +#$initial_path_system_cleaned = CleanupPath($initial_path_system); + +# show them we cleaned up? +#if ($initial_path_system_cleaned ne $initial_path_system) +#{ +# PrintMessage("PATH cleaned up from:\n$initial_path_system\n\nto:\n$initial_path_system_cleaned"); +#} + +print " SumthinWicked wishes you a ridiculously good and optimally happy day :P\n======================================================================================="; + +################################################################################################################## +################################################################################################################## + +# Build, Package & Upload a single Variation +sub DoLibrary +{ + my ($SDK, $Library, $Path) = @_; + my $TargetName = $SDK_TargetName{$SDK}; + my $TargetDir = $SDK_TargetDir{$SDK}; + my $Target = "$SDK - $Library"; + my $TargetFilePath = $SDK_RootDirs{$SDK}."\\epoc32\\release\\$TargetDir\\urel\\$Library"; + #my $TargetIntermediatePath = uc($SDK_RootDirs{$SDK}."\\EPOC32\\BUILD\\".substr($Path, 3)); + # does this remove too much? + my $TargetIntermediatePath = uc($SDK_RootDirs{$SDK}."\\EPOC32\\BUILD\\"); + +my $header = " +======================================================================================= +======================================================================================= +======================================================================================= + Preparing to build library $Target +======================================================================================= +======================================================================================= +======================================================================================= +"; + print $header if (!$ReallyQuiet); + open FILE, ">>$build_log_out"; print FILE $header; close FILE; + open FILE, ">>$build_log_err"; print FILE $header; close FILE; + + # easy for error-handling: + $CurrentTarget = $Target; + my $OK = 1; + + PrepSdkPaths($SDK); + + chdir($Path) or $OK=0; + PrintErrorMessage("Changing to $Path failed!") if (!$OK); + return 0 if (!$OK); + + PrintMessage("Cleaning for $Target") if (!$ReallyQuiet); + system("bldmake bldfiles > NUL 2> NUL"); + PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8); + system("abld clean $TargetName urel > NUL 2> NUL"); + PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + # remove file so we are sure that after .lib generation we have a fresh copy! + if (-e $TargetFilePath) { unlink($TargetFilePath) or PrintErrorMessage("Removing $TargetFilePath"); } + + my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen"); + my $Message = "Building $Target ($Redirection)"; + PrintMessage($Message) if (!$ReallyQuiet); + print(" $Message\n") if ($ReallyQuiet); + + my $OldSize = (-s $build_log_err); + $Redirection = ($RedirectSTDERR ? "2>> $build_log_err" : ""); + system("abld build $TargetName urel $Redirection >> $build_log_out"); + $OK = 0 if ($? >> 8); +# print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err)); + PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + return 0 if (!$OK); # ABLD always returns ok :( grr + PrintMessage("Done.") if (!$ReallyQuiet); + + # did it work? :) + if (-e $TargetFilePath) + { + $LibrariesSucceeded++; + + if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path! + { + system("del /S /Q $TargetIntermediatePath > NUL"); + } + return 1; + } + else + { + PrintErrorMessage("'abld build $TargetName urel' apparently failed."); + if ($HaltOnError) + { + PrintErrorMessage("Halting on error as requested!"); + exit 1; + } + return 0; + } +} + +################################################################################################################## + +# Build, Package & Upload a single Variation +sub DoVariation +{ + my ($SDK, $Variation, $MacroBlock) = @_; + my $Extra = ($Variation ne '' ? "_$Variation" : ""); + my $Package = sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra); + + if ($SkipExistingPackages && -f "$output_dir/$Package") + { + PrintMessage("Skipping $Package (already exists!)"); + $PackagesExisted++; + return; + } + +my $header = " +======================================================================================= +======================================================================================= +======================================================================================= + Preparing to build $Package +======================================================================================= +======================================================================================= +======================================================================================= +"; + print $header if (!$ReallyQuiet); + open FILE, ">>$build_log_out"; print FILE $header; close FILE; + open FILE, ">>$build_log_err"; print FILE $header; close FILE; + + # easy for error-handling: + $CurrentTarget = $Package; + my $OK; + + $OK = PrepVariation($SDK, $Variation, $Package, $MacroBlock); + + if ($OK) + { + $OK = BuildVariation($SDK, $Variation, $Package, $MacroBlock); + + if ($OK && $FTP_Host ne '') + { + UploadVariation($SDK, $Variation, $Package); + } + } +} + +################################################################################################################## + +sub PrepVariation() +{ + my ($SDK, $Variation, $Package, $MacroBlock) = @_; + my $OK = 1; + + PrepSdkPaths($SDK); + + chdir($build_dir) or $OK=0; + PrintErrorMessage("Changing to $build_dir failed!") if (!$OK); + return 0 if (!$OK); + + # insert $MacroBlock into AUTO_MACRO_MASTER in scummvm_base.mmp + PrintMessage("Setting new AUTO_MACROS_MASTER in scummvm_base.mmp for '$Variation'") if (!$ReallyQuiet); + my $n = "AUTO_MACROS_MASTER"; + my $a = "\/\/START_$n\/\/"; + my $b = "\/\/STOP_$n\/\/"; + my $name = "scummvm_base.mmp"; + my $file = "$build_dir/mmp/$name"; + my $updated = " Updated @ ".localtime(); + + open FILE, "$file" or $OK=0; + PrintErrorMessage("Reading file '$file'") if (!$OK); + return 0 if (!$OK); + my @lines = <FILE>; + close FILE; + + my $onestr = join("",@lines); + $MacroBlock =~ s/^\s*//gm; + $onestr =~ s/$a(.*)$b/$a$updated\n$ExtraMacros$MacroBlock$b/s; + + open FILE, ">$file" or $OK=0; + PrintErrorMessage("Writing file '$file'") if (!$OK); + return 0 if (!$OK); + print FILE $onestr; + close FILE; + + # running AdaptAllMMPs.pl to propagate changes + PrintMessage("Running AdaptAllMMPs.pl to propagate MACRO changes") if (!$ReallyQuiet); + system("perl AdaptAllMMPs.pl > NUL"); + $OK = 0 if ($? >> 8); + PrintErrorMessage("'AdaptAllMMPs.pl' exited with value " . ($? >> 8)) if ($? >> 8); + return 0 if (!$OK); + + # we are here: so all is ok :) + return 1; +} + +################################################################################################################## + +sub BuildVariation() +{ + my ($SDK, $Variation, $Package, $MacroBlock) = @_; + my $TargetName = $SDK_TargetName{$SDK}; + my $TargetDir = $SDK_TargetDir{$SDK}; + my $OK = 1; + + my $dir = $build_dir."/".$SDK_BuildDirs{$SDK}; + $dir =~ s#/#\\#g; + chdir($dir); + + #my $TargetIntermediatePath = uc($SDK_RootDirs{$SDK}."\\EPOC32\\BUILD\\".substr($dir, 3)); + # does this remove too much? + my $TargetIntermediatePath = uc($SDK_RootDirs{$SDK}."\\EPOC32\\BUILD\\"); + + PrintMessage("Cleaning for $Package") if (!$ReallyQuiet); + + # remove some files so we are sure that after .sis package generation we have a fresh copy! + my $UnlinkFile = "$output_dir/$Package"; + if (-e $UnlinkFile) { unlink($UnlinkFile) or PrintErrorMessage("Removing $UnlinkFile"); } + $UnlinkFile = $SDK_RootDirs{$SDK}."/epoc32/release/$TargetDir/urel/ScummVM.app"; + if (-e $UnlinkFile) { unlink($UnlinkFile) or PrintErrorMessage("Removing $UnlinkFile"); } + $UnlinkFile = $SDK_RootDirs{$SDK}."/epoc32/release/$TargetDir/urel/ScummVM.exe"; + if (-e $UnlinkFile) { unlink($UnlinkFile) or PrintErrorMessage("Removing $UnlinkFile"); } + + system("bldmake bldfiles 2> NUL > NUL"); + PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8); + + system("abld clean $TargetName urel 2> NUL > NUL"); + PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + + my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen"); + my $Message = "Building $Package ($Redirection)"; + PrintMessage($Message) if (!$ReallyQuiet); + print(" $Message\n") if ($ReallyQuiet); + + my $OldSize = (-s $build_log_err); + $Redirection = ($RedirectSTDERR ? "2>> $build_log_err" : ""); + system("abld build $TargetName urel $Redirection >> $build_log_out"); + $OK = 0 if ($? >> 8); + print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err) && !$ReallyQuiet); + PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + return 0 if (!$OK); # ABLD always returns ok :( grr + PrintMessage("Done.") if (!$ReallyQuiet); + + # do we have an override suffix for the package name? + $MacroBlock =~ /^\s*\/\/\s*PKG_SUFFIX:\s*(\w+)\s*/gm; # using '@' as delimiter here instead of '/' for clarity + my $PkgSuffix = $1; # can be "" + my $PkgFile = sprintf($file_tpl_pkg, $SDK.$PkgSuffix); + + PrintMessage("Creating package $Package") if (!$ReallyQuiet); +## fix if (!$ReallyQuiet) for next: + system("makesis -d\"".$SDK_RootDirs{$SDK}."\" $PkgFile \"$output_dir/$Package\" $Redirection >> $build_log_out"); + $OK = 0 if ($? >> 8); + PrintErrorMessage("'makesis' $PkgFile exited with value " . ($? >> 8)) if (!$OK); + if ($HaltOnError && !$OK) + { + PrintErrorMessage("Halting on error as requested!"); + exit 1; + } + return 0 if (!$OK); + + # did it work? :) + if (-e "$output_dir/$Package") + { + $PackagesCreated++; + + if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path! + { + #PrintMessage("Cleaning $TargetIntermediatePath"); + system("del /S /Q $TargetIntermediatePath > NUL"); + } + return 1; + } + else + { + PrintErrorMessage("'makesis' apparently failed. (?)"); + return 0; + } +} + +################################################################################################################## + +sub UploadVariation() +{ + my ($SDK, $Variation, $Package) = @_; + + use Net::FTP; + my $newerr; + + PrintMessage("Connecting to FTP $FTP_Host") if (!$ReallyQuiet); + + $ftp = Net::FTP->new($FTP_Host,Timeout=>240) or $newerr=1; + PrintErrorMessage("Connecting to FTP $FTP_Host! Aborting!") if $newerr; + if (!$newerr) + { + $ftp->login($FTP_User, $FTP_Pass) or $newerr=1; + PrintErrorMessage("Logging in with $FTP_User to $FTP_Host! Aborting!") if $newerr; + if (!$newerr) + { + if ($FTP_Dir ne '') # do we need to change dir? + { + PrintMessage("Changing to dir $FTP_Dir"); + $ftp->cwd($FTP_Dir) or $newerr=1; + + if ($newerr) + { + PrintErrorMessage("Changing to dir $FTP_Dir! Aborting!"); + $ftp->quit; + return; + } + } + +# leave this for possible auto-deletion of old files? +# @files = $ftp->dir or $newerr=1; +# push @ERRORS, "Can't get file list $!\n" if $newerr; +# print "Got file list\n"; +# foreach(@files) { +# print "$_\n"; +# } + + PrintMessage("Uploading $Package (".(-s "$output_dir/$Package")." bytes)"); + + $ftp->binary; + $ftp->put("$output_dir/$Package") or $newerr=1; + PrintErrorMessage("Uploading package! Aborting!") if $newerr; + $PackagesUploaded++ if (!$newerr); + } + + $ftp->quit; + } +} + +################################################################################################################## + +sub PrepSdkPaths() +{ + my ($SDK) = @_; + my $EPOCROOT = $SDK_RootDirs{$SDK}; + my $EPOC32RT = "$EPOCROOT\\epoc32"; + my $AdditionalPathEntries = ""; + my $OK = 1; + + # do the directories exist? + if (! -d $EPOCROOT) { PrintErrorMessage("$SDK Directory does not exist: '$EPOCROOT'"); return 0; } + if (! -d $EPOC32RT) { PrintErrorMessage("$SDK Directory does not exist: '$EPOC32RT'"); return 0; } + + # set env stuff + PrintMessage("Prepending $SDK specific paths to %PATH%") if (!$ReallyQuiet); + $AdditionalPathEntries .= "$ECompXL_BinDir;" if ($ECompXL_BinDir ne '' && $SDK eq 'UIQ2'); + $AdditionalPathEntries .= "$EPOC32RT\\include;"; + $AdditionalPathEntries .= "$EPOC32RT\\tools;"; + $AdditionalPathEntries .= "$EPOC32RT\\gcc\\bin;"; + $ENV{'EPOCROOT'} = substr($EPOCROOT,2)."\\"; # strips drive letter, needs to end with backslash! + $ENV{'PATH'} = "$AdditionalPathEntries$initial_path"; + + return 1; +} + +################################################################################################################## + +sub CleanupPath() +{ + my ($path) = @_; + + if ($ECompXL_BinDir ne '') + { + $path =~ s/\"\Q$ECompXL_BinDir\E\";//g; + } + + while( ($SDK, $RootDir) = each(%SDK_RootDirs) ) + { + if ($SDK_RootDirs{$SDK} ne '') + { + my $path_component = "\"".$SDK_RootDirs{$SDK}."\\epoc32\\"; + $path =~ s/\Q$path_component\E.*?\";//g; + } + } + + return $path; +} + +################################################################################################################## + +sub PrintErrorMessage() +{ + my ($msg) = @_; + + # add to array, so we can print it @ the end! + push @ErrorMessages, "$CurrentTarget: $msg"; + + print "+--------------------------------------------------------------------------------------\n"; + PrintMessage("ERROR: $CurrentTarget: $msg"); + print "\007" if (!$HaltOnError); + print "\007\007" if ($HaltOnError); # make more noise if halt-on-error +} + +sub PrintMessage() +{ + my ($msg) = @_; + + print "| $msg\n"; + print "+--------------------------------------------------------------------------------------\n"; +#$line = <STDIN>; + + #print "\e[1,31m> $msg\e[0m\n"; +} + +################################################################################################################## +
\ No newline at end of file diff --git a/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl b/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl new file mode 100644 index 0000000000..a357b836db --- /dev/null +++ b/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl @@ -0,0 +1,292 @@ + +################################################################################################################## + + # you can use these below for speed & clarity or override with custom settings + $DefaultTopMacros = " + MACRO USE_ZLIB // LIB:zlib.lib + MACRO USE_MAD // LIB:libmad.lib + //MACRO USE_TREMOR // LIB:libtremor.lib + "; + + $DefaultBottomMacros = " + MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib + MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib + MACRO DISABLE_LURE // LIB:scummvm_lure.lib + MACRO DISABLE_CINE // LIB:scummvm_cine.lib + "; + + ## + ## General system information: + ## + + # this way you can use the same LocalSettings.pl file on multiple machines! + if ($ENV{'COMPUTERNAME'} eq "MYCOMPUTER") + { + # might use this string for file/dir naming in the future :) + $Producer = "BUILDERNAME"; + $RedirectSTDERR = 0; + $HaltOnError = 1; + $SkipExistingPackages = 0; + $ReallyQuiet = 0; + + # specify an optional FTP server to upload to after each Build+Package (can leave empty) + #$FTP_Host = "ftp.myftp.net"; + #$FTP_User = "user"; + #$FTP_Pass = "pass"; + #$FTP_Dir = "directory"; + + # possible SDKs: ("UIQ2", UIQ3", "S60v1", "S60v2", "S60v3", "S80", "S90") + # Note1: the \epoc32 directory needs to be in these rootdirs + # Note2: these paths do NOT end in a backslash! + $SDK_RootDirs{'UIQ2'} = "C:\\S\\UIQ_21"; + $SDK_RootDirs{'S60v1'} = "C:\\S\\S60v1"; + $SDK_RootDirs{'S60v2'} = "C:\\S\\S60v2"; + $SDK_RootDirs{'S80'} = "C:\\S\\S80"; + $SDK_RootDirs{'S90'} = "C:\\S\\S90"; + $ECompXL_BinDir = "C:\\S\\ECompXL\\bin"; # only needed for UIQ + # you need to specify each of the SDKs used in the blocks below! + + # these supporting libraries get built first, then all the Variations + # Note: the string {'xxx.lib'} is used in checking in build success: so needs to be accurate! + if (0) # so we can turn them on/off easily + { + #$SDK_LibraryDirs{'ALL'}{'zlib.lib'} = "C:\\S\\zlib-1.2.2\\epoc"; + #$SDK_LibraryDirs{'ALL'}{'libmad.lib'} = "C:\\S\\libmad-0.15.1b\\group"; + #$SDK_LibraryDirs{'ALL'}{'libtremor.lib'}= "C:\\S\\tremor\\epoc"; + $SDK_LibraryDirs{'UIQ2'}{'esdl.lib'} = $SDK_LibraryDirs{'UIQ3'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\UIQ"; + #$SDK_LibraryDirs{'S60v1'}{'esdl.lib'} = $SDK_LibraryDirs{'S60v2'}{'esdl.lib'} = $SDK_LibraryDirs{'S60v3'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S60"; + #$SDK_LibraryDirs{'S80'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S80"; + #$SDK_LibraryDirs{'S90'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S90"; + #$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "C:\\S\\mpeg2dec-0.4.0\\epoc"; + } + + # backup :P + #Path=C:\Progra~1\Active\Python24\.;C:\Program Files\Active\Tcl\bin;C:\Progra~1\Active\Perl\bin\;C:\WINDOWS\system32;C:\W + #INDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\GNU\cvsnt;C:\Progra + #m Files\WinSCP3\;"C:\Program Files\Common Files\Microsoft Shared\VSA\8.0\VsaEnv\";"c:\Program Files\Microsoft Visual Stu + #dio 8\VC\bin";"C:\Program Files\UltraEdit-32" + } + elsif ($ENV{'COMPUTERNAME'} eq "OTHERCOMPUTER") + { +#see previous section + # now you can add $SDK_Variations only built on this PC here :) + } + else + { + print "ERROR: Computer name ".$ENV{'COMPUTERNAME'}." not recognized! Plz edit _LocalSettings.pl!"; + exit 1; + } + + ## + ## Variation defines: + ## + + # second hash index = literal string used in .sis file created. + # empty string also removes the trailing '_'. Some 051101 examples: + + # $SDK_Variations{'UIQ2'}{''} would produce: + # scummvm-051101-SymbianUIQ2.sis + + # $SDK_Variations{'S60v2'}{'simon'} would produce: + # scummvm-051101-SymbianS60v2_simon.sis + + # $SDK_Variations{'ALL'}{'queen'} with all $SDK_RootDirs defined would produce: + # scummvm-051101-SymbianUIQ2_queen.sis + # scummvm-051101-SymbianUIQ3_queen.sis + # scummvm-051101-SymbianS60v1_queen.sis + # scummvm-051101-SymbianS60v2_queen.sis + # scummvm-051101-SymbianS60v3_queen.sis + # scummvm-051101-SymbianS80_queen.sis + # scummvm-051101-SymbianS90_queen.sis + + $SDK_Variations{'UIQ2'}{'test'} = "$DefaultTopMacro + MACRO USE_TREMOR // LIB:libtremor.lib + //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + //MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + //MACRO DISABLE_SKY // LIB:scummvm_sky.lib + //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + //MACRO DISABLE_GOB // LIB:scummvm_gob.lib + //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; +# $SDK_Variations{'S60v1'}{'test'} = $SDK_Variations{'UIQ2'}{'test'}; + +if (0) # all regular combo's +{ + # the first one includes all SDKs & engines + + $SDK_Variations{'ALL'}{'all'} = "$DefaultTopMacros + //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + //MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + //MACRO DISABLE_SKY // LIB:scummvm_sky.lib + //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + //MACRO DISABLE_GOB // LIB:scummvm_gob.lib + //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + # now one for each ready-for-release engine + + $SDK_Variations{'ALL'}{'scumm'} = "$DefaultTopMacros + //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'simon'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + //MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'sky'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + //MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'queen'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'gob'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + //MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'saga'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'kyra'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + $DefaultBottomMacros"; + + # below here you could specify weird & experimental combinations, non-ready engines + + $SDK_Variations{'ALL'}{'test_lure'} = "$DefaultTopMacros + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib + MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib + //MACRO DISABLE_LURE // LIB:scummvm_lure.lib + MACRO DISABLE_CINE + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'saga_mini'} = " + //MACRO USE_ZLIB // LIB:zlib.lib + //MACRO USE_MAD // LIB:libmad.lib + //MACRO USE_TREMOR // LIB:libtremor.lib + MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_CINE + $DefaultBottomMacros"; + + $SDK_Variations{'ALL'}{'scumm_no78he'} = " + MACRO USE_ZLIB // LIB:zlib.lib + MACRO USE_MAD // LIB:libmad.lib + //MACRO USE_TREMOR // LIB:libtremor.lib + //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + MACRO DISABLE_SKY // LIB:scummvm_sky.lib + MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + MACRO DISABLE_GOB // LIB:scummvm_gob.lib + MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + MACRO DISABLE_SCUMM_7_8 + MACRO DISABLE_SCUMM_HE + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_CINE + $DefaultBottomMacros"; + +# $SDK_Variations{'ALL'}{'all_vorbis'} = " +# MACRO USE_ZLIB // LIB:zlib.lib +# MACRO USE_MAD // LIB:libmad.lib +# MACRO USE_TREMOR // LIB:libtremor.lib +# //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib +# //MACRO DISABLE_SIMON // LIB:scummvm_simon.lib +# //MACRO DISABLE_SKY // LIB:scummvm_sky.lib +# //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib +# //MACRO DISABLE_GOB // LIB:scummvm_gob.lib +# //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib +# $DefaultBottomMacros"; +} + +# +# $SDK_Variations{'S60v2'}{'test_sword'} = "$DefaultTopMacros +# MACRO USE_MPEG2 // LIB:libmpeg2.lib +# MACRO USE_TREMOR // LIB:libtremor.lib +# MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib +# MACRO DISABLE_SIMON // LIB:scummvm_simon.lib +# MACRO DISABLE_SKY // LIB:scummvm_sky.lib +# MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib +# MACRO DISABLE_GOB // LIB:scummvm_gob.lib +# MACRO DISABLE_SAGA // LIB:scummvm_saga.lib +# MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib +# //MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib +# //MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib +# "; +# $SDK_Variations{'UIQ2'}{'test_sword'} = $SDK_Variations{'S60v2'}{'test_sword'} +# + +# for mega-fast-testing only plz! +# $SDK_Variations{'UIQ2'}{'(fast_empty)'} = " +# //MACRO USE_ZLIB // LIB:zlib.lib +# //MACRO USE_MAD // LIB:libmad.lib +# //MACRO USE_TREMOR // LIB:libtremor.lib +# MACRO USE_UIQ_SE_VIBRA // LIB:vibration.lib +# MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib +# MACRO DISABLE_SIMON // LIB:scummvm_simon.lib +# MACRO DISABLE_SKY // LIB:scummvm_sky.lib +# //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib +# MACRO DISABLE_GOB // LIB:scummvm_gob.lib +# MACRO DISABLE_SAGA // LIB:scummvm_saga.lib +# $DefaultBottomMacros"; + +################################################################################################################## + +1;
\ No newline at end of file diff --git a/backends/platform/symbian/README b/backends/platform/symbian/README new file mode 100644 index 0000000000..3a4b6142ad --- /dev/null +++ b/backends/platform/symbian/README @@ -0,0 +1,135 @@ + + ScummVM - ScummVM ported to EPOC/SymbianOS + + Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson + Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson + Copyright (C) 2005 Jurgen 'SumthinWicked' Braam + Copyright (C) 2005 ScummVM Team + + $Id$ + + +About ScummVM +-------------- + The original ports (uptil 0.7.1) were made by Andreas Karlsson and Lars Persson. + The main transition to 0.8.0CVS and all relevant changes were done by Jurgen Braam. + Jurgen and Lars are currently working together to finalize the transfer to CVS. + + +Nescessary components +--------------------- + Building ScummVM yourself using the UIQ 2.1/Nokia S60 SDK/Nokia S80 SDK/Nokia S90 SDK framework is not an easy task! + Lets just say the framework needs quite some time to set up and takes a while + to get used to. If you choose to continue you will need the following items: + + - UIQ 2.1 SDK (To build for UIQ devices); + http://www.symbian.com/developer/sdks_uiq.asp + + - Nokia S60 1st, 2nd edition (3rd edition has not been tested) SDK (To build for S60 devices) + + - Nokia S80 SDK (To build for S80 devices) + + - Nokia 7710 SDK (To build for the 7710/S90 device) + + - ECompXL, an EPOC application compression library + http://www.yipton.demon.co.uk/ecompxl/latest/readme.html (To build for UIQ devices) + + - libsdl, Simple Directmedia Layer, a cross-platform multimedia library + http://www.libsdl.org/ (see note about ESDL below) + + - libmad, a high-quality MPEG audio decoder + http://www.underbit.com/products/mad/ + + - zlib, a massively spiffy yet delicately unobtrusive compression library + http://www.zlib.net/ + + These are probably too heavy-duty for your phone: + + - libogg, the free media file container format + http://www.xiph.org/ogg/ + + - libvorbis, the free audio codec + http://www.vorbis.com/ + + - flac, the Free Lossless Audio Codec + http://flac.sourceforge.net/ + + - libmpeg2, a free MPEG-2 video stream decoder + http://libmpeg2.sourceforge.net/ + + +Building ScummVM +----------------- + ECompXL: this is a tool that will compress your executable with GZIP and glue + it to a predefined loader app. The app will uncompress your application at + runtime and run it without you even knowing it. A really interesting byproduct + of this method is that the general restriction of not having any writeable + static data (WSD) for Symbian APP executables no longer applies. This makes + the life of an EPOC porter a lot easier! To install this tool you need to add + its \bin path to your PATH above the sybmian epocs32\tools path, so that ECompXL's + PETRAN.EXE will be the executable that is started. + + SDL: the latest varsion of SDL at this point in time is 1.2.8. This version + works great for compiling on other platforms, but for EPOC it lacks some + features. There are two distributions that have the nescessary goods: The one + made for SuperWaba (http://www.newlc.com/article.php3?id_article=574 and + http://www.superwaba.com/) and ESDL, the one that Sprawl made for the P800/P900. I've + used Sprawl's version uptil now. If Sprawl feels ESDL is in such a state that + it can be released, he will post a source download on his site and I will + make it know through the scummvm.org site. In <DevRoot>/sdl/epoc/ go: + > bldmake bldfiles + > abld build + + zlib: the zlib-x.x.x.tar.gz does not come with UIQ .mpp build files, that's why + I added them for you in epoc-zlib.zip. Extract in <DevRoot>/zlib/ which will + create the epoc dir. In <DevRoot>/zlib/epoc/ go: + > bldmake bldfiles + > abld build + + libmad: the libmad-x.x.x.tar.gz does not come with UIQ .mpp build files, that's + why I added them for you in epoc-libmad.zip. Extract in <DevRoot>/libmad/ which + will create the epoc dir. In <DevRoot>/libmad/epoc/ go: + > bldmake bldfiles + > abld build + + ScummVM: make sure the SYSTEMINCLUDE dirs in ScumVM.mmp are correct. For the + 'wins' platform also check the LIBRARY entries for the correct path to your MSVC + installation. Please note that you can only specify relative paths here, so every- + thing needs to be on the same physical drive! Another weird demand of the UIQ + platform... In <DevRoot>/scummvm/backends/epoc/ go: + + > run 'unzip mmp\initial_mmps.zip' + > edit the scummvm_base.mmp to fit your needs (for supported target games and features, check the MACRO statements) + > run 'perl AdaptAllMMPs.pl' from the commandline, this will update all mmp and bld.inf files + > change to the directory for your designated target (uiq2 for UIQ 2.X, S60 for S60 v1 & V2 etc) + > 'bldmake bldfiles' to update and create the symbian build structure + > 'abld build armi urel' to build the target binaries + > makesis -d\sdkpath ScummVM_xxx.pkg to build the sis file for your target. + + Now you should have yourself a nice ScummVM_xxx.sis installer package for use + on your phone. Please note that for development it will be a lot faster if you + transfer the SCUMMVM.APP/Scummvm.EXE file directly to your !:\system\apps\ScummVM\ dir! + + Platforms can be one of: ARMi, ARM4, THUMB, WINS. The SE P900 uses the ARMi platform, + which is a combined ARM4/THUMB programming mode. Configurations can be one of: + UREL or UDEB. + + +Greetz & such +------------- + Kudos fly out to: + - Sprawl for having the nerve to start & carry this puppy for so long + - AnotherGuest for having the nerve to start & carry this puppy for so long + - Fingolfin for taking the time to go through 1000 patch versions with me + - Myself (SumthinWicked), for writing this entire README and adopting all sources together with Fingolfin :) + - the entire ScummVM Dev team for making a kicka$$ program + - the folks in #scummvm @ irc.freenode.net for their help, confort and support + - everybody else who wants to give me 'the look' for not including them here :P + + + it's been swell, + gotta go now, + + greetz, + SumthinWicked & Anotherguest + diff --git a/backends/platform/symbian/S60/BLD.INF.in b/backends/platform/symbian/S60/BLD.INF.in new file mode 100644 index 0000000000..b6cf8bbda6 --- /dev/null +++ b/backends/platform/symbian/S60/BLD.INF.in @@ -0,0 +1,12 @@ +PRJ_PLATFORMS +WINS ARMI // ARM4 THUMB + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_S60.mmp +.\ScummVM_S60_App.mmp diff --git a/backends/platform/symbian/S60/ScummVM_S60.mmp.in b/backends/platform/symbian/S60/ScummVM_S60.mmp.in new file mode 100644 index 0000000000..3421cb306d --- /dev/null +++ b/backends/platform/symbian/S60/ScummVM_S60.mmp.in @@ -0,0 +1,104 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC S60 MMP makefile project for ScummVM +// + +// *** Definitions + +#if defined(WINS) + TARGET ScummVM.dll +#else + TARGET ScummVM.exe +#endif +TARGETPATH system\apps\ScummVM +TARGETTYPE EXEDLL + +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +#if !defined(WINS) +EPOCSTACKSIZE 0x00008000 +EPOCHEAPSIZE 2048000 8192000 +#endif + +MACRO S60 + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +#if !defined(WINS) +STATICLIBRARY egcc.lib // for __fixunsdfsi +#endif + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\.. + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries + +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib +LIBRARY gdi.lib hal.lib bitgdi.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib +library avkon.lib bafl.lib diff --git a/backends/platform/symbian/S60/ScummVM_S60_App.mmp b/backends/platform/symbian/S60/ScummVM_S60_App.mmp new file mode 100644 index 0000000000..6caf91009b --- /dev/null +++ b/backends/platform/symbian/S60/ScummVM_S60_App.mmp @@ -0,0 +1,49 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// MAKEFILE.MMP S60 ScummVM Launcher +// + +TARGET ScummVM.app +TARGETPATH system\apps\ScummVM +TARGETTYPE app + +UID 0x100039ce 0x101f9b57 +sourcepath ..\res +RESOURCE SCUMMVM.rss + +USERINCLUDE ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc + +// app source +sourcepath ..\src +SOURCE ScummVMApp.cpp + +sourcepath .. +AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp + +// libraries +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib +LIBRARY efsrv.lib apgrfx.lib +LIBRARY avkon.lib diff --git a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg new file mode 100644 index 0000000000..d95ea72456 --- /dev/null +++ b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg @@ -0,0 +1,27 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM S60v1"},(0x101f9b57),0,80,0 + +; Platform type +(0x101F6F88), 0, 0, 0, {"Series60ProductID"} + +; Launcher, Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\release\armi\urel\ScummVM.exe"-"!:\system\apps\ScummVM\ScummVM.exe" +"\epoc32\release\armi\urel\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\release\armi\urel\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg new file mode 100644 index 0000000000..b2eb086488 --- /dev/null +++ b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg @@ -0,0 +1,27 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM S60v2"},(0x101f9b57),0,80,3 + +; Platform type +(0x101F6F88), 0, 0, 0, {"Series60ProductID"} + +; Launcher, Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\release\armi\urel\ScummVM.exe"-"!:\system\apps\ScummVM\ScummVM.exe" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/S60v3/BLD.INF.in b/backends/platform/symbian/S60v3/BLD.INF.in new file mode 100644 index 0000000000..f7b7090adf --- /dev/null +++ b/backends/platform/symbian/S60v3/BLD.INF.in @@ -0,0 +1,11 @@ +PRJ_PLATFORMS +GCCE WINSCW + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_S60v3.mmp diff --git a/backends/platform/symbian/S60v3/ScummVM_Loc.rss b/backends/platform/symbian/S60v3/ScummVM_Loc.rss new file mode 100644 index 0000000000..83a8cfcc4c --- /dev/null +++ b/backends/platform/symbian/S60v3/ScummVM_Loc.rss @@ -0,0 +1,22 @@ +#include <AppInfo.rh> + +// This file localise the applications icons and caption +RESOURCE LOCALISABLE_APP_INFO + { + caption_and_icon = + { + CAPTION_AND_ICON_INFO + { + // The caption text is defined in the rls file + caption = "ScummVM"; + // Icons are used to represent applications in the + // application launcher and application title bar. + // The number_of_icons value identifies how many icons + // that exist in the icon_file. + number_of_icons = 3; + // Using the application icons. + icon_file = "\\Resource\\Apps\\ScummVM.mbm"; + } + }; + } + diff --git a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in new file mode 100644 index 0000000000..545eade06e --- /dev/null +++ b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in @@ -0,0 +1,123 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC S60 MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET ScummVM.exe +TARGETPATH sys\bin +TARGETTYPE EXE + +UID 0x100039ce 0xA0000657 + +START RESOURCE ScummVM_reg.rss +TARGETPATH \private\10003a3f\apps +END + +START RESOURCE ScummVM_loc.rss +TARGETPATH \Resource\Apps +LANG SC +END + +SOURCEPATH ..\res +START RESOURCE ScummVM.rss +HEADER +TARGETPATH \Resource\Apps +LANG SC +END + +START BITMAP ScummVM.mbm +TARGETPATH \Resource\Apps +SOURCEPATH ..\res +// Source Color-depth Source-bitmap-list +// c denotes whether the bitmap is a colour bitmap and the digits represent the +// colour-depth of the bitmap and the bitmap mask respectively +SOURCE c24 ScummSmall.bmp +SOURCE 8 ScummSmallMask.bmp +SOURCE c24 ScummLarge.bmp +SOURCE 8 ScummLargeMask.bmp +SOURCE c24 ScummxLarge.bmp +SOURCE 8 ScummxLargeMask.bmp +END + +EPOCSTACKSIZE 0x0000F000 +EPOCHEAPSIZE 2048000 16192000 + +MACRO S60 +MACRO S60V3 +MACRO EPOC_AS_APP +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\.. + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib +LIBRARY gdi.lib hal.lib bitgdi.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib +library avkon.lib bafl.lib diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg new file mode 100644 index 0000000000..d6a1e94c1f --- /dev/null +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg @@ -0,0 +1,33 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; +;Language - standard language definitions +&EN + +; List of localised vendor names - one per language. At least one must be provided (English [EN]). +; List must correspond to list of languages specified elsewhere in the .pkg +%{"ScummVM"} +; The non-localised, globally unique vendor name (mandatory) +:"ScummVM" + +; UID is the app's UID +#{"ScummVM S60v3"},(0xA0000657),0,90,0 + +;Supports Series 60 v 3.0 +[0x101F7961], 0, 0, 0, {"Series60ProductID"} + +; Launcher, Application, AIF & Resource file +"\s60v3\epoc32\release\gcce\urel\ScummVM.exe"- "!:\sys\bin\ScummVM.exe" +"\s60v3\epoc32\data\z\resource\apps\ScummVM.rsc"- "!:\resource\apps\ScummVM.rsc" +"\s60v3\epoc32\Data\Z\resource\apps\scummvm_loc.rsc"- "!:\resource\apps\scummvm_loc.rsc" +"\s60v3\epoc32\data\Z\resource\APPS\scummvm.MBM"- "!:\resource\apps\scummvm.MBM" +"\s60v3\epoc32\data\z\private\10003a3f\apps\scummvm_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_reg.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"c:\private\A0000657\scummvm.ini",FILENULL +""-"c:\private\A0000657\scummvm.stdout.txt",FILENULL +""-"c:\private\A0000657\scummvm.stderr.txt",FILENULL +""-"c:\private\A0000657\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/S60v3/scummvm_reg.rss b/backends/platform/symbian/S60v3/scummvm_reg.rss new file mode 100644 index 0000000000..df99094b2e --- /dev/null +++ b/backends/platform/symbian/S60v3/scummvm_reg.rss @@ -0,0 +1,18 @@ +// All registration files need to #include appinfo.rh. +#include <AppInfo.rh> + +// All registration files must define UID2, which is always +// KUidAppRegistrationResourceFile, and UID3, which is the application's UID. +UID2 KUidAppRegistrationResourceFile +UID3 0xA0000657 // application UID + +// Registration file need to containo an APP_REGISTRATION_INFO resource that +// minimally needs to provide the name of the application binary (using the +// app_file statement). +RESOURCE APP_REGISTRATION_INFO + { + app_file = "ScummVM"; // filename of application binary (minus extension) + // Specify the location of the localisable icon/caption definition file + localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc"; + } + diff --git a/backends/platform/symbian/S80/BLD.INF.in b/backends/platform/symbian/S80/BLD.INF.in new file mode 100644 index 0000000000..75ef20be12 --- /dev/null +++ b/backends/platform/symbian/S80/BLD.INF.in @@ -0,0 +1,12 @@ +PRJ_PLATFORMS +WINS ARMI // ARM4 THUMB + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_S80.mmp +.\ScummVM_S80_App.mmp diff --git a/backends/platform/symbian/S80/ScummVM_S80.mmp.in b/backends/platform/symbian/S80/ScummVM_S80.mmp.in new file mode 100644 index 0000000000..6074439552 --- /dev/null +++ b/backends/platform/symbian/S80/ScummVM_S80.mmp.in @@ -0,0 +1,102 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC S80 MMP makefile project for ScummVM +// + +// *** Definitions + +#if defined(WINS) + TARGET ScummVM.dll +#else + TARGET ScummVM.exe +#endif +TARGETPATH system\apps\ScummVM +TARGETTYPE EXEDLL + +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +EPOCSTACKSIZE 0x00008000 +EPOCHEAPSIZE 1024 8192000 + +MACRO S80 + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +#if !defined(WINS) +STATICLIBRARY egcc.lib // for __fixunsdfsi +#endif + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\.. + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries + +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib apgrfx.lib +LIBRARY gdi.lib hal.lib bitgdi.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib bafl.lib + diff --git a/backends/platform/symbian/S80/ScummVM_S80_App.mmp b/backends/platform/symbian/S80/ScummVM_S80_App.mmp new file mode 100644 index 0000000000..09fa822bc7 --- /dev/null +++ b/backends/platform/symbian/S80/ScummVM_S80_App.mmp @@ -0,0 +1,49 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// MAKEFILE.MMP S80 ScummVM Launcher +// + +TARGET ScummVM.app +TARGETPATH system\apps\ScummVM +TARGETTYPE app + +UID 0x100039ce 0x101f9b57 +sourcepath ..\res +RESOURCE SCUMMVM.rss + +SOURCEPATH . +USERINCLUDE ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc + +// app source +sourcepath ..\src +SOURCE ScummVMApp.cpp + +sourcepath .. +AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp + +// libraries +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib +LIBRARY efsrv.lib apgrfx.lib diff --git a/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg b/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg new file mode 100644 index 0000000000..e48d37b08e --- /dev/null +++ b/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg @@ -0,0 +1,27 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM S80"},(0x101f9b57),0,80,3 + +; Platform type -- disabled: seems to be causing trouble +;(0x101F8ED2), 0, 0, 0, {"Series80ProductID"} + +; Launcher, Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\release\armi\urel\ScummVM.exe"-"!:\system\apps\ScummVM\ScummVM.exe" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/S90/BLD.INF.in b/backends/platform/symbian/S90/BLD.INF.in new file mode 100644 index 0000000000..d6e1ece012 --- /dev/null +++ b/backends/platform/symbian/S90/BLD.INF.in @@ -0,0 +1,12 @@ +PRJ_PLATFORMS +WINS ARMI // ARM4 THUMB + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_S90.mmp +.\ScummVM_S90_App.mmp diff --git a/backends/platform/symbian/S90/Scummvm_S90.mmp.in b/backends/platform/symbian/S90/Scummvm_S90.mmp.in new file mode 100644 index 0000000000..2655a553a4 --- /dev/null +++ b/backends/platform/symbian/S90/Scummvm_S90.mmp.in @@ -0,0 +1,102 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC S90 MMP makefile project for ScummVM +// + +// *** Definitions + +#if defined(WINS) + TARGET ScummVM.dll +#else + TARGET ScummVM.exe +#endif +TARGETPATH system\apps\ScummVM +TARGETTYPE EXEDLL + +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +EPOCSTACKSIZE 0x00008000 +EPOCHEAPSIZE 1024 8192000 + +MACRO S90 + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +#if !defined(WINS) +STATICLIBRARY egcc.lib // for __fixunsdfsi +#endif + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\.. + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries + +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib apgrfx.lib +LIBRARY gdi.lib hal.lib bitgdi.lib bafl.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib + diff --git a/backends/platform/symbian/S90/Scummvm_S90_App.mmp b/backends/platform/symbian/S90/Scummvm_S90_App.mmp new file mode 100644 index 0000000000..62a045e146 --- /dev/null +++ b/backends/platform/symbian/S90/Scummvm_S90_App.mmp @@ -0,0 +1,49 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// MAKEFILE.MMP S90 ScummVM Launcher +// + +TARGET ScummVM.app +TARGETPATH system\apps\ScummVM +TARGETTYPE app + +UID 0x100039ce 0x101f9b57 +sourcepath ..\res +RESOURCE SCUMMVM.rss + +SOURCEPATH . +USERINCLUDE . +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc + +// app source +sourcepath ..\src +SOURCE ScummVMApp.cpp + +sourcepath .. +AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp + +// libraries +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib +LIBRARY efsrv.lib apgrfx.lib
\ No newline at end of file diff --git a/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg b/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg new file mode 100644 index 0000000000..a913bd15ec --- /dev/null +++ b/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg @@ -0,0 +1,27 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM S90"},(0x101f9b57),0,80,3 + +; Platform type -- disabled: seems to be causing trouble +;(0x101FBE04), 0, 0, 0, {"Series90ProductID"} + +; Launcher, Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\release\armi\urel\ScummVM.exe"-"!:\system\apps\ScummVM\ScummVM.exe" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/UIQ2/BLD.INF.in b/backends/platform/symbian/UIQ2/BLD.INF.in new file mode 100644 index 0000000000..b607446a64 --- /dev/null +++ b/backends/platform/symbian/UIQ2/BLD.INF.in @@ -0,0 +1,11 @@ +PRJ_PLATFORMS +WINS ARMI // ARM4 THUMB + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_UIQ2.mmp diff --git a/backends/platform/symbian/UIQ2/ScummVM.rss b/backends/platform/symbian/UIQ2/ScummVM.rss new file mode 100644 index 0000000000..a55fabfc51 --- /dev/null +++ b/backends/platform/symbian/UIQ2/ScummVM.rss @@ -0,0 +1,46 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +// ScummVM.RSS + +NAME SCUM + +// Include definitions of resource STRUCTS used by this +// resource script +#include <eikon.rh> +#include "..\src\Scummvm.hrh" +// Include the standard Eikon resource ids +#include <eikon.rsg> + + +RESOURCE RSS_SIGNATURE + { + } + +RESOURCE TBUF16 { buf=""; } + +RESOURCE EIK_APP_INFO + { + } + diff --git a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in new file mode 100644 index 0000000000..9b2e432b19 --- /dev/null +++ b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in @@ -0,0 +1,106 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC UIQ MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET SCUMMVM.APP +TARGETPATH system\apps\ScummVM +TARGETTYPE app + +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +RESOURCE ScummVM.rss +EPOCSTACKSIZE 0x80008000 // this enables ECompXL app compression +AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp +UID 0x100039ce 0x101f9b57 + +MACRO UIQ +MACRO EPOC_AS_APP + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +#if !defined(WINS) +STATICLIBRARY egcc.lib // for __fixunsdfsi +#endif + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\..\ + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries + +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib apgrfx.lib +LIBRARY gdi.lib hal.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib +LIBRARY qikctl.lib bafl.lib + +START WINS +WIN32_LIBRARY lldiv.obj llmul.obj llshl.obj +END + diff --git a/backends/platform/symbian/UIQ2/Vibration.sis b/backends/platform/symbian/UIQ2/Vibration.sis Binary files differnew file mode 100644 index 0000000000..7cd9d33f15 --- /dev/null +++ b/backends/platform/symbian/UIQ2/Vibration.sis diff --git a/backends/platform/symbian/UIQ2/chkstk.obj b/backends/platform/symbian/UIQ2/chkstk.obj Binary files differnew file mode 100644 index 0000000000..1df42b21c3 --- /dev/null +++ b/backends/platform/symbian/UIQ2/chkstk.obj diff --git a/backends/platform/symbian/UIQ2/lldiv.obj b/backends/platform/symbian/UIQ2/lldiv.obj Binary files differnew file mode 100644 index 0000000000..60d7c98660 --- /dev/null +++ b/backends/platform/symbian/UIQ2/lldiv.obj diff --git a/backends/platform/symbian/UIQ2/llmul.obj b/backends/platform/symbian/UIQ2/llmul.obj Binary files differnew file mode 100644 index 0000000000..c6416030a3 --- /dev/null +++ b/backends/platform/symbian/UIQ2/llmul.obj diff --git a/backends/platform/symbian/UIQ2/llshl.obj b/backends/platform/symbian/UIQ2/llshl.obj Binary files differnew file mode 100644 index 0000000000..30c5749d83 --- /dev/null +++ b/backends/platform/symbian/UIQ2/llshl.obj diff --git a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg new file mode 100644 index 0000000000..2ebf7580f9 --- /dev/null +++ b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg @@ -0,0 +1,26 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM UIQ2"},(0x101f9b57),0,80,3 + +; Platform type +(0x101F617B), 2, 0, 0, {"UIQ20ProductID"} + +; Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg new file mode 100644 index 0000000000..a07149b702 --- /dev/null +++ b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg @@ -0,0 +1,31 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + +; Languages +;&EN + +; UID is the app's UID +#{"ScummVM SE"},(0x101f9b57),0,80,3 + +; Platform type +(0x101F617B), 2, 0, 0, {"UIQ20ProductID"} + +; Application, AIF & Resource file +"\epoc32\release\armi\urel\ScummVM.app"-"!:\system\apps\ScummVM\ScummVM.app" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.aif"-"!:\system\apps\ScummVM\ScummVM.aif" +"\epoc32\data\z\system\apps\ScummVM\ScummVM.rsc"-"!:\system\apps\ScummVM\ScummVM.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"!:\system\apps\ScummVM\scummvm.ini",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stdout.txt",FILENULL +""-"!:\system\apps\ScummVM\scummvm.stderr.txt",FILENULL +""-"!:\system\apps\ScummVM\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall. + +; add extra Vibration lib for P800, will be ignored during all other installs +IF MachineUID = 0x101F408B +@"Vibration.sis", (0x101F94A3) +ENDIF
\ No newline at end of file diff --git a/backends/platform/symbian/UIQ3/BLD.INF.in b/backends/platform/symbian/UIQ3/BLD.INF.in new file mode 100644 index 0000000000..9782901d6a --- /dev/null +++ b/backends/platform/symbian/UIQ3/BLD.INF.in @@ -0,0 +1,11 @@ +PRJ_PLATFORMS +WINS ARMI GCCE WINSCW THUMB + +PRJ_MMPFILES +//START_AUTO_PROJECTS// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_PROJECTS// + +.\ScummVM_UIQ3.mmp diff --git a/backends/platform/symbian/UIQ3/ScummVM.rss b/backends/platform/symbian/UIQ3/ScummVM.rss new file mode 100644 index 0000000000..9430f4a2ba --- /dev/null +++ b/backends/platform/symbian/UIQ3/ScummVM.rss @@ -0,0 +1,49 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id: ScummVM.rss,v 1.1 2006/06/01 19:00:29 anotherguest Exp $ + */ + +// ScummVM.RSS + +NAME SCUM + +// Include definitions of resource STRUCTS used by this +// resource script +#include <eikon.rh> +#include <qikon.rh> +#include "..\src\Scummvm.hrh" +// Include the standard Eikon resource ids +#include <eikon.rsg> + + +RESOURCE RSS_SIGNATURE + { + } + +RESOURCE TBUF16 { buf=""; } + +RESOURCE EIK_APP_INFO + { + } + +#include <sdl.ra> + diff --git a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in new file mode 100644 index 0000000000..170140848f --- /dev/null +++ b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in @@ -0,0 +1,125 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +// +// EPOC UIQ MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET SCUMMVM.exe +//TARGETPATH sys\bin +TARGETTYPE exe + +START RESOURCE ScummVM_reg.rss +TARGETPATH \private\10003a3f\apps +END + +START RESOURCE ScummVM_loc.rss +TARGETPATH \Resource\Apps +LANG SC +END + +SOURCEPATH . +START RESOURCE ScummVM.rss +HEADER +TARGETPATH \Resource\Apps +LANG SC +END + +EPOCSTACKSIZE 0x0000FFFF +EPOCHEAPSIZE 0xFA000 0xfA0000 + +START BITMAP ScummVM.mbm +TARGETPATH \Resource\Apps +SOURCEPATH ..\res +// Source Color-depth Source-bitmap-list +// c denotes whether the bitmap is a colour bitmap and the digits represent the +// colour-depth of the bitmap and the bitmap mask respectively +SOURCE c24 ScummSmall.bmp +SOURCE 8 ScummSmallMask.bmp +SOURCE c24 ScummLarge.bmp +SOURCE 8 ScummLargeMask.bmp +SOURCE c24 ScummxLarge.bmp +SOURCE 8 ScummxLargeMask.bmp +END +UID 0x100039ce 0xA0000657 + +MACRO UIQ +MACRO UIQ3 +MACRO EPOC_AS_APP + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** Static Libraries + +STATICLIBRARY esdl.lib + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\engines +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl ..\..\..\sound + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\base + +//START_AUTO_OBJECTS_BASE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_BASE_// + +SOURCEPATH ..\..\..\ + +// backend EPOC/SDL/ESDL specific includes +SOURCE backends\sdl\events.cpp +SOURCE backends\sdl\graphics.cpp +SOURCE backends\sdl\sdl.cpp +SOURCE backends\fs\symbian\symbian-fs.cpp +SOURCE backends\symbian\src\SymbianOS.cpp +SOURCE backends\symbian\src\SymbianActions.cpp +SOURCE backends\symbian\src\ScummApp.cpp + +SOURCE gui\Key.cpp +SOURCE gui\KeysDialog.cpp +SOURCE gui\Actions.cpp + +// *** Dynamic Libraries + +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY estlib.lib apgrfx.lib +LIBRARY gdi.lib hal.lib bitgdi.lib +LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib +LIBRARY qikctl.lib +library qikcore.lib bafl.lib eikcoctl.lib
\ No newline at end of file diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg new file mode 100644 index 0000000000..3a47591b0a --- /dev/null +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg @@ -0,0 +1,33 @@ +;;; +;;; ScummVM .PKG file for .SIS gegeration +;;; + + +; List of localised vendor names - one per language. At least one must be provided (English [EN]). +; List must correspond to list of languages specified elsewhere in the .pkg +%{"ScummVM"} +; The non-localised, globally unique vendor name (mandatory) +:"ScummVM" + +; UID is the app's UID +#{"ScummVM UIQ3"},(0xA0000657),0,90,0 + +; ProductID for UIQ 3.0 +; Product/platform version UID, Major, Minor, Build, Product ID +(0x101F6300), 3, 0, 0, {"UIQ30ProductID"} + +; Application, AIF & Resource file +"\uiq3\epoc32\release\gcce\urel\ScummVM.exe"- "!:\sys\bin\ScummVM.exe" +"\uiq3\epoc32\data\z\resource\apps\ScummVM.rsc"- "!:\resource\apps\ScummVM.rsc" +"\uiq3\epoc32\Data\Z\resource\apps\scummvm_loc.rsc"- "!:\resource\apps\scummvm_loc.rsc" +"\uiq3\epoc32\data\Z\resource\APPS\scummvm.MBM"- "!:\resource\apps\scummvm.MBM" +"\uiq3\epoc32\data\z\private\10003a3f\apps\scummvm_reg.rsc"-"!:\private\10003a3f\import\apps\scummvm_reg.rsc" + +; Config/log files: 'empty' will automagically be removed on uninstall +""-"c:\private\A0000657\scummvm.ini",FILENULL +""-"c:\private\A0000657\scummvm.stdout.txt",FILENULL +""-"c:\private\A0000657\scummvm.stderr.txt",FILENULL +""-"c:\private\A0000657\sdl.ini",FILENULL + +; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. +; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file diff --git a/backends/platform/symbian/UIQ3/scummvm_loc.rss b/backends/platform/symbian/UIQ3/scummvm_loc.rss new file mode 100644 index 0000000000..1b068a1c2c --- /dev/null +++ b/backends/platform/symbian/UIQ3/scummvm_loc.rss @@ -0,0 +1,59 @@ +#include <AppInfo.rh> +#include <Qikon.hrh> + +// This file localise the applications icons and caption +RESOURCE LOCALISABLE_APP_INFO + { + caption_and_icon = + { + CAPTION_AND_ICON_INFO + { + // The caption text is defined in the rls file + caption = "ScummVM"; + // Icons are used to represent applications in the + // application launcher and application title bar. + // The number_of_icons value identifies how many icons + // that exist in the icon_file. + number_of_icons = 3; + // Using the application icons. + icon_file = "\\Resource\\Apps\\ScummVM.mbm"; + } + }; + + view_list = + { + VIEW_DATA + { + uid = 0x10000001; + screen_mode = 0; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + }, + VIEW_DATA + { + uid = 0x10000001; + screen_mode = EQikScreenModeLandscape; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + }, + VIEW_DATA + { + uid = 0x10000001; + screen_mode = EQikScreenModeSmallPortrait; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + }, + VIEW_DATA + { + uid = 0x10000001; + screen_mode = EQikScreenModeSmallLandscape; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + } + }; + } + diff --git a/backends/platform/symbian/UIQ3/scummvm_reg.rss b/backends/platform/symbian/UIQ3/scummvm_reg.rss new file mode 100644 index 0000000000..df99094b2e --- /dev/null +++ b/backends/platform/symbian/UIQ3/scummvm_reg.rss @@ -0,0 +1,18 @@ +// All registration files need to #include appinfo.rh. +#include <AppInfo.rh> + +// All registration files must define UID2, which is always +// KUidAppRegistrationResourceFile, and UID3, which is the application's UID. +UID2 KUidAppRegistrationResourceFile +UID3 0xA0000657 // application UID + +// Registration file need to containo an APP_REGISTRATION_INFO resource that +// minimally needs to provide the name of the application binary (using the +// app_file statement). +RESOURCE APP_REGISTRATION_INFO + { + app_file = "ScummVM"; // filename of application binary (minus extension) + // Specify the location of the localisable icon/caption definition file + localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc"; + } + diff --git a/backends/platform/symbian/mmp/scummvm_agi.mmp.in b/backends/platform/symbian/mmp/scummvm_agi.mmp.in new file mode 100644 index 0000000000..8dcc52f05d --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_agi.mmp.in @@ -0,0 +1,55 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_agi.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\agi + +//START_AUTO_OBJECTS_AGI_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_AGI_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in new file mode 100644 index 0000000000..3535621934 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in @@ -0,0 +1,111 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_base.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +// Note: the LIB:*.lib statements are used by AdaptAllMMPs.pl, so don't remove them! +//START_AUTO_MACROS_MASTER// + + // empty base file, will be updated by Perl build scripts + + // list of possible MACROs: (will be replaced when generating scummvm_base.mmp) + //MACRO USE_ZLIB // LIB:zlib.lib + //MACRO USE_MAD // LIB:libmad.lib + //MACRO USE_TREMOR // LIB:libtremor.lib + //MACRO USE_UIQ_SE_VIBRA // LIB:vibration.lib + //MACRO DISABLE_SCUMM_7_8 + //MACRO DISABLE_SCUMM_HE + //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib + //MACRO DISABLE_SIMON // LIB:scummvm_simon.lib + //MACRO DISABLE_SKY // LIB:scummvm_sky.lib + //MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib + //MACRO DISABLE_GOB // LIB:scummvm_gob.lib + //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib + //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + //MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib + //MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib + //MACRO DISABLE_LURE // LIB:scummvm_lure.lib + //MACRO DISABLE_CINE // LIB:scummvm_cine.lib + //MACRO DISABLE_AGI // LIB:scummvm_cine.lib + +//STOP_AUTO_MACROS_MASTER// + +// *** Include paths + +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound +USERINCLUDE ..\..\..\backends\fs ..\src ..\..\..\backends\sdl + +SYSTEMINCLUDE \epoc32\include\ESDL +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\tremor +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h + +// *** SOURCE files + +SOURCEPATH ..\..\..\common +//START_AUTO_OBJECTS_COMMON_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_COMMON_// + +SOURCEPATH ..\..\..\graphics +//START_AUTO_OBJECTS_GRAPHICS_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_GRAPHICS_// + +SOURCEPATH ..\..\..\gui +//START_AUTO_OBJECTS_GUI_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_GUI_// +// these next three will go into gui\modules.mk and will end up in START_AUTO_OBJECTS_GUI +// for now they are in the phone platform specific MMP files because of library dependency probs during linking +//SOURCE Key.cpp +//SOURCE KeysDialog.cpp +//SOURCE Actions.cpp + +SOURCEPATH ..\..\..\sound +//START_AUTO_OBJECTS_SOUND_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SOUND_// + +sourcepath ..\..\.. +// backend specific includes +SOURCE backends\fs\fs.cpp +// backend specific includes diff --git a/backends/platform/symbian/mmp/scummvm_cine.mmp.in b/backends/platform/symbian/mmp/scummvm_cine.mmp.in new file mode 100644 index 0000000000..8385d93a5a --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_cine.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM CINE +// + +// *** Definitions + +TARGET scummvm_CINE.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\cine + +//START_AUTO_OBJECTS_CINE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_CINE_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_gob.mmp.in b/backends/platform/symbian/mmp/scummvm_gob.mmp.in new file mode 100644 index 0000000000..a99d900da0 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_gob.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_gob.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\gob + +//START_AUTO_OBJECTS_GOB_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_GOB_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_kyra.mmp.in b/backends/platform/symbian/mmp/scummvm_kyra.mmp.in new file mode 100644 index 0000000000..60703336ca --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_kyra.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM Kyra +// + +// *** Definitions + +TARGET scummvm_kyra.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\kyra + +//START_AUTO_OBJECTS_KYRA_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_KYRA_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_lure.mmp.in b/backends/platform/symbian/mmp/scummvm_lure.mmp.in new file mode 100644 index 0000000000..55445358bb --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_lure.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_lure.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\lure + +//START_AUTO_OBJECTS_LURE_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_LURE_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_queen.mmp.in b/backends/platform/symbian/mmp/scummvm_queen.mmp.in new file mode 100644 index 0000000000..c1b3c03a45 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_queen.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_queen.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\queen + +//START_AUTO_OBJECTS_QUEEN_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_QUEEN_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_saga.mmp.in b/backends/platform/symbian/mmp/scummvm_saga.mmp.in new file mode 100644 index 0000000000..8ee0afd197 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_saga.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM Saga +// + +// *** Definitions + +TARGET scummvm_saga.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\saga + +//START_AUTO_OBJECTS_SAGA_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SAGA_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_scumm.mmp.in b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in new file mode 100644 index 0000000000..fd9f6ccb6d --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in @@ -0,0 +1,70 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_scumm.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\scumm + +//START_AUTO_OBJECTS_SCUMM_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SCUMM_// + +//START_AUTO_OBJECTS_SCUMM_DISABLE_SCUMM_7_8// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SCUMM_DISABLE_SCUMM_7_8// + +//START_AUTO_OBJECTS_SCUMM_DISABLE_HE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SCUMM_DISABLE_HE// + +// *** Include paths + +USERINCLUDE ..\..\..\engines ..\..\..\engines\scumm\smush ..\..\..\engines\scumm\insane +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src + +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include +SYSTEMINCLUDE ..\src // for portdefs.h diff --git a/backends/platform/symbian/mmp/scummvm_simon.mmp.in b/backends/platform/symbian/mmp/scummvm_simon.mmp.in new file mode 100644 index 0000000000..4587392b20 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_simon.mmp.in @@ -0,0 +1,55 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_simon.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\simon + +//START_AUTO_OBJECTS_SIMON_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SIMON_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sky.mmp.in b/backends/platform/symbian/mmp/scummvm_sky.mmp.in new file mode 100644 index 0000000000..46097372a3 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_sky.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_sky.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\sky + +//START_AUTO_OBJECTS_SKY_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SKY_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines ..\..\..\engines\sky\music +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sword1.mmp.in b/backends/platform/symbian/mmp/scummvm_sword1.mmp.in new file mode 100644 index 0000000000..3d6cf3f501 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_sword1.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_sword1.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\sword1 + +//START_AUTO_OBJECTS_SWORD1_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SWORD1_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_sword2.mmp.in b/backends/platform/symbian/mmp/scummvm_sword2.mmp.in new file mode 100644 index 0000000000..dbb0bce879 --- /dev/null +++ b/backends/platform/symbian/mmp/scummvm_sword2.mmp.in @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +// +// EPOC MMP makefile project for ScummVM +// + +// *** Definitions + +TARGET scummvm_sword2.lib +TARGETTYPE lib +OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp +OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings + +//START_AUTO_MACROS_SLAVE// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_MACROS_SLAVE// + +// *** SOURCE files + +SOURCEPATH ..\..\..\engines\sword2 + +//START_AUTO_OBJECTS_SWORD2_// + + // empty base file, will be updated by Perl build scripts + +//STOP_AUTO_OBJECTS_SWORD2_// + +// *** Include paths + +USERINCLUDE ..\..\..\engines +USERINCLUDE ..\..\.. ..\..\..\common ..\..\..\gui ..\..\..\sound ..\src +SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/res/ScummS.bmp b/backends/platform/symbian/res/ScummS.bmp Binary files differnew file mode 100644 index 0000000000..065b0ce74e --- /dev/null +++ b/backends/platform/symbian/res/ScummS.bmp diff --git a/backends/platform/symbian/res/ScummSmall.bmp b/backends/platform/symbian/res/ScummSmall.bmp Binary files differnew file mode 100644 index 0000000000..ce8013ad2d --- /dev/null +++ b/backends/platform/symbian/res/ScummSmall.bmp diff --git a/backends/platform/symbian/res/ScummVmAif.rss b/backends/platform/symbian/res/ScummVmAif.rss new file mode 100644 index 0000000000..ad222e550b --- /dev/null +++ b/backends/platform/symbian/res/ScummVmAif.rss @@ -0,0 +1,43 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include <aiftool.rh> + + +RESOURCE AIF_DATA + { + app_uid= 0x101f9b57; + // + hidden=KAppNotHidden; + embeddability=KAppNotEmbeddable; + caption_list= + { + CAPTION { code=ELangEnglish; caption="ScummVM"; }, + CAPTION { code=ELangAmerican; caption="ScummVM"; }, + CAPTION { code=ELangOther; caption="ScummVM"; } + }; + // + num_icons=2; + } + + + diff --git a/backends/platform/symbian/res/scummL.bmp b/backends/platform/symbian/res/scummL.bmp Binary files differnew file mode 100644 index 0000000000..a47f3c9da4 --- /dev/null +++ b/backends/platform/symbian/res/scummL.bmp diff --git a/backends/platform/symbian/res/scummLarge.bmp b/backends/platform/symbian/res/scummLarge.bmp Binary files differnew file mode 100644 index 0000000000..400dca6dcb --- /dev/null +++ b/backends/platform/symbian/res/scummLarge.bmp diff --git a/backends/platform/symbian/res/scummLargeMask.bmp b/backends/platform/symbian/res/scummLargeMask.bmp Binary files differnew file mode 100644 index 0000000000..c13a546122 --- /dev/null +++ b/backends/platform/symbian/res/scummLargeMask.bmp diff --git a/backends/platform/symbian/res/scummLm.bmp b/backends/platform/symbian/res/scummLm.bmp Binary files differnew file mode 100644 index 0000000000..2632b9111f --- /dev/null +++ b/backends/platform/symbian/res/scummLm.bmp diff --git a/backends/platform/symbian/res/scummSm.bmp b/backends/platform/symbian/res/scummSm.bmp Binary files differnew file mode 100644 index 0000000000..62957a8274 --- /dev/null +++ b/backends/platform/symbian/res/scummSm.bmp diff --git a/backends/platform/symbian/res/scummSmallMask.bmp b/backends/platform/symbian/res/scummSmallMask.bmp Binary files differnew file mode 100644 index 0000000000..b407894206 --- /dev/null +++ b/backends/platform/symbian/res/scummSmallMask.bmp diff --git a/backends/platform/symbian/res/scummvm.rss b/backends/platform/symbian/res/scummvm.rss new file mode 100644 index 0000000000..684e42f4e5 --- /dev/null +++ b/backends/platform/symbian/res/scummvm.rss @@ -0,0 +1,62 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + */ + +// ScummVM.RSS + +NAME SCUM + +// Include definitions of resource STRUCTS used by this +// resource script +#include <eikon.rh> +#include "..\src\Scummvm.hrh" +// Include the standard Eikon resource ids +#include <eikon.rsg> + + +RESOURCE RSS_SIGNATURE + { + } + +RESOURCE TBUF16 { buf=""; } + +RESOURCE EIK_APP_INFO + { + menubar = r_scum_menubar; + } + +RESOURCE MENU_BAR r_scum_menubar // *** Menu bar +{ + titles = + { + MENU_TITLE { menu_pane = r_scum_menu; txt = "ScummVM"; } + }; +} + +RESOURCE MENU_PANE r_scum_menu // *** Submenu +{ + items = + { + + MENU_ITEM{command = EEikCmdExit;txt = "Exit";} + }; +} diff --git a/backends/platform/symbian/res/scummxLarge.bmp b/backends/platform/symbian/res/scummxLarge.bmp Binary files differnew file mode 100644 index 0000000000..cf590d17d4 --- /dev/null +++ b/backends/platform/symbian/res/scummxLarge.bmp diff --git a/backends/platform/symbian/res/scummxLargeMask.bmp b/backends/platform/symbian/res/scummxLargeMask.bmp Binary files differnew file mode 100644 index 0000000000..1c3de48e3e --- /dev/null +++ b/backends/platform/symbian/res/scummxLargeMask.bmp diff --git a/backends/platform/symbian/src/ScummApp.cpp b/backends/platform/symbian/src/ScummApp.cpp new file mode 100644 index 0000000000..4315c15065 --- /dev/null +++ b/backends/platform/symbian/src/ScummApp.cpp @@ -0,0 +1,119 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#include "backends/symbian/src/ScummApp.h" +#include "backends/symbian/src/ScummVM.hrh" + +#define _PAGESIZE_ 0x1000 + +#if defined (__WINS__) && !defined (__SERIES60_30__) && !defined (UIQ3) +extern "C" int _chkstk(int /*a*/) { +_asm { + push ecx + cmp eax,_PAGESIZE_ + lea ecx,[esp] + 8 + jb short lastpage + + probepages: + sub ecx,_PAGESIZE_ + sub eax,_PAGESIZE_ + + test dword ptr [ecx],eax + + cmp eax,_PAGESIZE_ + jae short probepages + + lastpage: + sub ecx,eax + mov eax,esp + + test dword ptr [ecx],eax + + mov esp,ecx + + mov ecx,dword ptr [eax] + mov eax,dword ptr [eax + 4] + + push eax + ret + } + return 1; +} +#endif + +#ifdef EPOC_AS_APP + +// this function is called automatically by the SymbianOS to deliver the new CApaApplication object +#if !defined (UIQ3) && !defined (S60V3) +EXPORT_C +#endif +CApaApplication* NewApplication() { + // Return pointer to newly created CQMApp + return new CScummApp; +} + +#if defined (UIQ3) || defined (S60V3) +#include <eikstart.h> +// E32Main() contains the program's start up code, the entry point for an EXE. +GLDEF_C TInt E32Main() { + return EikStart::RunApplication(NewApplication); +} +#endif + +#endif // EPOC_AS_APP + +#if !defined (UIQ3) && !defined (S60V3) +GLDEF_C TInt E32Dll(TDllReason) { + return KErrNone; +} +#endif + +CScummApp::CScummApp() { +} + +CScummApp::~CScummApp() { +} + +#if defined (UIQ3) +#include <scummvm.rsg> +/** + * Returns the resource id to be used to declare the views supported by this UIQ3 app + * @return TInt, resource id + */ +TInt CScummApp::ViewResourceId() { + return R_SDL_VIEW_UI_CONFIGURATIONS; +} +#endif + +/** + * Responsible for returning the unique UID of this application + * @return unique UID for this application in a TUid + **/ +TUid CScummApp::AppDllUid() const { + return TUid::Uid(ScummUid); +} + +///////////////////////////////////////////////////////////////////////////////////////////////// + + diff --git a/backends/platform/symbian/src/ScummApp.h b/backends/platform/symbian/src/ScummApp.h new file mode 100644 index 0000000000..bd81edaa83 --- /dev/null +++ b/backends/platform/symbian/src/ScummApp.h @@ -0,0 +1,54 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#ifndef ScummAPPH +#define ScummAPPH + +#include <eikapp.h> +#include <e32base.h> +#include <sdlapp.h> + +#if defined (EPOC_AS_APP) && !defined (UIQ3) && !defined (S60V3) +#include "ECompXL.h" +#endif + +class CScummApp : public CSDLApp { +public: + CScummApp(); + ~CScummApp(); +#if defined (UIQ3) + /** + * Returns the resource id to be used to declare the views supported by this UIQ3 app + * @return TInt, resource id + */ + TInt ViewResourceId(); +#endif + TUid AppDllUid() const; +#if defined (EPOC_AS_APP) && !defined (UIQ3) && !defined (S60V3) + TECompXL iECompXL; +#endif +}; +#endif + + diff --git a/backends/platform/symbian/src/ScummVMApp.cpp b/backends/platform/symbian/src/ScummVMApp.cpp new file mode 100644 index 0000000000..e30cb62e87 --- /dev/null +++ b/backends/platform/symbian/src/ScummVMApp.cpp @@ -0,0 +1,170 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "ScummVMapp.h" +#include <scummvm.rsg> +#include <apgcli.h> +#include <eikdll.h> +#include <apgtask.h> + +EXPORT_C CApaApplication *NewApplication() { + return (new CScummVM); +} + +CScummVM::CScummVM() { +} + +CScummVM::~CScummVM() { +} + +CApaDocument *CScummVM::CreateDocumentL() { + return new (ELeave)CScummVMDoc(*this); +} + +TUid CScummVM::AppDllUid() const { + return TUid::Uid(0x101f9b57); +} + +CScummVMDoc::CScummVMDoc(CEikApplication &aApp) : CEikDocument(aApp) { +} + +CScummVMDoc::~CScummVMDoc() { +} + +CEikAppUi *CScummVMDoc::CreateAppUiL() { + return new (ELeave)CScummVMUi; +} + +void CScummVMUi::HandleForegroundEventL(TBool aForeground) { + if(aForeground) { + BringUpEmulatorL(); + } +} + +CScummVMUi::CScummVMUi() { +} + +CScummVMUi::~CScummVMUi() { + if(iWatcher) { + iThreadWatch.LogonCancel(iWatcher->iStatus); + iWatcher->Cancel(); + } + + delete iWatcher; + + iThreadWatch.Close(); +} + +void CScummVMUi::ConstructL() { + BaseConstructL(); + TBuf<128> startFile; + startFile = iEikonEnv->EikAppUi()->Application()->AppFullName(); + TParse parser; + parser.Set(startFile,NULL,NULL); + + startFile = parser.DriveAndPath(); +#ifndef __WINS__ + startFile.Append( _L("ScummVM.exe")); +#else + startFile.Append( _L("ScummVM.dll")); +#endif + CApaCommandLine *cmdLine = CApaCommandLine::NewLC(startFile); + RApaLsSession lsSession; + + lsSession.Connect(); + CleanupClosePushL(lsSession); + lsSession.StartApp(*cmdLine, iThreadId); + + CleanupStack::PopAndDestroy();//close lsSession + CleanupStack::PopAndDestroy(cmdLine); + + User::After(500000);// Let the application start + + TApaTaskList taskList(iEikonEnv->WsSession()); + + TApaTask myTask = taskList.FindApp(TUid::Uid(0x101f9b57)); + myTask.SendToBackground(); + + TApaTask exeTask = taskList.FindByPos(0); + + iExeWgId=exeTask.WgId(); + exeTask.BringToForeground(); + + if(iExeWgId == myTask.WgId()) { // Should n't be the same + Exit(); + } + if(iThreadWatch.Open(iThreadId) == KErrNone) { + iWatcher = new (ELeave)CScummWatcher; + iWatcher->iAppUi = this; + iThreadWatch.Logon(iWatcher->iStatus); + } +} + +CScummWatcher::CScummWatcher() : CActive(EPriorityStandard) { + CActiveScheduler::Add(this); + + iStatus = KRequestPending; + SetActive(); +} + +CScummWatcher::~CScummWatcher() { +} + +void CScummWatcher::DoCancel() { +} + +void CScummWatcher::RunL() { + iAppUi->HandleCommandL(EEikCmdExit); +} + +void CScummVMUi::BringUpEmulatorL() { + RThread thread; + + if(thread.Open(iThreadId) == KErrNone) { + thread.Close(); + TApaTask apaTask(iEikonEnv->WsSession()); + apaTask.SetWgId(iExeWgId); + apaTask.BringToForeground(); + } else { + iExeWgId = -1; + Exit(); + } +} + +void CScummVMUi::HandleCommandL(TInt aCommand) { + switch(aCommand) { + case EEikCmdExit: + { + RThread thread; + if(thread.Open(iThreadId) == KErrNone) { + thread.Terminate(0); + thread.Close(); + } + Exit(); + } + break; + } +} + +GLDEF_C TInt E32Dll(TDllReason) { + return KErrNone; +} diff --git a/backends/platform/symbian/src/ScummVMApp.h b/backends/platform/symbian/src/ScummVMApp.h new file mode 100644 index 0000000000..0c422ad178 --- /dev/null +++ b/backends/platform/symbian/src/ScummVMApp.h @@ -0,0 +1,82 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef ScummVMapph +#define ScummVMapph + +#include <eikapp.h> +#include <e32base.h> +#include <coecntrl.h> +#include <eikenv.h> +#include <coeview.h> +#include <eikappui.h> + +class CScummVM : public CEikApplication { +public: + CScummVM(); + ~CScummVM(); + + CApaDocument *CreateDocumentL(); + TUid AppDllUid() const; +}; + + +#include <eikdoc.h> + +class CScummVMDoc : public CEikDocument { +public: + CScummVMDoc(CEikApplication &aApplicaiton); + ~CScummVMDoc(); + + CEikAppUi *CreateAppUiL(); + void ConstructL(); +}; + +#include <eikappui.h> +class CScummVMUi; +class CScummWatcher : public CActive { +public: + CScummWatcher(); + ~CScummWatcher(); + + void DoCancel(); + void RunL(); + CScummVMUi *iAppUi; +}; + +class CScummVMUi : public CEikAppUi { +public: + CScummVMUi(); + ~CScummVMUi(); + + void ConstructL(); + void HandleCommandL(TInt aCommand); + void HandleForegroundEventL(TBool aForeground); + void BringUpEmulatorL(); + +private: + TThreadId iThreadId; + TInt iExeWgId; + RThread iThreadWatch; + CScummWatcher *iWatcher; +}; +#endif diff --git a/backends/platform/symbian/src/ScummVm.hrh b/backends/platform/symbian/src/ScummVm.hrh new file mode 100644 index 0000000000..4966b41e0b --- /dev/null +++ b/backends/platform/symbian/src/ScummVm.hrh @@ -0,0 +1,30 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef ScummHRH +#define ScummHRH +#if defined (UIQ3) || defined (S60V3) +#define ScummUid 0xA0000657 +#else +#define ScummUid 0x101f9b57 +#endif +#endif diff --git a/backends/platform/symbian/src/SymbianActions.cpp b/backends/platform/symbian/src/SymbianActions.cpp new file mode 100644 index 0000000000..ff85266af5 --- /dev/null +++ b/backends/platform/symbian/src/SymbianActions.cpp @@ -0,0 +1,189 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#include "common/stdafx.h" +#include "backends/symbian/src/SymbianActions.h" + +#include "gui/message.h" +#include "scumm/scumm.h" +#include "common/config-manager.h" + +#include <sdl.h> + +namespace GUI { + +// SumthinWicked says: we either split our Actions like WinCE did with Pocket/Smartphone +// or we put them in this file separated by #ifdefs, this one is up to you, AnotherGuest :) + +const Common::String actionNames[] = { + "Up", + "Down", + "Left", + "Right", + "Left Click", + "Right Click", + "Save", + "Skip", + "Zone", + "FT Cheat", + "Swap character", + "Skip text", + "Pause", + "Quit" +}; + +#ifdef UIQ +static const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, SDLK_F1, SDLK_F2, SDLK_F5, SDLK_PAGEDOWN, 0, 0, 0, SDLK_PAGEUP, 0, 0}; +#elif defined (S60) +const int ACTIONS_DEFAULT[ACTION_LAST] = { 0, 0, 0, 0, 0, 0, '*', '#', '9',0,0,0,0,0}; +#elif defined (S90) +const int ACTIONS_DEFAULT[ACTION_LAST] = { SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, 0, 0, SDLK_MENU, SDLK_ESCAPE, 0, 0,0,0,0,0}; +#else +const int ACTIONS_DEFAULT[ACTION_LAST] = { SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, SDLK_F1, SDLK_F2, SDLK_MENU, SDLK_ESCAPE, 0, 0, 0, 0, 0, 0}; +#endif + +// creator function according to Factory Pattern +void SymbianActions::init() { + _instance = new SymbianActions(); +} + + +Common::String SymbianActions::actionName(ActionType action) { + return actionNames[action]; +} + +int SymbianActions::size() { + return ACTION_LAST; +} + +Common::String SymbianActions::domain() { + return Common::ConfigManager::kApplicationDomain; +} + +int SymbianActions::version() { + return ACTION_VERSION; +} + +SymbianActions::SymbianActions() + : Actions() { + int i; + + for (i = 0; i < ACTION_LAST; i++) { + _action_mapping[i] = ACTIONS_DEFAULT[i]; + _action_enabled[i] = false; + } + +} + +void SymbianActions::initInstanceMain(OSystem *mainSystem) { + Actions::initInstanceMain(mainSystem); + + // Mouse Up + _action_enabled[ACTION_UP] = true; + + // Mouse Down + _action_enabled[ACTION_DOWN] = true; + + // Mouse Left + _action_enabled[ACTION_LEFT] = true; + + // Mouse Right + _action_enabled[ACTION_RIGHT] = true; + + // Left Click + _action_enabled[ACTION_LEFTCLICK] = true; + + // Right Click + _action_enabled[ACTION_RIGHTCLICK] = true; + + // Skip + _action_enabled[ACTION_SKIP] = true; + _key_action[ACTION_SKIP].setAscii(SDLK_ESCAPE); +} + +void SymbianActions::initInstanceGame() { + Common::String gameid(ConfMan.get("gameid")); + bool is_simon = (strncmp(gameid.c_str(), "simon", 5) == 0); + bool is_sky = (strncmp(gameid.c_str(), "sky", 3) == 0); + bool is_queen = (strncmp(gameid.c_str(), "queen", 5) == 0); + bool is_gob = (strncmp(gameid.c_str(), "gob", 3) == 0); + bool is_ite = ((strncmp(gameid.c_str(), "ite", 3) == 0) || + (strncmp(gameid.c_str(), "ihnm", 4) == 0)); + + Actions::initInstanceGame(); + + // See if a right click mapping could be needed + if (is_sky || gameid == "samnmax" || is_gob) + _right_click_needed = true; + + // Initialize keys for different actions + // Save + if (is_simon || is_gob) + _action_enabled[ACTION_SAVE] = false; + else if (is_queen || is_ite) { + _action_enabled[ACTION_SAVE] = true; + _key_action[ACTION_SAVE].setAscii(SDLK_F1); // F1 key for FOTAQ and ITE + } else if (is_sky) { + _action_enabled[ACTION_SAVE] = true; + _key_action[ACTION_SAVE].setAscii(63); + } else { + _action_enabled[ACTION_SAVE] = true; + _key_action[ACTION_SAVE].setAscii(SDLK_F5); // F5 key + } + + // Swap character + _action_enabled[ACTION_SWAPCHAR] = true; + _key_action[ACTION_SWAPCHAR].setAscii('b'); // b + + // Zone + _action_enabled[ACTION_ZONE] = true; + + // FT Cheat + _action_enabled[ACTION_FT_CHEAT] = true; + _key_action[ACTION_FT_CHEAT].setAscii(86); // shift-V + + // Skip text + _action_enabled[ACTION_SKIP_TEXT] = true; + if (is_queen) { + _key_action[ACTION_SKIP_TEXT].setAscii(SDLK_SPACE); + } else { + _key_action[ACTION_SKIP_TEXT].setAscii(SDLK_PERIOD); + } + + // Pause + _key_action[ACTION_PAUSE].setAscii(' '); + _action_enabled[ACTION_PAUSE] = true; + + // Quit + _action_enabled[ACTION_QUIT] = true; +} + + +SymbianActions::~SymbianActions() { +} + +bool SymbianActions::perform(ActionType /*action*/, bool /*pushed*/) { + + return false; +} + +} // namespace GUI diff --git a/backends/platform/symbian/src/SymbianActions.h b/backends/platform/symbian/src/SymbianActions.h new file mode 100644 index 0000000000..5f435d5912 --- /dev/null +++ b/backends/platform/symbian/src/SymbianActions.h @@ -0,0 +1,77 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ + +#ifndef SYMBIANACTIONS_H +#define SYMBIANACTIONS_H + +#include "common/stdafx.h" +#include "common/scummsys.h" +#include "common/system.h" +#include "gui/Key.h" +#include "gui/Actions.h" + +namespace GUI { + +#define ACTION_VERSION 6 + +enum actionType { + ACTION_UP = 0, + ACTION_DOWN, + ACTION_LEFT, + ACTION_RIGHT, + ACTION_LEFTCLICK, + ACTION_RIGHTCLICK, + ACTION_SAVE, + ACTION_SKIP, + ACTION_ZONE, + ACTION_FT_CHEAT, + ACTION_SWAPCHAR, + ACTION_SKIP_TEXT, + ACTION_PAUSE, + ACTION_QUIT, + ACTION_LAST +}; + +class SymbianActions : public Actions { +public: + // Actions + bool perform(ActionType action, bool pushed = true); + Common::String actionName(ActionType action); + int size(); + static void init(); + void initInstanceMain(OSystem *mainSystem); + void initInstanceGame(); + + // Action domain + Common::String domain(); + int version(); + + ~SymbianActions(); + +private: + SymbianActions(); + bool _right_click_needed; +}; + +} // namespace GUI + +#endif diff --git a/backends/platform/symbian/src/SymbianOS.cpp b/backends/platform/symbian/src/SymbianOS.cpp new file mode 100644 index 0000000000..b0b4486418 --- /dev/null +++ b/backends/platform/symbian/src/SymbianOS.cpp @@ -0,0 +1,419 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#include "backends/symbian/src/SymbianOS.h" +#include "backends/symbian/src/SymbianActions.h" +#include "common/config-manager.h" +#include "gui/Actions.h" +#include "gui/Key.h" +#include "gui/message.h" + +#include <eikenv.h> // for CEikonEnv::Static() @ Symbian::FatalError() +#include "ESDL/sdlapp.h" // for CSDLApp::GetExecutablePathCStr() @ Symbian::GetExecutablePath() + +////////// extern "C" /////////////////////////////////////////////////// + +extern Common::ConfigManager *g_config; + +namespace Symbian { + +// Show a simple Symbian Info win with Msg & exit +void FatalError(const char *msg) { + TPtrC8 msgPtr((const TUint8 *)msg); + TBuf<512> msg16Bit; + msg16Bit.Copy(msgPtr); + CEikonEnv::Static()->InfoWinL(_L("ScummVM Fatal Error"), msg16Bit); + + if (g_system) + g_system->quit(); +} + +// make this easily available everywhere +char* GetExecutablePath() +{ + return CSDLApp::GetExecutablePathCStr(); +} + +} // namespace Symbian { + +////////// OSystem_SDL_Symbian ////////////////////////////////////////// + +static const OSystem::GraphicsMode s_supportedGraphicsModes[] = { + {"1x", "Fullscreen", GFX_NORMAL}, + {0, 0, 0} +}; + +bool OSystem_SDL_Symbian::hasFeature(Feature f) { + switch(f) { + case kFeatureFullscreenMode: + case kFeatureAspectRatioCorrection: + case kFeatureAutoComputeDirtyRects: + case kFeatureCursorHasPalette: +#ifdef USE_VIBRA_SE_PXXX + case kFeatureVibration: +#endif + return true; + + default: + return false; + } +} + +OSystem_SDL_Symbian::zoneDesc OSystem_SDL_Symbian::_zones[TOTAL_ZONES] = { + { 0, 0, 320, 145 }, + { 0, 145, 150, 55 }, + { 150, 145, 170, 55 } +}; +OSystem_SDL_Symbian::OSystem_SDL_Symbian() :_channels(0),_stereo_mix_buffer(0) { +} + +void OSystem_SDL_Symbian::initBackend() { + ConfMan.setBool("FM_high_quality", false); +#if !defined(S60) || defined(S60V3) // S60 has low quality as default + ConfMan.setBool("FM_medium_quality", true); +#else + ConfMan.setBool("FM_medium_quality", false); +#endif + ConfMan.setInt("joystick_num", 0); // Symbian OS should have joystick_num set to 0 in the ini file , but uiq devices might refuse opening the joystick + ConfMan.flushToDisk(); + + GUI::Actions::init(); + + OSystem_SDL::initBackend(); + + // Initialize global key mapping for Smartphones + GUI::Actions* actions = GUI::Actions::Instance(); + + actions->initInstanceMain(this); + actions->loadMapping(); + initZones(); +} + +OSystem_SDL_Symbian::~OSystem_SDL_Symbian() { + delete []_stereo_mix_buffer; +} + +int OSystem_SDL_Symbian::getDefaultGraphicsMode() const { + return GFX_NORMAL; +} + +const OSystem::GraphicsMode *OSystem_SDL_Symbian::getSupportedGraphicsModes() const { + return s_supportedGraphicsModes; +} + +// make sure we always go to normal, even if the string might be set wrong! +bool OSystem_SDL_Symbian::setGraphicsMode(const char * /*name*/) { + // let parent OSystem_SDL handle it + return OSystem_SDL::setGraphicsMode(getDefaultGraphicsMode()); +} + +void OSystem_SDL_Symbian::quitWithErrorMsg(const char *msg) { + + CEikonEnv::Static()->AlertWin(_L("quitWithErrorMsg()")) ; + + if (g_system) + g_system->quit(); +} + +/* + * SumthinWicked says: the stuff below is copied from common/scaler.cpp, + * so we can skip compiling the scalers. ESDL still needs 1x and the scaler + * architecture because we inherit from OSystem_SDL. + */ +int gBitFormat = 565; +void InitScalers(uint32 /*BitFormat*/) {} // called by OSystem_SDL functions, not relevant for ESDL + +/** + * Trivial 'scaler' - in fact it doesn't do any scaling but just copies the + * source to the destination. + */ +void Normal1x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, + int width, int height) { + while (height--) { + memcpy(dstPtr, srcPtr, 2 * width); + srcPtr += srcPitch; + dstPtr += dstPitch; + } +} + +bool OSystem_SDL_Symbian::setSoundCallback(SoundProc proc, void *param) { + + // First save the proc and param + _sound_proc_param = param; + _sound_proc = proc; + SDL_AudioSpec desired; + SDL_AudioSpec obtained; + + memset(&desired, 0, sizeof(desired)); + + _samplesPerSec = 0; + + if (ConfMan.hasKey("output_rate")) + _samplesPerSec = ConfMan.getInt("output_rate"); + + if (_samplesPerSec <= 0) + _samplesPerSec = SAMPLES_PER_SEC; + + // Originally, we always used 2048 samples. This loop will produce the + // same result at 22050 Hz, and should hopefully produce something + // sensible for other frequencies. Note that it must be a power of two. + + uint32 samples = 0x8000; + + for (;;) { + if ((1000 * samples) / _samplesPerSec < 100) + break; + samples >>= 1; + } + + desired.freq = _samplesPerSec; + desired.format = AUDIO_S16SYS; + desired.channels = 2; + desired.samples = (uint16)samples; +#ifdef S60 + desired.callback = symbianMixCallback; + desired.userdata = this; +#else + desired.callback = proc; + desired.userdata = param; +#endif + if (SDL_OpenAudio(&desired, &obtained) != 0) { + warning("Could not open audio device: %s", SDL_GetError()); + return false; + } + // Note: This should be the obtained output rate, but it seems that at + // least on some platforms SDL will lie and claim it did get the rate + // even if it didn't. Probably only happens for "weird" rates, though. + _samplesPerSec = obtained.freq; + _channels = obtained.channels; + + // Need to create mixbuffer for stereo mix to downmix + if(_channels != 2) { + _stereo_mix_buffer = new byte [obtained.size*2];//*2 for stereo values + } + + SDL_PauseAudio(0); + return true; +} + +/** + * The mixer callback function, passed on to OSystem::setSoundCallback(). + * This simply calls the mix() method. + */ +void OSystem_SDL_Symbian::symbianMixCallback(void *s, byte *samples, int len) { + static_cast <OSystem_SDL_Symbian*>(s)->symbianMix(samples,len); +} + + +/** + * Actual mixing implementation + */ +void OSystem_SDL_Symbian::symbianMix(byte *samples, int len) { + // If not stereo then we need to downmix + if (_channels != 2) { + _sound_proc(_sound_proc_param, _stereo_mix_buffer, len * 2); + int16 *bitmixDst = (int16 *)samples; + int16 *bitmixSrc = (int16 *)_stereo_mix_buffer; + + for (int loop = len / 2; loop >= 0; loop --) { + *bitmixDst = (*bitmixSrc + *(bitmixSrc + 1)) >> 1; + bitmixDst++; + bitmixSrc += 2; + } + } else + _sound_proc(_sound_proc_param, samples, len); +} + +/** + * This is an implementation by the remapKey function + * @param SDL_Event to remap + * @param ScumVM event to modify if special result is requested + * @return true if Event has a valid return status + */ +bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Event &event) { + if (GUI::Actions::Instance()->mappingActive() || ev.key.keysym.sym <= SDLK_UNKNOWN) + return false; + + for (TInt loop = 0; loop < GUI::ACTION_LAST; loop++) { + if (GUI::Actions::Instance()->getMapping(loop) == ev.key.keysym.sym && + GUI::Actions::Instance()->isEnabled(loop)) { + // Create proper event instead + switch(loop) { + case GUI::ACTION_UP: + if (ev.type == SDL_KEYDOWN) { + _km.y_vel = -1; + _km.y_down_count = 1; + } else { + _km.y_vel = 0; + _km.y_down_count = 0; + } + event.type = EVENT_MOUSEMOVE; + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_DOWN: + if(ev.type == SDL_KEYDOWN) { + _km.y_vel = 1; + _km.y_down_count = 1; + } else { + _km.y_vel = 0; + _km.y_down_count = 0; + } + event.type = EVENT_MOUSEMOVE; + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_LEFT: + if(ev.type == SDL_KEYDOWN) { + _km.x_vel = -1; + _km.x_down_count = 1; + } else { + _km.x_vel = 0; + _km.x_down_count = 0; + } + event.type = EVENT_MOUSEMOVE; + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_RIGHT: + if(ev.type == SDL_KEYDOWN) { + _km.x_vel = 1; + _km.x_down_count = 1; + } else { + _km.x_vel = 0; + _km.x_down_count = 0; + } + event.type = EVENT_MOUSEMOVE; + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_LEFTCLICK: + event.type = (ev.type == SDL_KEYDOWN ? EVENT_LBUTTONDOWN : EVENT_LBUTTONUP); + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_RIGHTCLICK: + event.type = (ev.type == SDL_KEYDOWN ? EVENT_RBUTTONDOWN : EVENT_RBUTTONUP); + fillMouseEvent(event, _km.x, _km.y); + + return true; + + case GUI::ACTION_ZONE: + if(ev.type == SDL_KEYDOWN) { + int i; + + for (i=0; i < TOTAL_ZONES; i++) + if (_km.x >= _zones[i].x && _km.y >= _zones[i].y && + _km.x <= _zones[i].x + _zones[i].width && _km.y <= _zones[i].y + _zones[i].height + ) { + _mouseXZone[i] = _km.x; + _mouseYZone[i] = _km.y; + break; + } + _currentZone++; + if (_currentZone >= TOTAL_ZONES) + _currentZone = 0; + event.type = EVENT_MOUSEMOVE; + fillMouseEvent(event, _mouseXZone[_currentZone], _mouseYZone[_currentZone]); + SDL_WarpMouse(event.mouse.x, event.mouse.y); + } + + return true; + + case GUI::ACTION_SAVE: + case GUI::ACTION_SKIP: + case GUI::ACTION_FT_CHEAT: + case GUI::ACTION_SKIP_TEXT: + case GUI::ACTION_PAUSE: + { + GUI::Key &key = GUI::Actions::Instance()->getKeyAction(loop); + ev.key.keysym.sym = (SDLKey)key.ascii(); + ev.key.keysym.scancode= key.keycode(); + ev.key.keysym.mod = (SDLMod)key.flags(); + + return false; + } + + case GUI::ACTION_QUIT: + { + GUI::MessageDialog alert("Do you want to quit ?", "Yes", "No"); + if (alert.runModal() == GUI::kMessageOK) + quit(); + + return true; + } + } + } + } + + return false; +} + +void OSystem_SDL_Symbian::setWindowCaption(const char *caption) { + OSystem_SDL::setWindowCaption(caption); + check_mappings(); +} + +void OSystem_SDL_Symbian::check_mappings() { + if (ConfMan.get("gameid").empty() || GUI::Actions::Instance()->initialized()) + return; + + GUI::Actions::Instance()->initInstanceGame(); +} + +void OSystem_SDL_Symbian::initZones() { + int i; + + _currentZone = 0; + + for (i = 0; i < TOTAL_ZONES; i++) { + _mouseXZone[i] = (_zones[i].x + (_zones[i].width / 2)); + _mouseYZone[i] = (_zones[i].y + (_zones[i].height / 2)); + } +} + + +/** Vibration support */ +#ifdef USE_VIBRA_SE_PXXX +void OSystem_SDL_Symbian::initializeVibration() { + _vibrationApi = SonyEricsson::CVibration::NewL(); +} + +void OSystem_SDL_Symbian::vibrationOn(int vibraLength) { + // initialize? + if (!_vibrationApi) _vibrationApi = SonyEricsson::CVibration::NewL(); + // do it! + _vibrationApi->VibrationOn(1, 1, vibraLength); +} + +void OSystem_SDL_Symbian::vibrationOff() { + _vibrationApi->VibrationOff(); +} +#endif // USE_SE_PXX_VIBRA + diff --git a/backends/platform/symbian/src/SymbianOS.h b/backends/platform/symbian/src/SymbianOS.h new file mode 100644 index 0000000000..955f59c59c --- /dev/null +++ b/backends/platform/symbian/src/SymbianOS.h @@ -0,0 +1,139 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#ifndef SDLSYMBIANH +#define SDLSYMBIANH + +#include "backends/platform/sdl/sdl-common.h" + +/** Vibration support */ +#ifdef USE_VIBRA_SE_PXXX +#include <vibration.h> +#endif + +#define TOTAL_ZONES 3 + +class OSystem_SDL_Symbian : public OSystem_SDL { +public: + OSystem_SDL_Symbian(); + virtual ~OSystem_SDL_Symbian(); + +public: + /** + * The following method is called once, from main.cpp, after all + * config data (including command line params etc.) are fully loaded. + */ + virtual void initBackend(); + + int getDefaultGraphicsMode() const; + const OSystem::GraphicsMode *getSupportedGraphicsModes() const; + bool setGraphicsMode(const char *name); + void quitWithErrorMsg(const char *msg); + virtual bool hasFeature(Feature f); + + // Set function that generates samples + // + // This function is overridden by the symbian port in order to provide MONO audio + // downmix is done by supplying our own audiocallback + // + virtual bool setSoundCallback(SoundProc proc, void *param); // overloaded by CE backend + +protected: + // + // The mixer callback function, passed on to OSystem::setSoundCallback(). + // This simply calls the mix() method. + // and then does downmixing for symbian if needed + // + static void symbianMixCallback(void *s, byte *samples, int len); + + // + // Actual mixing implementation + // + void symbianMix(byte *samples, int len); + +public: + // vibration support +#ifdef USE_VIBRA_SE_PXXX + // + // Intialize the vibration api used if present and supported + // + void initializeVibration(); + + // + // Turn vibration on, repeat no time + // @param vibraLength number of repetitions + // + void vibrationOn(int vibraLength); + + // + // Turns the vibration off + // + void vibrationOff(); + +protected: + SonyEricsson::CVibration* _vibrationApi; +#endif // USE_VIBRA_SE_PXXX + +protected: + + // + // This is an implementation by the remapKey function + // @param SDL_Event to remap + // @param ScumVM event to modify if special result is requested + // @return true if Event has a valid return status + // + bool remapKey(SDL_Event &ev, Event &event); + + void setWindowCaption(const char *caption); + + // + // Used to intialized special game mappings + // + void check_mappings(); + + void initZones(); + + // Audio + int _channels; + + SoundProc _sound_proc; + void *_sound_proc_param; + byte *_stereo_mix_buffer; + + // Used to handle joystick navi zones + int _mouseXZone[TOTAL_ZONES]; + int _mouseYZone[TOTAL_ZONES]; + int _currentZone; + + typedef struct zoneDesc { + int x; + int y; + int width; + int height; + } zoneDesc; + + static zoneDesc _zones[TOTAL_ZONES]; +}; + +#endif diff --git a/backends/platform/symbian/src/main_features.inl b/backends/platform/symbian/src/main_features.inl new file mode 100644 index 0000000000..2e0b008e68 --- /dev/null +++ b/backends/platform/symbian/src/main_features.inl @@ -0,0 +1,66 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifdef USE_VIBRA_SE_PXXX + "Vibra " +#endif + "\n" + +// we want a list of supported engines visible in the program, +// because we also release special builds with only one engine +#ifndef DISABLE_SCUMM + "SCUMM " +#endif +#ifndef DISABLE_SIMON + "Simon " +#endif +#ifndef DISABLE_SKY + "Sky " +#endif +#ifndef DISABLE_QUEEN + "Queen " +#endif +#ifndef DISABLE_GOB + "Gob " +#endif +#ifndef DISABLE_SAGA + "Saga " +#endif +#ifndef DISABLE_KYRA + "Kyra " +#endif +#ifndef DISABLE_SWORD1 + "Sword1 " +#endif +#ifndef DISABLE_SWORD2 + "Sword2 " +#endif +#ifndef DISABLE_CINE + "Cine " +#endif +#ifndef DISABLE_LURE + "Lure " +#endif +#ifndef DISABLE_AGI + "AGI " +#endif + diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h new file mode 100644 index 0000000000..303fde726d --- /dev/null +++ b/backends/platform/symbian/src/portdefs.h @@ -0,0 +1,148 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL + * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System + * Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer + * Copyright (C) 2005-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + */ + +#include <assert.h> +#include <stdarg.h> +#include <string.h> +#include <ctype.h> +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include <e32def.h> + +#include <e32std.h> +#include <math.h> + +#define DISABLE_SCALERS // we only need 1x + +#if defined(USE_TREMOR) && !defined(USE_VORBIS) +#define USE_VORBIS // make sure this one is defined together with USE_TREMOR! +#endif + +// hack in some tricks to work around not having these fcns for Symbian +// and we _really_ don't wanna link with any other windows LIBC library! +#if defined(__GCC32__) + + #define snprintf(buf,len,args...) sprintf(buf,args) + #define vsnprintf(buf,len,format,valist) vsprintf(buf,format,valist) + + // taken from public domain http://www.opensource.apple.com/darwinsource/WWDC2004/gcc_legacy-939/gcc/floatlib.c + #define SIGNBIT 0x80000000 + #define HIDDEN (1 << 23) + #define EXCESSD 1022 + #define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) + #define SIGND(fp) ((fp.l.upper) & SIGNBIT) + #define HIDDEND_LL ((long long)1 << 52) + #define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) + + union double_long { + double d; + struct { + long upper; + unsigned long lower; + } l; + long long ll; + }; + + /* convert double float to double int (dfdi) */ + long long inline + scumm_fixdfdi (double a1) { // __fixdfdi (double a1) + register union double_long dl1; + register int exp; + register long long l; + + dl1.d = a1; + + if (!dl1.l.upper && !dl1.l.lower) + return (0); + + exp = EXPD (dl1) - EXCESSD - 64; + l = MANTD_LL(dl1); + + if (exp > 0) { + l = (long long)1<<63; + if (!SIGND(dl1)) + l--; + return l; + } + + /* shift down until exp = 0 or l = 0 */ + if (exp < 0 && exp > -64 && l) + l >>= -exp; + else + return (0); + + return (SIGND (dl1) ? -l : l); + } + + /* okay, okay: I admit it: I absolutely have _NO_ idea why __fixdfdi does not get linked in by gcc from libgcc.a + because I know it's in there: I checked with `ar x _fixdfdi.o libgcc.a` and the symbol is in there, so I'm lost + and had to fix it this way. I tried all gcc and ld options I could find: no hope :( If someone can enlighten me: + feel free to let me know at sumthinwicked@users.sf.net! Much obliged. + PS1. I think for __fixunsdfdi they have made a circumvention by having to add STATICLIBRARY EGCC.LIB + PS2. http://gcc.gnu.org/ml/gcc-bugs/2004-01/msg01596.html might have found out the same problem there + */ + +#elif defined (__WINS__) // WINS + + // let's just blatantly ignore this for now and just get it to work :P but does n't work from the debug function + int inline scumm_snprintf (char *str, unsigned long /*n*/, char const *fmt, ...) { + va_list args; + va_start(args, fmt); + vsprintf(str, fmt, args); + va_end(args); + return strlen(str); + } + + int inline scumm_vsnprintf (char *str, unsigned long /*n*/, char const *fmt, va_list valist) { + vsprintf(str, fmt, valist); + return strlen(str); + } + + #define snprintf scumm_snprintf + #define vsnprintf scumm_vsnprintf +#else // GCCE and the rest + #define snprintf(buf,len,args...) sprintf(buf,args) + #define vsnprintf(buf,len,format,valist) vsprintf(buf,format,valist) +#endif + +// somehow nobody has this function... +#define hypot(a, b) sqrt((a)*(a) + (b)*(b)) + +// Symbian bsearch implementation is flawed +void inline *scumm_bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)) { + size_t i; + + for (i=0; i < nmemb; i++) + if (compar(key, (void *)((size_t)base + size * i)) == 0) + return (void *)((size_t)base + size * i); + return NULL; +} +#define bsearch scumm_bsearch + +// we cannot include SymbianOS.h everywhere, but this works too (functions code is in SymbianOS.cpp) +namespace Symbian { +extern void FatalError(const char *msg); +extern char* GetExecutablePath(); +} |