youdirk / c64-non-sense Goto Github PK
View Code? Open in Web Editor NEWThe C64 NonSense Game Engine.
License: GNU Affero General Public License v3.0
The C64 NonSense Game Engine.
License: GNU Affero General Public License v3.0
x64
to optional dependencyirq
to irq_isr
on some places, namespacingTimer
module using Interrupts
render_isr
time#define
in assembler code to share header files between .c and .S filescc65
for
-Dname
option should pass by default to assembler, without -Wa
option from cl65
ca65
Sprite
module should be a 'Structure' constructed with Sprite_new()
and ticking with Sprite_tick()
Graphix_buffer_sprites_t
, such like sprite enable bits at 0xd015
VICBANK
(VIC-II DMA access), 0xc000
currently.Graphix_rasterline_isr()
must be adapted for sprite animations$> c64nonsense-cook -t sprite-gif my-character.gif -t music-goattracker music.sng -t level-png the-bigcastle.png assets.rel
AssetLoader
module which is able to load assets from assets.rel
assets-game/ makeinc/ src/ src-cook/ src-game/ trunk/
src-cook/
shall be compileable without to have cc65
installedsrc/
make target is a src/c64nonsense.lib
src-game/
builds das-produkt.prg
which is static linked to the src/c64nonsense.lib
, which hopefully reduces prg
file size (linker optimization)assets-game/
runs the cooking process ../src-cook/c64nonsense-cook -t [...] das-produkt.rel
src-cook/: gcc
, src/: cc65
, assets-game/: src-cook/c64nonsense-cook
, src-game/: src/c64nonsense.lib assets-game/das-produkt.rel
EngineConfig
PACE_PIXEL_PER_TICK
for velocity_max
, etc in Pace.h
Input.def.h
: check if Input.joy_port1.axis_x.direction == 0
is just required when INPUT.SET.ENABLED = Input_joystick_port1_mask
Pace
: uint6_t accel_rate
in Pace_new()
Timer.h
using 60 Hz tick rate.github/...
SpriteAnimation_new_mirrored()
in x and y axis...AAAssets.c
: Merge #define
s for multicolor into master
If you get trouble during calling the _Debug_{error,warn,note}
output functions in ISRs then it is required to backup the virtual zero-page registers of the CC65 runtime. Currently not implemented, because it´s just debugging stuff, it exist currently just one call from Timer_a_isr()
which seems to work for now and the big overhead in run-time is unjustifyable for now. An example implemetation you can find in the CC65 sources
.DbgBreak
, .DbgSwapZP
, .CTemp
Another better solution is to implement an assembler version of _Debug_{error,warn,note}
Graphix.set.charset_exit
void
missing comment how to use Input.keyboard.petscii.character
SHIFT+character-key
SHIFT will be released firstInput.keyboard.petscii.changed
register_uint8(addr_hex, name)
, register_vector(addr_hex, name, type)
to define.h
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.