1c07932b40
implement block linking + some refactoring
...
currently only supported for x64
2020-06-16 11:59:06 +02:00
baed0ac0d5
remove debug leftovers
2020-06-16 11:57:50 +02:00
ec965c6014
improve nop handling and proper behaviour for LDM^
...
fixes dslinux
2020-06-16 11:57:49 +02:00
1cfbbcbb2a
make savestates 100% compatible again
2020-06-16 11:57:48 +02:00
441869a105
integrate changes from ARM64 backend and more
...
- better handle LDM/STM in reg alloc
- unify Halted and IRQ in anticipation for branch inlining
- literal optimisations can be disabled in gui
- jit blocks follow simple returns
- fix idle loop detection
- break jit blocks on IRQ (fixes saving in Pokemon White)
2020-06-16 11:57:45 +02:00
40b88ab05a
new block cache and much more...
...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
and loads/stores from constant addresses
2020-06-16 11:56:36 +02:00
316378092a
abandon pipelining on jit
...
fixes Golden Sun Dawn
this makes the cpu state incompatible between interpreter and JIT. That's why switching cpu mode requires a restart(not requiring is stupid anyway) and the pipeline is manually filled when making a save state.
2020-06-16 11:55:24 +02:00
00cd9af033
fix uninitialised memory mapping
2020-06-16 11:54:47 +02:00
4deecc7d65
jit: decrease blockcache AddrMapping size for ARM9
2020-06-16 11:54:05 +02:00
86f2be7260
jit: add compile option
2020-06-16 11:54:03 +02:00
d13d625f73
jit: make everything configurable
2020-06-16 11:53:21 +02:00
f22521a43d
jit: LDM/STM finally(!) working + MUL, MLA and CLZ
2020-06-16 11:53:10 +02:00
83bd863361
jit: branch instructions
2020-06-16 11:53:09 +02:00
10e386fe50
JIT: most mem instructions working
...
+ branching
2020-06-16 11:53:08 +02:00
2f6b46fd4f
JIT: implemented most ALU instructions
2020-06-16 11:53:06 +02:00
c692287eba
JIT: base
...
all instructions are interpreted
2020-06-16 11:53:05 +02:00
43e045357f
make it able to switch between DS and DSi modes
2020-06-01 20:36:30 +02:00
2327de2423
Merge commit '4b57416552ec2fa95216e2b044559f215723bf70' into melonDSi
2020-05-30 03:12:42 +02:00
5f99a68151
detect whether we are running the game
2020-02-24 18:31:44 +01:00
85a6a5bb38
* add support for a bunch of codes (all of them minus the loop shit, really)
...
* hook it betterer so it doesn't asplode
2020-02-14 23:34:26 +01:00
83f8e11bc1
update copyright years
2020-02-14 20:18:08 +01:00
81dde71eba
add AES, fix a bunch of bugs
...
we're getting an error screen! wee
2019-06-19 14:24:49 +02:00
606a40e6b8
y'know, actually running the DMA units might yield better results.
2019-06-18 22:57:37 +02:00
78c41736c3
fix fucking ass-stupid bug with new-WRAM handling
2019-06-16 14:26:54 +02:00
4d3f346edc
get it to do more interesting things
2019-06-15 18:30:12 +02:00
58e3ff61ac
add I2C shito
2019-06-15 16:58:02 +02:00
09cfdc6e76
pft
2019-06-10 18:24:38 +02:00
434a3007e2
fasterer BG/OBJ VRAM reads
2019-06-09 16:06:01 +02:00
00a5576492
fasterer IRQ check. clean up code.
2019-06-08 22:16:51 +02:00
75f8cbf953
draft API for OpenGL shito in libui
2019-03-31 21:15:45 +02:00
4de4631c15
move platform specific config to platform specif ffile ayyyyyyyyyyygfghj;,gnxbf
2019-03-15 00:58:29 +01:00
93d51b0cbc
start work on non-direct mode. reply to DHCP discover frame.
2019-02-23 13:41:51 +01:00
b0efde8bf7
also, update copyright name
2019-01-22 15:58:29 +01:00
669247e8c8
redesign main emu loop to use timestamps instead of being a trainwreck
...
* cleaner code
* faster in some cases
* more accurate (on-demand compensation for timers and GPU)
* less prone to desyncs
* overall betterer
2019-01-05 05:28:58 +01:00
90f2c0834e
add PoC ARM9 instruction cache logic. not actually in use, but it's there as a reference (and if we ever need it).
2019-01-04 21:47:06 +01:00
3101bd595f
add missing shit to savestates. bump the version up.
2018-12-11 21:50:28 +01:00
4aafdee14d
more sensible cache timings
...
(still a big fat hack)
2018-12-11 17:59:52 +01:00
91b2f64596
add back faster prefetch for ARM9
2018-12-11 16:41:18 +01:00
3dd8c7b152
finish the work on the main loop. finally fix all cases of desync I could find. also add #ifdef'd debug code to check for desyncs.
2018-12-11 15:56:34 +01:00
78d384a754
temp commit
...
almost done killing ARM9/ARM7 desync, f
2018-12-11 03:08:46 +01:00
aba4610d45
fix bugs
...
still kinda shitty tho. like, we lost enough timer accuracy to have visible effects (aging cart tests that fail, FMVs that play too slow, etc)
2018-12-09 01:46:10 +01:00
b569c03884
make it fasterer
2018-12-09 01:26:51 +01:00
29bca33bc6
take it somewhere.
...
still need to speed it up a tad.
2018-12-09 01:17:05 +01:00
86dae1a25c
make this other branch where we're going to actually make it usable
...
but it'll be a gross hack
2018-12-08 20:27:00 +01:00
172fb4876a
begin work on general timing renovation. way shitty because it behaves as if caches were off, so everything will be slow as shit.
2018-12-04 17:54:10 +01:00
a9e7f8bc5b
add proper support for GXFIFO stalls.
...
bad games that blast the GXFIFO and overflow it:
* Super Mario 64 DS
* Rayman RR2
latter seems to get its music streaming crapoed.
2018-11-23 22:21:41 +01:00
7ba32ea076
make the ARM clock shift configurable. nothing fancy there, just paving the way for DSi support later.
2018-11-07 18:38:54 +01:00
b4165cc0a9
3D: keep the rasterizer from accidentally going out of bounds when given very flat X-major edge slopes.
...
this, by a fucking shitshow of butterfly effect, ends up fixing #234 . technically, the rasterizer was going out of bounds, which, under certain circumstances, caused interpolation to shit itself and generate Z values that were out of range (but still ended up in the zbuffer). sometimes those values ended up negative, which caused these glitches when polygons had to be drawn over those.
about fucking time.
2018-11-04 23:21:58 +01:00
de91eabf71
savestate shito: fix compile errors.
...
still far from being finished, so avoid using unless you want to spawn blackholes or some pretty bad shit.
2018-10-18 00:27:55 +02:00
0bfd019dc0
start implementing actual shito
...
(also looks like the test bench in libui_sdl/main.cpp snuck in with the copyright update. shit)
2018-09-15 02:47:34 +02:00