A PSP porting of SUN's phoneMEAdvanced project (https://phoneme.dev.java.net/), to enable MIDP/PBP/JavaME applications running on PSP. You can also find phoneMEFeature PSP porting from another project: pspkvm(https://sourceforge.net/projects/pspkvm)
Be the first to post a text review of pspME. Rate and review a project by clicking thumbs up or thumbs down in the right column.
After pspME merging with pspkvm, previous pspME releases have been moved to pspkvm's download page. Please go to https://sourceforge.net/project/showfiles.php?group_id=217400 for downloading binary and source codes.
After a wonderful meeting today, Sleeper, the author of pspkvm (http://www.pspkvm.com), and I decided to merge our works into a new project. The new project remains the name "pspkvm", and current pspME source code will be used as new project's code base, all the current pspkvm features (e.g Nokia UI, Chinese file name supporting and devices selector etc.) will be inherited. The new pspkvm project's home page is now still under construction, and will be hosted by SourceForge. Sleeper and I will work together in new pspkvm project from now on, we promise to keep offering good JavaME implementation on PSP. The next release of new pspkvm will be available with source code under GPL, and keep the game compatible list consistent with current pspkvm. pspME project will keep alive. While pspkvm will be based on phoneMEFeature, pspME will change to implement phoneMEAdvanced on PSP, and the 2 projects will share codes for their JSRs' implementation. Since I'll be working on pspkvm, however, next release of pspME may not come very quickly; But once it comes, it'll be a CDC based and JIT Compiler enabled VM. See you in pspkvm! (http://www.pspkvm.com)
I just open the 2 Forums: Help and Open Discussion for anonymous post. Sorry for have ignored that, please feel free to post your comments now!
F.A.Q 8 Feb. 2008 Author: M@x ======================= Q: What is pspME? A: pspME is a PSP porting of phoneME project, to enable MIDP/JavaME applications running on PSP. Please see the following introduction of phoneME project which is copied from its website: [ The objective of the phoneME project is to further expand the usage of Java Platform, Micro Edition (Java ME platform) technology in the mobile handset market. The project scope includes a focus on the mainstream feature phone segment with phoneME Feature software, and the emerging advanced phone segment with phoneME Advanced software. Our goal in making these technologies available to the Mobile & Embedded Community is to reduce implementation variation, increase the rate of innovation and enable new devices to leverage the power of the Java ME platform. ] pspME comes with a phoneMEFeature porting at first, and expecting phoneMEAdvanced in future. For more phoneME information, please refer to this URL: https://phoneme.dev.java.net/ -------------------------------- Q: What's the difference between pspME and pspkvm? A: pspkvm is a good JavaME implementation on PSP by Sleeper (www.pspkvm.com). Currently it's already had a long compatible list, including many famous commercial games. pspME is a different JavaME implementation in term of source code of VM, but SHOULD be same in Java API compatibility, which means they're both - well, informally - "Java compliant". Then what's the difference? Well, let me give a rough explaination here: - Porting from different source code base: pspkvm: Porting from KVM. pspME: Porting from phoneME. - Different VM infrastructure: pspkvm: KVM is SUN's Reference Implementation of JavaME specification, no JIT compiler and optimized Interpreter supporting, and porting layer is not well defined. pspME: phoneME is SUN's Optimized Implementation, A.K.A Hotspot Implementation, JIT compiler and optimized Interpreter is enabled. Unfortunately, however, current pspME can't use this advanced functionality because MIPS cpu porting is still not implemented, so only C interpreter is used, which offers similiar performance as pspkvm. But once MIPS arch is supported by phoneME in future, you'll see performance boost, I promise :-) - Different scope: pspkvm: According to the author, pspkvm currently support CLDC/MIDP/Nokia UI(partial), and JSR205/JSR184/Full Nokia UI in future pspME: MSA full set, except some unnecessary JSRs. At current intial stage, CLDC/MIDP2.1/MMAPI(JSR135) is ongoing; JSR75(File connection), JSR172(Web service), JSR177(Crypto), JSR211(Content handler), JSR180(SIP) and JSR226(SVG) will come in future. Another interesting JSR is JSR179, Location API. I know PSP can support GPS device now, but I haven't seen it in real, and don't know if it's possible to get SDK for Homebrew. If JSR179 is ported, some cool application such as Google Map will come to PSP with real time location info. Nokia UI and JSR184(m3g) are very important components as well, but I still have no any information of open their source implementations. Writing them from scratch is out of my scope, sorry. - pspME is MVM enabled. What does it mean? MVM means that it's able to run several Java applications simultaneously. For example, you can play mp3, chatting with friends in Yahoo!Messanger and read email at same time! ------------------------------- Q: Why pspME doesn't run as fast as I expected? A: Sorry for that, pspME now is only in initial stage and not optimized. Another important reason is JIT compiler and optimized Interpreter are not available. I'll be very appreatiate if anyone of you guys can contibute in pspME optimization. ------------------------------- Q: Why are you porting phoneMEFeature rather then porting phoneMEAdvanced directly? A: Good point. Actually my previous plan was phoneMEAdvanced, but I found it lacks of libpthread on PSP. So I changed my mind to make it happen at first, show something up and collect responses. phoneMEFeature is much more easier to porting, especially I don't have to do with the trouble of native threads. It saves time in term of showing something before too long. Anyway, I think phoneMEAdvanced is the ultimate goal, and its MIPS JIT compiler is already available, but let's wait & see if there will be good libpthread appears on PSP in near future, or we do it directly from current PSP thread APIs. ------------------------------- Q: Why do you start this project when pspkvm is already there? A: Well, first of all, pspkvm does a good job. However, it's not open source. My initial motivation of pspME is make it open source. Further more, you see the scope of pspME is much larger, it ------------------------------- Q: How can I install a MIDlet? A: After v0.2.1, you can just browse the file system to select jad/jar to install in AMS. When pspME started, select the first item in AMS (Instal Application), you would see a textbox to let you input the location where you want to browse start with. The default value is "ms0:/". ------------------------------- Q: Why can't I input 'j'/'k'/'l' by abc input method? A: In "abc" input method, 'j'/'k'/'l' composite is mapped to key '5', which is currently assigned to Cross key. BTW, key '0' is assigned to Square key and CLEAR to Triangle. For complete key assignment, please refer to Release Note. I also have a proposal on my TODO list to make key assignment configurable per application. ------------------------------- Q: Can I install from a jad instead of jar? A: Sure. The only place you need to notice is the MIDlet-Jar-URL MAY need to be fixed. ------------------------------- Q: What's your vision of the future of pspME? A: JavaME is NOT ONLY a game platform. Besides the tons of fancy games, I also want to enable some killer JavaME applications on PSP, e.g. map applications, email clients, IMs, browsers, etc., and make them work together by MVM environment to form a more powerful platform.
pspME v0.2.1 8 Feb. 2008 Author: M@x -------------------------------- Change log -------------------------------- - Enable browse and select JAR from local file system, don't have to input the full path name of JAR file now. - A little optimization of RMS speed. - Separate MIDI config and instrument files from binary bundle to decrease the size, and make you not have to download them for every release. NOTE: Please download midi-res.zip from midi-res package, and you don't have to download it again for future releases. -------------------------------- General information -------------------------------- This software is a PSP porting of SUN open-source JavaME implementation: phoneME. The words below is copied from phoneME's website to describe the project: The objective of the phoneME project is to further expand the usage of Java? Platform, Micro Edition (Java ME platform) technology in the mobile handset market. The project scope includes a focus on the mainstream feature phone segment with phoneME Feature software, and the emerging advanced phone segment with phoneME Advanced software. Our goal in making these technologies available to the Mobile & Embedded Community is to reduce implementation variation, increase the rate of innovation and enable new devices to leverage the power of the Java ME platform. You can also refer to the original website from here: https://phoneme.dev.java.net/ The goal of pspME is porting phoneME to Sony PSP game console. As the first step, my goal is a phoneMEFeature PSP implementation, which can enable user to run JavaME application on CLDC. In future, if time permit, I'll try to porting phoneMEAdvanced as well. -------------------------------- Fetures -------------------------------- - Java AMS with MVM supporting - Several input methods: QWERTY/Abc/Symbol/... - Install application from local JAR file - Jpeg support - MIDI support -------------------------------- TODO -------------------------------- - Play sample audio (High) - User configurable key map (High) - Networking (Medium) - Graphic optimization (Medium) - JSR184 (Low) - MIPS JIT compiler and Interpreter generator (Low) -------------------------------- Bugs and known issues -------------------------------- - sceIoRename, which is used in javacall_file_rename(), doesn't work properly somehow - javacall_file_truncate doesn't ported, so some file truncating operation, such as some RMS operations, may not work as expected -------------------------------- Run from binary bundle -------------------------------- 1. Download pspME-bin-x.x.x.zip 2. Extract "PSPME" and "PSPME%" directories from the zip to PSP's /PSP/GAME or /PSP/GAME150 3. If you want MIDI support, download midi-res.zip and extract it to PSP's /PSP/GAME/PSPME or /PSP/GAME150/PSPME 4. Here we go! -------------------------------- Building instructions -------------------------------- 0. You have to prepare the building enviroment for phoneME at first. Please refer the document from here: https://phoneme.dev.java.net/content/mr2/buildenv_feature.html#win_setup Now assume you have installed the building environment by following the above instruction. In Cygwin: 1. unzip the source bundle to a directory 2. cd ${your_source_dir} 3. export JDK_DIR=${your_jdk_dir} (example: export JDK_DIR=c:/j2sdk1.4.2_16) 4. ./build-psp-cldc.sh 5. cd psp Now you should see the success message of phoneME libs building. 6. make kxploit You should get PSPME and PSPME% directories in this directory, just copy them to your PSP's /PSP/GAME or /PSP/GAME150 directory. 7. Copy "lib" and "appdb" directory from ${your_source_dir}/midp/build/javacall_psp/output/ into PSP's /PSP/GAME/PSPME or /PSP/GAME150/PSPME 8. unzip midi_res.zip to PSP's /PSP/GAME/PSPME or /PSP/GAME150/PSPME (If you need MIDI support) Requirement: SDL_mixer libvorbis libogg -------------------------------- Running tips -------------------------------- - Install MIDlet from JAR file: 1) Copy the JAR file to memory stick 2) In AMS, select the first item "Install Application" 3) Input the full path name of the JAR file. For example: ms0:/abc.jar, means to install MIDlet from abc.jar which is copied to root directory of memory stick 4) Click Right Soft-button and select "2 Go to" from the popup menu, then follow the steps on screen - Input text: You can't use Qwerty input method on PSP since it's lack of standard keyboard, but there's still other input methods available. In any text input sence, you can popup the menu by Right Soft-button, and change to another input method. I'd suggest to use "abc" to input alphabetics, just like you've done on your phone, input english characters by 0~9,#,* keypad. - Key map: Currently, key map is hardcoded and you've to change source code to alter it. By default, the key assignment is blow: Left Trigger : Left Soft-button Right Trigger: Right Soft-button Up/Down/Left/Right: Up/Down/Left/Right Select: * Start : # Triangle: CLEAR Circle : SELECT Analog Joy Stick: UP-LEFT 1 UP 2 UP-RIGHT 3 LEFT 4 RIGHT 6 DOWN-LEFT 7 DOWN 8 DOWN-RIGHT 9 CROSS : 5 SQUARE : 0 Left Trigger + Right Trigger: Multi-tasking key (Click to return AMS and put MIDlet to background) - Multi tasking In and application, press Left Trigger + Right Trigger will put current running MIDlet to background, and AMS screen will be shown. The background running MIDlet is shown in high-lighted, and you can choose another MIDlet to run without stop the previous MIDlet. To bring a background running MIDlet to foreground, just click the MIDlet item from AMS is ok.
I'm very glad to see the second release of pspME is launched on the first day of Chinese New Year. Wish world peace and everybody keep smiling in the coming new year - the year of Mouse :-)
pspME v0.2 7 Feb. 2008 Author: M@x -------------------------------- General information -------------------------------- This software is a PSP porting of SUN open-source JavaME implementation: phoneME. The words below is copied from phoneME's website to describe the project: The objective of the phoneME project is to further expand the usage of Java? Platform, Micro Edition (Java ME platform) technology in the mobile handset market. The project scope includes a focus on the mainstream feature phone segment with phoneME Feature software, and the emerging advanced phone segment with phoneME Advanced software. Our goal in making these technologies available to the Mobile & Embedded Community is to reduce implementation variation, increase the rate of innovation and enable new devices to leverage the power of the Java ME platform. You can also refer to the original website from here: https://phoneme.dev.java.net/ The goal of pspME is porting phoneME to Sony PSP game console. As the first step, my goal is a phoneMEFeature PSP implementation, which can enable user to run JavaME application on CLDC. In future, if time permit, I'll try to porting phoneMEAdvanced as well. -------------------------------- What's new -------------------------------- - Jpeg support - MIDI support. Only one MIDI player can be started at same time. No sample sound support yet. But it obviously slows down the VM speed when music is playing, and start playing may take time, so plz be patient if it looks stuck while starting music :-p Another side effect is the binary bundle is much larger than before for the MIDI soft wave table. If you want to build from source, please ensure that you have SDL_mixer, libvorbis and libogg installed to your sdk environment. -------------------------------- TODO -------------------------------- - Play sample audio (High) - User configurable key map (High) - Networking (Medium) - Graphic optimization (Medium) - JSR184 (Low) - MIPS JIT compiler and Interpreter generator (Low) -------------------------------- Bugs and known issues -------------------------------- - sceIoRename, which is used in javacall_file_rename(), doesn't work properly somehow - javacall_file_truncate doesn't ported, so some file truncating operation, such as some RMS operations, may not work as expected - javacall_dir_get_next doens't work for sceIoDread() somehow trash the stack, still under investigation. This bug may cause fail to remove RMS or MIDlet suite. Once this bug resolved, a graphic installer with JAR file selector could be implemented. Now user has to input the full path name of JAR file in the installer to install MIDlet. -------------------------------- Building instructions -------------------------------- 0. You have to prepare the building enviroment for phoneME at first. Please refer the document from here: https://phoneme.dev.java.net/content/mr2/buildenv_feature.html#win_setup Now assume you have installed the building environment by following the above instruction. In Cygwin: 1. unzip the source bundle to a directory 2. cd ${your_source_dir} 3. export JDK_DIR=${your_jdk_dir} (example: export JDK_DIR=c:/j2sdk1.4.2_16) 4. ./build-psp-cldc.sh 5. cd psp Now you should see the success message of phoneME libs building. 6. make kxploit You should get PSPME and PSPME% directories in this directory, just copy them to your PSP's /PSP/GAME or /PSP/GAME150 directory. 7. Finally, unzip resouces.zip to extract the files into PSP's /PSP/GAME/PSPME or /PSP/GAME150/PSPME Requirement: SDL_mixer libvorbis libogg -------------------------------- Running tips -------------------------------- - Install MIDlet from JAR file: 1) Copy the JAR file to memory stick 2) In AMS, select the first item "Install Application" 3) Input the full path name of the JAR file. For example: ms0:/abc.jar, means to install MIDlet from abc.jar which is copied to root directory of memory stick 4) Click Right Soft-button and select "2 Go to" from the popup menu, then follow the steps on screen - Input text: You can't use Qwerty input method on PSP since it's lack of standard keyboard, but there's still other input methods available. In any text input sence, you can popup the menu by Right Soft-button, and change to another input method. I'd suggest to use "abc" to input alphabetics, just like you've done on your phone, input english characters by 0~9,#,* keypad. - Key map: Currently, key map is hardcoded and you've to change source code to alter it. By default, the key assignment is blow: Left Trigger : Left Soft-button Right Trigger: Right Soft-button Up/Down/Left/Right: Up/Down/Left/Right Select: * Start : # Triangle: CLEAR Circle : SELECT Analog Joy Stick: UP-LEFT 1 UP 2 UP-RIGHT 3 LEFT 4 RIGHT 6 DOWN-LEFT 7 DOWN 8 DOWN-RIGHT 9 CROSS : 5 SQUARE : 0 Left Trigger + Right Trigger: Multi-tasking key (Click to return AMS and put MIDlet to background) - Multi tasking In and application, press Left Trigger + Right Trigger will put current running MIDlet to background, and AMS screen will be shown. The background running MIDlet is shown in high-lighted, and you can choose another MIDlet to run without stop the previous MIDlet. To bring a background running MIDlet to foreground, just click the MIDlet item from AMS is ok.
pspME v0.1 5 Feb. 2008 Author: M@x -------------------------------- General information -------------------------------- This software is a PSP porting of SUN open-source JavaME implementation: phoneME. The words below is copied from phoneME's website to describe the project: The objective of the phoneME project is to further expand the usage of Java? Platform, Micro Edition (Java ME platform) technology in the mobile handset market. The project scope includes a focus on the mainstream feature phone segment with phoneME Feature software, and the emerging advanced phone segment with phoneME Advanced software. Our goal in making these technologies available to the Mobile & Embedded Community is to reduce implementation variation, increase the rate of innovation and enable new devices to leverage the power of the Java ME platform. You can also refer to the original website from here: https://phoneme.dev.java.net/ The goal of pspME is porting phoneME to Sony PSP game console. As the first step, my goal is a phoneMEFeature PSP implementation, which can enable user to run JavaME application on CLDC. In future, if time permit, I'll try to porting phoneMEAdvanced as well. -------------------------------- What's new -------------------------------- - An intiative porting of MIDP and CLDC - Java AMS with MVM supporting - Several input methods: QWERTY/Abc/Symbol/... - Install application from local JAR file -------------------------------- TODO -------------------------------- - Enable sounds and music (High) - User configurable key map (High) - Networking (Medium) - Graphic optimization (Medium) - JSR184 (Low) - MIPS JIT compiler and Interpreter generator (Low) -------------------------------- Bugs and known issues -------------------------------- - sceIoRename, which is used in javacall_file_rename(), doesn't work properly somehow - javacall_file_truncate doesn't ported, so some file truncating operation, such as some RMS operations, may not work as expected - javacall_dir_get_next doens't work for sceIoDread() somehow trash the stack, still under investigation. This bug may cause fail to remove RMS or MIDlet suite. Once this bug resolved, a graphic installer with JAR file selector could be implemented. Now user has to input the full path name of JAR file in the installer to install MIDlet. -------------------------------- Building instructions -------------------------------- 0. You have to prepare the building enviroment for phoneME at first. Please refer the document from here: https://phoneme.dev.java.net/content/mr2/buildenv_feature.html#win_setup Now assume you have installed the building environment by following the above instruction. In Cygwin: 1. unzip the source bundle to a directory 2. cd ${your_source_dir} 3. export JDK_DIR=${your_jdk_dir} (example: export JDK_DIR=c:/j2sdk1.4.2_16) 4. ./build-psp-cldc.sh 5. cd psp Now you should see the success message of phoneME libs building. 6. make kxploit You should get PSPME and PSPME% directories in this directory, just copy them to your PSP's /PSP/GAME or /PSP/GAME150 directory. 7. Finally, unzip resouces.zip to extract "appdb" and "lib" directories PSP's /PSP/GAME/PSPME or /PSP/GAME150/PSPME -------------------------------- Running tips -------------------------------- - Install MIDlet from JAR file: 1) Copy the JAR file to memory stick 2) In AMS, select the first item "Install Application" 3) Input the full path name of the JAR file. For example: ms0:/abc.jar, means to install MIDlet from abc.jar which is copied to root directory of memory stick 4) Click Right Soft-button and select "2 Go to" from the popup menu, then follow the steps on screen - Input text: You can't use Qwerty input method on PSP since it's lack of standard keyboard, but there's still other input methods available. In any text input sence, you can popup the menu by Right Soft-button, and change to another input method. I'd suggest to use "abc" to input alphabetics, just like you've done on your phone, input english characters by 0~9,#,* keypad. - Key map: Currently, key map is hardcoded and you've to change source code to alter it. By default, the key assignment is blow: Left Trigger : Left Soft-button Right Trigger: Right Soft-button Up/Down/Left/Right: Up/Down/Left/Right Select: * Start : # Triangle: CLEAR Circle : SELECT Analog Joy Stick: UP-LEFT 1 UP 2 UP-RIGHT 3 LEFT 4 RIGHT 6 DOWN-LEFT 7 DOWN 8 DOWN-RIGHT 9 CROSS : 5 SQUARE : 0 Left Trigger + Right Trigger: Multi-tasking key (Click to return AMS and put MIDlet to background) - Multi tasking In any application, press Left Trigger + Right Trigger will put current running MIDlet to background, and AMS screen will be shown. The background running MIDlet is shown in high-lighted, and you can choose another MIDlet to run without stop the previous MIDlet. To bring a background running MIDlet to foreground, just click the MIDlet item from AMS is ok.
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?