PDA

View Full Version : PSPKVM 0.3.0 released - Java Games Emulator for PSP



wraggster
April 1st, 2008, 23:23
M@x posted this news/release


After several weeks effort, finally, we make pspkvm 0.3.0 released before April 1. The new release is combined of two JavaME porting on PSP: pspkvm 0.1.0a and pspME 0.2.1, and come with some new features, e.g networking and user-defined key mapping. Since it's a big jump from previous pspkvm, the user experience is completely changed, I'd suggest to read the "Getting Started Guide" before you change to 0.3.0, you can find this pdf file on download page.
Plz don't surprise if you see some regression in the new release, e.g "Game ABC cannot run now but run well in previous version", or "Loading speed is slower than before". Feel free to report any of such bugs or regressions in the SF.net forum, on bbs of pspkvm, or directly email to us, we'll appreatiate your report to help us finding out all the regressions, which will be our target of the next release.

Enjoy!
M@x
-------------------------------------------------
pspkvm v0.3.0
31 Mar. 2008
Author: Sleepper, M@x
Email: [email protected]
Project website:
http://www.pspkvm.com
http://www.pspkvm.cn
Project home on SF:
https://sourceforge.net/projects/pspkvm


--------------------------------
Change log
--------------------------------
- Merge the source codes from 2 original project: pspkvm 0.1.0a and pspME 0.2.1 . Please see Features below for details.

--------------------------------
General information
--------------------------------
This software is a PSP porting of SUN open-source JavaME implementation: phoneMEFeature. 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 pspkvm is porting phoneMEFeature to Sony PSP game console. If you're seeking for phoneMEAdvanced porting on PSP, please take a look at the other project here: https://sourceforge.net/projects/pspme

--------------------------------
Fetures
--------------------------------
- Nokia UI APIs (partial)
- WMA1.1(JSR120) stub
- Networking (By PSP's WIFI)
- Java AMS with MVM supporting
- Several input methods: QWERTY/Abc/Symbol/...
- Directly browse and run from local jad/jar file, and auto-install without interrupting
- Jpeg support
- MIDI & Wave audio playback support
- Device emulation. You can choose device type to emulate for different screen sizes and key codes, either at installation time or from "Select device" menu
- Change default key assignment for specific application.

--------------------------------
TODO
--------------------------------
- Graphic optimization (High)
- Game loading time optimization (High)
- Resolve game compatibility regression (High)
- JSR179 implementation (Medium)
- JSR184 (Low)
- MIPS JIT compiler and Interpreter generator (Low)

--------------------------------
Bugs and known issues
--------------------------------
Known issues:
- javacall_file_truncate doesn't ported, so some file truncating operation, such as some RMS operations, may not work as expected
- Multimedia temporary files may leave on your memory stick sometimes, especially after VM crash. They're usually not big, but if you wanna delete the by hands, just goto your PSP's /PSP/GAME/pspkvm/ directory, find the file whose name likes xxxxxxxx_tmp_mus.mid, delete them.

Regrssions (comparing with pspkvm 0.1.0a):
- Game compatibility: Since we changed our code base to phoneME, some games MAY NOT run correctly on pspkvm 0.3.0, which ran well on pspkvm 0.1.0a. Although we tested many contents before this release, we still belive that there must be some app/games have regression. Any bug report of compatibility regressions is welcome, and important!
- CW90 is now supported now, but will come in near future.
- Some Chinese characters cannot be displayed correctly in file selection screen. But all kinds of memory sticks should work now.
- Loading speed: Actually it's a feature not regression :-p There's a speed/space trading inside of the new code. Some games decompress resources from jar when loading; To avoid too much memory consumption for large file decompressing, pspkvm 0.3.0 uses an fix-sized buffer to read and inflate files from jar, which slows down the speed of decompressing if the resource is larger than 32K. But pspkvm 0.1.0a always read-in completely regardless the resource size, and then decompress in memory, so some games loading speed is slower in pspkvm 0.3.0 than pspkvm 0.1.0a. But the good thing is it would never fail for lacking of memory when decompress large resources from jar.

--------------------------------
Run from binary bundle
--------------------------------
1. Download correct binary bundle:
- If you have a 1.50 kernel PSP:
Download pspkvm-bin-x.x.x-150.zip
- If you want to run pspkvm on 3.xx OE:
Download pspkvm-bin-x.x.x-slim.zip
2. Extract the zip to PSP's /PSP/GAME/
3. If you want MIDI support, download midi_res.zip and extract it to PSP's /PSP/GAME/pspkvm
4. Here we go!
NOTE: There's also an all-in-one bundle avaiable on download page, which contains MIDP support files. You don't have to download separated midi_res.zip if you choose "all-in-one".

--------------------------------
Building instructions
--------------------------------
For the ones who are interested in our source code:
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 the executable:
- If build on 1.50 kernel:
make kxploit
You should get pspkvm and pspkvm% directories in this directory, just copy them to your PSP's /PSP/GAME or /PSP/GAME150 directory.
- If build on 3.xx OE:
make BUILD_SLIM=true
You should get EBOOT.PBP in this directory, copy it to your PSP's /PSP/GAME/pspkvm directory
7. Copy "lib" and "appdb" directory from ${your_source_dir}/midp/build/javacall_psp/output/ into PSP's /PSP/GAME/pspkvm
8. unzip midi_res.zip to PSP's /PSP/GAME/pspkvm (If you need MIDI support)

Requirement:
SDL_mixer
libvorbis
libogg

--------------------------------
Running tips
--------------------------------
- Run MIDlet from memory stick:
1) Select "Find Application" item in AMS (the item on the top)
2) Select "Install from memory stick (ms0:/)"
3) Browse the file system of your memory stick now, and select jad or jar to run
4) After selected, the jad/jar will be automatically installed and run. You can choose the installed application from AMS next time you want to run.

- 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:
By default, the key assignment is blow:
NUM0: Cross
NUM1: Square
NUM2: UP
NUM3: Triangle
NUM4: LEFT
NUM5: Shift+Circle
NUM6: RIGHT
NUM7: Shift+Square
NUM8: DOWN
NUM9: Shift+Triangle
*: Shift+SELECT
#: Shift+START
CLEAR: Shift+Cross
SELECT: Circle
Left Soft: SELECT
Right Soft: START
UP/DOWN/LEFT/RIGHT: Analog joy stick
(* "Shift" = holding Left Trigger or Right Trigger)

Left Trigger + Right Trigger + Triangle: Multi-tasking key (Click to return AMS and put MIDlet to background)
Left Trigger + Right Trigger + Cross: Exit current running MIDlet

- Multi tasking
In and application, press Left Trigger+Right Trigger+Triangle 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.
Note that currently we only enable run 2 MIDlet to run at same time, will allow more in future.

- Connect to network
Before a Java MIDlet wants to use network, you need to connect your PSP to network at first. To setup this connection, please select "Network Setup" in AMS(the 2nd item in AMS MIDlets list), then all the wifi connections you've setup in PSP will be listed. Select one and until an alert popup to tell you if it's succeeded. Once it says "Successfully connected by profile xxx", that means your network is setup, and back to AMS and run you MIDlet which uses network.
*Tips for 3.xx OE users: you don't have to setup network in "Network Setup" menu. When the first your MIDlet want to access wifi network, a PSP network setup dialog will popup and prompt you connecting. But it only appears at the fisrt the Java VM want to access network, if you disconnected network after setup, you'll have to re-setup network manually by "Network Setup" menu.

- Select device to emulate
When user select a jad/jar file from memory stick to run, a "Device Select" menu will appear. Choose you preffered device size and model here, and press CIRCLE key to decide. If want to change the preffered device setting, go back to AMS and move the highlight onto the MIDlet whose setting you want to change, then select "Select Device" from menu.

- Change default key assignment for specified game
Default key assignment may not fit your game, you can go to AMS and move the highlight onto the MIDlet whose key assignment you want to change, then select "Select Device" from menu. Change the key setting as what you want. REMEBER:"Shift" means Left Trigger or Right Tirgger.

Download and Give Feedback & Compatability Reports Via Comments

ReeS
April 2nd, 2008, 00:41
Hey sweet thanks for this update. I'm too lazy to look for some decent J2ME games but i loaded up opera mini and it works quite well. It even loaded up slashdot and some other sites that my psp browser has never been able to handle (out of memory on my fat psp).

siulmagic
April 2nd, 2008, 00:45
very nice job gona test it now =D

bah
April 2nd, 2008, 04:40
Great release, many thanks. :)



...i loaded up opera mini and it works quite well. It even loaded up slashdot and some other sites that my psp browser has never been able to handle (out of memory on my fat psp).

Hahaha that really put a smile on my face.
Opera mobile is more useful on the PSP through a Java VM than sony's own PSP browser. :)

I remember browsing the web was a lot better on my old N-gage (16MB ram) with opera than on the PSP with 32MB and it's terrible inbuilt browser, nice to know its not just me who thinks so little of it.

Voorhees
April 2nd, 2008, 05:15
Damn, this is getting really good.

The WIFI thing, is it using WIFI where bluetooth multiplayer should be? If so, then it's great.

I am going to try this shait right now.

Peace.

juiceface
April 2nd, 2008, 05:51
when i try to run a game (.jar file) i get the message

"Install error, the connection dropped and the installation did not complete. PLease try installing again"

what am i doing wrong? does this require a network connection to run?

M@x
April 2nd, 2008, 10:39
when i try to run a game (.jar file) i get the message

"Install error, the connection dropped and the installation did not complete. PLease try installing again"

what am i doing wrong? does this require a network connection to run?

Hum... there're 2 options in "Find Application": "From memory stick" or "From http". You shouldn't see this message if you install JAR from memory stick; if you install from JAD, you may need to see into your jad file, to see if jar-url points to a network address.

JKKDARK
April 2nd, 2008, 17:26
Great. I'm not a fan of these Java games but there are some of these games that I would like to play on my PSP. Nice release :)

darknight88
April 2nd, 2008, 20:52
OMG this thing rules, mad props to the devs anf hopefully that 0.1a compability of games will return in future updates!

Buddy4point0
April 2nd, 2008, 21:54
There are alot of good java and cell phone games that people will enjoy by using this, great work.

TheLazy1
April 2nd, 2008, 23:43
Hey sweet thanks for this update. I'm too lazy to look for some decent J2ME games but i loaded up opera mini and it works quite well. It even loaded up slashdot and some other sites that my psp browser has never been able to handle (out of memory on my fat psp).

How did you get Opera Mini to work?
When I run it I get this error:



Failed to connect to the internet.

Verification of server certificate failed. Please check the date setting in your device.


It would really be nice to get this working, I use Opera Mini on my phone all the time :D

EDIT:
Nevermind, seems to be working now.
This is amazing!

The only suggestions I would have would be:
1) Fix the backlight dimming, right now it dims even if you are scrolling the page using the analog stick.
2) Find some way to input text better. Anything would be 1000x better than the current system, I had to keep my phone out just to know which buttons to push for which letter.

Other than that everything works perfectly.

juiceface
April 3rd, 2008, 04:51
ok cool i got them working, not sure why it was saying that at first :)

can anyone reccomend the biggest screen setting for resolution

thank you author for your great work


edit: yea it's only on a certain games i am getting the msg, others work fine.. thanks again!

aznTerz
April 3rd, 2008, 06:15
it would be alot better
if they could get the psp osk for the typing coz i find the phone one gets rather annoying.