Richard Goedeken
40aed8af09
Merge pull request #606 from Gillou68310/new_dynarec_fixes
...
new_dynarec fixes
2019-01-26 09:44:34 -08:00
Richard Goedeken
532e2ee8fb
issue #613 : we dont need to call StateChanged() from main_state_set_slot(), because it will be called inside of savestates_select_slot() if necessary
2019-01-26 09:23:58 -08:00
Richard Goedeken
383964744a
we dont really need to check for valid parameter type in ConfigGetParameter because the ConfigGetParamX functions can convert from any type
2019-01-26 08:21:41 -08:00
Gillou68310
26cc980cf9
new_dynarec: Fix regression caused by 9525ed42ce
2019-01-26 15:08:20 +01:00
Gillou68310
b70b95790f
new_dynarec: Refactor block invalidation
2019-01-25 09:46:54 +01:00
Corey Hickey
5e0487fef7
Allow valid interpretations of strings as non-strings
...
The various ConfigGetParamX() functions can handle string inputs
already, but ConfigGetParameter() rejects such inputs beforehand.
Modify ConfigGetParameter() to validate that a string represents a
numeric value. If so, then ConfigGetParamX() can handle the input.
Factor the checks into a new function to keep them from getting too
long.
Use case:
Values read from the ui-console command line are always strings, by
necessity. When the config file is empty (or somehow lacking the
specified parameter), then ui-console cannot know the desired type, so
it defaults to storing the parameter as a string. Without this patch,
this can result in plugin code ignoring a validly-specified
command-line parameter.
Use case:
Without this patch, if a user unknowingly specifies a float or integer
value in the config file within double-quotes, this can result in plugin
code ignoring the parameter.
2019-01-24 22:32:10 -08:00
Corey Hickey
be83a1dc31
Fix ConfigGetParamX comments (copy/paste omissions)
2019-01-24 20:02:43 -08:00
Gillou68310
178c5f5a72
new_dynarec: Refactor hash_table
2019-01-21 15:25:37 +01:00
Gillou68310
6a4acbb5dd
new_dynarec: Do not jump to jump_vaddr_x18 on arm64
2019-01-21 15:25:36 +01:00
Gillou68310
be39dfe390
new_dynarec: Fix crash in Paper Mario on 64bits platform
2019-01-21 15:25:36 +01:00
Gillou68310
c960620eff
new_dynarec: get_addr* refactoring
2019-01-21 15:25:36 +01:00
Gillou68310
4a667edb48
new_dynarec: Allow disabling links between recompiled blocks
2019-01-21 15:25:35 +01:00
Gillou68310
b36f209e5a
new_dynarec: Fallback to literal pools when needed
...
Data is outside the +/-4GB range from program counter
Data is not in the 32 bits address space
2019-01-21 15:25:35 +01:00
Gillou68310
0db19722d1
new_dynarec: No need to use pc relative address to access fcr31
2019-01-21 15:25:35 +01:00
Gillou68310
ec34b4522a
new_dynarec: Implement double cache address for arm64
2019-01-21 15:25:34 +01:00
Gillou68310
963537bf7a
new_dynarec: Fix crash when reached end of the cache
2019-01-21 15:25:34 +01:00
Gillou68310
f09342a9fd
new_dynarec: Fix non rip relative access to g_dev in linkage_x64.asm
2019-01-21 15:25:33 +01:00
Richard Goedeken
c3e3f17e0f
Merge pull request #607 from helviojr/joystick_event_initialize_fix
...
Fix joy_max for initialize loop
2019-01-16 19:45:27 -08:00
Richard Goedeken
a325c9d0da
Merge pull request #605 from bugfood/fix-nosaveoptions
...
Preserve floating-point configuration values.
2019-01-16 19:34:21 -08:00
Hjunior
29e67258b4
Fix joy_max for initialize loop
...
During SDL joystick initialization needed for core events hotkeys, the loop of all controllers, in case of a J* hotkey should stop on the last found controller (ex.: for four controllers, should go from J0 to J3, instead of J4).
2019-01-14 23:51:50 -02:00
Corey Hickey
77c629a9f0
Preserve floating-point configuration values.
...
Currently, if a floating-point configuration value is equal to an
integer, it gets rewritten as an integer.
Example:
The Video-Rice PolygonOffsetFactor parameter is registered in the source
as a float, default 0.0f. When configuration is not initially present
(the first run of the program), the internal type is M64TYPE_FLOAT, so
the core writes the value to the config file as '0.000000' (default
6-digit precision of fprintf). On the next run, the core reads the value
and translates it to M64TYPE_INT and then writes it to the config file
as '0'.
This patch changes the parsing so that floats are preserved as floats
even when they happen to have an integral value. This way, a user
reading the config file has a visual indication of which values may be
set to floating-point values.
2019-01-13 17:54:45 -08:00
Logan McNaughton
af14deb652
Fix mingw build
2019-01-13 10:15:06 -07:00
Gillou68310
c4c63a1242
new_dynarec: Initial x64 and arm64 support
2019-01-09 16:03:35 +01:00
Gillou68310
df125cbed6
new_dynarec: Get rid of last_count
2018-12-20 16:42:29 +01:00
Gillou68310
da131e562d
new_dynarec: Refactoring multdiv_assemble_x86 and jump_syscall
2018-12-18 13:39:57 +01:00
Gillou68310
434a0cacf6
new_dynarec: Don't save registers which are overwritten
2018-12-18 12:40:15 +01:00
Gillou68310
b7feff2a2b
new_dynarec: Assign fake_pc once and for all
2018-12-14 10:41:20 +01:00
Gillou68310
5ff85aac1d
new_dynarec: Refactor dirty stub parsing
2018-12-14 10:41:19 +01:00
Gillou68310
04b1b4ac3f
new_dynarec: Allocate temporary register for load instructions address generation
...
Previously address generation was done in rt breaking register writeback in case of exception
2018-12-14 10:41:19 +01:00
Gillou68310
5892351b13
new_dynarec: Add interpreted load/store instructions
2018-12-14 10:41:18 +01:00
Gillou68310
1bfb960876
new_dynarec: Use wasconst instead of isconst in load_all_consts and wb_consts
2018-12-14 10:41:18 +01:00
Gillou68310
5a4c192e44
new_dynarec: Refactor register pre-allocation
2018-12-14 10:41:18 +01:00
Gillou68310
de6e876fed
new_dynarec: Add consistency check in register allocator
2018-12-14 10:41:17 +01:00
Gillou68310
01206aa75d
new_dynarec: Fix wb_dirtys
2018-12-14 10:41:17 +01:00
Gillou68310
8df3b4380d
new_dynarec: Fix for 64bit platform
2018-12-14 10:41:16 +01:00
Gillou68310
21c24f9759
new_dynarec: Refactor ldl_merge/ldr_merge
2018-12-14 10:41:16 +01:00
Gillou68310
9525ed42ce
new_dynarec: refactor storelr
2018-12-14 10:41:16 +01:00
Gillou68310
07f3b315ce
new_dynarec: refactor load/store hword
2018-12-14 10:41:15 +01:00
Gillou68310
71da1fd038
new_dynarec: Remove specific x86 rounding modes array
2018-12-14 10:41:15 +01:00
Gillou68310
e12a9b6504
new_dynarec: refactor cop0_assemble
2018-12-14 10:41:15 +01:00
Gillou68310
c2a444541f
new_dynarec: add recompiler debugger
2018-12-14 10:41:14 +01:00
Gillou68310
eb9c589cd8
new_dynarec: Initial 64bits support
...
# Conflicts:
# src/device/r4300/new_dynarec/new_dynarec.c
# Conflicts:
# src/device/r4300/new_dynarec/new_dynarec.c
2018-12-14 10:41:14 +01:00
Gillou68310
6d390e5423
new_dynarec: Use the same memory layout for both x86 and ARM
2018-12-14 10:41:13 +01:00
Gillou68310
e74c4e04c2
Revert "{init,free}_blocks and profiling is only needed for hacktarux dynarec."
...
This reverts commit d562015870
.
# Conflicts:
# src/device/r4300/r4300_core.c
2018-12-14 10:41:13 +01:00
Logan McNaughton
df8b2693fd
Fix errors introduced in #444
2018-11-13 08:21:58 -07:00
Richard Goedeken
22c949b3ee
Merge pull request #597 from bsmiles32/avoid_nameless_union
...
Avoid nameless union in r4300_core.h (this is a non standard extension)
2018-11-11 21:55:18 -08:00
Bobby Smiles
49806920d8
Avoid nameless union in r4300_core.h (this is a non standard extension)
2018-11-11 12:01:02 +01:00
Bobby Smiles
269ba846f8
Fix access to DD_ROM memory pointer.
...
I must have missed this when doing commit
9e4a3fb335
.
2018-11-11 11:52:47 +01:00
Richard Goedeken
9894f867d0
don't enable debugger when starting the core if the debugger callbacks were not all set
2018-11-06 08:00:49 -08:00
Richard Goedeken
95f054cc35
fix the r4300 instruction format structs with bitfields in the debugger so that they will work on big-endian as well as little-endian machines
2018-11-05 20:22:20 -08:00