This project is mirrored from https://*****@github.com/libretro/gpsp.git. Pull mirroring updated .
  1. 15 Sep, 2021 1 commit
  2. 09 Sep, 2021 2 commits
    • David Guillen Fandos's avatar
      Emit BIOS SWI entrypoint to ROM arena · 33f1e250
      David Guillen Fandos authored
      This fixes a race condition that happens whenever the ROM cache is flushed but
      the RAM one is not, causing any SWI calls (implemented as direct branches) to
      jump to random instructions.
      The fix could be to flush both caches at the same time (~expensive on
      low mem platforms), use indirect jumps (a bit expensive) or emit the SWI
      handler below the watermark to ensure it is never flushed. This is cheap
      and effective, requires minimal changes.
      33f1e250
    • David Guillen Fandos's avatar
      b431a8a4
  3. 06 Sep, 2021 1 commit
  4. 03 Sep, 2021 1 commit
  5. 02 Sep, 2021 1 commit
  6. 01 Sep, 2021 1 commit
  7. 31 Aug, 2021 1 commit
  8. 30 Aug, 2021 2 commits
    • David Guillen Fandos's avatar
      Write most alu/log x86 operations as emitted code · 66e011b0
      David Guillen Fandos authored
      This is around 8% perf improvement alone.
      This also fixes many flag calculation/usage bugs (in corner cases) since
      we use the x86 cpu native ALU flags (which are more or less the same as
      ARM's). Passes all test ROMs for ALUs and no changes in game compat.
      66e011b0
    • David Guillen Fandos's avatar
      Fix bad ARM code emitter bug · 2295dc4a
      David Guillen Fandos authored
      This mis-emits CMN instead of TEQ and TST in the reg-shift operand mode.
      This is never used by gpsp directly but translating real tst opcodes,
      hence it only affects games using such instruction.
      
      This fixes video players that previously crashed, many games that had
      graphical glitches in ARM mode (but not on other CPUs) usually in menus
      or other dialogues. Also fixes games that either crashed or went blank
      or similar issues. The extent of fixing is hard to determine but could
      affect many games in different levels.
      2295dc4a
  9. 28 Aug, 2021 2 commits
  10. 27 Aug, 2021 1 commit
  11. 26 Aug, 2021 1 commit
  12. 24 Aug, 2021 4 commits
    • David Guillen Fandos's avatar
      Fix out of bounds read bug on open bus read · 82077752
      David Guillen Fandos authored
      This bug doesn't affect many games but makes sanitizers unhappy.
      Also fix some minor FIFO clear bug
      82077752
    • David Guillen Fandos's avatar
      New savestate implementation · 7068cbc9
      David Guillen Fandos authored
      This uses BSON as savestate format, to allow external tools to parse it
      (so that we can add proper test of the states). The BSON is not 100%
      correct according to spec (no ordered keys) but can be parsed by most
      libraries.
      
      This fixes also a bug in the savestate palette color recalculation that
      was wrongly overwritting the original palette (which could cause some
      problems on some games).
      
      Also fixes some potential issues by serializing some more stuff and
      cleans up unused stuff.
      
      Testing shows that states look good and there's only minor differences
      in audio ticks, related to buffer sizes (since buffer flushes are
      de-synced from video frames due to different frequency).
      7068cbc9
    • David Guillen Fandos's avatar
    • David Guillen Fandos's avatar
      Remove unused stuff and fix const variables · 1e976fb3
      David Guillen Fandos authored
      Trying to figure out what needs to be part of a savestate :)
      1e976fb3
  13. 21 Aug, 2021 4 commits
  14. 20 Aug, 2021 1 commit
  15. 15 Aug, 2021 9 commits
  16. 31 Jul, 2021 1 commit
  17. 30 Jul, 2021 1 commit
  18. 29 Jul, 2021 1 commit
  19. 30 Jul, 2021 2 commits
  20. 28 Jul, 2021 2 commits
  21. 27 Jul, 2021 1 commit
    • David Guillen Fandos's avatar
      Fix DMA VRAM mirror overflow and small 1-off error · dec6f50d
      David Guillen Fandos authored
      Seems that this could make VRAM overflow big time and overwrite IWRAM
      most of the time (since it lives after that buffer). This causes a
      variety of errors, some of them hidden if IWRAM not used.
      Most games do not use VRAM mirror so it's not a big deal, but some do
      have a off-by-one errors that trigger this.
      dec6f50d