89 Commits (916d20a5dbab97d4825b7f508820bfa3a0965172)
 

Author SHA1 Message Date
Nico de Poel 916d20a5db Display PAL and NTSC on the debug status text, making it easier to distinguish what we're outputting when. 3 years ago
Nico de Poel 5442b2d4c9 Added a draw function for flat colored quads, useful for debugging 3 years ago
Nico de Poel 21101b3287 Added a special case for drawing faces that are single triangles. 3 years ago
Nico de Poel 3b89d01ec1 Embedded the texture atlas data inside the .ps1bsp file and name those files after the actual map. 3 years ago
Nico de Poel ef0d2ad723 Changed dot product and point-plane distance functions to use vector pointers as input. 3 years ago
Nico de Poel 4146238e1e Moved frustum planes to fast scratchpad RAM for another appreciable speed boost. 3 years ago
Nico de Poel a7e29ee420 Fixed issue with model data memory alignment, officially using model #0 now to draw the static world geometry. 3 years ago
Nico de Poel de12e4269f Minor stuff 3 years ago
Nico de Poel 2cb5bcb856 Added support for setting the clear color to a generic sky color. 3 years ago
Nico de Poel 26d541e48f Eliminated recursion from the BSP traversal, using fast RAM to hold the node stack. Yet another appreciable speed boost. 3 years ago
Nico de Poel 520e62922c Perform backface culling early to save on a bunch of needless linked list iterations. 3 years ago
Nico de Poel 32237fc6ec Fixed a few issues and further optimized the quad drawing code. 3 years ago
Nico de Poel 4f2d70cc82 Added some macros to make the optimized drawing code more readable, and applied the same optimization to water drawing. 3 years ago
Nico de Poel 74a36f0938 Found a 10% performance boost by simply reordering data access when filling in polygon data, and by blitting UV and RGB values with a single copy. 3 years ago
Nico de Poel 38e91f4c3a BSP file now includes model data for dynamic world objects 3 years ago
Nico de Poel 97d23f0bc9 Removed unused texture metadata fields. Only the texture page and precalculated per-vertex UVs are needed to draw textured polygons. 3 years ago
Nico de Poel 542a81b68c Draw lava, slime and teleporters as liquids, but not transparent. 3 years ago
Nico de Poel 314b52e99e Added a separate CLUT for transparent surfaces, and set semi-transparency mode on water polygons. 3 years ago
Nico de Poel ae080953f7 Rewrote the other face drawing functions to ditch the vertex copying stage too. 3 years ago
Nico de Poel be7eb87685 Ditched the copy-to-scratch-RAM step for drawing textured faces, which apparently is no longer needed to run on real hardware. 3 years ago
Nico de Poel ba83d78aa8 Removed the need for global variables for sorting leafs and faces 3 years ago
Nico de Poel 4d138b4199 Added an extra face sorting step so we can draw faces in front-to-back order: 3 years ago
Nico de Poel a8d3bf567b First pass at leaf-based rendering order: 3 years ago
Nico de Poel 5e738340b8 Added box-frustum test code, used to experiment with more accurate per-leaf bounding box frustum culling. 3 years ago
Nico de Poel 812bcb6a63 Some micro-optimizations in the face drawing code. The PS1 really does favor simple counters over pointer arithmetic. 3 years ago
Nico de Poel b0893a902d Added support for leaf-based frustum culling, but leaving it disabled for now. 3 years ago
Nico de Poel ea2b963653 Implemented per-node frustum culling based on bounding spheres. 3 years ago
Nico de Poel ec0eebce3c Fixed frustum calculation and implemented point and sphere tests. Now also tested and looking decent. 3 years ago
Nico de Poel 0f450cf6b1 Added initial frustum calculation based on screen parameters and view matrix. 3 years ago
Nico de Poel b1e568e5c3 Added check to backface culling to see if the face is behind the camera. 3 years ago
Nico de Poel 7232e061d7 Added a fast face drawing routine, which is basically what we had before: 3 years ago
Nico de Poel 85a8b332c5 Some reorganization of face drawing code; allow better separation between drawing methods, and require the "enable texturing" check only once ahead of drawing. 3 years ago
Nico de Poel c9bee9d500 Draw water surfaces as unlit textured polygons 3 years ago
Nico de Poel 73903474e4 Moved polygon drawing routines into a separate header file 3 years ago
Nico de Poel 8b34fb1950 Small tweaks: made background black to cover up seams, defined a few flags 3 years ago
Nico de Poel 3b5a59dae6 Geometry, textures and lighting now all working correctly. 3 years ago
Nico de Poel ebbc01c672 Overhaul of geometry representation, with correct UV'ing and more finely tesselated surfaces. 3 years ago
Nico de Poel 62cfb91f1c Made some tweaks after experimenting with interlaced mode: 3 years ago
Nico de Poel 989ec0bafb Simplified toggle behavior for button inputs, and added an option to toggle texturing with the circle button. 3 years ago
Nico de Poel 9c1cbd467e Small tweaks: 3 years ago
Nico de Poel a478a7c1ed Fixed a silly mistake in the primitive buffer allocation space check 3 years ago
Nico de Poel b43767ebb8 Realized we can include the UV offsets into the UVs stored in the preprocessed map file, so we don't need to add those at runtime. Easy performance win. 3 years ago
Nico de Poel 35d91b1de2 Switched to map atlas image file generated directly by the preprocessing tool, rather than a .pcx converted by img2tim. 3 years ago
Nico de Poel 6a3554511b Simplified controls, so that strafe left/right only moves on the X/Y plane, while up/down only moves along the Z axis. 3 years ago
Nico de Poel 5549e3f126 Textures are now showing up somewhat correctly! 3 years ago
Nico de Poel 297ae187f6 Fixed some issues with texture atlas generation. 3 years ago
Nico de Poel 76a6dc92d5 First pass at implementing texturing of face polygons. 3 years ago
Nico de Poel 1a88f6e052 Fixed the wonky camera rotation, though the left/right vectors are still off. 3 years ago
Nico de Poel c8c44b352f A bit of cleanup ahead of attempting to make textures work 3 years ago
Nico de Poel 36c409115a Use per-face vertex lighting for improved geometry definition and less light leaking between sharp-angled surfaces. 3 years ago