Commit graph

  • 48ef733a55 Give a hint about cop2/cop3 instructions in the disassembly. Paul Holden 2023-07-14 00:13:53 +01:00
  • 3d10e42079 Implement trap instructions. Paul Holden 2023-07-14 00:10:06 +01:00
  • 8ddbbc5455 Rename throw -> raise. Paul Holden 2023-07-14 00:09:20 +01:00
  • 000c8dffcc Fix handleInterrupt. Paul Holden 2023-07-13 23:36:49 +01:00
  • d8a2cefd2d Implement RESERVED. Paul Holden 2023-07-13 23:16:58 +01:00
  • 71f05736b9 Delete some debug logging. Paul Holden 2023-07-13 23:03:57 +01:00
  • 3d6927e881 Implement SYSCALL and BREAK. Paul Holden 2023-07-13 23:02:07 +01:00
  • aa7ae774e2 Remove some noisy logging. Paul Holden 2023-07-13 22:25:19 +01:00
  • 8473048ca3 Add support for some identity CVT instructions. Paul Holden 2023-07-13 22:21:53 +01:00
  • 0e2fefa7de Generate cop unusable exceptions for cop2 and cop3. Paul Holden 2023-07-13 22:20:14 +01:00
  • 7caa2ac3f4 Throw an exception if CTC1 is called without cop1 usable. Paul Holden 2023-07-13 22:15:17 +01:00
  • 8668555bef Mask unwritable bits of the status register. Paul Holden 2023-07-12 23:20:03 +01:00
  • b170ee3e52 Add disassembly for DMFC0 and DMTC0. Paul Holden 2023-07-12 23:09:35 +01:00
  • fee925cd8d Rename controlSR to controlStatus. Paul Holden 2023-07-12 23:06:42 +01:00
  • f50aaea149 Remove logging for read-only control registers. Paul Holden 2023-07-12 23:03:42 +01:00
  • c43f16f8e1 Stop logging context register writes. Paul Holden 2023-07-12 23:00:58 +01:00
  • 3a075ae1de Partially implement XContext masking. Paul Holden 2023-07-12 22:58:56 +01:00
  • 922856354f Mask writes to the wired register. Paul Holden 2023-07-12 22:51:51 +01:00
  • f71ccae831 Mask out the writable bits of the context register. Paul Holden 2023-07-12 22:45:07 +01:00
  • 1ea5d0bf79 Add placeholder implementations for DMTC0 and DMTC0 Paul Holden 2023-07-12 22:37:22 +01:00
  • 56c37d2984 Fix MTC0/MFC0 for invalid registers. Paul Holden 2023-07-12 22:25:36 +01:00
  • e7e6ae1aa4 Ignore SYNC (is a nop on Vr4300). Paul Holden 2023-07-12 22:18:10 +01:00
  • d13960cbd6 Remove generateShiftVariable and just inline directly. Paul Holden 2023-07-12 22:16:22 +01:00
  • 4bd883b425 Fix SRAV. Paul Holden 2023-07-12 22:14:12 +01:00
  • 628e58cf21 Explicitly generate SLL. Paul Holden 2023-07-12 22:06:32 +01:00
  • fe92c9b6e4 Explicitly generate SRL. Paul Holden 2023-07-12 22:05:53 +01:00
  • e4e0f5bb40 Fix SRA. Paul Holden 2023-07-12 20:12:07 +01:00
  • 2934c0750f Fix missing closing paren in CVT.S.L. Paul Holden 2023-07-12 19:55:28 +01:00
  • 9cfaa4db7c Template string. Paul Holden 2023-07-12 19:39:18 +01:00
  • a35912cba3 Fix DSLLV, DSRLV, DSRAV with zero shifts. Paul Holden 2023-07-12 13:45:09 +01:00
  • 5af1fe4d00 Add some missing cop0 control reg names. Paul Holden 2023-07-12 13:33:08 +01:00
  • b7ddfe1fc9 Implement LL, LLD, SC, SCD. Paul Holden 2023-07-12 09:00:51 +01:00
  • ef28af573e Fix DDIVU (mixing BigInt and Number). Paul Holden 2023-07-11 23:57:58 +01:00
  • 3296e65eb4 Fix DSRL. Paul Holden 2023-07-11 23:29:37 +01:00
  • 206f1e2928 Fix DSRA. Paul Holden 2023-07-11 23:27:50 +01:00
  • a791225f13 Fix DSLL32. Paul Holden 2023-07-11 23:24:31 +01:00
  • 54206815c4 Fix DSUB (undefined helper). Paul Holden 2023-07-11 23:21:05 +01:00
  • f7b99215e3 Fix DSLL for shift of 32. Paul Holden 2023-07-11 23:20:43 +01:00
  • b2ec2d4873 Include address and value in failed rom accesses. Paul Holden 2023-07-10 23:28:05 +01:00
  • 272097b19a Tidy LWL, LWR, SWL, SWR. Paul Holden 2023-07-10 23:24:04 +01:00
  • 824bbba928 Print md5 on boot. Paul Holden 2023-07-10 23:05:11 +01:00
  • 592cfb22c8 Add TODO for LDL/SDR. Paul Holden 2023-07-10 23:03:46 +01:00
  • e82fd7afd4 Add save type for 56a48bb9af762b5b. Paul Holden 2023-07-10 23:03:27 +01:00
  • 4d02645a3f Add LDL, LDR, SDL, SDR. Paul Holden 2023-07-10 23:03:09 +01:00
  • 663dfed48b Add toString64_bigint. Paul Holden 2023-07-10 23:01:27 +01:00
  • b921414899 Add MD5 support, based on https://github.com/blueimp/JavaScript-MD5. Paul Holden 2023-07-08 09:36:37 +01:00
  • c487299b70 Implement missing CVT instructions. Paul Holden 2023-07-07 20:58:33 +01:00
  • 45b3c24381 Implement full width mode. Paul Holden 2023-07-07 20:48:57 +01:00
  • 1f714d397f Fix DDIV and DDIVU. Paul Holden 2023-07-07 09:33:57 +01:00
  • 0fe2ae5e29 Fix DIV and DIVU. Paul Holden 2023-07-07 09:16:32 +01:00
  • 9ccbff688d Fix DMULT and DMULTU. Paul Holden 2023-07-07 08:27:25 +01:00
  • f64d931003 Ensure executeCop1 instruction is synced on boot. Paul Holden 2023-07-07 08:25:48 +01:00
  • 3ae5c9a291 Handle reads from 0xa5000508. Paul Holden 2023-07-06 22:14:39 +01:00
  • 2f794221e5 Handle memory access outside of rdram range. Paul Holden 2023-07-06 22:13:21 +01:00
  • 25a81c52c9 PI fixes: Paul Holden 2023-07-06 21:34:54 +01:00
  • b88cf3a377 Improve error message - this isn't necessarily a read. Paul Holden 2023-07-05 23:12:55 +01:00
  • df8beb140f Print values in checkCauseIP3Consistent. Paul Holden 2023-07-05 23:03:28 +01:00
  • e909c6cf9e Add basic SRAM support. Paul Holden 2023-07-05 23:03:09 +01:00
  • 85e56de0cd Template strings. Paul Holden 2023-07-05 00:07:25 +01:00
  • d90150c2b7 Init ucode_table for more microcodes. Paul Holden 2023-07-05 00:04:37 +01:00
  • 3c9bcbbfd1 Implement executeSetRDPOtherMode. Paul Holden 2023-07-05 00:04:09 +01:00
  • 00f9592c42 Width>0x300 hack does seem to be needed. Paul Holden 2023-07-04 23:41:25 +01:00
  • 22557412d8 Don't rendering anythign if the mode isn't set. Paul Holden 2023-07-04 23:04:48 +01:00
  • c87b9f850e Move computeDimensions to vi.js. Paul Holden 2023-07-04 23:00:54 +01:00
  • a4a1a76226 Remove vi prefix. Paul Holden 2023-07-04 22:56:27 +01:00
  • 6a3e14e0eb Use accessors for registers. Paul Holden 2023-07-04 22:50:33 +01:00
  • 7cb2b2b121 Tidy VI register names. Paul Holden 2023-07-04 22:43:10 +01:00
  • 86a71b34a5 Improve microcode detection. Paul Holden 2023-07-04 21:18:36 +01:00
  • 0c394f2c77 Disable noisy mempack logging. Paul Holden 2023-07-04 20:02:30 +01:00
  • 14b546f82d Improve boot constants. Paul Holden 2023-07-04 20:00:35 +01:00
  • acc1772404 Don't render anything if the origin is not set. Paul Holden 2023-07-04 19:58:01 +01:00
  • 620b8da57f Fix y-res scaling hack. Paul Holden 2023-07-04 19:57:13 +01:00
  • 01e6bd8734 Add a dump() helper. Paul Holden 2023-07-04 19:49:35 +01:00
  • db19528564 Remove the y scaling hack. Paul Holden 2023-07-04 19:48:26 +01:00
  • d6f27bbec1 Fix SM64 (E). Paul Holden 2023-07-04 00:10:02 +01:00
  • f7014c4b02 Tidy vi width/height calculation and use for raw framebuffer code. Paul Holden 2023-07-04 00:00:47 +01:00
  • d34469db3d Tidy setViScales a little. Paul Holden 2023-07-03 22:41:06 +01:00
  • 0f2ae9be13 Calc viHeight using constant of 80/79 and truncate to int. Paul Holden 2023-07-03 22:40:00 +01:00
  • 05020bf891 Clear the CAUSE_IP3 bit when the MI interrupt mask is cleared. Paul Holden 2023-07-03 22:14:56 +01:00
  • 0b49203bfc Call presentBackBuffer on every vertical blank. Paul Holden 2023-07-02 22:47:47 +01:00
  • 10f072f796 Make presentBackBuffer work with 32bit framebuffers. Paul Holden 2023-07-02 22:29:37 +01:00
  • 356f0a9004 Overhaul VI interrupts. Paul Holden 2023-07-02 20:53:11 +01:00
  • 6922cf0bd6 Init rominfo earlier so devices can reference it. Paul Holden 2023-07-02 19:31:55 +01:00
  • fbdc75dd88 Fix copyToRDRAM (assigning to const variable). Paul Holden 2023-07-02 19:31:17 +01:00
  • bba874c354 Store tv type in rominfo. Paul Holden 2023-07-02 12:34:16 +01:00
  • 4e524cf21e vI changes break Wetrix. Paul Holden 2023-07-01 21:49:46 +01:00
  • 3371e95cac Convert load_s64_as_double to use BigInt. Paul Holden 2023-07-01 21:48:52 +01:00
  • fc8ffb401c Fix store_float_as_long. Paul Holden 2023-07-01 21:46:03 +01:00
  • f41f4fe0e1 Add a TODO for VI_CURRENT_REG. Paul Holden 2023-07-01 21:37:06 +01:00
  • 49a4a3559c Rewrite store_float_as_long using BigInt. Paul Holden 2023-06-30 20:53:51 +01:00
  • b83616dabf k1Shift32 is unused. Paul Holden 2023-06-30 20:38:19 +01:00
  • e9242acc5c Rewrite DADD/DSUB etc using BigInt. Paul Holden 2023-06-30 20:30:30 +01:00
  • 35b498241a Remove getGPR_u64 (now unused) Paul Holden 2023-06-30 18:36:30 +01:00
  • c6da98abd0 Fix DIV and DIVU with negative numbers. Paul Holden 2023-06-30 18:34:17 +01:00
  • c4f105446d Rewrite DDIV and DDIVU to use BigInt. Paul Holden 2023-06-30 17:37:18 +01:00
  • 99c99bf84a Remove getHi32 as it's no longer used. Paul Holden 2023-06-30 16:24:26 +01:00
  • 0d65fd5b2e Use warn() rather than halt() for "Invalid Operation". Paul Holden 2023-06-30 16:23:15 +01:00
  • db0394b93f Tidy Paul Holden 2023-06-30 16:22:10 +01:00
  • 7bff96d4ab Fix precision errors in multiplication instructions. Paul Holden 2023-06-30 16:21:51 +01:00
  • 3fe82fd50c Use bool constants. Paul Holden 2023-06-29 09:03:08 +01:00