Commit Graph

942 Commits

Author SHA1 Message Date
Jeffrey Pfau a855f53355 Fix mosiac on edges of mode 0 regions 2014-07-24 02:02:44 -07:00
Jeffrey Pfau cbb522a702 Fix *mull, *mlal instructions in disassembler 2014-07-23 23:12:54 -07:00
Jeffrey Pfau 5477c891c5 Fix cmp and related opcodes in disassembler 2014-07-23 23:12:28 -07:00
Jeffrey Pfau 5eb729faf6 Remove unused HLE BIOS length constant 2014-07-23 23:05:17 -07:00
Jeffrey Pfau 6c9ee4c212 Modernize egl-main 2014-07-23 22:57:58 -07:00
Jeffrey Pfau 754d3f50ce Check if we have a subparser before trying to use it 2014-07-23 22:57:44 -07:00
Jeffrey Pfau ec4eb253e5 Unify swi state saving, keep I bit 2014-07-23 03:06:09 -07:00
Jeffrey Pfau f1a58c7254 Fix ObjAffineSet over multiple inputs 2014-07-23 00:54:11 -07:00
Jeffrey Pfau c7f7d0f752 Don't make empty savestate files when loading savestates 2014-07-23 00:19:50 -07:00
Jeffrey Pfau 94001b1133 Fix crashes when GBARR is not initialized 2014-07-23 00:09:14 -07:00
Jeffrey Pfau 3051143fa3 First pass at input mapping 2014-07-23 00:06:44 -07:00
Jeffrey Pfau f55d085162 Change log handler API 2014-07-22 22:34:08 -07:00
Jeffrey Pfau 2ce9806de5 Fix ability to make audio buffers as big as they initially were 2014-07-22 02:33:45 -07:00
Jeffrey Pfau d1eda4250d Thread pausing refining 2014-07-22 01:52:16 -07:00
Jeffrey Pfau 6e727db553 Set buffer size to 512 samples in the SDL/GL port 2014-07-21 00:29:38 -07:00
Jeffrey Pfau e527220398 Ability to resize internal sound buffers 2014-07-21 00:14:48 -07:00
Jeffrey Pfau 10fc916425 Revise circle buffer types 2014-07-20 23:56:12 -07:00
Jeffrey Pfau eabac4c413 Variable FPS target 2014-07-20 23:45:30 -07:00
Jeffrey Pfau b14f22191c Function for calculating audio rate for target FPS 2014-07-20 23:24:02 -07:00
Jeffrey Pfau c9f74b43af Make SDL port QUIT events thread-safe 2014-07-20 21:32:05 -07:00
Jeffrey Pfau d48dad27d1 Fix build against C++ 2014-07-20 16:37:54 -07:00
Jeffrey Pfau e77238e5ef Fix typos in savestate format documentation 2014-07-20 15:53:37 -07:00
Jeffrey Pfau 3915158c96 Update GPIO for serialization 2014-07-20 15:53:15 -07:00
Jeffrey Pfau 381fc94d73 Move file CRC32 code into crc32.h 2014-07-20 15:11:22 -07:00
Jeffrey Pfau 7a0f86ae99 Serialize ROM CRC32 for error checking 2014-07-20 15:10:59 -07:00
Jeffrey Pfau b4d6d11d19 Add ability to resume recording as soon as a movie ends 2014-07-20 03:14:55 -07:00
Jeffrey Pfau 74dae5033b Rewrite rr to be streaming-only 2014-07-20 02:50:43 -07:00
Jeffrey Pfau a95e2c06b7 Remove unused function 2014-07-20 01:40:05 -07:00
Jeffrey Pfau 16cf389986 Make writing to RO mapped memory perform COW 2014-07-20 01:36:18 -07:00
Jeffrey Pfau 5825c2ee5f Move vfs-zip into vfs folder 2014-07-19 22:15:39 -07:00
Jeffrey Pfau 7d4f1fb661 Fix loading too many states from a file 2014-07-19 17:54:29 -07:00
Jeffrey Pfau 7172e6428c Create concept of state directory 2014-07-19 17:48:37 -07:00
Jeffrey Pfau e8a78c9547 Very basic movie saving/loading 2014-07-19 17:38:25 -07:00
Jeffrey Pfau c6cd179101 Fix scanline rendering when parameters change mid-scanline 2014-07-19 15:59:27 -07:00
Jeffrey Pfau 79301a365f Fix perf build 2014-07-19 15:58:58 -07:00
Jeffrey Pfau 3202811e41 Be more rigorous when reseting 2014-07-19 14:34:24 -07:00
Jeffrey Pfau 6456a88669 Reset memory when reseting the board (fixes #94) 2014-07-19 04:13:25 -07:00
Jeffrey Pfau 823b97603a Properly account for LDR I cycles (fixes #90) 2014-07-19 00:39:51 -07:00
Jeffrey Pfau 14636f5b8a Beginning of rerecording code, ability to record/replay from a savegame 2014-07-19 00:09:18 -07:00
Jeffrey Pfau c50bd95258 Fix naming of savegames from files with no . 2014-07-18 00:53:08 -07:00
Jeffrey Pfau 5a0247ac78 Place save files in directories when loading in dirmode 2014-07-18 00:52:53 -07:00
Jeffrey Pfau a14ce5c815 Add some missing cleanup 2014-07-18 00:52:22 -07:00
Jeffrey Pfau c9ec91b75f Forcibly disable some currently unsupported zip operations 2014-07-18 00:52:07 -07:00
Jeffrey Pfau 2367abe67d Don't crash if no ROM is loaded 2014-07-17 02:55:13 -07:00
Jeffrey Pfau 74fcdf54e0 Fix reading more than a block but less than the rest of the file 2014-07-17 02:51:38 -07:00
Jeffrey Pfau 793a89d091 Fix seeking to end of file 2014-07-17 02:51:17 -07:00
Jeffrey Pfau d2272ba9ba Support reading from ZIPs 2014-07-17 02:45:17 -07:00
Jeffrey Pfau ee5c918ff2 Directory mode for loading the first ROM in a directory, still a bit buggy 2014-07-17 00:53:17 -07:00
Jeffrey Pfau 73425e80b5 Move VFile to vfs.h and add VDirs 2014-07-17 00:52:21 -07:00
Jeffrey Pfau 80c61379a0 Clean up GBAThread variables 2014-07-16 23:53:11 -07:00
Jeffrey Pfau e53135a7b9 Clean up command line args 2014-07-16 23:47:47 -07:00
Jeffrey Pfau 6519fad652 Fix some signatures 2014-07-16 03:02:16 -07:00
Jeffrey Pfau 42484bbcc3 Allow save file to be specified externally 2014-07-16 02:57:04 -07:00
Jeffrey Pfau 7bb5e29a98 Now that mapping is done through a different code path, we can properly allocate large memory chunks on Windows 2014-07-16 02:20:29 -07:00
Jeffrey Pfau 0584c19229 Remove declaration for unimplemented function 2014-07-16 02:09:19 -07:00
Jeffrey Pfau f1f55cea47 Use VFiles for all file operations 2014-07-16 02:08:54 -07:00
Jeffrey Pfau 377d8e60a7 VFiles for abstract file operations, used at first in patches 2014-07-16 01:31:10 -07:00
Jeffrey Pfau d8654f3b88 Use stdbool for readability 2014-07-16 01:02:34 -07:00
Jeffrey Pfau fce2fb9252 Move flags and masks into defines to avoid making enums with values that are too large 2014-07-15 23:38:44 -07:00
Jeffrey Pfau e89a705419 Revise macros for stricter C99 conformance 2014-07-15 23:30:55 -07:00
Jeffrey Pfau 6716b13621 Ability to reset emulator while running 2014-07-15 00:01:35 -07:00
Jeffrey Pfau 939c349533 Slightly more accurate waitstate emulation 2014-07-13 22:21:37 -07:00
Jeffrey Pfau 94438e141e Only assemble NEON code when NEON is enabled 2014-07-13 18:32:10 -07:00
Jeffrey Pfau 0b9d6e03f1 Support 5_6_5 in SDL/GL port 2014-07-13 18:31:28 -07:00
Jeffrey Pfau ca23c47aeb Add missing include 2014-07-13 05:47:16 -07:00
Jeffrey Pfau 5958d8c0da Fix missing value for divide precedence 2014-07-12 18:41:11 -07:00
Jeffrey Pfau 4638e4a017 Add parenthesis support 2014-07-12 17:58:03 -07:00
Jeffrey Pfau a58f8f8675 Support identifiers 2014-07-12 17:25:51 -07:00
Jeffrey Pfau b89d6216ac Free identifiers 2014-07-12 17:13:58 -07:00
Jeffrey Pfau ce1dd4416f Proper parser, without identifier support currently 2014-07-12 17:12:35 -07:00
Jeffrey Pfau f71edb1684 Parse expressions in a separate function 2014-07-12 14:50:09 -07:00
Jeffrey Pfau f74815988b Remove redundant includes 2014-07-12 04:43:41 -07:00
Jeffrey Pfau 5b7da978d1 Remove project name strings from the code 2014-07-12 04:29:12 -07:00
Jeffrey Pfau 8f151ec90f DebugVectors should inherit failure 2014-07-12 04:12:04 -07:00
Jeffrey Pfau 903f384e05 Operations on numbers in CLI debugger 2014-07-12 04:04:15 -07:00
Jeffrey Pfau 5b7a551ed8 Add disassemble CLI debugger command 2014-07-12 03:36:04 -07:00
Jeffrey Pfau aefa5f0ab8 Merge branch 'decoder'
Conflicts:
	src/debugger/cli-debugger.c
2014-07-12 00:40:40 -07:00
Jeffrey Pfau 3261dd482c Fix should-be-zero operands being listed 2014-07-12 00:39:05 -07:00
Jeffrey Pfau b41e11d4c1 Decode MSR and MRS 2014-07-12 00:29:00 -07:00
Jeffrey Pfau a2eec31632 Show s flag for ARM instructions 2014-07-12 00:13:11 -07:00
Jeffrey Pfau d245eb3f88 Remove leftover code 2014-07-11 23:52:17 -07:00
Jeffrey Pfau 027a6f129c Fix ordering of flags and condition 2014-07-11 23:31:46 -07:00
Jeffrey Pfau a09d8649ee Begin work on ARM disassembler 2014-07-11 03:50:29 -07:00
Jeffrey Pfau ba4874f8b7 Cleaning up writeback and add some TODOs 2014-07-11 03:19:02 -07:00
Jeffrey Pfau 874f23fc59 Add mnemonics and fourth operand for ARM 2014-07-11 01:28:02 -07:00
Jeffrey Pfau 2b0dccb243 Fold direction into memory format 2014-07-11 01:27:32 -07:00
Jeffrey Pfau 45c6299b3b Fix decoding Thumb TST 2014-07-11 01:26:57 -07:00
Jeffrey Pfau 2921ba8842 Split ARM emitters into own file 2014-07-10 23:21:28 -07:00
Jeffrey Pfau fde2107a6b Fix disassembler memory boundary conditions 2014-07-10 03:31:24 -07:00
Jeffrey Pfau 64cc5ada86 Merge Thumb mnemonics into ARM mnemonics in preparation for ARM decoder 2014-07-10 03:30:59 -07:00
Jeffrey Pfau a22c89fedb Remove notion of special register 2014-07-10 02:33:16 -07:00
Jeffrey Pfau 6c1476403e Reorder log levels so more important ones have lower numbers 2014-07-10 01:12:25 -07:00
Jeffrey Pfau b810e38bd7 Fix a compiler warning in SIO code 2014-07-10 01:05:28 -07:00
Jeffrey Pfau d56dec79e7 Fix function prototype for GBAThreadInterrupt 2014-07-10 01:03:02 -07:00
Jeffrey Pfau c2fc2dbac3 Remove unused variable 2014-07-10 01:02:13 -07:00
Jeffrey Pfau 55977796f3 Move UNUSED macro to common.h 2014-07-10 01:00:38 -07:00
Jeffrey Pfau 0a48d4cc2f Draw a polygon every frame, even when paused, to make sure screen is not stale (fixes #87) 2014-07-09 23:18:34 -07:00
Jeffrey Pfau 87913a4c33 Add missing return statement 2014-07-09 23:17:51 -07:00
Jeffrey Pfau 642cbf3429 Hopefully fix edge cases for windows for real this time (fixes #88) 2014-07-09 23:09:28 -07:00
Jeffrey Pfau b762ce41a0 Only take slow mosaic path when mosiac is actually in play 2014-07-09 23:01:03 -07:00
Jeffrey Pfau e6863a6cc5 Fix mosaic drawing of 256-color mirrored background tiles 2014-07-09 22:49:05 -07:00
Jeffrey Pfau c3136b914e Fix sampling order of sound channel 3 2014-07-09 03:53:23 -07:00
Jeffrey Pfau 3e827c24a8 Fix 8-bit IO writes on SOUND3CNT_X 2014-07-09 03:53:23 -07:00
Jeffrey Pfau 78bd884a05 Fix setting window sizes to 0xFFFF from actually making a window 2014-07-09 03:53:23 -07:00
Jeffrey Pfau 3ee3f7625f Link with SDL2_LIBDIR if necessary 2014-07-09 01:46:40 -07:00
Jeffrey Pfau f1b4e7039f Fix sprites whose tiles go out of bounds 2014-07-09 01:32:02 -07:00
Jeffrey Pfau 79cfc4fd0a Make GBAThreadInterrupt work properly with paused threads again 2014-07-09 00:36:04 -07:00
Jeffrey Pfau ecee71cfa1 Resizing of SDL2 windows 2014-07-09 00:03:05 -07:00
Jeffrey Pfau 548793e551 Remove audio processing loop now that there is an event processing loop 2014-07-08 22:00:53 -07:00
Jeffrey Pfau 83e16d56c0 Fix a case where deserializing the FIFO may not restore up to three bytes 2014-07-08 21:56:03 -07:00
Jeffrey Pfau a62a932282 Ensure interrupting the GBA thread actually gets to a safe point to read from the thread 2014-07-08 00:04:38 -07:00
Jeffrey Pfau 8c9790bb3b Add audio FIFOs to savestates 2014-07-08 00:02:39 -07:00
Jeffrey Pfau 6bf0e704d2 Allow for savestates to be loaded between BIOS versions so long as they aren't in BIOS code 2014-07-07 22:59:24 -07:00
Jeffrey Pfau ea656f188e Remove out-of-date TODO 2014-07-07 03:00:58 -07:00
Jeffrey Pfau a450b0470a UPS patch loading support 2014-07-07 01:54:40 -07:00
Jeffrey Pfau f420232bbf IPS patch loading support 2014-07-06 23:39:27 -07:00
Jeffrey Pfau a6c8089601 Add read watchpoints (fixes #69) 2014-07-05 22:30:20 -07:00
Jeffrey Pfau 28ba251cfb Fix some warnings 2014-07-05 16:29:31 -07:00
Jeffrey Pfau ced5220975 Out of bounds start coordinates are treated as 0 for windows (fixes #82) 2014-07-05 14:40:15 -07:00
Jeffrey Pfau 7142a0f820 Fix WININ priority trampling over the active windows (fixes #75) 2014-07-05 14:34:10 -07:00
Jeffrey Pfau ae12dd907c Reduce the code size of division by zero a bit 2014-07-05 13:55:36 -07:00
Jeffrey Pfau 2fd9ab1197 Emulate division by zero edge cases (fixes #80) 2014-07-05 05:19:58 -07:00
Jeffrey Pfau 26c33b18e1 Properly do bounds checking in CpuSet and CpuFastSet (fixes #81) 2014-07-05 03:52:07 -07:00
Jeffrey Pfau 34145543f2 Remove redundant checks that are in the BIOS code already 2014-07-05 01:03:04 -07:00
Jeffrey Pfau dea143829a Prevent lr from being trampled in the middle of long-running CpuSet 2014-07-05 01:01:29 -07:00
Jeffrey Pfau 107f91aac8 Fix typo in documentation 2014-07-05 00:13:54 -07:00
Jeffrey Pfau 678c5465ff Add (currently undocumented) command line flag for setting logging level 2014-07-04 18:43:07 -07:00
Jeffrey Pfau 80d1764e6c Save some registers we were overwriting in IntrWait 2014-07-04 18:41:13 -07:00
Jeffrey Pfau d6a28c8a6e Log SWIs in debug 2014-07-04 18:17:34 -07:00
Jeffrey Pfau 599537a41b Fix and optimize CpuSet and CpuFastSet a bit 2014-07-04 17:48:38 -07:00
Jeffrey Pfau fde6515a56 Implement CpuSet/CpuFastSet in assembly (fixes #31 and #76) 2014-07-03 03:51:53 -07:00
Jeffrey Pfau e5245b6cbb Reset timers when enabling them (fixes #78) 2014-07-02 00:48:20 -07:00
Jeffrey Pfau 2693f9d09b Implement high VRAM mirroring for writes 2014-07-01 00:26:57 -07:00
Jeffrey Pfau a7eced1324 Fix stub debugger entering 2014-04-26 18:25:45 -07:00
Jeffrey Pfau 12e5425b9b Use subparsers instead of stuffing everything into one parser 2014-04-26 16:05:09 -07:00
Jeffrey Pfau 6ca25e44aa Add some NEON resizing code 2014-04-26 03:31:53 -07:00
Jeffrey Pfau 6e32ade69e Clear alpha channel in fragment shader (fixes #51) 2014-04-25 23:48:51 -07:00
Jeffrey Pfau 084f0f037e Fix fullscreen initialization 2014-04-25 21:33:07 -07:00
Jeffrey Pfau 0386d41b40 Add option of not using GL 2014-04-25 03:34:21 -07:00
Jeffrey Pfau 7e90eb2631 Start porting sw-main to SDL2 2014-04-25 03:34:03 -07:00
Jeffrey Pfau 82f3a45888 Build fix in case no debuggers are being built 2014-04-23 21:50:26 -07:00
Jeffrey Pfau 64e8d3fb83 Fix GBDStub build on Windows 2014-04-23 21:42:08 -07:00
Jeffrey Pfau 16608a408c Bring sw-main into line 2014-04-23 02:09:27 -07:00
Jeffrey Pfau ffea820148 Remove some redundant flags 2014-04-23 02:09:06 -07:00
Jeffrey Pfau 232abab7f4 Add long-missing arm-algo.S 2014-04-23 02:05:50 -07:00
Jeffrey Pfau 53389684db Add more command line options and perf-main duration 2014-04-20 22:15:17 -07:00
Jeffrey Pfau 810c35c318 Disentagle graphics flags from global flags 2014-04-20 21:54:05 -07:00
Jeffrey Pfau 5b300bbcff Make command line arguments more dynamic 2014-04-20 21:41:21 -07:00
Jeffrey Pfau 7334b89833 Add more command line options + usage 2014-04-20 21:33:27 -07:00
Jeffrey Pfau 7c356ffd07 Move debugger creation off the stack 2014-04-20 04:19:03 -07:00