Commit Graph

262 Commits

Author SHA1 Message Date
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
StapleButter 46d5a31275 well yeah that's what I thought
GXFIFO stalls don't stall the ARM7
2018-11-24 05:23:35 +01:00
StapleButter 7b48ce5b75 * fix possible issues with GXFIFO stalling
* rework GPU timings, now almost same as hardware. display lists generally execute faster. not finished. not bad for a start tho.
* Rayman RR2 is still getting sound streaming issues. I don't think GXFIFO stalls are supposed to halt the ARM7. that doesn't make sense and would mess badly with sound since it's also using the ARM7 bus.
2018-11-24 02:29:25 +01:00
StapleButter a9e7f8bc5b add proper support for GXFIFO stalls.
bad games that blast the GXFIFO and overflow it:
* Super Mario 64 DS
* Rayman RR2

latter seems to get its music streaming crapoed.
2018-11-23 22:21:41 +01:00
StapleButter 27e1ca4103 beginning timing renovation.
smarter Reschedule().

gotta start somewhere, I guess.
2018-11-09 14:10:06 +01:00
StapleButter 7ba32ea076 make the ARM clock shift configurable. nothing fancy there, just paving the way for DSi support later. 2018-11-07 18:38:54 +01:00
StapleButter b4165cc0a9 3D: keep the rasterizer from accidentally going out of bounds when given very flat X-major edge slopes.
this, by a fucking shitshow of butterfly effect, ends up fixing #234. technically, the rasterizer was going out of bounds, which, under certain circumstances, caused interpolation to shit itself and generate Z values that were out of range (but still ended up in the zbuffer). sometimes those values ended up negative, which caused these glitches when polygons had to be drawn over those.

about fucking time.
2018-11-04 23:21:58 +01:00
StapleButter 307c26de93
Merge pull request #248 from Dirbaio/master
Two fixes
2018-10-27 14:16:46 +02:00
StapleButter 8b4ba2d8b9 separate SRAM setting coded, I guess 2018-10-24 00:24:36 +02:00
StapleButter f60ac42466 pass savefile name to NDS::LoadROM() instead of having the core generate it. 2018-10-23 21:52:41 +02:00
StapleButter d191af8690 rewrite how structures are stored to savestates (store individual fields, to avoid compatibility issues)
also fixes stability issues when 3D is involved. turns out we were storing raw pointers to vertices. figures

more crapo code to get around that, but atleast it works without asploding now.
2018-10-21 03:16:41 +02:00
StapleButter cbcecc8cdb don't store BIOS in savestates. no point doing so. 2018-10-19 01:05:19 +02:00
StapleButter 20862b7daf aight, wifi done 2018-10-18 03:22:53 +02:00
StapleButter f51e1ec805 I guess that might have malfunctioned 2018-10-18 03:10:17 +02:00
StapleButter 86f5155f72 more procrastinating before actually starting savestatez0ring wifi.
I need to pee
2018-10-18 03:09:03 +02:00
StapleButter 3a54b9178b RTC done. misc shito. 2018-10-18 03:04:39 +02:00
StapleButter cbe5780837 SPI done 2018-10-18 02:54:48 +02:00
StapleButter 7bf62918cd SPU done 2018-10-18 02:45:38 +02:00
StapleButter a2cc7087f7 GPU done 2018-10-18 02:31:01 +02:00
StapleButter 148f4032f1 fix code that would have fucking asploded 2018-10-18 01:38:33 +02:00
StapleButter de91eabf71 savestate shito: fix compile errors.
still far from being finished, so avoid using unless you want to spawn blackholes or some pretty bad shit.
2018-10-18 00:27:55 +02:00
StapleButter 7cbcc6c230 zlarg 2018-09-15 03:41:09 +02:00
StapleButter 60f24a7432 moar progress on it 2018-09-15 03:29:36 +02:00
StapleButter 0bfd019dc0 start implementing actual shito
(also looks like the test bench in libui_sdl/main.cpp snuck in with the copyright update. shit)
2018-09-15 02:47:34 +02:00
StapleButter fea7955675 fixor copyright years. 2018-09-15 02:32:13 +02:00
Dario Nieuwenhuis d721e098eb Make "unknown IO" messages consistent, all including value and PC. 2018-05-24 01:09:40 +02:00
Dario Nieuwenhuis cb79a5dc14 Make Main RAM size configurable in a single place. 2018-05-24 01:09:23 +02:00
StapleButter 81e98b5e12 direct boot: init cart ID from NDSCart::CartID instead of hardcoding it 2018-04-27 19:26:46 +02:00
StapleButter f0bc364210 init AUXSPICNT to 0x8000.
(guess sloppy DLDI drivers expect that)
2018-04-27 00:20:18 +02:00
Dario Nieuwenhuis a2c95f2dc3 Add 32bit IPCSYNC reads and writes. 2018-04-24 22:31:52 +02:00
Zion Nimchuk 52df6be5f8 Load bios, firmware and melonDS.ini from executable or ~/.config/melonds or AppData 2018-01-11 14:38:57 -08:00
StapleButter 981661a36d wifi: implement increment for txheader[4] 2018-01-04 00:10:35 +01:00
StapleButter b5046b9766 comment out some unwanted printf's 2017-12-07 01:04:00 +01:00
StapleButter b96ac8e000 (finally) fix sound
* reset capture position when starting capture
* reorder channel/capture handling
* implement FIFO for channel and capture
2017-11-11 18:46:42 +01:00
StapleButter c3675af538 properly reset IE/IF, fixes some reset issues. 2017-11-09 16:02:37 +01:00
StapleButter ee1da52d77 fail gracefully when ROM loading fails 2017-10-11 00:01:05 +02:00
StapleButter 4781bd5671 fix ARM7 BIOSPROT. not that it matters. 2017-10-02 04:57:23 +02:00
StapleButter dbb174c531 implement 8bit reads to div/sqrt registers.
RaymanDS showed some interest for that, so there we go.
RaymanDS still fucks up.
RaymanDS is a pile of shit.
melonDS is bad at timings.
2017-10-02 04:27:50 +02:00
StapleButter 1975efaeea fix bugs with SPI shutdown 2017-10-01 03:19:39 +02:00
StapleButter ab9800fbac actual joystick input
also sync keyboard input nicely
2017-09-30 20:05:56 +02:00
StapleButter 48cf9eb805 make it a menu option while we're at it 2017-09-21 04:08:03 +02:00
StapleButter 495d0ba12d add support for SPI shutdown, btw 2017-09-21 03:59:12 +02:00
StapleButter e6f5507c9e add some more GPU IO 2017-07-23 15:31:09 +02:00
StapleButter 0df3a29374 * FPS counter displays target framerate
* fix potential hang and out-of-bounds drawing when VCount is modified during drawing
2017-07-21 10:19:56 +02:00
StapleButter bb963c35a4 while we're at it: emulate div/sqrt timings 2017-07-15 19:46:27 +02:00
StapleButter 678ae00e0a support 16-bit reads to the div/sqrt registers 2017-07-05 18:46:19 +02:00
StapleButter 4afac28263 proper display FIFO emulation 2017-06-26 11:02:10 +02:00
StapleButter 39fbc415f6 new save heuristic. atleast Scribblenauts doesn't lose its shit now.
shut up shibs
2017-06-25 17:35:45 +02:00
StapleButter 4ffb217791 add support for 16bit IE reads/writes (fixes #66) 2017-06-24 01:21:09 +02:00
StapleButter c5dbb01aa3 wifi: fix for MP replies.
clean up code.
make packet logging conditional.
2017-06-18 16:26:59 +02:00
StapleButter 581a0954ad wifi: fix IRQ14 emulation. other fixes and attempts. 2017-06-13 01:01:46 +02:00
StapleButter cb65536c22 fix timing issue with ARM7 DMA (occasionally crapoed the 'Nintendo DS' sound when booting the firmware) 2017-06-12 19:00:32 +02:00
StapleButter f749ede319 wifi: cmd timer 2017-06-05 14:10:12 +02:00
StapleButter 9e36cba941 wifi: fix TX start logic (it is possible to write TXREQ then TXLOC) 2017-06-05 01:58:14 +02:00
StapleButter fb1eb43fb4 * bump version number
* implement 32bit reads to keypad registers
* also implement RCNT more properly
2017-06-04 22:34:31 +02:00
StapleButter 9a2e2998e9 salvage socket init code 2017-05-11 19:57:49 +02:00
StapleButter eb7154e426 woops 2017-05-10 02:30:18 +02:00
StapleButter f54f54fb7e add support for writing to VCount. incl. fucked-up display and altering framerate accordingly. 2017-05-10 02:21:02 +02:00
StapleButter bde9e7dfed fill BIOS exception vectors with undef opcode when no BIOSes are found 2017-05-09 04:52:17 +02:00
StapleButter 50d2ffb207 misc. things 2017-05-09 03:54:37 +02:00
StapleButter d4270b0976 wifi: implement RAM access via the fancypants registers. allows Pictochat to proceed, but noone will reply to you. 2017-05-01 19:29:25 +02:00
StapleButter 5de98cd484 add 32bit write to DIVCNT and SQRTCNT 2017-04-28 17:23:18 +02:00
StapleButter ecbcf2172a only trigger cart DMA on the CPU for which the cart interface is enabled.
fixes unstable firmware boot.
2017-04-27 18:45:43 +02:00
StapleButter 5217f4b056 set POSTFLG to 1 upon direct boot. fixes Pokémon White among others. 2017-04-26 16:17:03 +02:00
StapleButter 6707e5bb85 support 16bit access to the DMA fill regs 2017-04-25 16:13:16 +02:00
StapleButter 9eb68c2ede misc optimizations 2017-04-25 01:14:26 +02:00
StapleButter 8fd1124117 implement 8bit reads to the joypad ports 2017-04-24 01:30:30 +02:00
StapleButter 2380c2f4ea hopefully fix the DMA bug without breaking everything this time. 2017-04-13 04:16:57 +02:00
StapleButter c62e160b26 * decal texture blending
* start implementing toon shading
* temp. revert the DMA fix, causes issues
2017-04-12 20:25:54 +02:00
StapleButter 54eeb38d3d make CPU freezes take place immediately. fixes RaymanRR2 backgrounds occasionally getting cut in half. 2017-04-12 17:53:15 +02:00
StapleButter db20d7408e better wifi stub 2017-04-12 16:58:09 +02:00
StapleButter f2622c047b some attempt at actually stubbing out wifi. except it won't fucking work. 2017-04-10 18:47:11 +02:00
StapleButter 28ebd56fb8 * fix bug with 0-line tall windows (would be enabled for the whole screen)
* map some I/O ports
2017-04-09 03:47:47 +02:00
StapleButter a4f436f827 * stub more wifi crap
* louder sound
* misc fixes
2017-04-07 17:37:49 +02:00
StapleButter 8d66beba6b start SPU work 2017-04-06 19:44:34 +02:00
StapleButter bfe22e0b9b allow 16/32 bit writes and reads to the gamecard command registers. 2017-03-31 01:50:01 +02:00
StapleButter 4e7dc60d37 * clean up code
* working-ish run/pause/reset
* proper closing/cleanup
* ability to run BIOS alone
2017-03-29 18:59:20 +02:00
StapleButter 8c059c9953 * more thread-safe UI
* config system base
* FPS counter and limiter
2017-03-23 17:14:48 +01:00
StapleButter 3a89513c93 * more accurate direct boot
* improve touchscreen precision a bit
* proper support for 512KB firmwares
2017-03-21 00:53:04 +01:00
StapleButter 2150240cbd implement some obscure DMA types 2017-03-20 22:18:35 +01:00
StapleButter a56bf5c76c make timers not suck. fixes issues (Worms2 intro FMV plays at the right speed, aging cart tests get further...) 2017-03-20 17:39:42 +01:00
StapleButter 59d107bfb0 make ROM path not be hardcoded. 2017-03-19 19:07:39 +01:00
StapleButter 8a4ed8f41c reorganize repo, move shit around 2017-03-16 23:01:22 +01:00