Commit graph

1886 commits

Author SHA1 Message Date
Paul Holden
a22e6bfbd4 Dynarec first pass. Gives a small speedup but lots of improvements to come 2012-06-30 11:32:15 +01:00
Paul Holden
e3d4597a75 Avoid some overhead in performBranch 2012-06-27 08:03:08 +01:00
Paul Holden
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 2012-06-27 07:55:59 +01:00
Paul Holden
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 2012-06-27 07:29:55 +01:00
Paul Holden
b65ad9ea55 Actually, better just to use cpu0.pc everywhere, and avoid passing pc through to ops that don't need it. 2012-06-26 20:29:45 +01:00
Paul Holden
f0a8018870 Use the pc passed into the function 2012-06-25 22:55:06 +01:00
Paul Holden
23dd31fba8 Fix indent 2012-06-25 22:16:15 +01:00
Paul Holden
be8680f1bc Reformat op tables 2012-06-25 22:10:52 +01:00
Paul Holden
8c11c03991 Should process all events that fire 2012-06-24 23:21:41 +01:00
Paul Holden
2a2a3d9707 ~ 2012-06-24 23:17:55 +01:00
Paul Holden
e23490ac44 Hoist out some code to a function 2012-06-24 23:17:43 +01:00
Paul Holden
9dd83416f2 Add ed .gitignore 2012-06-24 17:51:51 +01:00
Paul Holden
57bfb95927 Update project description 2012-06-22 00:07:14 +01:00
Paul Holden
664280726a Implement Line3D 2012-06-07 22:44:38 +01:00
Paul Holden
c983620114 Implement gsSPVertex for gbi0 and gbi1 2012-06-07 22:09:16 +01:00
Paul Holden
8b0884beed Implement disassembly for a couple more GB1 ops 2012-06-07 21:27:25 +01:00
Paul Holden
75df812d94 Handle reads from cart d2a1 2012-06-07 20:29:29 +01:00
Paul Holden
cdc340ab81 Lighting first-pass, and texture coord generation (which doesn't seem to work) 2012-06-07 19:56:56 +01:00
Paul Holden
0c63e62bdc Simple blender implementation now works 2012-06-03 16:50:20 +01:00
Paul Holden
6a19514a44 Make the display bigger and reorganise frontend to accomodate it 2012-06-03 16:22:59 +01:00
Paul Holden
c791e969f0 Dynamically generate fragment shaders to simulate all of the possible n64 blend modes. 2012-06-03 14:31:25 +01:00
Paul Holden
c608bf85e2 Disassemble SetCombine 2012-06-03 10:25:28 +01:00
Paul Holden
83e0fb7a25 Support for various setXYZColour routines 2012-06-03 10:08:56 +01:00
Paul Holden
2dc1c47021 Fix 5551 colour unpack bug 2012-06-03 09:57:30 +01:00
Paul Holden
f491d17a93 HLE graphics improvements - texture support 2012-06-03 09:57:09 +01:00
Paul Holden
0467281a2d typo in comment 2012-06-02 08:13:57 +01:00
Paul Holden
fc74dd0734 Break out of interpreter every time we render, to ensure the display updates frame by frame 2012-06-02 08:12:52 +01:00
Paul Holden
805e7ba59f Implement some more gbi disassembly 2012-05-21 00:33:22 +01:00
Paul Holden
92cadf91e6 Matrix multiple was wrong way around 2012-05-20 23:43:16 +01:00
Paul Holden
4c78d6ee68 Show vertex and matrix data in display lists (click to toggle visibility) 2012-05-16 23:33:26 +01:00
Paul Holden
e874c402ca WebGL rendering first pass 2012-05-16 08:38:48 +01:00
Paul Holden
4d10dc4e98 Implement some more gbi1 commands 2012-05-13 21:15:47 +01:00
Paul Holden
887e8b5633 First pass save/load eeprom to local storage 2012-05-13 19:25:01 +01:00
Paul Holden
56232b03bb Clear all memory on resetting 2012-05-13 19:24:37 +01:00
Paul Holden
bd8b4817fb Fix fillrect disassembly 2012-05-13 18:32:21 +01:00
Paul Holden
9adbd13e09 Display list disassembly 2012-05-12 17:13:46 +01:00
Paul Holden
92f519c0ba Change 'bytes' to arrayBuffer 2012-05-10 23:18:06 +01:00
Paul Holden
46f7dcdc53 Remove a layer of indirection for most memory accesses 2012-05-10 23:14:55 +01:00
Paul Holden
02b967feed Detect RSP version string 2012-05-10 00:43:46 +01:00
Paul Holden
96abbd792f Refactor out start of hle.js 2012-05-09 00:26:22 +01:00
Paul Holden
d03273d0f6 Bump loop up to 1m ops at a time 2012-05-08 23:57:38 +01:00
Paul Holden
164b1df215 Implement mapped reads 2012-05-08 23:57:08 +01:00
Paul Holden
d6b819056e Correctly simulate DP interrupt for graphics task, and add a counter for each task we execute 2012-05-08 23:56:32 +01:00
Paul Holden
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. 2012-05-08 23:55:23 +01:00
Paul Holden
db567f32b0 Use DataView to handle endian conversion, and cut a lot of fat out of memory accesses 2012-05-08 23:52:28 +01:00
Paul Holden
f311fe7d5d Implement basic eeprom support 2012-05-08 23:49:06 +01:00
Paul Holden
47fa1c9a96 turn off more debug output 2012-05-08 23:47:44 +01:00
Paul Holden
938d36ec47 cop1 fixes/additions 2012-05-08 23:45:39 +01:00
Paul Holden
b7c2a32077 Silence some more spam 2012-05-08 23:43:34 +01:00
Paul Holden
c16b126bad Fix DDIV. Simplify DDIVU register loads. Implement DADDI, DADDIU. Fix XORI (wasn't copying top bits). Fix LWL/LWR. 2012-05-08 23:41:09 +01:00