Flyinghead
2355bb8bb5
pvr: drop more vertices with large x and y
...
Fixes Manic Panic Ghosts bogus transparent rectangles in first stage
2023-03-05 15:08:17 +01:00
Flyinghead
c4d24254db
naomi2: FFB support for Club Kart and King of Route 66
2023-03-04 17:45:53 +01:00
Flyinghead
014da3a225
naomi: network output FFB for 18 wheeler and f355
2023-02-28 20:23:58 +01:00
Flyinghead
885a0508c0
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/hw/aica/sgc_if.cpp
# core/hw/naomi/naomi.cpp
# core/hw/sh4/dyna/driver.cpp
2023-02-28 20:02:23 +01:00
namtsui
a1472fb190
OpenBSD 7.2 patches ( #953 )
...
* OpenBSD: BSS is immutable so mark it as mutable so that mprotect RWX works
see: mimmutable(1)
bc009f82ea
* OpenBSD does not have mcontext_t
<signal.h> provides `typedef struct sigcontext ucontext_t;'.
take register names from <machine/signal.h>, which provides struct
sigcontext.
see:
1a13d3ae4e
* OpenBSD uses major.minor for shared libs, so properly dlopen libGL.so
* OpenBSD remove redefinition of swap16
* OpenBSD: SDL2 controller detection
Use sdl_open_joystick() to open controllers on startup instead of
SDL_JOYDEVICEADDED event, which never gets detected.
* OpenBSD does not have mcontext_t but linux does
2023-02-28 18:22:45 +01:00
Flyinghead
26815d042a
arcade ouput: send game name before any output
...
Send the game id before any output to inform clients of the current
running game.
2023-02-27 17:46:00 +01:00
Flyinghead
026f21eddf
naomi: report error if rom is invalid instead of crashing
...
Fixes MINIDUMP-CS
2023-02-27 17:43:08 +01:00
Flyinghead
8d54382b10
aica: apply RAM mask to sample address (SA)
...
Fixes MINIDUMP-B9
2023-02-24 21:24:56 +01:00
Flyinghead
97dfabc416
pvr: don't reset TA parser during soft reset
...
Rendering might be in progress in another thread and this leads to
crashes.
Fixes MINIDUMP-AW and MINIDUMP-AY
2023-02-22 17:49:01 +01:00
Flyinghead
9b24984b07
crash when switching to full mmu
...
The MMU now has a state variable, which must be set before the dynarec
is reset.
Regression in afcb3b7ad8
Fixes MINIDUMP-AZ, MINIDUMP-B7, MINIDUMP-B0
2023-02-20 22:56:23 +01:00
Flyinghead
7ce08ea860
Fix Touch de Uno 1 & 2 inputs
...
Fix touchscreen touch detection
Default eeproms with calibrated touchscreen and disabled printer
2023-02-20 11:14:02 +01:00
Flyinghead
a156edbd73
Merge remote-tracking branch 'origin/master' into dev
2023-02-19 14:10:37 +01:00
Flyinghead
9dae5827cc
naomi: touchscreen emulation for manic panic ghosts and touch de zunou
2023-02-19 13:51:23 +01:00
Flyinghead
bf79183bd6
mmu: max alignment requirement is 32-bit
...
a 64-bit access only needs to be 32-bit aligned.
use enum for mmu errors
2023-02-18 13:33:38 +01:00
Flyinghead
afcb3b7ad8
mmu: get rid of FullMMU option. Detect wince with string id in ram
...
ForceWindowsCE now just sets ExtraDepthScale
2023-02-18 13:33:38 +01: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
scribam
d8137a967c
C++17 ( #926 )
...
* cmake: use c++17
* Use std::size
* Use std::make_unique
* Use std::clamp
* Use structured binding
* Use [[fallthrough]]
* Use enable_if_t/is_enum_v/is_integral_v/is_same_v
* Use if constexpr
* Use try_emplace
* Use auto for iterators
* Use inline variables
2023-02-18 13:24:34 +01:00
Flyinghead
04df0da7cb
pvr: increase index size for wild riders
...
Index overrun with wild riders
Fixes MINIDUMP-7A
2023-02-12 15:05:02 +01:00
Flyinghead
5eeddecb40
maple: set bus speed back to 2Mbps. Worms Pinball needs FFBE
...
Power Drift crashes with 1Mbps
partial revert of 2332884d8b
Force Slave Zero to use real bios (still has issues)
Worms Pinball prototype needs full framebuffer emulation
2023-02-12 15:05:02 +01:00
Flyinghead
0f90293252
dynarec: handle illegal instructions
2023-02-10 14:53:54 +01:00
Flyinghead
0d166e1403
msvc build fix
2023-02-10 14:17:45 +01:00
Flyinghead
5b169b7f9d
naomi: use master pid to make unique multiboard shared mem file on unix
2023-02-10 12:54:20 +01:00
Flyinghead
099a758c94
hw: new hardware register implementation
...
used for sh4 mm registers and holly
ignore incorrect size reads and writes
separate data and read/write handlers
2023-02-10 12:51:36 +01:00
Flyinghead
5020a267af
pvr: fix unsorted pass triangle count. tr count should accumulate
...
partial revert of 927db7f189
Fix missing walls in Bust a Move 4 (vs)
2023-02-06 15:09:18 +01:00
Flyinghead
debe21de7b
Merge remote-tracking branch 'origin/master' into dev
2023-02-05 22:20:28 +01:00
Flyinghead
37c17e4300
pvr: re-use TA contexts if not used for 60 frames
2023-02-05 18:32:35 +01:00
Flyinghead
927db7f189
pvr: sorted triangle count incorrect with multiple render passes
...
causes crash in setProvokingVertex
Fix for MINIDUMP-7A, MINIDUMP-7H, MINIDUMP-7J
2023-02-05 11:18:18 +01:00
Flyinghead
6e940e4d08
ggpo: move endOfFrame() call back to start render
...
Naomi2 TA context geometry for the current frame is lost when
rollbacking during vblank in because it hasn't been queued for render
yet.
Fixes black screen after GGPO rollback for Naomi 2 games
2023-02-03 11:34:58 +01:00
Flyinghead
bfdab4db20
pvr: add dummy sorted triangle to signal that per triangle is in use
...
Avoids crash when sorted triangle list is empty and renderer uses wrong
index values
2023-02-03 11:07:21 +01:00
Flyinghead
f0e4574132
aica arm: stop the cpu if setting an illegal mode instead of crashing
...
Fixes MINIDUMP-70
2023-02-03 11:03:08 +01:00
Flyinghead
d1e6ee9cd7
pvr: add a dummy sorted triangle if list is empty
...
this signals that sorted triangles are being used otherwise wrong
indexes values lead to a crash
2023-02-02 20:19:52 +01:00
Flyinghead
6b2063b06f
GGPO fixes
...
Memwatchers weren't properly reset after a ggpo session.
Race condition when stopping if GGPO restarts the cpu for a new frame.
The emu thread might still run some rollback frames before stopping, so
the emu state must be updated only after ggpo is stopped.
Fixes MINIDUMP-6P
Don't autosavestate when GGPO is on
Really disable renderer during GGPO advance frame
Don't stop the sh4 after render (single threaded) when GGPO is on
android: Don't restart when unpaused if online
2023-02-01 18:04:26 +01:00
Flyinghead
e70a0dcf3d
sh4_fpu clean up. tests
2023-02-01 13:53:32 +01:00
Flyinghead
d1ab3461a6
savestates: dropping support for old formats
...
savestates older than 3 years aren't supported anymore
2023-01-31 17:57:54 +01:00
Flyinghead
04c418d02a
serialize: move code out of serialize.cpp and into modules
2023-01-31 10:13:03 +01:00
Flyinghead
528235ce9d
jvs: fix kingrt66 instant win with accelerator
2023-01-30 13:28:14 +01:00
Flyinghead
27ea6ca092
aica: rename mem and reg accessors
2023-01-30 13:21:43 +01:00
Flyinghead
53dab29ddb
iOS and Switch build fixes
2023-01-30 11:10:14 +01:00
Flyinghead
b1479e6e34
aica: use namespaces, simplify api, handle serialization
...
Rename VArray2 to RamRegion. Add alloc(), free(), setRegion() and
de/serialize()
2023-01-30 10:40:07 +01:00
Flyinghead
143073b61d
rename _vmem to addrspace and move platform vmem stuff to virtmem ns
...
use namespaces
simplify names
no functional changes
2023-01-29 18:48:33 +01:00
Flyinghead
0c01075ba8
__fastcall goes after return type
2023-01-29 14:07:37 +01:00
Flyinghead
1149d499a8
x86: windows ce support in dynarec
...
clean up some unused methods and return values
2023-01-28 19:22:36 +01:00
Flyinghead
0a27b63584
aica: remove useless verify on reg access sizes
...
Fixes MINIDUMP-6C
2023-01-28 18:22:39 +01:00
Flyinghead
99d5266aa0
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/hw/holly/sb_mem.cpp
# core/hw/naomi/naomi.cpp
# core/hw/naomi/naomi_flashrom.cpp
# core/hw/pvr/ta_ctx.h
# core/rend/gui.cpp
2023-01-27 15:41:45 +01:00
Flyinghead
610e3cf968
naomi: avoid crash with M4 carts if M4 key is missing
...
Fix shorsepr crash at boot
Fixes MINIDUMP-5Z
2023-01-27 13:03:52 +01:00
Flyinghead
e18a4afcbb
vk and pvr fixes. Renderer::Process returns void. N2 light 0 is no-light
...
pvr: Heap use after free due to PolyParam vector reallocation
vk: fix wrong buffer size calculation
Renderer::Process now returns void since it can't fail anymore
naomi2: light model at index 0 is "no light"
dx9, gles: throw if naomi 2 not supported
2023-01-27 11:16:25 +01:00
Flyinghead
499f86b065
pvr: use std::vector instead of List<> in render context
...
Remove overrun-related code.
Replace N2 matrix and light model pointers with indices.
2023-01-26 14:13:28 +01:00
scribam
80cf4406a7
cleanup include headers
2023-01-26 10:06:51 +01:00
Flyinghead
1c4871acb3
naomi: fix derbyocw rom list
...
was using drbyocwa roms
2023-01-25 17:16:52 +01:00
Flyinghead
1a681746b5
mmu: fix rte delay slot fetch address error with slow mmu
...
slow mmu clean up
P4 isn't executable
mmu test
mmu_TranslateSQW: throw exception but don't return status
2023-01-24 21:17:48 +01:00
Flyinghead
5096d50d37
move rom/flash stuff to hw/flashrom. nvmem api
2023-01-24 19:17:48 +01:00
Flyinghead
bbff377ceb
maple: less log on dma error
...
Fixes GameShark CDX log spam
See MINIDUMP-5R
2023-01-24 14:30:09 +01:00
Flyinghead
f8372c51a7
Revert "wip headers"
...
This reverts commit e3e2c3a0d2
.
2023-01-24 14:26:14 +01:00
Flyinghead
31debefbe1
release dynarec mem allocs when terminating, including arm and dsp
...
Issue #453
2023-01-24 09:21:46 +01:00
Flyinghead
c7d214e55a
aica: update pending ints when enable mask is changed
...
Updating interrupts masks SCIEB and MCIEB can enable new interrupts so
check for that.
Only avoid race condition when needed.
2023-01-23 20:04:18 +01:00
scribam
e3e2c3a0d2
wip headers
2023-01-23 18:29:04 +01:00
Flyinghead
cc408f9688
aica arm7: fallback to interpreter for invalid LDR/STR
...
Fixes MINIDUMP-4X
2023-01-22 18:11:03 +01:00
Flyinghead
88384ad7d1
dynarec: crash in rdv_BlockCheckFail when current block can't be found
...
Only when MMU is on and used to compute blockcheck_failures so can be
ignored.
Tentative fix for MINIDUMP-59
2023-01-22 17:13:34 +01:00
Flyinghead
464b459073
modem: don't die when reg11 is written
...
Fix for MINIDUMP-5A
2023-01-22 17:10:12 +01:00
Flyinghead
9473c235f2
sh4: Fix CCN_MMUCR register definition
...
Some reserved bits were missing, which was breaking the (slow) MMU since
the write mask is correct.
2023-01-21 12:11:42 +01:00
Flyinghead
b443467770
naomi: relax some eeprom checks based on BOOTID specs
2023-01-21 12:01:22 +01:00
Flyinghead
a6bf9dd39c
Option to disable VMU sounds. VMU sounds use better waveform.
2023-01-21 11:54:34 +01:00
Flyinghead
8fdcea2e20
maple: delay raising overrun interrupt when dest isn't in RAM
...
Only raise error when copying data back to RAM.
Fixes Cheats 'N Codes Volume 1
2023-01-21 11:38:58 +01:00
Flyinghead
a593cddf52
pvr: mvsc2 needs yet more rendering cycles
...
Fixes texture corruption in the character line up during intro.
Follow up to 976fb99aa3
2023-01-20 14:41:36 +01:00
Flyinghead
2420c05930
android: implement unwind info for arm32
2023-01-17 22:06:22 +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
a0b50cd41d
pvr: don't crash on invalid poly list types. log and ignore
...
Fix for MINIDUMP-3Z
2023-01-17 11:36:00 +01:00
Flyinghead
1d1754dc98
pvr: don't crash on YUV converter error. log and continue
...
Fix for MINIDUMP-44
2023-01-17 11:25:08 +01:00
Flyinghead
692ca52182
pvr: fix background poly texture coordinates
...
V tex coordinates were inverted for Donald Duck Goin Quackers
2023-01-16 17:56:37 +01:00
Flyinghead
b4ecaecd45
dynarec: raise sh4 address error if trying to compile unaligned address
...
Error was only raised when mmu is enabled.
tentative fix for MINIDUMP-3Q
2023-01-16 17:53:01 +01:00
Flyinghead
4bbf5c562e
ssa: infinite loop in skipSingleBranchTarget
...
Fixes Mat Hoffman's Pro BMX freeze when exiting a session.
Issue #878
2023-01-15 20:04:05 +01:00
Flyinghead
a370851494
dynarec: check stale blocks in rdv_DoInterrupt if block not found
...
tentative fix for MINIDUMP-36
2023-01-14 12:54:05 +01:00
Flyinghead
3441a9ccf0
pvr: calculate framebuffer size when TA context is dequeued
...
Config can change after the TA context has been queued (upscaling, full
framebuffer emu, etc.) which can make the calculated framebuffer size
wrong during render, leading to crashes in renderers.
Fix for MINIDUMP-35
2023-01-14 12:39:38 +01:00
Flyinghead
2da833883b
pvr: skip triangles with NaN/Inf coordinates when sorting them
...
Issue #867
2023-01-14 10:46:21 +01:00
Flyinghead
c301bf0827
pvr: ignore invalid TA types instead of crashing
...
Fix for MINIDUMP-32
2023-01-14 10:42:26 +01:00
Flyinghead
92fa4c041d
gdrom: log invalid size register access but don't crash
...
Fix for MINIDUMP-1T
2023-01-13 11:34:40 +01:00
Flyinghead
f34a9f6eac
jvs: serialize drive board output value and more
...
Issue #864
2023-01-13 11:25:04 +01:00
Flyinghead
59606d8935
naomi: more robust error handling when loading invalid roms
...
Fix for MINIDUMP-2S
2023-01-13 10:49:52 +01:00
Flyinghead
640d4162b6
holly: log invalid pvr register access size but don't crash
...
Fix for MINIDUMP-2V
2023-01-13 09:52:17 +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
ac24d9be5b
preserve savestate compat with sh4 exception changes
2023-01-11 23:01:37 +01:00
Flyinghead
7e4572a86a
naomi: f355 multiboard support WIP
2023-01-11 22:31:36 +01:00
Flyinghead
06c5ba7f0e
sh4: simplify exceptions
2023-01-11 20:42:33 +01:00
Flyinghead
9b2f33f7bd
jvs: fix wrungp CAUTION message regression
...
due to 53ed006a54
Issue #861
2023-01-11 09:05:47 +01:00
Flyinghead
84f6bd3fef
libretro build fixes
2023-01-09 17:44:40 +01:00
Flyinghead
b37e6dc28d
Merge remote-tracking branch 'origin/master' into dev
2023-01-08 11:19:48 +01:00
Flyinghead
ba0a357d48
missing change for 12bba31270
2023-01-03 11:32:00 +01:00
Flyinghead
cf514b0d6b
pvr: skip remaining vertices if incomplete after inf vertex
...
in makePrimRestartIndex
Issue #846
2022-12-31 16:51:35 +01:00
Flyinghead
802f70fedd
pvr: recover from renderer init failure
...
issue MINIDUMP-V
fix some warnings
2022-12-29 19:18:19 +01:00
Flyinghead
85188bf137
naomi: fix button labels for hmgeo
...
Issue #841
2022-12-25 22:09:34 +01:00
Flyinghead
96aaa8b14a
elan: don't map RAM with vmem if not naomi2 game
...
Issue #839
2022-12-24 13:33:16 +01:00
Flyinghead
53ed006a54
naomi: 18wheeler, soulsurfer and wldrider input improvements
...
18wheeler: limit wheel range. Issue #693
18wheeler: Implement gear tristate lever with 2 buttons. Fake motor drive board to avoid error messages in deluxe version.
soulsurfer: floormat button/contact is always on
wldriders: unmap rear brake so it doesn't have to be released
2022-12-24 10:48:17 +01:00
Flyinghead
62085539a7
dynarec: reg alloc 64-bit regs. avoid some interpreter fallbacks
...
Option to reg alloc 64-bit regs in two host regs. Used when FPSCR.SZ ==
1 (64-bit reg and memory transfers.) Enabled for arm, arm64 and x64
(windows only) dynarecs.
Don't fallback to interpreter when FPSCR.PR==1 (double precision) for
FMOV, FLDS and FLTS.
2022-12-23 16:06:54 +01:00
Flyinghead
9578841480
pvr: fix texture bleeding before making indexes
...
fix crash with sorted triangles.
Issue #836
2022-12-22 13:15:32 +01:00
Matt Phillips
6d913f42c8
Host-side profiler - initial commit ( #834 )
...
* Host-side (Flycast) profiler - initial commit
* Profiler - configurable frame warning time
* Compile fix for !DC_PROFILER
2022-12-21 11:24:11 +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
51758b965e
ggpo: disable full framebuffer emulation. memwatch perf fix
...
Disable full framebuffer emulation with ggpo if threaded rendering is
enabled. Would require thread synchronization on VRAM page map.
memwatch: do single lookup on page map in hit()
2022-12-17 10:54:01 +01:00
Flyinghead
7fec511463
maple: don't recreate devs on rollback. Raise error if dest is invalid
...
maple: raise error is maple dest dma address isn't on RAM
maple: don't recreate maple devices when loading a rollback savestate
2022-12-17 10:51:12 +01:00
Flyinghead
f133e3cccb
verify() must not call a function with side-effect
2022-12-16 20:40:23 +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
Matt Phillips
733a1fa73d
Added USE_DX9 and USE_DX11 as configurable options in CMake
2022-12-15 22:48:38 +01:00
Flyinghead
f9feaa313b
pvr: sort triangles during parse. Use primitive restart
...
Sort triangles during ta_parse. Use the same index as other polys. Store
results in rend_context.
Use primitive restart if available to avoid too many degenerate
triangles.
Update renderers.
2022-12-13 22:57:57 +01:00
Flyinghead
a0a9b5bbc5
holly: crash when reading a write-only register
2022-12-12 22:15:12 +01:00
Flyinghead
cdca559d99
ggpo: optimize memwatch, save/load state. endOfFrame on vblank in
...
ggpo: Optimize memwatch and load/save state. Unprotect memory before restoring a state. Smaller timesync wait. Missing error handling.
pvr: call ggpo::endOfFrame() on vblank in only
ssa: fix warning
2022-12-10 17:19:34 +01:00
Flyinghead
32e3e7d9c5
vmem: no more 4GB vmem mode. only map elan RAM in naomi2 mode
...
Do not attempt to reserve 4GM of virtual space on 64-bit hosts. Use
512MB everywhere.
Don't map elan RAM if not needed and dont protect/unprotect it in
memwatch.
2022-12-09 17:37:49 +01:00
Flyinghead
9069a49145
pvr: take jitter into account in spg sheduler. fix scheduler edge case
...
Take jitter into account when calculating current scanline
Scheduler would miss the next int if it's on the next scanline
Support for Hblank interrupt mode 2 (every scanline)
2022-12-06 22:04:37 +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
446619ce85
atomiswave only has 2 MB of aica ram
...
new savestate version
build.h clean up
2022-12-06 20:51:45 +01:00
Flyinghead
f5fa1f6210
holly, sh4: reg access handlers don't need size. SB_FFST constant 0
2022-12-06 20:42:00 +01:00
Flyinghead
976fb99aa3
pvr: naomi mvsc2 needs more rendering cycles
...
Regression introduced by 0b0e64304e
2022-12-06 19:50:34 +01:00
Flyinghead
8001af9743
sh4: proper write masks for memory-mapped registers
2022-12-06 17:58:30 +01:00
Flyinghead
59ff44132b
aica: get rid of audio samples batching
...
Some audio issues are reported because of this option and the now
correctly clocked aica cpu.
2022-12-05 18:34:52 +01:00
Flyinghead
4c7df6c7f4
pvr: don't merge polys in per-triangle. merge polys in per-strip
...
Merging polygons in per-triangle can produces a large number of
degenerate triangles (up to x3), which must then be sorted, resulting in
a performance hit. This is useless since the sorted triangles are merged
after being sorted. (Regression introduced by
20d25059bf
)
Issue #818
In per-strip mode, polygons are now sorted before creating the index and
merging. So it doesn't have to be done in the renderer anymore.
2022-12-04 16:31:39 +01:00
scribam
f6532ca27a
fix some warnings
2022-11-19 12:52:26 +01:00
Flyinghead
19204882c4
pvr: reschedule spg when SPG_HBLANK_INT is updated
...
Fixes Triggerheart Exelica input lag
Issue #691
2022-11-04 18:34:43 +01:00
Flyinghead
2332884d8b
maple: lower xfer rate to 1 Mbps. More accurate payload size calculation
...
Maple bus max xfer rate is 2 Mbps but actual speed is 1 Mbps.
Fixes Slave Zero (PAL) freeze with HLE.
Some improvements on payload size calc. Clean up.
2022-11-04 11:22:50 +01:00
Flyinghead
94f3d80a75
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# CMakeLists.txt
# core/hw/pvr/Renderer_if.cpp
# core/oslib/audiobackend_alsa.cpp
# core/rend/vulkan/desc_set.h
# core/rend/vulkan/oit/oit_drawer.cpp
2022-11-02 20:12:34 +01:00
Flyinghead
0b0e64304e
pvr: adaptive end-of-render interrupt delay
...
EoR interrupt delay now depends on the TA context size.
Issue #634
Fixes issues with FMV in some WinCE games (Resident Evil 2, Next Tetris,
Nightmare Creatures 2)
2022-11-01 18:29:44 +01:00
Flyinghead
5a1a766bd4
pvr: emu unresponsive if no render. Present when FB_R_SOF = FB_W_SOF
...
Fix no input polling while waiting for present.
Present frame immediately if FB_R_SOF = FB_W_SOF.
2022-11-01 18:23:54 +01:00
Flyinghead
40dbf53792
pvr: use render pass # to read the right tile when marking blocks
...
Fixes Unreal Tournament flashing/black screen.
gl: mark vram area in rtt to avoid overwriting data (Worms World Party)
Force Worms World Party to use CopyToVRam (regression due to
6a5db32d5d
)
Don't calculate precise aspect ratio and use 4/3 instead (or more if
widescreen or stretch).
Fix clipping issue when using SCALER_CTL.vscalefactor. Avoir crash when
clip values are >= width or height.
vulkan: RenderFramebuffer wasn't working at all if !EmulateFramebuffer
2022-10-30 12:10:24 +01:00
Flyinghead
c1f0dd81d2
pvr: copy pvr regs at start_render time to avoid concurrent update
...
copy TA_GLOB_TILE_CLIP and SCALER_CTL to rend context when starting
render. Use rend context copy to calculate framebuffer size.
Fixes framebuffer size glitches in vf4 water stages.
lr: pass aspect ratio when resizing.
dx11: Wrong sizing of rotated games.
gl: test automation fixes.
2022-10-25 15:00:04 +02:00
Flyinghead
5722dc90f0
Full framebuffer emulation. Renderer interface changes
...
Helps for:
Densha de Go! 2, Issue #171
Vigilante 8, Issue #275
Xtreme Sports
Sonic Shuffle
The Ring of the Nibelungen
2022-10-23 16:32:42 +02:00
Flyinghead
e3c260f4ca
pvr: don't use op list to mark block if tile pointer is null
...
Naomi Doom sets the opaque list block to null in the tile, but op size
in TA_ALLOC_CTRL is non-zero. So use the TR list in this case.
Issue #682
2022-10-23 15:49:23 +02:00
Flyinghead
decf70c87c
get rid of INLINE, NOINLINE, __forceinline
2022-10-22 22:14:19 +02:00
Flyinghead
1fd95c2886
Roadsters (US) doesn't support RGB cable
...
Issue #791
Compile warnings
2022-10-21 10:54:26 +02:00
Edward Li
93e1d7fcee
`rend_resize_renderer_if_needed` check for window size changes also
2022-10-20 09:51:04 +02:00
Edward Li
6add19fb04
unprotect elan memory during `dc_reset` hard
2022-10-15 21:32:49 +02:00
Flyinghead
1858cf3b33
Merge remote-tracking branch 'origin/master' into dev
2022-09-24 19:28:38 +02:00
Flyinghead
aa97a6d64f
pvr: last naomi2 poly was ignored in some cases
...
Fix the disappearing moustache in wild riders
Fix other potential edge cases in pvr parsing
2022-08-25 19:34:23 +02:00
Flyinghead
e0d87eb093
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/rend/gui.cpp
2022-08-22 13:09:56 +02:00
Flyinghead
85b8c599c4
pvr: object list is sometimes shared between op and tr modvols
...
Region tile object list pointers can be identical for op and tr modvols,
in which case tr modvols should be drawn using op modvols geometry.
Used by crazy taxi 1/2, alien front online, daytona usa and probably
many others.
Issue #717
2022-08-22 12:38:04 +02:00
Flyinghead
807b8dea91
lr: Framebuffer size and aspect ratio. Fix vmu size and position (GL)
...
gl4: fix lightgun xhair size and position
2022-07-19 20:26:37 +02:00
Flyinghead
8e8935b9c4
pvr: xform matrix 240p support. screen stretching changes
...
Use FB_R_CTRL.vclk_div to detect progressive mode.
transform_matrix: Support non-4:3 aspect ratio such as 640x240. Don't
expect 480 height. Issue #690
Add black bars at top and bottom if screen aspect ratio is too low.
Issue #584 .
Framebuffer size doesn't depend on screen stretching. Stretching is done
when blitting to screen.
lr: correct subsequent stretching when drawing vmus and xhair
2022-07-18 18:21:09 +02:00
Flyinghead
9d17fc15a3
gdrom, hle: don't restart cdda if paused or playing
...
Fix regression due to ab791d1b9c
(unpausing restarts the current track)
Issue #690
2022-07-14 16:49:56 +02:00
Flyinghead
ab791d1b9c
gdrom: ignore CD_PLAY when already playing, not when paused
...
Issue #690
2022-07-13 12:52:29 +02:00
Flyinghead
4f206d2773
pvr: set correct framebuffer size in 240p/pixel_double
...
Some games use 240p and pixel_double resulting in a 320x240 framebuffer.
Renderer should be resized accordingly.
Fixes linear filtering artifact in KoF dream match 1999 (Issue #690 )
2022-07-12 15:55:49 +02:00
Flyinghead
7f9d9b81aa
gdrom: don't reset current cdda sector on cd_play if already playing
...
Issue #690
2022-07-12 15:33:11 +02:00
Edward Li
c77c3ab015
DRY
2022-07-09 11:46:27 +02:00
Flyinghead
f4986008fe
jvs: fix 86-request decoding
...
Fixes kingrt66 inputs when networked
Issue #673
2022-07-05 14:34:57 +02:00
Flyinghead
19112aecb2
Merge remote-tracking branch 'origin/master' into dev
...
# Conflicts:
# core/hw/naomi/naomi_cart.cpp
2022-07-01 12:42:37 +02:00
Flyinghead
5f5a748031
boxart: batch uid searches. Bios image. More arcade rom name changes
2022-06-23 22:06:50 +02:00
Flyinghead
74852520dc
maxspeed: allow use of per-game network settings
...
Issue #671
2022-06-20 20:56:53 +02:00
Flyinghead
7bcd8c819a
arcade rom names update. non square boxart
...
Correct handling of non square images
Improve search for arcade game names
Retrieve other images if no boxart (titlescreen, screenshot)
Changed some arcade rom names to more friendly ones
2022-06-20 18:07:06 +02:00
Flyinghead
11ecb473b6
new option to broadcast digital outputs over the network
...
Similar to MAME's "-output network" option. Should be compatible with
MAME Hooker and the like.
Limit boxart images loaded per frame to 10.
2022-06-16 16:50:26 +02:00
flyinghead
afd07c25ba
pvr: store tex address in render context. texture cache refactoring
...
Store FT_W_SOF1 and FT_W_CTRL in render context since they can be
modified before render end. New tentative fix for vf4 water reflection
flashing black during netplay.
Refactor texture cache to use constructors. RTT code moved from
renderers.
Partial revert of ddcd3861d3
2022-06-11 13:24:22 +02:00
Flyinghead
b5f1552ed8
elan: don't crash on invalid texture xfer size
...
Issue #647 : fixes initdv3jb area conquered crash
2022-06-06 15:54:25 +02:00
Flyinghead
71ac212dc7
elan: disable texture for vertices without UV coordinates
...
Fixes initial D white transparent quad at start of race
2022-05-30 16:15:15 +02:00
Flyinghead
e84cdce398
reios: flashrom read returns 0 on success. system id/timezone flash fix
...
flashrom read returns 0 on success, not size read.
Fixes Slave Zero (PAL) crash
2022-05-21 15:46:22 +02:00
Flyinghead
af2fe242f9
flash: console id is checksummed
2022-05-18 14:58:21 +02:00
Flyinghead
58d1f7cee1
pvr: reset nextContext in Reset(). Use tactx_Alloc for direct fb render
...
Fix crash with multipass renders
Issue #634
2022-05-16 13:04:38 +02:00
Flyinghead
430256266f
pvr: lightModels TA overrun on beach spikers
...
Better sizing of TA_context lists
2022-05-15 13:41:03 +02:00
Flyinghead
f9e38b11d9
pvr: restore TA_context pool
...
fixes performance regression on android
2022-05-15 13:37:58 +02:00
Flyinghead
39bb94dd55
jvs: don't scale ninja assault lightgun coordinates
...
Fixes reload issues (Issue #610 )
2022-04-30 11:50:56 +02:00
Flyinghead
afb0a80de1
pvr: autosort needs empty passes to be accounted for
...
Issue #612
2022-04-29 11:37:17 +02:00
Flyinghead
49932e02a6
gdrom: generate raw subcode
2022-04-27 14:32:53 +02:00
Flyinghead
fc9e1e401b
naomi: emulate midi ffb drive board response
...
needed for driving simulator
2022-04-27 14:28:58 +02:00
Flyinghead
3b81bbcae5
naomi2: gmp diffuse/specular flags select vertex or model colors only
...
These flags shouldn't be used to disable diffuse/specular shading
Fixes road surface glitches in initdv3e (Usui map)
2022-04-21 13:55:09 +02:00
Flyinghead
902fc2cbe8
naomi: override Region settings if current region BIOS isn't found
2022-04-20 14:16:15 +02:00
scribam
aa6c9e2106
msvc: fix linking issues in debug build
2022-04-17 13:24:37 +02:00
Flyinghead
039c666247
more types.h clean up. better aica handler templates
2022-04-15 17:03:49 +02:00
Flyinghead
ed5c24c281
arm64 build fix
2022-04-15 11:17:22 +02:00
Flyinghead
f2f4010203
clean up types.h, refactoring
2022-04-14 11:34:45 +02:00
Flyinghead
a9e261d280
simplify TA parsing
2022-04-13 20:36:52 +02:00
Flyinghead
bf61f5cfe8
Merge remote-tracking branch 'origin/master' into dev
2022-04-04 12:11:10 +02:00
Flyinghead
8dcc25e1a9
ta: default base/offset color is white, not black
...
fixes black players in NHL 2K
2022-04-04 11:47:11 +02:00
Flyinghead
a428167dc6
naomi network: alienfnt startup crash if not connected
2022-04-04 11:43:54 +02:00
Flyinghead
48e3a3eb68
aica: double arm clock speed
...
actual aica arm clock seems to be 22.5792 MHz, which means 512 cycles
per sample at 44.1 KHz (from 256)
fixes vf4 audio hiccup in character selection screen
2022-04-03 20:53:44 +02:00
Flyinghead
94c20ba29f
elan: reset TA parser before loading state
2022-04-02 16:43:15 +02:00
Flyinghead
8baebcfb5b
maxspeed networking. Store aw force feedback value
2022-04-02 16:41:52 +02:00
Flyinghead
6c38295d62
new naomi network protocol. vblank event. initd rumble support
...
new vblank event, used by cheats, lua and naomi net
new udp net protocol for naomi. rx/tx on vblank on emu thread.
input: rumble power configurable (Issue #158 )
ui: rumble intensity slider, enable/disable upnp
aica: hook to consume midi out
decode midi out to simulate rumble for initd
upnp can now be disabled
2022-03-27 15:23:21 +02:00
Flyinghead
be270259ee
crash with RTT and copy to VRAM if width > linestride
...
RTT texture width must not exceed FB_W_LINESTRIDE
fixes Flag to flag crash
2022-03-25 15:41:16 +01:00
Flyinghead
a5bad2b9b7
more naomi widescreen cheats. Fix vathlete 4-player mode
...
widescreen cheats for asndynmt, doa2m, slashout, spikers battle,
18wheeler, beach spikers. Courtesy of Esppiral
vathlete needs 2 I/O boards for 4-player mode
2022-03-20 17:49:50 +01:00
Flyinghead
56768f2d3d
naomi2: use TA parser. Use N2light directly with vk, dx11
...
Use TA parser to handle list type and clipping for Naomi 2 polys.
Pass all pass-throuch TA data to TA parser but stop on naomi2 command.
Set default projection matrix instead of identity (fixes Area conquered
screen invisible in initd).
Change N2Light and N2LightModel so they are usable in GLSL (vulkan) and
HLSL (dx11).
TA parser throws exception for unhandled param.
ta_vtx.cpp refactoring.
Support for subtractive lights (diffuse+specular). Used in some clubk
circuits.
Fix vulkan crash when direct FB render.
2022-03-16 17:28:45 +01:00
Flyinghead
5b3d36e081
naomi2: network support for clubk and initd
...
clubk: don't reverse handle by default
hotd2 doesn't have a proper game id or standard eeprom
2022-03-15 19:44:24 +01:00
Flyinghead
53b5588bda
Merge remote-tracking branch 'origin/master' into dev
2022-03-13 11:01:27 +01:00
Flyinghead
1015a8c098
naomi2: vulkan support
...
oit: use #define instead of functions in GLSL
2022-03-12 17:56:46 +01:00
Flyinghead
514eedbc63
maple: do not raise maple_dma interrupt for light gun
...
Issue #474 (Virtua Cop 2 momentarily freezes when shot fired)
2022-03-07 19:16:49 +01:00
Flyinghead
1f61f80c92
input: fix naomi rotary encoders
...
Games with multiple JVS input boards poll inputs more than once,
ignoring some relative mouse movements.
Issue #557
2022-03-06 17:57:16 +01:00
Flyinghead
e5863920c4
naomi2: fix beach spiker crash
...
VUR vertices can also have environment mapping
2022-02-22 08:48:51 +01:00
Flyinghead
a5660fa2b4
missing changes from previous commit
2022-02-18 17:40:00 +01:00
Flyinghead
ecc03e3ebc
naomi: use boot rom id to configure eeprom
...
Make eeprom from scratch if it doesn't exist based on boot id info.
Override eeprom settings to make game happy
Change region to supported one
Get rid of per-rom region info in rom list
New option to configure Naomi games in free play
2022-02-18 17:35:20 +01:00
Flyinghead
af4638e83f
naomi2: fix another initdv2 end of race crash
2022-02-18 16:40:26 +01:00
Flyinghead
cecf1a5497
naomi2: fix initdv2 end of race crash
2022-02-17 18:31:20 +01:00
Flyinghead
f2374982b8
pvr: don't merge polys with != palette. 2nd pass sometimes ignored
...
polys with different palette index shouldn't be merged.
If a pass isn't using any opaque, it can't be found. Fall back to using
the transparent or punch-through list in this case.
2022-02-17 18:30:29 +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
e35ccbbb18
naomi2: force region for some roms. elan clean up
2022-02-15 17:15:44 +01:00
flyinghead
8d071bf4ea
naomi2: dx11 support. fix ambient color. no depth write in per-strip
...
dx11: naomi2 support
n2: ambient color was swapping red and blue
gl, dx11: don't write depth in per-strip to avoid missing geometry,
prefer wrong depth order/blending for now
optimize naomi2 per-triangle sorting
2022-02-13 21:01:45 +01:00
Flyinghead
a14086d484
naomi2: shader error in gles. Invert clubkart wheel axis
2022-02-11 19:06:58 +01:00
Flyinghead
20d25059bf
naomi2: remove geom shader. Merge transparent polys. bump mapping fix.
...
elan: Get rid of geometry shader and do geometry clipping manually.
pvr: Aggressively merge transparent polys in per-triangl and OIT mode, duplicating the last vertex to merge opposite cull mode strips.
gl4: reset OIT pointers in final shader. No need for clear pass.
gl4: alternate between 2 buffers for verts.index/tr poly params.
gl4: use gl_VertexID + poly number for poly index.
gl: new GlBuffer class.
2022-02-11 15:54:18 +01:00
Flyinghead
ccee7162bc
naomi2: soulsurfer inputs, 2-volume UV, wrong TA parser selected
...
TAParserDX was used for pass-through TA data. Fixes health bar color in
vf4 and dust color in kingrt66.
2-volume missing u1/v1. Fixes clubk shadows.
2022-02-08 10:32:56 +01:00
Flyinghead
debbae6ab1
naomi2: elan v10 emulation. texture dma xfers. 2-volume support
...
emulate elan v10 (fixes modvol in vf4, initd, beachspiker, wldrider)
wrong color order for model and vtx color
model param override xor support
improved light direction precision. Angle attenuation algo change
get rid of alpha light and modifier volume hacks
texture dma xfer from main and elan ram
gl4: use geometry only vtx and geom shaders for depth pass
2-volume support
2022-02-05 14:50:12 +01:00
Flyinghead
2c6f01ae38
naomi2: kingrt66 wiper button. initd gear up/down
...
kingrt66: map wiper button, remap shift H and R
initd: map gear up and down
wldrider: remap push and pull
2022-02-05 14:29:01 +01:00
Flyinghead
0362fd1079
naomi2: disable elan when net rollbacking, optimizations. ggpo: RTT fix
...
n2: do not process elan commands during ggpo rollbacks.
n2: Cache model colors to avoid unpacking for each vtx
pvr: merge equivalent polys with different culling by duping a vtx
pvr: fix crash during direct FB render
pvr: use correct color ordering for naomi2. Use identify matrix for null matrix pointers
ggpo: do not signal end of frame on a render to texture
2022-02-01 17:37:54 +01:00
Flyinghead
38765dc89a
pvr: fix multipass. naomi2: constant color shading.
...
pvr: link multipass TA contexts. Each pass has its own.
pvr: get rid of context pool
naomi2: constant color shading. Use model diffuse and specular
selection. Don't use vtx color for offset color.
naomi2: pseudo-parallel lights fix
naomi2: pass-through TA data needs forced list type. Terminate with
end-of-list
enable RTT copy to vram for Beach Spikers
2022-01-31 20:40:09 +01:00
Flyinghead
e51a291195
ggpo: wrong elan ram offset calculation
2022-01-30 12:39:00 +01:00
Flyinghead
5fb8b458bb
pvr: use TA_OL_BASE instead of PARAM_BASE/TA_ISP_BASE to id TA context
...
Writes current TA_OL_BASE to all tiles OPB block. Read from region array
at render time to identify context.
Fixes vf4 water reflections RTT
get rid of dump_frame/read_frame
2022-01-29 18:39:38 +01:00
Flyinghead
de1322b928
naomi2: Fix T&L matrix. vmem elan ram support.
...
Fix T&L matrix (wild riders)
Open GL support for normal/light matrix
handle elan RAM in vmem
2022-01-28 21:24:30 +01:00
Flyinghead
58f05f74cf
jvs: set received jvs message trail to zero
...
fixes sh4 crash during naomi boot
2022-01-28 11:31:30 +01:00
Flyinghead
e5d517dad2
use platform.isConsole(), platform.isNaomi(), ...
2022-01-27 17:52:19 +01:00
Flyinghead
1ffcc75031
naomi2: implement SB_ISTNRM for clxb. serialize elan state
2022-01-27 16:40:12 +01:00
Flyinghead
e084cc9a3a
jvs: set received jvs message trail to zero
...
fixes sh4 crash during naomi boot
2022-01-27 15:50:44 +01:00
Flyinghead
e1038ea632
naomi2: fix regressions. 2-volume and bump mapping support WIP
...
optimize open gl uniforms
2022-01-26 22:15:10 +01:00
Flyinghead
cb99e7d920
naomi2: do T&L on the gpu. bypass TA format. env mapping.
...
fix model/instance/matrix parsing
handle culling reversed model flag
geometry shader for near plane clipping
2022-01-25 15:37:04 +01:00
Flyinghead
b048921c11
naomi2: fix clipping, parallel light direction, reset state on loadstate
2022-01-18 18:25:40 +01:00
Flyinghead
4335aa563f
naomi2 WIP
2022-01-16 22:41:42 +01:00
Flyinghead
a4788b5b24
zero-init sh4 context when no vmem is available
...
Issue #439
2022-01-03 18:44:47 +01:00
Flyinghead
300c74e3fc
Merge remote-tracking branch 'origin/master' into net-rollback
...
# Conflicts:
# CMakeLists.txt
# shell/libretro/libretro.cpp
# shell/libretro/libretro_core_options.h
2021-12-22 21:31:17 +01:00
Flyinghead
bf87f7ba84
Compilation error on armv7 with gcc 9
2021-12-20 14:27:19 +01:00
flyinghead
b1e0bc90ba
uwp: remove angle, upload to S3. windows: don't build SDL
2021-12-18 11:50:03 +01:00
Flyinghead
325cd9a066
DSP crash on apple M1
...
Issue #415
2021-12-17 13:43:45 +01:00
Flyinghead
e02afb34d1
dx11: wrong shadow scale factor. vk: object leak. Code duplication
...
dx11: shadow scale factor inverted in per-pixel
vulkan: clear deleted overlay images when terminating
Use color struct for FOG_COL_VERT, FOG_COL_RAM, FOG_CLAMP_MIN,
FOG_CLAMP_MAX and VO_BORDER_COL. Avoid code duplication in renderers.
2021-12-17 13:40:42 +01:00
Flyinghead
dc5acd24b2
Merge remote-tracking branch 'origin/master' into net-rollback
2021-12-17 12:40:37 +01:00
Flyinghead
7555263e38
wrungpo had wrong decryption key
...
Issue https://github.com/libretro/flycast/issues/1108
2021-12-17 11:55:17 +01:00
Flyinghead
04be40767b
android: fallback to /dev/ashmem if ASharedMemory fails. More logs
...
Issue #439
2021-12-15 23:09:59 +01:00
flyinghead
6a3a8d5578
libretro: dx11 support. dx11 shader cache. dx9 clipping planes
...
dx11: use 32-bit float depth texture to avoid loss of precision (SA2 into logo)
dx11: cache shader blobs to disk if not provided by OS
dx11: swap interval depends on screen refresh rate (1 for 60 Hz, 2 for 120 Hz, ...)
dx9: use clipping planes to avoid interpolation errors in rasterizer (daytona, mermaid lake)
directsound: use comptr
gui: fix navigation issue with OptionArrowButtons due to missing id
2021-12-13 21:02:44 +01:00
flyinghead
0478ec9696
dx11: per-pixel renderer
2021-12-11 18:53:35 +01:00
flyinghead
46044c068b
cheats: don't rely on cheat count on load. Fix compile warnings
2021-12-11 18:33:28 +01:00
flyinghead
99195c3f4c
dx11: set clip planes on X and Y. rend: Force palette update at init
...
dx11: Set clip planes at X -1/1 and Y -1/1 to avoid rasterizer errors.
Fixes Daytona Mermaid lake depth issues
dx11: fix texture wrap around at UV 1 with nearest filtering
dx9: inside clipping
all renderers: force full palette update at init
2021-12-01 14:54:03 +01:00
flyinghead
f91847dad0
DX11 renderer WIP
2021-11-26 18:08:41 +01:00
flyinghead
63598019e1
naomi: rename deathcox to deathcoxj, new deathcox parent rom
...
MAMESET 0.227 changes
Issue #409
2021-11-20 14:06:19 +01:00
flyinghead
8262c9ece7
UWP support - WIP
2021-11-19 23:18:45 +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
80cf422a5e
dynarec: fix CLRS and SETS ops
...
Destination reg was missing
Fix crash in OpenTyrian/SDL_DREAMHAL
Issue #403
2021-11-11 10:44:22 +01:00
LaercioMBR
004250ed23
InputDescriptors for radirgyn and mamonoro
2021-10-24 14:07:40 +02:00
Flyinghead
808a161d39
ggpo: make chat thread-safe. Deadlock on early rollback
...
Make ggpo_send_message() thread-safe
Deadlock UI/emu threads if rollback happens before first render
Disable rollback wait in single-thread mode
2021-10-20 14:41:18 +02:00
LaercioMBR
6d8e1794a0
Fix Metal Slug 6 inputs ( #393 )
2021-10-20 14:36:02 +02:00
LaercioMBR
846ed76808
InputDescriptors for Dolphin Blue, Demolish Fist and ggx15
2021-10-19 17:02:01 +02:00
Flyinghead
ab45b5ec8a
ggpo: keyboard/mouse games support. Fix chat when keyboard disabled
...
ggpo: support for arcade games using keyboard (totd, luptype) and
mouse/rotary encoders (waiwai drive)
Chat and UI now usable when the keyboard is not set to a maple port.
2021-10-19 16:56:46 +02:00
LaercioMBR
7fb85e5b25
Standardizing InputDescriptors names, added kov7sprt_inputs ( #389 )
2021-10-18 11:24:38 +02:00
Flyinghead
3eeb7e7cae
build fix
2021-10-16 18:15:11 +02:00
Flyinghead
cf653640b3
ggpo: verify md5 of bios, game and savestate
...
Verify md5 of flash, eeprom, vmus if no savestate used
Use chd header SHA1 as digest
Load .state.net state file at start
Force real BIOS for some games
2021-10-16 17:56:21 +02:00
Flyinghead
85c21df5e7
Use allocAligned/freeAligned for all aligned allocs
2021-10-14 10:46:44 +02: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
8b986dfab3
vmu beep support
2021-10-10 16:33:37 +02:00
Flyinghead
19bd6d0bca
test automation clean up
...
less #ifdef
force mute audio
don't force vsync
2021-10-10 16:26:36 +02:00
Flyinghead
1d9ac4918c
pvr: fix SPG_VBLANK_INT reset value
2021-10-07 16:24:00 +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
5bcfa35737
Better background game loader
...
Pass LoadProgress object to report load progress and cancel
Better UI
Cancel with exception
Fix issues when stopping/exiting in !threaded
dx9: call gui_term on shutdown
2021-10-02 11:30:40 +02:00
Flyinghead
c1bcf91dd6
pvr: render timeout when using ggpo or !threaded
...
will cause ggpo desyncs with previous versions
2021-10-01 16:48:01 +02:00
Flyinghead
621e4d196e
crash when enabling bba per-game
2021-10-01 16:14:27 +02:00
Flyinghead
699dcdaf5b
Merge remote-tracking branch 'origin/master' into net-rollback
...
# Conflicts:
# core/hw/maple/maple_if.cpp
# core/rend/mainui.cpp
# shell/libretro/libretro.cpp
2021-09-30 15:03:29 +02:00
Flyinghead
2803ee8274
imgread.ImagePath clean up. ggpo: poll input late if !thread
2021-09-30 14:24:17 +02:00
Flyinghead
99bf7f77c4
single-threaded mode. refactoring.
...
single-threaded mode similar to libretro core
stateful Emulator object
disable memory watcher when !gppo
ggpo: poll input as late as possible in !threaded
2021-09-29 10:22:58 +02:00
Flyinghead
7fe2ab720f
refactor screen_width/height
2021-09-27 20:29:23 +02:00
Flyinghead
1dc01314a1
input: don't poll input on emu thread
...
fixes device reset errors with dx9 on Alt+Enter and other renderer
crashes
2021-09-27 11:51:39 +02:00
Flyinghead
41ac140076
ggpo: lightgun support for arcade games
...
ui: display button names in arcade mode only
2021-09-26 21:28:31 +02:00
Flyinghead
39fabf39ae
naomi: free play eeprom for many games
...
inputs for ggx, doa2, toyfight, ausfache
don't label common buttons (coin, test, service, start)
2021-09-22 14:26:13 +02:00
Flyinghead
1725dbfa98
input: fix arcade mode for on-screen gamepads.
...
Use same layout as gamepad arcade for on-screen gamepads (ABXYRL)
map RT and LT to buttons 5 and 6 in arcade
android: Fix non-working fast-forward button
Use maple port in lastAxisValue state
naomi: use default alienfnt buttons: 1-4
2021-09-21 15:56:01 +02:00
Flyinghead
65956dbc8d
input: merge buttons and axes
...
Default mappings for arcade and console
Default mappings for arcade stick/hitbox
Proper handling of inverted axes
ggpo: automatic analog setting for arcade games
2021-09-19 18:27:21 +02:00
Cameron Bates
e1fa2b9831
[iOS] GCMouse support ( #353 )
2021-09-14 11:51:44 +02:00
Flyinghead
99a0dce8cd
arm build fix
2021-09-11 19:17:36 +02:00
Flyinghead
badcace987
ggpo: analog axes support. Fix right trigger. use miniupnp.
...
Analog stick X/Y support
Right trigger was ignored
Forward UDP port 19713 with miniupnp before starting ggpo session
Use recursive_mutex for ggpo
2021-09-11 18:50:11 +02:00
Flyinghead
e8b73e22b7
Merge remote-tracking branch 'origin/libretro' into net-rollback
2021-09-11 18:11:36 +02:00
Flyinghead
88fa5d5c41
arm64 dsp: don't JitWriteProtect twice. ios: Hide VSync. pvr: fix mutex
2021-09-10 15:26:18 +02:00
Flyinghead
e45ec4324f
Merge remote-tracking branch 'origin/master' into libretro
2021-09-10 12:19:29 +02:00
Flyinghead
3ced57a263
network: use interface for startup. avoid deadlock on exit
...
Use common interface for naomi and ggpo
Simpler ggpo interface
Fix deadlocks on exit with ggpo
2021-09-09 18:17:05 +02:00
Flyinghead
a4e715fa71
serialize modem, aw coin, pvr direct fb state, TA cur context
2021-09-07 16:43:50 +02:00
Flyinghead
8594d11693
maple: refactor usage of rt/lt. zero out joystick values if ggpo active
...
Fix mouse cursor being invisible when emu throws an exception
2021-09-07 16:30:56 +02:00
Flyinghead
a4c14ebef7
Merge remote-tracking branch 'origin/libretro' into net-rollback
2021-09-07 15:02:39 +02:00
Flyinghead
5121b0df93
maple: mutually exclusive btns per controller. better D2A axes
...
Handle mutually exclusive buttons (U/D, L/R) in each controller.
Track digital X/Y axes state to allow for proper handling of U+D and
L+R. Issue #334
SDL: Ignore key repeat events
2021-09-07 10:54:00 +02:00
Flyinghead
414fb9dba2
ramwatch: protect all ram, not just the bottom half
2021-09-06 16:14:38 +02:00
Enrique Santos
dba805e8c4
ggpo: static rtc when ggpo is enabled
2021-09-04 18:47:34 +02:00
Flyinghead
b362a55c04
ggpo: rollback glitches. win32 init. switch build. stats
...
Block net rollbacks until the current frame has been processed to avoid
glitched textures.
Call WSAStartup at init on windows
Display net stats when in game
Switch build fix
2021-09-03 11:11:46 +02:00
Flyinghead
69d0801121
net rollback with ggpo
2021-09-02 17:51:23 +02:00
flyinghead
f85bca06d7
dsp: rec crash on windows
2021-09-02 12:34:38 +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
c3d954263b
gdrom: fix soft reset. ignore slave requests. Unknown ATA cmds handling
...
Retain currently inserted disk during soft reset
Correct DriveSelect value. Ignore slave drive commands and return 0
status.
Properly handle unknown ATA commands.
Fixes DreamShell boot and CDI boot from BIOS
2021-08-27 18:29:41 +02:00
Flyinghead
e058ba5d3b
sh4: always perform hard-reset of sh4 and its registers
...
Fixes infinite loop after reboot
2021-08-27 18:20:40 +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
088287227e
x64 msvc build fix
2021-08-26 11:01:44 +02:00
Flyinghead
ad1f9527c1
x86 msvc build fix
2021-08-26 10:34:01 +02:00
Flyinghead
ca17717af7
dsp: map TEMP/MEMS/MIXS regs to sh4 and aica address space. Clean up
2021-08-26 10:16:07 +02:00
Flyinghead
e5ca63db20
aica: arm32 dsp dynarec. Correct dsp level when dsp disabled
2021-08-24 20:49:53 +02:00
Flyinghead
ce58ba3472
pvr: detect swap on FB_R_SOF2 too. Force render res. to even width
...
Fixes Soul Calibur FPS /2 drop with Delay Frame Swapping on
2021-08-24 11:40:53 +02:00
Flyinghead
7fb83f4f77
libretro: fix content closing when loading or saving state
2021-08-22 20:41:02 +02:00
Flyinghead
c99de2370f
build fix
2021-08-20 08:39:37 +02:00
Flyinghead
8c9ff4a66f
iOS: DSP fix
2021-08-20 08:32:29 +02:00
Edward Li
6f233462c1
Add missing JITWriteProtect to DSP
2021-08-09 09:02:59 +02:00
Flyinghead
77e7c25e9c
iOS support. Work in progress
2021-08-06 10:30:30 +02:00
Flyinghead
6bb4575c95
Merge remote-tracking branch 'origin/master' into libretro
2021-08-05 18:17:30 +02:00
Flyinghead
37eace9db4
osx: lockup when emulator aborts. Race condition when starting emu
2021-08-05 17:43:26 +02:00
Flyinghead
9d6c548730
naomi: close cart on reset. sh4: replace some verify by throw
...
Close naomi/aw cart on reset. Reset input mapping/button names
Get rid of ngen_GetFeatures()
throw exception instead of failing verify if not internal error
catch sh4 exceptions in dynarecs and throw fatal error
2021-08-03 09:47:13 +02:00
Flyinghead
b59585437c
arm32 dynarec: windows ce support
2021-08-01 17:25:48 +02:00
Flyinghead
6f4e1365b1
x86: stack unwind fixes
2021-08-01 17:07:17 +02:00
Flyinghead
7561ce753a
unwind info for arm64. use static c++ lib for android
...
include oboe static libs
get rid of old regalloc
2021-07-29 17:46:46 +02:00
Flyinghead
710f379bd3
unwind info for x64 dynarecs
...
delegate to previous signal handler, proper abort for win32
arm32: use builtin gcc __clear_cache
dyna/driver.cpp: no need for a code buffer in win32, cleanup
2021-07-24 22:24:37 +02:00
vkedwardli
3c483c61e7
Support Apple Silicon (macOS ARM Universal Binary) ( #253 )
...
* Add audio arm64 cpp into Xcode project
* Build universal binary for SDL2 also
* Add vixl aarch64 dependency + build arm64 in cmake
* hardcode pagesize for M1 CPU
* Use `MAP_JIT` and toggle between RX and RW
* add pthread.h for cmake
* Disable audio dynarec temporary
* Enable aica arm dynarec
* Supports `br` with condition
* Dynamic linker flag for libSDL2.a since Homebrew path is different on arm (for xcodeproj)
* Fallback path for Intel
* de-dup for arm64, allow cross compilation on both Intel and Apple Silicon Mac
* Rename WriteProtect() to JITWriteProtect(), Move JITWriteProtect from arm7_rec to arm7_rec_arm64
* Remove CodeCache memset
* Remove keyboard_device.cpp from xcodeproj
* Use hard tab
* Update libchdr to support compiling on M1 (thanks @scribam)
2021-07-23 22:34:12 +02:00
Flyinghead
c453d14352
libretro: better error handling. fix reset issue with rotated games
...
compilation warnings, clean up
2021-07-21 16:19:57 +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
Flyinghead
4a77f847b4
libretro: fix arcade flash files path. ui: stop spamming dc_stop
2021-07-20 10:06:44 +02:00
Flyinghead
10e97b63be
jvs: no default mapping if button is remapped to P1 or P2
...
fixes jambo down-lever pausing the game
2021-07-19 10:15:24 +02:00
Flyinghead
ed0caa119a
Merge remote-tracking branch 'origin/master' into libretro
...
# Conflicts:
# CMakeLists.txt
2021-07-15 18:43:29 +02:00
Flyinghead
1e37e8f333
switch: dsp dynarec fix
2021-07-15 12:24:42 +02:00
Flyinghead
855836d9aa
switch: arm rec EntryPoints need rx. fix arm & dsp cache flush
2021-07-14 14:57:43 +02:00
Flyinghead
4d38e69f63
lr switch: enable aica arm and dsp dynarecs. handle rw/rx offset
2021-07-13 20:51:17 +02:00
Flyinghead
eb81583d9f
sh4 dyna: support for !vmem
2021-07-13 17:09:26 +02:00
Flyinghead
63a3f02368
libretro: better switch support
2021-07-12 20:14:21 +02:00
Flyinghead
1fdda98d8d
libretro: return max savestate size. unprotect ram and vram on reset
...
fixes random crash when saving state
2021-07-11 17:42:30 +02:00
Flyinghead
a73ca94124
savestate: push vmu lcd image when loading
2021-07-11 12:37:21 +02:00
Flyinghead
57874a9bcb
libretro: savestate compatibility. B1/D1 vmus now visible
2021-07-10 17:39:16 +02:00
Flyinghead
81546fe727
libretro: handle ThreadedRendering transition. Fix hang in !threaded
2021-07-09 16:28:28 +02:00
Flyinghead
eceb5ba982
naomi: keyboard needs player number
2021-07-09 14:34:11 +02:00
Flyinghead
673c2988d6
libretro: backport libnx support. Fix log source paths
2021-07-07 19:01:37 +02:00
Flyinghead
b300bb9f7a
libretro: non-threaded rendering
2021-07-07 13:12:16 +02:00
Flyinghead
8e6bbed74f
libretro: aw coin fix. screen rotation. disable loading notifications
2021-07-07 09:48:10 +02:00
flyinghead
c205a888a9
options: anisotropic filtering, oit pixel buffer size, fast gdrom load
2021-07-06 16:19:12 +02:00
flyinghead
a3b66aec1f
libretro: win32 support. build fix.
2021-07-06 13:22:54 +02:00
Flyinghead
7dbd79750c
WIP libretro core update
2021-07-05 19:44:08 +02:00
flyinghead
c5ce475359
Merge remote-tracking branch 'origin/master' into fh/directx
...
# Conflicts:
# core/input/gamepad_device.cpp
2021-07-04 17:53:49 +02:00
Flyinghead
14360beaf7
gdrom: reset registers and state on reset
...
Issue #281
2021-06-27 12:53:54 +02:00
Flyinghead
7f49accc22
Merge remote-tracking branch 'origin/master' into fh/directx
2021-06-07 20:53:31 +02:00
scribam
d6545b253b
Misc cleanup
2021-06-06 11:15:06 +02:00
Flyinghead
d6e15544bc
maple: better vmu I/O error handling
2021-05-28 10:35:44 +02:00
flyinghead
7ed68952ba
Merge remote-tracking branch 'origin/master' into fh/directx
...
# Conflicts:
# core/deps/patches/SDL.patch
# core/hw/maple/maple_devs.cpp
# core/rend/gl4/gles.cpp
# core/rend/gles/gles.cpp
# core/rend/gui.cpp
# core/rend/gui.h
# shell/apple/emulator-osx/reicast-osx.xcodeproj/project.pbxproj
2021-05-26 22:38:48 +02:00
Flyinghead
8644f7777b
gdrom: remove PatchRegion support. minor log changes
2021-05-20 10:21:47 +02:00
flyinghead
5f5d31730c
sdl: hide mouse in fullscreen. fix & refactor mouse devices
...
support rawinput mouse wheel
simplify mapping load
2021-05-19 18:13:52 +02:00
Flyinghead
9d4711a95d
mouse fix
...
fixes Silent Scope, Dreamkey, etc.
2021-05-19 11:32:38 +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
00a74d81c2
aica arm dynarec: conditional LDR with write back issue
2021-05-16 20:21:09 +02:00
Flyinghead
da40297810
fix msvc build
2021-05-16 20:18:49 +02:00
Flyinghead
025b447a9c
arm32: replace old arm emitter with vixl
2021-05-15 11:41:00 +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
f2b74de9dd
Revert 1ddb82f334
...
Issue #209
2021-05-02 15:14:26 +02:00
Flyinghead
1ddb82f334
pvr: deadlock in QueueRender/dc_stop
2021-05-02 11:23:51 +02:00
flyinghead
b90cdf9588
RawInput driver. Multiple keyboards support
...
Merge Keyboard and KbGamepad
Always use system mouse for UI
Issue #138
Fix DX9 when not using SDL
2021-04-29 18:58:04 +02:00
flyinghead
5359e9a09d
allow gpu-handled palette textures to be replaced by custom version
...
Issue #219
Fix incorrect texture size calculation for VQ textures.
Reorder BaseTextureCacheData fields to have hottest on top
2021-04-17 18:40:58 +02:00
flyinghead
f107d380b9
WIP directx9 renderer
2021-04-12 22:49:04 +02:00
Flyinghead
499d06ea83
bba: crash when loading a savestate with bba disabled
2021-04-08 10:33:47 +02:00
Flyinghead
72968290bf
cheats: support for .CHT cheat files
...
Issue #167
gui: no need to save background in opengl, use RenderLastFrame instead
disable cheats when online
2021-04-06 11:41:41 +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
6af509159e
optimize area0 mem handlers
...
use flash_size for both sram (aw, naomi) and flash (dc)
bios and flash not mirrored to 02000000
2021-03-31 18:45:46 +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
dc0c5baece
move vram to pvr
2021-03-28 20:08:02 +02:00
Flyinghead
569c23ca95
pvr: use pvr_read32p/pvr_write32p to access 32b vram
2021-03-28 20:08:02 +02:00
scribam
9c8082fb16
delete unnecessary null pointer check
2021-03-28 11:10:46 +02:00
scribam
754c0e234b
maple: fix potential mem leaks if vector reallocation fails
2021-03-27 20:59:54 +01:00
Flyinghead
2b41d9684f
pvr: static init UB
...
Issue # #148
2021-03-26 18:39:19 +01: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
06be0d927b
screen stretching always in final horiz direction. lightgun coords fix
...
gl: strech direct fb texture based on stretching and rotation
Fix lighgun coords when stretching and/or rotating
Dimension render size based on stretching and rotation
vk: lightgun crosshair disappears near 0-edge -> scissoring x and y must
be >= 0
always stretch horizontally even when rotating
2021-03-21 18:03:22 +01:00
Flyinghead
7af667cdf8
missing change from previous commit
2021-03-21 18:03:22 +01:00
Flyinghead
1abfa19636
set rendering resolution in discrete steps instead of scaling
2021-03-21 18:03:22 +01:00
Flyinghead
0b6420d90a
arm32: sh4 dynarec infiniloop on reset. aica rec: fix icache flush
...
Fixes hang when exiting awave service menu
Issue #208
2021-03-20 15:06:16 +01:00
flyinghead
bceed97817
Merge pull request #205 from scribam/clang-tidy
...
clang-tidy: fix more checks
2021-03-15 20:17:56 +01:00
scribam
cd47633810
clang-tidy: run readability-avoid-const-params-in-decls
2021-03-15 19:52:54 +01:00
scribam
67435c71e8
clang-tidy: run readability-non-const-parameter
2021-03-15 19:52:54 +01:00