Archive for March, 2012
lwjgl.dll: Can’t load IA 32-bit .dll on a AMD 64-bit platform
Posted by Randy in Java, Programming on March 29, 2012
If you encounter this error while trying to write a game on a Windows 64 bit system using Slick2d, I can give you some insight into how to fix the issue. I’d ran into this issue some time ago, but I don’t remember if I posted about it or not. I solved the problem then by using a recompiled version of slick2d. It worked well, but I did something different this time around.
I downloaded the latest version of LWJGL and used it instead. The process of importing the libs is much the same except you use the new LWJGL and its natives instead of the ones included with slick2d. If you need help getting the imports correct, leave a comment and I’ll go into it in more detail.
jMonkeyEngine “An instance of the program cannot access specified user directory”
Posted by Randy in Linux Stuff, Programming on March 26, 2012
This is a simple issue and most Linux users can probably figure it out rather quickly. I don’t mean to offend anyone, but the error message is pretty straight-forward when it comes to the problem. However, I’ll explain it to those who run into it and want to know how to fix it. Then again, I may be the only person who runs into this problem. Either way, I’m posting it for anyone who may need it.
The problem stems with the installation of jMonkeyEngine. The installer is a .sh file which which can be executed like so:
1 | sh jME3_SDK_Beta-Linux.sh |
However, if you are like me, you may have ran it with sudo like this:
1 | sudo sh JME3_SDK_Beta-Linux.sh |
The good thing about using sudo is that the program will be installed for all users on the machine. I’ve not ran it without sudo to see if it will install for only the user running the installer, but I’m assuming that it will.
After the installation occurs, it asks you if you want to start jMonkeyEngine. If you answer yes, it will start it as root, and it will write it’s hidden users directory in your home directory. The home directory will have root:root as the owner because the program was first started by the root user.
So when you go back and run the program again, it will not have access to the required folder. The solution is to change the owner of the folder. This is accomplished simply by typing this in a terminal while in your home folder (the terminal should open in your home folder automatically, but just to make sure we’ll change directory into it first). In the following example the word “username” should be replace with your actual username.
1 2 | cd ~/ chown -R username:username .jmonkeyplatform |
You should now be able to open jMonkeyEngine. The -R, for those of you interested, means “recursive”, which will change the owner of all files and folder inside of .jmonkeyplatform, not just the folder itself.
How to get rid of the annoying blue shadow in KDE 4
Posted by Randy in Linux Stuff on March 24, 2012
I vowed to switch to KDE after trying for a few months to find an alternative to Gnome 2, which is going the way of the Dodo. I ran into two problems initially. The system sounds were distorting and I hated the annoying blue shadow on active windows.
The fix for the first problem came when I installed the phonon gstreamer backend, though I’m not sure this was exactly the fix as I never switched to that backend in the settings.
To fix the annoying blue shadow, go to System Settings -> Workspace appearance -> Window Decorations. Click on the Oxygen theme and then click “Configure Decoration”. Click the Shadows tab and change the colors under “Active Window Glow”. I made my inner color a dark grey and the outer color black. I like this a lot better than the bright blue.
How to play a Bluray movie in Debian Testing
Posted by Randy in Movies, technology, Uncategorized on March 23, 2012
This HOWTO will probably work in Debian Squeeze, but the system I used was running Wheezy. Hopefully this HOWTO won’t be necessary long, but until then, it’s a very good way to watch blurays on your Linux system. This will also work for Mac and Windows, with some changes, but this is strictly a Debian Testing HOWTO.
There are various ways to do what we need to do. Some require you to rip the bluray first and then watch the resulting MKV. I found that this took 15 minutes or so on my 8-core system. However, there is another method which uses a program called makemkv and pipes the output to VLC using a network stream. I found this method on the web but found that some of the links were screwed up, so I couldn’t use it directly. After some searching, I found the script I was looking for and edited it slightly. For your convenience, I’m rewriting the HOWTO and including the files all here.
First of all, create a folder called makemkv in your home directory. You can use a different location if you prefer but for simplicity we’ll put it in our home directory.
mkdir ~/makemkv |
Change into that directory and grab two zipped tarballs from the makemkv author. Then extract them.
cd ~/makemkv wget http://www.makemkv.com/download/makemkv_v1.7.2_bin.tar.gz wget http://www.makemkv.com/download/makemkv_v1.7.2_oss.tar.gz tar xvf makemkv_v1.7.2_bin.tar.gz tar xvf makemkv_v1.7.2_oss.tar.gz |
Yes you need both the bin and the src.
Make sure you have some dependencies.
sudo apt-get install build-essential libc6-dev libssl-dev libgl1-mesa-dev libqt4-dev curl vlc |
In other HOWTOs, the curl dependency isn’t mentioned. You need curl for the script we will download later.
Next compile and installed the two packages.
cd makemkv_v1.6.12_oss make -f makefile.linux sudo make -f makefile.linux install cd ../makemkv_v1.6.12_bin make -f makefile.linux sudo make -f makefile.linux install |
Finally download and run playBluRay.sh. I gzipped it so the site wouldn’t complain about the file type. Just gunzip it and execute it.
It will run makemkvcon to decrypt the bluray and setup a stream on port 51000 of your computer. Then it will start vlc using the network stream. It may take a few moments to load it all.
Note that sometimes a bluray won’t play correctly even with this method or you may see a behind the scenes segment before the movie. I had this problem on my Rambo bluray.
My Latest Computer Build
I just ordered the parts for what will be my newest main desktop. I decided to go with an AMD processor this time around. My current desktop has a Intel Core 2 Quad Q6600 which is a quad-core process running at 2.4ghz. I’ve had this quad-core for about three years and it still has a lot of life in it. I’ll be giving it to my son. This current system also has 8gb of RAM. My new system will have 16gb. The AMD process I went with for the new build is an FX-8150 eight core running at 3.6ghz. It’s supposed to be a very good process, though I’ve read some reviews that claim it bottlenecks games.
Even though I’m getting into game development, I don’t play a lot of the mainstream games and time to time I try to Review no deposit slots. Most are first-person shooters, and I’ve grown tired of that genre. I do play some FPS on the PS3 from time to time, but about the only games I play on the PC are Minecraft, Portal, and the occasional Empire Earth I/II. I’ve been using Windows 7 on my main desktop for quite some time and my new build will be Linux all the way. I venture into Windows from time to time to play Portal and Empire Earth, but I’ve decided that Windows uses way too much of my hard drive. I have a 128gb SSD as my main drive and this just isn’t enough for Windows these days. It’s plenty for Linux, however, as I’ll be using network shares for most of my saves and using the SSD for the OS only. I detest platter hard drives unless they are in a hardware RAID configuration because I’ve lost about ten of them in the past five years. I have terrible luck with mechanical hard drives.
At any rate, I bought a pretty nice system for around $660 after shipping. I’ll be using it for rendering some 3D work I’ll be doing as practice for my game development endeavor. Hopefully the 8-core CPU will shine when it comes to this type of work. Here is a list of the components that I bought:
Antec Three Hundred Gaming Case External 3 X 5.25; Internal 6 X 3.5 2*Usb2.0
ASRock 970 EXTREME3 AMD 970 & SB950 ATX DDR3 800 AMD – AM3+ Motherboard
AMD FX-8150 FX 8-Core Black Edition Processor (FD8150FRGUBOX)
Lite-On IHBS112-04 12X Internal Blu-ray Writer(Black), Bulk w/o Software
It should be noted that I didn’t get a video card because I have a few spare AMD/ATI cards (though I really prefer nVidia). I plan to use my AMD HD6950 in this new computer. I also don’t have a hard drive listed in this build because I will be using my current SSD along with a NAS and a rack mount server which has a nice RAID as well. That’s the one good thing about having all this extra computer equipment laying around. New builds are usually pretty cheap because I usually reuse at least a few components. A comparable computer with the same components would run me well over $1000. I would guestimate that it would cost at least $1500 with the same specs.
Marte Engine Define() and Check()
Posted by Randy in Java, Programming on March 3, 2012
I’m not very fond of the way that Marte Engine’s Input checking occurs. It simplifies things a bit in one area and complicates things in all other areas. The simplification comes from the fact that one can list all the keys for a given action in the listener definition (define(“name”, keys…), and that is pretty helpful.
However there’s something I don’t really care for when it comes to the way Marte Engine handles keyboard input, namely, it’s too fast. The key repeat becomes an issue when working with things like menus.
Disclaimer: I’m far from being a Java or game development guru. I’m merely pointing out that I ran into this issue. There could very well be a work-around for this within the Marte engine itself. I ran into this problem while trying to implement a main menu for a test game I was working on. When I would push a button, the menu selection cursor would jump to the bottom of the menu, which isn’t at all what I wanted it to do.
The believe the reason for this is that the input definitions one can make with a define() method are set to handle only KeyDown events, while I needed a KeyPressed event. Since I could find no other way to force it to use a keypress instead of a keydown, I decided to remove my input event definitions and use a standard check on the input to see if a certain button has been pressed (down and released). This solved my issue with the key events. Now my menu cursor performs as expected.