mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-24 04:39:06 -05:00
libjavam3g.so rebuilt from changed m3g render context sources, hashed from the 1.8.2-dev-1973 build. The config screen now copies picked shaders and sound banks into their directories.
326 lines
18 KiB
YAML
326 lines
18 KiB
YAML
emulator: J2ME Loader
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/nikita36078/J2ME-Loader"
|
|
upstream: "https://github.com/nikita36078/J2ME-Loader"
|
|
author: "Nikita Shakarun"
|
|
profiled_date: "2026-10-23"
|
|
source_commit: "c1aff868a674ea0c9fd9d565dfb4819987ee447f"
|
|
core_version: "1.8.2"
|
|
display_name: "Mobile - J2ME (J2ME Loader)"
|
|
cores:
|
|
- j2me-loader
|
|
- "J2ME-LOADER"
|
|
systems:
|
|
- j2me
|
|
mode: standalone
|
|
|
|
notes: |
|
|
MIDP/CLDC runtime for Android, package ru.playsoftware.j2meloader. A MIDlet is
|
|
converted to Dalvik bytecode on import and runs against the javax.microedition
|
|
classes compiled into the app, so no device firmware is read. The vendor
|
|
extension trees (Nokia, Siemens, Samsung, Motorola, Sony Ericsson, Sprint,
|
|
Vodafone, J-Phone, KDDI, JBlend, Mascot Capsule, Mexa) are Java sources in the
|
|
same package. The Mascot Capsule, JBlend, Motorola, Vodafone and Mexa 3D APIs
|
|
all delegate to one renderer in ru.woesss.j2me.micro3d.
|
|
A fork of NaikSoftware/J2meLoader with an independent history: the 2016
|
|
ancestor carries no assets directory and none of the loading code cited below.
|
|
ref: app/src/main/java/ru/woesss/j2me/installer/AppInstaller.java:292,
|
|
app/src/main/java/javax/microedition/shell/AppClassLoader.java:38
|
|
|
|
The working directory holds converted/, configs/, templates/, data/, fs/c and
|
|
fs/e, all written by the app, plus shaders/ and soundbanks/, created empty when
|
|
the directory is initialized and read from. fs/c and fs/e are the JSR-75
|
|
drives, data/ is RMS storage, converted/ holds converted.dex and res.jar per
|
|
MIDlet. The config screen has a file list for shaders/ and soundbanks/ that
|
|
copies the files the user picks into that directory under their display name.
|
|
ref: app/src/main/java/ru/playsoftware/j2meloader/config/ConfigFilesActivity.java:76-83,
|
|
app/src/main/java/ru/playsoftware/j2meloader/config/ConfigFilesActivity.java:129-141,
|
|
app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:47-61,
|
|
app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:159-165,
|
|
app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:213-228
|
|
|
|
The shader and property assets are read through ContextHolder.getAssetAsString,
|
|
which rethrows an IOException as RuntimeException instead of degrading, so an
|
|
absent asset ends the code path that reads it. Roboto-Regular.ttf goes through
|
|
Typeface.createFromAsset.
|
|
ref: app/src/main/java/javax/microedition/util/ContextHolder.java:178-193
|
|
|
|
MIDI playback goes to the Android synthesizer unless a sound bank is selected
|
|
per MIDlet. Manager's static initializer then tries the EAS and the
|
|
TinySoundFont plugins with that bank and falls back to the Android synthesizer
|
|
with a toast when neither accepts it.
|
|
ref: app/src/main/java/javax/microedition/media/Manager.java:138-140,
|
|
app/src/main/java/ru/woesss/j2me/mmapi/synth/SynthPluginFactory.java:36-54
|
|
|
|
The package carries every native library for arm64-v8a, armeabi-v7a, x86 and
|
|
x86_64. The hashes below are those of the x86_64 build, version 1.8.2-dev-1973,
|
|
the continuous release built from source_commit.
|
|
|
|
files:
|
|
- name: Roboto-Regular.ttf
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 438780
|
|
sha1: "d0860202be85147f3ce96d71aa88541d939a1aea"
|
|
md5: "bff5a23de5917c16288d7076ad684c1b"
|
|
category: game_data
|
|
description: "Typeface for the virtual keyboard and overlays"
|
|
note: "Built into a Typeface at CanvasWrapper construction, which is a field initializer of Canvas and therefore runs for every MIDlet that opens one. Drives the key captions, the soft bar and the FPS counter."
|
|
source_ref: "app/src/main/java/javax/microedition/lcdui/graphics/CanvasWrapper.java:37, app/src/main/java/javax/microedition/lcdui/Canvas.java:141, app/src/main/java/javax/microedition/lcdui/keyboard/VirtualKeyboard.java:908, app/src/main/java/javax/microedition/lcdui/overlay/FpsCounter.java:48"
|
|
|
|
- name: system.props
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 949
|
|
sha1: "402e03cdd612250de7863e9984b2b6ebac54de72"
|
|
md5: "34cb4519624e7b504fb0bbc1b3e613c1"
|
|
category: game_data
|
|
description: "Default microedition system properties"
|
|
note: "Read from assets/defaults when a profile is created and again when the config screen or updateSystemProperties fills the field. Each line becomes a System.setProperty pair at MIDlet startup, carrying microedition.configuration, microedition.platform, the JSR version strings and the vendor identity values."
|
|
source_ref: "app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:201, app/src/main/java/ru/playsoftware/j2meloader/config/ProfilesManager.java:185, app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:680, app/src/main/java/javax/microedition/shell/MicroLoader.java:249-256"
|
|
|
|
- name: simple.vsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 157
|
|
sha1: "475e25d9bf8422d1faeae206488507d59bf7b716"
|
|
md5: "924e08886710123aaa0fa990da0f2be2"
|
|
category: game_data
|
|
description: "Vertex shader for the screen blitter"
|
|
note: "Compiled when the GL surface is created and no user shader is selected. Graphics mode 1 is the default, so this is the standard display path. Also compiled as the Simple program of the Mascot Capsule renderer."
|
|
source_ref: "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:34, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:58, app/src/main/java/javax/microedition/lcdui/Canvas.java:795, app/src/main/java/ru/playsoftware/j2meloader/config/ProfileModel.java:183, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:216"
|
|
|
|
- name: simple.fsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 147
|
|
sha1: "c6569e0e83d244224a829ce13699bc91ff01bfaf"
|
|
md5: "9f801bc9b0b148ae6d0368c27281d1bc"
|
|
category: game_data
|
|
description: "Fragment shader for the screen blitter"
|
|
note: "Paired with simple.vsh. createProgram returning -1 raises RuntimeException at surface creation."
|
|
source_ref: "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:35, app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:59-63, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:217"
|
|
|
|
- name: color.vsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 493
|
|
sha1: "96e1d0b91b0cf3b61a1c6a9782dd087e06286c36"
|
|
md5: "efde617a923308f2d02ddc1bc18ecc87"
|
|
category: game_data
|
|
description: "Vertex shader for untextured Mascot Capsule geometry"
|
|
note: "Program.create builds the tex, color, simple and sprite programs together whenever the renderer binds a target of a new size, so all four pairs are read on the first micro3d frame."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:150, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-59, app/src/main/java/ru/woesss/j2me/micro3d/Render.java:156"
|
|
|
|
- name: color.fsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 891
|
|
sha1: "8cac05782651c5b9e56577d7f33486a32c00480f"
|
|
md5: "d07e54d4dd63209596eaf080cf8c35e3"
|
|
category: game_data
|
|
description: "Fragment shader for untextured Mascot Capsule geometry"
|
|
note: "Carries the sphere map and toon shading uniforms of the Color program."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:151, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:172-175"
|
|
|
|
- name: tex.vsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 671
|
|
sha1: "e8ad127bb080a8d61899aebf224e745bcc5eab44"
|
|
md5: "c6c3e762a7e1357e6769233faf240981"
|
|
category: game_data
|
|
description: "Vertex shader for textured Mascot Capsule geometry"
|
|
note: "Built by Program.create alongside the other three pairs."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:233, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-59"
|
|
|
|
- name: tex.fsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 1083
|
|
sha1: "eecb9e9f71079b1b8ab37210f58ec19d1c0f515a"
|
|
md5: "c00b8b73be298d613fbc33867eef97ad"
|
|
category: game_data
|
|
description: "Fragment shader for textured Mascot Capsule geometry"
|
|
note: "Carries the sphere map and toon shading uniforms of the Tex program. The texture size goes to tex.vsh."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:234, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:258-267"
|
|
|
|
- name: sprite.vsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 255
|
|
sha1: "8bff9b5dce3c825669278ea1e744d0644a57e7cb"
|
|
md5: "c527845c331d6b060c657d1fbbdadcbf"
|
|
category: game_data
|
|
description: "Vertex shader for Mascot Capsule sprites"
|
|
note: "Built by Program.create alongside the other three pairs."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:313, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:53-59"
|
|
|
|
- name: sprite.fsh
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 286
|
|
sha1: "94c1d85c818c14489f4e2aa10c4c33c14a395077"
|
|
md5: "247e772a2c38de937fd702d4ccc4d403"
|
|
category: game_data
|
|
description: "Fragment shader for Mascot Capsule sprites"
|
|
note: "Carries the texture unit and transparency uniforms of the Sprite program. The texture size goes to sprite.vsh."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:314, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:334-336"
|
|
|
|
- name: libc++_shared.so
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 1337488
|
|
sha1: "98b6547ca7af3fcf325ba236950a5e55401b94cb"
|
|
md5: "26756baa2bb82c113368f0a462213253"
|
|
category: game_data
|
|
description: "NDK C++ runtime for the native modules"
|
|
note: "Named ahead of every other native library, in the M3G toolkit init, in the static initializer of micro3d Utils and in both synthesizer classes."
|
|
source_ref: "app/src/main/java/javax/microedition/m3g/Platform.java:69, app/src/main/java/ru/woesss/j2me/micro3d/Utils.java:103, app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:70, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:70"
|
|
|
|
- name: libjavam3g.so
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 417496
|
|
sha1: "a9f584627b3c000c936749f6c88db5187e1cdd4f"
|
|
md5: "c19559b2fcf1ab091d7455b4c54fbafd"
|
|
category: game_data
|
|
description: "JSR-184 M3G engine"
|
|
note: "Named by System.loadLibrary(\"javam3g\") outside any catch, the first time the toolkit reports the UI thread available. Built by ndkBuild from the m3g sources against GLES 1.1."
|
|
source_ref: "app/src/main/java/javax/microedition/m3g/Platform.java:65-72, app/src/main/cpp/m3g/Android.mk:5-16"
|
|
|
|
- name: libmicro3d.so
|
|
system: j2me
|
|
required: true
|
|
bundled: true
|
|
size: 9912
|
|
sha1: "a0e5ec65163c2952d9cb789053f1d309bd3d886f"
|
|
md5: "33d351c4d3a2eb991a1fe7d00297f77b"
|
|
category: game_data
|
|
description: "Mascot Capsule vertex and buffer routines"
|
|
note: "Loaded from the static initializer of Utils, so the first call into the micro3d renderer brings it in. Holds fillBuffer, glReadPixels and the bone transform."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Utils.java:97-105, app/src/main/cpp/micro3d/Android.mk:5-7"
|
|
|
|
- name: liboboe.so
|
|
system: j2me
|
|
required: false
|
|
bundled: true
|
|
size: 329816
|
|
sha1: "3f633bc545a826b1cb88517d4b77d10062e692a5"
|
|
md5: "df82e6bd14299af71cb2480f4eeaa4e3"
|
|
category: game_data
|
|
description: "Audio output stream of the sound bank synthesizers"
|
|
note: "Named by both synthesizer classes ahead of their own libraries. Reached only when a sound bank is selected, and SynthPluginFactory catches the load failure and falls back to the Android synthesizer."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:71, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:71, app/src/main/java/ru/woesss/j2me/mmapi/synth/SynthPluginFactory.java:41-54"
|
|
|
|
- name: libmmapi_common.so
|
|
system: j2me
|
|
required: false
|
|
bundled: true
|
|
size: 16192
|
|
sha1: "87d66343f9cf456a7b686a46872bd52d5b9345df"
|
|
md5: "847aaf47b6d0c565c72cd9d2ee63bd8a"
|
|
category: game_data
|
|
description: "Shared player and listener code of the synthesizer plugins"
|
|
note: "Named by both synthesizer classes ahead of their own libraries. Same fallback as liboboe.so."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:72, app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:72, app/src/main/cpp/mmapi_common/Android.mk:5-11"
|
|
|
|
- name: libmmapi_eas.so
|
|
system: j2me
|
|
required: false
|
|
bundled: true
|
|
size: 607376
|
|
sha1: "2bf1bdc26d3efb8a07d01aab0f86e091245944a0"
|
|
md5: "af8a1d656161c368cf2671ab9720a30d"
|
|
category: game_data
|
|
description: "Sonivox EAS synthesizer"
|
|
note: "Loaded from the static initializer of LibEAS when a sound bank is selected. Links the sonivox wavetable engine statically and reads the bank as a DLS collection. A failure leaves the TinySoundFont plugin or the Android synthesizer."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/mmapi/synth/eas/LibEAS.java:69-74, app/src/main/cpp/mmapi_eas/Android.mk:5-25, app/src/main/cpp/sonivox/Android.mk:131"
|
|
|
|
- name: libmmapi_tsf.so
|
|
system: j2me
|
|
required: false
|
|
bundled: true
|
|
size: 60392
|
|
sha1: "55cded2de92eaf2ca3ca9ca5701d05536b5c4582"
|
|
md5: "c90296619ea218b83e246f62046400e9"
|
|
category: game_data
|
|
description: "TinySoundFont synthesizer"
|
|
note: "Loaded from the static initializer of LibTSF when a sound bank is selected. Reads the bank as a SoundFont and plays standard MIDI files and tones. A failure leaves the EAS plugin or the Android synthesizer."
|
|
source_ref: "app/src/main/java/ru/woesss/j2me/mmapi/synth/tsf/LibTSF.java:69-74, app/src/main/cpp/mmapi_tsf/Android.mk:5-11"
|
|
|
|
- name: licenses.html
|
|
system: j2me
|
|
required: false
|
|
bundled: true
|
|
size: 2510
|
|
sha1: "465fae37aeb0ae34d0495044cd8c8c397e682bae"
|
|
md5: "bcc31ad30dcd2f59b3861880d63eff53"
|
|
category: game_data
|
|
description: "Third party licence text of the about screen"
|
|
note: "Read when the licences dialog is opened and shown as HTML. Emulation never touches it."
|
|
source_ref: "app/src/main/java/ru/playsoftware/j2meloader/info/LicensesDialogFragment.java:35"
|
|
|
|
- name: "<soundbank>.dls"
|
|
path: "soundbanks/<soundbank>.dls"
|
|
system: j2me
|
|
required: false
|
|
unsourceable: "user supplied, no canonical file"
|
|
category: game_data
|
|
description: "DLS sound bank for MIDI playback"
|
|
note: "The config screen lists every regular file in the sound banks directory with no extension filter, and the selected name is kept as a path when the file exists. EAS_LoadDLSCollection reads it with the header search flag off. A rejected file throws and the plugin is skipped."
|
|
source_ref: "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:315-339, app/src/main/java/javax/microedition/shell/MicroLoader.java:285-288, app/src/main/cpp/mmapi_eas/eas_player.cpp:112-126, app/src/main/cpp/mmapi_eas/eas_player_jni.cpp:16-28"
|
|
|
|
- name: "<soundbank>.sf2"
|
|
path: "soundbanks/<soundbank>.sf2"
|
|
system: j2me
|
|
required: false
|
|
unsourceable: "user supplied, no canonical file"
|
|
category: game_data
|
|
description: "SoundFont sound bank for MIDI playback"
|
|
note: "Same selection path as the DLS bank. tsf_load_filename parses it, and a null result throws IllegalArgumentException so the plugin is skipped."
|
|
source_ref: "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:315-339, app/src/main/cpp/mmapi_tsf/tsf_player.cpp:87-94, app/src/main/cpp/mmapi_tsf/tsf_player_jni.cpp:15-27"
|
|
|
|
- name: "<shader>.ini"
|
|
path: "shaders/<shader>.ini"
|
|
system: j2me
|
|
required: false
|
|
unsourceable: "user authored, no canonical file"
|
|
category: game_data
|
|
description: "Shader descriptor read from the emulator directory"
|
|
note: "The config screen creates the shaders directory, lists every file ending in .ini and parses it as sections opened by a bracketed name, keeping the entries that name both a Vertex and a Fragment file. Name, Author, OutputResolution, Upscaling and four SettingName/SettingDefaultValue/SettingMinValue/SettingMaxValue/SettingStep groups are also read, which is the PPSSPP post-processing descriptor format."
|
|
source_ref: "app/src/main/java/ru/playsoftware/j2meloader/config/ConfigActivity.java:406-437, app/src/main/java/ru/playsoftware/j2meloader/config/ShaderInfo.java:101-206, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:203-211"
|
|
|
|
- name: "<shader>.vsh"
|
|
path: "shaders/<shader>.vsh"
|
|
system: j2me
|
|
required: false
|
|
unsourceable: "user authored, no canonical file"
|
|
category: game_data
|
|
description: "Vertex shader named by a descriptor"
|
|
note: "Read whole from the shaders directory when the selected filter names it, then compiled in place of the built-in blitter. An unreadable file yields an empty string, the program fails to build and the bundled default is used after a toast."
|
|
source_ref: "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:45-57, app/src/main/java/javax/microedition/shell/MicroLoader.java:272-276, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:203-211"
|
|
|
|
- name: "<shader>.fsh"
|
|
path: "shaders/<shader>.fsh"
|
|
system: j2me
|
|
required: false
|
|
unsourceable: "user authored, no canonical file"
|
|
category: game_data
|
|
description: "Fragment shader named by a descriptor"
|
|
note: "Paired with the vertex file of the same descriptor. Four float uniforms from the descriptor settings are pushed to it at surface creation."
|
|
source_ref: "app/src/main/java/javax/microedition/lcdui/graphics/ShaderProgram.java:45-57, app/src/main/java/javax/microedition/lcdui/Canvas.java:804-806"
|