Skip to content

Latest commit

 

History

History
40 lines (30 loc) · 1.51 KB

File metadata and controls

40 lines (30 loc) · 1.51 KB

22 May 2023

Previous journal: Next journal:
0081-2023-05-20.md 0083-2023-05-23.md

Raybox

Achievements

  • Sprite can now get as close as 0.5, i.e. 16x scaling. Note that this is actually 1.0 away from the sprite's centre. Getting closer starts to clip the sprites right edge. We could get this down to a distance of 0.25 by probably adding an extra bit, but this doesn't seem necessary. For Wolf3D, it seems the player must be more distant from a blocking actor than that.
  • Full 640-width now works.

Next

  • Use KiCad to design a RGB222 VGA plug, and optionally a big adapter that works for DE0-Nano (and could allow it to interface with an ISA card).
  • Try changing map to 32x32; give the tracer a workout.
  • Add extra wall IDs to the map.

Thoughts

  • Our walk speed is much slower than actual Wolf3D. Wolf3D walk speed feels like it is approx. twice as fast.
  • Wolf3D player "radius" is 22528 units. Treated as Q16.16, this in binary is 0.1011, or 0.34375 units (i.e. divide 22528 by 65536). Thus, the player cannot be fewer than this number of units from a wall, which is about the same as what Raybox can render... this seems to match the 512-scaler's limits.
  • Need to detect tracer overrun.
  • Try a bigger map.
  • FOV can be changed pretty easily by changing the vplane vector length, but it is tuned (coincidentally??) to the sprite width, which uses a 1:1 aspect ratio currently.