Skip to content

Latest commit

 

History

History
57 lines (47 loc) · 2.36 KB

0071-2023-05-01.md

File metadata and controls

57 lines (47 loc) · 2.36 KB

1 May 2023

Previous journal: Next journal:
0070-2023-04-30.md 0072-2023-05-02.md

Raybox

Achievements

  • Fixed the wall edge tracing glitch, yay!
  • Also seems to improve the FPGA memory glitch (though there are still timing errors)
  • Q16.16 is working well
  • Also got other parametric Qm.n options to work. Q11.9 seems to work, for instance.
  • Pictures needed:
    • FPGA setup
    • FPGA glitching - anim gif?
    • Wall edge glitch before and after

Next steps

  • New bug discovered: If player is perfectly on a grid boundary (i.e. fractional part is 0) then something seems to go wrong with working out the map grid cells (at least for those on the right side of the viewplane)...?
    • Maybe saturation test in DDA will fix this.
    • Need to verify this same bug exists prior to all the Q16.16 changes -- Cherry-pick the wall edge glitch fix?
  • Implement simulation inspection of some signals, esp. player data.
  • Fix FPGA player position reset. Why does it (seemingly) go to (0,0)?
  • Implement rotation, even if done externally on frame start, for now -- clock domains!
    • Try mouse integration via Verilator/SDL. Will this work with VirtualBox?
  • Optimise tracer state machine
  • Fix full screen width: Either hardcoded 640-division or just 1024-division with range limit.
  • Trace buffer ring memory
  • Different wall type IDs (just 2-bit colour for now)
  • Further investigate FPGA timing

Bigger picture

  • Textures
  • Sprites
  • Doors
  • Collisions
  • Make chip able to be configured to support higher (or lower) resolutions:
    • 640x480-based: 512x480, 512x400, 512x384, 320x480, 320x240, or 320x200.
    • 800x600-based: 800x600, 400x600, 400x300
    • 1024x768 max
    • NOTE: A higher resolution is still useful even without a wider trace buffer, because it gets better sync/quality on native resolution displays.
  • Faster parallel processing: Could simply double/interleave multiple tracers? Alternatively, have mirrored tracers (do pos/neg viewplane rays simultaneously).

Notes