- Bluenoise in the game INSIDE (dithering, raymarching, reflections)
- Dithering, Ray marching, shadows etc
- A Survery of Blue Noise and Its Applications
- Moments In Graphics (void-and-cluster)
- Bart Wronski Implementation of Solid Angle algorithm
| ;SMBDIS.ASM - A COMPREHENSIVE SUPER MARIO BROS. DISASSEMBLY | |
| ;by doppelganger ([email protected]) | |
| ;This file is provided for your own use as-is. It will require the character rom data | |
| ;and an iNES file header to get it to work. | |
| ;There are so many people I have to thank for this, that taking all the credit for | |
| ;myself would be an unforgivable act of arrogance. Without their help this would | |
| ;probably not be possible. So I thank all the peeps in the nesdev scene whose insight into | |
| ;the 6502 and the NES helped me learn how it works (you guys know who you are, there's no |
| #include <immintrin.h> | |
| #include <intrin.h> | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| union Mat44 { | |
| float m[4][4]; | |
| __m128 row[4]; | |
| }; |
| [core] | |
| excludesfile = ~/.gitignore | |
| [diff] | |
| [color] | |
| ui = auto | |
| [alias] | |
| st = status | |
| ci = commit | |
| co = checkout | |
| di = diff |
| % ATAN lut-generator for Mesa3D | |
| % Based on polyfitc, http://www.mathworks.com/matlabcentral/fileexchange/47851-constraint-polynomial-fit | |
| X = linspace(0, 1); | |
| Y = atan(X)'; | |
| N = [1, 3, 5, 7, 9, 11]; | |
| lsqM = ones(numel(X), numel(N)); | |
| for n = 1:numel(N) | |
| lsqM(:, n) = X.^N(n); | |
| end |
Using perf:
$ perf record -g binary
$ perf script | stackcollapse-perf.pl | rust-unmangle | flamegraph.pl > flame.svg
NOTE: See @GabrielMajeri's comments below about the
-goption.
There's a nice Xilinx application note from Ken Chapman:
Multiplexer Design Techniques for Datapath Performance with Minimized Routing Resources https://www.xilinx.com/support/documentation/application_notes/xapp522-mux-design-techniques.pdf
The most intriguing part is what he calls a data selector, but which might be more descriptively termed a one-hot mux, since it's a mux where the control signals are one-hot coded:
onehotmux(data, sel) = (data[1] & sel[1]) | ... | (data[n] & sel[n])
| //; "Super Keftendo" 256-byte SNES intro source code | |
| //; by Revenant | |
| //; http://www.pouet.net/prod.php?which=70163 | |
| //; This is an attempt at implementing the "Kefrens bars" effect on the SNES, using less than | |
| //; 256 bytes of ROM. The technique used here is to set up a 256-color line buffer using | |
| //; Mode 7, then rendering a few pixels directly to CGRAM every scanline and resetting the | |
| //; Y-scroll position to display the same buffer on every visible scanline as it is repeatedly | |
| //; rendered to. Some more information about specific size optimizations are detailed later. |
| Suppose we want to compute the frequency spectrum of an n-point sampled signal. That is, | |
| we want to compute the signal's discrete Fourier transform. Taking a cue from multi-rate | |
| signal processing, let's try a divide-and-conquer approach where we downsample the signal | |
| by 2:1 and recursively compute the spectrum of that. There are two possible downsamplings, | |
| corresponding to the even and odd phases. | |
| By the Nyquist sampling theorem, assuming the signal has no upper half-band frequencies, | |
| i.e. its top n/2 frequency bins are zero, the spectrum can be perfectly reconstructed | |
| from the spectrum of _either_ the even subsignal or the odd subsignal, without any aliasing. |
| /** | |
| * Simple UART module to explore basic HardwareC concepts. | |
| * | |
| * HardwareC is a working name for a new hardware description language. The | |
| * goal is to make FPGAs easier for hobbyists to take advantage of. To achieve | |
| * this goal, some design choices have been made: | |
| * | |
| * 1. Use familiar syntax. C/C++ syntax is borrowed everywhere, no reason to | |
| * reinvent the wheel. Where C/C++ falls short, borrow from Verilog/SystemVerilog. | |
| * 2. Interrop with C/C++. A HardwareC module should be able to be used seamlessly |