Flip-Flap (Flappy Bird) for Sega Master System
For SMSPower! March 2015 Coding Competition
By Bradley Garlick (BrambleG)
Version 2.0

Update 2.0
-----------
This update changes the following:

-Now there is a death animation for Opa-Opa
-When Opa-Opa is falling after touching a pipe, he falls a lot more naturally now, instead of just zooming to the ground like before
-Score counter is now white instead of black
-High score counter has been added
-New title screen
-Opa-Opa has been moved slightly to the left on the screen
-Opa-Opa now visibly flaps his wings when button 1 or 2 is pressed
-Reduced the bias in the pipe generation

About
-----

This game is a port of the popular mobile phone game, Flappy Bird. I assume a lot of people have already played this, but if you haven't, the game is fairly simple: You control a bird (or in this version, Opa-Opa) and tap the screen (press 1 or 2) to flap your wings and go up a bit, but gravity will quickly pull you back down. The aim of the game is to fly through the small openings in an endless stream of pipes without touching a pipe or the floor. Each set of pipes you pass gives you 1 point. The physics of the game makes it quite challenging, and it is fun to compete with others for the top score.

Important note
---------------

While I have made sure to test the game in Fusion, MEKA and Emulicious, I unfortunately have no way of testing this on real hardware. I'm hoping it will work. If you happen to have a Master System or Mega Drive/Genesis with a flash cartridge or some other way to test this game on it, I would love to know if it works properly, so please let me know if there are any issues. Let me know about any other bugs as well, whether emulated or on real hardware.

Zip contents
-------------

This zip file contains:

README.txt			This nifty thing you're reading.
FlipFlapV2.sms			The ROM file for the game, to be ran in an emulator or put onto a flashcart.
FlipFlapV2.sms.sym		Symbols for the ROM, if you feel like debugging it for some reason.
Flip-Flap Cover.png		The box art that I have made for the game. It is an edit of the Italian Hang-On Sega Card box art found here: 
				http://www.smspower.org/Scans/HangOn-SMS-IT-Card
Ver2.asm			The source code for the version 2. It should assemble (using WLA-DX) into an identical copy of FlipFlapV2.sms. Warning: It doesn't look
				pretty!
font.bin			The font used in the score counter and title screen of the game. This is needed in the same directory as Ver2.asm if you want to
				assemble it properly.


Misc Info (AKA boring life story)
----------------------------------------

This project represents a few "firsts" for me; This is my first project for the Sega Master System, my first time properly trying to program using assembly of any kind, and it is my first game (even if it is only a port). A bit about me: I am an 18 year old student, currently in my second year of A-levels and I plan to be doing Computer Science at university later in the year. I've always been interested in computers and programming, but didn't actually start learning to program until I began my A-level computing in September 2013. With three older brothers, I mainly grew up playing the Sega Mega Drive and Playstation one. Admittedly, I have yet to get a Master System, although I'd love to get one, if I had the money. I'm a big fan of old games, especially Sega games, and already own a Mega Drive and a Dreamcast.

I actually started working on this game nearly a year ago, last April. I discovered SMSPower a while ago and read a lot about the Sega Master System, and decided to try to program something for it, mainly as a challenge to myself. A few members of SMSPower may have noticed my first couple posts on a thread way back then asking for some help in development. I created the "Hello World!" program from Maxim's tutorial, and then built on top of it, working up with the aim of making a port of Flappy Bird. However, I was really new to programming back then, and I got stuck, couldn't figure out the solution, and with my AS exams coming up, I gave up and abandoned the project. Then I picked it back up again about a month ago, after revisiting the site and finding out about this competition.

I am glad that the game is small enough to fit onto a Sega Card. I think Sega Cards are really cool, and was hoping to keep the game under 32KB. Turns out I didn't need to worry, as I didn't even come close to touching that limit. I was going to put some sound effects in, and I figured out how to use sverx's wonderful PSGlib, but I suck at sound design and couldn't make any sound effects that didn't grate on my ears, so I decided it would be better off without. Who plays Flappy Bird with sound turned on, anyway?

Overall, I think the game has turned out pretty well. I've also learned a lot from making it, and some of the stuff I've learnt has already helped me in A-level computing. Please let me know what you think!

Credits and Acknowledgements
-----------------------------

-Port to Master System "Flip-Flap" released 2015 by me, Bradley Garlick, AKA BrambleG
-Original "Flappy Bird" game released 2013 by Dong Nguyen, published by .GEARS
-Opa-Opa sprite from Fantasy Zone, released for the Master System 1986 developed and published by Sega
-Box art based on scan of Hang-On, made by Sega and scanned onto SMSPower by the user barney
-Random number generator code snippet taken from Phantasy Star, found at http://www.smspower.org/Development/RandomNumberGenerator
-The game was built on top of Maxim's Hello World! tutorial, so some remnants of the code are from Maxim
-Thanks to all the nice people at SMSPower! that have given feedback