Commit graph

1886 commits

Author SHA1 Message Date
Paul Holden
5089f06a8f Execute nextPC update before reading the instruction - if the read executes from vram, this was clobbering jump to exception vector. Think that we still need some special handling to avoid modifying registers if read throws tlb miss/refill 2012-07-26 22:25:43 +01:00
Paul Holden
2c7465009b Fix LD bug - memaddr() was called twice, but the register it was using can be modified 2012-07-26 22:22:15 +01:00
Paul Holden
d340c70615 Poke memory size after initial load 2012-07-26 00:19:06 +01:00
Paul Holden
bc87f9f888 RomDB support - not using save yet. Calculate CIC correctly 2012-07-25 23:11:10 +01:00
Paul Holden
d6c927eba3 Handle F3DLX as GBI1 2012-07-25 21:10:52 +01:00
Paul Holden
7cef3a5888 Silence reads from d1a2 2012-07-25 20:42:03 +01:00
Paul Holden
75d861bed9 Fix a couple of bugs with tile uls/ult offsets 2012-07-25 20:34:16 +01:00
Paul Holden
4cf6b17b13 Support 2 cycle color combiner 2012-07-25 09:22:37 +01:00
Paul Holden
7fe0371701 basic disasssembly for some F3DEX ops 2012-07-25 09:20:21 +01:00
Paul Holden
df18f897f2 Remove DMTC1 halt. Implement CVT.D.L 2012-07-25 09:09:59 +01:00
Paul Holden
4b9f023c83 Slightly more robust implementation of GBI1 detection 2012-07-25 00:28:40 +01:00
Paul Holden
3108b7d0b2 Fix disassembly of cop1 L instructions 2012-07-25 00:28:15 +01:00
Paul Holden
f9fd187f23 Silence some spammy mempack tty 2012-07-24 23:36:37 +01:00
Paul Holden
c79bfe8bb5 Support CI4 textures 2012-07-24 23:36:16 +01:00
Paul Holden
40e9d55691 Fix clampTexture - was obliterating texture if width was ok, but height needed clamping 2012-07-24 23:35:42 +01:00
Paul Holden
b8746b8b5f Support DPC regs, and block out DPS regs 2012-07-24 23:02:12 +01:00
Paul Holden
a13e68cf6e Overhaul blending - Checking force_bl is totallt incorrect. Check alpha_cvg_select and cvg_x_alpha to figure out if we have alpha available, and then see what the blender ops are doing 2012-07-24 09:06:11 +01:00
Paul Holden
4bcfcbceca Refactor texture scale handling - treat 11.5 fixed point distinctly from the texture scale params 2012-07-24 09:03:01 +01:00
Paul Holden
ab4de42f4c Silence some spam from G_MW_CLIP/G_MW_PERSPNORM 2012-07-24 09:00:34 +01:00
Paul Holden
0307f27c25 Support for CI textures 2012-07-22 10:12:35 +01:00
Paul Holden
f75e5d952c Implement Tri2 2012-07-18 00:06:27 +01:00
Paul Holden
0dd3be5d81 Fix displaylist vertex output (cmd was being passed, not cmd1). Also, add the other fields 2012-07-18 00:04:03 +01:00
Paul Holden
5294f79155 Texture scale fixed point fraction is likely 65536, not 65535 2012-07-18 00:02:59 +01:00
Paul Holden
ff7a573cef Share some duplicated code between flushTris and texRect 2012-07-16 23:47:35 +01:00
Paul Holden
a2acad4f47 Support F3DEX 1.21 2012-07-16 23:17:27 +01:00
Paul Holden
68828cc993 Reorder functions, move webgl stuff together 2012-07-16 23:16:50 +01:00
Paul Holden
a4f43dd17a texrect() should use mux stuff for 1/2 cycle modes 2012-07-16 23:12:18 +01:00
Paul Holden
0a28ce0d13 fix indentation 2012-07-14 10:34:15 +01:00
Paul Holden
a6ac75289b Much better code generation for sinstr/dinstr instructions 2012-07-14 10:32:37 +01:00
Paul Holden
3b6b5e6f85 Generate SLTI, SLTIU instrs 2012-07-13 22:21:12 +01:00
Paul Holden
be57e52705 Add generation for more simple branch ops. 2012-07-13 22:01:16 +01:00
Paul Holden
d5a678bfb3 Disable an expensive assert, and hoist 'next fragment' check outside of getNextFragment 2012-07-13 21:36:19 +01:00
Paul Holden
6e134ef94e Don't dump out the ucode info each frame 2012-07-13 21:35:31 +01:00
Paul Holden
38253154a4 Pass cpu0/ram into fragment functions rather than fetching each time 2012-07-13 18:38:10 +01:00
Paul Holden
8b10491d60 Reimplement matrix/vector stuff that we need - sylvester was insanely heavyweight 2012-07-13 18:36:39 +01:00
Paul Holden
3311c211d4 Controls for stick 2012-07-12 08:02:52 +01:00
Paul Holden
5efc6e98cd Texture filter 2012-07-12 00:06:59 +01:00
Paul Holden
0063506ee3 Inline branches, and avoid some work for non-likely branches 2012-07-11 23:48:27 +01:00
Paul Holden
552eab9f1b Change all memory accesses to use Uint8Array shuffles. It's far faster than DataView - see http://jsperf.com/endian-conversion 2012-07-11 23:47:21 +01:00
Paul Holden
d786f0d44a Use a temporary when sign-extending - try to avoid an extra array dereference 2012-07-11 08:11:06 +01:00
Paul Holden
b9131920d7 Generate less garbage from uvs 2012-07-10 23:56:03 +01:00
Paul Holden
7ee21163ca LDC1, SWC1, SDC1 2012-07-10 23:47:09 +01:00
Paul Holden
1d780f076b Using signed read for instruction seems to work ok 2012-07-10 23:30:45 +01:00
Paul Holden
ff618fd24a Add a signed version of control regs 2012-07-10 23:30:08 +01:00
Paul Holden
0602cabea6 Use signed regs for setGPR_64 2012-07-10 23:29:18 +01:00
Paul Holden
e2826f5313 Correctly handle clamp/mirror/wrap - custom mirror code probably isn't needed any more 2012-07-10 23:22:44 +01:00
Paul Holden
da0c48eade IA4 and IA16 support 2012-07-10 22:50:46 +01:00
Paul Holden
c71d276fd0 Very simple controller support (AZSX) 2012-07-10 22:26:41 +01:00
Paul Holden
a572677988 Fix disassemble texrect tile_idx 2012-07-10 22:20:09 +01:00
Paul Holden
4628a50057 Mempack support 2012-07-10 22:19:24 +01:00