Commit graph

  • 16c681c8af Remove dedicated rominfo pane. Make output window white on black Paul Holden 2012-07-03 07:51:58 +01:00
  • b2a578ed1e Only update various bits of UI when active Paul Holden 2012-07-03 07:43:56 +01:00
  • b213449e88 Alias hi/lo regs as Int32Arrays so we can avoid more deopts Paul Holden 2012-07-03 07:22:22 +01:00
  • 295da6ed50 Some more _signed microopts. Remove some repeated calls to rs()/rt() Paul Holden 2012-07-03 07:15:23 +01:00
  • fdaeee9ff6 Perform nextPC/branchTarget setup as a part of postOp - more scope for runtime to optimise Paul Holden 2012-07-02 22:58:09 +01:00
  • 91ef5421a5 Use _signed registers where possible to avoid deopts (plus some associated optimisations) Paul Holden 2012-07-02 22:54:55 +01:00
  • 303c46714b Fix tagged-to-i deopts coming from SLT instructions Paul Holden 2012-07-01 22:00:32 +01:00
  • 152bd08012 Special case or with r0 for rs/rt Paul Holden 2012-07-01 11:48:55 +01:00
  • 7c2ef24e23 Seems if/else is faster than ternary - http://jsperf.com/ternary-vs-and-or-vs-if-else/2 Paul Holden 2012-07-01 11:34:39 +01:00
  • 84125913ff Rename opsExecuted to opsCompiled Paul Holden 2012-07-01 10:50:46 +01:00
  • 29cd5cfbff Make handleCounter use cpu stuffToDo flags, so we can simplify the code a little bit Paul Holden 2012-07-01 10:50:15 +01:00
  • d2e0b3bff3 Crack out args for add/sub/and/or/xor/nor. Hardcode next pc (should always be known in advace) Paul Holden 2012-07-01 10:37:38 +01:00
  • e8270fafe5 Increase the number of ops in a fragment Paul Holden 2012-06-30 21:14:25 +01:00
  • 3306e609ff Hoist out special and regimm instructions Paul Holden 2012-06-30 21:13:39 +01:00
  • a2e0c6c1fc Fix issue with interrupts being missed if fragments were executing (wasn't checking stuffToDo) Paul Holden 2012-06-30 12:15:34 +01:00
  • a22e6bfbd4 Dynarec first pass. Gives a small speedup but lots of improvements to come Paul Holden 2012-06-30 11:32:15 +01:00
  • e3d4597a75 Avoid some overhead in performBranch Paul Holden 2012-06-27 08:03:08 +01:00
  • 80255ada54 Further simplifications to the way that the PC is updated. There's an explicit nextPC now, which is set directly and avoids some horrible fiddling with .pc to compensate for the post-execute increment Paul Holden 2012-06-27 07:55:59 +01:00
  • 8c90d52a64 Make the use of delayPC a little more clear: keep delayPC constant as instructions execute. Use branchTarget to indicate that a branch has been taken Paul Holden 2012-06-27 07:29:55 +01:00
  • b65ad9ea55 Actually, better just to use cpu0.pc everywhere, and avoid passing pc through to ops that don't need it. Paul Holden 2012-06-26 20:29:45 +01:00
  • f0a8018870 Use the pc passed into the function Paul Holden 2012-06-25 22:55:06 +01:00
  • 23dd31fba8 Fix indent Paul Holden 2012-06-25 22:16:15 +01:00
  • be8680f1bc Reformat op tables Paul Holden 2012-06-25 22:10:52 +01:00
  • 8c11c03991 Should process all events that fire Paul Holden 2012-06-24 23:21:41 +01:00
  • 2a2a3d9707 ~ Paul Holden 2012-06-24 23:17:55 +01:00
  • e23490ac44 Hoist out some code to a function Paul Holden 2012-06-24 23:17:43 +01:00
  • 9dd83416f2 Add ed .gitignore Paul Holden 2012-06-24 17:51:51 +01:00
  • 57bfb95927 Update project description Paul Holden 2012-06-22 00:07:14 +01:00
  • 664280726a Implement Line3D Paul Holden 2012-06-07 22:44:38 +01:00
  • c983620114 Implement gsSPVertex for gbi0 and gbi1 Paul Holden 2012-06-07 22:09:16 +01:00
  • 8b0884beed Implement disassembly for a couple more GB1 ops Paul Holden 2012-06-07 21:27:25 +01:00
  • 75df812d94 Handle reads from cart d2a1 Paul Holden 2012-06-07 20:29:29 +01:00
  • cdc340ab81 Lighting first-pass, and texture coord generation (which doesn't seem to work) Paul Holden 2012-06-07 19:56:56 +01:00
  • 0c63e62bdc Simple blender implementation now works Paul Holden 2012-06-03 16:50:20 +01:00
  • 6a19514a44 Make the display bigger and reorganise frontend to accomodate it Paul Holden 2012-06-03 16:22:59 +01:00
  • c791e969f0 Dynamically generate fragment shaders to simulate all of the possible n64 blend modes. Paul Holden 2012-06-03 14:31:25 +01:00
  • c608bf85e2 Disassemble SetCombine Paul Holden 2012-06-03 10:25:28 +01:00
  • 83e0fb7a25 Support for various setXYZColour routines Paul Holden 2012-06-03 10:08:56 +01:00
  • 2dc1c47021 Fix 5551 colour unpack bug Paul Holden 2012-06-03 09:57:30 +01:00
  • f491d17a93 HLE graphics improvements - texture support Paul Holden 2012-06-03 09:57:09 +01:00
  • 0467281a2d typo in comment Paul Holden 2012-06-02 08:13:57 +01:00
  • fc74dd0734 Break out of interpreter every time we render, to ensure the display updates frame by frame Paul Holden 2012-06-02 08:12:52 +01:00
  • 805e7ba59f Implement some more gbi disassembly Paul Holden 2012-05-21 00:33:22 +01:00
  • 92cadf91e6 Matrix multiple was wrong way around Paul Holden 2012-05-20 23:43:16 +01:00
  • 4c78d6ee68 Show vertex and matrix data in display lists (click to toggle visibility) Paul Holden 2012-05-16 23:33:26 +01:00
  • e874c402ca WebGL rendering first pass Paul Holden 2012-05-16 08:38:48 +01:00
  • 4d10dc4e98 Implement some more gbi1 commands Paul Holden 2012-05-13 21:15:47 +01:00
  • 887e8b5633 First pass save/load eeprom to local storage Paul Holden 2012-05-13 19:25:01 +01:00
  • 56232b03bb Clear all memory on resetting Paul Holden 2012-05-13 19:24:37 +01:00
  • bd8b4817fb Fix fillrect disassembly Paul Holden 2012-05-13 18:32:21 +01:00
  • 9adbd13e09 Display list disassembly Paul Holden 2012-05-12 17:13:46 +01:00
  • 92f519c0ba Change 'bytes' to arrayBuffer Paul Holden 2012-05-10 23:18:06 +01:00
  • 46f7dcdc53 Remove a layer of indirection for most memory accesses Paul Holden 2012-05-10 23:14:55 +01:00
  • 02b967feed Detect RSP version string Paul Holden 2012-05-10 00:43:46 +01:00
  • 96abbd792f Refactor out start of hle.js Paul Holden 2012-05-09 00:26:22 +01:00
  • d03273d0f6 Bump loop up to 1m ops at a time Paul Holden 2012-05-08 23:57:38 +01:00
  • 164b1df215 Implement mapped reads Paul Holden 2012-05-08 23:57:08 +01:00
  • d6b819056e Correctly simulate DP interrupt for graphics task, and add a counter for each task we execute Paul Holden 2012-05-08 23:56:32 +01:00
  • 5eddb18f36 Improve sync handling - try to consume full packets so we can potentially keep tracking along when just the registers mismatch. Change event logic so that we correcty consume multiple events if they all expire at the same time. Paul Holden 2012-05-08 23:55:23 +01:00
  • db567f32b0 Use DataView to handle endian conversion, and cut a lot of fat out of memory accesses Paul Holden 2012-05-08 23:52:28 +01:00
  • f311fe7d5d Implement basic eeprom support Paul Holden 2012-05-08 23:49:06 +01:00
  • 47fa1c9a96 turn off more debug output Paul Holden 2012-05-08 23:47:44 +01:00
  • 938d36ec47 cop1 fixes/additions Paul Holden 2012-05-08 23:45:39 +01:00
  • b7c2a32077 Silence some more spam Paul Holden 2012-05-08 23:43:34 +01:00
  • c16b126bad Fix DDIV. Simplify DDIVU register loads. Implement DADDI, DADDIU. Fix XORI (wasn't copying top bits). Fix LWL/LWR. Paul Holden 2012-05-08 23:41:09 +01:00
  • e8914f7fa5 Call the top-level toggleRun/step functions, so we correctly update the ui state Paul Holden 2012-05-08 23:36:25 +01:00
  • 2805a05655 Disassembly support for BC1 instructions. Improve formating for proc-proc register moves Paul Holden 2012-05-08 23:35:36 +01:00
  • a90078456a Fix LB/LH sign extension Paul Holden 2012-05-07 19:19:59 +01:00
  • 68c304074c Sync testing framework, for verifying execution against another emulator Paul Holden 2012-05-07 11:14:25 +01:00
  • 0606d23c04 Set RI_SELECT_REG, which avoids lots of initialisation Paul Holden 2012-05-07 11:07:25 +01:00
  • 7376bfd91c Leave some TODOs Paul Holden 2012-05-07 11:06:56 +01:00
  • f2854d5328 HLE task emulation bare bones Paul Holden 2012-05-07 11:06:34 +01:00
  • aeea9eb39c Rename PIFUpdateControl, enable all controllers and mempacks Paul Holden 2012-05-07 11:05:50 +01:00
  • 191407a51c Fix bug - setting flag on wrong register bank Paul Holden 2012-05-07 11:04:53 +01:00
  • c471878bea Ensure that reads from VI_CURRENT_REG slowly increment Paul Holden 2012-05-07 11:04:06 +01:00
  • 718782e3f3 Expose checkSIStatusConsistent Paul Holden 2012-05-07 11:01:50 +01:00
  • 2102b6f414 Silence some spammy output Paul Holden 2012-05-07 11:00:11 +01:00
  • 5b82808dd3 Implement speedhack for BNE - speeds up emulation significantly Paul Holden 2012-05-07 10:55:28 +01:00
  • ab2c821b6b Update the order of the main dispatch loop a little Paul Holden 2012-05-07 10:53:47 +01:00
  • eebb642d40 Compare interrupt Paul Holden 2012-05-07 10:48:17 +01:00
  • ac1a56811f Add support for cop1unusable exception Paul Holden 2012-05-07 10:30:43 +01:00
  • ce8335f3ea Add NOR, fix BGTZ/BGTZL Paul Holden 2012-05-07 10:28:08 +01:00
  • b3e097e6bb Fix MULTU, DDIVU Paul Holden 2012-05-07 10:26:17 +01:00
  • e8b7dd86c6 Silence some spammy output Paul Holden 2012-05-07 10:17:50 +01:00
  • 687d4b1814 Ensure TLB is initialised with invalid entries, and make it a bit quieter Paul Holden 2012-05-07 10:16:15 +01:00
  • 45604d5aba Fix shift disassembly, and SRL/SRA were the wrong way around Paul Holden 2012-05-07 10:12:58 +01:00
  • f76f09d4fc Handle SP writes - get as far as firing the first RSP task now! Paul Holden 2012-05-05 13:31:58 +01:00
  • 8d3dbd25d1 Trigger vertical blanks. Silence sp_reg writes Paul Holden 2012-05-05 13:29:41 +01:00
  • bb9a666711 LWL/LWR Paul Holden 2012-05-05 12:22:52 +01:00
  • a617a4f869 SI transfer and peripheral processing first pass Paul Holden 2012-05-05 12:22:39 +01:00
  • 0465233cb9 Added SWL/SWR Paul Holden 2012-05-05 09:35:16 +01:00
  • 5b068c8a31 Make halt() emit red text. Fix a typo. Don't display a warning when halting Paul Holden 2012-05-05 09:34:09 +01:00
  • 1a1df1f3e9 Added an experimental memory access history thing: show the last N memory reads/writes as you single step Paul Holden 2012-05-05 09:31:56 +01:00
  • 14f5bb5107 Basic support for time-based events Paul Holden 2012-05-02 08:12:55 +01:00
  • e776e5578f Fix layout Paul Holden 2012-05-02 00:16:41 +01:00
  • d64a55d537 Updated bootstrap Paul Holden 2012-05-02 00:14:13 +01:00
  • e400eeabf4 Basic support for hand-entered labels. Would be nice to allow interective editing of these Paul Holden 2012-05-01 23:39:54 +01:00
  • 1701ca69d5 Lots of cop1 support Paul Holden 2012-05-01 23:38:53 +01:00
  • e689cab1c1 Remove debugging for DIV/DIVU Paul Holden 2012-05-01 09:20:55 +01:00
  • 858c97663f cpu1 view. Overall layout needs tidying Paul Holden 2012-05-01 09:19:54 +01:00