Quantcast

Results 1 to 5 of 5

Thread: Error Rush - homebrew Genesis/MegaDrive game

  1. #1
    Comrade as in friend. Master of Shinobi ComradeOj's Avatar
    Join Date
    Dec 2012
    Location
    New Mexico, USA
    Age
    26
    Posts
    1,440
    Rep Power
    62

    Default Error Rush - homebrew Genesis/MegaDrive game

    Hey, everyone!

    I have a new game that's ready for release. It began as a test program to try and create a system for animating an arbitrary number of sprites. I was always bad at animating sprites, and had to hard code all of the sprite information. This is my first time being able to have more than a few sprites active at once. I might as well go all out and use up all 80 sprites!

    I released a video a few days ago of the game. I've made some improvements, and I'm ready to call it "done". To be honest, the game isn't that great. I think it's at least interesting enough to release though.
    Here is the ROM download link (source included)

    Here is the gameplay video:


    Gameplay:
    The object of the game is to avoid running into the enemies for as long as you can. One new enemy is spawned every five seconds.

    The game can be configured to your liking from the title screen. Here is a breakdown of each option:

    Easy mode (enemies move at half speed)
    Invincibility (self explanatory)
    CPU load counter (displays mount of free CPU time. Lower number = more load)
    Enemy spawner (add lots of enemies using the C button)
    Safe middle zone (Enemies can't kill you while in the middle area)

    Enemies can still reach you in the safe zone, but they won't kill you. The clock and enemy spawner is stopped while in the safe zone. Your entire character has to be within this red box to be "safe". You need to run out of the safe zone quickly, since the enemies will be right on you.


    The game ends is a pretty unique way. When you get hit by an enemy, it causes the Genesis's CPU to purposely execute bad code. Get hit by the divide by zero enemy, and it will cause your Genesis to attempt to divide by zero. This triggers the crash screen, and shows you the CPU's registers at the time of death. Causing errors won't do any damage, and the game can be restarted by pressing START.

    The enemies:
    Each enemy represents a different type of programming error. Enemies are spawned from their respective bad code at each corner of the screen. Enemies of each type have a tendency to clump together, since they are animated in the same way. It used to be that they would overlap perfectly and appear as one. I was able to partly fix this, but enemies of each type still tend to swarm together.

    Here is how each enemy behaves:

    Address error (green radar looking thing)
    Moves toward you at a rate of 1 pixel every 1/60th of a second.

    Privilege violation (grey square thing)
    Similar to address error, but moves twice as fast vertically.

    Zero divide (red spiral)
    Moves toward you at varied speed. Sort of unpredictable.

    Illegal instruction (evil face)
    Moves at double speed, then slows down and becomes partly invisible.

    As you can tell, the enemy designs are kind of abstract and don't really represent what they are. They're all distinct looking though, and you can easily tell them apart.

    Some other tidbits:
    The game can handle animation and collision detection for about 130 sprites without slowdown. Each enemy requires only 16 bytes of RAM to function. Problem is, the Genesis Video Display Processor can only display 80 sprites at once. The game engine will still do collision and animation for as many sprites as you want. I kept getting hit by invisible enemies while testing, so I capped the enemy limit to 79 because of this (1 player sprite + 79 enemy sprites).

    The "easy" setting works by only animating the enemies every other time the screen is re-drawn.

    I wasn't really sure if the middle safe zone was a good idea, if I should keep the CPU load counter, or how hard to make the game. That's the reason behind the settings menu.

    The enemy spawning is random, but the enemies will always appear in the same order. Pseudorandom?

    The art style and look of the game reminds of of really bad fake movie "hacking". "It's a UNIX system, I know this!"

    I mentioned that the game ends by causing real errors. This is true. But, some emulators like Fusion don't correctly emulate address errors. Because of this, the program will just jump to the error handler if it doesn't get triggered automatically.

    The code displayed in the background is the actual bad code that the Genesis's CPU will attempt to execute when you get hit by it's respective enemy. Illegal instructions (bottom right) are rarely seen like this. Most are the result of bad jumps, or missing/wrong return instructions. Inserting a non-instruction was just the best way I thought I could show it.

    The CPU in the middle is a Motorola 68000, which is used in the Genesis. The one in the game has the exact same markings as the one in my SEGA Nomad.

    The CPU graphic in the middle was meant to be connected to the lines of code with traces. It looked waaay to much like a swastika though, so I removed them. It was kind of ugly anyway.
    Modded consoles:
    Master System (v7040) with s-video & direct AV out
    Model 1 with 10mhz overclock & halt switches
    Model 1 with 10mhz 68010
    Model 2 VA2.3 with unfiltered Mega Amp, & s-video
    Model 3 VA1 with compatibility fixes & s-video
    32X with s-video
    Visit my web site at www.mode5.net
    Or my collection of homebrew Genesis games, programs, and music on SEGA-16!

  2. #2
    WCPO Agent Mad Moham's Avatar
    Join Date
    Dec 2014
    Posts
    924
    Rep Power
    31

    Default

    Wow, that is such a cool concept. I know that this is a tool for you to learn programming and that is such an awesome idea. I wish colleges would try and teach programming this way (maybe some do, but not the ones I've attended).

    I think that with some further development this could actually be very addictive in a similar fashion to Tetris, and be worthy of a physical release and a lot more attention.

  3. #3
    WCPO Agent Mad Moham's Avatar
    Join Date
    Dec 2014
    Posts
    924
    Rep Power
    31

    Default

    Am I really the only one here that was impressed enough to comment on this project? I honestly think this is a cool idea.

  4. #4
    16-bits is all he needs Master of Shinobi matteus's Avatar
    Join Date
    Apr 2006
    Location
    UK
    Age
    38
    Posts
    2,431
    Rep Power
    64

    Default

    I doubt it


  5. #5
    Mega Driven Raging in the Streets cleeg's Avatar
    Join Date
    Oct 2010
    Location
    Outer Space 2
    Age
    42
    Posts
    3,408
    Rep Power
    73

    Default

    Looks pretty cool, I might just download it.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •