scribam
e3e2c3a0d2
wip headers
2023-01-23 18:29:04 +01:00
Flyinghead
36e67203a4
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/deps/oboe
# core/emulator.cpp
# core/hw/maple/maple_jvs.cpp
# core/rend/gui.cpp
2023-01-17 21:20:14 +01:00
Flyinghead
66eb08f2d1
sh4: check that dma-ch2 source address is in ram
...
Force real BIOS for Force Five dc conversion
Fix for MINIDUMP-2W
2023-01-13 09:28:45 +01:00
Flyinghead
06c5ba7f0e
sh4: simplify exceptions
2023-01-11 20:42:33 +01:00
Flyinghead
84f6bd3fef
libretro build fixes
2023-01-09 17:44:40 +01:00
Matt Phillips
7176460de3
External windows serial console ( #828 )
...
* Open external console for serial output on Windows
(cherry picked from commit e41a1410b9
)
* Compile fix for _UNICODE
(cherry picked from commit 4e6927bd27
)
2022-12-15 22:49:20 +01:00
Flyinghead
d417237e64
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/emulator.cpp
2022-12-06 21:47:50 +01:00
Flyinghead
8001af9743
sh4: proper write masks for memory-mapped registers
2022-12-06 17:58:30 +01:00
scribam
f6532ca27a
fix some warnings
2022-11-19 12:52:26 +01:00
Flyinghead
d736dd027d
naomi2: initd card support. lua: fix multi-threading crash
...
initial d card reader support. insert card button.
lua: use mutex to enforce thread-safety
2022-02-16 19:02:04 +01:00
Flyinghead
e5d517dad2
use platform.isConsole(), platform.isNaomi(), ...
2022-01-27 17:52:19 +01:00
Flyinghead
4335aa563f
naomi2 WIP
2022-01-16 22:41:42 +01:00
Flyinghead
8f80bcb159
New serialize framework. Delay maple dma xfer
...
New serialize framework. Refactor serialization into modules.
Maple dma xfer must not be executed immediately. Delay until interrupt
is raised.
Fixes Geist Force freeze at start.
2021-11-13 15:56:42 +01:00
Flyinghead
bcc3337c58
cheats: support for bit-level RA codes
...
log start of address space, RAM, VRAM, audio RAM at boot
fix add cheat dialog layout
don't crash on wrong gdrom unlock code
2021-10-12 17:28:01 +02: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
93eff7fac6
sh4: fix TMU regression
...
introduced by 05d51cc35c
fixes SA2 running too fast
2021-08-29 11:55:42 +02:00
Flyinghead
05d51cc35c
sh4: timer underflow lost if TCOR is 0 or very small
...
Fixes DreamShell boot
2021-08-27 17:55:50 +02:00
Flyinghead
de060d66ab
don't save flash if no game started. libretro: fix notifications
...
compilation warnings, non-functional changes
2021-07-20 19:21:11 +02:00
scribam
d6545b253b
Misc cleanup
2021-06-06 11:15:06 +02:00
Flyinghead
3a1ae0db00
mmu: fix macos crash. only flush user mem in address lut
...
force rtt2vram for JSR (custom graffiti)
clean up vmem32 remains
missing host_context.h change
gh action: build sdl from source on macos
2021-05-18 12:53:14 +02:00
Flyinghead
373dffc65a
wince: ditch vmem32. use address LUT in dynarec. finer grained flush
2021-05-17 11:59:34 +02:00
Flyinghead
da40297810
fix msvc build
2021-05-16 20:18:49 +02:00
Flyinghead
92abf760de
unneeded address/value masking. clean up
2021-05-14 21:47:47 +02:00
Flyinghead
1464c02903
mmu: add address cache to mem slow path. better fastmmu hashtable.
...
mmu: add address cache to Read/WriteMemNoEx
fastmmu: ignore 1k pages. optimize hashtable
get rid of NO_MMU
2021-05-14 19:03:57 +02:00
Flyinghead
b3de6a166d
area 7 access to sh4 mm registers only through mmu translation
...
on-chip ram area isn't translated in both user and supervisor modes
vmem: return 0 for non-mapped region reads
Fixes dolphin blue crash/freeze. Issue #62
Fixes Resident Evil - Code Veronica X (Chris) floor 1F crash
2021-04-01 13:30:37 +02:00
Flyinghead
4d815570d0
sh4: define SCI module registers
2021-03-31 19:01:31 +02:00
Flyinghead
569c23ca95
pvr: use pvr_read32p/pvr_write32p to access 32b vram
2021-03-28 20:08:02 +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
scribam
913fbef952
clang-tidy: run readability-inconsistent-declaration-parameter-name and improve parameter names
2021-03-15 19:52:54 +01:00
scribam
ae47ff9875
clang-tidy: run modernize-deprecated-headers
2021-03-13 17:28:32 +01:00
scribam
1cc3490f51
Remove HOST_OS references
2021-03-13 11:38:34 +01:00
Flyinghead
0c8815549c
Merge branch 'fh/x64-arm-jit'
...
# Conflicts:
# core/hw/aica/aica.cpp
# core/nullDC.cpp
2021-03-02 19:42:15 +01:00
Flyinghead
c3a95594f9
New option system
...
Fix per-game settings (Issue #115 )
Automatic load/save state (Issue #173 )
Reload Naomi/AW BIOS after per-game settings are loaded to allow
per-game BIOS region. (Issue #96 )
Restrict Soul Reaver widescreen cheat to the EU version (Issue #188 )
Disable UI elements for overridden settings
Clean up/simplify legacy Naomi ROM loading
2021-03-01 10:13:40 +01:00
Flyinghead
89fe36b881
arm7 rec: lr wasn't updated in conditional bl
...
missing changes for previous arm64rec commit
more aica arm tests
wince vmem handler now uses direct ram access
2021-01-31 12:02:20 +01:00
Flyinghead
80782475da
x64 rec: get rid of setjmp. standardize ngen_Rewrite/HandleException
...
move rewrite code from exception handlers to x86/x64 dynarecs
use same host context info on linux/win
x64: stack alignment issue in mem handlers
2021-01-30 16:14:44 +01:00
flyinghead
e5b3c5268b
wince: attempt immediate read/write when address isn't translated
2021-01-07 19:18:53 +01:00
Flyinghead
632731bede
vmem: map area 4 access to vram
...
pass DDT0101 diag test
fix vmem handler bug with >= 8 handlers
ch2-DMA: use SB_LMMODE1 for upper mirror
dmac: update SAR and DAR according to CHCR.SM and CHCR.DM
use function templates for vram 32b handlers
clean up
2020-12-20 17:25:28 +01:00
Flyinghead
0d81c9fb0b
sh4: clean dmac module, correct address/len mask, add missing mirror
...
fix infinite loop
2020-12-18 13:58:36 +01:00
Flyinghead
6154cc08db
serial: fix maxspeed hang at boot reading from console
2020-12-02 14:44:16 +01:00
Flyinghead
276b59b24e
fix compile warnings. non-functional changes
2020-11-25 10:17:08 +01:00
Flyinghead
cffb272abd
sh4: non-functional changes
2020-11-24 21:29:04 +01:00
Flyinghead
fee28194fb
savestate: save sq_remap, save aw cart state, fix lr aw format
...
save AW cart state
save sq_remap used for mini-mmu with store queues
allow loading lr aw savestate. upgrade to v11
aica: saturate EG register
savestate: save current TA data
texcache: fix race condition when deleting a texture
handle 1x1 YUV tex as 565
2020-07-06 16:28:53 +02:00
Flyinghead
74aae115ee
sh4: implement C and WT MMU bits in cache. Use mem handlers everywhere
...
o/icache use C and WT bits from mmu to override cache and copy back
settings (fixes Windows CE)
move mem handlers setup out of mmu into sh4_mem. Call in dc_resume and
detect transitions interp -> dynarec to flush caches.
fix ssa tlb miss exception wih slow mmu
2020-06-24 15:23:47 +02:00
Flyinghead
22dcb1ec99
sh4 ocache implementation. IC and OC address/data read/write in P4
...
ignore SR.RB in user mode instead of forcing it 0
add STRICT_MODE to enable ocache in interpreter
don't flush mmu table when enabling it
fix fixNan64()
2020-06-12 17:35:14 +02:00
Flyinghead
333df13fce
sh4 icache implementation. move aica out of sh4/interp.
...
revert to original div1 impl
serialize rtc clock value
cmake fixes: asan and logging options, -no-pie on x64/linux
2020-06-09 12:02:01 +02:00
scribam
6ee4b6de85
Replace OS_DARWIN by __APPLE__
2020-04-26 14:19:21 +02:00
scribam
a155282fd0
Cleanup compiler warnings (mostly sign-compare)
2020-03-30 23:00:43 +02:00
scribam
c1b37b56bc
Remove "sh4_if.h" and "stdclass.h" from "types.h"
2020-03-30 23:00:43 +02:00
scribam
4bf6802855
Cleanup include headers
2020-03-29 14:26:21 +02:00
Flyinghead
333b21fac4
Fix .elf support. Init aica irq mask/level during HLE boot
...
BSC PCTRA is 32-bit wide
2020-02-05 18:02:44 +01:00
scribam
4161ca9b07
msvc build fixes
2020-01-28 19:08:22 +01:00
Flyinghead
31651c2ac6
more build fixes
2020-01-20 13:49:29 +01:00
Flyinghead
3e6bef3cc0
option to pipe the dc serial port to a pty on linux
...
allow the use of dcload-serial
2020-01-20 13:22:36 +01:00
Flyinghead
56dfeb6722
mmu: missing template instances in the slow mmu
2019-11-03 21:27:06 +01:00
Flyinghead
0e12da4395
DMAC: Add LMMODE1 for ch2-dma, add basic DMAC based dma support
...
backport from upstream
clean up
2019-11-03 21:22:46 +01:00
Flyinghead
a7926a2357
serial: backport from upstream. Clean-up
2019-11-03 18:12:16 +01:00
Flyinghead
9d3ee3b57f
dyna: get rid of SmcCheckLevel options. Fix rec-cpp
...
Block check is now full or off depending on block protection
rec-cpp: Add missing opcode call classes and allow for immediate args
2019-09-29 18:18:46 +02:00
Flyinghead
a19c73de7b
Fix some sh4 regs hard reset
2019-09-11 15:00:08 +02:00
scribam
49b7e0682b
Cleanup
2019-09-07 20:36:13 +02:00
Flyinghead
61f4cd4ecd
Merge remote-tracking branch 'origin/master' into fh/hle-bios
2019-08-31 22:10:09 +02:00
Flyinghead
5ca6cacf25
reios: fix wince exception due to unaligned pio xfer
2019-08-31 20:53:42 +02:00
Flyinghead
936cd6781b
clean up
2019-08-31 17:36:34 +02:00
scribam
148033625c
wince: Add missing preprocessor TRACE_WINCE_SYSCALLS
...
unresolved_ascii_string and unresolved_unicode_string only exist if
TRACE_WINCE_SYSCALLS is defined
2019-08-22 20:22:56 +02:00
Flyinghead
9791ebebce
wince: fix wince page lookup
2019-07-28 18:28:22 +02:00
Flyinghead
326bc580ec
Merge branch 'fh/unified' into fh/wince-dynarec
2019-07-13 12:50:19 +02:00
Flyinghead
bbc11a30aa
Naomi rename vars and clean up. Logging changes.
2019-07-13 12:44:10 +02:00
Flyinghead
58cb50f587
fix reset hang on naomi
2019-07-10 17:25:11 +02:00
Flyinghead
f3a91de1af
Unify dreamcast, naomi and atomiswave builds WIP
2019-07-09 23:52:19 +02:00
Flyinghead
35cd1fcf14
sh4: use new logging
2019-07-01 15:22:04 +02:00
Flyinghead
7120512205
wince: use exceptions in dyna/decoder.cpp and catch them in driver.cpp
2019-06-13 18:36:08 +02:00
Flyinghead
bd30752b86
Use auto& to avoid copy when iterating. Inline mmu_Read/WriteMemNoEx
2019-06-08 13:04:35 +02:00
Flyinghead
4540acc22e
mmu: optimize mmu_full_SQ()
2019-05-28 19:41:21 +02:00
Flyinghead
8cb86de026
Make SMCCheck=Fast work on arm64
...
The issue is that flushing the dynarec cache makes rewriting fail for
the currently executing block. So this avoids flushing the cache too
often but the problem remains.
2019-05-28 19:40:30 +02:00
Flyinghead
5b2cef3fdd
dynarec: add negc and xtrct op codes
...
native implementation of negc and xtrct for x64 and arm64
rec-arm64: pass exception pc in w27 instead of sh4 context
inline mmu_intruction_translation() and clean up
2019-05-26 13:30:05 +02:00
Flyinghead
e7e387b443
wince: enable/disable vmem32 based on mmu state
2019-05-24 18:19:33 +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
d82e5e2017
don't use mmu for dma
2019-04-18 22:48:37 +02:00
Flyinghead
5d6e96463c
x64 and win32 build fixes
2019-04-15 18:31:15 +02:00
Flyinghead
dece3fc13e
wince: use setjmp/longjmp instead of try/catch for dynarecs
...
WinCE fast mmu implementation
WIP arm64 dynarec
2019-04-15 18:02:34 +02:00
Stefanos Kornilios Mitsis Poiitidis
af6993a819
dynarec: Refactor smc-option a bit
2019-03-30 07:16:44 +01:00
Flyinghead
cb6acab40f
missing file from previous commit
2019-03-25 11:56:41 +01:00
Flyinghead
ef43883fb5
dynarec: WinCE support WIP
...
Only for the x64 dynarec atm
Bugs remaining
2019-03-25 11:53:13 +01:00
Flyinghead
d0f65b19d3
mmu: templatize mmu_full_lookup
2019-03-20 10:58:59 +01:00
Flyinghead
a21eedc88a
implement fpu disable exception and other interp and mmu fixes
...
implement sh4 fpu disable exception
implement assistance/PTEA MMU registers
fix some sh4 ops with side effect in interpreter
account for delay slot op cycles
avoid any side effect when using wince tracer
extract SH4_TIMESLICE to single header file (still not used by arm and
x86 recs)
2019-03-19 21:35:55 +01:00
Flyinghead
9e2938dff4
mmu: state change wasn't detected. WinCE syscalls tracing
2019-03-17 23:46:39 +01:00
Flyinghead
73d50486d5
mmu: dynamic switching with read/write mem function pointers
2019-03-17 22:59:18 +01:00
Flyinghead
e5b18cd8a0
wince: implement pref SQ to YUV converter and 32bit vram
...
implement incremental YUV conversion with pref SQ
implement access to 32bit VRAM with pref SQ
init YUV converter when TA_YUV_TEX_CTRL is set
set FIFO available space to 256 through SB_TFREM reg
fake FIFO status through SB_FFST reg
2019-03-14 21:35:33 +01:00
Flyinghead
6d6492ddc1
mmu: flush tables when MMUCR.TI is written
2019-03-13 17:17:08 +01:00
Flyinghead
0d0fd212ff
Implement Ch2 DMA to 32-bit VRAM
...
Fixes Giana's Return
2019-03-08 13:23:51 +01:00
Flyinghead
a3f898b7d0
Naomi: implement undocumented SH4 registers to make version h bios happy
2018-11-06 10:54:13 +01:00
Flyinghead
22b18d97a0
Don't flush the dynarec cache when the sh4 instruction cache is flushed
...
Fixes Shikigami No Shiro II slowness
2018-10-28 01:29:44 +02:00
Flyinghead
4b38b9b788
less log
2018-10-16 15:35:28 +02:00
Flyinghead
7ce4fccb37
Merge remote-tracking branch 'origin/master' into fh/mymaster
2018-09-20 17:28:41 +02:00
Ender's Games
e5c0f0ee71
https://code.google.com/p/nulldc/source/detail?r=108
...
Originally ported from nullDC to libretro in commits:
2fa562db1b46c52b663b3dd4bb33a64907357458
f8eb58ac16a9e5adf662b99be5d00729264808e0
Modified for use w/ reicast per-game configuration
2018-08-22 21:14:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
d85e4d8dff
sh4/mmu: Don't use exceptions when disabled
2015-09-29 03:17:26 +02:00
Stefanos Kornilios Mitsis Poiitidis
4a060b5635
sh4/mmu: C++ exception based sh4 exception support. Won't run wince yet.
...
- Rewrite mem ops to only modify regs after exception path
- Throw & catch logic for interpreter that raises the exception
- Re-enabled some commented mmu code
2015-09-29 03:11:28 +02:00
Stefanos Kornilios Mitsis Poiitidis
dcd77326cc
sh4/mmu: Import the old mmu implementation from nullDC.
...
Reicast doesn't support exceptions yet, so this isn't of much use now,
and is intended mostly as documentation. nullDC used some call stack
hooking magic to handle exceptions, which was never generic and clean
enough to be worth the effort to port to Reicast.
2015-08-27 17:05:06 +02:00