Skip to content

MainMenu 1.3.0

Choose a tag to compare

@UsaRandom UsaRandom released this 23 Aug 21:29
· 1 commit to main since this release

For the SummerCart64, place sc64menu.n64 in the root of your SD card.

One theme: a library of hacks of the same cartridge used to be five copies of one name.

Titles

  • Games that share a cartridge header show their file names instead. The 20-byte ROM title is unique for a retail dump and identical for every hack of it, so the grid could not tell them apart. After the library is assembled, a given name that appears more than once is replaced on screen by the filename — region tags and [!] kept, extension dropped. A leftover unique header still shows the header.
  • C-up on a game's page names it. The keyboard is seeded with the display title. The name is written as display_name under [menu] in a .ini next to the ROM, the same sidecar that already holds boot overrides, so it travels with the file. Empty plus Done reverts. Keyed by path, not game code, or two hacks of the same cart would share one name. A read-only card refuses the write and leaves the title alone. Renaming used to qsort the library under a RAM art pool keyed on array index, so every title that slid down the list went blank until reboot.
  • The game's page shows the file path, at the bottom of the sheet, with the storage prefix (rom:, sd:) stripped. It appears only once the sheet has finished opening and is gone the instant close starts, so it does not ride the animation.

Long strings

  • Titles that do not fit scroll, on the grid footer and on the sheet heading. The old no-marquee rule assumed 608 px was enough for a 20-character header; filenames are not that short. Tiles still do not marquee.
  • The keyboard field scrolls to keep the caret on screen. It used to clip at about 24 characters and then hide the caret, so a long name was untypable past that point. The n / 63 counter owns a strip on the right; the field starts scrolling before a glyph can land on it.
  • Up off the top row of keys puts the cursor in the box. Left and Right walk an insertion point through the name; typing from the keys inserts there, so a one-letter fix is not a retype. Down lands on the key under the caret.

No index-format bump. An existing library.idx still loads; display titles are recomputed on every assembly. Old cards keep working.