Commit Graph
298 Commits
Author SHA1 Message Date
Yotam Barnoy 178c46c038 PSP: factored PngLoader out of virtual keyboard for further use
svn-id: r53108
2010-10-10 08:30:18 +00:00
Yotam Barnoy e47e474cff PSP: rewrote input code and added an input mode
The old input code was getting too messy. A redesign made it easier to modify and add several modes and combos, including one for 1st person games which benefit from a different control scheme. A combo switches between the modes. I also added directional support while the virtual keyboard is visible, using the nub. This allows moving around in the text in some games, and moving the character while typing for others (e.g. AGI)

svn-id: r53042
2010-10-06 21:26:45 +00:00
Yotam Barnoy 73c5895ed2 PSP: ME MP3: cache stereo status
Bad timing can cause stereo status not to be picked up if at some point a MAD _header is not initialized.

svn-id: r52890
2010-09-25 20:38:40 +00:00
Yotam Barnoy 4807fdb4c7 PSP: fix issue in ME MP3 code. Release and init the ME when seeking.
Without this fix, the ME allocates more and more memory with every seek until it can't work.

svn-id: r52868
2010-09-23 21:03:20 +00:00
Yotam Barnoy f7f743ac31 PSP: switch from wrapping memcpy to defining our own memcpy
The advantage is that we get to do inlining and even use lwl and lwr instructions where appropriate. We have to do it ourselves because the PSP doesn't tolerate built-in instructions, but also we have a more efficient memcpy than the lib's.

svn-id: r52817
2010-09-20 14:10:44 +00:00
Yotam Barnoy 05f0ebf262 PSP: Split up PspMemory class.
PspMemorySwap is more specific ie. it only needs to be known by PSP files. It could be put in another file, but not worth the effort.

svn-id: r52816
2010-09-20 14:09:39 +00:00
Yotam Barnoy b006082cf1 PSP: moved VramAllocator to display_manager.cpp.
It didn't really belong in memory.cpp and we're going to want to include memory.h everywhere.
* * *
PSP: more Vram Allocator cleanup

svn-id: r52815
2010-09-20 14:05:32 +00:00
Eugene Sandulenko 9efa316a61 RELEASE: This is 1.3.0svn
svn-id: r52773
2010-09-17 19:13:47 +00:00
Andre Heider 41834499ed PLUGINS: Cleanup.
- Unify ELF loader handling in configure
- Rename ELF_LOADER_TARGET to USE_ELF_LOADER

svn-id: r52728
2010-09-15 07:43:16 +00:00
Andre Heider 09834b8bec MERGE: Merge trunk to branch.
svn-id: r52564
2010-09-05 15:26:00 +00:00
Andre Heider 86f4dbd956 PLUGINS: Move all ELF loader related files to its own directory.
svn-id: r52555
2010-09-05 12:51:25 +00:00
Yotam Barnoy 43bbfa5ca8 PSP: removed strict-aliasing
It's no longer needed after adding __may_alias__ flag in endian.h.

svn-id: r52481
2010-09-01 12:56:34 +00:00
Yotam Barnoy b5a17ca628 PSP: fix BS2 crash by disabling strict aliasing
The problem that caused the crash in BS2 had to do with GCC making improper assumptions about our code. Specifically, the alignment trick we use for READ_UINT32/16 allows some targets(e.g. MIPS) to generate better code, but it also goes against ANSI C aliasing rules, which prohibit the sharing of addresses between a struct and another variable value. Using -fno-strict-aliasing tells GCC not to assume strict ANSI C aliasing and also unfortunately prevents it from making some good optimizations.

This change is probably needed for other platforms as well -- the crash on the PSP was simply a very rare coincidence.

svn-id: r52473
2010-08-31 15:24:08 +00:00
Yotam Barnoy b88f341b80 PSP: switched to using BufferedSeekableReadStream and BufferedWriteStream
The last PSP optimization made reading much faster, but writing isn't buffered so saving the config file was VERY slow.
I decided the cleanest way to do this would be to add BWS and use BSRS.

svn-id: r52327
2010-08-24 11:24:34 +00:00
Yotam Barnoy 8fb92b9e2a PSP: made PSP compile with plugins.
Also removed criticalSection calls from elf-loader.cpp, since now streams are used so the criticalSections are automatic.

svn-id: r52206
2010-08-19 11:18:01 +00:00
Yotam Barnoy 70cd6cfda5 PSP: fixed issue in ME MP3 player that prevented different MP3 layers and versions from working.
MAD doesn't give enough information to decide the length of the PCM data -- it provides the Layer but not the MPEG version. I had to read the MP3 header directly to figure it out. This fixes issues with any MP3 files that might be used in any of the games.

svn-id: r52191
2010-08-18 16:58:32 +00:00
Yotam Barnoy aa16c9e046 PSP: changed display options to Full Screen, Keep Aspect Ratio and Original Resolution
This greatly simplifies the display options and makes them more practical. Original resolution will try to fit the game to the screen pixel-to-pixel, and will revert to full screen if it fails. Keep AR maximizes height and adjusts the width accordingly. This works very well with 320x200 games (AR of 1.6) which is close to the PSP's 1.7, but not so well with 320x240/640x480 (AR of 1.3). Full Screen is still default.

svn-id: r52138
2010-08-17 09:45:14 +00:00
Yotam Barnoy 023ca7962a PSP: slight fix to ME MP3 player
A bad function call during initialization of a stream was causing rare instances where the ME failed to decode some MP3 data.

svn-id: r52101
2010-08-15 15:31:24 +00:00
Tony Puccinelli 14061c94f7 removed psploader.o from objects in psp makefile (psp should be using abstracted MIPS loader now)
svn-id: r52085
2010-08-14 09:06:50 +00:00
Tony Puccinelli 2f3ab6bdab manually merged trunk/backends into branch and removed some now redundant elf32.h files
svn-id: r51966
2010-08-11 02:44:11 +00:00
Tony Puccinelli 682807f0e9 merged trunk into branch, reverted Cruise Singleton changes
svn-id: r51961
2010-08-10 23:21:08 +00:00
Tony Puccinelli 59b2b46fe8 removed psploader code, as it is covered by the mipsloader and elfloader in backends/plugins
svn-id: r51828
2010-08-07 06:21:22 +00:00
Tony Puccinelli 0712d41870 modified psp to use mips-loader.cpp (and added things to backends/module.mk)
svn-id: r51826
2010-08-07 05:01:43 +00:00
Tony Puccinelli 520c0a4009 added checks for ELF_LOADER_TARGET before including the elf plugin provider
svn-id: r51716
2010-08-03 22:08:32 +00:00
Yotam Barnoy 3b4b00cf50 PSP: Factored out thread creation routines into PspThreadable class.
This should aid in further optimizations.

svn-id: r51685
2010-08-03 12:29:08 +00:00
Yotam Barnoy 1532685d82 PSP: optimized memcpy some more and fixed memcpy testing
Found that the particular implementation was producing messy assembly for misaligned copies. Improved it and also fixed up wrapping the memcpy, which would cause endless prints in case memcpy testing is asked for.

svn-id: r51503
2010-07-30 09:32:54 +00:00
Max Horn d22ebd358d BUILD: Unify how MODULE_DIRS is computed for backends
This should help avoid situations where MODULE_DIRS is not set to a
complete list of build dirs (which causes troubles with the automatic
header dependency detection logic).

On the long run, we should replace the relevant code by a macro or also
use rules.mk for this (with yet another if/else case add to it).

svn-id: r51467
2010-07-29 13:03:21 +00:00
Max Horn 264d17ccc7 BUILD: Compile & link certain files only for specific BACKEND values
svn-id: r51465
2010-07-29 13:02:14 +00:00
Tony Puccinelli 58f3e81f00 Continued abstraction of generic ELF-loader, splitting off MIPS-processor specific things into their own files and testing on the PS2
svn-id: r51345
2010-07-27 06:27:45 +00:00
Andre Heider 70dfcdfb54 trying to fix psp build for case sensitive filesystems.
svn-id: r50989
2010-07-18 12:53:24 +00:00
Yotam Barnoy 30d7517343 PSP: switched to using my memcpy
svn-id: r50982
2010-07-18 07:03:14 +00:00
Yotam Barnoy 844a332f8d PSP: forgot test files
svn-id: r50981
2010-07-18 06:59:25 +00:00
Yotam Barnoy 58a1fbc13c Made memcpy faster but not as fast with uncached mem.
svn-id: r50980
2010-07-18 06:49:56 +00:00
Yotam Barnoy 762c569207 PSP: Typos in trace.h
svn-id: r50844
2010-07-13 08:00:22 +00:00
Max Horn 6c854f30da PSP: Whitespace fix (and rewrap overlong line for readability)
svn-id: r50129
2010-06-21 21:37:00 +00:00
Yotam Barnoy 65fe8d817c PSP: moved RTC to singleton to allow usage by classes other than Osystem
svn-id: r50116
2010-06-21 15:13:36 +00:00
Yotam Barnoy b5a25a6e19 PSP: errors from both ScummVM and the PSP port now print to file by default. This should make debugging easier, especially for users.
svn-id: r50113
2010-06-21 13:58:51 +00:00
Yotam Barnoy 57b8e2caaa PSP: removed default 'using ME' message
svn-id: r50112
2010-06-21 13:23:13 +00:00
Yotam Barnoy 3c857be0c5 PSP: switched loader to use PSP's debug mechanism
svn-id: r50111
2010-06-21 11:51:19 +00:00
Yotam Barnoy e7e8808aff PSP: got rid of SDL
svn-id: r49903
2010-06-16 09:04:27 +00:00
Yotam Barnoy a21b9c7b96 PSP: fixed up PowerManager and removed dependency on SDL
svn-id: r49852
2010-06-15 13:10:00 +00:00
Max Horn 703f0ca29c SYSTEM: Unify OSystem::getSupportedFormats() signature
svn-id: r49838
2010-06-15 12:21:08 +00:00
Yotam Barnoy 0fe65d3e5f PSP: fixed invisible bug in power callback
svn-id: r49756
2010-06-15 10:36:53 +00:00
Yotam Barnoy ff66c67439 PSP: fixed SCI freeze issue by using recursive mutexes
svn-id: r49682
2010-06-15 06:30:49 +00:00
Yotam Barnoy 25c7dc08b1 PSP: fixed bug in hardware MP3 that caused crash in broken sword. The sample rate must be returned from our member variable, not from the header value which disappears.
svn-id: r49680
2010-06-15 05:34:37 +00:00
Yotam Barnoy d89da56f47 PSP: swapped order of checks in renderAll. It's a little cheaper this way.
svn-id: r49574
2010-06-10 14:01:30 +00:00
Yotam Barnoy c8ee854600 PSP: switched to psp semaphores rather than SDL's. Removal of SDL is almost complete.
svn-id: r49572
2010-06-10 13:41:29 +00:00
Yotam Barnoy f770156dcc PSP: fixed missing frame issue with kyrandia and possibly other games by calling updateScreen() from pollEvent() once in a while
svn-id: r49541
2010-06-09 14:15:51 +00:00
Yotam Barnoy 356728dab7 PSP: found bug in fast getMillis() implementation. Fixed it by adding a fixed amount to the time counter.
svn-id: r49485
2010-06-07 13:47:27 +00:00
Yotam Barnoy 6884ffc291 PSP: added preliminary support for using ME hardware to play MP3 files. If the decoder fails to load, MAD is used instead. Disable with DISABLE_PSP_MP3.
svn-id: r49319
2010-05-30 09:47:00 +00:00