RSDuck
05b94eff66
make audio output thread safe(r?)
2020-11-15 15:29:38 +01:00
RSDuck
62e3f41f20
delay savefile flush to the end of the frame
2020-11-11 13:38:05 +01:00
Hypnotron
05e274a1f6
Added 8/16-bit IPCFIFOSEND writes
2020-10-29 16:09:25 -04:00
Arisotura
d2cd3eadbe
fix to timers (ZXDS no longer runs slow as shit)
2020-10-27 05:03:17 +01:00
Arisotura
fc922ffb14
Merge branch 'master' into dsi_camera
...
# Conflicts:
# src/DSi_I2C.cpp
2020-10-26 20:47:30 +01:00
Arisotura
9fdc1de6fe
add a few missing 32bit I/O accesses (IPC, SPI)
2020-10-25 18:14:40 +01:00
RSDuck
f2fa52f26c
add functionality to import savefiles
2020-09-11 03:08:06 +02:00
Arisotura
8d42b1c7d7
messin' around
2020-09-08 20:19:37 +02:00
RSDuck
9772201345
remove some UB
...
- savestates used to read a four bytes from a single byte value
- a few unassigned variables
- some other things
- also make the ROR macro an inline function
2020-09-04 20:37:14 +02:00
Arisotura
5431c469c3
actually add DLDI. bahahahhh
2020-09-03 20:28:07 +02:00
qeeg
9bfaf8682d
Fix a typo
2020-08-31 16:37:42 -05:00
Arisotura
ba373ca72a
DSi: make ARM9-clock-selector actually work
2020-08-17 19:15:45 +02:00
RSDuck
ea734084ca
check DSi interrupts for halted processor wakeup
2020-07-27 23:18:33 +02:00
Nadia Holmquist Pedersen
b4ad35948d
Merge remote-tracking branch 'upstream/slirp' into slirp-merge
2020-07-26 21:41:09 +02:00
RSDuck
8a96dfce18
fix build with JIT disabled
...
fixes #675 and #674
2020-07-25 20:59:53 +02:00
Arisotura
2f9a6b7c03
SPU: delay channel start until whenever it can actually start. fixes maxmod interpolated mode.
2020-07-23 12:59:19 +02:00
RSDuck
778623a8b7
make linux work and fix a few bugs
2020-07-04 18:58:00 +02:00
RSDuck
c5381d2911
reconcile DSi and JIT, fastmem for x64 and Windows
2020-06-30 23:50:41 +02:00
RSDuck
e335a8ca76
first steps in bringing over the JIT refactor/fastmem
2020-06-16 12:11:19 +02:00
RSDuck
e7d076403d
Merge branch 'generic_jit' of https://github.com/Arisotura/melonDS into generic_jit
2020-06-16 12:06:42 +02:00
RSDuck
052ff73672
rewrite JIT memory emulation
2020-06-16 12:01:08 +02:00
RSDuck
441869a105
integrate changes from ARM64 backend and more
...
- better handle LDM/STM in reg alloc
- unify Halted and IRQ in anticipation for branch inlining
- literal optimisations can be disabled in gui
- jit blocks follow simple returns
- fix idle loop detection
- break jit blocks on IRQ (fixes saving in Pokemon White)
2020-06-16 11:57:45 +02:00
RSDuck
40b88ab05a
new block cache and much more...
...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
and loads/stores from constant addresses
2020-06-16 11:56:36 +02:00
RSDuck
00cd9af033
fix uninitialised memory mapping
2020-06-16 11:54:47 +02:00
RSDuck
4deecc7d65
jit: decrease blockcache AddrMapping size for ARM9
2020-06-16 11:54:05 +02:00
RSDuck
86f2be7260
jit: add compile option
2020-06-16 11:54:03 +02:00
RSDuck
d13d625f73
jit: make everything configurable
2020-06-16 11:53:21 +02:00
RSDuck
10e386fe50
JIT: most mem instructions working
...
+ branching
2020-06-16 11:53:08 +02:00
RSDuck
c692287eba
JIT: base
...
all instructions are interpreted
2020-06-16 11:53:05 +02:00
Arisotura
fc5eedc716
* take nwifi forward some
...
* shut up CP15 printf's for Fx0
* fix bugs
2020-06-15 13:39:33 +02:00
Arisotura
43e045357f
make it able to switch between DS and DSi modes
2020-06-01 20:36:30 +02:00
Arisotura
6326ddd172
reset SD controllers during a soft-reset
2020-06-01 16:32:44 +02:00
Arisotura
b62d90cbe4
Merge remote-tracking branch 'remotes/origin/master' into melonDSi
2020-05-30 03:19:20 +02:00
Arisotura
2327de2423
Merge commit '4b57416552ec2fa95216e2b044559f215723bf70' into melonDSi
2020-05-30 03:12:42 +02:00
Arisotura
5eb01f1f15
begin renovating melonDSi
2020-05-30 02:40:51 +02:00
Arisotura
95f9698077
add back some hotkeys.
...
remove some legacy cruft from NDS.cpp.
2020-05-19 22:37:48 +02:00
Arisotura
c5c9434ac9
verify BIOS and firmware before booting games/firmware
2020-05-17 05:42:09 +02:00
Arisotura
17d30e91f0
actually hook this up
2020-05-17 04:37:44 +02:00
RSDuck
0f53a34551
rewrite JIT memory emulation
2020-05-09 00:45:05 +02:00
RSDuck
81f38c14be
integrate changes from ARM64 backend and more
...
- better handle LDM/STM in reg alloc
- unify Halted and IRQ in anticipation for branch inlining
- literal optimisations can be disabled in gui
- jit blocks follow simple returns
- fix idle loop detection
- break jit blocks on IRQ (fixes saving in Pokemon White)
2020-04-26 13:05:05 +02:00
RSDuck
a687be9879
new block cache and much more...
...
- more reliable code invalidation detection
- blocks aren't stopped at any branch, but are being followed
if possible to get larger blocks
- idle loop recognition
- optimised literal loads, load/store cycle counting
and loads/stores from constant addresses
2020-04-26 13:05:03 +02:00
RSDuck
51b6b7a7d5
fix uninitialised memory mapping
2020-04-26 13:03:11 +02:00
RSDuck
9d180c7bbc
jit: decrease blockcache AddrMapping size for ARM9
2020-04-26 13:03:09 +02:00
RSDuck
411fb57c07
jit: add compile option
2020-04-26 13:03:06 +02:00
RSDuck
9d76d63af5
jit: make everything configurable
2020-04-26 13:03:03 +02:00
RSDuck
2c44bf927c
JIT: most mem instructions working
...
+ branching
2020-04-26 13:02:57 +02:00
RSDuck
c5c342c009
JIT: base
...
all instructions are interpreted
2020-04-26 13:02:53 +02:00
Arisotura
104b2a03aa
properly handle ROMs with encrypted secure area
2020-03-30 11:04:50 +02:00
Arisotura
5f99a68151
detect whether we are running the game
2020-02-24 18:31:44 +01:00
Arisotura
83f8e11bc1
update copyright years
2020-02-14 20:18:08 +01:00
Arisotura
106b9a6f24
lay base for AR cheatzorz. baahahhhh
2020-02-14 19:26:52 +01:00
Raphaël Zumer
f257b007a2
Properly pass through GBA GPIO writes
2019-12-10 19:10:14 -05:00
Raphaël Zumer
5ad85f15c1
Add a framework to support non-SRAM GBA saves
...
The support is not yet there, but at least
we should not read or write bogus data.
2019-12-09 04:58:54 -05:00
Raphaël Zumer
62b9f51e23
Handle GBA cartridge SRAM writes
2019-12-08 21:20:01 -05:00
Raphaël Zumer
968768042e
Properly init/deinit the GBA slot
2019-12-08 15:30:56 -05:00
Raphaël Zumer
d86ee1d5bf
Add GBA cart model and allow reading from it
2019-12-08 15:30:07 -05:00
Raphaël Zumer
f21347c918
Fix GBA memory values on deselected CPU
...
Previously, the GBA memory was 0xFF-filled
on both CPUs. However, GBATEK reports that
the deselected CPU is 0x00-filled, and that
some titles depend on this behavior to
function properly.
2019-12-08 12:33:02 -05:00
Arisotura
e82364f010
* some fixes to SD controller support, make it clear that there is no SD inserted, makes Flipnote work somewhat better
...
* immediately clear AES busy flag when the block count is zero (occurs when loading DSi cart games)
* implement NDMA start modes that have an old-DMA equivalent (except for GXFIFO mode)
now it boots DSi carts!
2019-10-19 16:03:59 +02:00
xperia64
6c7c037b20
Fix division edge case
2019-08-24 11:52:24 -04:00
Arisotura
4d3d8433cb
* add old DS BIOSes and 04004000 BIOS-switch
...
fixes audio issues when running DS games
* attempt adding other fun shit like dynamic RAM size, but that mostly went nowhere for now
2019-08-05 19:52:03 +02:00
Arisotura
a9f36929e0
TSC: add backwards-compatibility
2019-08-04 14:34:33 +02:00
Arisotura
a6a9f74acc
lay base for DSi-mode TSC
2019-08-04 11:44:36 +02:00
Arisotura
592e493a7a
input: don't check modifiers for regular input
2019-07-09 18:39:50 +02:00
Arisotura
49b2f8d969
raise kMaxIterationCycles to 64
2019-06-25 02:05:48 +02:00
Arisotura
6d01677a57
add 32bit writes to some IO ports. fixes #313
2019-06-20 13:57:14 +02:00
Arisotura
d943a51b96
ayyy
...
getting there!
2019-06-20 03:19:51 +02:00
Arisotura
000aa1f327
add LCD init flag in DISPSTAT
2019-06-20 02:31:46 +02:00
Arisotura
81dde71eba
add AES, fix a bunch of bugs
...
we're getting an error screen! wee
2019-06-19 14:24:49 +02:00
Arisotura
d6bbc6f0f1
tremble upon the NDMA implementation
...
that doesn't do much beyond getting stuck
2019-06-18 22:54:07 +02:00
Arisotura
d4dd97638d
lay base for SD shit
2019-06-16 17:01:49 +02:00
Arisotura
566a8df6cd
add IE2/IF2
2019-06-16 15:05:18 +02:00
Arisotura
7aa5131ec7
run teh binary. BAHAHAHAHAHAHAHAAHHHH
...
it doesn't do much for now tho
2019-06-15 14:05:31 +02:00
Arisotura
83d23939db
melonDSi: skeleton in place
2019-06-15 13:09:11 +02:00
Arisotura
0e421ccebd
add all sorts of shit
2019-06-13 14:41:54 +02:00
Arisotura
00a5576492
fasterer IRQ check. clean up code.
2019-06-08 22:16:51 +02:00
Arisotura
75f8cbf953
draft API for OpenGL shito in libui
2019-03-31 21:15:45 +02:00
Arisotura
b9703d2e8f
fix CP15 control reg init during direct boot (fixes LMNTS demo regression)
2019-03-30 23:49:22 +01:00
Arisotura
f08b87b41f
* move melon_fopen_local() to Platform.cpp
...
* make it require that the file already exist (hopefully fixing config saving bug)
* finally axe melon_fopen.cpp
2019-03-27 13:34:26 +01:00
Arisotura
93d51b0cbc
start work on non-direct mode. reply to DHCP discover frame.
2019-02-23 13:41:51 +01:00
Arisotura
b0efde8bf7
also, update copyright name
2019-01-22 15:58:29 +01:00
StapleButter
669247e8c8
redesign main emu loop to use timestamps instead of being a trainwreck
...
* cleaner code
* faster in some cases
* more accurate (on-demand compensation for timers and GPU)
* less prone to desyncs
* overall betterer
2019-01-05 05:28:58 +01:00
StapleButter
dd30b417b8
implement proper support for POWCNT1.
...
fixes #260
2018-12-18 17:04:42 +01:00
StapleButter
71bbb35bbf
watch your debug code better, you derp
2018-12-18 02:00:50 +01:00
StapleButter
694d6cafa2
fix STRD_POST (dumbest copypaste bug of the year)
...
fixes #276
2018-12-18 01:56:21 +01:00
StapleButter
cb1e6ce750
proof-of-concept code for closing/opening lid.
2018-12-14 02:36:57 +01:00
StapleButter
aa8c84f040
* correct romlist.bin (Club Penguin Herbert's Revenge EUR uses 4K EEPROM, not 64K)
...
* support 32bit reads to POWCNT1 (and also POSTFLG)
fixes #300
(insert sparta meme)
2018-12-13 15:03:06 +01:00
StapleButter
548432c364
add code to support GBA slot reads for later
2018-12-12 19:43:29 +01:00
StapleButter
758bed93bc
preliminary microphone code. requires an actual microphone. resulting audio is farty and blargy as fuck.
2018-12-12 16:33:40 +01:00
StapleButter
a8f2267a18
zarg
2018-12-12 03:09:48 +01:00
StapleButter
e7a4fe11ed
add nocashPrint type shit
2018-12-12 02:48:37 +01:00
StapleButter
3101bd595f
add missing shit to savestates. bump the version up.
2018-12-11 21:50:28 +01:00
StapleButter
40f3f91368
move config-file seeking code to its own thing.
...
look also into the same directory as melonDS. make it the preferred place for storing melonDS.ini.
rewrite WinMain() wrapper.
2018-12-11 21:34:05 +01:00
StapleButter
3dd8c7b152
finish the work on the main loop. finally fix all cases of desync I could find. also add #ifdef'd debug code to check for desyncs.
2018-12-11 15:56:34 +01:00
StapleButter
78d384a754
temp commit
...
almost done killing ARM9/ARM7 desync, f
2018-12-11 03:08:46 +01:00
StapleButter
aba4610d45
fix bugs
...
still kinda shitty tho. like, we lost enough timer accuracy to have visible effects (aging cart tests that fail, FMVs that play too slow, etc)
2018-12-09 01:46:10 +01:00
StapleButter
b569c03884
make it fasterer
2018-12-09 01:26:51 +01:00
StapleButter
29bca33bc6
take it somewhere.
...
still need to speed it up a tad.
2018-12-09 01:17:05 +01:00
StapleButter
c6fb152d80
start devolving things.
...
also implement proper DMA timings.
will not build. don't try.
2018-12-08 22:33:41 +01:00
StapleButter
86dae1a25c
make this other branch where we're going to actually make it usable
...
but it'll be a gross hack
2018-12-08 20:27:00 +01:00
StapleButter
172fb4876a
begin work on general timing renovation. way shitty because it behaves as if caches were off, so everything will be slow as shit.
2018-12-04 17:54:10 +01:00