Change boot logo
multicore
If you don't have multicore yet, GB300+SF2000 Tool will tell you what to do in order to download it.
If you already have multicore, you can configure it here:
- Configure core settings
- multicore has a button to enable, view and disable the log. Because disabling and deleting the log is the same to multicore, you can only disable the log by deleting it.
- Many emulators that handle black-and-white games have a preview for the palette
- Gambatte even allows custom palettes, so GB300+SF2000 Tool has a full-featured palette editor
- You can configure settings, including Gambatte's custom palettes, on a per-game basis! Select a ROM and find the per-game configuration in the Rename button's dropdown menu.
- Check BIOS requirements
- Set default core per extension (this is automatically set to the last core you used when you last added a ROM)
- You can also disable showing the core selection dialog for certain extensions here
Note that for configuration to work, GB300+SF2000 Tool has to know the core you want to configure and the .opt
file to use. In the past, there were issues when a core was renamed and there may be more cores to be renamed in the future. Also, the .opt
file has to be in the correct format with all available options inside comments at the top of the file.
Keys
This tab is pretty much self-explanatory.
- Use combo boxes to select the key and checkboxes to toggle autofire. Click Defaults to load the defaults.
- Click Save to save.
- Use this button's drop down menu to Import and Export the current mapping. Undo will load the last-saved key map from the device. Defaults will reset all consoles' keys. None of these will automatically save.
- The last column is the multicore column. You can select a core to see its mapping. It depends on your GBA mapping, which therefore affects all multicore cores' mappings as well. A prefixed
T
is for autofire ("turbo").
Note that the device's own "Joystick" editor is completely bugged and unusable for many reasons. Do not file a bug report unless you physically confirmed that GB300+SF2000 Tool is wrong.
UI Editor
Images
Here you can change all images used by the device's UI. Only the boot logo is found in the BIOS tab instead because that's where it is stored.
- Select a file from the list on the left.
- Click Save File to save the current file.
Technical note: This will always use PNG because there are different ways to decode/encode RGB565 bitmaps:
shl
-type (higher performance, supports true grays) and full byte range (supports true white, seems to be the more common one). Because RGB565 isn't natively supported by most image editors, they must decode RGB565 first to convert it to RGB888. Should your image editor use a different algorithm than GB300+SF2000 Tool (full byte range), importing an edited file will cause rounding errors. This means that if you made changes based on the original image, any untouched areas will also be altered. PNG however is unambiguous (as long as gamma is unset, which is the case for GB300), because encoding and decoding depend on the implementation in GB300+SF2000 Tool.
- Use this button's drop down menu to Copy Current Image to Clipboard. This applies to whatever is currently displayed, whereas Save File saves the image from the selected files, even if something else is currently displayed here. Copying BGRA8888 images doesn't make sense because Windows clipboard cannot realy handle transparency.
- Click Replace... to load a new image. This overwrites the current file. GB300+SF2000 Tool makes sure your image has the correct dimensions. You cannot overwrite BGRA8888 with an image that does not feature alpha.
- The left combo box is for selecting the mode.
- Image / Slices
- (full image) will show the original image file.
- If the device doesn't use the image as a whole, you can also select any of the used parts, called slices. The selected and pressed keyboard images are unique, because there are unused areas in the image. Changes made to these parts will not have any effect.
- Live Previews are predefined scenes that simulate how your theme will look on the device (bottom image) and TV screen (top image). These scenes were created based on NTSC output captured using an analog frame grabber (Astrometa DVB-T2hybrid). NTSC output from the device is vertically pixel-perfect and horizontally alright, so these images are supposed to be pixel-perfect. There is one exception to this: Text is rendered by Windows, which uses a different font rendering algorithm. This affects primarily the font weight (text looks slightly "bolder") and character spacing. In addition to that, the spacing for the horizontal ellipsis (...) is much smaller on the device (it looks almost like a underscore), so the previews don't use them except for Low Battery warning in Pause Menu.
- Click on the previews to randomize the background color (meant to proof transparent images).
Foldername
If you select the file called Foldername (there wasn't enough space to fit ".ini" in) at the very end of the file list, you will have a completely different interface. Here you can edit general UI settings. A few input boxes are locked because changes to them would break (freeze) your device. You can find more information here.
- Click Reload File if you made any changes to the file using anyother software.
- Click Undo to discard all changes made after selecting this file or pressing any of the other buttons.
- Click Defaults to load the defaults.
- Click save to save the settings.
Selecting another file or leaving the UI Editor tab without saving will discard any changes made since you last saved. Changing folder names does not rename the folders upon saving but instead creates them (empty). You can move the files in Windows Explorer if you want.
Dev Mode
Launch with -dev
switch for the following features:
- In the Rename menu of the ROM details, there will be an option to convert NoIntro DATs into the format this tool uses for space and performance reasons (DATs are XML files with more checksums and lots of redundant information and overhead). The result will have No-Intro's platform ID with a
.bin
extension as its name. Make sure to use the headerless NES DAT, BIN DAT for Atari 7800, remove duplicate Galaxian (USA) entry for Atari 5200. The existing No-Intro databases in GB300+SF2000 Tool do not include BIOS.
- In the Save menu of the UI editor, you can load
preview.xml
from the tool's directory. You can grab the current file from the repository (Data
folder). If you didn't reorder, add or delete <preview>
s, this will reload the currently-viewed preview.
- In the Keys tab, keys are shown with hex values. The original values are 16-bit LE, but only 1 byte is shown because the other is always 0.
The User ROMs tab has a context menu for the list where you can save the list file created by the device on the last boot. It's meant for developers only, but is accessible even outside of dev mode.
Trivia
There are 22879 entries in the tool's No-Intro database. The chance that all of these have different hashes ("birthday paradox") is around 94.1% There is actually one duplicate game, but that one is an SMS game released for the MD with just a physical adapter, but still exactly the same ROM. In A5200, one identical file is listed twice inside only one game.
Fun Facts about making the live previews:
- To not promote even more downloading of commercial games, the sample screenshot for "ROMS" contains one free homebrew ROM for each of the 8 supported systems. All ROMs were considered the best on their respective systems according to various sources. I took considerable time to create this list, leading to delays in publishing this tool. You should give all of these ROMs a try.
- The three screenshots used in the samples are the most memorable situations (or memes) I recalled when thinking about ROMs.
The BPS support was added because I wanted to patch Pokémon Crystal into Pokémon Prism myself. When I finished my work, I noticed that the patch was in BSP format rather than BPS. BSP seems way more advanced than BPS as it can even upgrade battery saves.
v1.0-rc2's title bar reads "v1.0", so the actual v1.0 is called "v1.0-final".
Changelog
Planned for v2.0
- Add Leonardo stubs for
ROMS
on SF2000 (because ZFB does not work there)
- Add ZFB and Leonardo stub editor (with an option to move the ROM)
- Add support for selective configuration options
- Change the ROMS icon in the tab bar to an icon of a folder (similar to what the device has), and change the UI Editor icon to match the device's current interface
- Add quick select management (the four games per platform on the main screen), but this is complicated due to the need to create the images for this, which requires implementing Gaußian Blur
- Add "make skp" to state context menu of arcade states
- Maybe SF2000 battery level editor (voltage to charge state)
v2.0-beta3 (21 Oct 2024)
- Added an option for the WQW export to affect the selection, not all files
- Fixed a bug that prevented ZFB multicore states from working
- Added Convert WQW to multicore to context menu
Note: Doing this for many files can take some minutes, especially for GBA.
Note: Save states can be kept for platforms where they are compatible (TGB Dual, Doublecherry, Picodrive and Mednafen PCE Fast). States are not supposed to at all, but for these, it works anyway. Sadly, GBA (the platform where converting makes most sense because of performance), states are compatible with neither the most recent version of gpSP, nor Prosty's save API downgrade.
Note: Does not process ZFB because arcade can only run a single stock game properly (Wildfang), but that one works well on FBA as well.
v2.0-beta2 (17 Oct 2024)
- Added support for MAME nummacwaytausend (a mod by me for better Neo Geo support) which now ships with Leonardo's multicore
- Added ZIP bios checks for
m2k
's neogeo.zip
in ROMS\m2k
which seems to be where it loads it (despite the file names not matching information in log, so I guess finds them by CRC only)
- ZFB stubs are no longer used for your user ROMs (because they don't work there). This was a bug.
Note: The next version of this tool should have an option to use Leonardo's Save-3 stub format instead, which was changed to work for the user ROMs folder now.
- Updated multicore info displayed when no multicore is installed
- Fixed PCE UI preview being selectable for SF2000 but failing due to the PCE background and selection icon both missing
v2.0-beta (23 Sep 2024)
- A lot of quality-of-life and UI enhancements
Note: I forgot what exactly I did, but I promise it's great!
- Now works on smaller screens (task bar auto-hide is required for under 800px of height)
- Added more previews
- Added support for
.zfb
stubs
Note: Leonardo's stubs were originally planned, but it turned out I underestimated the power of .zfb
as it too can have arbitrary names. Leonardo's stubs cannot run from user ROMs folder and probably cannot be thumbnailed.
- Fixed a bug that prevented the file icon to be displayed for newly-created multicore stubs
- Removed the time limit that existed in the two alpha versions
v2.0-alpha (22 Sep 2024, Discord-only release)
- Added Export WQW Images feature (stock file list context menu)
- Added Export WQW ROMs feature (stock file list context menu)
- Updated some descriptions in
Foldername.ini
editor
- Changed slices of game labels (
gakne.ctp
) to respect that these are always used as a full row (also makes creating previews easier)
- Added a few previews for the main menu
- Added Neo Geo ROM Faker
Note: This is transparent. You can only see that it is invoked by the fact that you cannot enter a file name during ZFB creation.
Note: See the included compatibility list.
Note: Sets sets containing xor
patches ( .dif
files) are supported, but only for predefined ones (in the XML resource). You cannot have your own sets patched because these patches are too weird.
- Added ZFB creation when adding a ZIP to the seventh list
- Added support for
.zfb
save states (their naming is different than any other file's)
- Added a new (generic) icon for ZFB
- Changed the icon, name and logo to GB300+SF2000 Tool
- Increased time limit to October
- Added support for SF2000 (please thank my colleague, Svenni, for lending me his SF2000 for the weekend)
- BIOS settings for SF2000 1.60 (used by multicore) and 1.71 (most recent)
Note: There will not be support for all SF2000 firmware versions because some cannot be differentiated by size and I don't want to add more advanced techniques here for a marginal audience)
- Key binds
- UI files missing (due to the lack of PCE)
- UI file dimensions (due to the lack of PCE)
- UI file slices (due to the lack of PCE, different keyboard layout)
- Live preview adjustments (e.g. not showing PCE, different keyboard layout)
v2.0-pre-alpha (29 Aug 2024, Discord-only release)
- Added GB300 v2 support
- Removed GB300 v1 support
v1.0b (22 Aug 2024)
- Updated the BIOS features' tab order
- Fixed a bug that prevented Import All Images... from finding images located in multicore actual ROMs path
- Fixed a bug that prevented Import All Images... from working with
.zip
files
- Fixed memory leak when importing or creating a multicore state, that also caused the target file to be locked for reading and writing
- Changed hotkey for adding/removing checkmarks to + (NUM) and - (NUM) because you often press space when you search in a list
- Per-game core configuration can now configure multicore itself
Note: This feature does not affect existing per-game core configurations. In that case, click Delete and configure again to make this feature appear.
Note: This is supposed to be overhauled again in the next version, allowing you to choose the options to override. This is then set to support overriding multicore (sf2000_*
) options in core configuration, e.g. you can set your preferred tearing fix on per-core basis.
- Added support for DoubleCherryGB multicore core
- If configuring an unknown core, option comboboxes (of the previously-selected core) are now hidden
- Added support for Geolith multicore core
Note: Despite this core needing one of two BIOS files to work, no BIOS checker was implemented because the core is waaaay too slow (around 12 FPS), the BIOS is a ZIP file (so it can be different even with the same data inside) and MAME 2000 can run 114 of the 155 games – at full speed.
- Updated description of second-player gamepad in key editor, as these have become available now
- Added message saying that "GB300 v2" (the firmware that looks like SF2000) is not yet supported
- Made the two "links" on the onboarding page clickable
- Added arcade icon (which is being used for
m2k
core and .geo
files)
- Fixed renaming related files failing because it tried to rename the new name into the new name
- Added Find (Ctrl+F) and Find Next (F3), only accessible by these shortcuts
- This is likely the last version to support "GB300 v1" (the one without MAME where you navigate the menu using shoulder buttons)
v1.0-final (13 Jul 2024)
- Added enabling FDS support
- Added support for the FDS key mappings
- BIOS check now checks if stock FDS and VTxx support has been enabled in GB300+SF2000 Tool
- Fixed BIOS status for Gambatte and TGB always assuming multicore 0.1.x (it can now detect if the cores have been swapped)
- Check All button in stock ROM tabs now unchecks (removes) missing files
- Duplicate as multicore... can now duplicate multicore for use with another emulator (note that you can select stock emulators too)
- Added save state data support (save state list context menu)
Note: This feature is likely to not work because you will need the same emulator and probably even the same CPU architecture. One instance where these features do work is multicore core pokem
and PokeMini on Windows.
- Incorporated osaka's most recent VTxx patch and removed his previous workarounds
Note: If you previously had his patches enabled, enabling the new patch will overwrite the old one.
- Removed old VT02/VT03 workarounds, as these are no longer necessary with osaka's new patch. Just make sure your VTxx ROM has the
.nfc
extension and your ROM will work right away. You can even play headerless VT03.
- Renaming files no longer writes
favorites.bin
and history.bin
for no reason
- Added mass importing ROM thumbnail images (context menu)
- Added changing the extension between
.nfc
(wiseemu/libvrt) and .nes
(FCEUmm) for ROMs inside compressed files
Note: .nes
has better compatibility for actual FC/NES, whereas wiseemu/libvrt has a little support for Famiclones. You can swap process all .zfc
files in FC
at ones (BIOS tab; .nfc
to .nes
only) or any qualifying file individually (ROM details' Rename menu; both directions)
- Added beat support (BPS)
- Added one more No-Intro database:
(31) Nintendo - Famicom Disk System
Note: I'm not sure if the checksums match the commonly-used ROMs' format, as my examples are listed as Third Party Modification and therefore not included in the file.
v1.0-rc2 (15 Jun 2024)
- Fixed a few lesser bugs, e.g. with empty user ROM list
tsmfk.tax
- Fixed UI preview glitch with some fonts
- Added one more No-Intro database that didn't make it in the last release due to a lack of time to find the reason why it contains a duplicate that caused trouble.
(1) Atari - 5200
Note that (250) Amstrad - CPC and (242) NEC - PC-88 do exist on No-Intro, but data for these platforms is very little, odd and does not match the ROMs I know.
- Fixed the UI file description for the pause menu labels in Spanish/Portuguese, which were errorneously swapped
- Fixed
.gb
not being recognized as a stock core extension
- Added config filenames for
c64fc
(Frodo.opt
, shared with c64f
) and gbb
(Gambatte)
- Fixed some duplicate extensions in core data (probably didn't have a big impact)
- Added support for multicore 0.2.x which caused issues by randomly swapping core names (
gb
and gbb
); GB300+SF2000 Tool will try to recognize them by file size
Note: GB300+SF2000 Tool does this automatically when you hit Start on the onboarding screen. Do not update multicore while GB300+SF2000 Tool is running.
.dmg
will always be attributed to the classic Game Boy (the actual name of which is Dot Matrix Game, hence the .dmg
)
- Input files are now automatically scaled when adding/replacing a thumbnail image (keeps aspect ratio)
- Fixed a bug that prevented updating the image when replacing thumbnails (adding was not affected)
- Added around 400 Gambatte palette previews converted from their source
Note: At the time of originally writing this, TWB64 278 was a duplicate of TWB64 277 in Gambatte's palette data source, so it is also the case for your GB300 multicore. I submitted a pull request (PR 268) with a fix, which was accepted by Libretro in under a day's time, but that needs to get merged into the multicore repository and then built. This will take some time. If you want to use TWB 278, select TWB 278 in GB300+SF2000 Tool, click any color in the preview and then click OK to save it as a custom palette.
- Added Gambatte full palette customization
- Added support for per-game OPT files (and per-game Gambatte custom color palettes)
Note for per-game Gambatte custom color palettes: Gambatte accept two file names for custom palettes, internal ROM name and file name, with the latter taking precedence. Even though GB300+SF2000 Tool even looks up the ROM's internal name (it uses it to preview the palette in auto
, SGB
and GBC
mode), it uses the file name for identifying the palette to use, because multicore requires the file name to be used for per-game OPT files, so this is consistent.
Note: Palettes and OPT both ignore the path. This makes sense since one core can only have one file of the same name. No matter in which tab on the device you chose to put the file (stub) for that game – the actual ROM always goes into ROMS
.
- Added Gearboy palette previews (there are only six predefined ones with no further customization)
- Added enabling VT02/03 support for
.nfc
files (must contain an iNES header with mapper 12)
Note: There is a ROM size limit of 2 MiB in iNES prior to v2.0, so this applies to Archaic iNES as well. bnister
(osaka) made a patch but that broke all stock ROMs internally named .nfc
. This patch is not in GB300+SF2000 Tool.
- Added editing the search results' selection color (BIOS tab)
Note: That's hardcoded in the BIOS file, so you cannot ship that with your theme
- Removed
.zfb
thumbnail support as this does not exist on the GB300
Note: There was a bug in GB300+SF2000 Tool caused by insufficient (weak) critieria for identifying .zfb
files. I first fixed that bug but then decided to remove support alltogether because there is no support on the GB300 anyway.
- Stopped the tool from attempting to hash disc images and multicore ZIP files, as well as any file over 100 MB
- Drew more platform (file) icons
- Fixed a bug that mixed up GBA and GB BIOS files in the core BIOS checker
- Added VT02/03 iNES header creation for the GB300's hidden
.nfc
emulator (requires enabling VTxx in BIOS tab to make this feature show up in the ROMS tab as a drop down menu to the Add button)
- Added two low battery screen previews (main menu and pause)
Note: The text, which is always in English, contains descenders (parts below the baseline) that Windows cannot render properly for the default font.
- Improved support for high DPI screens
There are considerations to render all images from an SVG source using my own SVG library, RedeemerSVG, but I don't want to have it initially released as part of another project and don't want to release it stand-alone either
- Added patching VT03 LUT (can also restore the original LUT, as the patched LUT is calculated on-the-fly from the original LUT that ships with the tool)
- Added a context menu to the user ROM list, allowing you to export the current
tsmfk.tax
as a text file
- In dev mode, the Keys tab now shows the first byte of the value (as a hex string)
- Removed Duplicate as multicore from compressed ROMs' Rename menu because it does not work
- Fixed Delete button not deleting the actual multicore ROMs
- Fixed file extensions with capital letters not showing up
- Renaming ROMs now moves all related files:
- thumbnailed states
- GBA:
.sav
in the same folder (but not the one that might exist in ROMS
because the GB300 randomly put it there instead)
- If old and new name are both multicore: actual multicore ROM (creates new folder if required), actual multicore states
- Because many people seem to be running this thing on a screen with the resolution of roughly that of the GB300, I added a message saying this is not supported. I want people to stop buying e-waste laptops.
- If you set keys to undocumented values, the Keys tab will now show these values
Note: This is big endian (in case you ever use values over 255), whereas the actual file is little endian.
- For some of multicore's cores, GB300+SF2000 Tool can now show the key mapping resulting of your current GBA mapping
- Added multicore log support
- Fixed tab order of multicore selection screen
- Made
sega
a recommended core for SG-1000 and Game Gear (both unofficial)
- Added icons for the BIOS check results
- Fixed blueMSX ColecoVision BIOS checker giving an incorrect file name for
czz50-2.rom
- Removed
lnxb
and retro8
from recommended cores
- Added editing Chinese/Pinyin names (double-click)
- Added copying state screenshots to clipboard
- Added palette previews for Potator (
wsv
), PokeMini (pokem
) and Beetle Cygne (wswan
).
- Added the remaining previews (no further updates on these are currently planned, but let me know if you are missing something)
- Config is now stored in
%APPDATA%\GB300Tool
unless there's a gb300tool.ini
where the .exe
is
- In stock ROM lists, new items added using GB300+SF2000 Tool are now checked by default (when duplicating non-multicore ROMs, they instead inherit the checked status from their parent)
- Added multicore thumbnail support
- Made Export Thumb button actually work
v1.0-rc1b (04 May 2024)
- Fixed two bugs that both prevented you from picking stock emulators when multicore was present
- Added a few previews
- Note: With the exception of "Empty battery screen" (
jccatm.kbp
) which I haven't seen so far, all images now have live previews, but three images do not have all slices used in previews yet: "Bottom tabs, selected state" (nvinf.hsp
), "Top left screen logos" (exaxz.hsp
) and "Button names in selection popup menu" (ztrba.nec
). This will be fixed in the future.
- Added a feature to export themes (in the drop down menu of the Save button
- Added No-Intro databases for all platforms that run reasonably well on the GB300 and do not require disc images (because they are difficult to handle):
(88) Atari - 2600
(74) Atari - 7800
(30) Atari - Lynx
(50) Bandai - WonderSwan
(51) Bandai - WonderSwan Color
(87) Benesse - Pocket Challenge v2
(3) Coleco - ColecoVision
(6) Fairchild - Channel F
(7) GCE - Vectrex
(105) Mattel - IntelliVision
(14) Nintendo - Pokémon mini
(17) Sega - 32X
(18) Sega - Kids Computer Pico (also available on stock)
(19) Sega - SG-1000
(73) Sinclair - ZX Spectrum
(35) SNK - NeoGeo Pocket
836) SNK - NeoGeo Pocket Color
(22) Watara - SuperVision
Note: In theory, you could use this to identify files with generic extensions like .bin
. This not currently planned because those extensions are rare.
v1.0-rc1 (04 May 2024, Discord-only release)
- Added full multicore support
- Fixed some bugs
v1.0-pre1 vanilla-only (28 Apr 2024, Discord-only release)
- This is the first release.
- No-Intro databases included:
(12) NEC - PC Engine
(46) Nintendo - Game Boy
(23) Nintendo - Game Boy Advance
(47) Nintendo - Game Boy Color
(45) Nintendo - Nintendo Entertainment System
(49) Nintendo - Super Nintendo Entertainment System
(25) Sega - Game Gear
(26) Sega - Master System
(32) Sega - Mega Drive