Nokia N95 Java Games

0 views
Skip to first unread message

Claribel Szwaja

unread,
Aug 5, 2024, 12:47:30 AM8/5/24
to mosttobethu
TheNokia 2760 is a clamshell mobile phone released in 2007 which advertised its Java game support. Ten years ago it was still a very popular phone. There were a number of games either preinstalled or available as an add-on. But was/is it also possible to develop and run a homebrew game for this device? A quick search did not reveal that there are any development kits, tutorials, or similar.

I figured out how to unpack the installer I mentioned in question's comments and figured out how to launch NDS. You can grab it here. To start (on Linux - for Windows you might need to use different directory separators), go to MIDP_Products/NDSforJ2ME/core in command line and run java -classpath ./NDS_MIDPToolSet.jar:./jhall.jar com.nokia.phone.tools.midp.ui.StandAlone ./modules ./lib. It wants to have older Java version (1.4.1) and throws some IOException at startup, but actually launches.


Since this is as far from proper install as it can get, some extra steps will be necessary to get everything working as expected (for example both bundled emulators fail to run anything because of some error with MIDI and you might have to set permissions on executables yourself).


Recently I saw an article on a USB Optical mouse that had been modded to include a Nokia Colour LCD Screen. This got me thinking, The screen was quite usefull but why go to all the effort of modding a mouse, why not use the whole Nokia?


Many laptop owners carry a spare mouse because they dont like the built in control, or because they just like to use a mouse. This adds weight, things to remember etc when you go anywhere. Also, if you use somebody elses laptop you may not be able to use their pad at all! I often setup software for somebody else on a laptop and curse the wigglestick on the keyboard that they fumble on with because they are that slow anyway but it holds me up. If I had a mouse with me at all times that would be amazing. So, the NokiaMouse was born.


Most phones now have a camera and can run Java, there is no reason that some software couldnt be written to watch for movement in the camera, and translate that into mouse signals for the PC. Bluetooth could be used to send the data to the PC.

So there was my challenge, a java program that took multiple frames from the nokia camera, translated that into direction and speed and sent it to the PC as mouse movements.


Things didnt go entirely smoothly of course. The first thing everybody is probably saying is, but the camera only shows black when its flat on the mousepad! You are of course right, Light is needed. My temporary solution is to hold the phone about .6cm above the pad, letting light in the side. My camera picks up enough to see at this distance.


The initial code didnt use bluetooth, but a usb cable to the phone as I wasnt sure about accessing the bluetooth interface directly in java or how to make a real BT Mouse HID so it would pair as if it was a mouse. For now custom driver code runs on the PC and the phone, and data is sent over a usb lead.


After giving up on the idea of a proper mouse HID I used the bluetooth to just link the phone as normal and send the data over the Nokia driver to a special driver on the PC again, this isnt as convenient as the original plan as it needs software on the PC as well as the phone, if I can be bothered ill develop a proper HID mouse bluetooth driver for the nokia, this would mean that it could be used on ANY bluetooth pc without installing software!


The pattern is important. A nokia camera is no where near as good as a proper optical mouse detector and needs a good pattern to look at. Something with high contrast pattern that isnt too fine because,

Focus! At this distance the focus is wrong because its too close. You can artificialy sharpen the image, but something with clean edges and well defined patterns works better than the grain on your wooden desk or a one colour mouse pad.


Selectable buttons! You can now choose what buttons do what. This makes it easy to configure to your liking.

Flip-ably X/Y axis! The phone will now work either way up.

Bluetooth is now working over the Nokia PC kit


As a Strategic Developer in the Eclipse Foundation, Nokia will lead a project to create a framework for mobile Java developer tools, including complete tooling support for J2ME (Java 2 Micro Edition). The project will deliver a sustainable mobile tools offering for all developers and companies who wish to create mobile Java applications and build commercial tools for Java. Nokia plans to donate several components of its existing Java development tools technology as well as actively develop new software to introduce tools for the creation of both MIDP (Mobile Information Device Profile) and CDC (Connected Device Configuration) based mobile Java applications. Furthermore, Nokia plans to use the Eclipse tools platform widely in its tools portfolio and will actively contribute to several existing Eclipse projects beyond the scope of Java.


Nokia's global developer program, Forum Nokia connects developers to tools, technical information, support, and distribution channels they can use to build and market applications around the globe. From offices in the U.S., Europe, Japan, China, and Singapore, Forum Nokia provides technical and business development support to developers and operators to assist them in achieving their goal of successfully launching applications and services to consumers and enterprises. www.forum.nokia.com.


Nokia is a world leader in mobile communications, driving the growth and sustainability of the broader mobility industry. Nokia connects people to each other and the information that matters to them with easy-to-use and innovative products like mobile phones, devices and solutions for imaging, games, media and businesses. Nokia provides equipment, solutions and services for network operators and corporations. www.nokia.com.


Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software. Eclipse provides extensible tools and frameworks that span the software development lifecycle, including support for modeling, language development environments for Java, C/C++ and others, testing and performance, business intelligence, rich client applications and embedded development. A large, vibrant ecosystem of major technology vendors, innovative start-ups, universities and research institutions and individuals extend, complement and support the Eclipse Platform.


Brand or product names are registered trademarks or trademarks of their respective holders. Eclipse is a trademark of Eclipse Foundation Inc. Java and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.




The initial version just rendered CHIP-8 at its 64x32 resolution, but to utilize the screen a bit more efficiently, I implemented 1.5x scaling so the CHIP-8 screen stretches across 96x48 pixels. Keys 0-9 correspond to the hardware numeric keys, * and # map to A and B, respectively.


To my surprise, I could use modern tools for development, as recent IDEA still supports targeting Java 1.4, also the MIDP 1.0 and CLDC 1.0 J2ME profiles using classes provided with the Nokia 3410 SDK. The API is quite simple, no real magic, just a Canvas, input events, Thread for background processing and simple IO to load the ROMs from the application JAR.


This was a great opportunity to dust off my old copy of J2ME in a Nutshell after more than 10 years of programming for other platforms. It brings back fond memories of hacking together simple mobile apps from the simple days.


The build process is actually quite script-friendly - I started off with a sample build script from the WTK demos and ended up with a one-stop shop script that compiles the .java files into the .class files, then packages them with jar, stuffs in manifest and updates the .jad descriptor file.


I've got my N95 8GB for about a month now and for those who've seen my posts about it will know that I havn't had a extremely pleasant time with it.

But, I've fixed or learned to deal with the bad aspects of it but now this issue is just getting too annoying to bare.


ALL my java apps/games either load or run, or load and run unusually slow.

A very good example of this is the mobile gmail app.(You can go have try it out. No need to have an account..just try to run it and you'll see what I mean)

It takes a very long time to load up. It's definately not normal. It doesn't show up for more than 10 seconds after I clicked to open it. Java games are also unusually slow. They not only load slow, but run slow too. A same java game will run at perfect speed on my Sony Ericsson phone, but will lag considerbly on my N95 8GB.

I really don't see the reason why as my N95 8gb is much more powerful. ( I have the SE z610 )

These days, I try to avoid java apps altogheter but there are a few apps that are java exclusive that I just want to have running properly.


The Gmail app and Java apps work fine on my N95 8GB. Some Java apps are designed for a particular phone brand. ie. If I load some of my old SE Java apps into my N95 then of course they're not going to work properly. Best to look for apps made specifically for the N95 8GB and see if they run ok. Otherwise, something may be wrong with the handset.


are the apps installed in the phone memory or the inbuilt storage/memory card? , ive discovered installing those apps you use a lot to the phone memory has gave them a nice speed boost and i dont have the laggy problem with them anymore


The middleware is implemented as a Java 2, Enterprise Edition (J2EE) servlet running on a Java servlet-enabled Web server. The client uses J2ME's Mobile Information Device Profile (MIDP), and the server uses one of J2EE's application programming interfaces (APIs). Because both client and server are written in Java, a single implementation of MultiProtocol was created that provides code for handling messages and protocol for both client and server. This makes development of additional services easier and faster—a very important feature of MultiProtocol. Because the client cannot send anything the server does not understand and vice versa, it also effectively reduces possible error states.

3a8082e126
Reply all
Reply to author
Forward
0 new messages