Commit Graph

993 Commits

Author SHA1 Message Date
flyinghead 93ceb92c12 x86 dsp dynarec 2021-01-26 18:48:17 +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 4a81430da7 aw: analog and lightgun inputs not responsive after load state
save maple player num in state
save aw maple devs register
serialize more spg state. don't call CalculateSync on load
move savestate logic to spg and naomi
make tests work on windows
2021-01-22 15:11:04 +01:00
flyinghead ed7bd06f96 win32: multiple mice support. Patch and build SDL 2021-01-21 21:00:46 +01:00
flyinghead 00413a6ad2 sdl: allow capture mouse and relative mode
toggle with L-ALT + L-CTRL
Issue #157

simple event system
2021-01-19 21:31:48 +01:00
flyinghead a23c895668 sh4: restore rounding/denormal mode after pausing the game
fixes Sword of the Berserk glitch when pausing/restarting
2021-01-19 18:28:21 +01:00
flyinghead 16dec49e08 windows: use utf8 internally. Support latin2, cyrillic, etc. pathnames
upgrade libzip to 1.7
imgui: use all glyphs from font including latin2, cyrillic, greek, etc.
2021-01-19 11:11:01 +01:00
flyinghead 287836803d interp: don't touch the sh4 cache in normal mode 2021-01-15 10:21:05 +01:00
flyinghead 3dc3f7b7c2 naomi: wrong path when looking for gdrom in parent rom folder 2021-01-15 10:18:15 +01:00
Flyinghead 36451614d2 rec-x64: don't use vfmadd to avoid intel/amd variations 2021-01-08 21:40:13 +01:00
flyinghead e5b3c5268b wince: attempt immediate read/write when address isn't translated 2021-01-07 19:18:53 +01:00
Flyinghead ed6e544e11 naomi: fix crash when loading wwfroyal game test menu 2021-01-05 18:58:06 +01:00
Flyinghead baa36925e2 naomi: more rom list to cpp. remap pjustice buttons. add more inputs 2021-01-05 18:39:00 +01:00
Flyinghead 65563942cd naomi: add dybb99, dybbnao, ringout and sstrkfgt inputs
Issue #154
2021-01-05 10:30:01 +01:00
Flyinghead f906d08376 more 32b windows fix 2021-01-04 22:00:15 +01:00
Flyinghead 99bd8b4972 get rid of USE_MODEM/ENABLE_MODEM 2021-01-04 20:58:29 +01:00
Flyinghead eeca82b4e2 32b win build fix 2021-01-04 20:44:15 +01:00
Flyinghead 2c8b5aa7f8 vs2019 build tentative fix 2021-01-04 18:56:15 +01:00
Flyinghead d7fcd3d47c jvs: allow more than 1 player with analog axes
add wsbb and smlg99 input mappings. Issue #152
2021-01-04 10:43:45 +01:00
Flyinghead de260b89af net: launch miniupnp async. filter loopbacked broabcast pkts. dhcp reset
ftspeed network support
delete all dhcp negos when destroying dhcp server
filter broadcasted udp packets coming from self
launch miniupnp async since it takes time to complete (2-4s)
fix unit test
2021-01-03 21:25:27 +01:00
Flyinghead 889fc8256d broadband adapter support 2021-01-02 21:19:50 +01:00
Flyinghead 62a1e29670 modem: do not reject VJ option for Web TV 2020-12-29 18:02:06 +01:00
Flyinghead cc7a292591 macOS: link sdl statically, hide vulkan. naomi: use miniupnp for server port
macOS doesn't need volk or glslang
link sdl statically
add GameController.framework (Xcode)
2020-12-29 11:53:00 +01:00
Flyinghead 9c43a55c42 miniupnpc: fix include dir 2020-12-28 13:15:06 +01:00
Flyinghead e7ae03ded9 modem: use miniupnp to open router ports 2020-12-28 11:31:26 +01:00
Flyinghead 6f27b9b6b7 force wercker on ubuntu 18.04. Minor change 2020-12-27 09:05:55 +01:00
Flyinghead a00aad5fa7 pvr: auto frame skip to replace current and previous synchronous rendering
Restore previous synchronous rendering behaviour (normal auto frame skip)
No frame skipping when disabled
better cpu speed measure over 4 vblanks
2020-12-25 12:08:44 +01:00
Flyinghead 5905b8c148 dsp: don't clear EFREG
pass AICA0203 diag test
2020-12-20 23:19:24 +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 d0d9712545 gdrom: allow 0-len transfer
fixes Pro Pinball Trilogy hang during intro
2020-12-18 19:27:19 +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 4ca0b56106 flash: zero initialize 2020-12-18 13:44:40 +01:00
Flyinghead e94e757743 naomi: align SB_GDSTAR on 32-byte boundary
Fixes vtennis (Issue #92)
2020-12-18 13:43:42 +01:00
Flyinghead 34d86500fa compile warnings. debug log. minor changes 2020-12-16 15:12:32 +01:00
Flyinghead 650c3ff8ae pvr: serialize maple_int_pending. don't rend_reset in rend_term 2020-12-16 14:44:45 +01:00
Flyinghead 3f1326a3ac rend: read framebuffer as non-interlaced when possible 2020-12-16 14:40:11 +01:00
Flyinghead 04cd7db2cd pvr: serialize TA render passes
use enum for renderer type
2020-12-15 16:27:34 +01:00
Flyinghead c03cf8eb45 rend: multi-render, delay swap, refactor main ui loop
move ui loop out of hw/pvr
vk: implement multi-rendering, delay swap. Load fb before render pass
fps counter now counts frames, not renders
vk: force ignoreTexAlpha for 565 texture in case the supporting texture
has an alpha channel (RTT). Fixes Alone in the Dark cinematic scenes.
pvr: better detection of frame swapping (FB_R_SOF/FB_W_SOF)
pvr: synchronous rendering now always waits for render in progress
(speed measurement not reliable, render skipped when multi-rendering)
vk: limit swap chain size to 2
2020-12-15 15:09:42 +01:00
Flyinghead 93523df804 pvr: implement tile array region clipping. always draw background
fixes Quake 3 split-screen multiplayer
2020-12-15 14:17:58 +01:00
Flyinghead 9191795b4c pvr: increase PT max poly count
fixes Revolt overrun
2020-12-15 14:15:02 +01:00
Flyinghead d960f8e9f5 lightgun: handle screen stretching, rotation and tall aspect ratio
Issue #139

move jvs stuff into maple_jvs.cpp
2020-12-09 13:48:58 +01:00
Flyinghead a39199d379 clean up 2020-12-07 22:16:51 +01:00
Flyinghead d7c49c6522 naomi: memory leak with decrypted carts 2020-12-07 22:12:16 +01:00
Flyinghead 14393ea6b1 improved microphone emulation. support for linux and windows 2020-12-05 18:47:09 +01:00
Flyinghead 579db85b3b modem: fix various picotcp tcp issues (re-xmit timers, segment split)
modem: delay receiving initial ppp handshake until after sending data
(WinCE)
reduce char receive delay to 143 us
make sure picosocket buffer is empty before shutting down socket
use 536-byte segment for tcp sockets
increase linger delay to 10 sec (avoid sending RST when waiting for FIN)
picotcp: disable window scaling option
dupe ack reception in full window mode should enter dupack mode
pick the correct segment to re-xmit in recover mode
both partial frames should be enqueued when splitting segment
fix wrong size when splitting segment and crash if splitting first one
make sure re-xmit timer is correct in tcp output
2020-12-04 11:23:15 +01:00
Flyinghead 6154cc08db serial: fix maxspeed hang at boot reading from console 2020-12-02 14:44:16 +01:00
Flyinghead adeacd89f4 input: implement reload. remap some naomi games input
implement lightgun reload (dc, naomi)
kcode[] set to 32 bits
revamped mapping for naomi keys
remapped btns for some naomi games
display game button/axes names in UI
2020-12-02 14:40:50 +01:00
Flyinghead 8905410aa4 clean up 2020-11-30 21:59:13 +01:00
Flyinghead ef16842074 awave: fix lightgun trigger and position
fix aw lightgun trigger virtual key with new lightgun map
delay maple dma int when maple bus occupy is set for a lightgun.
raise maple int at vblank in if off screen
nudge reported position to avoid registering as off screen
2020-11-30 21:31:50 +01:00
Flyinghead c6f5a406a7 picoppp: use char instead of u8 2020-11-30 13:05:13 +01:00
Flyinghead 1d17dbd121 modem: avoid spurious retransmit. limit ppp buffer size.
set actual modem receive speed to 48K
picotcp: avoid spurious retransmit after window full. set min RTO to 1
sec.
buffer incoming data until pico socket can accept it.
limit tcp payload to 512 bytes.

Issue #114
2020-11-30 12:52:46 +01:00
Flyinghead 8f77a5482a config/data folders improvements
linux: look for legacy ~/.reicast and ~/.reicast/data
else look for ~/.config/flycast and ~/.local/share/flycast
and ~/.config/reicast and ~/.local/share/reicast
(defaults to flycast)

look for bios files in home folder and data folders (android, windows
,macos), then in game folder.
on linux, search in /usr/share/flycast and /usr/local/share/flycast and
legacy locations
2020-11-26 16:45:57 +01:00
Flyinghead d485da19b7 picotcp: close connecting sockets when notified 2020-11-26 14:08:37 +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 305ab38ac8 naomi: search parent rom path for gdrom 2020-11-24 20:50:50 +01:00
Flyinghead 4dd05ca23f aica: saturate EG when aeg reaches 3bf. non-functional changes 2020-11-24 20:07:10 +01:00
Flyinghead eb2c762214 rec: avoid div32 crash when dividing by 0
Fixes Sakura Taisen 2 floating point exception crash
2020-11-21 20:46:40 +01:00
Flyinghead 99b01536bc reios: fix crash when loading a HLE savestate in a non-HLE session
flashrom pointer wasn't initialized in this case
2020-11-21 20:09:06 +01:00
Flyinghead 525c2dc88c sh4: promote opcode 0 as regular NOP 2020-11-21 20:06:59 +01:00
Flyinghead 47f262a2c6 vk: use normal pipeline for raw fb display
raw fb also needs to be rotated/scaled
oit: draw opaque polys on first frame
2020-11-19 22:29:06 +01:00
Flyinghead 99bfbeb3bc naomi: JVS IO response CRC byte, JVS Self Test command/response
Adds JVS IO response CRC byte, Add JVS Self Test command/response
backport https://github.com/libretro/flycast/pull/972
2020-10-24 15:10:55 +02:00
Flyinghead d7b1ad61f3 aica: make sure lpf cutoff value is > 0
Issue #108
2020-08-31 21:53:33 +02:00
Flyinghead 3bc508deea gdrom: fix D2 disk switching
Issue #107
2020-08-17 09:23:22 +02:00
flyinghead 700994340b cmake: add sdl to vstudio build. Fix WinCE crash 2020-07-23 18:50:55 +02:00
Flyinghead 860425b3cc naomi: zombie revenge analog axes. add puyofevp. fix pokasuka 2020-07-20 12:03:20 +02:00
Flyinghead 4ecf43a08d vulkan: revert to using 3 swap images. fix crash when switching gl/vk
Fix Hello Kitty crash with empty first TR polygon
Fix Test Drive Le Mans crash on invalid textures
Fix wldkickspw crash with invalid TA data
2020-07-11 17:38:41 +02:00
Flyinghead adf5a7e8e4 fix tests. sdl init iisue on rpi3 2020-07-06 17:29:53 +02: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 a446199312 g2 dma: use templates. SB_G2APRO support. maple: fix SB_MDAPRO support 2020-06-25 14:49:53 +02:00
Flyinghead 89842c6d30 modem: better handling of reset register 2020-06-24 15:48:05 +02:00
Flyinghead 3694e8e87a flash: select mode. fix sector protection. implement reset 2020-06-24 15:41:12 +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 6402c8e7ed maple: check SB_MDAPRO magic number 2020-06-23 19:20:55 +02:00
Flyinghead 8b44ebbdab maple: don't overrun device strings 2020-06-23 18:10:22 +02:00
Flyinghead 959b6344b3 gdrom: fix cd_read2, req_error, req_stat and more 2020-06-17 22:58:26 +02:00
Flyinghead 15a99aeebe aica: internal dma implementation 2020-06-15 21:42:47 +02:00
Flyinghead 8192eea387 maple: msb selection, implement/fake reset, kill and allreq commands
overrun and illegal address ints in strict mode
2020-06-15 17:04:04 +02:00
Flyinghead 5cfed1e482 div32: get rid of edge cases. simplify 2020-06-15 16:56:09 +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
Flyinghead 8740f22c0a fix all known div32 issues
support libretro naomi and aw savestates
2020-06-06 18:53:47 +02:00
Flyinghead 0fd51fb52a android: ignore audio latency. skip less frames in synchronous mode
android: use minimum size for audio buffer
alsa: use period size of 1024 instead of 512
hide audio latency option for android, win32 and mac
relax frame skipping formula
2020-06-05 21:16:48 +02:00
Flyinghead 002a05f866 dsp: proper MIXS input shift 2020-05-30 19:57:58 +02:00
Flyinghead 1301103245 maple: fix vmu reset in BIOS. naomi: support P2 buttons mapped to P1 2020-05-29 14:45:12 +02:00
Flyinghead 34575d577c fix sdl+egl build. get rid of USES_HOMEDIR. thread deadlock at exit
fix odroid xu3 build
sdl: use left or right alt+enter to maximize window
deadlock at exit if dc_exit called from emu thread
2020-05-08 18:41:36 +02:00
Flyinghead 8a6dbef775 naomi: don't die if eeprom cannot be updated (network), log instead 2020-05-02 18:24:13 +02:00
scribam 6ee4b6de85 Replace OS_DARWIN by __APPLE__ 2020-04-26 14:19:21 +02:00
Flyinghead aac8b30bce naomi: fake wrungp drive board. marine fishing inputs
set jvs board for dog walking and touch de uno
force region to japan for the same
2020-04-26 11:32:15 +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
Flyinghead 482b7427f0 ui: get rid of 100% notif message. avoid logging garbage when canceled 2020-04-24 19:46:23 +02:00
scribam 0b1d739673 MSVC Cleanup 2020-04-23 14:10:49 +02:00
Flyinghead adfe30cf4c osx: allow exit with button. clean exit
terminate network in dc_term to avoid static init order issues
osx: call dc_term before exit
osx: exit app when exit button is pressed (dc_exit)
osx: ignore -NSDoc... app args
2020-04-23 11:46:34 +02:00
Flyinghead bec7a9f452 network: start network before starting game to configure eeprom/flash
do second net sync when comm board is reset
close menu/cancel loading when pressing menu button
2020-04-22 19:11:49 +02:00
scribam 58abddfd27 Compilation fixes for MSVC 2020-04-20 22:17:32 +02:00
Flyinghead 64249eb68e gdrom: shrink gdrom buffer to decent size 2020-04-20 18:53:08 +02:00
Flyinghead 17a2c3644f ui: add loading screen with cancel button. don't freeze ui on load 2020-04-20 18:52:02 +02:00
Flyinghead 06313dd540 naomi: auto configure eeprom and bbsram for network 2020-04-19 21:45:15 +02:00
Flyinghead 98b2a32eae naomi: auto-rotate screen, no widescreen when rot, lightgun as analog
rotate screen for naomi games that need it
disable widescreen when rotating screen
detect lightgun games and enable proper settings
disable model 3 comm board for atomiswave
2020-04-17 22:11:11 +02:00
Flyinghead 3660cf49f4 naomi net: don't xmit the packet number 2020-04-17 18:09:56 +02:00