Skip to content

Instantly share code, notes, and snippets.

@bitnenfer
bitnenfer / rasterbars.s
Last active January 8, 2022 16:53
game boy effects
isdmg
offbankgroup
puball
title group $00
org $0040
reti
org $0048
reti
org $0050
reti
@bitnenfer
bitnenfer / fps.js
Created January 18, 2018 19:56
FPS
var fps = {
startTime : 0,
frameNumber : 0,
getFPS : function()
{
var d = Date.now();
var currentTime = (d - this.startTime) / 1000;
var result = Math.floor(++this.frameNumber / currentTime);
if(currentTime > 1)
{
@bitnenfer
bitnenfer / boilerplate-gl.js
Created November 22, 2017 20:23
WebGL 1.0 Simple Boilerplate
let canvas, gl;
let lastTime = 0;
const vShaderSource = `
precision mediump float;
attribute vec2 vtxPosition;
void main()
{
gl_Position = vec4(vtxPosition, 0.0, 1.0);
}
@bitnenfer
bitnenfer / index.html
Last active September 1, 2022 16:18
wasm binary loader with fallback to asm.js
<!DOCTYPE html>
<html>
<head>
<title>LOADING...</title>
</head>
<body>
<script type="text/javascript">
window.onload = function () {
@bitnenfer
bitnenfer / pngb.c
Last active November 18, 2020 01:09
/*****************************************************************************
** pngb.c
**
** Code for the PNG GB Converter.
** Currently this module contains all the code for the converter except for
** the PNG loading routines (We are using LodePNG for that) and the program
** entry point (and command line parsing), which are in main.c.
**
** Copyright (c) 2015 Elias Zacarias
**
@bitnenfer
bitnenfer / websocket-server-winsock.cpp
Created December 29, 2016 05:02
WebSocket Server using WinSock2 and gaius engine.
void socket_run(void*)
{
//addrinfo hints;
//addrinfo* result = NULL;
//addrinfo* pointer = NULL;
uint32 success = 0;
SOCKET listen_socket = INVALID_SOCKET;
SOCKET client_socket = INVALID_SOCKET;
WSADATA wsa_data;
// three.js rev. 70 - Last version of three.js fails to run on cocoon.
// pixi.js v3.0.10
var canvas = document.getElementById('canvas'),
gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'),
scene, camera, threeRenderer, geometry, hemiLight, dirLight,
material, cube, logoSprite, pixiRenderer, stage,
// Three.JS specific
setupThree = function () {
var d = 50;
scene = new THREE.Scene();
struct soa_vector4
{
union alignas(16)
{
struct
{
float x[4];
float y[4];
float z[4];
float w[4];
inline static void sse_mat4_add(__m128* m0, __m128* m1, __m128* dst)
{
dst[0] = _mm_add_ps(m0[0], m1[0]);
dst[1] = _mm_add_ps(m0[1], m1[1]);
dst[2] = _mm_add_ps(m0[2], m1[2]);
dst[3] = _mm_add_ps(m0[3], m1[3]);
}
mat4 m0;
mat4 m1;
sse_mat4_add(m0.sse_data, m1.sse_data, m0.sse_data);