Git Product home page Git Product logo

c64-non-sense's People

Contributors

youdirk avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

c64-non-sense's Issues

Stuff TODO

  • Make: command x64 to optional dependency
  • rename irq to irq_isr on some places, namespacing
  • Double Buffering, check error fractals
  • implement a Timer module using Interrupts
  • Add a debugging option to show the render_isr time
  • Try out to use C preprocessor #define in assembler code to share header files between .c and .S files
  • Feature Request to cc65 for
    • -Dname option should pass by default to assembler, without -Wa option from cl65
    • C Preprocessor support for assembler ca65

Sprites abstract (brain strom)

  • Sprite module should be a 'Structure' constructed with Sprite_new() and ticking with Sprite_tick()
  • Global sprite settings goes into a new Graphix_buffer_sprites_t, such like sprite enable bits at 0xd015
  • Think about where to place the sprite buffers, think about replacing VICBANK (VIC-II DMA access), 0xc000 currently.
  • Graphix_rasterline_isr() must be adapted for sprite animations
  • Implementing a $> 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
  • Adapting repository directory structure: assets-game/ makeinc/ src/ src-cook/ src-game/ trunk/
    • src-cook/ shall be compileable without to have cc65 installed
    • src/ 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
    • dependencies: src-cook/: gcc, src/: cc65, assets-game/: src-cook/c64nonsense-cook, src-game/: src/c64nonsense.lib assets-game/das-produkt.rel
  • Think about a concept for sprite multiplexing ...

TODOs

  • Make it possible to disable sprite animations in EngineConfig
  • Add constants, such like 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()
  • Make calibration for NTSC in Timer.h using 60 Hz tick rate
  • Adapt Stream-Playlist in .github/...
  • Add something like SpriteAnimation_new_mirrored() in x and y axis...
  • AAAssets.c: Merge #defines for multicolor into master

Implement thread-safe versions of `Debug_{error,warn,note}`

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

Another better solution is to implement an assembler version of _Debug_{error,warn,note}

Stuff todo...

  • Spelling in comment Graphix.set.charset_exit
  • void missing comment how to use Input.keyboard.petscii.character
  • Bug: Double pressed key, if on SHIFT+character-key SHIFT will be released first
  • Test if initially set FALSE Input.keyboard.petscii.changed
  • Add macros register_uint8(addr_hex, name), register_vector(addr_hex, name, type) to define.h
  • Renaming subtitle of C64 NonSense to something like "The C64 NonSense Game Engine."
  • Change Year of copyright consistent to "2020 - 2021" in all files
  • Prepare a Sprite-Module

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.