don't click here

Fun with mobile

Discussion in 'General Sega Discussion' started by Black Squirrel, Jun 15, 2024.

  1. TwoSpaces

    TwoSpaces

    Member
    Pirate Dragon's very handy spreadsheet mentions Wonder Boy in Monster Land. I'm not aware of any overseas versions of that being dumped, but what is, is this:
    upload_2024-9-9_16-17-13.png upload_2024-9-9_16-17-23.png
    Hudson Soft ported the game to J2ME for release in China (and Japan, but this is the Chinese version), replacing the protagonist with Master Higgins from Adventure Island of course. The Java MANIFEST.MF file calls this game "新高桥名人之冒险岛" or "AdventureIsland_Macau_F_SC_VER_1_0_4". The available version has touch controls.
     
    • Informative Informative x 2
    • List
  2. TwoSpaces

    TwoSpaces

    Member
    I briefly looked today at the Initial D trilogy released by BMIT in China (and by Sega in Asia in English at least partially, but these versions are not dumped), the midlet classes identify these games as Initial D / Initial D Plus, Initial D Sign, Initial D Restore.

    More importantly I took a closer look at Sonic Advance 1 on the J2ME. Black Squirrel has previously created the article for Sonic Advance (Gameloft), because it was presumed to be very different or something. Well, I opened up the files of Sonic Advance on the K800i by Gameloft, and saw Sega of China's mobile game framework from that time period (which they may have borrowed from Sega of Japan, IDK) staring back at me. The dead giveaway is the directory called "standard" (which I guess means standard feature phone) that contains introductory logos, which is seen in Shadow Shoot, Initial D Plus, this game and god knows what else. There's also a rather similar Chinese release of Sonic Advance from BMIT that is dumped (with what appears to be differently mixed music despite it being the same target device). This is in comparison to games developed by Gameloft in-house such as Sonic Unleashed (J2ME, Windows Mobile) which actually use the Gameloft engine that isn't anything like Sega's.

    Now, what kind of tech is used in Gameloft's low-end releases (which I have not yet looked into or compared) is another matter.

    Last but certainly not least, Sonic Advance (J2ME, English version) on the Samsung SGH-F480 appears to be unobfuscated. That has got to be useful for Sonic Advance 1 hacking considering what I've said above regarding the origins of the port.

    LATE EDIT: It turns out that an old mobile gaming publication (one that's gained a lot of notoriety for uploading a lot of J2ME "lost media" footage) has some Sega stuff:



    Maybe there's more.
     
    Last edited: Sep 10, 2024
  3. TwoSpaces

    TwoSpaces

    Member
    Sometimes, things are not what they seem. As you may know, Sonic 1 Part 1 on the J2ME has some "low-end" versions made by iFone that are entirely different from the main versions in terms of tech. I also just took a look at some Sonic 1 Part 2 low-end versions for China, and while those may seem like an iFone development at first, there are some files with Chinese in the names, not to mention the midlet class name (GameEngine.MainMIDlet) which is exactly the same as precisely one other game, which is The House of the Dead: Nightmare. So I'm guessing those Part 2 low-end versions were actually made by one of Sega's Chinese studios.
     
    • Informative Informative x 2
    • List
  4. Pirate Dragon

    Pirate Dragon

    Member
    809
    359
    63
    https://x.com/RockmanCosmo/status/1838611853985092070

     
  5. Kilo

    Kilo

    The Scatterbrained Hacker Tech Member
    1,328
    1,265
    93
    Canada
    Sonic 1 Source Code Recration
    Ooh nice, gives me hope that Nakayoshi Chao is out there and we'll get our hands on it soon enough... I've been wanting to make a translation mod of it personally if we do get it. Also pretty convenient given the TopGolf collab that was just announced in Sonic Central.
     
  6. TwoSpaces

    TwoSpaces

    Member
    It's the second phone-specific i-Mode Sonic game to be preserved that is, there are also some demos of Sonic 1 and 2 on the DoJa, in addition to Sonic no Daifuugou that is supposed to be the "first" one. Very sadly, it's not only iDKStar that has performance issues, iDKDoJa also has noticeable lag in Sonic platforming games if the native sound libraries are selected, or if the system midi playback is selected, then the games run too fast instead.

    There's a bit of a revival of an older MIDP emulator (freej2me) called freej2me-plus, here: https://github.com/TASEmulators/freej2me-plus with plans to possibly use it in conjunction with libTAS in order to make tool-assisted speedrun replays. On the issue tracker I created a compatibility report for Sonic games. There are slightly different goals compared to the previously mentioned KEmulator nnmod, and while not as wide in terms of compatibility, this project has potential.

    Regarding my Sega archival project, I don't know when it's gonna finish, I keep setting plans for various preservation goals that would be done beforehand, but when is anyone's guess. I am sorry for the letdown for now.
     
  7. shilz

    shilz

    Member
    1,415
    374
    63
    getting my daily allowance of vitamin kk
    You know I'll take this chance to point out these models are very similar to those that they used for the Mario and Sonic Olympics games on the DS. Except Amy has her regular clothes. It would be so cool to have those and the midis ripped.
    Unfortunate that footage has texture filtering, though...
     
  8. Kilo

    Kilo

    The Scatterbrained Hacker Tech Member
    1,328
    1,265
    93
    Canada
    Sonic 1 Source Code Recration
    While looking into this because I figured it wouldn't be that hard to get the MIDIs at the very least (Wasn't too sure about models but I was hoping they'd use the .m3g format that was standard at the time), I realized there's something a bit odd about this.
    This is Sonic Golf 3D
    upload_2024-9-26_7-10-3.png upload_2024-9-26_7-10-16.png
    It's got a whole different logo and isn't set in Green Hill.
    However the game shown matches more with Sonic Golf DX
    upload_2024-9-26_6-56-37.jpeg upload_2024-9-26_6-56-45.jpeg
    Yet is titled Sonic Golf 3D and uses the logo of DX.
    Strange. I wonder what happened here.

    As for ripping models and MIDIs I can't find a direct download, or really any downloads for any games on that so-called preservation site. So that's cool.
     
    Last edited: Sep 26, 2024
  9. TwoSpaces

    TwoSpaces

    Member
    Kilo, I messaged you about this, please take a look.

    However I don't think it's gonna be simple, DoJa games (not sure about Star) don't use the midi format for music, they use the MLD format (which is called i-Melody, not to be confused with the other phone ringtone format called i-Melody). I don't remember if there's a convertor to MIDI from this format that exists yet. As for models, I think it was standard for this platform to use Mascot Capsule format graphics, which is an absolutely stupid proprietary API that was used overseas only on MIDP on Sony Ericsson, and sometimes on Motorola and Vodafone, unlike most high-end MIDP phones that used the more standardized M3G spec for 3D graphics.

    The Sonic Golf games are a mess, of course there is also Sonic the Hedgehog Golf which is more like the golf mode from those fangames than any other official Sonic Golf games like the aforementioned ones.
     
  10. Kilo

    Kilo

    The Scatterbrained Hacker Tech Member
    1,328
    1,265
    93
    Canada
    Sonic 1 Source Code Recration
    2D Sonic Golf I know to be a lost cause because it's encrypted.
    Or at the very least it's not the job for me to crack because I'm no reverse engineer, I just stare at code really hard and then say "I think this does this" and be wrong anyways.

    Edit:
    Sure enough now that I got my hands on it, Golf 3D is using i-Melody and Mascot Capsule. That certainly throws a wrench in things.

    Edit 2:
    Turns out, it wasn't actually that hard to rip the music. Awave supports .mld. Most of the sound effects are seemingly just someone randomly hitting piano keys, so that was fun to sit through. Will upload to Youtube tomorrow.
     
    Last edited: Sep 27, 2024
    • Like Like x 1
    • Informative Informative x 1
    • List
  11. TwoSpaces

    TwoSpaces

    Member
    Regarding Sonic the Hedgehog Golf (the sidescroller), I think I've heard that there's an unobfuscated version of it like there are with Rockpool Sonic 2, but don't take my word as I have yet to take an extensive look into that game.
     
  12. TwoSpaces

    TwoSpaces

    Member
    So in the thread about Classic Sonic's source code, it's been mentioned by me and Kilo that the preservationists of Japanese phone games managed to extract Sonic 1 (Panasonic VS3 version) from an available firmware of that phone, and then one quick look from me was enough to determine that the devs forgot to obfuscate that version of Sonic 1 J2ME. Until now I thought that it's also the only time they released Sonic 1 on the J2ME in one game as opposed to in two parts. Today, the aforementioned asdf from the phone preservation community messages me and tells me they've updated their archive of J2ME dumps from mainly American phones. Apparently there's probably nothing new and special in there, but I decided to check it anyways. And one of the new phones in there, the Sanyo SCP-6760 Incognito, had this on it:

    Sonic the Hedgehog Demo
    Screenshot from 2025-02-15 18-16-45.png Screenshot from 2025-02-15 18-36-11.png

    Not "Sonic Part 1 demo" or anything, like what Glu Mobile was preinstalling in Europe. The game itself is Brizo Interactive's version, like what's dumped for Motorola (176x220), but that one was Part 1, and not from EA Mobile (who I knew from re-releasing the BREW version in NA beforehand, not the J2ME one). The Sonic 1 feature phone rabbit hole got even deeper?

    Oh, and if you were hoping for more unobfuscated goodness, then you will be walking away empty-handed.
     
  13. TwoSpaces

    TwoSpaces

    Member
    Hello folks. Sorry for not being able to get the Sega J2ME archive done. I've been postponing, cancelling and picking back up the project to no end, as it turns out I tried to bite more than I could chew. Especially when I discover stuff like the topic of this message.

    So there is that shooting game called Bullet King (Tama-Oh) released in Japan on various platforms and in (presumably) Asia on J2ME, with the latter release being dumped in 2 versions.
    2025.04.04_04.33.43_1.png 2025.04.04_04.33.43_2.png

    There was also a Bullet King 2 in Japan, and neither Japanese versions seem to be dumped. I was under the impression that this is as far as it goes, until I stumbled upon this Chinese release:

    次元之翼(SEGA正版) - Dimensional Wings

    2025.04.04_04.34.48_1.png 2025.04.04_04.34.48_2.png 2025.04.04_04.34.48_3.png

    Despite the random title, this is very much a Bullet King game in its gameplay mechanics. The audiovisual part is probably one of the best I've seen and heard on J2ME, but the 11 FPS gameplay is a bit unimpressive. I just have a burning question, which is where did this game even come from. It's not the same game as Bullet King 2 judging by the latter's screenshots, but there weren't any other Bullet King games known to exist. Was there an undocumented Bullet King 3 in Japan, or is this a Sega of China original?
     
    • Useful Useful x 2
    • Like Like x 1
    • List
  14. Black Squirrel

    Black Squirrel

    let's hurl a bwiki mart Wiki Sysop
    9,416
    3,215
    93
    Northumberland, UK
    the kwiki mart is real d'oh
    And now, the archive, curtosy of TwoSpaces:
    https://retrocdn.net/File:SEGA_J2ME_Collection_2025-05-01.7z

    This is wonderful... but overwhelming. I think there's a task in weeding out the hacked versions, although in some cases (e.g. After Burner II) we only have a hacked version to work with.

    uhh.. volunteeers?
     
  15. TwoSpaces

    TwoSpaces

    Member
    Hey, thanks for the mirror.

    In regards to hacked versions (which aren't "hacked" in most cases, I'd say more like "edited" or something): I aimed to include those as well because in many cases they either reveal something about the target phone model in the filename that the proper dump doesn't, or it's a dump of a subtly different variation, for example with different timestamps or something, that would imply that, I dunno - it could be a repackaged .JAR file by either group that dumped it, or it could be built by a different build system at the publishers/distributors and bought at a different place. In not many occasions are the edited versions completely useless. Sadly yes, some games only had edited dumps, and people were fine with it until the stores with those specific games closed.

    The task of weeding out the edited versions can be made easier using diffing software such as WinMerge (or some people like Beyond Compare more). If you need direct help on any specific games then I could try my hand at it, but I am still tired from working on this long-promised archive.
     
  16. Pirate Dragon

    Pirate Dragon

    Member
    809
    359
    63
    Great job!
     
  17. Black Squirrel

    Black Squirrel

    let's hurl a bwiki mart Wiki Sysop
    9,416
    3,215
    93
    Northumberland, UK
    the kwiki mart is real d'oh
    Nokia seemed like low-hanging fruit since we sort-of understand that platform. I started grouping JARs by their descriptions


    I may have to reassess my methods.

    [​IMG] [​IMG]

    On the left, Sonic the Hedgehog Part 1 Series 40 1st Edition (128x128). On the right, the Series 40 2nd Edition (128x128)

    These are different builds - the 2nd Edition version has more instruments in its music, but that non-centered text is bugging me - did it ship like that, or did someone mess with it?


    I think I'm going to need a fancy pants script to analyse everything... but I'm not in a rush to write one. So if you're looking at the wikis and thinking I'm taking this challenge on, you're wrong, it needs a rethink, and somebody should totally become the expert.

    I also noticed multiple revisions of games, and I don't know how legitimate the Russian translations are.
     
  18. TwoSpaces

    TwoSpaces

    Member
    Hello again. I've somewhat looked into Part One for the sake of speedrunning the game, some of my research is on TCRF.

    The Russian versions of Sonic 2 Dash (assuming you're referring to those) should be official, but there are definitely some unofficial translations that exist, and I should have gotten rid of those, but I would not be surprised if some made it in by accident.

    KEmulator nnmod has been getting tons of updates since the last time we (you) did the mobile push, and also very importantly, there's now freej2me-plus which has become an excellent alternative. The author of KEmulator nnmod also wrote Imports View, an excellent tool for finding out which J2ME APIs are used in classes of a certain game (it can be just standard ones from MIDP and CLDC, or it can be those and some phone-specific ones from manufacturers and carriers, giving a clue as to what the version is for). A major help for Sonic 1 Part 1 (high-end) versions is also the iFone or Glu Mobile title card, which varies by resolution from version to version, and is usually (not always) representative of the intended screen resolution.

    Regarding the low-end versions of Sonic 1 Part 1, there aren't a lot of dumps of these, and some of those are straight-up just different variations of the same thing, so it's feasible for me to go over it in this post.
    • Nokia s40v1 128x128 - This one uses Nokia monophonic tones (the .OTA format) as opposed to the MIDI format seen in most versions of games. It also uses Nokia API libraries (built into Nokia phones) to display graphics and play sounds.
    • Nokia 128x160 - These are two versions with mostly identical files (except for the Java MANIFEST.MF file) but the timestamps are different. From what i can tell, Glu Mobile re-released some Sonic games in either 2009 or 2012 (not quite sure) and they used the Metaflow build software to do these releases. Not only are the files dated 2009 in the later re-release for some reason, but the manifest file and its folder are dated 2012, which is not a sign of modification, because I've seen this all over the place in JAR files that say they've been built with Metaflow, and at this point I'm convinced that Metaflow JARs just somehow have later-dated manifest files and folders than the rest of the files. I'm sorry that I can't elaborate on this more because I don't know that much about this. But the version itself seems like the Nokia s40v2 128x128 version but for phones with 128x160 resolution.
    • Nokia s40v2 128x128 - This version uses MIDI music, but it still relies on Nokia APIs to do things. Regarding the texts displayed using system fonts, I suspect that they either just adjusted those for different phones, or built the versions at a different time, and adjusted the texts in-between (high-end versions have similar moments). KEmulator nnmod doesn't have very sophisticated font display emulation, I think even freej2me-plus now expects you sometimes to adjust the fonts manually a bit because inevitably the font configurations were different between phones.
    • Nokia 5070 (Spanish) 128x160 - This one is from a collection of preinstalled Nokia games.
    • Nokia "208x208" (actually 128x128) - I don't know what's up with the people who dumped this giving this the wrong resolution designation. This is also a 128x128 version but it's larger and somewhat fancier than the others. I wish i knew the exact details behind this stuff.
    • Samsung SGH-E250 (128x160) - There are two dumps of this, one is of the original 2007 release but is edited, the other one is a clean dump and is of the 2009/2012 re-release. The Samsung versions from what I remember don't actually use Samsung-specific J2ME APIs and are pretty much universal, unlike the Nokia s40v1/s40v2 versions which don't even work well on the later and more powerful s60v3 FP2 phones.
    • Samsung 240x400 - This one very neatly fits into 240x320, but I don't know if it's actually for 240x320 phones, or if 240x400 touch screen phones displayed some kind of overlay below the game. It's a unique version in that it uses high-res graphics in the low-end engine.

    Edit: IMO the actual most perplexing thing about Part One (high-end) is the 320x240 Nokia version. Nokia has released 320x240 phones, but the keycode layout that this version uses doesn't match any phone that I know of (or anyone I know who's into J2ME). It's more like a 320x240 unknown device version.
     
    • Informative Informative x 1
    • List
  19. Black Squirrel

    Black Squirrel

    let's hurl a bwiki mart Wiki Sysop
    9,416
    3,215
    93
    Northumberland, UK
    the kwiki mart is real d'oh
    Yeah turns out the naming schemes aren't trustworthy:

    [​IMG]
    Crazy_Taxi_2D_128x160_nok_5200_v105_by FileFast.jar

    [​IMG]
    Crazy_Taxi_2D_128x160_nok_5200_v107_by FileFast.jar

    Two versions of Crazy Taxi for the "Nokia 5200", presumably from the same place. According to these people, the graphics and audio were downgraded between the 1.0.5 and 1.0.7 release (and then re-upgraded them in "128x160_Nokia_5200.jar" which claims to be 1.1.0).


    I think the only way to proceed is to analyse each JAR individually. Though to be fair, a lot of these have non-descriptive filenames, so that was inevitable.

    This would be a start, but can we match libraries with handsets?

    e.g. "if it includes library xxxx it can't be platform yyyy"
     
  20. TwoSpaces

    TwoSpaces

    Member
    Crazy Taxi version situation was crazy (pun may or may not be intended), and I didn't feel like going into it like I did with Sonic, so maybe there are some files that shouldn't even be there. Maybe in a future version of the archive I will examine all the versions like I did with the Sonic games.

    It has to be noted that one file may not have had the same filename across all places that had it, and even though I tried to pick the most informational and reputable names, I may have created some false impressions with these. If you download the info files for the big J2ME archive (which I used as reference), open up the .json text file and search up the CRC32 hashes, you will see the bigger picture with filenames across archives of various sites and other sources.

    Somewhat, I guess. Let's drop Sonic 1 Part 1 (s40v1 128x128) into it:

    Code (Text):
    1. com/nokia/mid/sound/Sound
    2. com/nokia/mid/sound/SoundListener
    3. com/nokia/mid/ui/DeviceControl
    4. com/nokia/mid/ui/DirectGraphics
    5. com/nokia/mid/ui/DirectUtils
    6. com/nokia/mid/ui/FullCanvas
    7. java/io/ByteArrayInputStream
    8. java/io/ByteArrayOutputStream
    9. java/io/DataInputStream
    10. java/io/DataOutputStream
    11. java/io/InputStream
    12. java/io/OutputStream
    13. java/io/PrintStream
    14. java/lang/Class
    15. java/lang/Exception
    16. java/lang/Integer
    17. java/lang/Math
    18. java/lang/Object
    19. java/lang/Runnable
    20. java/lang/String
    21. java/lang/StringBuffer
    22. java/lang/System
    23. java/lang/Thread
    24. java/lang/Throwable
    25. java/util/Random
    26. java/util/Vector
    27. javax/microedition/lcdui/Canvas
    28. javax/microedition/lcdui/Command
    29. javax/microedition/lcdui/Display
    30. javax/microedition/lcdui/Displayable
    31. javax/microedition/lcdui/Font
    32. javax/microedition/lcdui/Graphics
    33. javax/microedition/lcdui/Image
    34. javax/microedition/midlet/MIDlet
    35. javax/microedition/rms/RecordStore
    "java" and "javax" libraries are standard J2ME ones. And it doesn't take a genius to figure out that the "com/nokia" ones are ones that Nokia came up with for their phones, though Sony Ericsson phones at some point also started to come with implementations of these Nokia APIs. I'm not entirely knowledgeable, but I believe Nokia "sound" was more commonly used in games for old phones with MIDP 1.0 virtual machines, because the MIDP 2.0 specification by itself should've introduced improvements to sound stuff.

    So aside from Nokia and Sony Ericsson phones, not many others (if any) even supported Nokia APIs, not until pretty late at least. I know the Samsung SGH line for sure doesn't.

    But if you wanna find out which phones the versions are for, your best bet are probably the filenames given to files by people who dumped the games (sometimes the filenames are derived from the original game store filenames in some fashion).

    EDIT:
    On an unrelated note I was playing Shinobi 2 (J2ME) today (sadly couldn't figure out how to beat the train stage boss), IIRC Hardcore Gaming 101 gave it a mostly positive review back in the day but I can't call it anything but a ridiculous kusoge. My favorite part are the bonus stages that look like they're built on an entirely different engine than the rest of the game, and just stuck to the game using duck tape. Also, when you game over, you can only continue from the last save with 0 lives, and I couldn't find any 1-ups, and it's very easy to lose lives in this game.
     
    Last edited: May 4, 2025