Der User Cluster aus dem gbatemp-Forum hat ein ROM-Management-Tool für das NES Mini geschrieben.
Es ist sehr einfach handzuhaben, es wird keine Installation benötigt. Einfach entpacken und loslegen. Das NES Mini muss dazu per USB mit dem PC verbunden sein.
Windows 7+ und .NET Framework 3.5 werden benötigt.
- Erlaubt das Ändern der Einstellungen von jedem Spiel per Kommandozeile
- Füllt alle Spieldaten automatisch aus (über die integrierte Datenbank)
- Checkt automatisch alle unterstützten Spiele
- Automatische Onlinesuche für Boxart via Google
- Game Genie Unterstützung
- Patcht automatisch "Problemspiele", für einige Spiele sind die Patches schon integriert
- Erlaubt den Upload von hunderten von Spielen auf einmal
- Erlaubt das Verlassen des Menüs durch eine Button-Kombination anstatt die Reset-Taste zu drücken
- Erlaubt "Autofire" zu aktivieren
- Erlaubt das Simulieren des "Start"-Buttons auf dem zweiten Controller
- Erlaubt die Epilepsiewarnung zu deaktivieren
- Mods mit Emulatoren, Themes und mehr...
- Better games compatibility for SNES Mini (updated database of preset IDs, better LoROM/HiROM detection).
- Built in database of problem games, so hakchi2 will ask you to switch to 3rd party emulator automatically (e.g. RetroArch).
- Original games are not using extra memory space anymore, so we have some extra space for additional games (thanks to DanTheMan827!)
- "remove_thumbnails" mod no longer slows down SNES Mini's startup (thanks to brian91292!)
- Bundled with new mod "snes_custom_filters" which allows to disable scanlines in CRT mode or enable bilinear filter in 4:3 mode. Please read mod description before install.
- Bundled with new mod "extra_space". This is experimental mod for SNES Mini which moves your save-states data to unused partition of NAND flash. This partition is only 50MB in size but it will free some space for games because SNES Mini's save-states are huge. Please read mod description before install.
- SNES Classic Mini support.
- Automatic ROM conversion to special SNES Classic Mini's format. ~75% of games are working fine. You can use RetroArch mod for problem games.
- For expert users: you can select SNES game and press Ctrl+Alt+E to show hidden Preset ID editor.
- Individual profiles for different consoles, so you can use the same hakchi2 for both NES, SNES, Famicom and Super Famicom. You can select console type using "Settings menu".
- 7-Zip compression support for all platforms and emulators. You can compress or decompress any game using only one checkbox.
- Group operations. Now you can select multiple games in the main window, right click on them and do mass compression or mass cover downloading only for selected games. Hold control to select individual games.
- For expert users: NAND dump, NAND-B dump and memboot features. Don't use it if you don't known what is it.
- Some bugfixes and refactoring.
- FTP server is much more compatible and stable now (chown, MLSD, MLST, MFMT commands)
- Sorting feature for Save Manager
- Support for ultra shitty cheap Classic Controller clones (custom kernel re-installation required), but hardware modification is required (pull-up resistors)
- New mods included as examples for modders (checkout my mods guide: https://github.com/ClusterM/ha…cations-and-modules-guide)
- Finally installer and auto update, lol
- Screenshot tool
- More translations to different languages
- Other fixes
- Save-State Manager. It will help you to transfer save-states from NES Mini to PC and vice-versa as well as delete unwanted save-states. Remember that save-states will be remained in the system ever after game is deleted, so this tool is very usefull to cleanup your NES Mini and free some space.
- FTP Server! It will be helpfull for advanced users, this tool allows to transfer any files from/to NES Mini using any FTP client. So you can easyly dump original games from NES Mini, edit some configs, etc. And it will help you to cleanup system.
- Telnet Server. It provides access to NES Mini's command line interface. Basic Linux knowledge required.
- Using internal games packing instead of external "tar" util, it will fix "Can't pack games" error.
- RAM memory usage optimizations, hakchi2 should work fine on x86 systems now.
- Possible memory leak fix during folder navigation (testing required).
- Free flash memory space automatic check and basic memory usage statistics when not enough flash memory available.
- clovercon driver creates /dev/clovercon1 and /dev/clovercon2 now, you can read current buttons state from it, it's useful for some scripts.
- Translations to German, Greek, Spain, Italian and Polish languages. Write if you want to help with translation.
- Main modification - new transfer method. It's very fast. You can upload 300 MBytes of games in ~1.5-2 minutes. Also you don't need to hold reset and switch your NES Mini on/off. Just connect it to PC and turn on as usual.
- It's possible to change settings without re-uploading games.
- New driver installer should work on all Windows versions since XP. Please report me about any problems.
- Also better compatibility with Windows XP.
- You can drag'n'drop box art to main window now.
- Also it's possible to drag'n'drop module files.
- Automatic NES Mini/Famicom Mini detection.
- New hacked clovercon driver allows to use most (or all?) 3rd party classic controllers now.
- Autofire working for X/Y buttons too now (enable in menu and hold select+X or select+Y for a second).
- USB library changed to LibWinUsb, it's more portable.
- New game consoles, new images (thanks to NeoRame!)
- Many minor bugfixes and improvements.
- Finally hakchi2 shows size of all selected games in main window. Why I have not done it before?
- One font to rule them all. New font contains HUGE amount of characters now. Including Latin supplement, Cyrillic, Hiragana, Katakana, etc. So NES Mini and Famicom Mini uses the same font now and you can create folders with very unusual characters (in Russian, for example).
- The main idea to separate hakchi2 from non-NES games failed, so it's optimized for 3rd path emulators now (i.e. RetroArch).
- Added presets for Sega 32x and Game Gear games, without images yet.
- "/bin/path-to-your-app" replaced by "/bin/ext" for unknown extensions.
- Compression support! Since RetroArch can run games directly from archives it's possible now to compress non-NES games using 7-Zip. This feature enabled by default but you can disable it in the settings menu. Also you can add the whole archive (required by MAME games).
- Fixed huge bug in folder manager when new folders were missed after first sync.
- Some minor bugfixes.
- Total folder control. You can use folder tree constructor now to create folders, select images, rename and move everything as you want. Or just select predefined automatic algorithm. Thanks to NeoRame for images!
- Autofire feature updated a bit, since X and Y will be used often now.
- Optimization for large amount of games.
- Box art images will be load automatically if PNG or JPEG file with same name is available.
- English font updated, many characters added, so games like "720°" or "Alien³" will be shown without problems. Japanese font updated too, thanks to snakex!
- Game Genie database (thanks to Nhakin!), hakchi2 already contains database with many GG codes and you can import more from Nestopia.
- Box art images are with correct aspect ration now.
- Asiansteev fixed my terrible English [Blocked Image: http://gbatemp.net/styles/default/xenforo/clear.png] Thanks!
- Many other improvements.
- Many fixes.
- Folders/pages support! No more games limit. hakchi2 will automatically create folders and sort games alphabetically. Tested with 600+ ROMs. Everything working fine including save-states. You can select maximum games per page/folder but it's recommended to limit it to 30-35.
- Multistep uploading. NES Mini can't handle huge kernel with hundreds of ROMs. So hakchi2 will split it up and upload in sequence. Just follow onscreen instructions.
- Mass cover downloading. You can download covers for all games at once using first image on Google. You can find this feature in "File" menu.
- IPS patcher can enlarge ROMs now ("index out of bounds" bug fixed).
- New patches for problem games.
- New confirmed mapper - 86. Also games with mappers 88, 95 and 206 will be patched automatically.
- Global command line arguments. You can add some argument(s) for all games at once, including original ones. For example: add "--ppu-palette=2" to make all games black and white.
- Support for ZIP, 7z and RAR archives. You don't need unpack every ROM now.
- Support for some bad ROMs with invalid size.
- Full Famicom Mini support: Japanese font and customizable original games list (thanks to xsnake!)
- Autofire! Enable it via menu, hold Select+A/B for a second to enable autofire on A/B. Also X/Y buttons on classic controller will act as autofire A/B.
- Start button simulation for second controller. Hold Up+A+B to press Start. It's workaround for some USA games on Famicom Mini. Don't forget to enable it via menu.
- Option to disable menu music.
- Minor design fixes.
- Other minor improvements.
- Press Shift+F5 to update all your ROMs library info using database.
- Extended font working on Famicom Mini again.
- Now you can select button combination for reset.
- Some FDS improvements: correct cover size, automatic header fix, "--fds-auto-disk-side-switch-on-keypress" argument by default.
- 8bit PNG compression is optional now since image quality is not so good.
- Now you can remove thumbnails at the bottom of screen (via settings menu).
- 'Can't repack ramdisk' error on some systems should be gone now.
- Device detection bug fixed (thanks to David Winter!)
- Automatic file attributes fix (e.g. "WinRAR" bug fixed).
- Game selection presets. Now you can create presets for favorite games, party games, etc. It's useful since NES Mini don't like huge amount of games at once.
- Search by first letters of game, just press Ctrl+F.
- Much better PNG compression for covers, x4 more disk space.
- NES carts database with release dates, publishers, etc. Just add game and all fields will be filled automatically if it exists in database.
- Automatic IPS patches. Now you don't need other application to patch problem games. Patch files stored in "patch" folder. Problem game will be detected automatically by CRC32 checksum. Release already contains patches for "Battletoads", "Robocop 3", "Snow Bros.", "Bill & Ted's Excellent Video Game Adventure" and "Startropics II". You can add and your own patches too.
- Game Genie support. Just enter your codes (comma/spaces/semicolon separated) in special field and sync. Cheats will be activated automatically.
- Mapper #87 added to list of confirmed mappers.
- Epilepsy protection settings - you can disable epilepsy protection for original 30 games or for all games at once.
- Clovercon hack! Now you can exit to menu using "Down+Select" combination. All you need now is controller cable extension...
- Some interface improvements - you can delete games using del key, etc.
- Many minor bugfixes.
- Fixed unhandled exception bug when game with unsupported mapper selected.
- Fixed bug when NES Mini is not detected on some computers.
- Select all/unselect all feature, just right click on games list.
- Uninstall feature just in case you want to remove all hakchi traces.
- Four-screen check (it's not supported by NES Mini).
- Mapper #71 games automatically patched to mapper #2 , so you can play Camerica/Codemasters games: Micro Machines, Bee 52, Dizzy series, etc. One exception: Fire Hawk.
- Fix for Google search (thanks to Bin4ry!). This feature should work for all now.
- Added Drag&Drop support. You can just drag&drop .nes file to list of games.
- Help menu with links to FAQ and GitHub.
- Driver installer added again.
- Now you can hide selected default games.
- Font fix with all missed characters.
- Finally 'pipe read' problem solved!
- Some fool-protection.
- Now you can't run two copies of app accidentally.
- FDS support.
- Settings moved to config.ini file.
- Automatic driver installer removed due to annoying false virus reports.
- Some fixes for dinosaurs with Windows XP.
- Kernel size check.
- Another bugfixes.
- Added MD5 for Famicom Mini kernel.
- Many bugfixes.
- Added type of two players selection.
- It's first version actually [Blocked Image: http://gbatemp.net/styles/default/xenforo/clear.png]
Q: What is it?
A: This application can add more games to your Nintendo Classic Mini. All you need is to connect it to PC via microUSB cable. No soldering, no disassembling.
Q: So you are hacked NES Mini?
A: No! It was my russian сomrade madmonkey. He created original “hakchi” tool. It was not very user friendly so I decided to create tool which is simple for everyone, not only Linux users. I named it “hakchi2” because I don’t like to coming up with names. So first version was 2.0 [Blocked Image: http://gbatemp.net/styles/default/xenforo/clear.png]
Q: How to use it?
A: Basically you need just to unpack it somewhere (installation not required), run it, press “Add more games”, select some ROMs and press “Synchronize”. Application will guide you.
Q: How it’s working?
A: 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 Linux kernel (yes, NES Mini runs on Linux), write kernel or execute kernel from memory without writing it to flash. So we can dump kernel image of NES Mini, unpack it, add some games and script which will copy them to flash, repack, upload and execute. But games directory is on read only partition. So we need also to create and flash custom kernel with special script that creates sandbox folder on writable partition and mounts it over original games folder. So your original files are safe. You can’t delete or harm original files in any way. For kernel patching my application just executing other applications, that’s why there is “tools” folder.
Q: Which games are supported?
A: On this moment confirmed that emulator of NES Mini can run this mappers:
- 0 (NROM) - very simple games like Ice Climber, Pac-Man, etc.
- 1 (MMC1) - many good games, this is the second most popular mapper.
- 2 (UxROM - UNROM/UOROM) - games like Castlevania, Contra, Duck Tales, etc.
- 3 (CNROM) - mostly simple games but with much graphics, like Adventure Island, Friday The 13th, etc.
- 4 (MMC3) - most popular mapper, used by huge bunch of great games.
- 5 (MMC5) - very complex and most powerful mapper on NES, used only by Castlevania 3 and few japanese games. Is there at least one default game using it? I’m surprised that NES Mini can emulate it.
- 7 (AxROM - ANROM/AMROM/ANROM/etc.) - simple mapper used by games like Battletoads.
- 9 (MMC2) - used only by Punch Out!!
- 10 (MMC4) - used by few japanese games.
- Famicom Disk System images - japanese ROMs with .fds extension, like original Super Mario Bros. 2, Doki Doki Panic, japanese version of Metroid, etc.
It is possible that emulator supports some other mappers too. You can add those ROMs but application will warn you and game likely will not work. If it WILL work please report me about this game. I’ll add this mapper to list of confirmed.
Also if you will patch unsupported game with mapper hack/patch/conversion it should work. There are many MMC3 patches over the Internet. Also it's easy to port games from Codemasters/Camerica to UNROM.
But even game’s mapper is supported some games are not working good without patches. Emulator in NES Mini tested only on default 30 games and actually sucks.
Known problem games:
- Battletoads - crashed on second level. Patch available: http://www.romhacking.net/hacks/2528/
- Robocop 3 - it should work but not working at all. MMC3 port is working fine. There are many weird code in this game. I created my own patch.
- Snow Bros. - When the CPU writes to the serial port on consecutive cycles, the MMC1 ignores all writes but the first. This happens when the 6502 executes read-modify-write (RMW) instructions, such as DEC and ROR, by writing back the old value and then writing the new value on the next cycle. It's very easy to fix. I created my own patch.
- Bill & Ted's Excellent Adventure - same as Snow Bros. My patch.
Feel free to ask me for patched if you found some game that should work (no mapper working) but it crashes at startup.
Q: Can I find list of games with mappers?
Q: Can I play european/PAL games?
A: NES Mini can emulate only NTSC NES. There is command line argument to enable PAL emulation but it’s not working for some reason. All european NES Minis actually the same as USA versions and they are running NTSC versions of games. So you can play not all PAL games and this games will run faster. Use “(U)” and “(J)” ROMs if possible.
Q: How many games can be uploaded to NES Mini.
A: Internal storage in NES Mini is really huge for ROMs (about ~300MB) but seems like it’s cannot allocate so much RAM when loading cover and savestates images. It's not recommended to upload >90~100 games.
Q: Will it work with Famicom Mini too?
A: Yes, It’s confirmed.
Q: I can’t install driver!
A: If you are using Windows Vista, 7, 8 or 10 disable driver signature verification (Google it) and try again.
Q: It says that MD5 checksum is unknown! What I need to do?
A: There are two possible reasons:
- You have some unique unknown revision of NES Mini. Please send me your MD5 checksum is this case. You can continue flashing custom kernel on your own risk.
- You are using hakchi2 not the first time with this NES Mini (used it on another PC e.g.) and your kernel already patched. Of course it has unknown MD5. It’s safe to continue in this case.
In any case it’s better not to lose kernel image. It is stored in the “dump” folder. Backup it somewhere. But don’t worry if you still lost it. This kernel image is near the same for all NES Minis.
Q: Can I brick my NES Mini?
A: It’s pretty hard to brick it. You always can flash original kernel back (via menu). Even if your flashing process was terminated for some reason you just can do it again. But flash memory can handle only 100,000 erase cycles for any sector typical.
Q: How to update hakchi2 to new version? I don’t want to lose my games, kernel image and settings.
A: Just copy all files of the new version into the folder of old version with replacement. Or just copy folders “dump” and “games” into the directory of new version. Also copy “config.ini” if it’s exists.
Q: Some games are displayed with an incorrect name, some characters are missed. Why?
A: Nes Mini doesn’t contain some characters in their font. But I created my own font. You can use it on the latest version. Don’t forget to enable it in “Settings” menu (enabled by default).
Q: Can you modify emulator so the combination of buttons on gamepad will trigger reset?
A: It is possible in theory but need to disassemble binary of emulator. I have not so much skill.
Q: Can I use savestates on added games?
A: Yes, you can. Battery backed games can use their internal saves too. Note that saves are stored on writable partition along with other savestates. When you delete a game, all savestates remains in the memory. You can delete them at once using factory reset. But they take only few kilobytes.
Q: Why it is distributed in the SFX archive (as .exe)?
A: Some versions of WinRAR can corrupt file attributes which are required by the “mkbootfs” util.
Q: Your english is awful! Can we do something about it?
A: hakchi2 is opensource: https://github.com/ClusterM/hakchi2
So you can clone it, fix, upload and make pull request. Same way you can add other languages and some cool features.
Or just send me list of fixes.
Q: How to uninstall it?
A: Just flash original kernel using command in the menu. But it will not delete sandbox folder. I'll made uninstall feature soon if you want.
Q: I want to upload games to my brothers/systers/mothers/fathers NES Mini on the same computer as the one I used to flash my NES. How to do it?
A: hakchi2 is a portable application. Most safe way is just extract the hakchi2 to a second separate folder, and run hakchi2 from there. Doing so should allow to backup kernel, and add games to his liking/flash accordingly. You don't need to install driver. 99% safe way: just flash custrom kernel and sync games in same application. This is shouldn't break anything but I can't 100% guarantee it.
Q: How to delete game?
A: If you want to delete game from NES Mini just uncheck it in list. If you want to delete it from hakchi2 list do right click on game and select "Delete".
Q: Stop... You are uploading to NES Mini .nes files in iNES format which was developed by authors of first NES emulators... So Nintendo officially using stuff developed by pirates?
A: Yes. And probably they are using pirated copies of their own games %)
Q: I just got black screen. My NES Mini is not working anymore! Can you help me?
A: Don't panic. Just flash original kernel back. Everything should work again. Try to unpack application and do everything again. Make sure that all files in place and not corrupted.
Q: Ho to disable this weird epilepsy protection?
A: I think that it's looking cool! But you can disable it. Just remove "--enable-armet" command line argument.
Q: Where I can find list of all command line arguments?
A: Internal emulator of NES Mini has many command line arguments. Seems like some of them are not working but there is full listing of "--help" output:
[email protected]:/# /usr/bin/clover-kachikachi --help+ export MALI_NOCLEAR=1 + exec kachikachi --fullscreen --sync-guest-with-host --fds-initial-disk-insert-on-keypress --fds-auto-disk-side-switch --fds-disable-host-guest-sync-on-disk-op --keep-aspect-ratio --helpCore needs an UTF-8 C locale, we set it to "en_US.UTF-8" instead of "C". This is a global side-effect and is subject to change, please don't rely on this.Kachikachi - v28.0.20160804.dev===============================Kachikachi==========--help, -h Print usage and exit.--command=<file> Use file as the contents of the command line (one arg per line).--log=<file> Log to file instead of stdout. Defaults to stdout--ask, -a Ask for a rom and execute it.--scale=<1..16> Specify the initial scale of the window.--topmost Do not put window topmost.--fullscreen Enable full screen display.--keep-aspect-ratio Stretch the display while keeping the correct aspect ratio. (default)--stretch Stretch the display to the maximum size available.--pixel-perfect Stretch source pixels while keeping an integer target size.--mute Start ROM with mute sound.--pause-on-lost-focus Pause the emulator when the window loses focus.--dont-show-debug-infos Disable debug display on screen.--sync-guest-with-wall Synchronize emulation with wall time.--sync-guest-with-host Synchronize emulation with host.--sync-guest-none Don't synchronize emulation, run as fast as possible. --load-state-slot=<index>, -lss<index>Load save state by index. --load-state-file=<filename>, -lsf<filename>Load save state by filename. --delete-after-load Delete save state after a successful load. --dim-screen-after=<s>Dim screen after <s> seconds of inactivity. --volume=<0..100>Set sound volume (default: 100). --nes-version=[ntsc|pal]Specify the NES version (default is NTSC). --graphic-filter=<index/name>Specify the graphic filter (refer to code for values). --mem-init-pattern=[zero|type_1|type_0]Memory initialization pattern. --fds-auto-disk-side-switchAutomatic disk side switch detection--fds-auto-disk-side-switch-on-keypress When a disk side switch is detected, only insert the other disk side on the next keypress--fds-initial-disk-insert-delay=<value in frame count>Set initial disk insertion delay--fds-initial-disk-insert-on-keypress Initial disk insertion on keypress--fds-bios-file-name=<fds bios file name>Specify bios file to load (default to fds_bios.bin) --fds-disable-host-guest-sync-on-disk-op disable host/guest synchronization during disk operation--fds-disk-switch-side-delay=<delay in frames>Delay in frames between disk ejection and insertion--delete-previous-record,Delete previous input records (if it exists). --record-inputs=<filename>,Start or resume the specified input capture. --replay-inputs=<filename>,Replay the specified input capture and exit. --input-record-checkpoint-period=<period>,Save checkpoints during input recording at the specified period, in number of guest frames. --input-record-exit-frame=<frame>,Save a checkpoint during input recording at the specified guest frame and exit. --input-record-cache=<directory>,Enable checkpoint cache during input recording andset its path the specified directory. --input-replay-screenshot-period=<period>,Take guest screenshots during input replay at the specified period, in number of guest frames. --input-replay-screenshot-path=<path>,The path where replay auto-screenshots will be saved. --input-replay-screenshot-to-stdout,Put the screenshot to stdout (works only with build that have no other outputs. --input-capture-cut-path=<directory>,Set the directory where input capture cuts will be saved. --input-replay-print-total-duration,Print the duration of the input replay. --save-data-backing-file=<filename>Use the specified file for save data (SRAM or FDS writes), specifying an empty filename disable save data management. --save-on-quit=<filename>Save state to the desired location on quit event. --save-screenshot-on-quit=<filename>Save screenshot to the desired location on quit event. --enable-crt-scanlines, -sc Enable CRT-like scanlines. --enable-armet Enable Armet filter. --armet-threshold=<t>Armet Detection Threshold (default is 20). --set-dac-filters=[APU_FDS_14kHz|APU_14kHz_FDS_2kHz|none]Set DAC filters (default: APU_FDS_14kHz). --guest-overscan-dimensions=<l,r,t,b>Set the number of black PPU pixels on the four screen borders. --initial-fadein-durations=<t0,t1>Set the initial fadein durations in 1/10 of seconds. t0=blackscreen duration, t1=fadein duration. --ppu-palette=<index/name>Specify the PPU palette (refer to code for values). --ppu-palette-file=<filename>Specify the .pal palette file.
Q: How can I donate you?
A: My PayPal: [email protected]
Thank you! Maybe I’ll buy my own NES Mini one day. All this time experimenting with NES Mini of my friend, lol.