these are the replacement i’ve tested and i’m using currently:

alternatives i’ve considered:

  • Ni-MH AA/AAA -> limited compatibility due to lower voltage (1.2V), higher self-discharge than LiFePO4
  • Ni-Zn AA/AAA -> limited compatibility due to higher voltage when fully charged (1.85V), higher self-discharge than LiFePO4
  • Li-ion AA/AAA-sized 1.5V with builtin USB charging -> higher self-discharge than LiFePO4 due to the builtin step down circuitry
  • 1.5V stepup adapter/sleeve for Ni-HM -> higher self-discharge than LiFePO4 due to the builtin step up circuitry
  • use multiple LiFePO4 in series -> risk to damage the batteries

suggested readings:

English translations:

QoL improvements:

linear/arcade hacks (remove backtracking/grinding/forced minigames):

savegame hacking / conversion:

  • SNES\F-Zero -> savegame editor
  • NGC\Sonic Heroes -> savegame editor
  • Wii\Metroid Prime Trilogy -> import GC saves
  • NSW\Mario Kart 8 Deluxe -> import WiiU save
  • NSW\Hyrule Warriors: Definitive Edition -> import WiiU save
  • NSW\New Super Mario Bros. U Deluxe -> import WiiU save
  • NSW\Bayonetta 2 -> import WiiU save
  • PS4\Gravity Rush Remastered -> import PSV save
  • PC\Cotton Rock ‘n’ Roll: Superlative Night Dreams -> import NSW save
  • PC\SISTERS ROYALE -> import NSW save
  • PC\NeverAwake -> import NSW save
  • PC\Cosmo Dreamer -> import NSW save
  • PC\Like Dreamer -> import NSW save
  • PC\Clive N Wrench -> import NSW save
  • PC\BALAN WONDERWORLD -> import NSW save

enable stage select / debug menu / practice codes:

8-bit enhancement hacks (improve graphics and music):

see also:

In this post i’m going to make a quick comparison of 2 mini routers i’ve tested recently: the GL.iNet GL-AR300M16-Ext and the NanoPi R1.

These are easily available under the 50EUR price range, and make a good alternative to an old dumb LAN switch for home use.

The basic feature set of these routers include:

  • Ethernet and Wifi bridging
  • Wifi extender
  • Wifi hotspot
  • run self-hosted services (like file servers, IP cameras, DNS, etc.)
  • USB-powered and very small, easy to carry around

The GL-AR300M16-Ext was probably the easiest to use, since it came with a custom-made firmware pre-installed made by GL.iNet. This simplified firmware gives easy access to most basic features and it is the best choice for inexperienced users. But it is also possible to install the full OpenWrt LuCI web interface and get access to a lot more. However, after some days of use some problems started to roll out:

  • very limited storage space (16MB. yes, MBs!) and no extra storage option. Read: you can only install very few packages.
  • the filesystem became corrupted and read only, forcing to do a softreset (possibly related to the lack of free space).

Now, GL.iNet also offer some models with bigger storage, but still in the order MBs and with no option for firmware loading from external storage.

Switching to the NanoPi R1 things went much better: the model i’ve bought has no onboad storage, but you can plug and swap any microSD you want (which also makes full backups easier). On the R1 you have no simplified firmware, but only the OpenWrt vanilla one, so probably it is not the best choice for novice users. However there are also Ubuntu and Debian images available for this board. The ones on the Friendlyelec wiki are outdated, so i’ve switched to this one which is updated regularly and has some interesting optimizations: DietPi.

To sum things up, for a quick recap:

GL-AR300M16-Ext

  • pros: easier to use, handy firmware reset button, good manufacturer support, 2 builtin wifi NICs (for bridging)
  • cons: very small builtin storage with no expansion option

NanoPi R1

  • pros: unlimited storage option via swappable microSDs, mine came with a metallic case which seems to dissipate heat pretty well.
  • cons: harder to setup, official images are outdated, mostly no manufacturer support, only 1 builtin wifi NIC (a second one can be added via an USB port)

Another option i’ve considered are those routers by TP-Link: TL-WR802N Nano Router N300 and TL-WR902AC Nano Router AC750. These also seems aimed at novice home users since they came with a custom-made simplified firmware. However these seems even more limited than the GL.iNet router, with no external storage and no USB ports.

This list was originally posted here on GBATemp by me.

This is an update including affected titles on other platforms.

The general problem:

The problem with gesture controls is that they are not accurate as digital buttons.
I think gesture controls are good for minigames or secondary actions, but for repetitive commands that requires precise timing they are not good!
I’ve also found gesture controls make your arms tire out faster than simple button presses.

Continue reading

Just a quick reference for those making infinite-something Game Genie codes for retro consoles.

General tools i use regularly:

  • ucon64 (Game Genie encoder/decoder, rom patcher, and more)
  • qalc (cmdline calculator)
  • Retroarch (decent GUI to look for memory addesses)

suggested emus with breakpoints and a debugger:

opcodes references:

common ASM opcode replacements:

  • Z80 (original guide):
    • 90, 91, 92, 93, 94, 95 -> 00 (DEC->NOP)
    • EA -> FA (LD reg2mem -> LD mem2reg)
  • 6502 (original list posted here):
    • CE -> AD (DEC->LDA)
      DE -> BD (DEC->LDA)
      C6 -> A5 (DEC->LDA)
      85 -> A5
      D6 -> B5
      95 -> B5
      8D -> AD
      9D -> BD (STA->LDA)
      DE -> BD
      91 -> B1
      99 -> BE
      EA (NOP)
  • m68K:
    • most used opcodes are 6002 and 6004 (= Branch 2 or 4 bytes).
    • to skip a single instruction, a single NOP= 4E71 will do.

general tricks:

  • to NOP multiple instructions, you can use an unconditional branch instruction, or, if near a “RET” (=routine return) you can just call RET before.

Some codes i’ve made can be found here.

P.N.: i am not taking cheat requests currently, so please do not ask in the comments.

I was looking for a ROM renamer for Linux, and unfortunately there aren’t many options:

Since i could not find any tool meeting my needs, i’ve ended up writing my own in Python: renfromdats.

I’ve also added some extra features not found in other similar tools:

  • support for SFVs in addition to datfiles;
  • rename support files (saves, shots, etc.) by matching the filenames from 2 datfiles;
  • by default output on stdout a shell script to perform the renames.

This is the current cmdline usage:

usage: renfromdats.py [-h] [-r] [--include-roms] [--partial-matches]
                      [--recurse]
                      src_dat dst_dat [romdir [romdir ...]]

This Hourglass project looked promising, but unfortunately is now discontinued and still has very low compatibility.

The only alternative i’ve found is via virtualization, so i’ve tried the latest version of the usual big players: VirtualBox and VMWare Workstation (VMWare Player has no snapshots support).

Saving and restoring snapshots in virtual machines is not exactly as quick as savestates in Retroarch, since they do not support shortcuts and require you to give each snapshot a name for no reason.

The snapshots themself also take a lot of disk space and cannot be overwritten, so avoid taking too much of them and delete them when they are not needed anymore.

The first product i’ve tried is VirtualBox, being open source and based on Qemu i had good hopes for it. Unfortunately it quickly turned them down:

Then i’ve switched to VMWare Workstation and i’ve soon noticed much better 3D acceleration performances: i was getting 60fps in most games, with only occasional slowdowns.

Snapshotting saving/restoring is as fast as VirtualBox, but i’ve experienced less issues after restoring them.

Overall, if you are looking for an easy way to have savestates in Windows games, VMWare Workstation seems the best choice.