Commit Graph

  • 3167f1474e Faces can now carry their own per-vertex lighting data, instead of sharing all vertex data with adjacent faces. Nico de Poel 2023-01-16 15:20:07 +0100
  • d7a4957452 Re-enabled bounds check for primitive buffer. Fixes crashing on larger maps. Nico de Poel 2023-01-16 14:38:27 +0100
  • 08008af2a0 Implemented rudimentary baked lighting through vertex colors and gouraud shading. Nico de Poel 2023-01-15 21:28:53 +0100
  • eb05cec59c Adjusted display values slightly to better match aspect between NTSC and PAL, and for better vertical centering in PAL. Nico de Poel 2023-01-15 19:57:52 +0100
  • f8a4d171a3 Faces now have a vertex index list, which is more space-efficient and allows easy rewrites of polygon topology. Also works quite well with the scratchpad RAM setup. Nico de Poel 2023-01-15 17:16:48 +0100
  • 1336d0b2b5 Reset background and dither flags when switching video modes. Fixes flickering background. Nico de Poel 2023-01-15 16:45:00 +0100
  • 79f1e52d1e Rewrote scratchpad function to work more as I envisioned it: sequential calls will pass on a variable to each other that gets updated with the new offset position in the scratch buffer. Nico de Poel 2023-01-15 15:40:14 +0100
  • a6e9aa1b21 First simple test with scratch memory, just to verify that it works. Nico de Poel 2023-01-15 15:22:59 +0100
  • a68b2c370f Set up some helper functions for memory management, including scratchpad memory. Moved the primitive buffer here too. This will probably have to become inline functions or macros at some point, but for now it's just pure C. Nico de Poel 2023-01-15 15:15:16 +0100
  • f4017d5f56 Modified triangle rendering code so that it finally works on real hardware. Not sure why the original method doesn't work, probably some weird limitation on the memory/GTE register subsystems. This will get rewritten anyway so it doesn't matter much now. Nico de Poel 2023-01-15 14:47:03 +0100
  • 780abe0d84 Fixes to the time system to make it work on real hardware, and prevent potential crash from division by zero. Nico de Poel 2023-01-15 01:07:38 +0100
  • be9719ce03 Made a few changes to the ordering of the display code, which fixes execution on real hardware. This also fixes the text overlay, which now renders on top of the 3D content. Nico de Poel 2023-01-14 16:46:37 +0100
  • 5709d4973c Adapted Select button input to switch between NTSC and PAL, which is a bit more useful at the moment. Nico de Poel 2023-01-14 15:48:03 +0100
  • edd851f9e3 Tweaks to time system: - Init time system first, because it no longer depends on video mode. - Made real time updates less frequent, so it has less impact on performance. Still more than accurate enough. Nico de Poel 2023-01-14 15:34:43 +0100
  • a80c6d490b First implementation of interlaced mode and switching display modes by pressing Select. Still a bit buggy, not sure what I'm doing wrong. Will have to revisit this after performance is improved. Nico de Poel 2023-01-14 15:33:14 +0100
  • adff38b978 Expanded display initialization code with proper handling of both NTSC and PAL aspect ratios, and allowing PAL to render at higher resolution. Also includes provisioning for switching between progressive and interlaced modes. Nico de Poel 2023-01-14 14:32:58 +0100
  • 90d18c3876 Added debug and release build configurations Nico de Poel 2023-01-14 13:28:02 +0100
  • 8b865cdb8a Implemented framerate-independent movement speed Nico de Poel 2023-01-13 13:08:20 +0100
  • a94ec5dc33 Implemented real-time clock, allowing for precise timekeeping and framerate-independent game updates. Nico de Poel 2023-01-13 13:02:58 +0100
  • 5a3b6aac46 First implementation of world loading and rendering. No BSP logic or optimizations in here yet, but something is being displayed! Nico de Poel 2023-01-12 16:12:20 +0100
  • ea44f4e99c First import, with bits of code taken from the MDL viewer prototype, split up into organized units. Nico de Poel 2023-01-12 12:26:48 +0100