mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 21:43:23 -05:00
107 lines
5.7 KiB
YAML
107 lines
5.7 KiB
YAML
emulator: FreeJ2ME-Plus
|
|
type: libretro
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/TASEmulators/freej2me-plus"
|
|
upstream: "https://github.com/hex007/freej2me"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "68069d79aa6ed106eb788a640a8294a0db55fdcd"
|
|
upstream_commit: "8b9bc8a19baf26e3d92f88934a64a32f1cbc2795"
|
|
core_version: "1.53"
|
|
display_name: "Mobile - J2ME (FreeJ2ME-Plus)"
|
|
cores:
|
|
- freej2me_plus
|
|
systems:
|
|
- j2me
|
|
|
|
notes: |
|
|
Fork of FreeJ2ME adding phone-specific APIs (Siemens, Nokia, Motorola,
|
|
KDDI, SKT, DoJa, JBlend, Mascot Capsule V3, M3G), KJX loading and more
|
|
core options. The native core is a C bridge: retro_init reads the system
|
|
directory, checks that freej2me_plus-lr.jar exists there and spawns
|
|
java -jar with the file encoding and the screen size as arguments, then
|
|
drives the Java process over pipes. Windows launches javaw through
|
|
CreateProcess with the system directory as starting directory; Linux and
|
|
macOS fork, chdir() into it and execvp() java. A Java runtime must be on
|
|
the host PATH, and the start failure message asks for Java 6 or newer. The
|
|
jar is built by ant from build.xml, which writes the libretro variant as
|
|
freej2me_plus-lr.jar.
|
|
ref: src/libretro/freej2me_libretro.c:38-45,
|
|
src/libretro/freej2me_libretro.c:859-888,
|
|
src/libretro/freej2me_libretro.c:1556-1582,
|
|
src/libretro/freej2me_libretro.c:1679-1688,
|
|
src/libretro/freej2me_libretro.h:80,
|
|
build.xml:86-99
|
|
|
|
Only existence is tested. When the jar is absent the core posts the
|
|
SYSTEM_NOT_FOUND message and returns from retro_init before any process is
|
|
created, so nothing loads. The message text still names freej2me-lr.jar,
|
|
the file the original core opens; this core opens freej2me_plus-lr.jar.
|
|
ref: src/libretro/freej2me_libretro.c:339-346,
|
|
src/libretro/freej2me_libretro.c:866-872,
|
|
src/libretro/freej2me_libretro.h:73-79
|
|
|
|
Every relative path the jar opens resolves against the system directory,
|
|
since the Java process starts there. freej2me_system/ is created on first
|
|
run and holds freej2me.conf (written with defaults when missing, then
|
|
overridden by the core options the bridge sends), FreeJ2ME.log, and the
|
|
SiemensData/ and XceData/ directories that the Siemens and XCE file APIs
|
|
write to. FreeJ2MEDumps/KDDI/ receives the jar and jad extracted from a
|
|
.kjx. Saves go to <save_dir>/freej2me/ (rms/<suite>/ and
|
|
config/<suite>/game.conf), falling back to the system directory when the
|
|
frontend has no save directory.
|
|
ref: src/org/recompile/freej2me/Config.java:47-48,
|
|
src/org/recompile/freej2me/Config.java:186-206,
|
|
src/org/recompile/mobile/Mobile.java:121-123,
|
|
src/org/recompile/mobile/Mobile.java:135,
|
|
src/libretro/freej2me_libretro.c:926-934,
|
|
src/org/recompile/freej2me/Libretro.java:201-205,
|
|
src/javax/microedition/rms/RecordStore.java:111
|
|
|
|
Two files are user supplied and optional. With the freej2me_midifont core
|
|
option on, Manager.checkCustomMidi loads the first .sf2 or .gm listed in
|
|
freej2me_system/customMIDI/ as the MIDI soundbank; off, or with the
|
|
directory empty, the JVM default soundbank is used. With freej2me_textfont
|
|
on, PlatformFont loads the first .ttf, .otf or .ttc in
|
|
freej2me_system/customFont/; off, the AWT SansSerif, Monospaced and Dialog
|
|
faces are used. Both directories are created with a placeholder file when
|
|
missing, and neither file has a fixed name.
|
|
ref: src/libretro/freej2me_libretro.c:464-469,
|
|
src/libretro/freej2me_libretro.c:480-485,
|
|
src/org/recompile/freej2me/Libretro.java:240,
|
|
src/org/recompile/freej2me/Libretro.java:254,
|
|
src/org/recompile/mobile/Mobile.java:1056-1064,
|
|
src/javax/microedition/media/Manager.java:55,
|
|
src/javax/microedition/media/Manager.java:328-351,
|
|
src/org/recompile/mobile/PlatformFont.java:63,
|
|
src/org/recompile/mobile/PlatformFont.java:133-154
|
|
|
|
files:
|
|
- name: "freej2me_plus-lr.jar"
|
|
system: j2me
|
|
path: "freej2me_plus-lr.jar"
|
|
required: true
|
|
validation: [existence]
|
|
description: "FreeJ2ME-Plus libretro Java application"
|
|
note: "Java program the native core launches with java -jar from the system directory root. Built by ant from build.xml at the pinned revision; the code reads no size and no hash."
|
|
source_ref: "src/libretro/freej2me_libretro.c:38-45 (freej2meapp), src/libretro/freej2me_libretro.c:859-875 (GET_SYSTEM_DIRECTORY, freej2me_present, SYSTEM_NOT_FOUND_MSG), src/libretro/freej2me_libretro.c:339-346 (access F_OK), src/libretro/freej2me_libretro.c:877-888 (java -jar argv), build.xml:86-99 (destfile)"
|
|
|
|
- name: "<soundfont>.sf2"
|
|
system: j2me
|
|
path: "freej2me_system/customMIDI/<soundfont>.sf2"
|
|
required: false
|
|
unsourceable: "user supplied, no canonical file"
|
|
category: game_data
|
|
description: "MIDI soundbank for J2ME audio"
|
|
note: "First .sf2 or .gm in the directory listing, loaded through MidiSystem.getSoundbank when the freej2me_midifont option is on. A rejected file is logged and the JVM default soundbank stays."
|
|
source_ref: "src/javax/microedition/media/Manager.java:55, src/javax/microedition/media/Manager.java:328-351, src/org/recompile/mobile/Mobile.java:1056-1058"
|
|
|
|
- name: "<font>.ttf"
|
|
system: j2me
|
|
path: "freej2me_system/customFont/<font>.ttf"
|
|
required: false
|
|
unsourceable: "user supplied, no canonical file"
|
|
category: game_data
|
|
description: "TrueType font for J2ME text"
|
|
note: "First .ttf, .otf or .ttc in the directory listing, loaded through Font.createFont when the freej2me_textfont option is on. A rejected file is logged and the AWT faces stay."
|
|
source_ref: "src/org/recompile/mobile/PlatformFont.java:63, src/org/recompile/mobile/PlatformFont.java:133-154, src/org/recompile/mobile/Mobile.java:1062-1064"
|