O Enthusiast adiciona traçado de raios ao console retrô

O desenvolvedor e entusiasta Ben Carter adicionou um ray tracer de hardware ao Super NES. Deixe-me lembrar que o próprio console já tem 30 anos.





Para implementar essa ideia, ele foi aconselhado por um amigo e desejou estudar melhor Verilog e FPGA. Assim nasceu o projeto SuperRT. O blogueiro queria fazer um análogo do chip SuperFX - até os nomes são semelhantes. O chip SuperFX foi alojado em um cartucho e manipulou efeitos visuais não disponíveis para o próprio console devido a limitações de hardware.





, 50 - SNES. . - .





, , . , " Pachinko", . (level shifters) (FPGA) DE10-Nano. , 5, SNES, 3,3 .





, , , 50 : , (AABB). SNES , 200x160.





RAM . :





0000 Start
0001 Plane 0, -1, 0, Dist=-2
0002 SphereSub OH 2, 1, 5, Rad=5
0003 SphereSub OH 4, 1, 4, Rad=4
0004 SphereSub OH 5, 1, 9, Rad=9
0005 SphereSub OH 2, 1, 2, Rad=2
0006 SphereSub OH -0.5, 1, 2, Rad=2
0007 RegisterHitNoReset 0, 248, 0, Reflectiveness=0
0008 Checkerboard ORH 48, 152, 48, Reflectiveness=0
0009 ResetHitState
0010 Plane 0, -1, 0, Dist=-2.150146
0011 RegisterHit 0, 0, 248, Reflectiveness=153
0012 AABB 4, -2.5, 11,    8, 3.5, 13
0013 ResetHitStateAndJump NH 44
0014 Origin 6, 2, 12
0015 Plane -0.2929688, 0, -0.9570313, Dist=0.2497559
0016 PlaneAnd OH 0.2919922, 0, 0.9560547, Dist=0.25
0017 PlaneAnd OH 0, 1, 0, Dist=1
0018 PlaneAnd OH 0, -1, 0, Dist=4
0019 PlaneAnd OH -0.9570313, 0, 0.2919922, Dist=-1
0020 PlaneAnd OH 0.9560547, 0, -0.2929688, Dist=1.499756
0021 RegisterHit 248, 0, 0, Reflectiveness=0
      
      



A taxa de quadros máxima permitida é 30 FPS. Isso se deve à limitação de largura de banda das interfaces do próprio console. Cada quadro com um traço "pesa" 32 kilobytes, enquanto a interface de saída é limitada a 16 kilobytes, portanto, uma atualização completa da imagem só é possível a cada dois quadros. O autor planeja desenvolver ainda mais sua ideia, mais detalhes podem ser encontrados em seu blog pessoal .








All Articles