Commit Graph

2644 Commits

Author SHA1 Message Date
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 08fee36c20 Window resizing options 2014-07-22 03:26:16 -07:00
Jeffrey Pfau d020bf4f0a Add FPS target options 2014-07-22 03:14:28 -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 0717e4ab76 Use lambda syntax for audio buffer size slots 2014-07-22 02:33:01 -07:00
Jeffrey Pfau a7588f25bb Sync pause setting with the menu properly 2014-07-22 02:22:03 -07:00
Jeffrey Pfau 42041fa059 Fix frame advance 2014-07-22 02:11:41 -07:00
Jeffrey Pfau 04823fb06c Merge branch 'master' into qt 2014-07-22 01:53:34 -07:00
Jeffrey Pfau d1eda4250d Thread pausing refining 2014-07-22 01:52:16 -07:00
Jeffrey Pfau b0662fe766 Run audio pausing in the right thread 2014-07-22 01:13:27 -07:00
Jeffrey Pfau fe7deb0aab Only try to stop audio output if there is an audio output device 2014-07-22 00:44:43 -07:00
Jeffrey Pfau 8ff6d77869 Make shutdown disabled when a game is not running 2014-07-22 00:43:53 -07:00
Jeffrey Pfau 6403d531bd Add reset option and reshuffle menu items a bit 2014-07-22 00:40:42 -07:00
Jeffrey Pfau 71211bac46 Add sound buffer resizing menu options 2014-07-22 00:32:38 -07:00
Jeffrey Pfau 62f6471c0d Move AudioThread into AudioProcessor, run in its own thread 2014-07-22 00:10:38 -07:00
Jeffrey Pfau d5c0dffb29 Remove unused member in GameController 2014-07-21 23:08:31 -07:00
Jeffrey Pfau ae534aff74 Merge branch 'master' into qt 2014-07-21 22:51:26 -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 ad5cdb97a8 Fix memory leak 2014-07-20 22:07:08 -07:00
Jeffrey Pfau a57f911ecc Handle closing games a bit safer 2014-07-20 21:44:06 -07:00
Jeffrey Pfau c9f74b43af Make SDL port QUIT events thread-safe 2014-07-20 21:32:05 -07:00
Jeffrey Pfau a77f7f0be2 Cleanup merge issues 2014-07-20 21:28:25 -07:00
Jeffrey Pfau 489b932c52 Header include cleanup 2014-07-20 20:28:01 -07:00
Jeffrey Pfau 23679adc38 Fix build after GBAThread API changes 2014-07-20 16:38:27 -07:00
Jeffrey Pfau 4da65d0f2f Merge branch 'master' into qt 2014-07-20 16:38:00 -07:00
Jeffrey Pfau d48dad27d1 Fix build against C++ 2014-07-20 16:37:54 -07:00
Jeffrey Pfau f62ccde49d Merge branch 'master' into qt 2014-07-20 16:28:12 -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
Jeffrey Pfau 89ccb41b03 Start moving command line parsing into a separate file 2014-04-20 04:06:44 -07:00
Jeffrey Pfau e739e4000b Initialize halt 2014-04-20 01:05:29 -07:00
Jeffrey Pfau 9bf77f6653 Call ARMDeinit 2014-04-20 00:52:37 -07:00
Jeffrey Pfau 7a4ca414e5 Restructure watchpoints 2014-04-20 00:47:49 -07:00
Jeffrey Pfau 0f68dbc832 Redo component model/type punning 2014-04-20 00:19:55 -07:00
Jeffrey Pfau c0eb7c81f7 Remove ARMMemory and ARMBoard shims 2014-04-19 18:14:17 -07:00
Jeffrey Pfau 775e417cc6 Move halting functionality out of GBAHalt 2014-04-16 23:05:44 -07:00
Jeffrey Pfau b8ecabbaa9 Fix the build 2014-04-03 00:00:06 -07:00
Jeffrey Pfau ecb1939ff1 Move common headers to common.h, remove util and debugger from being first class include directories 2014-04-02 23:51:35 -07:00
Jeffrey Pfau 73d32e7cc7 Initialize some SIO variables properly 2014-04-02 23:16:37 -07:00
Jeffrey Pfau fec4040691 Load/store with immediate width corrections 2014-03-29 23:08:32 -07:00
Jeffrey Pfau fc132b4d93 Some instructions can write to pc directly 2014-03-29 23:08:32 -07:00
Jeffrey Pfau 01d4672f56 Reclassify thumb load/store multiple instructions 2014-03-29 23:08:32 -07:00
Jeffrey Pfau 764d9740ee Fix exporting of ARMDecodeThumb 2014-03-29 23:08:32 -07:00
Jeffrey Pfau c8a2f595d4 Start cycle counting 2014-03-29 23:08:32 -07:00
Jeffrey Pfau 9b2cd97505 Split out decoder files in preparation of ARM decoder 2014-03-29 23:08:31 -07:00
Jeffrey Pfau c8e1a9cd59 PC-relative disassembling 2014-03-29 23:08:31 -07:00
Jeffrey Pfau 39e1a85ffc Implement memory decoding 2014-03-29 23:06:07 -07:00
Jeffrey Pfau f32155526b More thumb decompilation 2014-03-29 23:06:07 -07:00
Jeffrey Pfau e60cbfaf84 Begin disassembler 2014-03-29 23:06:07 -07:00
Jeffrey Pfau 58545f112e Rename decompiler to decoder 2014-03-29 22:59:40 -07:00
Jeffrey Pfau 65c1d67dfd Descriptions of all opcodes 2014-03-29 22:59:40 -07:00
Jeffrey Pfau 5d19919df2 Extract emittor macros into headers 2014-03-29 22:59:39 -07:00
Jeffrey Pfau 66d1c0c55c Start fleshing out decompiler 2014-03-29 22:59:39 -07:00
Jeffrey Pfau 5b91d6d336 Small framework for decompiler 2014-03-29 22:59:39 -07:00
Jeffrey Pfau 4c1014685f Fix some valgrind errors 2014-03-29 22:58:58 -07:00
Jeffrey Pfau 2cd4bb3cff Initialize memory->eventDiff; fixes a valgrind warning 2014-03-29 22:58:58 -07:00
Jeffrey Pfau 2f39a57567 Get RPi EGL port building again 2014-03-29 22:58:58 -07:00
Jeffrey Pfau 8f241e2cfb Partially implement SOUNDBIAS 2014-03-29 22:53:56 -07:00
Jeffrey Pfau 683e90fa06 Remove special treatment for DISPSTAT 2014-03-29 22:53:52 -07:00
Jeffrey Pfau 8e51ffbf2c Add function for connecting to an already-open TCP port 2014-02-11 00:19:29 -08:00
Jeffrey Pfau c5d243fca2 Merge branch 'master' into qt 2014-02-10 23:59:12 -08:00
Jeffrey Pfau 4d8a00c180 Add thread-interrupt functions for having multiple threads that want to pause the GBA thread 2014-02-10 23:59:07 -08:00
Jeffrey Pfau e9c4412819 Put missing returns in SDL event handling 2014-02-10 23:13:39 -08:00
Jeffrey Pfau eb5580f719 Make DriverSet setting read in normal driver 2014-02-10 01:42:44 -08:00
Jeffrey Pfau 6451aeaefc Support normal mode drivers 2014-02-10 01:42:44 -08:00
Jeffrey Pfau 764b3fce10 Fix SIO loading of a driver that is for the current mode 2014-02-10 01:42:44 -08:00
Jeffrey Pfau 9c8e5fc222 SIO registers can now be read and written properly 2014-02-10 01:42:40 -08:00
Jeffrey Pfau 3422527d5a Read SIO registers from sio field 2014-02-10 01:41:20 -08:00
Jeffrey Pfau a2a3f317b5 Make driver loading signal failure, and fix case where setting a driver can cause a null pointer deref 2014-02-05 01:50:01 -08:00
Jeffrey Pfau 043d396320 Make socket shims inline 2014-02-05 01:22:34 -08:00
Jeffrey Pfau 924c6cf5a6 Clarify some function names and add more essenital SIO architecture 2014-02-05 01:03:34 -08:00
Jeffrey Pfau e5ee1aa07f Fill out SIO driver infrastructure 2014-02-04 01:28:16 -08:00
Jeffrey Pfau 70e1661342 Begin SIO 2014-02-04 00:39:55 -08:00
Jeffrey Pfau 20a5fa8476 Abstract out sockets 2014-02-03 23:01:26 -08:00
Jeffrey Pfau 23e0737649 Add missing GBA_KEY_NONE 2014-02-03 22:56:24 -08:00
Jeffrey Pfau 90760a30a3 Move key mapping into its own function 2014-02-03 22:28:49 -08:00
Jeffrey Pfau b691c93416 Add joypad support via SDL to Qt build 2014-02-03 22:28:28 -08:00
Jeffrey Pfau edc6de0467 Move key mapping into its own function 2014-02-03 22:27:58 -08:00
Jeffrey Pfau 2eb5a7a639 Partially implement SOUNDBIAS 2014-02-03 05:22:29 -08:00
Jeffrey Pfau 5a17030c65 Automatically break into the debugger if it was provided at launch time 2014-02-03 03:48:39 -08:00
Jeffrey Pfau 285b94b66a Add thread-safe function for telling if the GBA thread has started 2014-02-03 03:48:39 -08:00
Jeffrey Pfau 0f6523941c Null out threadContext->gba when shutting down 2014-02-03 03:48:39 -08:00
Jeffrey Pfau 7bee813846 Make GDB server able to be detached before GBA thread starts 2014-02-03 03:45:43 -08:00
Jeffrey Pfau 844cee07e8 Make sure GDB window is created in sync with GDB server state 2014-02-03 03:44:39 -08:00
Jeffrey Pfau 8c53fbeb4f Make GDB server able to be attached when the emulator starts 2014-02-03 03:42:29 -08:00
Jeffrey Pfau d16737ccf2 Automatically break into the debugger if it was provided at launch time 2014-02-03 03:42:02 -08:00
Jeffrey Pfau eb23269011 Add thread-safe function for telling if the GBA thread has started 2014-02-03 03:41:32 -08:00
Jeffrey Pfau 6d12ef81a5 Reuse an audio thread instead of shutting it down and making a new one 2014-02-03 01:13:52 -08:00
Jeffrey Pfau 186e0b1ee5 GBA thread can be shut down and opened again, cleanly 2014-02-03 00:44:19 -08:00
Jeffrey Pfau acc58fccc9 Null out threadContext->gba when shutting down 2014-02-03 00:42:20 -08:00
Jeffrey Pfau 9f3cf19c2d Add missing ellipses for menu items that open windows 2014-02-02 04:01:41 -08:00
Jeffrey Pfau 56c51181e1 Debugger can get detached during a callback, clean up appropriately 2014-02-02 03:59:03 -08:00
Jeffrey Pfau c621fb16d8 Add missing GDB classes 2014-02-02 03:58:40 -08:00
Jeffrey Pfau 412890d838 Debugger can get detached during a callback, clean up appropriately 2014-02-02 03:57:41 -08:00
Jeffrey Pfau 243cf2236b Ability to fullscreen the window in SDL2 2014-02-02 03:05:30 -08:00
Jeffrey Pfau 19142a2881 Use command key on OS X 2014-02-02 02:56:02 -08:00
Jeffrey Pfau ad38ae63ec Properly support 16-bit color 2014-02-02 02:47:50 -08:00
Jeffrey Pfau 02aec4fc65 Add SDL2 support 2014-02-02 02:39:34 -08:00
Jeffrey Pfau 3b7dbdecba Use C++11 override and nullptr 2014-02-02 01:42:36 -08:00
Jeffrey Pfau 020aec4e7b The debugger should not stop by default 2014-02-01 20:49:12 -08:00
Jeffrey Pfau 0c332d972b Add ability to detach debugger 2014-02-01 20:49:12 -08:00
Jeffrey Pfau 6341172813 The debugger should not stop by default 2014-02-01 20:48:25 -08:00
Jeffrey Pfau 1a7656fe36 Support creating the GDB stub in Qt 2014-02-01 20:47:44 -08:00
Jeffrey Pfau adcfc37db2 Add ability to detach debugger 2014-02-01 20:24:38 -08:00
Jeffrey Pfau 11e3bdc585 Merge branch 'master' into qt
Conflicts:
	CMakeLists.txt
	src/gba/gba.c
2014-02-01 17:37:18 -08:00
Jeffrey Pfau cc53b06cae Implement OBJWIN for OBJs 2014-02-01 16:58:55 -08:00
Jeffrey Pfau d09004cf01 Fix infinite listen errors 2014-02-01 16:27:48 -08:00
Jeffrey Pfau 69d188668d Fix debugging shim to work even if there is no GBA struct at the moment 2014-02-01 16:27:27 -08:00
Jeffrey Pfau b9f8955890 Add debugging logging interface 2014-02-01 16:26:48 -08:00
Jeffrey Pfau d97976d0df Add stepping and clean up 2014-02-01 15:50:12 -08:00
Jeffrey Pfau 325380989c Clean up unnecessary operation in GDB stub 2014-02-01 15:39:47 -08:00
Jeffrey Pfau 9435226c58 Breakpoint clearing in CLI debugger 2014-02-01 15:39:30 -08:00
Jeffrey Pfau c30807117f Breakpoint clearing 2014-02-01 15:37:15 -08:00
Jeffrey Pfau ea6b129509 LLDB compatibility 2014-02-01 15:21:17 -08:00
Jeffrey Pfau 1541e6e0b0 Expand packet size for lldb compat 2014-02-01 05:44:40 -08:00
Jeffrey Pfau cc9575228c Add support for qHostInfo command for lldb 2014-02-01 05:40:39 -08:00
Jeffrey Pfau e4375fd3d9 Stub out [qQvV].* commands 2014-02-01 05:23:56 -08:00
Jeffrey Pfau 1c60ada7de Add support for g, m and p GDB packets 2014-02-01 05:02:54 -08:00
Jeffrey Pfau 434099ac77 Parse GDB packet format 2014-02-01 04:10:22 -08:00
Jeffrey Pfau 244f197742 Begin GDB stub 2014-02-01 03:08:32 -08:00
Jeffrey Pfau 38aac38a0c Remove obsolete, dead code 2014-02-01 01:41:25 -08:00
Jeffrey Pfau 6616ca9111 Always enable the debugger framework 2014-02-01 01:14:41 -08:00
Jeffrey Pfau a214481b76 Fix typo in type 2014-02-01 01:02:26 -08:00
Jeffrey Pfau 5bbf7f2308 Separate out CLI debugger from debugging interface 2014-02-01 00:47:36 -08:00
Jeffrey Pfau 6822a0d770 Start separating out debugger logic 2014-02-01 00:27:53 -08:00
Jeffrey Pfau 6ad2b673b1 Omit sprites that are off-screen vertically from OAM calculations 2014-01-31 22:40:21 -08:00
Jeffrey Pfau bab92ba659 Squelch compiler warning in perf shutdown 2014-01-31 02:30:56 -08:00
Jeffrey Pfau 4255d10f08 Squelch compiler warning about type punning 2014-01-31 02:29:27 -08:00
Jeffrey Pfau d6a4fbd25a Squelch a compiler warning about an uninitialized variable 2014-01-31 02:27:17 -08:00
Jeffrey Pfau f8449482de Squelch warnings in software renderer 2014-01-31 02:17:41 -08:00
Jeffrey Pfau 2122ff1f43 Change override structure to not use multi-byte char literals 2014-01-31 02:17:41 -08:00
Jeffrey Pfau 4eb705ca91 Squelch warnings in software renderer 2014-01-31 02:15:43 -08:00
Jeffrey Pfau 307404adf7 Change override structure to not use multi-byte char literals 2014-01-31 02:05:01 -08:00
Jeffrey Pfau bce620e717 Split SDL build into its own CMake list 2014-01-31 00:13:33 -08:00
Jeffrey Pfau 80511fcb9f Fix perf main after adding BIOS loading 2014-01-31 00:11:55 -08:00
Jeffrey Pfau 9022deed9e Split SDL build into its own CMake list 2014-01-31 00:11:19 -08:00
Jeffrey Pfau 22ef0977dc Fix perf main after adding BIOS loading 2014-01-31 00:10:56 -08:00
Jeffrey Pfau 2ee3d17d33 Put OpenGL include explicitly in Qt CMake file 2014-01-31 00:06:37 -08:00
Jeffrey Pfau 95cf2909c1 Unblock on audio when closing thread 2014-01-30 04:05:53 -08:00
Jeffrey Pfau 8e3d104625 Qt audio thread should mark itself as exiting 2014-01-30 04:05:39 -08:00
Jeffrey Pfau e27c10ab78 Unblock on audio when closing thread 2014-01-30 04:03:54 -08:00
Jeffrey Pfau 6834401e67 Close process cleanly 2014-01-30 04:00:52 -08:00
Jeffrey Pfau 6407ad3adc Video drawing in separate thread 2014-01-30 04:00:30 -08:00
Jeffrey Pfau 2f98f542e5 Add frame advance 2014-01-29 23:58:57 -08:00
Jeffrey Pfau 1eeeb36015 Add emulation menu with Pause option 2014-01-29 23:39:24 -08:00
Jeffrey Pfau 5abd1572dc Use an initializer for GBAThread in Qt 2014-01-29 23:39:09 -08:00
Jeffrey Pfau a076e88bb5 Ditch uic 2014-01-29 23:14:23 -08:00
Jeffrey Pfau 3d339b1327 Key input 2014-01-29 23:14:23 -08:00
Jeffrey Pfau 98c9121ac2 Move audio initialization into thread 2014-01-29 23:14:23 -08:00
Jeffrey Pfau 0ca3afa3e6 Run audio on separate thread 2014-01-29 23:14:23 -08:00
Jeffrey Pfau baeaf8729f Audio rendering in Qt 2014-01-29 23:14:23 -08:00
Jeffrey Pfau 8a82144ceb Ensure the GBA thread exits when destroying the game controller 2014-01-29 23:14:23 -08:00
Jeffrey Pfau 4659635fb5 Start Qt frontend 2014-01-29 23:14:23 -08:00
Jeffrey Pfau f0481d9413 Enable piping through BIOS 2014-01-29 23:13:44 -08:00
Jeffrey Pfau 79d4011650 Initialize OAM 2014-01-29 23:02:12 -08:00
Jeffrey Pfau 13d3146d0b Add LOG_FATAL 2014-01-29 22:49:34 -08:00
Jeffrey Pfau 70afe23fe4 Add log handling 2014-01-29 22:49:24 -08:00
Jeffrey Pfau 9d351d4a58 SDL audio should use now centralized audio functions 2014-01-29 22:49:09 -08:00
Jeffrey Pfau 5fde0d8c35 GBAAudioResampleNN returns how many (destination) samples were read 2014-01-29 22:49:09 -08:00
Jeffrey Pfau a79a592c1e Move audio resampling out of SDL code 2014-01-29 22:48:38 -08:00
Jeffrey Pfau 2e2ca19220 Add GBAThreadEnd function for manually shutting down the GBA thread 2014-01-29 22:48:38 -08:00
Jeffrey Pfau c8b04a2ca5 Ensure rewind buffer is null if we are not enabling rewinding 2014-01-29 22:48:38 -08:00
Jeffrey Pfau 48a3522fbc Move inline struct definitions out of place for C++ compatibility 2014-01-29 22:48:19 -08:00
Jeffrey Pfau a72c77a3df Update DMA timings, and higher priority DMAs always take precedence, regardless of timing 2014-01-28 21:56:14 -08:00
Jeffrey Pfau 8e5b806cdd Have board re-read CPSR when it is modified by MSR 2014-01-27 00:21:14 -08:00
Jeffrey Pfau ef66e4a8c7 Only unpause from state operations when we paused manually 2014-01-26 23:17:17 -08:00
Jeffrey Pfau c3a5fb497a Fix rewind buffer sizing itself wrong 2014-01-26 12:47:47 -08:00
Jeffrey Pfau 705b6e9b13 Simple rewind buffer 2014-01-26 02:50:28 -08:00
Jeffrey Pfau b1a648e46e Don't sync on audio and video at the same time--this can cause audio skipping 2014-01-25 18:08:33 -08:00
Jeffrey Pfau 9c2c93220b Implement most of audio serialization 2014-01-25 18:01:31 -08:00
Jeffrey Pfau 668c4f68b7 Fix OAM deserialization 2014-01-25 15:06:28 -08:00
Jeffrey Pfau 941c629f8b Serialize timers and DMA state 2014-01-25 15:02:55 -08:00
Jeffrey Pfau 408d39a297 Move mode 0 into macro-land so that much of the logic can be inlined 2014-01-25 14:47:21 -08:00
Jeffrey Pfau 0e379fed41 Fix audio buffer reading in SDL audio 2014-01-23 20:59:15 -08:00
Jeffrey Pfau 709269ee5c Fix initial DMA count 2014-01-23 20:59:15 -08:00
Jeffrey Pfau 968dbe55db Properly sync to frame only when not in turbo 2014-01-22 03:25:09 -08:00
Jeffrey Pfau 1e0f400091 Precompute some parameters in mode 0 2014-01-22 01:39:48 -08:00
Jeffrey Pfau 7132c873e3 Make viewport size not-hardcoded 2014-01-21 23:51:52 -08:00
Jeffrey Pfau a8921116dc Preprocess OBJ heights 2014-01-21 23:49:10 -08:00
Jeffrey Pfau 04c3b61d1c Basic OAM dirtying 2014-01-21 23:41:41 -08:00
Jeffrey Pfau 2553b96e9b Skip table lookup in ARMStep if not needed 2014-01-21 23:15:51 -08:00
Jeffrey Pfau f08e466fce Partially unroll video clearing loop 2014-01-21 22:37:08 -08:00
Jeffrey Pfau 52808da265 Inline CPU stepping 2014-01-21 22:36:40 -08:00
Jeffrey Pfau f8de62ba71 Null out frameCallback on perf-main 2014-01-21 22:36:40 -08:00
Jeffrey Pfau e432c66249 Fix some uninitialized values 2014-01-21 22:36:40 -08:00
Jeffrey Pfau 86bc662d9f Support proper DMA timings and priority 2014-01-21 21:07:15 -08:00
Jeffrey Pfau 3c100a5e31 Prevent bank switching when reloading CPU state 2014-01-20 23:42:07 -08:00
Jeffrey Pfau 98c8b42b0f Slow down audio slightly to match target FPS 2014-01-20 20:02:44 -08:00
Jeffrey Pfau dccde662c6 Minor cleanup 2014-01-20 18:01:49 -08:00
Jeffrey Pfau 728f6481d6 Abort in invalid memory instead of SEGVing 2014-01-20 17:46:17 -08:00
Jeffrey Pfau aa99196700 Smarter I/O serialization 2014-01-20 17:42:30 -08:00
Jeffrey Pfau 872c3ceba3 Savestate game checks 2014-01-20 17:18:12 -08:00
Jeffrey Pfau 26c1fbd48f Add frame advance 2014-01-20 16:39:46 -08:00
Jeffrey Pfau e7d4f3ae8a Fix MSR with immediate 2014-01-20 15:40:56 -08:00
Jeffrey Pfau 12f4ff6cbb Fix ARM_ROR 2014-01-20 15:40:44 -08:00
Jeffrey Pfau 2db6d27496 Implement SWP, SWPB 2014-01-20 15:19:52 -08:00
Jeffrey Pfau fede211874 Remove checks for ARM writeback operations that fail on real hardware 2014-01-20 15:10:41 -08:00
Jeffrey Pfau 35a5e83465 Unified DISPSTAT representation 2014-01-20 14:18:24 -08:00
Jeffrey Pfau 5a1a04a353 Add basic IO and video serialization 2014-01-20 03:05:54 -08:00
Jeffrey Pfau 9f28b1ec73 Add missing version magic 2014-01-20 03:05:31 -08:00
Jeffrey Pfau a5d8be30d8 Don't block any signals on the run thread 2014-01-20 02:33:40 -08:00
Jeffrey Pfau 1f8c1bcdfa Fix signal handling for debugger 2014-01-19 23:42:34 -08:00
Jeffrey Pfau 4e98546cd6 Add missing header guard 2014-01-19 03:38:18 -08:00
Jeffrey Pfau daf12994db Start savestates 2014-01-19 01:59:35 -08:00
Jeffrey Pfau f2b031467f Fix non-debugger build 2014-01-19 01:24:29 -08:00
Jeffrey Pfau 7b682dd7c5 Break into debugger with F11 2014-01-19 00:37:53 -08:00
Jeffrey Pfau fbf8edf19b Create savestate format 2014-01-19 00:32:49 -08:00
Jeffrey Pfau a969d70de3 Handle illegal and stub opcodes separately 2014-01-18 00:39:51 -08:00
Jeffrey Pfau ce4d0b5203 Checksum BIOS 2014-01-18 00:17:58 -08:00
Jeffrey Pfau 94cc48faf1 Account for floating point error in resampling 2014-01-16 02:12:35 -08:00
Jeffrey Pfau 4e88cc86d9 Have circle buffer work when memory is misaligned 2014-01-16 01:56:17 -08:00
Jeffrey Pfau 39025dedff Ensure that video buffers are flushed to the GPU before unlocking the mutex 2014-01-16 01:05:32 -08:00
Jeffrey Pfau 48e89fb5eb Fix buffer size in SDL audio 2014-01-16 00:27:15 -08:00
Jeffrey Pfau 5758964617 Unlock mutex before swapping buffers 2014-01-16 00:26:59 -08:00
Jeffrey Pfau 3837213f94 Support Win32 threads on Vista and higher 2014-01-15 23:46:47 -08:00
Jeffrey Pfau 2b558a5a65 Rearchitect audio copying to make it cleaner and more atomic 2014-01-15 03:43:56 -08:00
Jeffrey Pfau b8167f55b1 Create Windows and POSIX platform directories 2014-01-15 01:28:30 -08:00
Jeffrey Pfau 270c1a35d7 Fix mappedMemoryFree on *nix 2014-01-15 00:34:45 -08:00
Jeffrey Pfau dd1f1bc79e Initial support for Windows 2014-01-15 00:32:54 -08:00
Jeffrey Pfau 003db6019c Fix _mix for 16-bit color 2014-01-15 00:32:53 -08:00
Jeffrey Pfau d53b1c784f Mirror SRAM across 0x0F000000 2013-11-23 16:22:26 -08:00
Jeffrey Pfau bc03872ab5 Add FireRed/LeafGreen to the override list 2013-11-18 00:34:54 -08:00
Jeffrey Pfau e6eea94626 Revert "Move halting code out from below the ARM emulator"
This reverts commit 3b74b61862.
2013-11-14 23:17:14 -08:00
Jeffrey Pfau 0bc5c4a69e Fix color blending in 16-bit 5-5-5 mode 2013-11-14 23:09:13 -08:00
Jeffrey Pfau 55c6103116 Remove "finalized" flag in favor of stricter sorting 2013-11-14 00:33:34 -08:00
Jeffrey Pfau a2a306bb03 Significantly optimize 16-bit color mixing 2013-11-14 00:19:18 -08:00
Jeffrey Pfau 620adbd577 Remove extra free in SDL code 2013-11-11 19:40:37 -08:00
Jeffrey Pfau f8d5842240 Implement mosaic for mode 0 with 256-color tiles 2013-11-10 23:09:50 -08:00
Jeffrey Pfau c2658ce7a1 Initialize mosaic to 0 2013-11-10 22:53:12 -08:00
Jeffrey Pfau 7d526e97f4 Support narrow windows 2013-11-10 22:43:57 -08:00
Jeffrey Pfau 53dd260b3e Fast 32-to-16-bit memory conversion routine on ARM 2013-11-09 13:30:25 -08:00
Jeffrey Pfau 95b6cc9b00 Initialize halted 2013-11-09 13:29:08 -08:00
Jeffrey Pfau f43c82e79e Preprocess instead of post-process 5-6-5 color 2013-11-07 02:57:22 -08:00
Jeffrey Pfau f09e44062f Use gettimeofday for perf-main instead of clock_gettime 2013-11-06 22:20:29 -08:00
Jeffrey Pfau 2a683aaf99 Preselect palettes for sprites 2013-11-06 00:00:42 -08:00
Jeffrey Pfau fd6e9cb311 Use unsigned instead of uint16_t in sprite drawing 2013-11-05 23:25:44 -08:00
Jeffrey Pfau e3dac089e7 Small refactor of _composite 2013-11-05 21:57:24 -08:00
Jeffrey Pfau 818ce96d0d Fix mixing colors on 16-bit 2013-11-05 04:13:49 -08:00
Jeffrey Pfau 9253eeba23 Optimize range check in mode 2 rendering 2013-11-05 01:49:29 -08:00
Jeffrey Pfau 53515b41cd Fix warnings in CircleBuffer 2013-11-05 01:20:46 -08:00
Jeffrey Pfau 2c826e208c Optimize palette access 2013-11-05 00:19:42 -08:00
Jeffrey Pfau 7d688ceb5a Use unsigned instead of color_t where size is irrelevant 2013-11-04 21:47:44 -08:00
Jeffrey Pfau 3005c6c9fb Add per-second perf updating 2013-11-04 21:07:41 -08:00
Jeffrey Pfau 3b74b61862 Move halting code out from below the ARM emulator 2013-11-03 23:26:10 -08:00
Jeffrey Pfau 66ee98513f Pass pointers instead of offsets to composite 2013-11-03 01:00:56 -07:00
Jeffrey Pfau 32e0591fd0 Early finalization if possible 2013-11-02 22:36:07 -07:00
Jeffrey Pfau 53a52d8cf8 Call setActiveRegion with the right address 2013-11-02 03:56:13 -07:00
Jeffrey Pfau e0eefa24da Hack to guess when blending should be disabled 2013-11-01 23:50:13 -07:00
Jeffrey Pfau a87d30ed9f Fix channel 1 - 4 volume 2013-10-29 21:12:26 -07:00
Jeffrey Pfau 9fd181dba9 Fix potential issues with sound playing when they shouldn't, or with the wrong volume 2013-10-29 02:19:58 -07:00
Jeffrey Pfau 8902635e3a Fix bugs in OBJ mosaic 2013-10-27 21:58:37 -07:00
Jeffrey Pfau 09888a8852 Add performance-monitoring main thread 2013-10-27 05:16:07 -07:00
Jeffrey Pfau f5a3fd7c7f Rearrange _composite to optimize for common cases first 2013-10-27 04:51:14 -07:00
Jeffrey Pfau 6e40c7ec29 Replace bit-packed map data with flags 2013-10-27 04:51:09 -07:00
Jeffrey Pfau 7cb183a8be Only update active region if necessary 2013-10-27 03:44:38 -07:00
Jeffrey Pfau 775f9db546 Begin OBJ mosaic 2013-10-27 03:12:55 -07:00
Jeffrey Pfau 3b0ee473d3 Refactor sprite code in preparation of implementing OBJ mosaic 2013-10-27 02:39:35 -07:00
Jeffrey Pfau 72ef1643c7 Rotate 16-bit without using AND 2013-10-26 16:40:31 -07:00
Jeffrey Pfau 0155d9c028 Remove SPRITE_DRAW_PIXEL_*_VARIANT 2013-10-26 14:56:35 -07:00
Jeffrey Pfau ffef3d2486 Preemptively mark the envelope as dead in some cases 2013-10-26 04:23:08 -07:00
Jeffrey Pfau 70365782de Reorganize audio code so as to only update channels when audible 2013-10-26 04:08:18 -07:00
Jeffrey Pfau cd448324c5 Fixed the first load from SRAM not returning a value 2013-10-26 03:04:21 -07:00
Jeffrey Pfau 9c922862e8 Fix mode 3 in 16-bit color 2013-10-26 02:39:45 -07:00
Jeffrey Pfau 7f17be5ead Support WIN0/1 in modes 2 - 5 2013-10-26 02:33:29 -07:00
Jeffrey Pfau 6376a1ff7f Support OBJWIN in mode 4 2013-10-26 02:26:08 -07:00
Jeffrey Pfau 38116f0ead Rearrange calculation to shave off some more time 2013-10-26 01:43:06 -07:00
Jeffrey Pfau 71b5473563 Fix white on 5-6-5 color 2013-10-26 01:32:27 -07:00
Jeffrey Pfau 915b04dded Add support for PowerPC to the memory and CPU interfaces 2013-10-26 01:53:13 -04:00
Jeffrey Pfau 07115ca655 Ensure thread-local storage is created before it is needed 2013-10-25 03:15:31 -07:00
Jeffrey Pfau d5291eb1b6 Remove unnecessary sprite post-processing passes 2013-10-25 00:27:42 -07:00
Jeffrey Pfau c12eca835f Don't busy-wait if the emulator is paused 2013-10-24 01:09:01 -07:00
Jeffrey Pfau 17ccb35c33 Small, trivial optimizations in GBAVideoSoftwareRendererDrawScanline 2013-10-24 00:54:51 -07:00
Jeffrey Pfau 6eafbc6331 Tear out counter-productive optimization 2013-10-24 00:21:59 -07:00
Jeffrey Pfau 4b9e9f84be Start implementing mosaic with a half-baked mode 0 implementation 2013-10-23 01:17:53 -07:00
Jeffrey Pfau 9358cbd690 Initialize rumble callback to null 2013-10-22 00:26:09 -07:00
Jeffrey Pfau 709434ce9f Add Drill Dozer to the override list 2013-10-22 00:18:56 -07:00
Jeffrey Pfau e74b0125a7 Expose rumble 2013-10-21 21:50:29 -07:00
Jeffrey Pfau 2fde9738be Add more overrides 2013-10-21 21:42:28 -07:00
Jeffrey Pfau 0458184a5e Implement gyro 2013-10-21 02:54:52 -07:00
Jeffrey Pfau c77ed8c11e Only reset save type manually for flash 2013-10-21 01:28:41 -07:00
Jeffrey Pfau fcaa0eb066 Implement RTC 2013-10-20 21:39:47 -07:00
Jeffrey Pfau 7e5eada69b Mark more registers as safe to read 2013-10-20 18:14:04 -07:00
Jeffrey Pfau ddc1034d42 Start GPIO 2013-10-20 18:08:18 -07:00
Jeffrey Pfau 228b6aaa01 Remove obsolete errno interface 2013-10-20 16:48:29 -07:00
Jeffrey Pfau 4429435071 Implement sound length 2013-10-20 16:33:37 -07:00
Jeffrey Pfau d6e466dda1 Fix pitch of channel 3 2013-10-20 16:04:22 -07:00
Jeffrey Pfau 76266a4ee7 Move mode 0 loops out of macros 2013-10-20 12:36:57 -07:00
Jeffrey Pfau 76f02be757 Ability to disable sound 2013-10-20 02:18:09 -07:00
Jeffrey Pfau ca80e5f32b Add l/r channel scaling 2013-10-20 02:10:54 -07:00
Jeffrey Pfau cc8eeb4353 Start audio channel 3 2013-10-19 03:04:45 -07:00
Jeffrey Pfau cfb0115c0e Commit unreadable sound memory for the sake of bitewise assignment 2013-10-19 00:49:20 -07:00
Jeffrey Pfau 4a0a462673 Clean up channel 1 2013-10-19 00:48:57 -07:00
Jeffrey Pfau 003a537dc7 Implement most of channels 1 and 2 2013-10-18 23:12:14 -07:00
Jeffrey Pfau 79d483d002 Fix audio loudness issues 2013-10-18 19:44:55 -07:00
Jeffrey Pfau 04f99bd358 Prescale audio 2013-10-18 09:41:13 -07:00
Jeffrey Pfau 565ee43bb2 Fix video cycle timing to match audio timing fix 2013-10-18 09:41:01 -07:00
Jeffrey Pfau 093c86c943 Add channel 4 envelope, fix audio timing 2013-10-18 09:33:07 -07:00
Jeffrey Pfau a55b4dc87f Fix valgrind-found uninitialized values 2013-10-18 08:42:15 -07:00
Jeffrey Pfau 3acabb01c8 Conglomerate save data initialization to ensure the struct is always initialized 2013-10-18 08:36:05 -07:00
Jeffrey Pfau d99bf7fdff Rename GBAAudioWave to GBAAudioEnvelope, add fields for internal state 2013-10-18 08:10:10 -07:00
Jeffrey Pfau 7393351e27 Start implementing channel 4 2013-10-18 01:21:44 -07:00
Jeffrey Pfau eac9dfb325 Start filling in audio framework 2013-10-18 01:21:22 -07:00
Jeffrey Pfau ea41ef7ae6 Fix main thread stalling when starting a game 2013-10-17 23:10:16 -07:00
Jeffrey Pfau 62d941a979 Plumb through filename for checking overrides 2013-10-17 01:07:08 -07:00
Jeffrey Pfau 451c16f4cb Fix overwriting DISPSTAT with fixed values for the lower bits 2013-10-16 22:23:32 -07:00
Jeffrey Pfau 3edb2da58d Make platform directory for ports 2013-10-16 01:35:49 -07:00
Jeffrey Pfau a1fb90635f Functions for explicitly pausing and unpausing 2013-10-16 00:52:52 -07:00
Jeffrey Pfau a107243c7a Support pausing 2013-10-16 00:46:09 -07:00
Jeffrey Pfau 8e43ffed90 Adjust scaling/rotation state for backgrounds regardless of if they were actually drawn 2013-10-15 22:58:47 -07:00
Jeffrey Pfau f4a1e994d6 Mark BG*CNT registers as safe to read 2013-10-15 21:55:28 -07:00
Jeffrey Pfau 0120ea93a5 Sprites shouldn't be blended if the current window has blending disabled 2013-10-15 21:44:47 -07:00
Jeffrey Pfau ce33adf5e4 Don't wait on frame swap when we aren't doing frame synchronization in the first place 2013-10-15 02:34:37 -07:00
Jeffrey Pfau 1b5dd352af Sprites can only be color variants when they aren't forced semitransparent 2013-10-15 02:09:23 -07:00
Jeffrey Pfau 1b54f50daa Allow sprites to be ordered by priority in addition to OAM order 2013-10-15 01:45:49 -07:00
Jeffrey Pfau ee344f0dca Optimize and fix IntrWait, make sure that SVC doesn't trample its input register r0 2013-10-15 00:50:07 -07:00
Jeffrey Pfau f90b01b95d Fix setting privilege mode when entering SVC 2013-10-14 22:32:52 -07:00
Jeffrey Pfau 9430040cb3 Check for some invalid memory regions before performing BIOS decompression routines 2013-10-13 20:12:30 -07:00
Jeffrey Pfau 67007ee002 Fix 8-bit VRAM writes 2013-10-13 15:23:39 -07:00
Jeffrey Pfau ee44e2ac89 Add Super Mario Bros. Advance 4 to the override list 2013-10-13 15:06:32 -07:00
Jeffrey Pfau 187687403c Fix EEPROM initialization 2013-10-13 12:14:32 -07:00
Jeffrey Pfau a20117ec14 Fix Huffman destinations 2013-10-13 12:14:16 -07:00
Jeffrey Pfau 9d08997fdc Fix Huffman with tree sizes >127 2013-10-13 03:25:46 -07:00
Jeffrey Pfau 3ca0a97ca1 Prepopulate RCNT 2013-10-12 16:37:10 -07:00
Jeffrey Pfau d8778cf516 Implement Huffman 2013-10-12 13:32:23 -07:00
Jeffrey Pfau 973abb7b94 Uncomment audio initialization line 2013-10-12 02:29:24 -07:00
Jeffrey Pfau 51ec1c1099 Bring SDL main to parity with GL main 2013-10-12 02:13:26 -07:00
Jeffrey Pfau cf298474bc Use 5_6_5 with SDL 2013-10-12 02:11:57 -07:00
Jeffrey Pfau 25cc40f3e1 Bring Raspberry Pi main to parity with GL main 2013-10-12 01:18:34 -07:00
Jeffrey Pfau 290b64b171 Compile-time flag for disabling debugger 2013-10-12 00:34:59 -07:00
Jeffrey Pfau b3dc065144 Read DISPCNT, fix video register writing 2013-10-11 22:04:41 -07:00
Jeffrey Pfau de39f23a1b Add ROM override checking, seed with BPEE 2013-10-11 22:03:27 -07:00
Jeffrey Pfau 58611facf1 Fix OBJWIN blending modifications on BG modes 0 - 2 2013-10-11 00:43:01 -07:00
Jeffrey Pfau cff77a3a81 Remove extraneous macros by adding a palette variable 2013-10-10 23:33:22 -07:00
Jeffrey Pfau e789b324dc Refactor BREAK_WINDOW into _breakWindow, fix bug cleaning up extra windows 2013-10-10 01:40:49 -07:00
Jeffrey Pfau 2ef64ede02 Basic tab-completion 2013-10-10 01:05:25 -07:00
Jeffrey Pfau 01d8569262 Remove reliance on linenoise 2013-10-10 00:29:41 -07:00
Jeffrey Pfau c19d1117f1 Add timings to CpuSet and CpuFastSet 2013-10-09 01:57:53 -07:00
Jeffrey Pfau 09a0f95ed4 Actually use GBATestIRQ 2013-10-09 01:56:59 -07:00
Jeffrey Pfau 6906df95e2 VCOUNT is not properly reset on wrap 2013-10-09 01:09:09 -07:00
Jeffrey Pfau c3a7d87214 Add missing variable 2013-10-09 00:44:44 -07:00
Jeffrey Pfau 9698531702 Clean up thread starting, stopping and sound 2013-10-09 00:44:31 -07:00
Jeffrey Pfau 2f9bcf63b7 Clean up audio sync code 2013-10-08 22:36:55 -07:00
Jeffrey Pfau 84ad94b85e Support loading BIOS 2013-10-08 22:36:19 -07:00
Jeffrey Pfau 68d85ab9b7 Implement VRAM load/store8 2013-10-08 21:43:43 -07:00
Jeffrey Pfau 3e3bb58ae5 Minor timing fixes 2013-10-08 02:10:43 -07:00
Jeffrey Pfau 40a0a0eb11 Fix reading 32-bit unaligned IO registers 2013-10-06 12:28:48 -07:00
Jeffrey Pfau 45501658b5 Sync to audio by default 2013-10-05 02:52:57 -07:00
Jeffrey Pfau 4ef6a70731 Refactor frame synchronization 2013-10-05 02:11:53 -07:00
Jeffrey Pfau 2f00e3d146 Don't trample audio buffer 2013-10-03 12:08:52 -07:00
Jeffrey Pfau 4a09d41aab Fix circle buffers 2013-10-03 01:25:51 -07:00
Jeffrey Pfau 0dd69e8273 Fix incorrect condition in FIFO sampling 2013-10-03 01:23:16 -07:00
Jeffrey Pfau da38027654 Add missing changes 2013-10-02 02:45:41 -07:00
Jeffrey Pfau ba0596da07 Hook up audio for DMA sound channels 2013-10-02 02:40:16 -07:00
Jeffrey Pfau a834f8b1f6 Sample FIFOs with sound DMA timer 2013-10-02 00:46:51 -07:00
Jeffrey Pfau 71ec6162f1 Fix circle buffer sizing 2013-10-02 00:46:19 -07:00
Jeffrey Pfau 09b4a4a29a Build up DMA channel audio infrastructure from GBA.js 2013-10-01 23:56:10 -07:00
Jeffrey Pfau 9bf6b571b1 Fix naming 2013-09-30 02:02:26 -07:00
Jeffrey Pfau f5bcb1eace Change log level to mask 2013-09-30 01:48:41 -07:00
Jeffrey Pfau aaaafb90a5 Add ability to get thread-specific GBA 2013-09-30 01:42:31 -07:00
Jeffrey Pfau be36c1b5d6 Clean up error handling a bit 2013-09-30 01:31:14 -07:00
Jeffrey Pfau 3439fa5bf4 Start audio 2013-09-30 01:23:58 -07:00
Jeffrey Pfau 25885e1e82 Invalid memory reads 2013-09-27 23:48:56 -07:00
Jeffrey Pfau 453fdac3fe Fix ArcTan2 2013-09-27 09:48:04 -07:00
Jeffrey Pfau f8341f2d20 Rotate 16-bit unaligned loads 2013-09-27 02:07:44 -07:00
Jeffrey Pfau f6e1e6e6d5 Fix OBJWIN for backgrounds 2013-09-26 17:12:46 -07:00
Jeffrey Pfau 07d3fbaceb Support 16-bit color again 2013-09-26 15:11:09 -07:00
Jeffrey Pfau 187e099f25 Fix sorting in _composite 2013-09-26 10:35:26 -07:00
Jeffrey Pfau a7182b8df9 Add watchpoints 2013-09-26 00:26:11 -07:00
Jeffrey Pfau 99769695d7 Fix ADCS C bit 2013-09-26 00:25:48 -07:00
Jeffrey Pfau 662feed390 Always go through pointers for load and store 2013-09-25 22:11:58 -07:00
Jeffrey Pfau fcdbbf2a43 Fix bank switch detection 2013-09-25 04:48:27 -07:00
Jeffrey Pfau 13a2289e25 Fix ADCS 2013-09-25 00:27:40 -07:00
Jeffrey Pfau a0505ee7d7 Pepper memory access functions with warnings 2013-09-24 23:10:51 -07:00
Jeffrey Pfau 1a3f28d2b0 Start implementing OBJWIN 2013-09-24 22:58:53 -07:00
Jeffrey Pfau cec9e67d88 Support flash game saves 2013-09-23 23:05:25 -07:00
Jeffrey Pfau abc89982be Windows on backdrop and blending with backdrop 2013-09-23 20:39:28 -07:00
Jeffrey Pfau 8132341b75 Support reading 8-bit values from palette RAM 2013-09-22 16:45:36 -07:00
Jeffrey Pfau 34ddb09516 Plumb through filename for proper saves 2013-09-22 16:45:19 -07:00
Jeffrey Pfau 388dbc0851 Fix window values where start >= max being broken 2013-09-22 15:14:14 -07:00
Jeffrey Pfau 2a6e7db693 Make GBALog actually use its log levels 2013-09-22 15:01:23 -07:00
Jeffrey Pfau e7622ed70f Fix tiles being shifted when adjusting outX 2013-09-22 11:15:52 -07:00
Jeffrey Pfau ddf078383a Fix buffer underrun in mode 0 rendering 2013-09-22 03:59:33 -07:00
Jeffrey Pfau 2ce017b555 Fix WIN0H writing with overlapping values 2013-09-22 03:00:43 -07:00
Jeffrey Pfau 4523777bee Fix initializing savegames when writing to disk fails 2013-09-22 02:13:03 -07:00
Jeffrey Pfau e80ab4c855 Make debugger optional 2013-09-21 18:10:13 -07:00
Jeffrey Pfau 9d10ca3f90 Move out int declarations for stricter parsers 2013-09-21 01:27:16 -07:00
Jeffrey Pfau 85e1c2d573 Exploit cache locality for slightly faster drawing 2013-08-03 01:15:08 -07:00
Jeffrey Pfau 6b86cdf9ef LDM should force-align loads 2013-07-31 01:59:00 -07:00
Jeffrey Pfau 3301cc9f97 Reuse code for splitting WIN0 for WIN1 2013-07-31 00:48:57 -07:00
Jeffrey Pfau d2f15f4af4 Window bounds enforced 2013-07-31 00:48:34 -07:00
Jeffrey Pfau 0939d5e2bc Fix WIN0 cases 2013-07-31 00:24:21 -07:00
Jeffrey Pfau 5a685558c7 Window respects y coordinate now 2013-07-30 21:39:25 -07:00
Jeffrey Pfau 453939fc8d Sloppy first implementation of windows 2013-07-29 03:33:22 -07:00
Jeffrey Pfau 7291fcfe9e Start windows 2013-07-29 01:46:09 -07:00
Jeffrey Pfau 27f5468e01 Writing for Window registers 2013-07-29 01:30:27 -07:00
Jeffrey Pfau 3f122dcf14 Fix 8-bit I/O writes 2013-07-29 01:30:06 -07:00
Jeffrey Pfau 15aa862d70 Small optimization for sprite drawing 2013-07-29 00:44:38 -07:00
Jeffrey Pfau 425056ca15 Ensure LDM does not write back incorrectly with register list overlaps 2013-07-27 03:02:52 -07:00
Jeffrey Pfau 9e578da5a1 Do register writeback in addressing mode 2 before actual load/store 2013-07-26 23:42:45 -07:00
Jeffrey Pfau 8b1eb01a96 Fix MUL, UMULL, UMLAL 2013-07-26 01:03:34 -07:00
Jeffrey Pfau 6321b1f827 Fix ARM_CARRY_FROM 2013-07-26 00:50:20 -07:00
Jeffrey Pfau 76cd712907 Fix modes 4 and 5 2013-07-26 00:10:33 -07:00
Jeffrey Pfau 3537099820 Fix sprites 64+ not drawing 2013-07-21 21:10:12 -07:00
Jeffrey Pfau 774b7d75bc Fix broken bitmap 2013-07-21 19:04:24 -07:00
Jeffrey Pfau 6829b54234 Bitmap of enabled sprites 2013-07-21 18:58:32 -07:00
Jeffrey Pfau edecf6c1f6 Minor optimization to backgroud mode 0 2013-07-21 18:56:45 -07:00
Jeffrey Pfau 8dc3fa9bec Use software renderer for EGL, just use it for uploading the texture 2013-07-21 05:15:02 -07:00
Jeffrey Pfau da7853bda6 Mode 5 2013-07-20 01:46:40 -07:00
Jeffrey Pfau 15a2e43b2b Fix read/write 0x0400020A 2013-07-20 01:40:17 -07:00
Jeffrey Pfau 02cb9c56c5 Reuse bitmap mode background code 2013-07-20 01:38:13 -07:00
Jeffrey Pfau 90ddf937a5 Implement modes 3 and 4 2013-07-19 21:51:14 -07:00
Jeffrey Pfau 1e4a82ef5b Update GBA BIOS from GBA.js 2013-07-18 02:14:22 -07:00
Jeffrey Pfau 6a1afbda50 8-bit write to IO 2013-07-18 02:13:49 -07:00
Jeffrey Pfau 8215afcee6 Decouple GLSL and GL mains 2013-07-17 23:31:19 -07:00
Jeffrey Pfau 49de0fb52e Different mains for SDL and EGL, supporting Raspberry Pi and BeagleBone Black 2013-05-29 21:18:25 -07:00
Jeffrey Pfau f8b0acd86a Fix tile mapping for 256-color sprites 2013-05-13 02:47:11 -07:00
Jeffrey Pfau c20efb42ff Clean up thread locking in the software renderer 2013-05-11 21:07:10 -07:00
Jeffrey Pfau 63b72657c1 Fix transformed sprites that are off the top of the screen 2013-05-11 18:36:35 -07:00
Jeffrey Pfau f7ddc3a2b6 Implement RLUnCompWram/RLUnCompVram 2013-05-11 18:22:23 -07:00
Jeffrey Pfau a6d87bbfb9 Better cycle counting for STR 2013-05-11 18:01:16 -07:00
Jeffrey Pfau b6361cdfa9 Start LDM/STM timings 2013-05-11 17:05:57 -07:00
Jeffrey Pfau 0a37300bcf Improve LDR/STR cycle counting 2013-05-11 14:55:29 -07:00
Jeffrey Pfau 013e322c0b Improved cycle counting for branches 2013-05-11 14:45:31 -07:00
Jeffrey Pfau f6592b17b8 Implement MUL timings 2013-05-11 14:35:10 -07:00
Jeffrey Pfau 5c31757912 Remove int operations and vectorize shader calculation 2013-05-08 21:10:32 -07:00
Jeffrey Pfau f246587a9d Add support for (my) joystick 2013-05-08 16:57:17 -07:00
Jeffrey Pfau 12e681392d Fragment shader now no longer requires extensions 2013-05-08 15:19:54 -07:00
Jeffrey Pfau 8047ce11d0 Fix off-by-one scanline 2013-05-07 22:22:35 -07:00
Jeffrey Pfau 5b5251434f Add background sizes to GLSL mode 0 2013-05-07 22:21:40 -07:00
Jeffrey Pfau f278805255 Fix x indexing into VRAM 2013-05-07 21:48:46 -07:00
Jeffrey Pfau 5388fb8cea Draw backdrop in GLSL renderer 2013-05-07 04:40:25 -07:00
Jeffrey Pfau 03fb87acd0 Continue implementing GLSL mode 0, now with layers and offsets 2013-05-07 04:11:49 -07:00
Jeffrey Pfau cc2262149e Reindent GBAVideoGLSLRendererProcessEvents 2013-05-07 03:36:50 -07:00
Jeffrey Pfau 20b67240ae Start on mode 0 renderer 2013-05-07 03:36:34 -07:00
Jeffrey Pfau f6a9467e86 Write to renderer VRAM 2013-05-07 03:36:15 -07:00
Jeffrey Pfau bb1e598a78 Start GLSL renderer 2013-05-07 01:04:36 -07:00
Jeffrey Pfau db96be98dc Deinit video when shutting down 2013-05-07 01:00:18 -07:00
Jeffrey Pfau 8bc5ec4222 Roll out incorrect fix for Halt bug and apply proper fix 2013-05-05 20:37:35 -07:00
Jeffrey Pfau 7ec435b94c Fix 512x512 backgrounds in Mode 0 2013-05-05 01:33:05 -07:00
Jeffrey Pfau ae3f623fd5 Overwrite IF while attempting to IntrWait 2013-05-05 00:44:30 -07:00
Jeffrey Pfau fc7aec557b Count cycles for load/store singles 2013-05-04 23:57:12 -07:00
Jeffrey Pfau 738b3dc44e Implement ArcTan2 2013-05-04 15:50:42 -07:00
Jeffrey Pfau 374aca2ff7 Move event polling to after framedraw only 2013-05-04 14:49:04 -07:00
Jeffrey Pfau ac0c7ba792 Implement BgAffineSet 2013-05-04 01:20:42 -07:00
Jeffrey Pfau fb2ddd6c32 Start implementing modes 1/2 2013-05-04 01:20:24 -07:00
Jeffrey Pfau 7373c37e19 Fix sprite blending with between layers 2013-05-03 22:23:45 -07:00
Jeffrey Pfau 813b2c0697 Partially implement frameskip 2013-05-03 10:24:56 -07:00
Jeffrey Pfau 3ad2510b78 Get rid of flags struct and redo compositing 2013-05-03 10:02:01 -07:00
Jeffrey Pfau 6ef3e3b6a8 Copy ObjAffineSet implementation from GBA.js 2013-05-03 01:43:39 -07:00
Jeffrey Pfau 2bc11c9aac 32- and 16-bit reads of OAM 2013-05-03 01:33:20 -07:00
Jeffrey Pfau 862c93916d Support edge cases for 256-color mode 0, excluding hflip 2013-05-03 01:21:25 -07:00
Jeffrey Pfau 1c6fc26bf7 Support hflip on mode 0 edges 2013-05-02 21:51:00 -07:00
Jeffrey Pfau ebb1c08840 Fix warnings on gcc 2013-05-02 00:40:12 -07:00
Jeffrey Pfau 13a46429e2 Remove -Wno-unused and fix resulting errors 2013-05-02 00:35:32 -07:00
Jeffrey Pfau a635f4de4d Implement addressing mode 1 ASR register shift 2013-05-02 00:32:04 -07:00
Jeffrey Pfau 86c228f2e4 Implement SMLAL 2013-05-02 00:29:06 -07:00
Jeffrey Pfau a80175e689 Fix sprite variant condition 2013-05-01 23:56:59 -07:00
Jeffrey Pfau 3b3f55b14c Variant and 256-color transformed sprites 2013-05-01 23:54:39 -07:00
Jeffrey Pfau 0423656ad8 Extract more into macros 2013-05-01 23:46:15 -07:00
Jeffrey Pfau d6c88fc7cb Introduce macros for sprite drawing 2013-05-01 23:39:55 -07:00
Jeffrey Pfau e3fddc5739 Support 256-color sprites 2013-05-01 23:27:49 -07:00
Jeffrey Pfau 61c6b7186e Implement UMLAL 2013-05-01 23:11:00 -07:00
Jeffrey Pfau cd73c562ea Implement addressing mode 1 LSL/LSR with register 2013-05-01 23:08:22 -07:00
Jeffrey Pfau aeecbdb56f Draw backgrounds with variant palette when appropriate 2013-05-01 02:51:33 -07:00
Jeffrey Pfau 40e9a7ef26 Update variant palettes when writing to palette 2013-05-01 02:37:15 -07:00
Jeffrey Pfau 03361f20a2 Start drawing backdrop 2013-05-01 02:32:56 -07:00
Jeffrey Pfau 2e9a64a26e Implement Sqrt 2013-05-01 00:27:31 -07:00
Jeffrey Pfau 6ed3c18afd Support IWRAM in LZ77 2013-05-01 00:24:28 -07:00
Jeffrey Pfau 5f6cf337a0 16-bit DMA address writes 2013-04-30 23:22:39 -07:00
Jeffrey Pfau da489b90f8 Ensure shifter carry-out gets bits set right 2013-04-30 21:02:56 -07:00
Jeffrey Pfau f7fbb877e0 Fix Div output registers 2013-04-30 20:54:09 -07:00
Jeffrey Pfau 118c393d1b Fix addressing mode 2 register post-indexed 2013-04-30 02:43:12 -07:00
Jeffrey Pfau 337d4dc1e6 Implement addressing mode 1 ROR with register 2013-04-30 02:42:54 -07:00
Jeffrey Pfau e1963c6e60 Implement SMULL 2013-04-30 01:42:24 -07:00
Jeffrey Pfau 698bc0ada5 Re-add 256-color 2013-04-30 01:38:19 -07:00
Jeffrey Pfau 6cdfa43e97 hflip in fast path 2013-04-29 22:05:32 -07:00
Jeffrey Pfau 87e5973039 Proper blending on sprite targets 2013-04-29 21:27:29 -07:00
Jeffrey Pfau 2d4c1fdc2c Add back compositing 2013-04-29 21:27:05 -07:00
Jeffrey Pfau 56333d3344 Use base rendering mode 2013-04-29 21:12:56 -07:00
Jeffrey Pfau 7bb4d9d5ff Throw out slow background renderer. Let me try again. 2013-04-29 00:42:04 -07:00
Jeffrey Pfau 6c2f7b3b73 Use 32-bit color internally 2013-04-28 23:01:45 -07:00
Jeffrey Pfau 7c597d5205 Rearrange some code in preparation of adding windows 2013-04-28 02:57:06 -07:00
Jeffrey Pfau dfd360bfbb Remove accidentally left in testing code 2013-04-28 01:46:43 -07:00
Jeffrey Pfau 5f6b57734d Implement character mapping 2013-04-28 01:43:39 -07:00
Jeffrey Pfau 8072ff7d2c Rotate LDR 2013-04-28 01:33:59 -07:00
Jeffrey Pfau 6450ce16b2 Fix LDR(3) 2013-04-28 01:33:45 -07:00
Jeffrey Pfau e86f7d79fb Clean up and fix conditions for CPSR V 2013-04-28 00:19:15 -07:00
Jeffrey Pfau 19f9b72c33 Fix CPSR C being written 2013-04-28 00:06:13 -07:00
Jeffrey Pfau 682684cb6d Output MUL into the right register 2013-04-27 23:44:33 -07:00
Jeffrey Pfau 2c8786ae4c Use LE instead of GE where appropriate 2013-04-27 23:44:17 -07:00
Jeffrey Pfau dd4e6b0ce1 Stub RegisterRamReset 2013-04-27 22:54:41 -07:00
Jeffrey Pfau ca959c640a Implement EEPROM 2013-04-27 21:51:58 -07:00
Jeffrey Pfau f4fa423135 EEPROM only works in DMAs 2013-04-27 20:39:14 -07:00
Jeffrey Pfau 4380ec0260 Start implementing EEPROM 2013-04-27 20:25:31 -07:00
Jeffrey Pfau e02059947c Start implementing save games 2013-04-27 19:59:41 -07:00
Jeffrey Pfau dab27463a9 Implement DivArm 2013-04-27 19:58:21 -07:00
Jeffrey Pfau fd5661e941 Fix alpha blending when neither target 1 or target 2 are set 2013-04-27 03:09:23 -07:00
Jeffrey Pfau 2e78381e55 Implement SWI 2013-04-27 02:56:34 -07:00
Jeffrey Pfau 6c44cf8dfc Implement BL 2013-04-27 02:54:16 -07:00
Jeffrey Pfau 21b9222357 Fix entering SWI mode 2013-04-27 02:50:35 -07:00
Jeffrey Pfau bd9714b540 Implement STR(2)/STRH(2) 2013-04-27 02:42:42 -07:00
Jeffrey Pfau 2fc5474d91 Implement addressing mode 1 ROR immediate 2013-04-27 01:54:57 -07:00
Jeffrey Pfau 2bc23e7aa2 Redo compositing and sprite blending 2013-04-27 01:36:06 -07:00
Jeffrey Pfau b3e1aa7853 Don't blend if not target 1 2013-04-27 00:11:04 -07:00
Jeffrey Pfau f7922c1627 Restructure background drawing code for multipalette 2013-04-26 23:59:50 -07:00
Jeffrey Pfau 1ff337c6fc Allow 256-color rendering 2013-04-26 22:21:38 -07:00
Jeffrey Pfau 13c95a2aae Build fixes for linux 2013-04-26 03:08:59 -07:00
Jeffrey Pfau 3cd5e8d093 Implement Div 2013-04-26 02:05:54 -07:00
Jeffrey Pfau d2e84f0a30 Implement IntrWait 2013-04-26 02:00:59 -07:00
Jeffrey Pfau 7c895f6091 Load files from arg 1 2013-04-26 01:50:14 -07:00
Jeffrey Pfau 301c07dda3 Implement ADC, SBC 2013-04-26 01:25:31 -07:00
Jeffrey Pfau c61812325c Transformed sprites 2013-04-26 01:06:50 -07:00
Jeffrey Pfau f91149e30f Flipped background tiles 2013-04-25 22:03:15 -07:00
Jeffrey Pfau a1910206c0 Support blending with sprites behind a background 2013-04-25 02:08:12 -07:00
Jeffrey Pfau fefbf7a296 Flip sprites vertically after applying boundary operations 2013-04-25 01:55:47 -07:00
Jeffrey Pfau cea8109c06 Run Vblank and Hblank DMAs 2013-04-25 01:50:28 -07:00
Jeffrey Pfau e9e29610a4 Read from palette memory 2013-04-25 01:48:28 -07:00
Jeffrey Pfau 65e0445375 Implement TST 2013-04-25 00:56:43 -07:00
Jeffrey Pfau cfc3ec4f3b Implement ROR 2013-04-25 00:53:24 -07:00
Jeffrey Pfau 21490dcf51 Implement CMN 2013-04-25 00:48:35 -07:00
Jeffrey Pfau c8b2d2753e Use variant palette on sprites when target 1 2013-04-25 00:28:39 -07:00
Jeffrey Pfau e1932f2411 Implement sprite flipping 2013-04-25 00:17:17 -07:00
Jeffrey Pfau 9dbd925d90 Allow for negative-y sprites 2013-04-25 00:11:27 -07:00
Jeffrey Pfau 4446e0dbde Implement blending on sprites 2013-04-24 23:49:16 -07:00
Jeffrey Pfau 07b96cddef Begin sprites 2013-04-24 23:40:22 -07:00
Jeffrey Pfau 00dd5bdaa8 Dual condition-variable non-hacky waiting-on-frame 2013-04-24 02:43:55 -07:00
Jeffrey Pfau 5122a236e0 Squelch warnings, turn on -Werror 2013-04-24 01:32:49 -07:00
Jeffrey Pfau 1c0af22990 Implement BLDALPHA 2013-04-24 01:16:03 -07:00
Jeffrey Pfau 40b00e7927 Refactor some code to enable compositing code to be shared 2013-04-24 00:50:17 -07:00
Jeffrey Pfau 0d7657e845 Implement BLDCNT (partially) and BLDY 2013-04-24 00:34:50 -07:00
Jeffrey Pfau b3d9a1918b Kludge to prevent busy-waiting while no frames are generating 2013-04-23 23:07:24 -07:00
Jeffrey Pfau 754725e124 Start using pixel flags to keep track of pixel states 2013-04-23 22:48:01 -07:00
Jeffrey Pfau 7c7e934dac Turbo mode 2013-04-23 22:32:15 -07:00
Jeffrey Pfau 190f9b41e6 Implement STRB(2) 2013-04-23 02:13:59 -07:00
Jeffrey Pfau e82fd991fa More sane way of writing 32-bit values to VRAM, palette 2013-04-23 02:05:10 -07:00
Jeffrey Pfau 3a76cdc6e0 VRAM reading 2013-04-23 02:03:06 -07:00
Jeffrey Pfau 21704ab37a Allow use of wrong LZ77 destination 2013-04-22 22:55:49 -07:00
Jeffrey Pfau 11d1de39e1 Fix non-zero character base 2013-04-22 02:28:03 -07:00
Jeffrey Pfau bcf446737c Start implementing transparency 2013-04-22 02:07:35 -07:00
Jeffrey Pfau e1d5f3f457 Fix drawing wide backgrounds 2013-04-22 02:07:19 -07:00
Jeffrey Pfau b48b868cfb Write to VRAM 2013-04-22 01:59:25 -07:00
Jeffrey Pfau f136d8165a Was accidentally chopping off a bit in LZ77UnCompVram 2013-04-22 01:12:48 -07:00
Jeffrey Pfau 060ae364b5 Start drawing backgrounds 2013-04-22 01:11:48 -07:00
Jeffrey Pfau 764b6010c0 Sort backgrounds 2013-04-21 20:59:43 -07:00
Jeffrey Pfau a6fb91bb7d Do some cleanup of pthread data 2013-04-21 14:52:25 -07:00
Jeffrey Pfau 225729b79c Implement BGxHOFS/BGxVOFS 2013-04-21 14:43:28 -07:00
Jeffrey Pfau 3ec0afa8fc Implement BGxCNT 2013-04-21 14:09:41 -07:00
Jeffrey Pfau 265bbe4f8f Add struct for keeping track of background state 2013-04-21 13:17:15 -07:00
Jeffrey Pfau 933e8330d2 Start implementing DISPCNT 2013-04-21 13:16:06 -07:00
Jeffrey Pfau cdddcbf7aa Pass off video registers to renderer 2013-04-21 12:39:33 -07:00
Jeffrey Pfau 573fcead5d Start building up structs for video registers 2013-04-21 12:34:24 -07:00
Jeffrey Pfau 9f425c53c8 Spring IRQs if we need to 2013-04-21 01:09:11 -07:00
Jeffrey Pfau 3ca5e52de1 Handle key, quit events 2013-04-21 00:35:21 -07:00
Jeffrey Pfau 71986b0477 Support writing to palette, display palette on screen 2013-04-20 22:08:58 -07:00
Jeffrey Pfau 2860714714 Draw output buffer 2013-04-20 21:40:06 -07:00
Jeffrey Pfau eba5d547b9 Start using SDL for graphics syncing 2013-04-20 20:29:53 -07:00
Jeffrey Pfau a094024ad5 Add missing files 2013-04-20 18:11:27 -07:00
Jeffrey Pfau 67d25794e1 Fix LDMIA/STMIA 2013-04-20 18:03:59 -07:00
Jeffrey Pfau 14100f19d1 Implement LSL(2) 2013-04-20 18:03:48 -07:00
Jeffrey Pfau 0bfb77106b Properly init and deinit renderers 2013-04-20 16:47:04 -07:00
Jeffrey Pfau b4cee4c286 Properly isolate threading 2013-04-20 16:44:03 -07:00
Jeffrey Pfau fffe39153f Wait on thread initialization before returning from thread creation 2013-04-20 16:40:08 -07:00
Jeffrey Pfau 9ba9fac898 Restructure video memory 2013-04-20 16:16:37 -07:00
Jeffrey Pfau cb48145ea3 Move main emulation into thread 2013-04-20 15:54:09 -07:00
Jeffrey Pfau ff03bcf0f0 Fix MidiKey2Freq 2013-04-20 14:46:53 -07:00
Jeffrey Pfau 18fae08450 Fix Load/store shifters 2013-04-20 14:21:42 -07:00
Jeffrey Pfau cd0f75c83f Implement MLA 2013-04-20 13:36:42 -07:00
Jeffrey Pfau bf54a68b0e Implement UMULL 2013-04-20 13:22:10 -07:00
Jeffrey Pfau 63e809550d Implement MidiKey2Freq 2013-04-20 03:01:50 -07:00
Jeffrey Pfau e272481ccd Implement LDR(2) 2013-04-20 02:57:20 -07:00
Jeffrey Pfau e83936152d Implement LZ77 decompression 2013-04-20 02:52:10 -07:00
Jeffrey Pfau cf9a7224a3 Init video memory from the dummy renderer 2013-04-20 02:51:40 -07:00
Jeffrey Pfau 1972e73bec Define memory regions 2013-04-19 23:34:26 -07:00
Jeffrey Pfau f72c195739 Labels for I/O regions in the switch statement 2013-04-19 23:04:01 -07:00
Jeffrey Pfau 5d81a4eb18 Remainder of timer infrastructure 2013-04-19 23:01:04 -07:00
Jeffrey Pfau 57dcbef030 Implement timers from GBA.js implementation 2013-04-19 22:26:44 -07:00
Jeffrey Pfau 6087ad8c5f Fix reading from DISPSTAT 2013-04-19 21:40:57 -07:00
Jeffrey Pfau adfd8f6872 Make sure if we reset the CPSR to the SPSR that we check if we get tossed into Thumb 2013-04-19 21:26:00 -07:00
Jeffrey Pfau 633a87269a Initialize cpu->privilegeMode 2013-04-19 21:09:00 -07:00
Jeffrey Pfau aa7ef287bc Squelch HLE BIOS warnings 2013-04-19 21:04:53 -07:00
Jeffrey Pfau 283a48613b Read/write REG_IF 2013-04-19 00:05:13 -07:00
Jeffrey Pfau 9b1f3c3c73 Init GBA I/O registers 2013-04-19 00:04:50 -07:00
Jeffrey Pfau 0ba7451e3a Install SIGINT signal handler for debugger 2013-04-18 01:52:46 -07:00
Jeffrey Pfau 0b468a9db8 Null-check that DebugVectors get generated 2013-04-18 01:39:51 -07:00
Jeffrey Pfau 5f1f6088bd Implement MUL 2013-04-18 01:35:48 -07:00
Jeffrey Pfau 783b2a3e09 Implement ADD(5) 2013-04-18 01:24:46 -07:00
Jeffrey Pfau 422961a2df 8-bit I/O reads 2013-04-18 01:19:57 -07:00
Jeffrey Pfau 97b669e4d1 Store vcount back in IO 2013-04-18 01:19:41 -07:00
Jeffrey Pfau 0048de2108 Fix addressing mode 3 immediate 2013-04-18 01:06:19 -07:00
Jeffrey Pfau b5cbd55718 Read back I/O memory when reading 32-bit 2013-04-18 00:58:42 -07:00
Jeffrey Pfau 1e1c8fd2dd Ensure that DMAs read back from I/O memory properly 2013-04-18 00:58:22 -07:00
Jeffrey Pfau 4f8c288f20 Ensure cpsr.t reads back out properly 2013-04-18 00:19:41 -07:00
Jeffrey Pfau ed48ab1c64 Fix storing SPSR 2013-04-18 00:15:45 -07:00
Jeffrey Pfau 062e09ccf5 Implement MSRI 2013-04-18 00:09:28 -07:00
Jeffrey Pfau fdf36f5820 Implement MRS 2013-04-18 00:06:48 -07:00
Jeffrey Pfau b3832205fc Fix some MRS/MSR encoding problems 2013-04-18 00:03:39 -07:00
Jeffrey Pfau 6608ae282c Ensure loads to PC work 2013-04-17 23:54:31 -07:00
Jeffrey Pfau cb03781a5b Implement LDM, STM 2013-04-17 23:44:35 -07:00
Jeffrey Pfau dd479ad907 Now include source for HLE BIOS, even without assembler script 2013-04-17 00:46:32 -07:00
Jeffrey Pfau 54fffb7fff Add HLE BIOS from GBA.js 2013-04-17 00:45:23 -07:00
Jeffrey Pfau 38b1c8d235 Make sure CPSR is updated for IRQ mode properly 2013-04-17 00:29:20 -07:00
Jeffrey Pfau f30b367c7e Make sure to rewrite active region data when jumping to IRQ handler 2013-04-17 00:24:00 -07:00
Jeffrey Pfau 45fcd0fcb5 Implement FastCpuSet 2013-04-16 23:52:53 -07:00
Jeffrey Pfau c143dec77d Fix ADD(4) and MOV(3) 2013-04-16 23:52:30 -07:00
Jeffrey Pfau 4b4914afb6 Implement MUL 2013-04-16 23:26:49 -07:00
Jeffrey Pfau 6b07dd33af Implement ASR(1) 2013-04-16 23:24:19 -07:00
Jeffrey Pfau 8c03c20019 Implement HALT 2013-04-16 23:14:16 -07:00
Jeffrey Pfau e88d177582 Copy GBA.js DMA implementation 2013-04-16 23:13:52 -07:00
Jeffrey Pfau 20622b6135 Copy some IRQ infrastructure from GBA.js 2013-04-16 19:44:16 -07:00
Jeffrey Pfau bc9d0690bb Clean up extra backslashes 2013-04-16 19:29:00 -07:00
Jeffrey Pfau 2d0c3bf275 Implement IRQs 2013-04-16 07:50:34 -07:00
Jeffrey Pfau 2da11dd523 Continue implementing IRQs 2013-04-16 07:42:20 -07:00
Jeffrey Pfau 4dd98f4c25 Remove typo struct member 2013-04-16 07:20:28 -07:00
Jeffrey Pfau 9ac6f6d3bf Start implementing IRQ 2013-04-16 07:18:25 -07:00
Jeffrey Pfau 7de2c91efb Copy DISPSTAT implementation from GBA.js 2013-04-16 07:10:38 -07:00
Jeffrey Pfau e874266343 Initialize video->eventDiff 2013-04-15 23:15:02 -07:00
Jeffrey Pfau 2fe2c80ae5 Add dummy renderer + frame counting infrastructure from GBA.js 2013-04-15 23:01:40 -07:00
Jeffrey Pfau 9b5d5d6478 Start implementing events + add video stubs 2013-04-15 22:18:28 -07:00
Jeffrey Pfau 1838cc0597 Implement waitstate adjusting 2013-04-15 01:10:53 -07:00
Jeffrey Pfau fe5a8d6254 Add function for loading from I/O 2013-04-14 23:30:11 -07:00
Jeffrey Pfau ecc4775c31 Start implementing instruction timing 2013-04-14 23:12:03 -07:00
Jeffrey Pfau fa64310e83 Fix SWI32 2013-04-14 13:46:48 -07:00
Jeffrey Pfau 4e66d7f832 Implement CpuSet 2013-04-14 13:36:32 -07:00
Jeffrey Pfau 90e2443ccd Split gba.c 2013-04-14 13:24:55 -07:00
Jeffrey Pfau 1ca6487151 Create subdirs 2013-04-14 13:04:24 -07:00
Jeffrey Pfau 7c5a6b121c Implement SWI 2013-04-14 11:57:39 -07:00
Jeffrey Pfau 475af6fde2 Squelch some warnings 2013-04-14 04:22:53 -07:00
Jeffrey Pfau 201d34a4d7 Stub out I/O 2013-04-14 04:21:33 -07:00
Jeffrey Pfau 2cb00fe065 Move GBA load/stores internal to gba.c 2013-04-14 04:08:06 -07:00
Jeffrey Pfau 1d445958c9 Initialize breakpoints 2013-04-14 03:49:48 -07:00
Jeffrey Pfau 82a4fa094b Initialize debugger->lastCommand 2013-04-14 03:47:11 -07:00
Jeffrey Pfau cd75d3b399 Implement LDR[S]B/LDR[S]H (2) 2013-04-14 03:38:09 -07:00
Jeffrey Pfau 9cd468794e Implement BIC 2013-04-14 03:31:35 -07:00
Jeffrey Pfau 288eba1f80 Fix POP {pc} 2013-04-14 03:28:58 -07:00
Jeffrey Pfau 3b3b6e0546 Implement MVN 2013-04-14 03:26:04 -07:00
Jeffrey Pfau 3121ed0bb6 Fix BX 2013-04-14 03:23:37 -07:00
Jeffrey Pfau 8eb8cdfad8 Implement SUB(1) 2013-04-14 03:15:21 -07:00
Jeffrey Pfau 18b1fd490f Implement SUB(3) 2013-04-14 03:13:06 -07:00
Jeffrey Pfau 280fc18cff Implement LDRB(1) 2013-04-14 03:10:25 -07:00
Jeffrey Pfau ee5375a8ff Implement CMP(2) 2013-04-14 03:08:07 -07:00
Jeffrey Pfau b541b99d0c Implement NEG 2013-04-14 03:06:11 -07:00
Jeffrey Pfau 53212baee5 Implement SUB(2) 2013-04-14 03:05:12 -07:00
Jeffrey Pfau 5be88fe123 Implement LDRH(1) 2013-04-14 03:00:06 -07:00
Jeffrey Pfau ce593c4bfa Implement STRB(1) 2013-04-14 02:58:05 -07:00
Jeffrey Pfau 7c8d76eb06 Implement BX 2013-04-14 02:55:12 -07:00
Jeffrey Pfau d7ff6aa14b Add missing field for breakpoints 2013-04-14 02:54:58 -07:00
Jeffrey Pfau 81909bed56 Fix indentation of LSR(2)/ASR(2) 2013-04-14 02:51:21 -07:00
Jeffrey Pfau 97ce972b2a Implement LSR(2) 2013-04-14 02:49:07 -07:00
Jeffrey Pfau 76a85c763c Rudimentary breakpoints 2013-04-14 02:42:09 -07:00
Jeffrey Pfau baad7b50bd Add n command, and command repetition 2013-04-13 14:06:57 -07:00
Jeffrey Pfau 4df2d6de8f Pause on stub opcodes 2013-04-13 13:56:29 -07:00
Jeffrey Pfau e5379c99e0 Add ability to run code indefinitely (or at least until we crash) 2013-04-13 13:50:41 -07:00
Jeffrey Pfau dbe9796b34 Implement B 2013-04-13 12:38:47 -07:00
Jeffrey Pfau abd522a2ce Implement ADD(4) 2013-04-13 12:32:15 -07:00
Jeffrey Pfau bc4924cef5 Implement CMP(3) 2013-04-13 12:28:24 -07:00
Jeffrey Pfau aa14ed441c Implement AND, EOR and ORR 2013-04-13 01:50:21 -07:00
Jeffrey Pfau 75fdcd6750 Add missing CPSR update for ASR(2) 2013-04-13 01:48:00 -07:00
Jeffrey Pfau c51ad65cac Implement ASR(2) 2013-04-13 01:42:34 -07:00
Jeffrey Pfau 5094b7717a Add memory reading commands to debugger 2013-04-13 01:36:01 -07:00
Jeffrey Pfau 5465543acc Properly recognize syntax errors 2013-04-13 01:27:05 -07:00
Jeffrey Pfau 0180ee090e Print hex 2013-04-13 01:25:21 -07:00
Jeffrey Pfau f715534083 Begin command line parsing 2013-04-13 01:23:41 -07:00
Jeffrey Pfau 10884de57a Add ability to print current instruction 2013-04-13 00:22:27 -07:00
Jeffrey Pfau 67750e351b Fix sign-extension on BL1 2013-04-12 22:59:19 -07:00
Jeffrey Pfau eed0e77079 Implement B(1) 2013-04-12 22:58:50 -07:00
Jeffrey Pfau be8849d7fe Implement CMP(1) 2013-04-12 22:44:51 -07:00
Jeffrey Pfau 3a097dca96 Implement ADD(3), refactor other ADDs 2013-04-12 22:34:44 -07:00
Jeffrey Pfau 36670b3fa2 Implement LSR(1) and reindent LSL(1) 2013-04-12 22:24:35 -07:00
Jeffrey Pfau 9ca65038ed Implement LDR(4) 2013-04-12 22:18:46 -07:00
Jeffrey Pfau 9f77c32375 Implement ADD(1) 2013-04-12 22:17:37 -07:00
Jeffrey Pfau d7ddbee448 Fix BL(1) 2013-04-12 22:14:01 -07:00
Jeffrey Pfau f86fb9dc74 Implement LDR(1) 2013-04-12 22:06:17 -07:00
Jeffrey Pfau 33fc9587cc Implement STR(1) 2013-04-12 21:57:50 -07:00
Jeffrey Pfau c8f85a657e Implement STR(3) 2013-04-12 21:48:30 -07:00
Jeffrey Pfau 3e57e46046 Implement ADD(2) 2013-04-12 21:48:19 -07:00
Jeffrey Pfau b5182915d7 Command to break into attached debugger 2013-04-12 21:27:43 -07:00
Jeffrey Pfau a7bc99c846 Implement LDR(3) 2013-04-12 20:09:27 -07:00
Jeffrey Pfau 57f2cccacf Implement STRH(1) 2013-04-12 20:06:58 -07:00
Jeffrey Pfau 21ee7946f1 Implement LSL(1) 2013-04-12 20:00:14 -07:00
Jeffrey Pfau 71c68fe79f Implement ADD(6) 2013-04-12 19:59:55 -07:00
Jeffrey Pfau 21df1c48c2 Implement MOV(1) 2013-04-12 02:44:04 -07:00
Jeffrey Pfau 9ab3b0c20a Implement ADD(7)/SUB(4) 2013-04-12 02:22:37 -07:00
Jeffrey Pfau 1ac7f0eb15 Implement MOV(3) 2013-04-12 02:15:47 -07:00
Jeffrey Pfau 37ce1383fc Set bits in MSR properly 2013-04-12 02:10:09 -07:00
Jeffrey Pfau 6097890251 Print proper register 2013-04-12 02:04:51 -07:00
Jeffrey Pfau 688af6cdee Add some basic input to the debugger 2013-04-12 02:03:11 -07:00
Jeffrey Pfau 1db7f5b179 Initial debugger 2013-04-12 01:32:43 -07:00
Jeffrey Pfau b07e052698 Move CMakeList 2013-04-11 23:58:13 -07:00
Jeffrey Pfau d90d7d1899 Implement BL 2013-04-11 03:14:09 -07:00
Jeffrey Pfau 133d574667 Implement LDMIA/STMIA/PUSH/POP 2013-04-11 03:01:07 -07:00
Jeffrey Pfau 1616ec83a2 Stub out incomplete addressing mode 1 opcodes 2013-04-11 02:13:35 -07:00
Jeffrey Pfau 4fbed66bdb Start fleshing out addressing mode 1 2013-04-11 01:32:30 -07:00
Jeffrey Pfau d278429b43 Implement BX 2013-04-11 00:14:12 -07:00
Jeffrey Pfau a511df7920 Put stub definitions in all of Thumb 2013-04-10 23:38:18 -07:00
Jeffrey Pfau 7e5de27f43 Add ability to run Thumb code 2013-04-10 23:34:50 -07:00
Jeffrey Pfau 9a0d14645b Log stubs 2013-04-10 22:52:46 -07:00
Jeffrey Pfau 9a7f0f4a74 Stub out BL, finishing Thumb table 2013-04-10 21:11:05 -07:00
Jeffrey Pfau 87863ad97a Stub out B 2013-04-10 21:09:22 -07:00
Jeffrey Pfau cbc17ad77e Stub out SWI 2013-04-10 21:05:19 -07:00
Jeffrey Pfau e89f49459a Stub out conditional branches 2013-04-10 21:04:41 -07:00
Jeffrey Pfau d5adcac319 Stub out LDMIA/STMIA 2013-04-10 20:58:05 -07:00
Jeffrey Pfau 0db11ec6bb Stub out BKPT (not in ARMv4T, but still useful) 2013-04-10 20:50:56 -07:00
Jeffrey Pfau 5e78400a25 Stub out POP/PUSH 2013-04-10 00:00:24 -07:00
Jeffrey Pfau 99d0b76f3b Stub out ADD7 and SUB4 2013-04-09 23:47:37 -07:00
Jeffrey Pfau 08065d865d Stub out ADD from PC and SP 2013-04-09 23:45:08 -07:00
Jeffrey Pfau 28ecc97671 Stub out LDR/STR from SP 2013-04-09 23:37:28 -07:00
Jeffrey Pfau e3818cf7b6 Stub out more load/stores with immediates 2013-04-09 23:34:25 -07:00
Jeffrey Pfau 39c776eb37 Stub out more load/store format 2 2013-04-09 23:27:37 -07:00
Jeffrey Pfau 5165e0131e Put in missing BX 2013-04-09 23:16:30 -07:00
Jeffrey Pfau f42c8d111e Stub out STR2 2013-04-09 23:00:31 -07:00
Jeffrey Pfau 11de611fd2 Stub out LDR3 2013-04-09 22:57:24 -07:00
Jeffrey Pfau 5e18eabd04 Stub out format 8 2013-04-09 22:51:21 -07:00
Jeffrey Pfau be021605bc Define data format 5 2013-04-09 22:35:51 -07:00
Jeffrey Pfau e577df2142 Fix data format 3 2013-04-09 22:35:38 -07:00
Jeffrey Pfau d3abd2dc63 Minor ROM access optimization 2013-04-09 22:20:35 -07:00
Jeffrey Pfau 027e27caa4 Add data form 3 2013-04-09 04:20:14 -07:00
Jeffrey Pfau 56c3685ba6 ADD/SUB 1 stubs 2013-04-09 03:20:32 -07:00
Jeffrey Pfau 2618c39a5d Macro-insanity for Thumb 2013-04-09 03:15:50 -07:00
Jeffrey Pfau 76dbfce3c3 Start filling in THUMB table with insane preprocessor tricks 2013-04-09 02:57:24 -07:00
Jeffrey Pfau 70eb3634a0 Fix warnings + LDR[B]T/STR[B]T 2013-04-08 03:14:18 -07:00
Jeffrey Pfau 9a1fb100c7 Load/store working RAM 2013-04-08 03:13:37 -07:00
Jeffrey Pfau 93a2f16066 Loading 8/16 bits from ROM 2013-04-08 02:13:40 -07:00
Jeffrey Pfau 67c00f378a Ensure CPSR privilege gets updated in MSR 2013-04-08 00:21:28 -07:00
Jeffrey Pfau 37ad6218da Don't double-execute AL instructions 2013-04-08 00:17:54 -07:00
Jeffrey Pfau 4f3e77c87e Implement MSR 2013-04-08 00:15:16 -07:00
Jeffrey Pfau 4bba75dd0a Separate out ISA files 2013-04-07 21:15:32 -07:00
Jeffrey Pfau b02fdd3dda Remove inline conditions and add ARM specialization 2013-04-07 20:37:48 -07:00
Jeffrey Pfau 186068adfe Start filling in ARMBoard 2013-04-07 13:25:45 -07:00
Jeffrey Pfau 120b85713d Mode switching 2013-04-07 02:36:41 -07:00
Jeffrey Pfau bda71cafc2 ALU instructions can write to PC 2013-04-07 02:01:14 -07:00
Jeffrey Pfau 6e3a9a9508 Fix writing to PC 2013-04-07 01:57:04 -07:00
Jeffrey Pfau 68f2eed84d Mini-test 2013-04-07 01:39:49 -07:00
Jeffrey Pfau 9575e7f0d2 Fix B 2013-04-07 01:39:08 -07:00
Jeffrey Pfau 0e2394e7d5 De-inline ARMStep 2013-04-07 01:46:48 -07:00
Jeffrey Pfau b23f1ee3e3 GBA ROM loading 2013-04-07 01:46:28 -07:00
Jeffrey Pfau 340d3ce6a7 Implement B 2013-04-06 20:16:14 -07:00
Jeffrey Pfau 5c7b4a98c6 Load from ARM table now that we have one 2013-04-06 20:06:51 -07:00
Jeffrey Pfau 6bd7a5ee53 Fill remainder of table 2013-04-06 20:01:32 -07:00
Jeffrey Pfau 7a0fb72e7e Stub out SWI 2013-04-06 19:58:01 -07:00
Jeffrey Pfau d620357ac8 Stub out coprocessor 2013-04-06 19:52:45 -07:00
Jeffrey Pfau 5dd2379dd5 Cleanup 2013-04-06 19:38:14 -07:00
Jeffrey Pfau f2a1257fbb Stub out branch instructions 2013-04-06 19:22:14 -07:00
Jeffrey Pfau 1858dfeb1c Stub out LDM/STM 2013-04-06 18:44:52 -07:00
Jeffrey Pfau 7b82cc0040 Fill in LDR/STR block 2013-04-06 13:05:53 -07:00
Jeffrey Pfau befba57fe6 Simple error checking 2013-04-06 04:34:19 -07:00
Jeffrey Pfau 9efc945f1b Add store callbacks 2013-04-06 04:20:44 -07:00
Jeffrey Pfau 96da9c7ef1 Partially implement LDR/STR and friends 2013-04-06 04:16:34 -07:00
Jeffrey Pfau 92e74a78e1 Apparently I can't count to 8 2013-04-06 02:49:54 -07:00
Jeffrey Pfau cb2469c4f4 Filler for more instructions 2013-04-06 00:32:01 -07:00
Jeffrey Pfau a01fc986a3 Begin GBA structure 2013-04-05 02:17:22 -07:00
Jeffrey Pfau cd07dee7b1 Implement immediate shifter 2013-04-05 00:44:53 -07:00
Jeffrey Pfau c07df4a337 Fill in immediates 2013-04-04 03:12:22 -07:00
Jeffrey Pfau 63f6f53a80 Implement BIC, MOV, MVN, ORR 2013-04-04 02:42:17 -07:00
Jeffrey Pfau dbee1e871e Add stubs, including for illegal instructions 2013-04-04 02:36:53 -07:00
Jeffrey Pfau e093960316 Fill in more opcodes, implement CMN, CMP, TEQ, TST 2013-04-04 02:31:32 -07:00
Jeffrey Pfau fd4ee12eb5 Implement ADD, ADC, RSB, RSC, SUB 2013-04-04 02:04:51 -07:00
Jeffrey Pfau c1a8042db4 Fill in more opcodes, implement EOR 2013-04-04 01:27:51 -07:00
Jeffrey Pfau 4025bf89f2 Add boilerplate for instructions 2013-04-04 00:46:50 -07:00
Jeffrey Pfau bf72532715 Add more framework for loading instructions 2013-04-03 22:34:49 -07:00
Jeffrey Pfau 009bef870c Initial commit 2013-04-03 22:12:15 -07:00