Tool that allows you to add more games to your NES/SNES Classic Mini
Clone or download
Pull request Compare This branch is 465 commits ahead, 46 commits behind ClusterM:stable.
Permalink
Failed to load latest commit information.
Apps Copy data files when adding a .cue file, closes #163 Nov 14, 2018
Clovershell Mono compilation fixes Jul 28, 2018
Extensions/ModStore More fixes and improvements for mono Oct 14, 2018
Files Use tar for nand-c backup/restore and add filetype checks for restore Apr 22, 2018
FtpClient removed mooftpserv (clovershell ftp support dropped) Jul 27, 2018
GameGenie add more icons Apr 8, 2018
Hmod Mono Compatibility WIP Oct 13, 2018
Libraries Copy data files when adding a .cue file, closes #163 Nov 14, 2018
Makefile Projects Add Makefile projects for installers and creating debug and release z… Sep 16, 2018
ModHub More fixes and improvements for mono Oct 14, 2018
NSI Name installer with the display version name Oct 11, 2018
Project1 Add Makefile projects for installers and creating debug and release z… Sep 16, 2018
Properties Version bump to 3.5.1 Nov 17, 2018
SshClient update hakchi.hmod to fix SD card users issue Aug 6, 2018
Tasks Don't sync empty folders Nov 17, 2018
Zipper Add Makefile projects for installers and creating debug and release z… Sep 16, 2018
art a little tidying Feb 16, 2017
clovercon clovercon fix Oct 12, 2017
data Add core info for QuickNES Nov 17, 2018
driver - Remove driver from repo and download the libwdi installer instead Sep 16, 2018
folder_images fix credits Sep 8, 2018
images Add mod repository support Oct 11, 2018
info include font_remount in repo (at least for now) Aug 1, 2018
mods/hmods Update clovercon Nov 17, 2018
patches Add Rock N' Roll Racing patch May 22, 2018
sfrom_tool lay down the foundations for sfrom tool Feb 12, 2018
tools Update hakchi to 123 Nov 14, 2018
user_mods Update snes_custom_filters.hmod Nov 17, 2018
.gitignore Update snes_custom_filters.hmod Nov 17, 2018
.gitmodules Copy data files when adding a .cue file, closes #163 Nov 14, 2018
AboutBox.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
AboutBox.cs Store git commit in the resx file as a byte[] to avoid nagging on eve… Apr 25, 2018
AboutBox.resx - Use NES controller icon on welcome dialog Apr 12, 2018
ApplicationDeploymentWrapper.cs Add new ApplicationDeploymentWrapper class Nov 20, 2017
ApplicationFileInfo.cs add possibility to skip directories in ApplicationFileInfo.GetApplica… Jul 21, 2018
ConfigIni.cs Mono Compatibility WIP Oct 13, 2018
ExportGamesDialog.Designer.cs hakchi.hmod updates include new mdns announce and flashBoot1 Aug 3, 2018
ExportGamesDialog.cs hakchi.hmod updates include new mdns announce and flashBoot1 Aug 3, 2018
ExportGamesDialog.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
ExportGamesDialog.fr-FR.resx hakchi.hmod updates include new mdns announce and flashBoot1 Aug 3, 2018
ExportGamesDialog.resx hakchi.hmod updates include new mdns announce and flashBoot1 Aug 3, 2018
FodyWeavers.xml cleaning up Jul 14, 2018
FoldersManagerForm.Designer.cs localization fixes Apr 14, 2018
FoldersManagerForm.cs fix #142 Sep 9, 2018
FoldersManagerForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
FoldersManagerForm.fr-FR.resx Remove incomplete or inconsistent languages and add menu stub for leg… Apr 24, 2018
FoldersManagerForm.resx translations fix Apr 30, 2018
GameGenieCodeAddModForm.cs add more icons Apr 8, 2018
GameGenieCodeAddModForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
GameGenieCodeAddModForm.designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
GameGenieCodeAddModForm.fr-FR.resx completing french language files Apr 24, 2018
GameGenieCodeAddModForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
GameGenieCodeForm.cs Fix #67 Jul 14, 2018
GameGenieCodeForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
GameGenieCodeForm.designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
GameGenieCodeForm.fr-FR.resx completing french language files Apr 24, 2018
GameGenieCodeForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
HTTPHelpers.cs Don't used cached data for mod hub Oct 11, 2018
INetworkShell.cs working out kinks of merging branches (i.e. TaskerForm -> Tasker) Apr 3, 2018
ISystemShell.cs Add ExecuteAsync and ExecuteSimpleAsync Apr 8, 2018
ImageGooglerForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
ImageGooglerForm.cs convert use of Debug to Trace to enable logging in Release mode as well Apr 27, 2018
ImageGooglerForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
ImageGooglerForm.fr-FR.resx Translation update Apr 17, 2017
ImageGooglerForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
ImagesForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
ImagesForm.cs FTP server (seriously!) and many fixes Apr 11, 2017
ImagesForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
IpsPatcher.cs Final fixes and cleanup Feb 19, 2017
LICENSE Licensed under GPL Jan 9, 2017
MainForm.Designer.cs Mono Compatibility WIP Oct 13, 2018
MainForm.cs Mono Compatibility WIP Oct 13, 2018
MainForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
MainForm.fr-FR.resx translations fix Apr 30, 2018
MainForm.resx Change background of info control for mod hub Oct 11, 2018
MemoryStats.cs remove timeouts from MemoryStats.cs when querying NES/SNES mini (caus… Aug 4, 2018
Motd.Designer.cs Mono Compatibility WIP Oct 13, 2018
Motd.cs Mono Compatibility WIP Oct 13, 2018
Motd.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
Motd.fr-FR.resx completing french language files Apr 24, 2018
Motd.resx Mono Compatibility WIP Oct 13, 2018
MultiFormContext.cs Add a multi-form application context Apr 8, 2018
NesMenuCollection.cs convert use of Debug to Trace to enable logging in Release mode as well Apr 27, 2018
NewCustomGameForm.Designer.cs localization fixes Apr 14, 2018
NewCustomGameForm.cs add possibility to skip directories in ApplicationFileInfo.GetApplica… Jul 21, 2018
NewCustomGameForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
NewCustomGameForm.fr-FR.resx localization fixes Apr 14, 2018
NewCustomGameForm.resx localization fixes Apr 14, 2018
Program.cs Add info folder to external directories Oct 17, 2018
README.md Making a few small polishes to prep for a release Jan 29, 2018
SaveStateManager.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SaveStateManager.cs continue conversion from SevenZip to SharpCompress Jul 15, 2018
SaveStateManager.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SaveStateManager.fr-FR.resx fix motd html layout Apr 25, 2018
SaveStateManager.resx fix motd html layout Apr 25, 2018
ScreenshotForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
ScreenshotForm.cs give more time for screenshot grab command to complete (would fail ra… Apr 29, 2018
ScreenshotForm.resx Add screenshot window Apr 1, 2018
SearchForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SearchForm.cs WIP refactoring NesApplication base classes, Code compiles again! Mar 5, 2018
SearchForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SearchForm.fr-FR.resx Translations update Apr 14, 2017
SearchForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SelectCoreDialog.Designer.cs localization fixes Apr 14, 2018
SelectCoreDialog.cs add new games to other affected games collections (i.e. adding a new … Jul 14, 2018
SelectCoreDialog.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectCoreDialog.fr-FR.resx localization fixes Apr 14, 2018
SelectCoreDialog.resx localization fixes Apr 14, 2018
SelectCoverDialog.Designer.cs localization fixes Apr 14, 2018
SelectCoverDialog.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectCoverDialog.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectCoverDialog.fr-FR.resx localization fixes Apr 14, 2018
SelectCoverDialog.resx localization fixes Apr 14, 2018
SelectFileForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectFileForm.cs wrapping things up Apr 3, 2018
SelectFileForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectFileForm.fr-FR.resx localization fixes Apr 14, 2018
SelectFileForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SelectFirmwareDialog.Designer.cs add firmware switcher in Tools menu Jul 22, 2018
SelectFirmwareDialog.cs attempt to fix firmware change causing errors when on wifi Aug 5, 2018
SelectFirmwareDialog.resx add firmware switcher in Tools menu Jul 22, 2018
SelectIconForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectIconForm.cs fix folder image size issue (back to allowing 228x204 on snes) Apr 20, 2018
SelectIconForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectIconForm.fr-FR.resx localization fixes Apr 14, 2018
SelectIconForm.resx fix folder image size issue (back to allowing 228x204 on snes) Apr 20, 2018
SelectNesButtonsForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectNesButtonsForm.cs add more icons Apr 8, 2018
SelectNesButtonsForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectNesButtonsForm.fr-FR.resx localization fixes Apr 14, 2018
SelectNesButtonsForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SelectSnesButtonsForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectSnesButtonsForm.cs New settings for SNES Oct 6, 2017
SelectSnesButtonsForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
SelectSnesButtonsForm.fr-FR.resx localization fixes Apr 14, 2018
SelectSnesButtonsForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SelectSystemDialog.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SelectSystemDialog.cs add more icons Apr 8, 2018
SelectSystemDialog.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SettingsForm.Designer.cs add possibility to skip directories in ApplicationFileInfo.GetApplica… Jul 21, 2018
SettingsForm.cs add possibility to skip directories in ApplicationFileInfo.GetApplica… Jul 21, 2018
SettingsForm.resx add possibility to skip directories in ApplicationFileInfo.GetApplica… Jul 21, 2018
SfromToolWrapper.cs fix long-standing bug that caused reset combination (and other contro… Apr 13, 2018
Shared.cs Remove invalid characters from exported filename, fixes #164 Nov 17, 2018
SnesPresetEditor.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
SnesPresetEditor.cs add new WaitShellCycleForm dialog for when the mini is rebooting (opp… Apr 24, 2018
SnesPresetEditor.resx - Use NES controller icon on welcome dialog Apr 12, 2018
SplitterStream.cs Add SplitterStream class and add debug logging for certain tasks Apr 1, 2018
StringInputForm.Designer.cs - Use NES controller icon on welcome dialog Apr 12, 2018
StringInputForm.cs Final fixes and cleanup Feb 19, 2017
StringInputForm.resx - Use NES controller icon on welcome dialog Apr 12, 2018
TarStream.cs convert use of Debug to Trace to enable logging in Release mode as well Apr 27, 2018
TaskbarProgress.cs More fixes and improvements for mono Oct 14, 2018
TechInfo.Designer.cs remove TechInfo group creation off of visual studio editor, into the … Jul 27, 2018
TechInfo.cs hakchi.hmod updates include new mdns announce and flashBoot1 Aug 3, 2018
TechInfo.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
TechInfo.fr-FR.resx Mono compilation fixes Jul 28, 2018
TechInfo.resx remove TechInfo group creation off of visual studio editor, into the … Jul 27, 2018
TempHelpers.cs Add .clvg import suport Sep 30, 2018
TrackableFileStream.cs NAND dump features, some rework, new language Sep 27, 2017
TrackableStream.cs Add mod repository support Oct 11, 2018
UnsupportedFourScreenException.cs Code cleanup Jan 16, 2017
UnsupportedMapperException.cs Code cleanup Jan 16, 2017
Upgrade.cs - Set current working directory to always be BaseDirectoryInternal Sep 22, 2018
WaitingFelForm.Designer.cs - Remove driver from repo and download the libwdi installer instead Sep 16, 2018
WaitingFelForm.cs Mono Compatibility WIP Oct 13, 2018
WaitingFelForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
WaitingFelForm.fr-FR.resx Translations Oct 17, 2017
WaitingFelForm.resx - Remove driver from repo and download the libwdi installer instead Sep 16, 2018
WaitingShellCycleForm.Designer.cs add new NES 2018 release MD5 value Jul 6, 2018
WaitingShellCycleForm.cs fix motd html layout Apr 25, 2018
WaitingShellCycleForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
WaitingShellCycleForm.fr-FR.resx add new WaitShellCycleForm dialog for when the mini is rebooting (opp… Apr 24, 2018
WaitingShellCycleForm.resx add new WaitShellCycleForm dialog for when the mini is rebooting (opp… Apr 24, 2018
WaitingShellForm.Designer.cs Changes to WaitingShellForm to hide the install driver button if alre… Sep 17, 2018
WaitingShellForm.cs Mono Compatibility WIP Oct 13, 2018
WaitingShellForm.de-DE.resx Add German translation, fixes #112 Jul 16, 2018
WaitingShellForm.fr-FR.resx add new WaitShellCycleForm dialog for when the mini is rebooting (opp… Apr 24, 2018
WaitingShellForm.resx Changes to WaitingShellForm to hide the install driver button if alre… Sep 17, 2018
XMLSerialization.cs Add hmod readme caching Feb 12, 2018
app.config cumulative work to: Mar 25, 2018
hakchi-nonportable.bat Add portable / nonportable command line switches Jan 31, 2018
hakchi.cs Decompression tweaks for hmods Sep 22, 2018
hakchi_gui.csproj Copy data files when adding a .cue file, closes #163 Nov 14, 2018
hakchi_gui.sln Copy data files when adding a .cue file, closes #163 Nov 14, 2018
icon_app.ico major icon fix (reduced executable by ~1mb) Mar 14, 2018
icon_window.ico trying to produce a sharp form icon Jul 21, 2018
motdTemplate.css add message of the day form and download mechasnism Apr 22, 2018
motdTemplate.html fix motd html layout Apr 25, 2018
readmeTemplate.css - Better initialize the ReadmeControl Oct 11, 2018
readmeTemplate.html - Better initialize the ReadmeControl Oct 11, 2018

README.md

hakchi2 CE

This is a fork of hakchi2 (by ClusterM) by princess_daphie, DanTheMan827, and skogaby. The aim of this fork is to not only provide new UI features and enhancements, but also bring the core of hakchi2 up to date with the rest of the modding ecosystem (i.e. USB host support, SD support).

This application can add more games (game ROMs) to your NES/SNES Classic Mini or Famicom Mini. All you need is to connect it to a Windows PC via Micro-USB cable. No soldering or disassembling required.

https://github.com/TeamShinkansen/hakchi2

Features

  • Change any game settings (including command-line arguments)
  • Fill all game data automatically using included database
  • Automatically check for supported games
  • Search for box art using Google Images
  • Use Game Genie codes for NES games; includes Game Genie database
  • Automatically patch problem games (patches for many popular games included)
  • Upload hundreds of games at once
  • Return to the HOME menu with a button combination instead of the Reset button
  • Enable autofire A/B
  • Simulate the start button on the second controller (for Famicom Mini)
  • Disable seizure protection
  • Allows to install user-mods to add more features (even support for SNES/N64/Genesis/etc., music replacement, themes, etc.)
  • Allows users to expand the storage of their system (provided a USB OTG hub, or an SD breakout module)

So you were the first to hack the NES Classic Mini?

No! It was my Russian сomrade, madmonkey, who first published a successful hack of the the NES Classic Mini. He created the original “hakchi” tool. However, it was not very user-friendly, so I decided to create a tool which is simple to use by anyone--not only Linux users. I named it “hakchi2” because I don’t like to come up with names. So my first version was a 2.0 release :)

How do I use the tool?

Basically you just need to unpack it somewhere on your harddrive (installation is not required), run it, press “Add more games”, select some game ROMs and press “Synchronize”. The application will guide you through this process.

How does the tool actually work?

You don’t need to worry about it. But if you really want to know, it’s using FEL mode. FEL is a low-level subroutine contained in the BootROM on Allwinner devices. It is used for initial programming and recovery of devices using USB. So we can upload some code into RAM and execute it. In this way we can read the Linux kernel (yes the NES Classic Mini and Famicom Mini runs an Linux operating-system), write kernel or execute kernel from memory without writing it to flash. So we can dump the kernel image of the NES Mini, unpack it, add some games and run a script which will copy them back to flash, repack, upload and execute. However, the games directory is on a read-only partition. Therefore we also need to create and flash a custom kernel with a special script that creates a sandbox folder on a writable partition and mounts it over the original games folder. This means that your original files are safe: you cannot delete or harm the original files in any way, even if you wanted. For kernel patching my application just executes other applications, which is why there is a “tools” folder.

What if I have another question?

Many more commonly asked questions are answered in the FAQ: https://github.com/TeamShinkansen/hakchi2/wiki/FAQ