The Dragon King
Monday, February 25, 2008, 11:48 AM - General Site News
No news isn't always good news I'm afraid. I've spent the last week or so struggling over this decision and believe me when I say it's been a difficult one for me. After a lot of soul searching I've decided to leave byoac forums indefinately. It just seems like it isn't a healthy environment for me to be involved in anymore. Before speculation as to why I'm leaving pops up everyone needs to know that it's no one person's fault or even any group of person's fault, I just feel I will be a lot healthier and happier on my own. I hold no ill-will towards anyone and I hope by explaining myself somewhat I will be leaving on good terms. I honsetly feel like a pompus jerk making a big announcment like this, but when somebody who's been on the forums nearly every day for 10 years suddenly leaves in the middle of a big release the rumors get started as to why they left, so I wanted to squash that right here and now.

I just want to leave to keep some of the stress off of me so let's leave it at that.

This doesn't mean I won't be making applications and utilites anymore, it simply means that the general public won't be a part of the process and I'll release them whenever, without wip or warning. Unless it's a brand new app I probably won't even make a news announcment on byoac's main page, so you'll have to check my homepage regularly. You might see me make a brief visit once in a blue moon, but definately not anytime soon. If you want to get ahold of me, you'll need to do so here or via email as I won't be checking my byoac stuff anymore.

Of course I realize the irony of this announcment as I've just recently moved my homepage to the byoac server. To be honest I haven't figured out what to do on that front. Saint has always treated me like gold, for better or worse and he was nice enough to give me this space after oscarcontrols went down. I'm not sure how appropriate it is for me to keep the space considering I won't be contributing to byoac directly anymore. On the other hand, I don't want all of my applications wiped from existance and would like them to still be available to the community if they should want them. I'm thinking about setting up my own web-space, but I'm not sure if it'd be worth it, because I can guarantee you that new releases will be few and far between for a good while. So for a while, with saint's blessing of course, I'd like to leave everything as-is and consider the whole site a working archive.

In case you are wondering, no dk will not be released at the end of the month as I promised. For one thing, I haven't worked on it in the last two weeks, so I'm way behind schedule. Also I've ran into a minor stumbling block that'll be difficult to fix and I don't have it in me anymore to work on things that aren't fun. What'll probably end up happening is sometime within the next month or so I'll be so bored one weekend I'll give it another look and I'll fix the issue and go ahead and make the final release. No promises though.

If and when I start coding seriously again, I intend to change direction. I'll still be working on emulation related things, but less with the front-ends and utilites and more on the actual emulators and simulators. Yes, believe it or not, I've progressed far enough with my coding to attempt (keyword attempt) to start work on some emulators/simulators for some very obscure consoles and arcade devices that nobody else is touching. So, I'm ok... don't start weeping or something. ;-)

So long story short, goodbye and thanks for all the fish. I've had fun, everyone as a whole has been a joy to interact with and I've gotten a lot of help over the years that can never be repaid. Take care of yourselves and drop me a line once in a while. Who knows, I might pull a "frosty the snowman" one day just don't hold your breath.

If anyone wants to relay this post in the byoac forums I'd be very grateful. I'd do it myself but I'd be tempted to stick around for a response and the whole viscious cycle would start again.
10 comments ( 322 views )   |  related link

Blades, Bookkeeping and Lists 
Friday, February 15, 2008, 08:24 PM - Dragon King
Just before the 360 was released with it's blade menu I had a working beta of dk with the exact same idea. Way to steal my thunder m$!!! :-P Anyway, my blade, like their's pops up regardless of where you are in dk with the press of a button. The blade allows you to navigate to any of the lists in dk, with a image preview shown to the right incase you've forgotten the title of the list. It looks something like this:

As of now, when you enter the menu the skin is swapped out, which causes a noticable delay. I've decided to instead incorporate this into the current skin, which will allow for instant display and deployment. It's not the most original idea in the world, but it's something that a lot of fe's are severely lacking.. namely a quick way out of where you currently are.

While we are on the subject, let's talk about how dk's list structure has evolved since the last public beta. Check out this screen shot:

Hmm, I don't remember a mame game named "played games"... We'll it's actually an example of two new list features. First off, dk now allows shortcuts to other lists to be added to any gamelist. This means you can do all sorts of crazy stuff with directory structures now, like replicating the before-mentioned menu blade with a "master list," making shortcuts to toggle clones on and off, having a catlist-based hierarchy of sub-linking setup so you can filter as you navigate or whatever you can think of! Maybe I should show you the inner-workings (which thanks to a utility I'm working on you'll hopefully never have to deal with). Here's the vd entry for the above gamelist:

searchstrings:-1=1=&&&& Played Games;5=MAME;0=pacman
filters:6=*mature*;9=*Working No*;6=BIOS;9=*Status Prelimenary*

Longtime dk users will find most of this familiar, but there are some important new additions. The logo entry is nothing new, it determines which logo the logo element in a skin will display (actually the logo element can now display other stuff as well, but that's a discussion for another time). Caption, again is nothing new and also quite obvious, it'll be what the list is called in the menu blade and the path caption of the skin. Dynamic... now here's where it gets fun. Before all lists were made at once and they didn't change. Due to the new bookkeeping options (I'll explain those in a sec) this is no longer acceptable. Turning on the dynamic switch has dk filter together a list on-the-fly as you navigate to it. The speed is actually quite decent. While a huge list like every single mame game will cause a slightly noticable delay, most of your special-case lists are going to load instantly. Also, dynamic lists won't be created when you re-generate the master gamelist, which will speed up that process. Hidden is also new and was added as a companion for all of the new list-linking you can do. It became obvious during testing that the traditional list changing method (next and prev list keys) wouldn't cut it if you had several lists caused by a catlist hierarchy or what have you. The solution was to "hide" all of these extra sub-lists from the list collection. When you make a list hidden, it won't show up in the menu-blade and you won't be able to navigate to it unless you use a shortcut link. So for a hierarchy of all mame's cats, you'd make the primary list normal ("Mame") and all the sub-lists (Driving, Platformers, ect..) hidden. In the primary list, you'd link to all the sub-lists. Of course that's all optional, you can make them normal lists if you want. It's all part of the new, more flexible, list system.

Of course clones is pretty obvious and nothing new as are the last two. But check out this entry:

-1=1=&&&& Played Games

This is how we link to other lists. The "-1" tells dk we are searching for a list, in this case the list is list #1 and we want to call the shortcut "Played Games" (The &&&& is just a magic tag to ensure the entry gets added to the top of the list). We could do this other ways as well, like link to the List's caption, the "next list" or what have you. I'll go into more detail as the syntax is finalized and I get the list-builder up and running, but it's really quite useful.

Now for the second part. How exactly does dk make a list of played games? Via the new bookkeeping features of course! Dk now monitors your play habits, recording which games you play, how often you played them, how many times.. ect all to a nifty ini file which the list system can use, in conjunction with special tags, to make lists.

Here is the vd entry for the Played Games list:


Notice that the search sting this time is "-2=mrp." The "-2" tells dk it needs to search the bookkeeping and "mrp" is a magic tag for the 25 most recently played games. There are other magic tags in bookeeping like the longest played, if it's been played at all, ect... And of course these magically created lists can be filtered off just like any normal list. This takes building a "favorites" list to a whole new level as, with a bit of adjustment you can let dk automatically determine which games you like the most and automatically fill a list with them!

The new list features are really the crowning feature of the release as I've always said that a goodbackbone is far more important than any graphical features. (I've still got a few of those to show, don't worry)

Anyway, raster fonts are pretty much working atm, so I'm now moving on to tweaking the above features for optimum speed. As always, I'll keep you posted.

Stuck in the Middle.... 
Friday, February 15, 2008, 04:58 AM - Dragon King
Well the cleanup of my raster font code is coming along nicely. When I first added it to dk ages ago, all raster fonts had a ttf dependant that was used to determine postion and scale. At the time I didn't expect fonts to get very fancy and I figured this would save me a lot of calculations on centering, multi-lined text and other misc issues. Of course, as I experimented with video game fonts the limitations of this dependancy became apparent. The biggest issue was centering. I used the good old ".textwidth" function in vb to determine the width, seeing as how I had to manually determine the starting point of a centered line of text. Well when the ttf font was wildly different from the raster font, this width would differ, and what you'd get was "funky" centering.

I've rolled out my own ".textwidth" function that works with the raster dimensions and a arbituary pixel height. This seemed to do the trick as you can see by the text below:

The only thing that the raster functions use the ttf fonts for at this point is the height (the height I send to the rastertextwidth function is determined via .textheight). I may actually keep it that way. Right now you determine the textheight in dk via the fontsize, which makes sense as 90% of your skins are gonna use plain old tt fonts. It seems silly and confusing to me to have a seperate, pixel-based text height setting and I don't see as how the height would be any different between one font and another or at least not to a degree that it'd effect character placement. I'm welcome to feedback on that one though.

Raster Fonts! 
Wednesday, February 13, 2008, 08:25 PM - Dragon King
Finally out of the pure hell that is the skinner, I've decided to focus work on some of dk's more interesting features. One of the things I'm really excited about because it adds a new element to skins is raster fonts. What are raster fonts? Well another name for them is bitmap fonts because that's what they are, fonts in bitmap format instead of ttf. This is good for us because video games use raster fonts exclusively and we can rip them and put them in our skins for a more authentic look.

Sometimes it's better to just show you, so here are som random video game fonts applied to a very basic skin:

How do you add raster fonts? Well fortunately sprite rippers have done most of the work for us. There are various bitmap font "standards" flaoting around the net and dk comes packed with a utility that can convert most of them to a format that dk can use "automagically". This utility can also make raster fonts out of a true-type font that you can in turn edit in photoshop for a dramatic effect. On top of this, I also plan on having the converter support the most famous raster font type, namely the SDL font, which is what mame uses! I'll post a tutorial on how to do all of this (quickly without having to edit each character manually) at a later date.

Ragardless, for now I'm cleaning up the raster font code and I'll keep you posted.

1 comment ( 27 views )   |  related link

Happy Days are Here Again! 
Monday, February 11, 2008, 04:38 AM
With the exception of those two or three settings that'll require keyboard/hi-score mode input to set the skinner is now complete! I have no doubt that when this release comes out we'll find a bug or two though as there's simply too many settings for me to catch everything, even with my own testing.

I've gotten a couple of posts saying a keyboard mode would be useful, so I'll add it and have an option to turn it off in the frontend.ini so that it doesn't interfere with the hi-score style input. How I'll set it up is you highlight a setting and press enter (regardless of your input mappings) and up pops a dialog box. You type normally, having full use of the backspace key incase you make a mistake. Pressing enter again will change the setting and rturn you to the menu your were in while pressing escape will cancel. Due to complications, the arrow keys and delete keys will NOT work in keyboard mode. Fair enough?

I'm tired of doing stupid functions so I'll probably take a break for a few days, but I'll make a post as soon as I get started again. Tomorrow I might put up a quick skinning tutorial just to give you an idea of how to make a simple skin from start to finish.

1 comment ( 5 views )   |  related link

Back Next