feat: collect J2ME-Loader 1.8.2-dev-1964 files

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.
This commit is contained in:
Abdessamad Derraz committed 2026-10-20 00:34:58 +02:00
1 parent 185529ce75
commit 03a10841fb
17 files changed
+306 -267

No files matched your search

+28 -26
View File
@@ -1,27 +1,29 @@
precision mediump float;
uniform sampler2D uSphereUnit;
uniform vec2 uSphereSize;
uniform vec3 uLightDir;
uniform float uDirIntensity;
uniform float uToonThreshold;
uniform float uToonHigh;
uniform float uToonLow;
varying vec3 vColor;
varying vec3 vNormal;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
if (vAmbIntensity < -0.5) {
gl_FragColor = vec4(vColor, 1.0);
return;
}
vec4 spec = uSphereSize.x < -0.5 || vIsReflect < 0.5 ?
vec4(0.0) : texture2D(uSphereUnit, (normalize(vNormal).xy + 1.0) * 0.5 * uSphereSize);
float lambert_factor = max(dot(normalize(vNormal), uLightDir), 0.0);
float light = min(vAmbIntensity + uDirIntensity * lambert_factor, 1.0);
if (uToonThreshold > -0.5) {
light = light < uToonThreshold ? uToonLow : uToonHigh;
}
gl_FragColor = vec4(vColor * light + spec.rgb, 1.0);
precision mediump float;
uniform sampler2D uSphereUnit;
uniform vec2 uSphereSize;
uniform vec3 uLightDir;
uniform float uDirIntensity;
uniform float uToonThreshold;
uniform float uToonHigh;
uniform float uToonLow;
varying vec3 vColor;
varying vec3 vNormal;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
if (vAmbIntensity < -0.5) {
gl_FragColor = vec4(vColor, 1.0);
return;
}
float lambert_factor = max(dot(normalize(vNormal), uLightDir), 0.0);
float light = min(vAmbIntensity + uDirIntensity * lambert_factor, 1.0);
if (uToonThreshold > -0.5) {
light = light < uToonThreshold ? uToonLow : uToonHigh;
}
vec3 color = vColor * light;
if (uSphereSize.x > -0.5 && vIsReflect > 0.5) {
color += texture2D(uSphereUnit, (vNormal.xy / 128.0 + 32.0) / uSphereSize).rgb;
}
gl_FragColor = vec4(color, 1.0);
}
+18 -27
View File
@@ -1,28 +1,19 @@
uniform mat4 uMatrix;
uniform mat4 uMatrixMV;
uniform vec3 uColor;
uniform float uAmbIntensity;
uniform bool uIsPrimitive;
attribute vec4 aPosition;
attribute vec3 aNormal;
attribute vec3 aColorData;
attribute vec2 aMaterial;
varying vec3 vColor;
varying vec3 vNormal;
varying float vIsReflect;
varying float vAmbIntensity;
const float COLOR_UNIT = 1.0 / 255.0;
void main() {
gl_Position = uMatrix * aPosition;
vNormal = mat3(uMatrixMV) * aNormal;
if (uIsPrimitive) {
vColor = uColor.r < -0.5 ? vec3(aColorData * COLOR_UNIT) : uColor;
vIsReflect = 1.0;
vAmbIntensity = uAmbIntensity;
} else {
vColor = vec3(aColorData * COLOR_UNIT);
vIsReflect = aMaterial[1];
vAmbIntensity = aMaterial[0] > 0.5 ? uAmbIntensity : -1.0;
}
uniform mat4 uMatrix;
uniform mat3 uNormalMatrix;
uniform float uAmbIntensity;
attribute vec4 aPosition;
attribute vec3 aNormal;
attribute vec3 aColorData;
attribute vec2 aMaterial;
varying vec3 vColor;
varying vec3 vNormal;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
gl_Position = uMatrix * aPosition;
vNormal = uNormalMatrix * aNormal;
vColor = aColorData;
vIsReflect = aMaterial[1];
vAmbIntensity = aMaterial[0] > 0.5 ? uAmbIntensity : -1.0;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+82 -76
View File
@@ -1,76 +1,82 @@
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h4>Android Compat Support Library</h4>
<p>Copyright (C) 2005-2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>Android Preference Support Library</h4>
<p>Copyright (C) 2005-2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>Android Room Persistence Library</h4>
<p>Copyright (C) 2016 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>volley</h4>
<p>Copyright (C) 2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>ACRA</h4>
<p>Copyright (C) 2017<br/>Apache License 2.0</p>
<h4>NoNonsense-FilePicker</h4>
<p>Copyright (C) 2016 Jonas Kalderstam<br/>Mozilla Public License 2.0</p>
<h4>AmbilWarna library</h4>
<p>Copyright (C) 2009-2015 Yuku<br/>Apache License 2.0</p>
<h4>ASM</h4>
<p>Copyright (C) 2000-2011 INRIA, France Telecom<br/>BSD License</p>
<h4>MobileFFmpeg</h4>
<p>Copyright (C) 2018 Taner Sener<br/>LGPL v3.0</p>
<h4>Gson</h4>
<p>Copyright (C) 2008 Google Inc.<br/>Apache License 2.0</p>
<h4>Midi Driver</h4>
<p>Copyright (C) 2013 Bill Farmer<br/>Apache License 2.0</p>
<h4>PNGJ</h4>
<p>Copyright (C) 2009 Hernán J. González<br/>Apache License 2.0</p>
<h4>RxJava</h4>
<p>Copyright (C) 2016-present RxJava Contributors<br/>Apache License 2.0</p>
<h4>RxAndroid</h4>
<p>Copyright (C) 2015 The RxAndroid authors<br/>Apache License 2.0</p>
<h4>Zip4j</h4>
<p>Copyright (C) 2010 Srikanth Reddy Lingala<br/>Apache License 2.0</p>
<h4>J2meLoader</h4>
<p>Copyright (C) 2015-2016 Nickolay Savchenko<br/>Apache License 2.0</p>
<h4>MIDPShell</h4>
<p>Copyright (C) 2012 Kulikov Dmitriy<br/>Apache License 2.0</p>
<h4>dx tool</h4>
<p>Copyright (C) 2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>FreeJ2ME M3D(O) implementation</h4>
<p>Copyright (C) 2018 David Richardson</p>
<h4>MicroEmulator</h4>
<p>Copyright (C) 2006 Bartek Teodorczyk<br/>LGPL 2.1 / Apache License 2.0</p>
<h4>Symbian OS</h4>
<p>Copyright (C) 2003 Nokia Corporation and/or its subsidiary(-ies)<br/>Eclipse Public License v1.0<br/></p>
<h4>JL-Mod</h4>
<p>Copyright (C) 2020-2022 Yury Kharchenko<br/>Apache License 2.0<br/></p>
<p>App icon made by Nokia64</p>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h4>Android Compat Support Library</h4>
<p>Copyright (C) 2005-2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>Android Preference Support Library</h4>
<p>Copyright (C) 2005-2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>Android Room Persistence Library</h4>
<p>Copyright (C) 2016 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>volley</h4>
<p>Copyright (C) 2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>ACRA</h4>
<p>Copyright (C) 2017<br/>Apache License 2.0</p>
<h4>NoNonsense-FilePicker</h4>
<p>Copyright (C) 2016 Jonas Kalderstam<br/>Mozilla Public License 2.0</p>
<h4>AmbilWarna library</h4>
<p>Copyright (C) 2009-2015 Yuku<br/>Apache License 2.0</p>
<h4>ASM</h4>
<p>Copyright (C) 2000-2011 INRIA, France Telecom<br/>BSD License</p>
<h4>MobileFFmpeg</h4>
<p>Copyright (C) 2018 Taner Sener<br/>LGPL v3.0</p>
<h4>Gson</h4>
<p>Copyright (C) 2008 Google Inc.<br/>Apache License 2.0</p>
<h4>Midi Driver</h4>
<p>Copyright (C) 2013 Bill Farmer<br/>Apache License 2.0</p>
<h4>PNGJ</h4>
<p>Copyright (C) 2009 Hernán J. González<br/>Apache License 2.0</p>
<h4>RxJava</h4>
<p>Copyright (C) 2016-present RxJava Contributors<br/>Apache License 2.0</p>
<h4>RxAndroid</h4>
<p>Copyright (C) 2015 The RxAndroid authors<br/>Apache License 2.0</p>
<h4>Zip4j</h4>
<p>Copyright (C) 2010 Srikanth Reddy Lingala<br/>Apache License 2.0</p>
<h4>J2meLoader</h4>
<p>Copyright (C) 2015-2016 Nickolay Savchenko<br/>Apache License 2.0</p>
<h4>MIDPShell</h4>
<p>Copyright (C) 2012 Kulikov Dmitriy<br/>Apache License 2.0</p>
<h4>dx tool</h4>
<p>Copyright (C) 2011 The Android Open Source Project<br/>Apache License 2.0</p>
<h4>FreeJ2ME M3D(O) implementation</h4>
<p>Copyright (C) 2018 David Richardson</p>
<h4>MicroEmulator</h4>
<p>Copyright (C) 2006 Bartek Teodorczyk<br/>LGPL 2.1 / Apache License 2.0</p>
<h4>Sonivox EAS synthesizer</h4>
<p>Copyright (c) 2004-2006 Sonic Network Inc.<br/>Apache License 2.0</p>
<h4>TinySoundFont - SoundFont2 synthesizer</h4>
<p>Copyright (C) 2017-2018 Bernhard Schelling (Based on SFZero, Copyright (C) 2012 Steve Folta, https://github.com/stevefolta/SFZero)<br/>MIT license</p>
<h4>Symbian OS</h4>
<p>Copyright (C) 2003 Nokia Corporation and/or its subsidiary(-ies)<br/>Eclipse Public License v1.0</p>
<h4>JL-Mod</h4>
<p>Copyright (C) 2020-2026 Yury Kharchenko<br/>Apache License 2.0<br/></p>
<p>App icon made by Nokia64</p>
</body>
</html>
+11 -18
View File
@@ -1,19 +1,12 @@
precision mediump float;
uniform vec2 uTexSize;
uniform sampler2D uTexUnit;
uniform vec3 uColorKey;
uniform bool uIsTransparency;
varying vec2 vTexture;
const vec3 COLORKEY_ERROR = vec3(0.5 / 255.0);
void main() {
#ifdef FILTER
vec4 color = texture2D(uTexUnit, vTexture / uTexSize);
#else
vec4 color = texture2D(uTexUnit, (floor(vTexture) + 0.5) / uTexSize);
#endif
if (uIsTransparency && all(lessThan(abs(color.rgb - uColorKey), COLORKEY_ERROR)))
discard;
gl_FragColor = vec4(color.rgb, 1.0);
precision mediump float;
uniform sampler2D uTextureUnit;
uniform bool uIsTransparency;
varying vec2 vTexture;
void main() {
vec4 color = texture2D(uTextureUnit, vTexture);
if (uIsTransparency && color.a < 0.5) {
discard;
}
gl_FragColor = vec4(color.rgb, 1.0);
}
+12 -11
View File
@@ -1,12 +1,13 @@
attribute vec4 aPosition;
attribute vec2 aColorData;
varying vec2 vTexture;
void main() {
gl_Position = aPosition;
#ifdef FILTER
vTexture = aColorData + 0.5;
#else
vTexture = aColorData;
#endif
uniform vec2 uTexSize;
attribute vec4 aPosition;
attribute vec2 aColorData;
varying vec2 vTexture;
void main() {
gl_Position = aPosition;
#ifdef FILTER
vTexture = (aColorData + 0.5) / uTexSize;
#else
vTexture = aColorData / uTexSize;
#endif
}
+25 -24
View File
@@ -1,24 +1,25 @@
microedition.configuration: CDLC-1.1
microedition.profiles: MIDP-2.0
microedition.encoding: ISO-8859-1
microedition.platform: Nokia6233/05.10
microedition.io.file.FileConnection.version: 1.0
microedition.sensor.version: 1
microedition.m3g.version: 1.1
microedition.media.version: 1.0
microedition.pim.version: 1.0
microedition.location.version: 1.0
supports.mixing: true
supports.audio.capture: true
supports.video.capture: true
supports.recording: true
com.siemens.mp.systemfolder.ringingtone: fs/MyStuff/Ringtones
com.siemens.mp.systemfolder.pictures: fs/MyStuff/Pictures
com.siemens.OSVersion: 11
device.imei: 000000000000000
com.siemens.IMEI: 000000000000000
com.sonyericsson.imei: IMEI 00460101-501594-5-00
com.nokia.mid.impl.isa.visual_radio_operator_id: 0
com.nokia.mid.impl.isa.visual_radio_channel_freq: 0
com.nokia.mid.ui.DirectGraphics.PIXEL_FORMAT: 565
wireless.messaging.sms.smsc: +8613800010000
microedition.configuration: CLDC-1.1
microedition.profiles: MIDP-2.0
microedition.encoding: ISO-8859-1
microedition.platform: Nokia6233/05.10
microedition.io.file.FileConnection.version: 1.0
microedition.sensor.version: 1
microedition.m3g.version: 1.1
microedition.media.version: 1.0
microedition.pim.version: 1.0
microedition.location.version: 1.0
supports.mixing: true
supports.audio.capture: true
supports.video.capture: true
supports.recording: true
com.siemens.mp.systemfolder.ringingtone: fs/MyStuff/Ringtones
com.siemens.mp.systemfolder.pictures: fs/MyStuff/Pictures
com.siemens.OSVersion: 11
device.imei: 000000000000000
com.siemens.IMEI: 000000000000000
com.sonyericsson.imei: IMEI 00460101-501594-5-00
com.nokia.mid.impl.isa.visual_radio_operator_id: 0
com.nokia.mid.impl.isa.visual_radio_channel_freq: 0
com.nokia.mid.ui.DirectGraphics.PIXEL_FORMAT: 565
com.nokia.mid.ui.softnotification: true
wireless.messaging.sms.smsc: +8613800010000
+34 -39
View File
@@ -1,40 +1,35 @@
precision mediump float;
uniform sampler2D uTextureUnit;
uniform sampler2D uSphereUnit;
uniform vec2 uTexSize;
uniform vec3 uColorKey;
uniform vec2 uSphereSize;
uniform vec3 uLightDir;
uniform float uDirIntensity;
uniform float uToonThreshold;
uniform float uToonHigh;
uniform float uToonLow;
varying vec2 vTexture;
varying vec3 vNormal;
varying float vIsTransparency;
varying float vIsReflect;
varying float vAmbIntensity;
const vec3 COLORKEY_ERROR = vec3(0.5 / 255.0);
void main() {
#ifdef FILTER
vec4 color = texture2D(uTextureUnit, vTexture / uTexSize);
#else
vec4 color = texture2D(uTextureUnit, (floor(vTexture) + 0.5) / uTexSize);
#endif
if (vIsTransparency > 0.5 && all(lessThan(abs(color.rgb - uColorKey), COLORKEY_ERROR)))
discard;
if (vAmbIntensity < -0.5) {
gl_FragColor = vec4(color.rgb, 1.0);
return;
}
vec4 spec = uSphereSize.x < -0.5 || vIsReflect < 0.5 ?
vec4(0.0) : texture2D(uSphereUnit, (normalize(vNormal).xy + 1.0) * 0.5 * uSphereSize);
float lambert_factor = max(dot(normalize(vNormal), uLightDir), 0.0);
float light = min(vAmbIntensity + uDirIntensity * lambert_factor, 1.0);
if (uToonThreshold > -0.5) {
light = light < uToonThreshold ? uToonLow : uToonHigh;
}
gl_FragColor = vec4(color.rgb * light + spec.rgb, 1.0);
precision mediump float;
uniform sampler2D uTextureUnit;
uniform sampler2D uSphereUnit;
uniform vec2 uSphereSize;
uniform vec3 uLightDir;
uniform float uDirIntensity;
uniform float uToonThreshold;
uniform float uToonHigh;
uniform float uToonLow;
varying vec2 vTexture;
varying vec3 vNormal;
varying float vIsTransparency;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
vec4 color = texture2D(uTextureUnit, vTexture);
if (vIsTransparency > 0.5 && color.a < 0.5) {
discard;
}
if (vAmbIntensity < -0.5) {
gl_FragColor = vec4(color.rgb, 1.0);
return;
}
float lambert_factor = max(dot(normalize(vNormal), uLightDir), 0.0);
float light = min(vAmbIntensity + uDirIntensity * lambert_factor, 1.0);
if (uToonThreshold > -0.5) {
light = light < uToonThreshold ? uToonLow : uToonHigh;
}
color.rgb *= light;
if (uSphereSize.x > -0.5 && vIsReflect > 0.5) {
color.rgb += texture2D(uSphereUnit, (vNormal.xy / 128.0 + 32.0) / uSphereSize).rgb;
}
gl_FragColor = vec4(color.rgb, 1.0);
}
+25 -32
View File
@@ -1,33 +1,26 @@
uniform mat4 uMatrix;
uniform mat4 uMatrixMV;
uniform bool uIsTransparency;
uniform bool uIsPrimitive;
uniform float uAmbIntensity;
attribute vec4 aPosition;
attribute vec3 aNormal;
attribute vec2 aColorData;
attribute vec3 aMaterial;
varying vec2 vTexture;
varying vec3 vNormal;
varying float vIsTransparency;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
gl_Position = uMatrix * aPosition;
vNormal = mat3(uMatrixMV) * aNormal;
if (uIsPrimitive) {
vIsTransparency = uIsTransparency ? 1.0 : 0.0;
vIsReflect = 1.0;
vAmbIntensity = uAmbIntensity;
} else {
vIsTransparency = aMaterial[2];
vIsReflect = aMaterial[1];
vAmbIntensity = aMaterial[0] > 0.5 ? uAmbIntensity : -1.0;
}
#ifdef FILTER
vTexture = aColorData + 0.5;
#else
vTexture = aColorData;
#endif
uniform mat4 uMatrix;
uniform mat3 uNormalMatrix;
uniform vec2 uTexSize;
uniform float uAmbIntensity;
attribute vec4 aPosition;
attribute vec3 aNormal;
attribute vec2 aColorData;
attribute vec3 aMaterial;
varying vec2 vTexture;
varying vec3 vNormal;
varying float vIsTransparency;
varying float vIsReflect;
varying float vAmbIntensity;
void main() {
gl_Position = uMatrix * aPosition;
vNormal = uNormalMatrix * aNormal;
vIsTransparency = aMaterial[2];
vIsReflect = aMaterial[1];
vAmbIntensity = aMaterial[0] > 0.5 ? uAmbIntensity : -1.0;
#ifdef FILTER
vTexture = (aColorData + 0.5) / uTexSize;
#else
vTexture = aColorData / uTexSize;
#endif
}
+61 -8
View File
@@ -50,11 +50,18 @@ notes: |
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."
@@ -64,6 +71,9 @@ files:
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."
@@ -73,6 +83,9 @@ files:
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."
@@ -82,6 +95,9 @@ files:
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."
@@ -91,6 +107,9 @@ files:
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."
@@ -100,6 +119,9 @@ files:
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."
@@ -109,6 +131,9 @@ files:
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."
@@ -118,15 +143,21 @@ files:
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 texture size, sphere map and toon shading uniforms of the Tex program."
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."
@@ -136,16 +167,21 @@ files:
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 size and transparency uniforms of the Sprite program."
source_ref: "app/src/main/java/ru/woesss/j2me/micro3d/Program.java:314, app/src/main/java/ru/woesss/j2me/micro3d/Program.java:333-334"
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
unsourceable: "built into this app's package only, and the same-named build of another app must not stand in"
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."
@@ -155,6 +191,9 @@ files:
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."
@@ -164,6 +203,9 @@ files:
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."
@@ -173,7 +215,9 @@ files:
system: j2me
required: false
bundled: true
unsourceable: "built into this app's package only, and the same-named build of another app must not stand in"
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."
@@ -183,7 +227,9 @@ files:
system: j2me
required: false
bundled: true
unsourceable: "built into this app's package only, and the same-named build of another app must not stand in"
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."
@@ -193,7 +239,9 @@ files:
system: j2me
required: false
bundled: true
unsourceable: "built into this app's package only, and the same-named build of another app must not stand in"
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."
@@ -203,7 +251,9 @@ files:
system: j2me
required: false
bundled: true
unsourceable: "built into this app's package only, and the same-named build of another app must not stand in"
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."
@@ -213,6 +263,9 @@ files:
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."
+10 -6
View File
@@ -6,9 +6,9 @@ each resolved by its bare name to whatever shared it: the patched ROM at the
original's slot, the Wii U disc keys at the 3DS key slot, the OpenGL shader
at the Vulkan one. An entry with a hash resolves by content first.
529 bundled entries still carry neither a hash nor `unsourceable:`. The
count per profile may only fall: a new entry is written with the hash of
the file the emulator ships.
512 bundled entries still carry neither a hash nor `unsourceable:`. The
count per profile may only fall, and the table records each fall: a new
entry is written with the hash of the file the emulator ships.
"""
from __future__ import annotations
@@ -44,7 +44,7 @@ UNIDENTIFIED = {
"fpse": 7,
"fpse-ng": 7,
"future-pinball": 18,
"future-pinball-fploader": 54,
"future-pinball-fploader": 52,
"gba-emu": 1,
"hakux": 1,
"hcl": 3,
@@ -52,12 +52,11 @@ UNIDENTIFIED = {
"idtech4a++": 1,
"ikemen": 32,
"ines": 2,
"j2me-loader": 14,
"jl-mod": 22,
"kemulator": 4,
"mastergear": 2,
"mfme": 58,
"msx-emu": 10,
"msx-emu": 9,
"my-boy": 1,
"neo-emu": 3,
"nethersx2": 2,
@@ -102,6 +101,11 @@ class BundledFilesCarryTheirIdentity(unittest.TestCase):
}
self.assertEqual(grown, {}, "bundled entries need the shipped file's hash")
def test_the_table_records_every_fall(self):
# A baseline above the real count lets that profile grow back unseen:
# j2me-loader kept 14 after its 18 bundled files were all identified.
self.assertEqual(_unidentified(), UNIDENTIFIED)
class TheFixedEntriesGetTheirOwnBytes(unittest.TestCase):
CASES = (