Thursday, July 31, 2008

R4DS Initial Setup - UPDATED

The initial setup of the R4DS has been posted in one of my earlier posts here.
However, thanks to an anonymous reader who left a comment, it has come to my attention that some of the required files that are supposed to be downloaded from specific sites are no longer available.

Hence, for the convenience of everyone, this post serves as (1) a guide to properly install the R4DS from scratch; and (2) as a "proxy" for downloading the required files.

Required Files:
Before proceeding any further, please download the files listed below:


Hotfile Links:

MediaFire Links:




Required Hardware:
Well, there's no point reading this if you don't have these things with you.
  • Revolution for DS (R4DS);
  • Your microSD - 2GB or below; received news that 4GB may not work (haven't tested though, since I don't have one yet; sorry);
  • USB reader for the microSD (either using the mirco-SD to SD adapter and USB card reader or the MicroSD USB reader would do).


Ensure that the microSD is empty and that you have backed up everything first before proceeding further.


Procedure
  1. Install the R4DS kernel file.
  2. Either download the kernel file from above English-1.18.rar, or the latest one from http://www.r4ds.com/, if it's up already (it's been down for quite a while now).
    • Unzip the contents of the kernel file. You should end up with _system_ folder/directory, _DS_MENU.DAT, and _DS_MSHL.NDS.
    • Connect your R4DS into your PC via your card reader.
    • Copy all of the files, into the microSD.
  3. Update Moonshell
  4. You'll be using the moonshell171p1_with_dpgtools131.zip file (or get latest version from http://mdxonlinemirror.dyndns.org/moonshell/files/) to update the moonshell. Do the following:
    • Ensure that the microSD is plugged in to your PC;
    • Unzip the moonshell zip file into a temporary directory;
    • Run setup.exe in that temporary directory; it would automatically detect the drive assigned to your microSD
    • Click OK
    • Configure the moonshell as follows:
      • Configuration files: Select moonshl.ini (full) is copied.
      • ROM Files: Select R4TF R4(DS) - Revolution for DS only.
      • Other configs: this is up to you :)
    • Click OK then wait for the setup to Finish
    • Verify that the microSD has the MoonShell_R4TF_M3Simply-R4DS (MicroSD Card).nds and moonshl folder/directory.
  5. Copy the NDS Game Roms
  6. I would suggest that you create a new folder/subdirectory, say, named Games and then each ROM would have its own directory. This is entirely up to you. I suggest the above just for easier organization.
  7. Install DSOrganize
  8. DSOrganize is one of the most popular homebrew organizer application for the Nintendo DS. It provides a calendar, drawing pad, todo list, address book, and web browser. Almost like a PDA, but not quite. You will need the DSOrganize file and the custom exec_stub.bin file. You can download both from http://www.dragonminded.com/?loc=ndsdev/DSOrganize or you can use the DSOrganize_3_2.zip and es_r4m3.zip above.
    • Unzip the DSOrganize zip file into your hard drive;
    • Unzip the exec_stub.bin file from es_r4m3.zip.
    • Replace the exec_stub.bin file in the DSOrganize/RESOURCES directory.
    • Copy the entire DSOrganize folder and DSOrganize.nds file into the root directory of the microSD.
    And that's it. I had no time to play with the DSOrganize plugins, though, so I can't comment on them yet.
  9. OPTIONAL: Customize Theme
  10. First, it is important to know how the images in the NDS are mapped to which files first. So here's the rough description:
    • logo.bmp - Bootup top screen image;
    • icons.bmp - Bootup bottom/touchscreen image (i.e., "Play", "Media", or "Slot2");
    • bckgrd_1.bmp - the browser top screen background image;
    • bckgrd_2.bmp - the browser bottom/touchscreen background image;
    • gbaframe.bmp - the border used for GameBoy Advanced (GBA) games (slot 2).
    Hence, when using a theme, you need to rename the images to their corresponding filenames above. (You wouldn't want the top and bottom screen images on the wrong screen, would you?) Here are some important notes to remember:
    • The files should be copied into the _system_ folder;
    • The image size should be 256x192;
    • The file format should be a 24bit Bitmap (BMP).
    If you prefer downloading instead of creating your own, search the web. I suggest the site http://www.ndsthemes.com/, which, thankfully, is still up and running.

I hope this updated guide is useful.

Thanks for reading!

Friday, July 25, 2008

Chistian the Lion video

One of the latest hits in Youtube is this touching story about the reunion of Christian the Lion and his former owners.

In 1969, John Rendall and Athony "Ace" Burke bought the then 16kg lion cub and named him Christian. Just like any lion, he soon grew large, too large for the two to keep in their home. So they decided to put him back into the wild through the wildlife sanctuary in Kenya.

Christian adapted very well to the wild and soon had his own pride. The former owners, hearing about this, decided to visit him one last time. Although they were told that he may not recognize them because he's back in the wild, they went for it anyway.

Then.... well, let the video show you exactly what happened, okay? :)



With Whitney Houston's I Will Always Love You in the background, this video charmed millions of internet surfers everywhere!

Christian hugging his old owners shows he remembers them really well. These animals are smarter and more intelligent than what we give them credit for.

It's nice somebody found this clip and posted it in YouTube. :)

Wednesday, July 23, 2008

The Dark Knight - an alternate review

It's been a very busy week for me but we finally managed to squeeze in The Dark Knight in our tight schedules! And I must say.... WHOAAA!!! Perhaps the best (or sickest) Batman movie of all time! (Or at least, the best so far!)



I've been watching all the reviews lately about the Dark Knight and almost always we go down to the comparison between Heath Ledger and Jack Nicholson. Perhaps fuelled by Ledger's death, I actually see more "Joker" hypes and reviews rather than Batman. Hmmm... Anyway... Personally, I don't think they should be compared, with one actor being better than the other. They did the best they could for what the movie calls for. It's not just because of the actors, but the movie themselves; you cannot say one movie is better than the other simply because they are totally different movies.

Years ago, when the first Batman movie hit the bigscreen, Nicholson's Joker was a bad-ass and perhaps the best villain movie character during that decade. Joker's agenda was a bit simplistic, but Nicholson's portrayal is appropriate for the tone of the entire movie. This, in part, makes the 1989 Batman one of the timeless and classic superhero movies.



Almost twenty years later, came the Dark Knight. The world has gone through a lot of changes. The Middle East crisis, killer tidal waves, 9/11, and so many others. The people's world view was forever changed. Just when you thought things couldn't get worse, they do. Yep, it seems times were simpler back then. So Dark Knight (and Batman Begins), in a way, reflects our world view. Hence, we see a darker, mob-ruled, criminal-infested Gotham, with its sicker villains, mob-controlled cops (which are quite prevalent in the later movies, not commonly seen in the older Batman movies), and the twisted agenda of the Joker -- robbing banks, ruling the city, controlling mobs just doesn't do it anymore; dubbing himself as an agent of chaos, he wants nothing more than total chaos and anarchy; total annihilation of established order. Whatever you want to call it.



Anyway, enough comparison... They're both good anyway... :)

Seeing Ledger's portrayal of the Joker, I now understand why some critics are expecting him to win some awards. He's damn scary! He leaves no doubt as to why this psychopathic criminal genius is one of the best (if not the damned best) archvillain of Batman.

Now, aside from Heath Ledger, there are other reasons why The Dark Knight is a great movie.

I really like the cool new gadgets provided by Lucius Fox (Morgan Freeman). From the new armor, to the Batcycle ejecting-from-the-Batmobile. And don't forget about his sonar mapping thingamajjig; converting all cellphones in Gotham city into a kind of a sonar mapping device, then feeding all of the info to a central device that only Fox has access to. With this contraption, Batman can "see" the entire city, enabling him to track down the Joker as soon as he started broadcasting. Of course, this was a bit too powerful for one man to possess, so Fox had to destroy it in the end.

Alfred (Michael Caine) is a fully revamped character in the last two movies. He is not just your ordinary English butler; he's an English butler slash medic slash veteran bounty hunter slash wise old man slash father-figure of sorts. He has a bigger role here than in any of the other previous movies. He fully understands what Batman means to Gotham. What Batman needs to be to Gotham. That Batman doesn't need to be a hero; he needs to be something more. He's role is significant to Batman's transformation into the Dark Knight. Best quote in the movie that in a way sums up the movie is the one said by Alfred:

Endure. You can be the outcast. You can make the choice that noone else will face: the RIGHT choice.


And with that, Batman made the choice; to protect what Gotham has gained through the work of Harvey Dent (Aaron Eckhart) before he became Two-Face, Batman will become the villain, the target, the scapegoat. What the 28 Laws of Power calls the Cat's Paw, if I remember correctly.

Harvey Dent, as District Attorney, worked hard to clean the streets of Gotham. He was what Batman was waiting for; the "beacon of light", the "white knight". One who is just and uncorruptible -- well, at least before the accident and how Joker pushed him. I guess that's the problem when everything is dependent on the reputation of one man. One blemish, one mistake and poof. Everything will go to waste. Realizing this, Batman made that choice and took the blame for everything that Two-Face has done. Dent must remain pure and perfect. Never got his hands dirty. Damn! I really love that part! Making the hard choices. The defining moment of being more than just a hero. :)

Dang! I guess that's it for now. It's been quite a long post already. All in all, I love the Dark Knight. One of the best movies of all time.

Monday, July 21, 2008

Takashimaya's 12th Craziest Toy Sale!

As part of the Great Singapore Sale, Takashimaya is having their annual toy sale, dubbed "12th Craziest Toy Sale". Well, it really is crazy in more ways than one.

Prices are really really really low.... Or at the very least have a very large discount. Items that would normally be sold at SGD 50.00 have been cut to just SGD 12.00! Big savings if you are doing your early Christmas shopping (like what we did)!

Don't expect too much though. There are very few excellent items there. Sure, there is the occasional Shaider action figure and Limited Edition Winnie the Pooh Vans (scale 1:36), but these unique items are very few and far in between. For these items, you may want to grab as many as you can afford if you really are an avid collector. I should have told this myself the first time. I really wanted another
Shaider but when we returned, it's gone. :(

So aside from those "rare" collectibles, you have a large selection of items ideal for "gifts". So, our inaanaks (godchildren) come to mind.

Anyway, the sale sure is enough to make you crazy. After finishing there, people are really staring at us. You want to know why? Observe the picture below....



What you are seeing here is a picture of six (6) large baskets overflowing with toys that WE WERE GOING TO BUY!!!! Yep, that's not a stacked up discard pile at a corner. Those are ours!

I know, I know.... But I've reviewed our spendings here. I mean, we are going to buy for our inaanaks anyway for Christmas or when we return to Manila for a vacation, whichever comes first. Wemight as well buy now to avoid the Christmas rush later this year.

Oh well, I hope I can get some more of those rare stuff there when I drop by again. :)




Wednesday, July 16, 2008

Clinique freebies in Singapore



We were always a sucker for freebies and promo items. :) I honestly thought that since moving here in Singapore, our days of hunting for freebies are gone. Then came this promo...

CLINIQUE, one of the world's leading cosmetics and fragrance companies have launched a promo for the Clinique's 3-Step Skin Care System. When you signup on the online form, you will get a free 2-day supply of the Clinique 3-step Skin Care Kit, customized for your specific skin; the online form requires information about your skin tone, color, texture, whatever in order to customize the products for you.

FYI, the kit contains three Clinique products:

  • Classic Bar Soap OR Liquid Facial Soap

  • Clarifying Lotion OR Clarifying Moisture Lotion

  • Dramatically Different Moisturizing Lotion OR Dramatically Different Moisturizing Gel


Although I may need it, I didn't actually sign up for this. You can thank my wife Che for that. :)

Well, freebies are freebies.

Oh, BTW, this is only available in Singapore. If you really want these freebies, you may want your friends and/or relatives here to signup on your behalf. Just be sure to give your relevant information beforehand.

Tuesday, July 15, 2008

The 'curves' of Miss Universe

Just got a few glimpses of the Miss Universe Pageant last night. It was broadcasted in the Hallmark Channel in cable, but it run in parallel with my favorite AXN shows, so I had to jump from channel to channel.

The 5'10" Miss Venezuela Dayana Mendoza, 22, gave perhaps one of the most memorable responses during the Q and A portion. What is the difference between men and women?

Men think that the fastest way to go to a point is to go straight.
Women know that the faster way to go to a point is to go to the curves.


And with that, many would argue, she won the title. Now that's beauty and brains at its finest!

The 2008 Miss Universe pageant was held in Vietnam which, as can be expected from hosting countries, Vietnam is promoted heavily as a tourist destination. :)

One other highlight is Miss USA Crystle Stewart taking a fall during the evening gown section, similar to what happened to last year's Miss USA Rachel Smith.

Not sure why so many people are making a big deal about the trip. She tripped, okay? It happens to all people every now and then. And yet, she makes the front page of a newspaper! It's not a tabloid, mind you. It's a freakin' newspaper! A big picture of her sitting on her rump after falling down is hogging the front page. What? No other news to report about? Geez, get a life! :)



Thursday, July 10, 2008

Blogging: Related Posts

I always wanted to include a 'Related Posts' widget at the end of each post item. Thanks to a short reprieve, I was able to finally implement this in my blogs in Blogger.

So let's start:

1. Backup the existing template. (In Blogger/Blogspot, it should be in Layout > Edit Html.

2. Within the page header (i.e., section enclosed in the <HEAD> and </HEAD> tags, insert the code below. I suggest inserting it right before the </HEAD> tag.

<script type="text/javascript">
//<![CDATA[
var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();

function related_results_labels(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') { relatedUrls[relatedTitlesNum] = entry.link[k].href;
relatedTitlesNum++;
break; }}}
}

function removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new Array(0);
for(var i = 0; i < relatedUrls.length; i++) { if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length - 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] = relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls = tmp;
}

function contains(a, e) {
for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
return false;
}

function printRelatedLabels() {
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
document.write('<ul>');
while (i < relatedTitles.length && i < 20) {
document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>


3. With the "Expand Widgets" checked, under the 'Blog1' widget, look for the lines:

<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>

and replace them with the following:

<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
<b:if cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name + "?alt=json-in-script&callback=related_results_labels&max-results=10"' type='text/javascript'/>
</b:if>
</b:loop>
</b:if>

4. Save the Template.

5. Navigate to Layout --> Add Page Elements, and add an HTML/Script element, name it as "Related Posts" (or whatever) which includes the following lines of code:

<script type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>

6. Return to Layout --> Edit HTML, check Expand Widgets, and look for the 'Related Posts' element you just added. It should be similar to the following:

<b:widget id='HTML13' locked='false' title='Related Posts' type='HTML'>
<b:includable id='main'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:includable>
</b:widget>

7. Insert the lines in bold below. This additional two lines ensure that the "Related Posts" widget will only load when the user is currently viewing one post only.

<b:widget id='HTML13' locked='false' title='Related Posts' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == "item"'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>
</b:if>
</b:includable>
</b:widget>

And there you have it. Whenever you view your individual posts, you should be able to see the "Related Posts" widget somewhere in the page (depends on where you put it).

Thanks for reading!

Wednesday, July 09, 2008

Must-see videos and movies wishlist

I guess I'm in that mode again in which I want to watch a slew of videos and movies. As of this time, these are the ones that I would really, really, REALLY want to watch...

WWE RAW, June 23, 2008 Episode

This is the episode when WWE conducted its annual draft lottery. That is, WWE superstars (i.e., wrestlers) go from one brand to another. I already know the results, which be read from the official WWE website, but I'd still want to see the action.

Well, believe it or not, I believe draft lotteries are rigged. That is, it is scripted and the results are already planned; the sole purpose of this draft is to shake things up, developing new storylines, new rivalries, etc. It's actually a good thing. :)

Of course in this year's lottery, I must say that nothing shook things more than Triple H being drafted into Smackdown! And of course, where Triple H goes, his favorite announcer, WWE Hall of Famer "JR" Jim Ross goes with him.

Anyway, I guess I'll just have to wait for re-runs to get this one. :)




WWE Night of Champions (June 29, 2008)

Okay, fine, another WWE video. What can I say? I don't get my weekly dose of wrestling video like back home. :) I always want to watch WWE Pay-Per-Views anyway, and this is no exception.

Same thing here. I know the results, but I still want to watch it anyway. :) Now that's a fan! Hehehe :)

Like the one before, I'll wait for reruns.




The Dark Knight, opens July 17, 2008

You have to be crazy if you do not want to see this one! Finally, the much anticipated sequel to Batman Begins (and the animated film Batman Gotham Night) will be showing next week.

You don't have to be a Batman fan to watch this, right? I mean this is the Batman franchise movie we've been waiting for. The Chrstian Bale Batman is the best Batman we've seen in years. (Yup, I'm not a fan of those George Clooney Batman flicks.)

Or for the more sentimental people out there, would you not want to see the very last movie starring Heath Ledger? Rumors in E!News and The Daily Ten (yeah, I watch those. So what? Hehe) indicate a stellar, Oscar- or Emmy-worthy performance by the actor. Based from the teasers, trailers and posters, Ledger's portrayal of Joker is the darkest and freakiest Batman villain I've seen. Definitely a favorite pick in the "Best Villain" category.

Not showing yet, so no choice but to sit tight until then.

Tuesday, July 08, 2008

A good time to remit SGD to PHP

To all Pinoys working in Singapore: ever wonder when it would be a good time to remit your hard-earned SG dollars to Philippine Pesos?

Well, since October 2007 (when we first came here), I would say that now would be a good time to remit. According to i-Remit, as of 4 July 2008, SGD 1.00 = PHP 33.00! That's a lot of cash, compared to last Christmas season, in which the rate was only around PHP 27.00 to SGD 1.00.

For most people, the 7th of the month is usually the salary/sweldo day. You can expect a lot of people down in Orchard Rd in Lucky Plaza remitting to the Philippines.

Better take this opportunity to remit now. Once the Philippines gets a lot of remittance, it may cause the value of the peso to rise a bit, possibly lowering the exchange rate to PHP32.00. Just my two cents. :)

Monday, July 07, 2008

Online Storage: Saving Files on the Internet

With broadband internet connections quickly becoming the norm, many online file-sharing / storage services have come to play. Here's a review of some of them.



Windows SkyDrive
http://skydrive.live.com


This is Microsoft's own file-sharing service. As far as I know, you are required to have a Windows Live Messenger Account (i.e., hotmail ID, etc.) so you need to sign up first before you can use this. The total storage per account is 5GB, with a 50MB cap on the size of each uploaded file.



True to the Microsoft's way of doing things, you are working with folders. You have three types of folders: your Personal (only you can access), Shared (only you and selected users), and Public (accessible to anyone). You need to be familiar with the concepts of file permissions to get this done with less hassle (as I've had seen people who are struggling with this one).

As of the moment, since this is very, very new, you can expect a few bugs here and there and a lot of room for improvement. Maybe in a few weeks or months, after getting tons of feedback, we'll see some improvements.



Drop.io
http://drop.io


One of the newer services, with up to 100MB maximum storage free, or 25GB at US$10 per 1Gb per year. You can use it immediately to share files even without creating an account. Good for those quick file drops you need to share ASAP.



Aside from that, it is integrated with Facebook, so if you're a Facebook user, you should have no problems sharing files with other users there.

Lastly, you supposedly can add a Drop.IO widget into your website/blog, but I have yet to do this. I'm still going through the site's FAQs and stuff.



If you are not comfortable with the above, you can always just use the tried-and-tested filesharing services out there, such as RapidShare and MegaUpload and their variations (both having a total upload size cap per country/region, unless you have a premium account), MediaFire and YouSendIt.

Thanks for reading!