Saturday, July 29, 2006

Metzeler Gone Wrong

The other day, my dad was tuning a gentlemen's motorcycle on the dyno, and on the last pull my dad felt the bike shake. I heard something coming from the dyno room, but I couldn't figure out what it was. My dad wasn't sure what was going on himself, but he knew something was wrong. He almost thought the bike was ready to blow up by the way it was shaking and by the loud racket it was creating.

When he got it slowed down, he got off and saw a bunch of big black chunks from the tire all over the place. He looked at the back tire to find this:

PICTURE 1
PICTURE 2
PICTURE 3
PICTURE 4

The treads came right off the tire! My dad was amazed, as was the rest of us when we saw it later. My dad in all of his 30-something years of experience working on Harley's had never seen something like that before. The tire was a Metzeler anyway, which my dad considers to be junk. Even so, it shouldn't have came apart like that, especially when it hadn't even had 500 miles on it.

Wednesday, July 26, 2006

Seeing Double?

I am providing some comparison screen shots. It shows how the data and screens actually compare between Sonic the Hedgehog 2 and ProSonic. I have a couple of modified versions of Sonic 2 that I use during testing. The debug counters represent different variables in each picture.

SNAPSHOT 1 - This shows the X and Y player positions. In the ProSonic window, the outlined area on the left shows the standard positions. The outlined area on the right shows the finer position values (256ths). They match perfectly.

SNAPSHOT 2 - You can see the player X and Y velocity values in purple. The player speed is in cyan, and the slope of the floor is in red. All values match perfectly.

This test was performed by having the player run to the right, pausing both Gens and ProSonic at the same point. The values match up at each and every frame. This demonstrates how accurate the algorithms are that I use. I am proud to say that it is more accurate today than it was yesterday. The next challenge is to add horizontal collision. That will fix a few remaining problems and give it even more of a Sonic authentic feel.

Once I get all the collision and movement complete, the final step would be to add block collision swapping. That would involve modifying block collision data as the player passes through certain points. This is an important part to making loop-de-loops work.

Monday, July 24, 2006

Some Hellhound Recordings

I have some recordings from Saturday's performance with The Legendary Hellhounds. I'm not in any of these unfortunately, but I thought they were still worth posting. My dad is playing in them, and he's a very good saxophone player. The mix was aimed to satisfy what is suitable for a typical live performance. This means that the mix isn't as good on tape, nor was it really intended to sound like a studio-like mix. I fixed a few minor things in the mix, but basically I'm putting them up as-is.

Pink Cadillac

Mustang Sally

Further On Up The Road

I don't know why the bass can't be heard. I will also point out that this band doesn't do too many dance songs unfortunately. I think for what they're worth though, these songs are pretty enjoyable. Hopefully you haven't heard them a million times over like I have!

ProSonic Notebook Idea

I came up with another formula recently for my ProSonic engine. This formula was used to create a table of values for the player's acceleration rate on different slopes. While I was working on this formula, I thought of an idea. I figured it'd be a neat idea to put the formulas and other types of information into a document to be made available for download. It would be the "ProSonic Notebook". It would basically outline how many things are done in the ProSonic engine. I thought of a similar idea before, but that was done using PowerPoint.

I still have to implent some code to make exceptions. By this I mean modify the values under certain conditions. There are a couple exceptions in the original games, and it's important that ProSonic is coded to handle these same exceptions. In addition to that, I still need to fix the collision detection. It sometimes thinks the player is off the ground when that simply isn't true. Once it detects the player as not touching ground, it messed up the rest of the movement by allowing the player to go completely off track. I want the player to be able to run down a hill without any problems. I'm not sure where the problem is, but I'll rewrite the collision code if I have to.

Saturday, July 22, 2006

A Night of Sax

My dad played tonight with The Legendary Hellhounds. It could have gone better, but it was fun for me because I got to mix the sound. My dad took over for one set, and I played saxophone in his place. My step mom took some pictures of it, so I thought I would share:

PICTURE 1 - Here's a picture of me playing one of the songs. I don't remember what it was, but I remember that I enjoyed it.

PICTURE 2 - Here's a picture of several of the band members. My dad and the actual drummer are not in this. The drummer in the picture is a guy who took over for one song.

PICTURE 3 - I'm blowing a saxophone solo in this picture. I was really getting into it. The crowd really liked it too. There was cheering and clapping which always makes playing music exciting and more fun.

PICTURE 4 - This is another picture of me playing. I think this might have been taken on a song where I didn't really know what to play to it. Most of the songs were never done originally with saxophone, so I have to make up a part. I'm usually pretty good at that, but once in a while there will be a song I have to think about.

Thursday, July 20, 2006

Pictures From My Trip

I have some pictures from my trip. I was going to ask Audrey if she would mind me putting some of these up. I keep forgetting, so I decided to just go ahead and post them. If she disapproves, she can yell at me later!

PICTURE 1 - Audrey's dad took a picture of us here. This was a fun one.

PICTURE 2 - This is another picture Audrey's dad took. I hate how messed up my hair is in this picture! Also notice I'm the only one who doesn't drink beer.

PICTURE 3 - I thought this was a pretty view, so I took a picture. I think it turned out rather well.

PICTURE 4 - This is Lake Mohonk. We went here to hike and swim, but unfortunately I had to get that flat tire.

Monday, July 17, 2006

Reworking ProSonic Physics

I spent half my day working on a new formula to fix some problems in the ProSonic engine. The formula addresses some miscalculations of mine in the player movement. Although there's more code to be added still, the formula is 100% correct. I've hard-coded the values needed to make the player's speed and acceleration work with precise accuracy. This decision was made so I could keep the engine running as fast as possible. It essentially cuts down on the number of times division, multiplication, and sine calculations are done. If anyone wants to recode the engine when the source code is available, I'll be keeping the complete formula in tact as a comment in the code so the values can be easily manipulated without creating a whole new table. Trust me when I say it's a very complicated formula, but it definitely produces the same results as those in the original Sonic games.

I'm rather excited about this because once I get movement completed, I will work on installing the jump, spin, and other code into the engine. The idea right now is to get the player's movement and functionality complete. A demo may be possible afterwards, but don't get your hopes up. I've been very skeptical of releasing a demo at this stage of development because I still don't think it's of good enough quality to deserve public viewing.

Also, I'd like to announce that I would like to do a Nintendo DS port. I've been thinking about it for several months now, and I really think it's a good direction to go in. Some people have been asking for a port to the Dreamcast and although I haven't completely ruled it out, I will say it's not my highest priority. I think the Nintendo DS would be a better system to port ProSonic over to. I believe there's a much larger audience with the DS, and I also believe the DS is much more easily accessible to people with and without the system.

Saturday, July 15, 2006

It Started Out As a Lack of Gas

My trip was wonderful, except that I paid a lot more than I had planned. I never would have imagined the trouble I had. It started out with me running out of gas.

See, we were driving up to Mohonk, and suddenly my car stalled. It's a mountain, and I was running my car low on gas. It was stupid, but understandable since I don't normally drive up mountains. I was in a bad place too, because you couldn't see around the corner where my car was. There was basically nowhere I could move the car where it wouldn't be in the road.

A nice gentlemen in a truck who was going up the mountain saw me and offered to tow me. There was nowhere on my car to really hook to, so he hooked around the frame. He was pulling me up the mountain, and everything was good. When he was at the top, we was planning to make a wide turn at the gate so I wouldn't have any trouble, but a car happened to be in the way, so he ended up making a much sharper turn. Without power steering, I couldn't turn my car sharp enough. I couldn't seem to brake fast enough either. My car pulled on the chain, and the chain got wrapped around the axle. It completely shreaded my tire.

When I finally got gas which Audrey's aunt and father brought, I headed back to a gas station to put more gas in my car. I was beginning to run low on cash and I knew fixing the car wouldn't be cheap. The steering was about 40 degrees off. I took it to a garage to have it looked at, and they told me I'd never make it back to Virginia unless I got everything fixed there that needed to be fixed. They put on two new tires, realigned my wheels, and replaced the tie rods. I had to pay $600 that I didn't have on hand. My ATM card didn't work there, and I didn't once think about writing a check for myself to get cash at the time. So Audrey's aunt paid for it and told me I could pay her back when I got home.

I'm home now, and looking back I've certainly learned a lesson about gasoline -- don't run it low when you're drive up a steep hill! It happens to all of us, and it doesn't really bother me. The part that bothers me is all the other trouble that came after it.

Monday, July 10, 2006

ProSonic Updates While I'm Here

Me and Audrey are going to get together this week to have some fun. We'll be up in NY which means that I will be away from projects for a little bit. That doesn't necessarily mean I won't be able to add to my blog, but it might. I figure because of this, I'll go ahead and present a little news on the ProSonic engine while I'm still here.

First of all, I have updated the FAQ. You can check it out here. There were a few things that needed changing, and I added to it as well.

Second, I've been working on redoing my algorithms for movement and such. I understand how the original Sonic engine did what it did, but sometimes it's trick to put these things into code. For the past month, I've been paying attention to some flaws in my engine, and I figure it's about time I do something about them. I'm redoing the way the movement is handled, and I really think it'll be a major improvement. After all, the goal is to make sure the movement and such is identical to that of the original engine, so I have to do it right.

Once I fix all of this, my engine may very well be prepared to move into a new phase of development. I will be selecting people to test my work. I will only be handing it over to a few people. Be prepared for this as I will be keeping tabs on the feedback I get from these people and making it public with their permission.

Sunday, July 09, 2006

Having A Good Time

I played music Saturday with The Legendary Hellhounds, a local band that my dad has recently been part of. My dad asked me to come along, and I gave it my all. We played from 8:00 PM to about 12:00 AM. I have some pictures from the event:

DSC01058 - This is the view from where we were. It's a nice and peaceful area. The view here is nothing compared to venturing up the Shenandoah Valley, but it's pretty nice I think.

DSC01059 - This is a picture of everyone getting situated. My dad is playing with the mixer and fixing a couple things. The building is actually a place where they make wine.

DSC01073 - Me and my dad are playing.

DSC01074 - Another picture of me and my dad playing. I think I'm really starting to get the feel of the music at this point.

DSC01077 - My dad is telling me something (don't remember what it was). I thought this was a neat picture because it looks like we're all grouping up together as a team.

DSC01085 - Would you believe this is another picture of me and my dad playing? Well if you don't believe me, look for yourself. The carvings on the horns stand out in this picture.

DSC01094 - This is me playing without my dad. I think by this point he went to take a break. This is probably one of the better pictures of me.

DSC01107 - I remember exactly what song this was. The band was playing "Stormy Monday". My dad played at first while I stood back and watched. Later he came to me and told me to play, so I did. I really got into it and knew exactly what to play. The crowd was cheering and clapping for me.

By the end of the night, they considered me a hellhound member. It was a lot of fun I must say. I guess they'll update their website and include me in the various sections as they did with my dad.

Friday, July 07, 2006

Never Again Will I Deal With Dell

A guy from Dell stopped by today to install a new hard drive to replace the one that died. Since it was under warranty, it was free. The problem I found was this guy basically said if we didn't have the operating system software, he wasn't going to install it and would simply give us a blank drive. He did find a disk though and began installing Windows.

We wanted him to install all the software needed for the dyno, but he refused and said it was against company policy. I found this offensive because it's fully their responsibility when a drive that is guarenteed to last for at least 3 years dies after just 3 months. It's just the same with my dad -- if he worked on someone's bike and it wasn't right, my dad would make sure it was fixed properly, especially if it is an inconvenience to the customer.

The Dell guy left with Windows installing, telling us we could simply follow the on-screen instructions to finish it. He didn't install any of the software we lost when the drive died. That company policy talk is just an excuse -- he could do it, he just didn't want to.

On top of that, we have to send back the old drive in 10 days or we'll be charged for another drive. Then the guy basically says that Dell will "refurbish" dead drives and resell them. He didn't actually say it in those words, but my step mom said "and that's the reason you're here". The guy denied that they "refurbish", and she said "no that's exactly what you're telling me". Who knows where that drive could have come from. I guarentee one thing, I will never do business with Dell ever again. I won't buy their printer ink, their computers, or anything they make. There are better computer manufacturers out there anyway.

Tuesday, July 04, 2006

Simulated Layered Scrolling

After many hours, I have advanced scrolling working in ProSonic. By advanced, I mean it doesn't just take the background and move it across the X axis at a given speed. It scrolls vertically too, and it can simulate layers. This means that designers will be able to split the background into sections and have each section scroll at a different speed both horizontally and vertically. Most levels in the original Sonic games didn't take advantage of moving different layers at different speeds vertically. It wasn't until Sonic the Hedgehog 3 that this was done (the water in Hydrocity and Launch Base). My engine fully supports it.



Obviously the background looks messed up in the picture, but it's supposed to demonstrate how the sky can be split into seperate sections that scroll at different speeds. Each layer will be able to have it's own filter to use too. This is all done on a single plane which means it won't slow the engine down much at all.

The Tornado That Ruined My Fun

My step mom called me today to see if I wanted to play music. My dad was going to this event in Middletown where a band was going to be playing music outside. My dad was going to play with them and wanted me to come along if I was interested. I agreed to it because I thought it would be nice to get out and play for a change. I got ready and told my grandmother I would be leaving around 5:30. By the time I got a shower and fixed myself up really nice, she had dinner ready.

After all this, my step mom calls back and says a tornado came through Middletown. It upset the tent, threw the lawn chairs all over the place, snapped the 2-by-4s, and basically created a mess. It was obviously cancelled. There was nothing they were going to be able to do to fix things just 20 minutes before they were about to setup.

I'm currently dressed up nice still. It's a shame though. I do actually like dressing up as silly as that might sound to some people. A good friend of mine from high school used to call me a "biker-prep"! But anyway, I figured since I'm dressed, I might as well show a photo of myself. It's the kind of photo I'd send my girlfriend.

Monday, July 03, 2006

Dell Quality

I have known for quite some time that Dell has been big into cutting their production costs so they can maximize their production possibilities, but this really surprised me. My dad about 3 months ago got himself a new Dell to use in the dyno booth in his shop. Everything has worked fine up until today.

He was running a dyno test and suddenly a blue screen popped up. I don't remember exactly what it said, but I knew it was something about the hard drive. I figured turning off the computer and letting the memory bleed, and then turning it on would fix the problem. Halfway into booting Windows XP, the same blue screen came up again. I tried safe mode, and it didn't make any difference. I checked the settings in the BIOS and it detected the hard drive.

Finally, I booted it up once more. This time, a different message came up. It didn't even begin booting Windows. Instead, it said there was no partition information. So I brought out the backup computer that he used before he got his Dell and tried linking the hard drive from the Dell to the old computer. It found a new hard drive on the old computer which likely meant the cables were working fine, but then it put a big question mark on the drive's icon and moved it into the "other" category. I tried to open it and it clearly said it was corrupt and couldn't be read. I viewed the drive's properties and it couldn't detect the size of the disk or the disk file system. It was safe to say the drive was toast.

My understanding is that these drives are guarenteed to 3 years? Well it's short about 33 months! We're going to see about having a Dell representative come down and look at it. Luckily, I don't have any fears about the warranty being voided because the computer doesn't appear to have a seal on it anywhere. Still though, doesn't this kind of thing make you seriously consider the quality of these computers? I've heard a few other Dell horror stories, and this one has just been added to the list. My computer is a Dell and it seems just fine to me, but I'd hate it if my hard drive just died out of the blue.

Saturday, July 01, 2006

Wrapping Around

I have done some more work to my ProSonic engine. Now you can wrap levels vertically as done in Metropolis Zone, Marble Garden, and other classic Sonic levels.



This trick is more advanced in ProSonic because it's more flexible. Sonic 1 and 2 allowed wrapping at 2048 pixels, while Sonic 3 and Sonic & Knuckles wrapped at 8192 pixels. ProSonic will allow designers to set a variable for each level that tells the game where to wrap. ProSonic allows wrapping between 256 and 32768 pixels. That's also a hint that ProSonic will support levels that are much larger than those found in all the original Sonic games.