Commit Graph

50 Commits

Author SHA1 Message Date
David Guillen Fandos 8dbf5f6c17 Enable big-endian devices: gc/wii
This patch adds big-endian compatibility in gpsp (in general but only
for the interpreter). There's no performance hit for little-endian
platforms (should be a no-op) and only add a small overhead in memory
accesses for big-endian platforms.

Most memory accesses are wrapped with a byteswap instruction and I/O reg
accesses are also rewired for proper access (using macros). Video
rendering has been fixed to also do byteswaps but there's a couple of
games and rendering modes that still seem broken (but they amount to
less than 20 games in my tests with 1K ROMs).

This also adds build rules and CI for NGC/WII/WIIU (untested)
2021-06-27 01:16:28 +02:00
David Guillen Fandos 4fd456e158 Adding Code Breaker cheat support
This works on both interpreter and dynarec.
Tested in MIPS, ARM and x86, still needs some more testing, some edge
cases can be buggy.
2021-05-05 21:15:27 +02:00
David Guillen Fandos 71ebc49b59 Improve indirect jumps in ARM
Handle already translated blocks in the ARM asm to speed up indirect
branches (affect some games more than others)
2021-03-30 21:06:52 +02:00
David Guillen Fandos a494a3f00e Move OAM update flag to a register
Fix a small bug in MIPS dynarec that affects non -G0 targets
2021-03-26 23:13:26 +01:00
David Guillen Fandos eab44b9e0b Enable runtime dynarec enable/disable
Added a more thorough cache cleanup for reset/mode-change too.
Fixed the mmap initialization that ends up leaking memory.
Minor x86 asm fixes for Android.
2021-03-17 21:05:49 +01:00
David Guillen Fandos fb7ca09b01 Remove BIOS reserved translation area
This is not really necessary since it can share area with ROM.
Performance impact should be very minimal (haven't noticed it myself)
and could be compensated (even by a positive offset) if we bump the ROM
cache area size.
Tested with several dynarecs.
2021-03-17 18:33:02 +01:00
David Guillen Fandos 5ffd2832e8 Rewrite of the MIPS dynarec stubs
This allows us to emit the handlers directly in a more efficient manner.
At the same time it allows for an easy fix to emit PIC code, which is
necessary for libretro. This also enables more platform specific
optimizations and variations, perhaps even run-time multiplatform
support.
2021-03-16 22:58:58 +01:00
David Guillen Fandos 5127f4b5cc Remove PSP-specific stuff from MIPS backend
This is unnecessary since newlib supports all file I/O.
This is needed for other mips ports
2021-03-10 18:41:37 +01:00
David Guillen Fandos 56dc6ecb70 Remove libco
This removes libco and all the usages of it (+pthreads).
Rewired all dynarecs and interpreter to return after every frame so that
libretro can process events. This required to make dynarec re-entrant.

Dynarecs were updated to check for new frame on every update (IRQ, cycle
exhaustion, I/O write, etc). The performance impact of doing so should
be minimal (and definitely outweight the libco gains). While at it,
fixed small issues to get a bit more perf: arm dynarec was not idling
correctly, mips was using stack when not needed, etc.

Tested on PSP (mips), OGA (armv7), Linux (x86 and interpreter). Not
tested on Android though.
2021-03-08 18:44:03 +01:00
bmaupin 89e55e9902 Reenable native file IO on PSP 2019-10-03 13:53:34 -04:00
twinaphex 5ebf76a41f Provide two comments 2014-12-11 02:32:14 +01:00
twinaphex 0bc2a111d7 Demacro-ize main.c 2014-12-11 02:29:51 +01:00
twinaphex 51d78afa09 Add HAVE_DYNAREC ifdef 2014-12-10 17:06:09 +01:00
twinaphex 7a0b0cba45 Style nits 2014-12-10 15:47:19 +01:00
aliaspider f10da5d664 cleanups 2014-12-10 13:10:25 +01:00
aliaspider a926a68eb3 cleanups 2014-12-10 12:53:26 +01:00
aliaspider 41484cd73c use correct save directory. 2014-12-10 12:00:12 +01:00
aliaspider ad485d434a implement retro_serialize/unserialize 2014-12-10 11:06:17 +01:00
twinaphex 7252c226bf Cleanups - main.c 2014-12-09 21:48:21 +01:00
twinaphex 35b71ff223 Clean up some unused stuff 2014-12-09 21:32:00 +01:00
twinaphex 92812a1213 Remove unused clock_speed variable 2014-12-09 17:34:37 +01:00
twinaphex 4b4a78878b Remove set_clock_speed 2014-12-09 17:32:51 +01:00
twinaphex 5c949f38e4 Assume PC_BUILD 2014-12-09 17:18:45 +01:00
twinaphex a39ed082f7 Remove useless GUI font code 2014-12-09 16:45:14 +01:00
twinaphex a4a7f66364 Remove gui.c 2014-12-09 16:40:21 +01:00
twinaphex 4a2c77bcc9 Remove zip.c/zip.h 2014-12-09 15:33:14 +01:00
aliaspider b69fee8b31 video output now works in statically linked builds.
core can't be used as a shared library yet due to the dynarec not
working when compiled with -fPIC
2014-12-09 05:16:09 +01:00
aliaspider 3510bfb528 hide some warnings 2014-12-09 02:11:22 +01:00
aliaspider 50df6df600 fix undefined referances. 2014-12-09 01:59:02 +01:00
aliaspider 8f9b841f72 can compile 2014-12-09 00:17:28 +01:00
twinaphex 3af92d87a1 Take out Windows CE code 2014-07-14 04:54:52 +02:00
twinaphex 093a70482f Get rid of PND_BUILD/RPI_BUILD/POLLUX_BUILD/GIZ_BUILD 2014-07-14 04:50:52 +02:00
Dave ffa573f880 raspberry pi port 2013-03-07 23:16:38 +02:00
notaz 108c704a36 initial Caanoo port
plus some random tweaks
2012-10-06 19:15:06 +03:00
notaz 40a392b00d make sound reinitable
this will be used for Caanoo overclocking workaround
2012-10-05 02:00:26 +03:00
notaz ffc30d2567 u7/pandora release 2011-09-08 03:08:42 +03:00
notaz d40aa461c5 make romdir saving not GP2X specific
not using config as it's binary, this is intended to be user editable.
2011-09-08 00:48:33 +03:00
notaz d0944fc942 store saves and configs in gpsp dir
Don't like ROM dir littering.
Still looking there for .sav and .cht files though.
2011-09-08 00:48:33 +03:00
notaz bbba320911 enable -Wall and fix warnings reported by it 2011-09-06 00:18:06 +03:00
notaz eb3668fc5d initial pandora port, with hardware scaling and stuff 2011-09-06 00:18:01 +03:00
notaz 43c24b301d refactor GP2X stuff for pandora reuse 2011-09-04 20:19:13 +03:00
notaz 2455b6a30e unify non-psp synchronize(), fix a few sound issues
..like ignoring real buffer size and not stopping sound thread on exit
2011-09-04 20:19:07 +03:00
notaz ee0a3871f9 get rid of GP2X_BUILD checks where they are not really needed 2011-09-03 01:01:17 +03:00
notaz 1d02ca7575 fixed clock and scaling config saving handling 2009-06-21 22:54:28 +03:00
notaz 42c8119010 u5 release 2009-06-13 22:19:53 +03:00
notaz 638cc6264c cpu clock setup, save rom dir, cleanups 2009-06-06 23:33:15 +03:00
notaz 4cdfc0bc7b working tripple buffering 2009-05-31 23:10:24 +03:00
notaz 4742480dca wiz port wip 2009-05-30 22:47:25 +03:00
notaz 9020645032 tweaks from 2008 (gpsp09-2xb_3) 2009-05-21 19:16:10 +03:00
notaz 2823a4c819 original source from gpsp09-2xb_src.tar.bz2 2009-05-21 18:48:31 +03:00