Code Monkey home page Code Monkey logo

chroma-invaders's Introduction

Looks like someone has made their way to my profile. Greetings. Please enjoy the following non-exhaustive list of personal skills and interests:

  • ๐Ÿ” Cybersecurity & Pentesting
  • ๐Ÿ•ธ Web Development
  • ๐Ÿ•น Retro Consoles & Gaming Hardware
  • ๐Ÿ‘พ Emulation, Romhacking & Game Modding
  • โ†ฉ Reverse Engineering & Decompilation
  • โŒจ Programming Languages (in order of self-observed skill, highest to lowest):
    • JavaScript / TypeScript
    • C#
    • Java
    • Python
    • GBZ80 Assembly
    • EVIL
    • C
    • PHP
    • Lua
  • ๐Ÿ’ป Frameworks & other things I don't count as programming languages:

chroma-invaders's People

Contributors

hacktix avatar

Stargazers

 avatar

Watchers

 avatar

chroma-invaders's Issues

Watchdog

The original arcade machine features a watchdog, running seperately to the CPU, resetting it if it starts hanging at any point. There's no real reason for this to be implemented, other than "accuracy".

Toggleable CRT Shader

For an even cooler looking experience, it would be great to be able to toggle a CRT shader for the emulator (as suggested by @Ciastex).

Toggleable Color Mode

Since the colored screen is an additional feature, it may be interesting to some to be able to turn it off, for an authentic black-and-white experience.

Config File

The original arcade machine features a few I/O bits for settings such as the amount of ships the player starts with, whether the player gets an extra ship at 1500 or 1000 points and whether or not Coin info is displayed in the demo screen. This could be used in combination with a seperate config file, which should be easy to read and modify.

Fix AC Flag Behavior

As Space Invaders doesn't use the AC flag anywhere in it's code, the fact that the CPU emulates the flag behavior incorrectly doesn't affect gameplay. However, for potential re-usability of the CPU emulator for other purposes, it may be useful to fix these issues.

Incorrect SBB behavior

Using the borrow bit in subtraction operations currently yields incorrect results, as the Carry bit only increases the value to be subtracted by 1 rather than act as an actual borrow bit.

Unreadable Performance Meter

Currently the Performance Meter is updated with every Update() call, making it practically unreadable. This could be improved by storing measured times in a ring buffer and calculating an average, rather than displaying every measurement seperately.

TILT Key

The original console features an I/O bit in order to display a "TILT" message. This could be added in just for fun.

Game getting stuck after playing demo twice

After playing the demo twice, the game doesn't function properly anymore. As soon as a coin is inserted, the screen goes blank (as it should), but leaves one alien on screen. Following that, the game instantly ends and takes the player back to the menu screen, prompting to push the start button, despite having no credit. Any further attempts to start the game do the same thing, decrementing the credit number each time.

Controller Battery Warning

With controller support having been added, it may be useful to have a warning for low battery charge displayed ingame.

Interrupt Timing Issues

While the game is entirely playable in it's current state, there are two main effects of incorrect interrupt timing:

  1. Player Beams aren't capped at the top of the screen properly, allowing the player to shoot and destroy the score labels as if they were destructible shields.
  2. All player-related actions (such as moving and shooting) are much slower than they should be.

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.