Thursday, August 27, 2015

Jagged Juggler

Jagged Juggler! (UPDATE LAST)

I have finally completed the game! After working all my spare time on the project for the past 2 weeks, I have made a complete game. Below is a screenshot of the actual game play. By the end of the week I expect to have published the app in the Google Play Store. Thank you for your support.

Jagged Juggler © Black Crow Software, LLC

Friday, August 21, 2015

Jagged Juggler

Jagged Juggler! (UPDATE 3)

Yesterday I was supposed to create the music and sound effects for the game but my phone fell apart. After putting it back together, it was already my bedtime. Today I took on the task to do the audio. This is the last step I needed to do before I start programming the game. Enjoy!!

Jagged Juggler © Black Crow Software, LLC

Wednesday, August 19, 2015

Jagged Juggler

Jagged Juggler! (UPDATE 2)

The sprites for the game are now complete. Below is a quick visual preview of what I'm hoping to create. It looks a little better than the initial sketches on the storyboards. The game is going to take the resolution of 720x1280 a common phone resolution. I just have a couple things left to do before I code it.

Jagged Juggler © Black Crow Software, LLC

Monday, August 17, 2015

Jagged Juggler

Jagged Juggler! (UPDATE 1)

I have now completed a storyboard of what I want to see in the game and what I want it to do. The next step is to create the graphics and animation for the game. Later I'll be implementing sound effects and music and then tying it together with programming. This will be my last post for the night. An important step in developing good projects is sleep.

Jagged Juggler © Black Crow Software, LLC

Jagged Juggler

Jagged Juggler!

Starting today and until the end of the week I accepted an app challenge. The goal by the end of the week is to make a game app that is playable and fun. Below is a scan from a sketch I did 30 minutes ago from writing this post. I'll keep you updated with the progress. At the end of the week I'll make the app playable for both web and android. It may take some time to get onto the Google Play Store for android devices, but, the web version should be playable. Tell me what you think!

Jagged Juggler © Black Crow Software, LLC

Wednesday, August 12, 2015


I'm Sorry for the Delayed Post :-(

I promise I've been productive though. A journal lays here on my desk. Every day I try to write something in the journal of something productive I did that day. Not everything I write in the journal will get recorded here on the blog (a lot of projects that can't be published yet). However, I still thought of you. Monday I re-recorded 2 songs (piano 21 and 22) which can be found here on the music list. Thank you for your patience.

Wednesday, August 5, 2015


Random Nostalgia



I accepted a design challenge a year ago to make an abstract art piece for a good friend of mine. The challenge was to incorporate one of their favorite things into an art piece while keeping it abstract. I ended up printing this particular piece onto a 3'x2' canvas and hanging it on my wall (later gave it away). Hope you likes!



I'm going to keep a collection of my piano music in this section here. Some music will not work because I still have to re-record them. As I continue to record I will start adding links to the music below. If you want to hear a specific instrumental and the audio is not here, please contact me and I'll make it a priority to record.

(000) Serenity
(001) Something Precious
(002) Rest In Silence
(003) Nostolgic Reflections
(004) Echo Harmony
(005) What Is Said In Sincerity
(006) Heartfelt Memories
(007) The Strength To Go On
(008) Lullaby
(009) Inquiries And Solutions
(010) Short Fable
(011) Dreaded Anxiety
(012) Mystical Order
(013) Raindrops
(014) Meek Melodies
(015) Excursion Commencement
(016) Destiny
(017) Chance Happening
(018) Whispers In The Wind
(019) Liquid State
(020) Springtime
(021) Initial Bond
(022) Forlorn And Withdrawn
(023) <No Name>
(024) <No Name>
(025) Broken
(026) <No Name>
(027) <No Name>
(028) <No Name>
(029) <No Name>
(030) <No Name>
(031) <No Name>
(032) <No Name>
(033) Beautiful Words
(034) <No Name>
(035) Blue Sky
(036) <No Name>
(037) Predetermined Fate
(038) Fresh Mountain Breeze
(039) <No Name>
(040) <No Name>
(041) <No Name>
(042) <No Name>
(043) <No Name>
(044) Trickling Stream
(045) <No Name>
(046) Here We Go!
(047) Desolation
(048) Carefree Existence
(049) Regrets
(050) Hope
(051) <No Name>
(052) <No Name>
(053) <No Name>
(054) <No Name>
(055) <No Name>
(056) <No Name>
(057) <No Name>
(058) Grace
(059) <No Name>
(060) <No Name>
(061) Peaceful
(062) Acquired Memories

(063) Cascading Flow
(064) Light Blue
(065) Rest Mind, Rest Soul
(066) <No Name>
(067) <No Name>

Monday, August 3, 2015


Broken Phones

So a week ago I was given 2 phones to extract all the text message data. Both phones had been dropped and the displays on the phone no longer worked. Both phones were Samsung Galaxy S4. There is no way to actually plug the phones into the computer and extract the messages so I had to get a bit creative. My first thoughts were to plug my brother's 5-pin HDMI adapter (used for his Galaxy S2) into the phone so that the phone's display will show up on a computer monitor. This did not work because the Galaxy S4 required an 11-pin HDMI adapter.


I took the phones to Fry's Electronics and got the adapter. They allowed me to test the 11-pin adapter on their monitors to no surprise worked. I took the adapter home and plugged the first phone into the monitor.


The display showed nicely on the screen, and using the digitizer (touch screen) on the phone I was able to enable the Debug Mode in Android and extract all the messages to my phone. The particular message I was looking for was not on this phone.


The second phone I plugged into the monitor, the display showed nicely on the screen. The digitizer on this phone, though, was broken so I wasn't able to enable Debug Mode. Because I didn't want to fix a broken phone to get 1 message off, I took apart both phones and swapped the Main Board (the text messages and other data are stored on the board). After I put the swapped boards in and put the phone back together, I connected it to the monitor and the digitizer worked! I was then able to turn on the Debug Mode and extract all the text message data.


I took no pictures during this process (my later projects I'll start doing so)

Sunday, August 2, 2015


Initial Technical Post

This is the section I originally decided to start a blog. Here I will describe symptoms of computer problems and how to solve them. For the tech-savvy I will go into difficult problems with a step-by-step method of how to solve them. Also for a resume of programs I know well and file associations, a link is provided below.

If you would like a tutorial on a specific technical fix or you are having technical problems, feel free to contact me and I'll write a post about the problem and how to fix it.


Initial Programming Post

Do you want to see this stuff?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AutoInputer
    public partial class AutoInputer : Form
    {        //Grabs the user32.dll for the mouse and keyboard events.
        public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

        private const int m_mouseLeftDown = 2;
        private const int m_mouseLeftUp = 4;
        private const int m_mouseRightDown = 8;
        private const int m_mouseRightUp = 10;

        private int m_runLimit = 0;

        public AutoInputer()

        private void intervalBar_ValueChanged(object sender, EventArgs e)
            intervalText.Text = intervalBar.Value.ToString();

        private void intervalText_TextChanged(object sender, EventArgs e)
                int temp = int.Parse(intervalText.Text);

                if (temp <= 0)
                    temp = 1;
                intervalText.Text = "1";

        private void runLimitText_TextChanged(object sender, EventArgs e)
                int temp = int.Parse(runLimitText.Text);

                if (temp <= 0)
                    temp = 1;
                runLimitText.Text = "1";

        private void goButton_Click(object sender, EventArgs e)

        private void GoEvent()
            stringText.Enabled = false;
            eventTypePanel.Enabled = false;
            eventQueryPanel.Enabled = false;
            intervalText.Enabled = false;
            intervalBar.Enabled = false;
            goButton.Enabled = false;
            stopButton.Enabled = true;

            intervalTimer.Enabled = true;
            intervalTimer.Interval = int.Parse(intervalText.Text);

            statusLabel.Text = "Running";

            m_runLimit = int.Parse(runLimitText.Text);

        private void stopButton_Click(object sender, EventArgs e)

        private void StopEvent()
            stringText.Enabled = true;
            eventTypePanel.Enabled = true;
            eventQueryPanel.Enabled = true;
            intervalText.Enabled = true;
            intervalBar.Enabled = true;
            goButton.Enabled = true;
            stopButton.Enabled = false;

            intervalTimer.Enabled = false;

            statusLabel.Text = "Stopped";

        private void opacityBar_Scroll(object sender, EventArgs e)
            Double temp = opacityBar.Value;
            Opacity = temp / 100;

            if (Opacity <= .05)
                Opacity = .05;
            if (Opacity >= 1)
                Opacity = 1;

        private void intervalTimer_Tick(object sender, EventArgs e)
            bool temp = bool.Parse(Control.IsKeyLocked(Keys.Scroll).ToString());
            if ((scrollLockGoRadio.Checked == true) && (temp == false) || (runLimitCheck.Checked && (m_runLimit <= 0)))
                if (runLimitCheck.Checked && (m_runLimit <= 0))

                int x = 100;
                int y = 100;
                string c = intervalText.Text;

                if (runLimitCheck.Checked)

                if (stringRadio.Checked)
                if (leftMouseClickRadio.Checked)
                    mouse_event(m_mouseLeftDown, x, y, 0, 0);
                    mouse_event(m_mouseLeftUp, x, y, 0, 0);
                if (rightMouseClickRadio.Checked)
                    mouse_event(m_mouseRightDown, x, y, 0, 0);
                    mouse_event(m_mouseRightUp, x, y, 0, 0);

This program was built to simulate a mouse-click or typing a letter or phrase (auto-clicker). An interval is given on how fast the function would run. In the image above, the phrase "Type Here" would be typed 10 times a second (1 every 100 milliseconds).


Initial Gaming Post

I couldn't tell you how many games I've started and never finished. This section of the blog will tell you about previous uncompleted gaming projects and what may be coming up in the near future.

I'll start off with one of my favorite completed games. I made this game for a colleague's birthday.

As an IT guy I don't recommend running 3rd party software, but, here is the link if you want to play: Asteroids.


Initial Artwork Post

Pablo Picasso once said "Inspiration does exist, but it must find you working." A good quote? Maybe, I just posted it because this is the "Artwork" page. Anyways I'll be posting art related (raster, vector, 3D) projects here.
It's a bird!!!

No!! It's a Space Plane!!!

Or a really weird looking swirly thing!!!

Saturday, August 1, 2015


Initial Music Post

I love music. I love listening to music. I love listening to composers play their music. I love writing music. Here, have some music I wrote.

Drifted Away
Life Goes On
Reach Out!
There's Light After the Rain
Cascading Flow (Piano)

The Beginning!!!

After giving it much thought, I decided to start a technical blog. I will begin publishing the projects I've been working on over the past years. These projects will include artwork, 3D, music, audio, apps, games, programming, web design, and other technical stuff.  Shortly I will layout the blog for such activities. If you have any comments or suggestions on anything, please leave a comment or email me.