Skip to content

Instantly share code, notes, and snippets.

View JettMonstersGoBoom's full-sized avatar
💭
I may be slow to respond.

Jett JettMonstersGoBoom

💭
I may be slow to respond.
View GitHub Profile
-- title: Mode7
-- author: MonstersGoBoom and Nopy
-- desc: Mode7
-- script: lua
-- utility scripts
local math_sin = math.sin
local math_cos = math.cos
local math_rad = math.rad
-- by MonstersGoBoom
--[[
Copyright (c) 2017 MonstersGoBoom
All rights reserved.
Redistribution and use in source and binary forms are permitted
provided that the above copyright notice and this paragraph are
duplicated in all such forms and that any documentation,
advertising materials, and other materials related to such
distribution and use acknowledge that the software was developed
@JettMonstersGoBoom
JettMonstersGoBoom / Ptest.lua
Last active December 7, 2017 13:19
Time_Tripper Particle Test , with some optimizations
-- title: Particle test 2
-- author: Time_Tripper
-- desc: Particle test 2
-- script: lua
-- input: mouse
-- Optimization from MonstersGoBoom
-- create a single table for everything , reducing lookups
local particle = {}
function particle:new (o,x,y,vx,vy,c,l)
o = o or {} -- create object if user does not provide one
-- title: game title
-- author: game developer
-- desc: short description
-- script: lua
function table.remove(a,b)
for c,d in ipairs(a) do
if d==b then
a[c]=a[#a]
a[#a]=nil
@JettMonstersGoBoom
JettMonstersGoBoom / gist:89901f6cfdbf3ea215609eefb08e5da0
Created February 10, 2018 17:37
4 bit source texture shader . for OpenGL
#version 130
in vec2 out_uv;
out vec4 out_0;
uniform sampler2D vramimage;
uniform sampler1D vrampalette;
void main(void)
{
@JettMonstersGoBoom
JettMonstersGoBoom / Entity.c
Last active October 19, 2018 18:02
Simple Entity type in C macros.
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#pragma pack(1)
typedef struct
{
int32_t x, y;
-- some math stuff for speed
local _atan2=math.atan2
local _sqrt=math.sqrt
local _sin=math.sin
local _cos=math.cos
local _2pi=math.pi * 2
-- 2d vector
local vec2 = {}
setmetatable(vec2, vec2);
vec2.type = vec2
@JettMonstersGoBoom
JettMonstersGoBoom / hexnumbers.cpp
Created February 11, 2019 16:14
regex for handling hex numbers
langDef.mTokenRegexStrings.push_back(std::make_pair<std::string, TextEditor::PaletteIndex>("[#][$][0-9a-fA-F]+[uU]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
langDef.mTokenRegexStrings.push_back(std::make_pair<std::string, TextEditor::PaletteIndex>("[$][0-9a-fA-F]+[uU]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
langDef.mTokenRegexStrings.push_back(std::make_pair<std::string, TextEditor::PaletteIndex>("0[xX][0-9a-fA-F]+[uU]?[lL]?[lL]?", TextEditor::PaletteIndex::Number));
// found pngs here https://opengameart.org/content/the-collection-of-8-bit-fonts-for-grafx2-r2
TigrFont *tigrGrafx2Font(const char *filename)
{
TigrFont *font = (TigrFont *)calloc(1, sizeof(TigrFont));
Tigr *fbit = tigrLoadImage(filename);
font->bitmap = fbit;
font->numGlyphs = 128-32;
font->glyphs = (TigrGlyph *)calloc(font->numGlyphs, sizeof(TigrGlyph));
// top line of font is markers
@JettMonstersGoBoom
JettMonstersGoBoom / demo.s
Created June 23, 2019 16:42
MillFork C64 sample
const pointer screen_out = $5c00
const pointer chars_out = $6000
const pointer sprites_out = $4000
const pointer spritepointer = screen_out+$3f8
byte timer
byte frameoffset
void main () {