mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 10:23:16 -05:00
The five native libraries the reprofile added, and the assets and libraries whose copies dated from 1.8.2-open, now come from the official build of 752b93a (release continuous, CI run 39297510978, signing certificate de1bd54d as on 1.8.2). Assets match the repository blobs byte for byte. The profile carries their hashes, and the bundled-identity table now records each fall exactly.
323 lines
17 KiB
YAML
323 lines
17 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-20"
|
|
source_commit: "752b93afa80f657fa515f560bebf7904d219f73a"
|
|
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.
|
|
ref: app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:47-61,
|
|
app/src/main/java/ru/playsoftware/j2meloader/config/Config.java:155-161,
|
|
app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:166-181
|
|
|
|
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-1964,
|
|
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:636, 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: 416488
|
|
sha1: "74171083847c3836e1ffb9470d3b7e3e7dafe242"
|
|
md5: "0e273cd2a17253fa9f0f475f95283777"
|
|
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:277-301, 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:277-301, 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:368-399, app/src/main/java/ru/playsoftware/j2meloader/config/ShaderInfo.java:101-206, app/src/main/java/ru/playsoftware/j2meloader/util/FileUtils.java:156-164"
|
|
|
|
- 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:156-164"
|
|
|
|
- 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"
|