Commit Graph

1377 Commits

Author SHA1 Message Date
RSDuck d91bbec08f use instr hash as key for restore candidates
makes Golden Sun burn a little slower through the JIT memory
2020-05-09 14:36:18 +02:00
RSDuck 5a0b568647 allow allocating caller saved registers
currently system-v only
2020-05-09 14:34:52 +02:00
RSDuck 0f53a34551 rewrite JIT memory emulation 2020-05-09 00:45:05 +02:00
Nadia Holmquist Pedersen b746c0b727 Only initially open files as writable if they actually should be. 2020-05-06 03:53:05 +02:00
Nadia Holmquist Pedersen beb3b20d5e Fix crash with nonexistent config directory or writable files. 2020-05-06 03:49:20 +02:00
Nadia Holmquist Pedersen 6cfe4faa56 Use Qt abstractions for file I/O and threading on both Windows and Linux. 2020-05-06 03:22:30 +02:00
Nadia Holmquist Pedersen ffe20c1236 Use Qt abstractions instead of glib's for paths on Linux 2020-05-06 02:39:50 +02:00
Arisotura 9432a9f382 remove useless variables 2020-05-03 15:05:52 +02:00
Arisotura aa4344e249 add audio output. HARK HARK HARK 2020-05-02 20:25:39 +02:00
Arisotura 690f39ca33 enable savestate slots when saving a new savestate 2020-05-02 19:41:03 +02:00
Arisotura 7f3e67c12a some more UI work 2020-04-30 01:02:17 +02:00
Arisotura 5fbad464c2 hook up savestate shito 2020-04-29 00:50:23 +02:00
Arisotura 47ff012f5e blarg 2020-04-28 22:46:31 +02:00
Arisotura 63efc2e02a add menu items for running the firmware and for quitting. 2020-04-28 22:45:11 +02:00
Arisotura 0913576ef5 FPS counter is back 2020-04-27 23:58:29 +02:00
Arisotura a8aa834c16 now with display! 2020-04-27 22:42:07 +02:00
Arisotura 3c883a2152 hey look, it runs shit now! 2020-04-27 22:32:33 +02:00
Arisotura 931da1c66f add a bunch of code 2020-04-27 22:02:45 +02:00
Arisotura d6efb03248 HARK HARK HARK 2020-04-27 20:59:11 +02:00
Arisotura d9c55a4f1f fix dumb include path shit. 2020-04-27 15:59:52 +02:00
Arisotura 690f9f3874 get some of the shit going, I guess
atleast the emuthread is going and we have its control system down

and other fun shit, too
2020-04-27 12:06:44 +02:00
RSDuck bcc4b5c8dd fix regression from last commit
also a small mistake with msr
2020-04-26 23:25:32 +02:00
RSDuck b0b9ec42e4 don't use param registers for ReadBanked/WriteBanked
should fix linux build
2020-04-26 20:47:36 +02:00
RSDuck 47b44a6be8 fix build with JIT disabled and set default JIT maxblock size to 32 2020-04-26 16:27:26 +02:00
RSDuck 59c8d39765 hopefully fix stack handling for linux 2020-04-26 16:17:16 +02:00
RSDuck a9dd6e30ad implement msr and mrs for the x64 JIT 2020-04-26 13:05:18 +02:00
RSDuck 68d552074b compile UMULLs and some fixes 2020-04-26 13:05:17 +02:00
RSDuck 3787bab1f6 implement block linking + some refactoring
currently only supported for x64
2020-04-26 13:05:17 +02:00
RSDuck 5d0f244f3c include more information in DataRegion 2020-04-26 13:05:16 +02:00
RSDuck 59f710158f arm64 fix itcm invalidation and ldm^/stm^ 2020-04-26 13:05:15 +02:00
RSDuck 96b8ac1af2 preparations for block linking 2020-04-26 13:05:15 +02:00
RSDuck 0280fbe194 this mistake was phenomally stupid 2020-04-26 13:05:14 +02:00
RSDuck 05962d9798 the time of good commit names is long gone 2020-04-26 13:05:14 +02:00
RSDuck e9760c941b git played a prank on me haha very funny 2020-04-26 13:05:14 +02:00
RSDuck 2e6e6aa750 this it should work 2020-04-26 13:05:13 +02:00
RSDuck 266fd20ea5 fixup for aarch64 JIT 2020-04-26 13:05:12 +02:00
RSDuck 42d67c8145 fix LDM usermode for aarch64 as well 2020-04-26 13:05:12 +02:00
RSDuck 2dbb9840fb re add error for unsupported JIT platforms 2020-04-26 13:05:11 +02:00
RSDuck 899cf97c51 apply fixes for aarch64 linux by @nadiaholmquist 2020-04-26 13:05:10 +02:00
RSDuck d6cc7de6c4 move ARM64 JIT backend here 2020-04-26 13:05:09 +02:00
RSDuck 842df432aa remove debug leftovers 2020-04-26 13:05:09 +02:00
RSDuck 9b98b8816a improve nop handling and proper behaviour for LDM^
fixes dslinux
2020-04-26 13:05:08 +02:00
RSDuck 60650fa82e disable literal optimations in DTCM 2020-04-26 13:05:07 +02:00
RSDuck 0c5311731b make savestates 100% compatible again 2020-04-26 13:05:07 +02:00
RSDuck 386100c053 make literal optimisation more reliable
fixes spanish Pokemon HeartGold
2020-04-26 13:05:06 +02:00
RSDuck 803c61e126 fix config key for jit literal optimisations 2020-04-26 13:05:06 +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 aa23f21b8d decrease jit block cache address granularity
fixes Dragon Quest IX
move code with side effects out of assert, fixes release build
(thanks to m4wx for this one)
also remove some leftovers of jit pipelining
2020-04-26 13:05:05 +02:00
RSDuck 7424f9fda0 remove leftover debug code 2020-04-26 13:05:04 +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 5338c28f40 load register only if needed
- do thumb bl long merge in the first step
- preparations for better branch jitting
2020-04-26 13:05:02 +02:00
RSDuck 2ef776883f more fixes for flag optimisation
+ small cycle counting optimisation
2020-04-26 13:05:02 +02:00
RSDuck 5202c505ab remove debug printing 2020-04-26 13:05:01 +02:00
RSDuck ea562d2fec fixes for flag optimisation 2020-04-26 13:05:01 +02:00
RSDuck b5dda7d6e2 add ui confirm dialog for linux 2020-04-26 13:05:00 +02:00
RSDuck 5ea91b8a03 optimise away unneeded flag sets
- especially useful for thumb code and larger max block sizes
- can still be improved upon
2020-04-26 13:05:00 +02:00
RSDuck 03ab7f1645 fix jit block size not changeable 2020-04-26 13:04:59 +02:00
RSDuck 3001d9492c abandon pipelining on jit
fixes Golden Sun Dawn
this makes the cpu state incompatible between interpreter and JIT. That's why switching cpu mode requires a restart(not requiring is stupid anyway) and the pipeline is manually filled when making a save state.
2020-04-26 13:04:59 +02:00
RSDuck ec21172cd9 fix register alloc for half word loads
fixes Mega Man Star Force 2 with cheat applied
it probably used a pc relative load which were interpreted as branches
2020-04-26 13:04:58 +02:00
RSDuck 5e443e7962 remove unneeded dolphin code, C++11 static_assert 2020-04-26 13:04:57 +02:00
RSDuck f31976fed0 jit: fix RSC 2020-04-26 13:03:12 +02:00
RSDuck 707da1f4c7 remove debug printf 2020-04-26 13:03:11 +02:00
RSDuck 51b6b7a7d5 fix uninitialised memory mapping 2020-04-26 13:03:11 +02:00
RSDuck 4a0f6b3b4b jit: fix thumb hi reg alu and mcr halt
+ mcr/mrc aren't always, msr_imm is never unk on ARM7
2020-04-26 13:03:10 +02:00
RSDuck 9d180c7bbc jit: decrease blockcache AddrMapping size for ARM9 2020-04-26 13:03:09 +02:00
RSDuck be8846e31a jit: fix misc static branch things 2020-04-26 13:03:08 +02:00
RSDuck 54985be157 jit: LDM/STM keep proper stack alignment 2020-04-26 13:03:08 +02:00
RSDuck 8ddc4d5904 jit: fix BLX_reg with rn=lr 2020-04-26 13:03:07 +02:00
RSDuck 411fb57c07 jit: add compile option 2020-04-26 13:03:06 +02:00
RSDuck 360317be8c jit: remove unnessary files from dolphin 2020-04-26 13:03:04 +02:00
RSDuck 9d76d63af5 jit: make everything configurable 2020-04-26 13:03:03 +02:00
RSDuck dcf6e1cad2 jit: fix linux 2020-04-26 13:03:01 +02:00
RSDuck 6f0dcad4f6 jit: fix wrongly placed const 2020-04-26 13:03:01 +02:00
RSDuck 9b3c14b58a jit: SMULL and SMLAL 2020-04-26 13:03:00 +02:00
RSDuck 2efab201e9 jit: LDM/STM finally(!) working + MUL, MLA and CLZ 2020-04-26 13:02:59 +02:00
RSDuck c58fdbd66b jit: branch instructions 2020-04-26 13:02:58 +02:00
RSDuck ff97211114 jit: thumb block transfer working
also pc and sp relative loads and some refactoring
2020-04-26 13:02:57 +02:00
RSDuck 2c44bf927c JIT: most mem instructions working
+ branching
2020-04-26 13:02:57 +02:00
RSDuck 5f932cdf48 JIT: compilation of word load and store 2020-04-26 13:02:56 +02:00
RSDuck ff901141e7 jit: correct cycle counting for thumb shift by reg 2020-04-26 13:02:55 +02:00
RSDuck ebce9f035f JIT: implemented most ALU instructions 2020-04-26 13:02:55 +02:00
RSDuck c5c342c009 JIT: base
all instructions are interpreted
2020-04-26 13:02:53 +02:00
Arisotura d2f05cd30f prepare JIT beta branch 2020-04-26 13:02:26 +02:00
Arisotura 439ca1b2b5 get a Qt window showing up. 'tis a start, I guess. 2020-04-25 20:43:09 +02:00
Arisotura 0bdafb6295 finally get this going, I guess 2020-04-25 19:31:19 +02:00
Arisotura d58c9d4b53 blarg 2020-04-25 18:56:39 +02:00
Arisotura a85d41c53e berp. 2020-04-25 18:51:08 +02:00
Arisotura 3b3a09ed2b attempt something. maybe this worked, maybe not. 2020-04-25 18:48:33 +02:00
Arisotura 231f0fc2e5 welp 2020-04-14 23:38:48 +02:00
Arisotura de405ce892 so, this is it
this was a glorious fight, but I admit defeat
2020-04-14 23:17:16 +02:00
Nadia Holmquist Pedersen 4b57416552 Windows: explicitly link gdi32 2020-04-12 17:15:39 +02:00
Nadia Holmquist Pedersen a6150a9a9e Use pkg-config to find SDL2 on Windows 2020-04-12 16:59:06 +02:00
Arisotura ec6e4a2d1e GPU3D: more accurate viewport transform (emulate quirk with W greater than 0xFFFF) 2020-04-12 16:40:08 +02:00
Arisotura 33b4cdb077 GPU3D: implement zero-dot W limit (DISP_1DOT_DEPTH) 2020-04-12 14:01:43 +02:00
Arisotura 4c560f3324 GPU3D: swap vin and vout during clipping, giving results that are closer to hardware.
fixes #598 and also fixes #379
2020-04-11 23:56:36 +02:00
Arisotura d412630a49 should probably be a strncmp() and not strncasecmp() 2020-03-30 13:28:51 +02:00
Arisotura d2cae446b9 Merge branch 'master' of https://github.com/Arisotura/melonDS 2020-03-30 11:05:09 +02:00
Arisotura 104b2a03aa properly handle ROMs with encrypted secure area 2020-03-30 11:04:50 +02:00
niemand-deu ab911571e0
Update main.cpp 2020-02-26 03:56:03 +01:00
Arisotura 5f99a68151 detect whether we are running the game 2020-02-24 18:31:44 +01:00
Arisotura 8b1caae852 flesh shit out for loading a cheat file 2020-02-24 17:56:01 +01:00
Arisotura 228c625e62 fix teh comment 2020-02-24 17:42:05 +01:00
Arisotura 3eb613650d change ParseTextCode() so we can specify the length of an individual AR code within a bigger string. 2020-02-16 11:21:45 +01:00
Arisotura 3a4947fbbe also that might have been bad for security. who knows. 2020-02-15 17:26:48 +01:00
Arisotura e40d414c56 now we can even parse the code from a text code. bahaahhhh 2020-02-15 16:20:53 +01:00
Arisotura ed39122c67 Arisotura will you ever clean up after yourself. this is like your goddamn apartment, it's a mess. 2020-02-15 16:07:13 +01:00
Arisotura 51dbb7165e finish the AR interpreter, I guess
or mostly
2020-02-15 00:36:22 +01:00
Arisotura 85a6a5bb38 * add support for a bunch of codes (all of them minus the loop shit, really)
* hook it betterer so it doesn't asplode
2020-02-14 23:34:26 +01:00
Arisotura eb44833171 well, more AR shito 2020-02-14 21:19:36 +01:00
Arisotura 83f8e11bc1 update copyright years 2020-02-14 20:18:08 +01:00
Arisotura d0b27178f1 miserable, feeble little attempt at executing AR codes.
also, it's hardcoded. probably not a good thing.
2020-02-14 20:13:06 +01:00
Arisotura 106b9a6f24 lay base for AR cheatzorz. baahahhhh 2020-02-14 19:26:52 +01:00
Arisotura 2944575cbc
Merge pull request #544 from i404788/master
Fix hanging UI when `null` addr
2020-02-14 14:30:54 +01:00
Markus ⛅ da0afbde88
Use different icon location
"pixmaps" is the deprecated, legacy-only location. "hicolor" is the current, proper location that supports multiple resolutions which we now use
2020-01-30 17:25:08 +01:00
Arisotura 2c51a49527
Merge pull request #546 from nadiaholmquist/feature/unix-xdg
Make melonDS properly installable systemwide on UNIX systems
2020-01-28 21:37:36 +01:00
Arisotura 12732aa51b
Merge pull request #550 from rzumer/slot2
Support GBA game cartridges for DS connectivity
2020-01-28 21:32:29 +01:00
Arisotura 3984491cce * prevent potential race condition while changing window title
* cap framerate at 1000FPS

fixes #547
2019-12-30 13:29:19 +01:00
Raphaël Zumer 22d11209b0 Split GBA Reset and Eject logic into two sets
This allows solving some crashes and provides more
flexibility in how GBA cartridges change state between
soft and hard resets. Since save states including GBA
data do not carry over the original save file path,
and the GBA cartridge is being reset along with the other
parts of the system, this is needed to avoid losing
the GBA state on reset following a state load, while
preserving the behavior where cartridges are ejected
when calling Stop().
2019-12-22 16:01:13 -05:00
Raphaël Zumer f380767fab Only store the GBA ROM header in save states
Also fix some potential crashes due to SRAM
state not being cleared correctly on state load.
2019-12-22 14:13:10 -05:00
Raphaël Zumer a57ba1368e Skip saving/loading GBA flash state if SRAM is null 2019-12-22 11:45:11 -05:00
Raphaël Zumer 2abdcc54dd Implement DoSavestate() for GBACart classes
Admittedly untested.
2019-12-19 00:12:40 -05:00
Raphaël Zumer be19e0e8d4 Make solar sensor hotkeys configurable 2019-12-18 23:35:18 -05:00
Raphaël Zumer 8172cbc170 Add DoSavestate() function to GBACart_SolarSensor
Still empty, but should be implemented along with the rest.
2019-12-18 23:35:14 -05:00
Nadia Holmquist Pedersen c5623c4dcd Change the config/data dirs from "melonds" to "melonDS" for consistency. 2019-12-19 02:52:34 +01:00
Nadia Holmquist Pedersen 43535c873a Remove redundant desktop file and change desktop/icon file name to net.kuribo64.melonDS, also change melonds to melonDS. 2019-12-19 02:48:11 +01:00
i404788 295404a5a6
Fix weird spacing 2019-12-12 09:03:01 +00:00
Raphaël Zumer f8e43ac486 Display solar sensor level changes on OSD 2019-12-10 19:24:30 -05:00
Raphaël Zumer f257b007a2 Properly pass through GBA GPIO writes 2019-12-10 19:10:14 -05:00
Raphaël Zumer ca9f183d24 Hook up solar sensor control to the UI
It uses hardcoded keypad left and right arrows.
2019-12-10 17:54:35 -05:00
Raphaël Zumer f6cd66e5b1 Implement solar sensor processing 2019-12-10 17:43:25 -05:00
Raphaël Zumer 9128517b90 Add basic GBA GPIO support, solar sensor detection 2019-12-10 16:36:39 -05:00
Raphaël Zumer 0092937148 Rename SRAMFlash to SRAMFlashState 2019-12-10 16:36:00 -05:00
Raphaël Zumer 4d1f3d419e Clarify comments and credit DeSmuME for Flash I/O 2019-12-10 09:57:15 -05:00
Raphaël Zumer 68d3474458 Fix GBA Flash read/writes and clean up 2019-12-09 07:37:09 -05:00
Raphaël Zumer 8fc9a33a9f Implement GBA cartridge Flash reading and writing 2019-12-09 06:10:26 -05:00
Raphaël Zumer 5a7600dc79 Fix "é" character encoding in NDS.cpp 2019-12-09 06:09:52 -05:00
Raphaël Zumer 4e8b0c8ce4 Eject GBA cartridges on stop from the UI 2019-12-09 06:09:30 -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 86b746dd1c Remove unused Write function in NDSCart 2019-12-09 04:51:59 -05:00
Raphaël Zumer 62b9f51e23 Handle GBA cartridge SRAM writes 2019-12-08 21:20:01 -05:00
Raphaël Zumer 48a8a25548 Reset GBA cartridge state when loading a new ROM 2019-12-08 17:13:56 -05:00
Raphaël Zumer 91bf62a1d4 Keep GBA carts loaded when booting to firmware 2019-12-08 15:55:06 -05:00
Raphaël Zumer 1da9b3806c Hook up the GBA slot to the UI
A GBA cartridge may be loaded in the same
way as a DS cartridge. If the extension of
the selected file is "gba", it will be treated
as a GBA file. The system boot logic is still
centered around the DS cartridge, so loading
a GBA file will not start or reset it.
2019-12-08 15:31:20 -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
Nadia Holmquist Pedersen 23bca8c17a Tell the user where to place romlist.bin if it can't be found for UNIX non-portable builds. 2019-12-05 00:40:59 +01:00
Nadia Holmquist Pedersen 03f33fa5c3 Make UNIX builds non-portable by default. 2019-12-05 00:12:40 +01:00
Nadia Holmquist Pedersen 4f87707cda If all else fails, look for data files (romlist.bin) in the current working direcoty. 2019-12-05 00:11:52 +01:00
Nadia Holmquist Pedersen 959c37ead7 Open with rb instead of r in OpenDataFile to avoid potential problems with Windows. 2019-12-04 22:54:30 +01:00
Nadia Holmquist Pedersen 7af658f089 Add a UNIX_PORTABLE build option, turning it off makes a build of melonDS suitable for systemwide installation. 2019-12-04 22:46:33 +01:00
i404788 7730e6c1e2
Coding style + weird spacing 2019-11-20 23:24:16 +00:00
i404788 477be1d155
add device name 2019-11-19 22:34:02 +00:00
i404788 c2a55bc217
clean log 2019-11-19 22:22:47 +00:00
i404788 cdd60bb298
fix build 2019-11-19 22:20:39 +00:00
i404788 7e07250652
Maybe better to log 2019-11-19 22:19:30 +00:00
i404788 7340b1d6e3
Fix hanging UI when `null` addr 2019-11-19 21:37:47 +00:00
Arisotura 3f7bc1a6c1 add warning against hacked firmware dumps 2019-11-08 21:55:13 +01:00
Arisotura c064f738ea OpenGL: fix bug when rendering translucent polygons coming after shadow polygons, against a zero-alpha clear-plane (would use wrong shader, resulting in broken transparency) 2019-11-03 09:55:52 +01:00
Arisotura b641ccaf35 fix remaining sprite y-coord bugs. fixes #531 2019-11-03 04:53:11 +01:00
Arisotura 3561e93bf6 fix sprite y-flip
also, meaningless shenanigans
2019-11-03 04:32:47 +01:00
Arisotura e117da235e smarter CP15 PU region updates. disable some useless logging.
fixes #528
2019-10-21 23:14:34 +02:00
Arisotura f9ac26078b look for NAND nocash footer at the end of the file rather than using a hardcoded offset. check whether the footer is present. 2019-10-20 18:52:33 +02:00
Arisotura 1c72df43ab messing around 2019-10-20 18:35:16 +02:00
Arisotura de11d6d410 Merge branch 'melonDSi' of https://github.com/Arisotura/melonDS into melonDSi 2019-10-19 16:05:35 +02: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
StapleButter db6187a953 add DSi shit to cmakelists 2019-10-16 01:37:44 +02:00
Arisotura 118b3b0f24 don't auto-patch firmware touchscreen coordinates, atleast until we find out whether that causes problems in DSi mode 2019-10-15 23:30:01 +02:00
Arisotura 58c2790ea3 uuuh we should only do it once per scanline 2019-09-15 02:08:47 +02:00
Arisotura e418b353e8 well, here, OBJ X mosaic is done too 2019-09-15 02:01:22 +02:00
Arisotura cb90475b60 begin work on mosaic
OBJ Y mosaic emulated correctly, there's atleast that.
2019-09-15 01:31:09 +02:00
Arisotura b8f55623c1 prevent capture-o-magic from freezing. also, make code more readable. 2019-09-14 13:45:01 +02:00
Arisotura 1c3661f33d BLAHAHAHAHHHH 2019-09-14 01:16:38 +02:00
Arisotura 9d376335b7 HARK HARK HARK HARK 2019-09-13 22:43:02 +02:00
Arisotura 1aaf0c33ce guess who the idiot is who broke sprite extpal 2019-09-05 11:49:22 +02:00
Arisotura 0010e296bd GPU2D: delay palette lookup for sprites 2019-09-05 11:42:08 +02:00
Arisotura 3efe90f78a deal with SPU FIFO overflow in a more pleasant manner 2019-09-04 16:40:29 +02:00
Arisotura 02a6fe182c see, Arisotura, was it that hard? 2019-09-04 16:29:40 +02:00
Arisotura 1b40149b0a blarg
here, have code
2019-09-04 15:41:42 +02:00
StapleButter a4f9187b9b fix bug with vsync checkbox 2019-09-01 23:04:06 +02:00
Arisotura f70ee39543 BAHAHAHAHHHAHARKKZKFKKSLFS-*~+¤ 2019-09-01 20:40:55 +02:00
Arisotura 27498ced4a
Merge pull request #505 from Zettymaster/master
Add warning message if romlist.bin is not found
2019-09-01 20:25:06 +02:00
Arisotura b3df6e523a
Merge pull request #509 from Zapeth/master
Fix cmake resource file compilation issues
2019-09-01 20:24:14 +02:00
Arisotura abb06269a1 add VSync toggle 2019-09-01 20:20:22 +02:00
Arisotura 5b51034436 zerp 2019-09-01 18:38:01 +02:00
Arisotura f01016a30b GPU2D: shape3 sprites are always 8x8 2019-09-01 18:35:33 +02:00
Arisotura 455b0e5689 more fixes to audio output
maybe by 2034 we'll finally get that shit going
2019-09-01 15:41:46 +02:00
Arisotura 210c1056b0 Merge branch 'master' of https://github.com/Arisotura/melonDS 2019-08-29 15:55:33 +02:00
Arisotura fbad8b0f43 * new FPS limiter
* new audio output/sync method

about fucking time
2019-08-29 15:55:18 +02:00
Zapeth 96d5d3f4c8 Fix glib-compile-resources path issues
Apparently double quotes are not stripped away for assigned arguments when parsing, which causes isses for paths that include spaces.
2019-08-28 22:24:54 +02:00
Zapeth 7cb8112984 Fix MinGW resource file compilation issues 2019-08-25 18:28:54 +02:00
xperia64 6c7c037b20 Fix division edge case 2019-08-24 11:52:24 -04:00
Lukas Wienke fefcd5165b Merge branch 'master' of https://github.com/Arisotura/melonDS 2019-08-19 19:09:57 +02:00
Arisotura 626a9c1385 my bad. 2019-08-18 11:31:03 +02:00
Lukas Wienke 6a50bcfaf7 add warning message if romlist.bin is not found 2019-08-15 23:59:05 +02:00
Arisotura dcda848cdf * base for potentially re-encrypting modcrypt, doesn't seem to be required? but can also serve to decrypt it
* revise SD IRQ behavior (fixing potential hang when loading DS games)
2019-08-07 12:57:12 +02:00
Arisotura 9c1ea0e539 guess after all we shouldn't send ACKs for nonexistant I2C devices 2019-08-06 13:31:27 +02:00
Arisotura 28a9c7d9d1 camera: enough stub to pass firmware init 2019-08-06 13:06:14 +02:00
Arisotura 62a605cd92 lay base for camera shito 2019-08-06 02:27:54 +02: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 36c741241a support DSi-mode carts
except they need to have the DSi-mode shit encrypted
2019-08-04 16:46:02 +02:00
Arisotura a9f36929e0 TSC: add backwards-compatibility 2019-08-04 14:34:33 +02:00
Arisotura f897d8c0d7 touchscreen input, somewhat
it's off, need to patch the calibration data
2019-08-04 12:13:01 +02:00
Arisotura a6a9f74acc lay base for DSi-mode TSC 2019-08-04 11:44:36 +02:00
Arisotura f7f4ff0519 wifi: take this shit further. complete wifi init 2019-08-04 02:16:16 +02:00
Arisotura 0918da7b00 add BMI commands and other shit 2019-07-24 21:13:08 +02:00
Arisotura 06716794a1 lots of things. attempting to make wifi init work. not there yet. 2019-07-24 18:48:52 +02:00
Arisotura 78ff4165ed GPU2D:
* implement reserved mode for bitmap sprites (not too interesting)
* mask out DISPCNT bits that don't apply to the sub GPU
2019-07-24 04:29:19 +02:00
Arisotura a8886d5949 GPU2D: add 'prohibited' large BG sizes 2019-07-24 03:30:09 +02:00
Arisotura 3c006fd361 GPU2D: fill gaps in BG modes
* mode6 actually works on the sub GPU, albeit limited to 1/4 the full bitmap size due to having only 128K of VRAM
* mode7 draws BG0, BG1 and sprites. no BG2/BG3.
2019-07-24 02:46:30 +02:00
Arisotura c1fa5d8283 GPU2D: forced-blank only disables BG/OBJ compositing (VRAM/FIFO display, capture, master brightness still run)
fixes #491
2019-07-24 00:27:08 +02:00
Arisotura 22f3cae067 fix potential out-of-bounds write 2019-07-13 02:54:14 +02:00
Arisotura ff27036b35 start botching the FPS limiter
results in shitty audio because it's overflowing the buffer
2019-07-12 22:04:55 +02:00
Arisotura 504ccb7044 don't allow modifier mappings in input config dialog, either 2019-07-09 18:41:44 +02:00
Arisotura 592e493a7a input: don't check modifiers for regular input 2019-07-09 18:39:50 +02:00
Arisotura c5e14074c3 * add SCFG_EXT
* quick hack to detect cartridges
2019-07-03 12:37:34 +02:00
Arisotura 5062ed543a HARK HARK HARK HARK 2019-07-03 01:17:23 +02:00
Arisotura ec042000cf lay base for DSi wifi 2019-07-03 00:07:51 +02:00
Arisotura 851e255b40 * AES-CCM decrypt
* fix a bunch of bugs
2019-07-02 23:46:39 +02:00
Arisotura 36f1e6f475 remove glBindImageTexture (4.2) 2019-06-30 16:57:30 +02:00
Arisotura 1b98a3e3a0 fix 'shift by register' operands: always only take the lower 8 bits of the register, fix handling for LSL/LSR >32
fixes #479
2019-06-27 14:05:51 +02:00
Arisotura 204b5d8700 HARK HARK HARK 2019-06-25 19:29:21 +02:00
Arisotura 4d775dcf85 fix OpenGL deinit when closing emu 2019-06-25 17:37:32 +02:00
Arisotura 1d8902c631 remove stupid hack that caused more problems than it fixed 2019-06-25 13:09:06 +02:00
Arisotura 58575f82b7 libui/windows: backport fix for #471 2019-06-25 12:29:56 +02:00
Arisotura 49b2f8d969 raise kMaxIterationCycles to 64 2019-06-25 02:05:48 +02:00
Arisotura 8c64290958 make it work better 2019-06-21 00:07:57 +02:00
Arisotura 1d138c0589 add SCFG_MC 2019-06-20 23:34:32 +02:00
Arisotura 1bd7243edc make it actually not crapo the NAND 2019-06-20 23:20:08 +02:00
Arisotura ed6b85bf33 implement SD/MMC write (cmd25) 2019-06-20 23:05:32 +02:00
Arisotura 6c60e97a63 fix another AES bug 2019-06-20 22:42:28 +02:00
Arisotura e2dc98d144 fix bug when mapping a joystick axis control but no button 2019-06-20 16:31:28 +02:00
Arisotura f59094e033 OpenGL: disable vsync, atleast under Windows 2019-06-20 16:00:12 +02:00
Arisotura 77bf92a272 Merge branch 'master' of https://github.com/Arisotura/melonDS 2019-06-20 13:57:34 +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 5dd7fe05a8 add some registers
someday I should implement the SCFG shit correctly
2019-06-20 01:54:40 +02:00
Arisotura 3d9e6c5c66 * fix more AES bugs
* fix ass-stupid bug with NWRAM mapping
2019-06-20 01:36:10 +02:00
Arisotura 95f4c1472b probably betterer like this 2019-06-19 22:08:35 +02:00
Arisotura 3807c9bf5b combat AES overflowing and/or getting stuck 2019-06-19 21:57:08 +02:00
Arisotura dcae9788e5 add NDMA start mode 0x0A (AES input FIFO) 2019-06-19 19:19:51 +02:00
Arisotura f4c7f5c96b support loading extra RSA keys from dsikeys.bin file (to dump from haxed DSi) 2019-06-19 18:55:48 +02:00
Arisotura 734c9024d5 add NWRAM registers 2019-06-19 17:16:44 +02:00
Arisotura b03e81edc8 add consoleID registers 2019-06-19 16:56:58 +02:00
Arisotura d5a7c0bab8 there, PSISP 2019-06-19 15:58:50 +02:00
Arisotura 2a60fad0a5 fix moar bugs, get furtherer (add support for SDHC addressing) 2019-06-19 15:54:07 +02:00
Arisotura 6e5879f8bb fix more bugs, get further 2019-06-19 15:26:38 +02:00
Arisotura 78b28f6a5c fix bug with SD reads going a bit too far 2019-06-19 14:44:00 +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 f0131cfac9 plug it to the SD/MMC FIFO.
now half the shit is done.
2019-06-18 23:10:55 +02:00
Arisotura b1ed835ae9 might be more impressive if it actually worked, like this 2019-06-18 23:05:36 +02:00
Arisotura 606a40e6b8 y'know, actually running the DMA units might yield better results. 2019-06-18 22:57:37 +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 841122bc51 prevent old DMA from being a shitshow. 2019-06-18 21:12:39 +02:00
Arisotura 7335379127 HARK HARK HARK 2019-06-18 19:00:44 +02:00
Arisotura eb18643762 add data32 IRQ thing 2019-06-18 18:39:13 +02:00
Arisotura dc3c9f5bf8 take all the SDMMC shit further. now it's completing MMC init and trying to read shit. 2019-06-18 14:12:37 +02:00
Arisotura 6c75275593 moar SD/MMC commands 2019-06-17 18:40:45 +02:00
Arisotura bedc0220fc take this shit further 2019-06-17 13:24:37 +02:00
RSDuck dac9ccc577 fix OGL renderer not working at all on some GPUs 2019-06-17 13:14:52 +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 78c41736c3 fix fucking ass-stupid bug with new-WRAM handling 2019-06-16 14:26:54 +02:00
Arisotura 7b19a01204 betterer I2C 2019-06-15 18:39:34 +02:00
Arisotura 4d3f346edc get it to do more interesting things 2019-06-15 18:30:12 +02:00
Arisotura 93330d2670 fix I2C shit? I think 2019-06-15 17:23:48 +02:00
Arisotura 58e3ff61ac add I2C shito 2019-06-15 16:58:02 +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 ebd1a359cc setup new-WRAM mapping. hark hark hark 2019-06-15 13:46:20 +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 b03c727fb9 blarg 2019-06-13 13:59:11 +02:00
Arisotura 29fb71cab8 BAHAHAHAHHHH
mostly just going to derp around some, so don't hold your breath here
2019-06-13 13:11:33 +02:00
StapleButter c4182b5ad3 BAHAHHAHAHAHH 2019-06-12 14:03:06 +02:00
Arisotura 34c60eaca4 fix bugs with line polygons 2019-06-12 13:14:11 +02:00
Arisotura 886bf6bc10 prevent loading savestates that are too recent 2019-06-12 12:49:52 +02:00
Arisotura 27f758d353 hack so that the GL renderer can render lines 2019-06-12 03:55:40 +02:00
Arisotura 4553da720c add setting for showing/hiding OSD 2019-06-12 03:32:25 +02:00
Arisotura ea5dc39e83 cheapass fix for texture positions, atleast effective at 1xIR 2019-06-12 02:55:38 +02:00
Arisotura a3fed77da3 somewhat better edge marking 2019-06-12 02:23:40 +02:00
Arisotura 711fda469e stop fast-forward hotkeys from getting lost every damn time 2019-06-12 01:39:12 +02:00
Arisotura 4abf0473c2 add pause/reset hotkeys 2019-06-12 01:12:49 +02:00
Arisotura 1cb8f3c8b2 rework input/hotkey code to suck less, implement the new features 2019-06-12 00:59:51 +02:00
Arisotura 82f4f4fdcb fix bugs, make it more responsive 2019-06-11 23:48:49 +02:00
Arisotura bfc12a038e add ability to map joystick axes, too
and add support for multiple hats
2019-06-11 23:41:48 +02:00
Arisotura 1ea25ac6f1 add ability to map keys with modifiers, only in config UI for now 2019-06-11 23:16:15 +02:00
Arisotura 4447e010d7 actually save the current joystick ID 2019-06-11 18:57:22 +02:00
Arisotura b9183b8818 begin work on multiple joystick support 2019-06-11 18:55:04 +02:00
Arisotura 543a40c7cb add some OSD messages. prepare shit. 2019-06-11 04:04:49 +02:00
Arisotura 3c70015da7 software renderer: fix rendering of line polygons. fixes #350 2019-06-11 03:10:32 +02:00
Arisotura 09cfdc6e76 pft 2019-06-10 18:24:38 +02:00
Arisotura fd28391160 fix ass-stupid bug in CP15 PU region setup 2019-06-10 15:29:40 +02:00
Arisotura d28035674a GPU2D: hardware renders sprites one scanline in advance.
fixes #375 (midframe OAM update)
2019-06-10 03:05:26 +02:00
Arisotura 9ab331c6dd fix more stupid shit. askzjkdsf 2019-06-09 20:44:35 +02:00
Arisotura c056dfe509 fix fog alpha 2019-06-09 19:53:28 +02:00
Arisotura 086354a420 miserable, feeble little attempt at edge marking 2019-06-09 19:32:02 +02:00
Arisotura 434a3007e2 fasterer BG/OBJ VRAM reads 2019-06-09 16:06:01 +02:00
Arisotura 00a5576492 fasterer IRQ check. clean up code. 2019-06-08 22:16:51 +02:00
Arisotura 8fc30d69c5 fix last bugs when changing video settings with no game loaded 2019-06-08 13:06:36 +02:00
Arisotura bc53ff35a9 this is the same thing, but, for the sake of consistency 2019-06-08 12:39:52 +02:00
Arisotura eaaf5ec93b also, don't hardcode the timer interval in the callback 2019-06-04 16:19:49 +02:00
Arisotura 86b4cbcb03 when closing an input config dialog, remove SDL timer if needed
fixes #429
2019-06-04 16:17:30 +02:00
Arisotura c8472a67c1 make capitalization consistent 2019-06-04 15:56:09 +02:00
Arisotura 97f4b5f70b
Merge branch 'master' into fast-forward-hotkey 2019-06-04 15:53:08 +02:00
Arisotura 3134c8fc66 add support for setting key mappings to none 2019-06-04 15:44:40 +02:00
Arisotura e3dc4e122a use OSD for some actual purposes 2019-06-03 17:01:53 +02:00
Arisotura 2b3ca2089f take the OSD shito somewhere 2019-06-03 16:45:55 +02:00
Arisotura 4a4415fc2e more work on OSD 2019-06-03 15:00:49 +02:00
Arisotura 43e3e53afc fix some shito 2019-06-02 21:45:36 +02:00
Arisotura 5487a4e71c fix bugs when changing 3D renderer with no game loaded 2019-06-02 15:22:37 +02:00
Arisotura 6de19645f8 fix potential crash when running the software renderer (oops) 2019-06-02 14:57:59 +02:00
Arisotura 3aa971403b lay base for OSD 2019-06-02 14:33:20 +02:00
Arisotura 78208a9728 OpenGL: fix cases of layers/sprites blending over the 3D layer 2019-06-01 03:39:35 +02:00
Arisotura 27d21e06df use regular slash instead of backslash in config file name. fixes #413 2019-06-01 02:54:38 +02:00
Arisotura 06e08b053f do binding of VS inputs and FS outputs before linking shader programs, as per OpenGL standard.
should fix the rendering issues with strict drivers (AMD, Intel).
2019-05-31 02:26:13 +02:00
StapleButter 6f5e45ef2c also, properly delete glarea framebuffers on exit 2019-05-30 23:16:56 +02:00
StapleButter b9529e8361 Linux: fix uiGLGetProcAddress() 2019-06-01 00:27:54 +02:00
Arisotura 5d5e8ceced BAHAHAHAHAHHAHHHHH-~*+ 2019-05-31 21:57:11 +02:00
Arisotura f6814e02c0 * add needed libui functions under Windows, even if they don't do a whole lot
* fix ass-stupid fog bug
2019-05-31 21:37:30 +02:00
StapleButter 65ccf2a717 blarg 2019-05-31 19:29:48 +02:00
StapleButter 1a3314f0bd GL: don't draw the screens when nothing is running 2019-05-31 12:25:16 +02:00
StapleButter 464b116916 fix the whole mutex shito
fixes potential crash when resizing window
2019-05-31 04:15:37 +02:00
StapleButter d8d7ba9251 fix potential crash when switching video output methods 2019-05-31 03:18:09 +02:00
StapleButter c49dec1acd try to fix fog consecutively to the Intel fix. still not perfect for whatever reason
also clean up more code
2019-05-31 03:00:53 +02:00
StapleButter 3ef00f8fa6 attempt at fixing THE FLICKERING without making everything shitty. also, clean up code 2019-05-31 02:21:41 +02:00
StapleButter 27d451d07a clean up code, attempt at shit 2019-05-31 01:46:47 +02:00
StapleButter ea669190aa fix crash when using -O3.
gcc will try to optimize the memfill with MMX opcodes, but those seem to crash if the memory isn't aligned to a 8-byte boundary.
2019-05-30 18:05:52 +02:00
StapleButter ce9d728fb6 fix cleanup of libui objects when closing melonDS
fixes to Cmake shito
attempt shit
2019-05-30 17:29:41 +02:00
StapleButter ee61b97ec9 OpenGL renderer: fix for Intel driver (doesn't like RGB8UI framebuffers) 2019-05-30 02:44:49 +02:00
StapleButter 891ab9fd3c Linux: start getting somewhere with the whole OpenGL shito 2019-05-28 19:48:59 +02:00
PoroCYon ebad773a38 apply tgsm's changes (see PR #411 ) 2019-05-26 00:50:27 +02:00
PoroCYon 38f61a24fc 'port' libui GL stuff to Linux
Only implemented the functions needed by melonDS, and only tested using
a very recent mesa+libglvnd+nouveau. Will most likely bork using
proprietary nvidia or old(er) drivers (see gl.c)
2019-05-26 00:38:24 +02:00
PoroCYon 31e0f15797 fix oudated CMake compile settings, add OpenGL dependency for Linux 2019-05-26 00:37:51 +02:00
StapleButter 99dbbb0b04 gfghfshdf 2019-05-25 22:23:43 +02:00
Arisotura dd14a3e88e for config dialogs that reflect changes instantly, make behavior of window close button consistent with that of Cancel button 2019-05-25 21:03:39 +02:00
Arisotura eb6fe823f8 close any opened dialogs when closing the main window 2019-05-25 20:58:32 +02:00
Arisotura af581513fb * remove old 'threaded 3D' setting from emu settings dialog
* remove 'antialiasing' for now
2019-05-25 20:51:26 +02:00
Arisotura 94f5ecb647 Merge branch 'blackmagic'
BAHAHAHHAHAHAHAAHAHAHAHHH

HARK HARK HARK HARK HA-*~
2019-05-25 20:42:27 +02:00
Arisotura 9ed1dda9ca fix possible crash 2019-05-25 19:52:56 +02:00
Arisotura 956c2c5d86 finalize the GL/software switch 2019-05-25 19:47:19 +02:00
Arisotura 70a3243714 simpler GPU-compositing. will make it easier to grab neighbor 2D/3D pixels individually for filtering. 2019-05-25 19:36:47 +02:00
Arisotura 8c93a45574 also support alpha-only fog 2019-05-25 13:45:00 +02:00
Arisotura 478ca019da implement fog correctly
also some base work for edgemarking
2019-05-25 13:43:06 +02:00
Arisotura 7cdeb7fa4e feeble, miserable little attempt at emulating fog 2019-05-25 04:28:00 +02:00
Arisotura 04f1809dd1 finish fixing shadows 2019-05-25 02:34:14 +02:00
Arisotura 182e123598 fix shadow bugs
bahaahah
2019-05-25 01:55:44 +02:00
Arisotura 8a63c76f4f of course
I'm a complete and absolute fucking idiot
2019-05-24 02:41:24 +02:00
Arisotura 9e2f47f4a0 fix more bugs 2019-05-24 02:35:25 +02:00
Arisotura 0bb3321262 getting somewhere?? 2019-05-24 02:29:16 +02:00
Arisotura 79ea104931 properly recreate window based on changes to either video output method or 3D renderer 2019-05-24 02:12:46 +02:00
Arisotura 667dee6754 more code botching
it's less shitty tho

but still has bugs
2019-05-24 02:04:41 +02:00
Arisotura e5236f0cde add API for getting/setting window size
bahahahaaa
2019-05-23 22:50:46 +02:00
Arisotura 3915b8cb4e botch the code 2019-05-23 22:41:21 +02:00
Arisotura db396e992b welp.
progress
2019-05-21 22:28:46 +02:00
Arisotura c835b24f07 modify libui GL support so that it will be compatible with GTK 2019-05-21 14:53:22 +02:00
Arisotura 139c2d24ec burp 2019-05-20 22:24:11 +02:00
Arisotura b493c24128 remove reference to GL version 4.3 from filenames and namespaces 2019-05-20 00:05:37 +02:00
Arisotura a4417b727a lower GL requirement of renderer itself to 3.1 2019-05-19 23:59:43 +02:00
Arisotura 1fb3968047 properly clean up GL resources 2019-05-19 23:06:42 +02:00
Arisotura 6dbb645ffa make shadows work without relying on black magic.
clean up the code some.
2019-05-19 22:08:30 +02:00
Arisotura 50cc38d781 botch more code 2019-05-19 19:47:23 +02:00
Arisotura cd8236303e begin botching the code
BAHAHAHAAAA
2019-05-19 19:37:13 +02:00
Arisotura 61c1ebe01c finally fix shadows, mostly 2019-05-18 02:34:14 +02:00
Arisotura 5448969ca1 'fix' shadows 2019-05-18 02:16:07 +02:00
Arisotura f5a7cb71fd also, do master brightness 2019-05-18 01:42:50 +02:00
Arisotura a752b1d7c2 woops 2019-05-18 01:32:31 +02:00
Arisotura f1a970ec30 actually finish display capture in hardware-accel mode 2019-05-18 01:21:46 +02:00
Arisotura de287825ee start work on display capture
also fix a bug in the compositing shader
2019-05-17 22:50:41 +02:00
Arisotura 26f997172b fix 3D doublebuffering 2019-05-17 19:09:41 +02:00
Arisotura 8bf4557175 make screen shaders work with OpenGL 3.1 2019-05-17 15:47:40 +02:00
Arisotura 72920bb763 fix 3D on bottom screen 2019-05-16 22:04:27 +02:00
Arisotura c1746f0c60 BAHAHAHHHH
HARK HARK HARK
2019-05-16 20:58:07 +02:00
Arisotura c81bcccadc BAHAHAHAHAHAHAHAA 2019-05-16 16:27:45 +02:00
Arisotura f2282e9e32 Arisotura is a fucking derp 2019-05-16 01:46:09 +02:00
Arisotura 4b874cc440 make GL renderer able to coexist with GL screen drawing 2019-05-16 01:08:53 +02:00
Arisotura f75106c61b don't hardcode screen sizes 2019-05-16 00:46:50 +02:00
Arisotura f2725791d8 preliminary, shitty, code for drawing the main window with OpenGL 2019-05-16 00:30:55 +02:00
Arisotura 256b8cb69c botch GL support. 2019-05-15 19:49:21 +02:00
Arisotura a89366cb5a begin butchering uiArea 2019-05-15 16:43:56 +02:00
Jon Pacheco f769d6e23f Ensure that 'Limit framerate' option is synced with the toggle hotkeys 2019-05-14 17:29:49 +01:00
Arisotura 4d427c9d2d BAHAHAHAHAHA 2019-05-14 17:45:16 +02:00
Arisotura 71ecb6a65b derping around 2019-05-14 15:10:58 +02:00
Rafael Caetano 3a9410b5d0 Firmware backup writing now uses OpenLocalFile 2019-05-13 23:05:50 +01:00
Arisotura 02b4919005 resolution switch somewhat functional 2019-05-12 17:43:39 +02:00
Arisotura f5ba35ca9f don't scale the screen gap 2019-05-12 16:47:34 +02:00
Arisotura 0a464c504d de-hardcode the GL renderer.
init framebuffer to black.
fix bugs.
2019-05-12 16:32:53 +02:00
Arisotura a32c5c99bb finish de-hardcoding it. also, code 4x variant (not that I guarantee it to be fast, but hey, it's here) 2019-05-12 15:58:12 +02:00
Arisotura 2a0bc4e700 make GPU2D somewhat more flexible. change LineScale to be log2. 2019-05-12 15:45:58 +02:00
Arisotura c88981b589 split framebuffer.
setup doublebuffering inside GPU.cpp.
avoid copying a whole framebuffer every frame. better performance at higher res.
2019-05-12 15:01:40 +02:00
Jon Pacheco 7d2ba09fd7 Add fast forward hotkeys 2019-05-12 11:41:46 +01:00
Arisotura 939a376389 add relevant config entries 2019-05-12 04:40:44 +02:00
Arisotura 39080be9b7 draft video settings dialog with the envisioned features 2019-05-11 16:12:57 +02:00
Arisotura b730bb8902 welp 2019-05-11 15:36:42 +02:00
Arisotura 53b2262917 calculate hi-res vertex positions. reduces shaking of polygons when rendering at a higher res. 2019-05-11 15:14:59 +02:00
Arisotura 5c9df6a4e5 attempt to take shadow support a bit further. 2019-05-11 15:01:54 +02:00
Arisotura 858c0eecb9 scale screen gap
also moar optimization...
2019-05-11 01:46:38 +02:00
Arisotura 44e1593e1f some optimization to the 2D pipeline 2019-05-10 22:22:17 +02:00
Arisotura 7a2504a3a4 fix derpy bug 2019-05-10 18:22:34 +02:00
Arisotura 492d2cfa69 implement texture blending/shading modes 2019-05-10 17:49:13 +02:00
Arisotura b74587a482 * optional path for chunked rendering (might be faster, but not always)
* fix bugs
2019-05-10 16:30:20 +02:00
Arisotura 13b0d13e23 move code around 2019-05-10 15:59:46 +02:00
Arisotura 92d67a17de (disabled) proof-of-concept antialiasing 2019-05-10 02:28:26 +02:00
Arisotura 8efc8623ad do not hardcode GL screen size all over the place 2019-05-10 01:52:05 +02:00
Arisotura f1d1a9b828 temp fix for color effects 2019-05-08 03:24:22 +02:00
Arisotura fb4f972cad hires hax. somewhat functional 2019-05-08 01:58:34 +02:00
Arisotura 587d432677 don't do OBJ window if it isn't enabled (oops) 2019-05-07 21:19:33 +02:00
Arisotura 99b07f9300
Merge pull request #398 from Nadia-h/master
Revamp CMake build system
2019-05-07 20:18:18 +02:00
Cameron Cawley f91eb18152 Fix all -Wwrite-strings warnings 2019-05-04 14:07:02 +01:00
Arisotura 83331bc7e5 lay base for hi-res rendering
IT'S A PILE OF HACKS
2019-05-03 19:28:15 +02:00
Arisotura dc68842db4 some work on shadows.
(still need to check opaquePolyID)
2019-05-03 18:55:45 +02:00
Arisotura 3d77087320 betterer transparency support 2019-05-02 13:44:54 +02:00
Arisotura 1e29e1242d beginning work on transparency support.
floats suck.
depth/stencil textures suck.
the world sucks.
burn it down.

r e v o l u t i o n

in the meantime getting this shit working wouldn't be too bad tho.
2019-05-02 04:16:48 +02:00
Arisotura 4a776f5d5b half-proper screen clear.
still missing bitmap mode, but atleast you can play NSMB without being in the dark.
2019-05-02 02:28:31 +02:00
Arisotura 8c2b4b4813 very evil shit 2019-05-01 23:35:48 +02:00
Nadia Holmquist Pedersen a462774ad3 Removed commented code 2019-05-01 06:18:36 +02:00
Nadia Holmquist Pedersen 9c9b2e79ce Remove unnecessary commonted-out lines 2019-05-01 05:20:06 +02:00
Nadia Holmquist Pedersen b31b5ed66a Revamp build system 2019-05-01 05:16:54 +02:00
Arisotura 88bc765455 don't lose half the zbuffer range 2019-04-29 19:13:20 +02:00
Arisotura ffa0ddd94c fix the alpha0 shit 2019-04-29 18:52:23 +02:00
Arisotura 41e7af8412 add remaining texture types 2019-04-29 18:47:32 +02:00
Arisotura e7be82430b texcoord wrap modes 2019-04-29 18:24:36 +02:00
Arisotura eb9cfd12d4 * add type5 textures
* fix texture distortion. I knew it was something stupid like that.
2019-04-29 13:05:15 +02:00
Arisotura 2a63ba40d7 support 256-color textures.
but ass-batteringly shitty.
2019-04-29 04:19:56 +02:00
Arisotura 85b3bdebd1 avoid potential division by zero in framerate counting when running uberfast. likely fixes #394 2019-04-27 20:53:58 +02:00
Arisotura 6febd79f83 finally get wbuffering covered. 2019-04-25 13:32:15 +02:00
Arisotura 448806fada weak little attempt at a zbuffer.
still bad for wbuffering because of course it is
2019-04-24 22:38:50 +02:00
Arisotura 15b7903170 now with perspective correction! 2019-04-10 23:55:34 +02:00
Arisotura 3888518575 here, have vertex colors 2019-04-10 23:47:58 +02:00
Arisotura 210a5b583e make it actually work without asploding half the geometry
also, fix colors
2019-04-10 23:25:01 +02:00
Arisotura ccc9608ad2 it renders shit!!
albeit in monochrome and with fucky clipping for some reason
2019-04-10 22:49:06 +02:00
Arisotura 32c75e20a6 here, have shader shit 2019-04-09 23:23:24 +02:00
Arisotura 00341bbae5 actually, seems faster to read it all at once?? 2019-04-01 04:58:21 +02:00
Arisotura 4bf75a8d8e glörg 2019-04-01 04:52:03 +02:00
Arisotura 1f13d9ce80 * move GL init to main thread
* fix potential bug causing the screen bitmap to be created twice
2019-04-01 04:50:48 +02:00
Arisotura 2d0d501d1f probs better this way
(ultimately RequestLine should be axed)
2019-04-01 04:22:03 +02:00
Arisotura 8bc4ca3fc8 fasterer framebuffer read 2019-04-01 04:20:43 +02:00
Arisotura f8751bd1fb first attempt at things
(also fix softrenderer reset)
2019-04-01 02:51:31 +02:00
Arisotura f1628b98de adding that file might be good, too 2019-03-31 21:54:42 +02:00
Arisotura b48fe5909b * add some GL base to libui (only for Windows for now)
* make the Codeblocks project a bit less braindead (don't repeat libraries for each build target)
2019-03-31 21:54:14 +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
PoroCYon fe29bfad44 fix stupid compilation issues on Linux 2019-03-30 16:51:32 +01:00
Arisotura 2a2e6a0c76 fix potential memleak under Windows 2019-03-30 12:33:10 +01:00
Arisotura 60a728283e * remove EmuDirectory from the core
* rework OpenLocalFile(), make the code more elegant, also fixes #352
2019-03-27 13:54:33 +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 6d7e80b677 move melon_fopen() to Platform.cpp
melon_fopen_local() will need fixoring
2019-03-27 04:23:03 +01:00
Arisotura 5d127f9e55 woops 2019-03-26 18:39:52 +01:00
Arisotura 633fb0f555 NDSCart: KEY1-gap delays don't apply when the WR bit is set. fixes #377 2019-03-26 18:34:01 +01:00
Arisotura 5941d57236 extra safety for the case of an empty platform config file 2019-03-26 15:11:32 +01:00