Flyinghead
6ea61b9084
android: support 4KB and 16KB page sizes on 64-bit platforms
2025-07-06 22:16:06 +02:00
Flyinghead
76638df001
sh4: split xffr array. Fix FPCB_PAD on windows
...
Split xffr[32] into xf[16] and fr[16].
Set FPCB_PAD size to 64_KB. Issue #1736
Get rid of shil_param::reg_aofs
2024-11-13 10:31:45 +01:00
Flyinghead
129673a84b
dynarec: use sh4 ctx to get register pointers. prefer offset
...
Move restoreHostRoundingMode() into Sh4Context
2024-11-09 18:44:51 +01:00
Flyinghead
7c1c5817d3
sh4: move sqWrite func into sh4 context. Simplify usage
...
Allow passing sh4 context to dynarec canonical implementations
Reduce FPCB padding to PAGE_SIZE except on arm32
2024-11-09 16:54:47 +01:00
Flyinghead
93ae9d0375
sh4: refactor interpreter and recompiler with Sh4Executor interface
2024-11-07 18:14:18 +01:00
Flyinghead
52df0133f0
sh4: pass sh4 context to sq write handlers
2024-11-06 23:27:20 +01:00
Flyinghead
d5aeb482d9
sh4: move sq_buffer into sh4 context
2024-11-06 22:11:27 +01:00
Flyinghead
7eec648690
sh4: move Sh4RegType & GetRegPtr into sh4/dyna
...
rec-arm: use getRegOffset/reg_nofs instead of GetRegPtr
2024-11-06 20:46:32 +01:00
Flyinghead
897e06b887
sh4: refactor GetDR/SetDR and access to fp registers
2024-11-06 19:26:04 +01:00
Flyinghead
aa38771cd0
refactor sh4_sr_GetFull/sh4_sr_SetFull
2024-11-06 18:01:01 +01:00
Flyinghead
4baf529ff7
race condition when stopping emu thread right after start
...
In threaded rendering, CpuRunning is set after the emu thread is
started. If calling Emulator::stop() before it is set, the call will
hang.
2024-09-23 17:43:23 +02:00
Flyinghead
5bfbcb210c
dynarec: refactor imm mem r/w and store queue handlers. clean up mmu
...
Eliminate duplicate code for immediate memory read/write in all dynarecs
Simplify PREF to use do_sqw_nommu even for simple SQ remap
Check for address errors before mmu translation
Get rid of unneeded template params in mmu translation funcs
2023-02-18 13:33:38 +01:00
Flyinghead
ac24d9be5b
preserve savestate compat with sh4 exception changes
2023-01-11 23:01:37 +01:00
Flyinghead
06c5ba7f0e
sh4: simplify exceptions
2023-01-11 20:42:33 +01:00
Flyinghead
ce674a872a
dyna: implement missing ops: ldc/stc sr/fpscr, tas, div1
...
add dynarec implementations for missing ldc and stc ops with sr and
fpscr
add dynarec implementation for tas.b
canonical implementation for div1
delete unused reg_old_sr_status and reg_sr
2022-12-17 11:09:51 +01:00
Flyinghead
bc3be1029c
fix sh4 scheduler. use common cycle counter in sh4 context
...
scheduler reset and unregister
schedule requests during reset(), not init()
preserve cntx.sh4_sched_next on sh4 reset
Use cntx.cycle_counter in dynarecs and interpreter
Fixes Confidential Mission hang at boot with HLE
2021-10-07 16:18:32 +02:00
Flyinghead
373dffc65a
wince: ditch vmem32. use address LUT in dynarec. finer grained flush
2021-05-17 11:59:34 +02:00
Flyinghead
025b447a9c
arm32: replace old arm emitter with vixl
2021-05-15 11:41:00 +02:00
flyinghead
a8929170f3
up sh4 context pad to 64k to keep windows happy
2021-03-29 21:12:43 +02:00
Flyinghead
904bed862e
arm32: store queue dynarec optim. ditch Unstable Optimizations
...
shrink Sh4Context.pad size except on arm32
reset sh4 before mem to unlock ram
2021-03-29 14:26:55 +02:00
Flyinghead
6b11674949
use aligned struct for sqbuffers and sh4 context
...
serialize YUV_index
remove bogus arm32 TAWriteSQ implementation
2021-03-23 16:07:53 +01:00
Flyinghead
0f6dda9cb1
gdb server agent
...
allow stepping and soft breakpoints
clean up interpreter opcodes
2021-03-23 14:49:19 +01:00
Flyinghead
424736961b
arm64: get rid of inline assembler
2021-03-02 20:35:59 +01:00
flyinghead
c344903a23
new x86 dynarec. Enable for android
...
refactor common code between x64 and x86 dynarecs.
x86 rewrite based on the x64 one
some discarded dyna blocks weren't fully unlinked
2021-01-26 13:16:48 +01:00
Flyinghead
a39199d379
clean up
2020-12-07 22:16:51 +01:00
Flyinghead
8740f22c0a
fix all known div32 issues
...
support libretro naomi and aw savestates
2020-06-06 18:53:47 +02:00
Flyinghead
2c54dfd132
arm64: check CpuRunning at end of each timeslice. clean up
...
fixes hang when exiting service menu in kofnw
2020-04-24 19:56:38 +02:00
scribam
c1b37b56bc
Remove "sh4_if.h" and "stdclass.h" from "types.h"
2020-03-30 23:00:43 +02:00
Flyinghead
530cdaa23f
use doubles to emulate FIPR on x86. avoid crash with per-game config
...
Don't store the renderer type in per-game config as this crashes.
Fixes Sonic Adventure falling off track
Other non-functional changes
2019-12-13 12:27:43 +01:00
Flyinghead
936cd6781b
clean up
2019-08-31 17:36:34 +02:00
Flyinghead
58cb50f587
fix reset hang on naomi
2019-07-10 17:25:11 +02:00
Flyinghead
e3d95f2258
wince: unify _vmem and vmem32. Use 4GB virtual space on 64-bit arch
...
On 64-bit architectures, _vmem first tries to allocate 4GB then falls
back to 512 MB.
The same virtual space is now used by _vmem and vmem32 (mmu)
2019-05-23 11:40:33 +02:00
Flyinghead
c2c0215e1b
Merge remote-tracking branch 'origin/master' into fh/wince-dynarec
2019-05-22 14:13:00 +02:00
Flyinghead
810b8a59da
wince: 32-bit virtual mem space
...
use fast mem read/write for x64 and arm64 dynarecs
2019-04-29 18:23:00 +02:00
flyinghead
7f0489ff28
visual studio compatibility
...
no modem support
no zip or 7z support so no naomi for now
hacked a .asm file as vs doesn't support inline assembly -> code dup
2019-03-30 19:26:05 +01:00
Flyinghead
91cfd4b2f7
Reserve and allocate maximum RAM/VRAM/ARAM in all cases
...
Reserve enough virtual memory space for DC and Naomi
Allocate dynarec entry point tables for max possible ram
Free mem and release vmem on exit
2019-01-24 09:48:58 +01:00
Flyinghead
fc05727538
dynarecs clean-up
...
move GetRegPtr and ngen_FailedToFindBlock to sh4/dyna
2019-01-11 23:52:20 +01:00
Sven
daae7c8e68
add save states
2018-09-02 09:49:23 -04:00
Stefanos Kornilios Mitsis Poiitidis
67ecd6d9f9
vmem: Automatic fallback to slowpath if alloc fails
...
This consolidates some of the work done for TARGET_NO_NVMEM and
feat/no-direct-memmap. If nvmem is disabled at compile time or alloc
fails _nvmem_enabled() will return false. Various other fixes
and cleanups all around.
2015-08-12 03:09:44 +02:00
Stefanos Kornilios Mitsis Poiitidis
ca83428fa5
naomi: Fix linux builds
2015-08-11 19:13:12 +02:00
Stefanos Kornilios Mitsis Poiitidis
9bc0a8ff0f
shrec/bm: BM lookup table size follows RAM_SIZE
2015-08-11 19:13:11 +02:00
Stefanos Kornilios Mitsis Poiitidis
56ebda10a9
ios interpreter works, bios runs w/ 3d visulals
...
THIS IS A MESS. Sorry @angelXwind :p. We'll have to clean up and merge for r8, but most of the nasty work is there.
What works:
- full init, memalloc, mprotects, etc
- boot
- gles2
What doesn't:
- Exceptions for page faults
- Breaks texture cache
- Breaks dynarec because of fastpath
- segfaults don't work, needs special mach exc_server magic that still eludes me after 5 hours
- Dynarecs. RWX issues, and broken buffer mappings. Also some minnor linking stuff (most of it is taken care of)
- Audio. I just killed it off.
- All of the ui. Was getting in the way of me not knowing how to edit story boards...
- Input
Also, merged branch 'skmp/mac86-hackport' into skmp/ios-wip
Have fun~
2014-12-17 10:19:44 -08:00
Stefanos Kornilios Mitsis Poiitidis
34bc42b7a4
Add x64 target, fix Sh4RCB pointer sizing, u32->unat in vmem
2014-12-11 14:02:10 +01:00
Stefanos Kornilios Mitsis Poiitidis
f5d29677b3
Merge branch 'androidui'
...
Conflicts:
core/hw/pvr/spg.cpp
core/hw/sh4/interpr/sh4_interpreter.cpp
reicast/android/src/com/reicast/emulator/MainActivity.java
2013-12-28 22:28:50 +01:00
Stefanos Kornilios Mitsis Poiitidis
7ef9de3cae
Moving code around, cleanups
2013-12-28 22:20:08 +01:00