Hacking Hardware GBA Project Custom EZ Flash Jr. Kernel

  • Thread starter Thread starter lukesau
  • Start date Start date
  • Views Views 315
  • Replies Replies 1
  • Likes Likes 2

lukesau

Member
Newcomer
Joined
Aug 31, 2026
Messages
5
Reaction score
6
Trophies
0
Age
33
XP
19
Country
United States
I have been working on a modified version of the EZ Flash Jr. kernel (ezgb.dat or kernel.gb) for the past few months and I finally have the features I was looking to add:
  1. Continuous scrolling via the down arrow past the stock 16 file limit (including snappier redraw of file manager from the bottom up instead of top down)
  2. Sorted file browser
  3. Hidden file list expanded (now includes files that start with ._, .DS_Store, files that end with .gba, and fast launch control files)
  4. Fast launch feature to quickly get into your preferred rom. Supports multiple methods of config such as an explicit file path inside of FLAUNCH.CFG, <rom name>.fastlaunch for specifying a rom at the top level of the sd card, or simply launching the only rom on the disk if only one exists.
The repo can be found on my github. I don't distribute the actual modified kernel so you will need to build it yourself. There is a patch method and a full rebuild method. You can build for either one of the 1.05e versions

I am looking for more ideas on what to add to the kernel and would love suggestions. Currently the firmware layer is off limits (pretty unsafe to mess with) until I can understand the FPGA bitstream better, but I can basically add any feature that will fit in the available ROM caves to the kernel itself. Changing out your ezgb.dat to my patched version is safe and reversible.

Any features that you wish your EZ Flash Jr. had?
 
Last edited by lukesau,
I just released version 5.0 of my EZ Flash Jr mod. it supports all officially released kernels now so you can patch your preferred version to get the new features. Here is the feature list:

FeatureWhat it does
Sorted browserDirectories first, then files, each group alphabetical (case-insensitive), instead of raw FAT order.
Continuous scrollingDOWN/UP scroll one line past the screen edge instead of stopping at the top or bottom row.
Snappy down-scrollRepaints bottom-up so the new entry appears immediately on DOWN.
RIGHT jumps to endRIGHT on the last page moves the cursor to the bottom entry, mirroring LEFT at the top.
DMG-readable highlight + file iconsEvery highlight (browser selection, tab strip, SET buttons, prompts, Loading boxes) is white on black instead of black on dark gray, which is unreadable on an original Game Boy. The selection bar spans the full row and every row starts with an icon: folder, .gb cart, .gbc cart, .sav page, or a boxed ? for anything else.
12px browserOpt-in larger file browser: 10x12 pixel cells instead of 8x8, so a row is the icon plus 15 characters and a page shows 10 entries (longer names scroll). Switch it on with the UI: button on the SET tab; the stock 8px layout stays the default.
No lost button pressesThe stock menus sample the pad once per loop (3 to 6 frames), so a quick tap can fall between two samples and do nothing. The pad is now sampled every frame and presses are latched, so any tap of one frame or more is acted on. This is most of why the menus feel snappier.
No streak artifactsThe stock text drawer occasionally drops a pixel row of one tile, leaving thin one-tile streaks until the tile is redrawn. Every VRAM write is now made in a short interrupt-free window, in both the 8px and 12px browsers.
Path overflow guardEntering a directory whose full path would overflow the browser's 255-byte path buffer (and corrupt the save-file path) is a no-op instead.
Version on HELP tabThe HELP screen shows the kernel date (K1.05e-0731), the mod version (MOD 5.0) and the GitHub link, so you can tell which build a card is running.
Hide clutterFilters macOS cruft (._* sidecars, .DS_Store, .Spotlight-V100 etc.), unlaunchable .gba ROMs and the settings file from the browser.
Fast launchBoots straight into a ROM, skipping the browser: the ROM named by FLAUNCH= in /EZGB.CFG, or the card's only root ROM. Hold START at power-on to get the browser instead.
Fast-launch SET tabConfigure fast launch on the cart itself: a FAST LAUNCH checkbox on the SET tab, the target's name (scrolling when long) and a PICK ROM button that chooses the target in the file browser. Writes /EZGB.CFG.
RTC backup to SDKeeps a copy of the real-time clock in /EZGB.CFG (updated at every launch, save dump and TIME SET). If the clock has reset to 2000, gone backwards or reads as garbage at boot, a prompt offers to restore the backup, so a weak coin cell costs the time since your last launch instead of resetting the clock. RTC games (Pokemon Crystal, Gold/Silver) also keep their clock when the cart's clock moves backwards. An RTC: SD / NO SD setting on the SET tab turns the backup off.
Last-ROM fallbackThe START overlay's last-launched ROM lives in battery-backed cart RAM, which is lost when the coin cell fails. Every launch also writes LASTROM= to /EZGB.CFG and the overlay falls back to it, so START still relaunches the last game.

Supported kernels: 1.04e (FW4 package), 1.05e-0731 and 1.05e-0918 (FW5). I have tested on both FW4 and FW5.

Still looking for ideas on what to add. Feel free to leave an issue on my ezgb github repo with suggestions or bugs.
 

Attachments

  • banner.png
    banner.png
    55.7 KB · Views: 1
Last edited by lukesau,

Site & Scene News

New Hot Discussed User Submitted