XaiJu
SquirrelJME

SquirrelJME

patreon


SquirrelJME posts

Upcoming License Change

SquirrelJME 0.4.0 will be under the Mozilla Public License 2.0+ instead of the GNU General Public License 3+.

View Post

Debug/Release Variants

Spent the past two weeks adding Debug/Release variants, where the Release version is about 30% smaller than the Debug one and slightly faster. This should make things a bit more efficient if you do not care for debugging!

View Post

IEEE1275

I dug out some old code from 2013 and SquirrelJME might just see a port to IEEE1275 (Open Firmware, OpenBOOT, and OpenBIOS) for PowerPC, SPARC, and x86 as a kind of bare bones demonstration of sorts.

View Post

Standalone and Hosted Fixes

Noticed a few bugs in how the Standalone JAR was launched along with certain test environments not properly launching sub-tasks. This has been fixed.

View Post

Local Variable Debugging!

I added local variable debugging to SpringCoat, which hopefully will help figuring out some issues and otherwise with code. Before this information was absent and more information is always helpful!

View Post

Improved Gradle Testing

There now is an implementation of a test framework in Gradle which means that the more standardized testing is available. This makes them also visible in IntelliJ. There is no JUnit or TestNG used!

Note the legacy tests are available via switch!

View Post

JavaDoc Classes!

Took a break and am working on putting out all the JavaDocs for SquirrelJME, this should be useful for reference purposes. Hopefully in the future SquirrelJME can be used as a reference for out of date Java ME/J2ME APIs!

View Post

Installation via Homebrew on Mac OS!

SquirrelJME can now be installed via Homebrew on Mac OS by running these two commands:


View Post

M1 Mac Building!

SquirrelJME is now building and running automatically on M1 Macs!

View Post

PNG Decoder Fixes

I have made some fixes to the PNG decoder, so that graphics are less corrupt. There still needs to be some fixes however!

View Post

FOSDEM 2022 T-Shirt

I received a T-Shirt for speaking at FOSDEM 2022!

View Post

FOSDEM 2022: SquirrelJME, Java Flip Phone Emulation

Preserving the history of obsolete cellular devices.

Recorded live on February 6, 2022.

View Post

First MIDI sound made by SquirrelJME!

This is the first MIDI sound made by SquirrelJME, a single note!

View Post

Upcoming Vacation!

I will be having vacation upcoming in December to where I can possibly work on SquirrelJME a bunch while relaxing. Should see some quicker progress then!

View Post

Cherry Pickings from SummerCoat!

The SummerCoat has been in development since November of 2020, there has been lots of work on it that is not completely related to SummerCoat... however since there is much of that I decided to cherry pick those changes into the mainline SquirrelJME. This way there is much less pressure and stress to work on this branch now since important stuff is not solely in there. The branch is still important but this gives me much more room to wiggle now!

View Post

Detection of i-mode Applications

The detection of i-mode applications now can happen, assuming there is a JAR/JAM pair.

View Post

JDWP Support Merged In!

The JDWP Support Branch has been merged in, which means I can debug SpringCoat and soon will be able to do SummerCoat as well!

View Post

Stepping while Debugging Demonstration

This is a small demonstration of stepping around code via JDWP using IntelliJ as a debugger for SquirrelJME, of which debugging support is currently being worked on.

View Post

Breakpoint Hitting

Breakpoints can now be hit when debugging, this will be useful to debug specific and weird portions of code.

View Post

Debugging in IntelliJ

Debugging is seeing a very good refactor to stabilize and make debugging SquirrelJME much easier than before. The refactors will also allow SummerCoat to more easily get debugging support added as needed.

View Post

Work Continues!

With a shiny new SSD, work continues on! Hopefully this one lasts me a few years!

View Post

SSD Failure, Project on Hold

SquirrelJME is currently on hold due to SSD failure! ETA Unknown. I have backups naturally but still a major pain to recover!

View Post

Obtaining Variables in Debugging

I added some basic support for obtaining fields and variables, it is not fully accurate and will be needing to do a slight refactor of the debugger for some things.

View Post

Static Variable Reading

I have added reading of static variables in the debugger, progress is still continuing adding little things here and there along with polishing. More stuff is visible to the debugger and I am going to want to move into actual breakpoints and otherwise.

View Post

Line Numbers when Debugging

Line numbers are now available and debugging will point to where code has stopped when the program has been suspended.

View Post

SpringCoat Debugging In IntelliJ

This is what the initial debugging looks like in IntelliJ, currently not much details are given and only suspend/resume is supported at this time.

View Post

Initial SpringCoat JDWP Support

Decided to take a break and work on adding JDWP Debugging Support to SpringCoat, which is able to suspend and list threads through JDB! Currently is a work in progress but will be useful for me in the future when supporting new software.

View Post

Testing Handle Allocation

A small test of memory handle allocation, this one test allocates about 524K of them at a good speed. Each handle has a unique ID and according to the stats the number of actual ID collisions is 14 (`downMaskMiss`)! But otherwise finding a slot to put an ID naturally misses 50% of the time as the number of items grow but re-rolling those gives only about 9K collisions.

View Post

RatufaCoat Test Results

I wrote a small conversion utility to convert CTest results to another  "standard" XML format (aka JUnit XML). This will allow me to more easily  see which tests in RatufaCoat are working or failing. Yay automation!

View Post

Initial RatufaCoat Refactoring

I spent some of yesterday and some of today splitting apart RatufaCoat and refactoring it. This is just an initial process that I am taking for refactoring, since it is easier to cleanup smaller pieces than big ones. But the end result is much more organization.

View Post