March
06
2010
UPDATE: New version (2.2.1) is available.
MeBoy is a great Nintendo® Game Boy®/Game Boy® Color emulator for Java ME-enabled mobile phones, made by Björn Carlin and available under the GPL. The emulation speed and quality is most likely the best you can get on a plain Java phone (without native API like Symbian or Windows Mobile), and probably the best you can get on any mobile platform as free and open source software.
Still, it has a big disadvantage - an archaic way of handling game cartridge ROMs, which have to be bundled with the game JAR on a computer before installing the emulator on the mobile device. I've made a modified version which loads the games from filesystem instead.
Here are the files:
You can use MeBoyBuilder from the official MeBoy distribution for Bluetooth connectivity.
There are only two changes I made not related at all to the new way of handling game ROMs: the removal of smaller icon variants, and fixing the loading of language file index, as it was broken in the version available as sources on MeBoy homepage.
Speaking of languages, all translations available on standard MeBoy are available on MeBoy-F, but since there are few new strings, those are only in English and Polish. All other languages use English texts in brackets.
Java ME implementations are, by design, getting paranoid when it comes to file handling, prompting for permission for every single file or directory open operation. One of my design choices was minimizing the number of prompts necessary during an average operation. Therefore:
I've made a design choices that the only files that are listed on the "New Game" menu are those with .gb, .gbc and .sgb extensions. If you have some games with other extensions (like .rom), you'll have to rename them. This approach make it feasible to have a single directory for storing ROMs for all platforms for which emulators are installed on the phone. I've also incorporated ROM validity checks, adapted from the MeBoyBuilder, so that you are not likely to accidentally load a text file renamed to .gb as a game ;)
Bluetooth connectivity works just like on a standard MeBoy, and you can use official MeBoyBuilder for it.
I hope you'll enjoy it! :)
№ 1
March 24th, 2010, 03:49 CET
5andra
I must admit I don't really like the graphic design on this page ;) The one on the private blog was much better ! I don't really get how the menu on the left was to work, but maybe consider the whole blog to be rather blog, not just notes divided into some categories.
And good luck ;)
№ 2
April 01st, 2010, 21:33 CEST
Jonathan
Its vey useful to have only the emu and the add the gbc files whenever you want. I know that you do this for hobby or another reason, but I have a problem with this and the original MeBoy. I have a Nokia 3600 slide and I tryied to configure the keys so that i can play more confortable, but I cant use the function left button or the camera as a gameplay button. The function left button pops up the emulator menu but the function right button and enter does the same, so it would be useful to "free" the key...
@Jonathan: That's the problem with how mobile Java works. Of course, it is possible to access the softkeys on most phones, but at least two important problems arise:
Firstly, the softkey events are not standardized, that is, it have to be programmed separately for Nokias, Motorolas, Sony Ericssons and so on. However, I must admit that this is less an issue for MeBoy as it has configurable key mapping. Nevertheless, probably some phones exist on which softkeys are not accessible, though.
Secondly, and more importantly - mobile Java standard dictate how UI elements behave. You don't program things like "when the left softkey is pressed, display the menu" - instead, you program things like "let this screen have a menu", and the Java software takes care of the rest. This allows the software to have a consistent look&feel, and conform to interface guidelines - for example, to have the right softkey as a "back" or "quit" button on Nokias, and one of the buttons on the left on Sony Ericssons.
"Freeing" the softkeys mean elliminating all those standard UI elements and implementing everything on your own - at least on the main emulation screen. That means a complete reprogramming of how the in-game menu is handled, and also having to set some default button for it - which may be confusing, because I can't choose any of the softkeys (as it can block the access to menu at all on some phones which use completely different key numbers for softkeys), and phone users instinctively try to use one of the softkeys to access interface, not the asterisk key, for example.
The other method is to use different mapping for different phones (using some kind of database) and a generic fallback (to the above-mentioned asterisk, for example) in case of not recognizing the phone...
I think it's better (and way simpler, which is also important) the way it is.
№ 4
April 29th, 2010, 16:01 CEST
fkhonsu
lepiej jest co jakiś czas klikać, i wyrażać pozwolenie na otwarcie pliku czy nie zagrać wcale ?!
CHCEMY PRZYWRÓCENIA "partial ROM loading feature"!!!
WE WONT "partial ROM loading feature" BACK!!!
№ 5
May 11th, 2010, 21:01 CEST
kaede-chan
Hey, I've got something to ask.
How come whenever I try to load or start up a game, it shows: Out Of Memory java/lang/OutOfMemoryError?
@かえでちゃん ;) - It probably means that your phone has too less memory to load the entire game ROM into it. It may also be that it has enough memory, but doesn't let Java applications make use of it - which hardly makes any difference, anyway.
The original MeBoy would probably run on your phone, as it allows for partial loading of games - it loads as much of the game as possible at the start, and when some part of it that was not yet loaded is necessary, it discards the least-used already-loaded part and loads the new part in its place.
I've removed it from MeBoy-F, since using it would mean that you would probably be getting prompts mid-game, forcing you to click "Yes" every time - so I thought it's not a great idea. Still, fkhonsu also wished for having that feature back, so I'll probably reincorporate it when I'll have more free time.
№ 7
May 16th, 2010, 02:10 CEST
searcher13
Wouldn't it be good to just add an option in settings to either load roms at once or in pieces? This way everyone will be happy. Also some phones have "ask once at access" or "don't ask" options.
I also have another question. Since already are "in" the topic, would it be possible for you to fix the sound not playing on phones without mobile media api? I don't know how this exacly works, but other programs can play sound quite fine. Maybe it's as simple as replacing the advanced sound commands with the more basic ones? So far I only managed to locate the sound procedures but don't have a clue how do they works.
@searcher13: That's what I'm planning to do. There will be an option in menu, just like in original MeBoy. It's just I have much work at the university at the moment, and since I don't have much free time to work on my own projects.
However, I don't think the "ask once at access" or "don't ask" options will be available on any phone... As far as I know, the mobile Java architecture is built with security in mind, so such options show up only if the application is digitally signed. At least I've found it to be so - such options show up with Opera Mini, for example, but not with any application I've written or compiled myself.
I've tried to make a version signed with a hacker's BINPDA certificate, which is widely installed on Symbian S60 3rd Ed. phones to allow self-signing of unsigned applications. However, it does not work with Java applications, and my N73 equipped with BINPDA root certificate, didn't accept a Java app signed with it, even though it happily accept Symbian apps signed with the exact same certificate.
On my previous phone, which was Nokia 3110c, I've figured a way to install additional certificates, and it should work on other Nokia S40-based phones. There is probably a way to install additional certificate on Symbian, too, it's just I don't know that OS's architecture too well.
About the sound - unfortunately, I don't know too much about sound in J2ME... I realize that MeBoy uses MIDI to play the sound, and to be honest... in games I checked, it sounded terrible... Sound is not a priority for me, either, since I don't usually want to have my phone distract everyone around, so I prefer to play silently. So I don't plan to play around with sound routines, at least not in near future.
№ 9
May 25th, 2010, 18:10 CEST
ZAERER
Will be a good idea to load the rom in pieces. I have been look at the source of meboy(the original), and if I change the source on "DmgCpu.java", changing GetResourceAsStream to an fileconnector, maybee can load the pieces of rom. But It is not so easy. You have implemented various choices, (Saves, Browser)
You can fix the midlet with some free certificates as "EQHalmer" and "BeHappy". I am waiting for this new feature. Thanks!
Sorry, my english is very bad :(
Hi, i have used Meboy and now i want to put a game on my phone that exceeds the maximum size my phone will hold and on the Meboy site it says that Meboy-F can be used to avoid this problem. when i try to open meboy-f.jar, my computer will not open it. So i am wondering is there a different way that this is supposed to be used that is different then the regular MeBoy, where it creates the .jar file for you?
Thanks!
@up: In the regular MeBoy, you use the MeBoyBuilder program, which generates a pair of files (JAR and JAD), which then you put on the phone.
With MeBoy-F, you have the JAR/JAD pair of files to put on the phone as they are. There is no need to generate anything, so just copy these two files to your phone and try to run or install it there.
Then you can send games in a similar way, by transferring the ROM files to the filesystem of your phone.
If you'll still have problems, please give some details, like, for example, the make and model of your phone, then I'll try to give you some more specific instructions.
№ 12
June 07th, 2010, 23:46 CEST
Nick
Thanks a lot for your help!! I have it working now, and it works great,i just needed to know where to put the files.
Thanks again
Nick
№ 13
June 13th, 2010, 19:58 CEST
James
Would you be open to modifying the current MeBoy-F 2.2 and releasing a MeBoy-F 2.0? The latest MeBoy versions do not start on my phone and I'm sure other phones as well. 2.0 was the last working version, after that something changed in the code I guess.
Thanks,
James
May I ask you for some more details about what is happening on your phones with newer versions? If the app doesn't start at all, are there any error messages? If you are able to enter the menu, please turn on the log in settings, and write what is there after you try to start the game. Thanks in advance :)
I think it would be better to fix the current version than to go back to older ones.
№ 15
June 14th, 2010, 03:44 CEST
James
I was looking through the phone compatibility list on arktos.se and I noticed a Sony Ericsson F305 user (not the model or brand of my phone, LG CU515) commented on removing the file "bluetooth.class" from the jar generated by the builder to get 2.2 working on his/her phone. After I removed the file MeBoy 2.2 works for me (and I assume 2.1 will) so there must have been a change in "bluetooth.class" from 2.0 to the later versions. I haven't tried this with MeBoy-F yet but I'm ninety-percent sure it's the same problem minus the builder part.
James
№ 16
July 05th, 2010, 03:34 CEST
Julian
Maybe you can make it to read compressed roms in zip, becouse MeBoy compress the rom beside splits it in small parts.
Also, there is a way to make a jar have full acces to the memory without ask in nokia s40 phones with a software.
№ 17
July 07th, 2010, 20:32 CEST
Jack
Hi there, I'm having kind of an issue. I tried MeBoy-F because my BlackBerry 8330 wouldn't let me install larger games via MeBoy. Everything works great except the saving: the game doesn't retain my cartridge saves, and when I try to suspend, I get the following error: "An error has occurred (error#10, java.lang.IllegalArgumentException)"
Anybody got any suggestions on how I could get one or both of the save features working?
It seems that BlackBerry manages the record store (a storage space available for Java applications) in a different way than most other phones do... It would probably require a considerable redesign of the record store-related routines... I'll have this on my checklist.
№ 19
July 11th, 2010, 01:03 CEST
Jorge
hi there
i've been having a problem running the regular meboy and yours, and i'm really running out of ideas.
every time i try to open the meboy.jar file i get a message saying that the main class could not be found, this happens when i try to open it with javaw.exe.
if i try with the regular java.exe i get a black screen that appears for a millisecond
i managed to get a picture of this black box and the other error message
[IMG]http://i31.tinypic.com/b4i0rc.jpg[/IMG]
[IMG]http://i25.tinypic.com/2u4mopf.jpg[/IMG]
You are trying to run this on a computer, while this is for a mobile phone.
You have to copy the JAR file (and preferably the JAD file, too) onto the phone and run it there.
№ 21
July 11th, 2010, 01:06 CEST
Jorge
i'm really hoping you can help me out with this
thanks in advance (sorry for posting twice, i kinda did it by accident)
№ 22
July 18th, 2010, 23:08 CEST
PWiecz
I get "An error has occurred (error#10, java.lang.IllegalArgumentException)" error as well, but only when I'm trying to suspend "Super Mario Land 2 or 3".
I can suspend "Super Mario Land 1" without problems.
Any idea what may be causing that?
№ 23
July 18th, 2010, 23:28 CEST
PWiecz
Sorry for trouble - my bad - apparently you cannot suspend game which name containes dash ("-"). :)
Now it's working almost perfectly
№ 24
August 19th, 2010, 17:33 CEST
somedude
will this version of meboy make it possible to run pokemon on a nokia 7100 supernova (S40, 4mb dynamic ram) ?
at the moment i get crashes, depending on the value of max cardridge size ...
for 320kb it works until you get in a battle, but for 1mb it crashes just by moving around ... (when loading maptiles i think)
is there a way to make it work ? i've read something about external memory management software .. but i blacked out there :)
№ 25
September 15th, 2010, 23:12 CEST
Motto
Hi there, great program!
I used it fine for a couple of days, but an error ocurred.
Now it only plays files under 1mb.
Any ideas? I've tried downoading it again/deleting all games/formating the sd card, but nothing worked.
Thanks for the attention.
@Motto: what phone are you using? It appears that some settings are still on the phone and block something, although I really don't know what can it be...
№ 27
September 17th, 2010, 17:50 CEST
Aditya
I am using Samsung S-3500, i used meboy builder for a game less than 500kb but i had do reduce the max loaded cart size to 320 to work.....
For games more than the limit arktos suggests meboy-f
i know(with your help) how to start the game... but it does not start on my mobile since i cant reduce the max loaded cart size as the option is not available in settings....
Please help...
thanks in advance.....
№ 28
September 18th, 2010, 08:08 CEST
Aditya
hey..... if there is no solution to my problem please tell so that i stop trying....
@Aditya: No, it is not possible with the current version of MeBoy-F.
I'll probably reintroduce the partial loading feature in the next version, but it's hard to tell, when it'll be available, because I still don't have much time to work on it.
№ 30
November 22nd, 2010, 12:19 CET
rahul
whenever i open pokemon gold it says the meboy minlet thread threw an uncaught exception :loading the game failed plzzzzz help :'(
№ 31
December 23rd, 2010, 15:49 CET
jay
I was wondering if this ver. had a trading compatibility?
@Abel: You probably have mixed up the sources of MeBoy-F with the verbatim MeBoy. There's no MeBoyBuilder in MeBoy-F, as it's not necessary anymore.
(Komentarz zmodyfikowany 09.05.2011 o 17:27)
There is no need to use the decompiler. Download the source code above, modify what you want and recompile with Java WTK for CLDC or Java ME SDK. Eclipse or NetBeans with Java ME support should be fine, too.
I think your phone or some other tool you have used has modified the binary files automatically. In the original binary file there's no keypad.png or any touchscreen code either.
Hey, how do I compile again MeBoy-F?
I saw the source and found the icon, I resized it to medium size so it looks nice and neat in BlackBerry (it still works with the big icon, but I want it to have the medium-size one). So how do I compile again to a .jar / .jad?
i have a samsung gt s3550 and no matter how i try i can not get this thing to work...PLEASE give me step by step instructions on how to get this to work as my phone will not play any meboy file larger than 500kb and this is the only alternative
№ 37
September 07th, 2011, 08:18 CEST
Manu
I am wondering whether you can add .zip support in it (like some other emulators have) as many games when unzip crosses limit of 1mb hence phone shows them invalid .it wil definetly make many games playable with meboy f too as like original me boy.
№ 38
September 23rd, 2011, 05:17 CEST
dC
I just wanted to thank you for your effort. You spent quite some time working with the app and answering all the questions, without expecting to be paid for it, and I really appreciate that. People like you make the Web a wonderful thing.
№ 39
September 23rd, 2011, 05:38 CEST
dC
Amazing. I'd been trying to get over the 700kb limitation on java apps on my phone to get to play my pokemon games. With your soft, I now can. Thanks again!
№ 40
October 04th, 2011, 03:35 CEST
manu sharma
If saying how amazing your work,i just remove all my games and apps,pics just to make all phone memory free,still i am keeping meboy f in it as an worth to keep thing.i like it..thanks for your precious time and for making it.
№ 41
October 04th, 2011, 07:51 CEST
agusto
when accessing new game, get the error: "java.lang.SecurityException: application authorizes to access the not restricted api), my phone is Motorola Z6
№ 42
December 23rd, 2011, 05:53 CET
alex
hi there! you have done a great work! I have only one request: Would it be easy to make the save handling like on pc's? You know like having a save folder on your mobile and loading the .sav or.meboy files from there...
You see I used the original MeBoy for years on my k800i with absolute success and now that i have a new phone(w20i) i;m trying to recieve the k800i .sav file through the MeBoyBuilder, but my new phone doesn't seem to support that. You know i can record save states with "suspend" function and reload them, but cant create or transfer a .sav file and it's too bad...
If you or anyother have an answer please let me know on my email: alex-illusion@hotmail.com
Thank you very much for devoting your precious time on all peoples benefit!
@alex: PC-style savegame files are possible of course, but there's the same problem as with ROMs - every single file operation on the phone needs to be confirmed by the user, unless the app is signed. So I don't think it's a good idea for the primary save data storage.
But allowing import/export of save data directly on the phone seems a good idea, I'll have it on my mind if I decide to make next version.
№ 44
December 28th, 2011, 06:51 CET
Monolito
Guys, I've got a problem with the MeBoy F. I've sent it to my Nokia 6280 and nothing... I can't send .jar nor ROM bigger than 1MB because my phone doesn't accept them. How do I make those files smaller with MB-F?
@Monolito: MeBoy-F's .jar is under 100 KB in size, so it shouldn't be a problem. As for ROMs... try opening your phone's SD card (I see 6280 has a slot for one) on your computer, either using a card reader or by connecting your phone in mass storage mode. Then copying files of arbitrary size shouldn't be a problem, provided you have enough free space there.
№ 46
May 03rd, 2012, 17:16 CEST
Anonim
how to increase banks??..i want to make it run more faster
i run a inspection blog writing reviews of the most recent in stress reduction,
that is in all probability likely to be of appeal to subscribers of this write-up.
good post
