pcsx_rearmed.git
13 years agogpu_neon: fix fb wrapping
notaz [Wed, 26 Oct 2011 23:18:21 +0000 (02:18 +0300)]
gpu_neon: fix fb wrapping

Tobal No.1 ...

13 years agogpu_unai: fix a few potential crashes
notaz [Wed, 26 Oct 2011 23:12:21 +0000 (02:12 +0300)]
gpu_unai: fix a few potential crashes

13 years agocdriso: add cbin support
notaz [Wed, 26 Oct 2011 22:28:11 +0000 (01:28 +0300)]
cdriso: add cbin support

13 years agofrontend/pollux: add scaling
notaz [Wed, 26 Oct 2011 21:27:28 +0000 (00:27 +0300)]
frontend/pollux: add scaling

16bpp only for now.

13 years agopsxcounters: use higher precision for vsync timing
notaz [Tue, 25 Oct 2011 23:38:58 +0000 (02:38 +0300)]
psxcounters: use higher precision for vsync timing

don't know why this is needed (having things like BIAS in mind),
maybe desyncs with cdrom code or SPU?
Tuned this on RE1.

13 years agopsxinterpreter: a bit more accurate Cause reg handling
notaz [Tue, 25 Oct 2011 21:01:47 +0000 (00:01 +0300)]
psxinterpreter: a bit more accurate Cause reg handling

13 years agodrc: detect sw irqs properly
notaz [Tue, 25 Oct 2011 21:00:05 +0000 (00:00 +0300)]
drc: detect sw irqs properly

13 years agodrc: fix various register trashing in mtc0
notaz [Tue, 25 Oct 2011 14:13:06 +0000 (17:13 +0300)]
drc: fix various register trashing in mtc0

13 years agodrc: fix cycle multiplier code
notaz [Mon, 24 Oct 2011 22:44:12 +0000 (01:44 +0300)]
drc: fix cycle multiplier code

rounding wrong way is enough to cause nasty timing problems

13 years agodrc: fix mtc0 argument
notaz [Mon, 24 Oct 2011 21:01:44 +0000 (00:01 +0300)]
drc: fix mtc0 argument

HOST_CCREG is not always cc..

13 years agodrc: some debug code improvements
notaz [Mon, 24 Oct 2011 20:13:09 +0000 (23:13 +0300)]
drc: some debug code improvements

13 years agomake root counters use generic event scheduling code
notaz [Mon, 24 Oct 2011 20:02:51 +0000 (23:02 +0300)]
make root counters use generic event scheduling code

simplifies event handling code a bit

13 years agodrc: always use physical block addresses
notaz [Sun, 23 Oct 2011 23:37:35 +0000 (02:37 +0300)]
drc: always use physical block addresses

there is no reason to use virtual addressing, things can't be remapped
on PSX as there is no MMU anyway. Fixes somewhat related invalidation
bug along the way.

13 years agorcnt: remove gate guess for cnt 0 and 1
notaz [Sun, 23 Oct 2011 20:18:19 +0000 (23:18 +0300)]
rcnt: remove gate guess for cnt 0 and 1

at least 1 is wrong according to Ryphecha's info,
and breaks at least Wipeout XL.

13 years agogte: change gte irq workaround
notaz [Sun, 23 Oct 2011 14:53:09 +0000 (17:53 +0300)]
gte: change gte irq workaround

This should be closer to what happens on the real thing.
Special thanks to Ryphecha for the idea.

13 years agodrc: detect dead gte reads too
notaz [Sun, 23 Oct 2011 14:47:38 +0000 (17:47 +0300)]
drc: detect dead gte reads too

13 years agodrc: add some hack options
notaz [Sun, 23 Oct 2011 01:17:42 +0000 (04:17 +0300)]
drc: add some hack options

intended for caanoo/Wiz, some users want to trade glitches for
performance boost.

13 years agogte: parametrize remaining ops
notaz [Fri, 21 Oct 2011 22:29:31 +0000 (01:29 +0300)]
gte: parametrize remaining ops

at least the ones from C source, it looks like there could be more.

13 years agogte: disable some MAC overflow checks for ARM
notaz [Fri, 21 Oct 2011 21:51:48 +0000 (00:51 +0300)]
gte: disable some MAC overflow checks for ARM

also add some missing ones

13 years agogte: eliminate excessive lims and casts
notaz [Fri, 21 Oct 2011 15:08:57 +0000 (18:08 +0300)]
gte: eliminate excessive lims and casts

checking for overflow where it can't occur is a waste of time,
get rid of that code.

13 years agogte: pass a pointer to registers as argument
notaz [Thu, 20 Oct 2011 23:18:46 +0000 (02:18 +0300)]
gte: pass a pointer to registers as argument

no more need to load psxRegs in each function and all registers are
reachable by ldrh/strh.

13 years agodrc: try to avoid full constant reload
notaz [Thu, 20 Oct 2011 20:58:56 +0000 (23:58 +0300)]
drc: try to avoid full constant reload

derive from existing ones if possible

13 years agodrc: fix sub assem_debug print
notaz [Thu, 20 Oct 2011 21:06:33 +0000 (00:06 +0300)]
drc: fix sub assem_debug print

13 years agodrc: avoid invcode checks on close addesses
notaz [Wed, 19 Oct 2011 23:17:22 +0000 (02:17 +0300)]
drc: avoid invcode checks on close addesses

yes this makes it possible to miss something, but I hope
it's not going to happen and will deal with it if it does.

13 years agogte_arm: some asm experiments
notaz [Wed, 19 Oct 2011 20:07:58 +0000 (23:07 +0300)]
gte_arm: some asm experiments

also removes wrong (?) MAC0 saturation.

13 years agopcnt: measure gte too
notaz [Tue, 18 Oct 2011 22:58:04 +0000 (01:58 +0300)]
pcnt: measure gte too

13 years agodrc: do MVMVA decoding; parametrize handlers
notaz [Tue, 18 Oct 2011 22:54:19 +0000 (01:54 +0300)]
drc: do MVMVA decoding; parametrize handlers

13 years agodrc: finish GTE reg liveness analysis
notaz [Sun, 16 Oct 2011 15:37:49 +0000 (18:37 +0300)]
drc: finish GTE reg liveness analysis

13 years agofrontend/pollux: program MLC2 for TV-out, save/restore regs
notaz [Fri, 14 Oct 2011 21:22:24 +0000 (00:22 +0300)]
frontend/pollux: program MLC2 for TV-out, save/restore regs

13 years agodrc: implement literal dupe merging
notaz [Wed, 12 Oct 2011 23:27:43 +0000 (02:27 +0300)]
drc: implement literal dupe merging

doesn't seem to make much difference, but theoretically should help.

13 years agoinline/parametrize rootcounter reads
notaz [Tue, 11 Oct 2011 20:03:03 +0000 (23:03 +0300)]
inline/parametrize rootcounter reads

makes rcnt1 hack impossible though, overclock PSX instead

13 years agopsxcounters: avoid doing excessive updates
notaz [Mon, 10 Oct 2011 14:38:43 +0000 (17:38 +0300)]
psxcounters: avoid doing excessive updates

this may cause missed interrupts in very rare cases,
but performance penalty this makes is surely not worth it.

13 years agopsxmem: set fixed flag on mappings that really need it
notaz [Sun, 16 Oct 2011 00:21:23 +0000 (03:21 +0300)]
psxmem: set fixed flag on mappings that really need it

also fix unmap

13 years agorelease r10, for real r10
notaz [Sun, 9 Oct 2011 20:39:30 +0000 (23:39 +0300)]
release r10, for real

13 years agospu: fix gaussian interpolation
notaz [Sun, 9 Oct 2011 22:35:15 +0000 (01:35 +0300)]
spu: fix gaussian interpolation

13 years agofrontend: fix integer-prefer scaler
notaz [Sun, 9 Oct 2011 22:19:06 +0000 (01:19 +0300)]
frontend: fix integer-prefer scaler

13 years agouse faster PSX clock on armv7 devices
notaz [Sun, 9 Oct 2011 20:06:14 +0000 (23:06 +0300)]
use faster PSX clock on armv7 devices

games that were too slow run better now, but others are too fast now..
I hope this is a good tradeoff.

13 years agoadd caanoo frontend files, move pandora files
notaz [Sun, 9 Oct 2011 19:15:00 +0000 (22:15 +0300)]
add caanoo frontend files, move pandora files

13 years agopsxcounters: change spu update ~2ms
notaz [Sun, 9 Oct 2011 17:50:16 +0000 (20:50 +0300)]
psxcounters: change spu update ~2ms

old value ~1.4 was weird anyway

13 years agodrc: check for interrupts after RFE
notaz [Sun, 9 Oct 2011 17:00:55 +0000 (20:00 +0300)]
drc: check for interrupts after RFE

this missing check wasn't causing too many problems because
of events on every hsync, which are gone now.

13 years agonew ability to adjust psx cpu clock
notaz [Sun, 9 Oct 2011 00:32:49 +0000 (03:32 +0300)]
new ability to adjust psx cpu clock

13 years agoget rid of old memhandlers
notaz [Sat, 8 Oct 2011 20:50:59 +0000 (23:50 +0300)]
get rid of old memhandlers

13 years agodrc: remove some old inline memhandlers
notaz [Sat, 8 Oct 2011 13:57:19 +0000 (16:57 +0300)]
drc: remove some old inline memhandlers

generic code handles it better now.

13 years agodrc: implement memory access speculation
notaz [Fri, 7 Oct 2011 22:55:01 +0000 (01:55 +0300)]
drc: implement memory access speculation

try to guess RAM mirror we are going to hit

13 years agodrc: implement shiftimm constant propagation
notaz [Thu, 6 Oct 2011 23:27:32 +0000 (02:27 +0300)]
drc: implement shiftimm constant propagation

it's rare, but it happens.

13 years agospu: make "simple" interpolation even more simple
notaz [Wed, 5 Oct 2011 21:22:46 +0000 (00:22 +0300)]
spu: make "simple" interpolation even more simple

that division is not worth the quality increase it might give,
also sinc now can be 0 after resets, causing div0 fault.

13 years agorecompilation-caused frameskip workaround
notaz [Wed, 5 Oct 2011 20:32:35 +0000 (23:32 +0300)]
recompilation-caused frameskip workaround

13 years agospu/cdda: sync cdda to spu playback
notaz [Tue, 4 Oct 2011 23:11:18 +0000 (02:11 +0300)]
spu/cdda: sync cdda to spu playback

this will probably make cdrom/vsync timing desync situation
worse (those were never in sync anyway) but fix some cdda
related sound stuttering.
Those magic values are used trying to preserve other SPU plugin
compatibility.

13 years agotry to support more compilers
notaz [Tue, 4 Oct 2011 21:36:03 +0000 (00:36 +0300)]
try to support more compilers

13 years agorewrite memhandlers (write)
notaz [Tue, 4 Oct 2011 20:37:07 +0000 (23:37 +0300)]
rewrite memhandlers (write)

13 years agorewrite memhandlers (read)
notaz [Sun, 2 Oct 2011 15:46:31 +0000 (18:46 +0300)]
rewrite memhandlers (read)

13 years agoyet more random armv5 tweaks
notaz [Fri, 30 Sep 2011 22:13:43 +0000 (01:13 +0300)]
yet more random armv5 tweaks

13 years agogte_arm: implement RTPS, RTPT
notaz [Thu, 29 Sep 2011 22:04:21 +0000 (01:04 +0300)]
gte_arm: implement RTPS, RTPT

13 years agodfxvideo: remove unneeded double division in line code
notaz [Tue, 27 Sep 2011 20:13:08 +0000 (23:13 +0300)]
dfxvideo: remove unneeded double division in line code

13 years agopsxcounters: avoid update on each hsync
notaz [Mon, 26 Sep 2011 00:07:51 +0000 (03:07 +0300)]
psxcounters: avoid update on each hsync

no useful work is done on hsync, no reason to interrupt the recompiler
that often, set up events as needed.

13 years agodrc: do gte flag liveness detection
notaz [Sun, 25 Sep 2011 19:45:35 +0000 (22:45 +0300)]
drc: do gte flag liveness detection

just copy-paste existing code and use _nf handlers from previous patch.

13 years agogte: split arm code for pollux, generate flagless handlers
notaz [Sun, 25 Sep 2011 13:47:14 +0000 (16:47 +0300)]
gte: split arm code for pollux, generate flagless handlers

flagless are unused but will be used later, at least I hope so.

13 years agofrontend: few more pollux/caanoo tweaks
notaz [Sun, 25 Sep 2011 12:40:31 +0000 (15:40 +0300)]
frontend: few more pollux/caanoo tweaks

13 years agofrontend: menu: don't assume onoff vars are int
notaz [Sun, 25 Sep 2011 12:37:50 +0000 (15:37 +0300)]
frontend: menu: don't assume onoff vars are int

13 years agogte: switch divider back to table
notaz [Sun, 25 Sep 2011 12:31:41 +0000 (15:31 +0300)]
gte: switch divider back to table

pandora won't be affected because it uses VFP anyway,
and pollux prefers the table for some reason.
Also send the divider to it's own .c file for future reuse.

13 years agoadd pollux/caanoo port, refactor things
notaz [Sat, 24 Sep 2011 15:41:41 +0000 (18:41 +0300)]
add pollux/caanoo port, refactor things

13 years agodrc: fix PCSX HLE hack for armv5
notaz [Sat, 24 Sep 2011 15:44:23 +0000 (18:44 +0300)]
drc: fix PCSX HLE hack for armv5

also adds some asserts I did during debugging this

13 years agoget rid of hard libbz2 dependency
notaz [Fri, 23 Sep 2011 17:51:07 +0000 (20:51 +0300)]
get rid of hard libbz2 dependency

it just keeps getting in my way when trying to run this elsewhere.

13 years agosupport armv5 build
notaz [Fri, 23 Sep 2011 16:29:03 +0000 (19:29 +0300)]
support armv5 build

13 years agorelease r10
notaz [Thu, 22 Sep 2011 23:22:20 +0000 (02:22 +0300)]
release r10

13 years agofix build on some ARM toolchains
notaz [Fri, 23 Sep 2011 00:07:38 +0000 (03:07 +0300)]
fix build on some ARM toolchains

R1 redefined..

13 years agofrontend: fix a couple of annoyancies
notaz [Thu, 22 Sep 2011 22:47:33 +0000 (01:47 +0300)]
frontend: fix a couple of annoyancies

13 years agospu: handle loop write vs loop flag race (bIgnoreLoop alternative)
notaz [Thu, 22 Sep 2011 19:38:12 +0000 (22:38 +0300)]
spu: handle loop write vs loop flag race (bIgnoreLoop alternative)

it feels this should be better, but shouldn't write much here without
testing really (Heart of Darkness).

13 years agospu: clean up unneeded code
notaz [Thu, 22 Sep 2011 17:26:34 +0000 (20:26 +0300)]
spu: clean up unneeded code

13 years agospu: use last written loop value when starting
notaz [Thu, 22 Sep 2011 16:20:35 +0000 (19:20 +0300)]
spu: use last written loop value when starting

Now that we play silent channels, at least Alien Ressurection wants
this. I should really bring out my PSX and test this properly..

13 years agodrc: do modification check in smaller than page granularity
notaz [Wed, 21 Sep 2011 23:11:04 +0000 (02:11 +0300)]
drc: do modification check in smaller than page granularity

There are some games that keep writing in the same 4k page where the
code resides (Alien Ressurection is one such example). I've noticed
those accesses are usually to a small region, so keep range of addresses
that has no code and has been recently accessed and check it when the
writes come.

13 years agospu: get rid of pCurr -1, pass right chans to silent handler
notaz [Wed, 21 Sep 2011 01:03:48 +0000 (04:03 +0300)]
spu: get rid of pCurr -1, pass right chans to silent handler

pCurr -1 would work weird with savestates and could screw things up in
general..

13 years agospu: fix a few mixing issues
notaz [Mon, 19 Sep 2011 23:29:28 +0000 (02:29 +0300)]
spu: fix a few mixing issues

13 years agofrontend: always detect region
notaz [Mon, 19 Sep 2011 22:21:18 +0000 (01:21 +0300)]
frontend: always detect region

override later if needed

13 years agodrc: make sure dyna_linker is really called from stub
notaz [Mon, 19 Sep 2011 21:01:39 +0000 (00:01 +0300)]
drc: make sure dyna_linker is really called from stub

in very rare cases add_link() would end up being called with jump to
another block and not stub, which would later cause kill_pointer() to
crash while cleaning jump_out. I'm guessing wrong pointer was being
picked from jump_in by dyna_linker, failing to detect stale cache,
and hoping this will fix it.

13 years agodrc: load ra before SD only when needed
notaz [Mon, 19 Sep 2011 00:47:44 +0000 (03:47 +0300)]
drc: load ra before SD only when needed

there are far too many assumptions all over the place that it's not
loaded early

13 years agofrontend: fix frame limiter issue
notaz [Sun, 18 Sep 2011 00:13:23 +0000 (03:13 +0300)]
frontend: fix frame limiter issue

sleeping too much sometims causes unwanted stuttering..

13 years agospu: don't wait for irq on silent channels
notaz [Fri, 16 Sep 2011 13:55:31 +0000 (16:55 +0300)]
spu: don't wait for irq on silent channels

no point to do so, breaks other chans if silent ones
interrupt often (Discworld)

13 years agofrontend: change sound config vars
notaz [Fri, 16 Sep 2011 00:11:18 +0000 (03:11 +0300)]
frontend: change sound config vars

it seems people out there still have bad sound configs

13 years agodrc: handle $ra access in JALR DS too
notaz [Sun, 18 Sep 2011 19:02:37 +0000 (22:02 +0300)]
drc: handle $ra access in JALR DS too

or at least try to..

13 years agodrc: fix $ra evicting on JAL
notaz [Sun, 18 Sep 2011 16:45:38 +0000 (19:45 +0300)]
drc: fix $ra evicting on JAL

hopefully for good this time

13 years agoRevert "drc: ujump DS $ra overwrite fix?"
notaz [Thu, 15 Sep 2011 22:09:28 +0000 (01:09 +0300)]
Revert "drc: ujump DS $ra overwrite fix?"

This reverts commit 2adcd6fad4594a18025b4f00c49e43a23f8f8992.
That "fix" breaks Delta Force Urban Warfare, supposedly not neded
after Ari64's fixes?

13 years agoadd fixed frameskip option
notaz [Wed, 14 Sep 2011 22:33:57 +0000 (01:33 +0300)]
add fixed frameskip option

13 years agofix some minor frontend issues
notaz [Wed, 14 Sep 2011 21:33:03 +0000 (00:33 +0300)]
fix some minor frontend issues

13 years agogpu_unai: avoid NULL pointers in span table
notaz [Sun, 14 Aug 2011 16:45:04 +0000 (19:45 +0300)]
gpu_unai: avoid NULL pointers in span table

are those state combinations really impossible?

13 years agofrontend: show time and battery capacity
notaz [Sat, 13 Aug 2011 19:32:14 +0000 (22:32 +0300)]
frontend: show time and battery capacity

useful for longer gaming sessions

13 years agorelease r9 r9
notaz [Fri, 12 Aug 2011 23:26:51 +0000 (02:26 +0300)]
release r9

13 years agofrontend: split 4:3 scaling options
notaz [Fri, 12 Aug 2011 21:52:11 +0000 (00:52 +0300)]
frontend: split 4:3 scaling options

one for integer scaling, another for aspect scaling.

13 years agogpu_neon: handle 0xEx cmds while frameskiping
notaz [Fri, 12 Aug 2011 23:13:13 +0000 (02:13 +0300)]
gpu_neon: handle 0xEx cmds while frameskiping

otherwise things go out of sync

13 years agogpu_neon: frameskip: skip blits until flipped
notaz [Fri, 12 Aug 2011 21:47:16 +0000 (00:47 +0300)]
gpu_neon: frameskip: skip blits until flipped

13 years agogpu_neon: add peops as temp renderer
notaz [Fri, 12 Aug 2011 10:54:17 +0000 (13:54 +0300)]
gpu_neon: add peops as temp renderer

13 years agogpu_neon: support caching renderers, update rearmed if
notaz [Fri, 12 Aug 2011 10:21:51 +0000 (13:21 +0300)]
gpu_neon: support caching renderers, update rearmed if

13 years agogpu_neon: do list resubmit detection
notaz [Mon, 25 Jul 2011 15:25:46 +0000 (18:25 +0300)]
gpu_neon: do list resubmit detection

done it a while ago, late commit..

13 years agogpu_neon: gpu info reads, some bugfixes
notaz [Sat, 18 Jun 2011 23:23:46 +0000 (02:23 +0300)]
gpu_neon: gpu info reads, some bugfixes

13 years agogpu_neon: basic frameskip, change check, minor stuff
notaz [Fri, 17 Jun 2011 22:33:50 +0000 (01:33 +0300)]
gpu_neon: basic frameskip, change check, minor stuff

13 years agogpu_neon: partially support range regs
notaz [Wed, 15 Jun 2011 22:07:35 +0000 (01:07 +0300)]
gpu_neon: partially support range regs

13 years agogpu_neon: vram fixes, list loop detection
notaz [Tue, 14 Jun 2011 10:18:08 +0000 (13:18 +0300)]
gpu_neon: vram fixes, list loop detection

13 years agogpu_neon: split output code, some refactoring
notaz [Sun, 12 Jun 2011 21:43:42 +0000 (00:43 +0300)]
gpu_neon: split output code, some refactoring

13 years agogpu_neon: some cmd/vram io and dma handling
Grazvydas Ignotas [Tue, 7 Jun 2011 21:55:06 +0000 (00:55 +0300)]
gpu_neon: some cmd/vram io and dma handling

13 years agogpu_neon: basic skeleton gpu plugin
Grazvydas Ignotas [Fri, 4 Mar 2011 16:51:55 +0000 (18:51 +0200)]
gpu_neon: basic skeleton gpu plugin