Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

UAE4All2 Switch

From GameBrew
Revision as of 13:07, 4 Haziran 2024 by HydeWing (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
UAE4All2
Uae4all2nx.png
General
Authorrsn8887
TypeComputer
Version2.12
LicenseGPL-2.0
Last Updated2024/03/23
Links
Download
Website
Source
Support Author

This is the Amiga emulator UAE4All2 v2.00 ported to the Switch, based on the latest Vita version.

The code was modified from 32bit to 64bit. The Switch is faster than the Vita, for example Jim Power plays without slow-down.

The homebrew was presented in the GBAtemp Switch Homebrew Bounty 2018 (Emulators).

Features

  • Full speed emulation of most Amiga games with zero frameskip.
  • Large, complete virtual keyboard with adjustable position and adjustable transparency.
  • Six fully mappable custom control sets: map Vita/Switch buttons to any Amiga joystick or key input.
  • Multiple hard-file support: up to 4 hdf files (size <2GB each on Vita, size <4GB each on Switch) can be mounted simultaneously.
  • Multiple controller support on Vita TV/Switch: up to four (eight on Switch) paired controllers can be fully mapped.
  • Analog mouse control: control the mouse using the analog stick with adjustable sensitivity.
  • Shader support: default "sharp_bilinear_simple" uses integer pre-scale for sharp, undistorted pixels with minimum blur, even if game is zoomed to fill the full screen.
  • Custom autofire: any mapped Vita/Switch button can have autofire with adjustable rate.
  • Savestate with hard-file support: state can be saved even when hard-files are used.
  • Additional emulator settings: sprite-sprite collisions can be enabled, blitter settings can be changed.
  • Adjustable stereo separation.
  • A button can be mapped to "slow mouse" in custom controls. When custom controls are on and that button is held down, the mouse pointer speed is greatly reduced. This is useful for precisely positioning the cursor.
  • Sticky virtual keyboard modifiers: allows keyboard combos like CTRL-C to be entered easily.
  • Touchpad style pointer controls using the touchscreen.
  • Parallel port joystick adapter support for multiplayer games with up to 4 joysticks.
  • Additional savestate slot called auto, for automatic savestate loading.
  • Physical keyboard and mouse support (Bluetooth on Vita, USB on Switch).
  • Supports loading files from ux0: or uma0: partition (Vita only).
  • Rear touch panel can be enabled for mouse pointer control (Vita only).
  • Split Joy-Con support (Switch only).
  • A "fast mouse" custom button can be mapped to speed up the mouse.
  • Automatic full 1080p support in docked mode (Switch only).
  • Savestate import/export to backup savestates.
  • Config file management (load, save as, etc.)
  • Thumbnail previews for savestates.
  • Four different on-screen keyboard styles: original, warm, cool, and dark.
  • On-screen keyboard keys can be pressed via touch input in addition to D-Pad navigation.

Installation

How to install:

  • Download and unzip uae4all2_switch.zip.
  • Copy the resulting folder uae4all2 to /switch/ onto your SD card, ensure none of the "archive" flags is set.
  • You should now have the executable /switch/uae4all2/uae4all2.nro and a folder /switch/uae4all2/data/ with the keyboard icons and other data files on your SD card.
  • Obtain and copy BIOS files kick13.rom (Amiga 500), and kick31.rom (Amiga 1200) to your SD card into /switch/uae4all2/kickstarts/.
  • Optional: copy over additional BIOS files kick12.rom, kick20.rom, kickcustom.rom (for e.g. version 3.1.4 or any other user-supplied BIOS) to the same folder.
  • Please use nsp injection to start uae4all2, otherwise the "config save as" and "savestate export" options will not work. On SX OS, you can do this by holding down R while launching any installed game to make hbmenu appear.

MD5 of verified working kickstart rom files, you can test yours at onlinemd5:

  • kick12.rom (256 kB): (MD5) 85AD74194E87C08904327DE1A9443B7A
  • kick13.rom (256 kB): (MD5) 82A21C1890CAE844B3DF741F2762D48D
  • kick20.rom (512 kB): (MD5) FA4ACC75B49E880679FE02716AF24D71
  • kick31.rom (512 kB): (MD5) 646773759326FBAC3B2311FD8C8793EE

Other files might work, too.

You can purchase legal bios roms from Amiga Forever. They work. But since they are encrypted, you have to copy over your .key file along with the roms.

Since v1.84, please use Application mode, not Applet mode, to start uae4all2, otherwise the "config save as" and "savestate export" options will not work. You can do this by holding down R while launching any game to make hbmenu appear in Application mode. In other words: launch uae4all2 via game, NOT via Album.

User guide

Switch specific controls

The default OK button in menu and on-screen keyboard is B. This can be changed to A in "more options."

  • ZR button - Slow-mouse (if custom controls are off)
  • ZL button - Fast-mouse (if custom controls are off)

Split Joy-Con mode can be enabled/disabled in "more options." Upto four single Joycons are supported. Buttons can still be remapped. SL for player 1 is hardcoded to bring up the keyboard.

Split Joy-Con Controls:

  • Minus/Plus - Menu (player 1 only)
  • L - On-screen keyboard (player 1 only)
  • Pressing stick while moving it - Change keyboard transparency/position, control mouse pointer (player 1 only)
  • R+L+Stick directions - Hotkey to quick-zoom image and center image vertically (player 1 only)

Physical Keyboard/Mouse

On Switch (USB), all keyboards seem to work. Not all mice seem to work.

Mouse compatibility sheet.

Notes

Bios:

  • Please put kickstart files in /switch/uae4all2/kickstarts/ directory on Switch.
  • Files must be named as kick13.rom (for Amiga 500), and kick31.rom (for Amiga 1200).
  • Optionally, kick12.rom, kick20.rom, and kickcustom.rom (any user supplied file, e.g. version 3.1.4 or anything else), can also be supplied.

Speed:

  • Most games run full speed. Some slow Amiga 1200 and WHDLoad games actually run faster if the CPU speed is reduced from 14 MHz to 7 MHz, because they rely more on custom chips than CPU.
  • Some graphics glitches in Lionheart WHDLoad inside the caves are fixed by this.

Config File:

  • If you have problems with settings not saving etc, please delete or rename your config file in the folder /switch/uae4all2/conf/ and restart the emu.
  • This can fix many problems when you are replacing an older version of this emulator with a newer version. Lots of things are changing in the config file between releases.

Display:

  • The sharp_bilinear_simple shader, on by default, creates a sharp pixel image with minimal blurring. It applies a maximum integer pre-scale first. Then it scales only the small remainder using the builtin bilinear filter, keeping the aspect ratio intact. Many Amiga games fit the Vita and Switch screens very nicely. For example, take Chaos Engine with a screen setting of 320*200 and sharp_bilinear_simple shader enabled.
  • The picture can be zoomed using R+Start+D-Pad left/right (R+Plus+D-Pad left/right on Switch), and moved vertically using R+Start+D-Pad up/down (R+Plus+D-Pad up/down on Switch) to center it on the screen. Once this is done, the picture fills almost the whole screen and looks amazing with no artifacts or blurriness. The game runs smooth with zero frameskip.
  • Selecting a "Preset Width" of 320, 352 or 384 (max overscan) results in lo-res screen emulation, good for most games, while 640, 704, or 768 results in hi-res screen emulation, good for use with Workbench or some text-based games.

Blitter:

  • The blitter settings can help with graphics glitches in some games. Since it seems to work best, "immediate" is the default.
  • But some games require setting blitter to "normal" and re-booting to remove graphics glitches, for example PP Hammer, Spindizzy Worlds, and Shufflepuck Cafe.

WHDLoad:

  • If you have problems with a WHDLoad .hdf game, maybe try an .adf version of the same game. Rock'n Roll is one of a few games that work on UAE4All2 only using .adf files. It has graphics glitches and runs too fast in WHDLoad with .hdf.
  • For example, to make it work correctly, load the "Rock'n Roll.adf" from Gamebase Amiga, choose the preset A500 config, and change the Blitter setting to Normal.

Sprite Collisions:

  • Some games require sprite-to-sprite collisions. Sprite collisions can be turned on in the "more options" menu.
  • The only game that requires this is SpaceTaxi 3.

Savestates:

  • Four regular savestates can be saved per game. There's also a slot for an automatic savestate, labeled "auto".
  • If it exists, this will be loaded immediately when the .adf is inserted. To prevent this, delete the auto savestate by selecting it and choosing "delete savestate".

Multiplayer:

  • Up to four controllers on Vita TV and Switch are supported and can be fully mapped. The mouse can be switched off because it interferes with the other joystick that controls player 2 in most games.
  • By default, parallel port Amiga joysticks 3 and 4 are controlled by VitaTV/Switch gamepads 3 and 4. They can also be mapped to other inputs using the custom controls screen.

Sound:

  • For use with headphones, a stereo separation setting of 50 sounds better than the default setting of 100.
  • The original Amiga had completely disjoint left/right channels. This can sound quite jarring on headphones. Concerning sound frequency, 48 kHz seems to give the best results. On the Switch, 48 kHz is the only supported frequency.

FAQ

Q. Kickstart rom files not found on startup?

First, please ensure you are using the correct files. They should be kick13.rom (size: 262,144 bytes), and kick31.rom (size: 524,288). They should be placed in /switch/uae4all2/kickstarts/.

Additional supported files are kick12.rom, kick20.rom, and kickcustom.rom (for any user-supplied file, e.g. version 3.1.4).

Q. Black screen on Switch, or crash on startup?

Upon testing (only with exFAT), it was found that exFAT corruption can cause all files in the uae4all2 folder to become corrupted (among others). This includes kick13.rom and other kickstart files, which causes a black screen when leaving the menu. Game .adf files can become corrupted, causing the game to stop booting.

Even the executable uae4all2.nro and/or config files in the conf folder can become corrupted quite easily, causing black screen crash on startup. Either don't use exFAT, or make a good backup of the folder and restore it via FTP if there are problems. After switching to FAT32, all these problems with file corruption went away.

Q. HDF not working?

The maximum hdf file size on Switch is 4 Gb, on Vita it is only 2 Gb. When creating a .hdf file in WinUAE for use with UAE4All2, set surfaces to 1 (size < 1 Gb), 2 (size > 1Gb), or 4 (size > 2 Gb) depending on the size of the file.

Set blocksize to 512, sectors to 32 and reserved to 2. Don't use RDB mode. After creating the .hdf it has to be formatted using Workbench. A quick format to FFS filesystem is fine.

Games with known fixes

Blastar:

  • Issue: flickering scrolling.
  • Fix: set “Blitter: Normal” and reboot.

Golden Axe:

  • Issue: runs too fast.
  • Fix: set “Blitter: Normal” and reboot.

Lionheart with A1200 config:

  • Issue: some flickering graphics glitches in water and in cave, runs slow on Vita.
  • Fix: run the floppy version using A500 config.

Lure of the Temptress (adf only):

  • Issue: hangs at title.
  • Fix: use hdf version.

Mister and Misses (Amiga Power Coverdisk 14b):

  • Issue: flickering and missing floors
  • Fix: set “Blitter: Normal” and reboot

PP Hammer:

  • Issue: flickering.
  • Fix: set “Blitter: Normal” and reboot.

Rainbow Islands (adf only):

  • Issue: hangs after title.
  • Fix: use hdf version.

Rock’n’Roll:

  • Issue: gfx glitches / flickering.
  • Fix: set “Blitter: Normal,” use .adf and A500 config, and reboot.

Shufflepuck Cafe:

  • Issue: flickering.
  • Fix: set “Blitter: Normal” and reboot.

Spacetaxi 3:

  • Issue: taxis move through each other.
  • Fix: set “Sprite Collisions: On” then it works perfectly.

Spindizzy Worlds:

  • Issue: flickering/screen tearing.
  • Fix: set “Blitter: Normal” and reboot.

Xenon 2:

  • Issue: hangs after title.
  • Fix: use hdf version “Xenon21 disk” which works perfectly.

Games with no fixes

Banshee AGA:

  • Issue: score display on left is missing..
  • Fix: unknown.

IK+:

  • Issue: no sound fx.
  • Fix: unknown, but can play PlayStation 1 version in Retroarch instead. The Retroarch PUAE core can play this game correctly on Vita.

Nebulus 2:

  • Issue: doors are not showing.
  • Fix: unknown. This requires cycle exact, which is not supported..

Prince of Persia:

  • Issue: runs slow.
  • Fix: unknown, but can play Usineur's native Switch/Vita port SDLPop.

Reshoot R:

  • Issue: some of the blue background graphics are missing.
  • Fix: unknown, but the game is still playable.

Controls

General:

Minus - Toggle menu

Plus - Toggle virtual keyboard

R+Plus+D-Pad Up/Down - Move screen up/down

R+Plus+D-Pad Left/Right - Change screenmode (to zoom in on games with borders)

Right Stick - Analog mouse (can switch this to left stick in menu)

When custom controls are off:

Up to four controllers are automatically mapped to players 1-4. Players 3 and 4 are on the emulated parallel port 4 player adapter.

Left Stick or D-Pad - Amiga joystick directions

L - Right mouse click (player 1 only)

R - Left mouse click (player 1 only)

(Shown below are control presets 1 (default) / 2 / 3 / 4)

Y - Autofire (default) / Fire / Autofire / Fire

B - Fire (default) / Autofire / Up (Jump) / Up (Jump)

X - Space (default) / Space / Fire / Autofire

A - Secondary Fire (used only in a few games)

R+Y - Ctrl

R+A - Left Alt

R+B - Help

L+Y - Left mouse

L+A - Right mouse

R+D-Pad - Arrow keys

When custom controls are on:

L+Plus - Toggle between custom control set number 1, 2, 3, 4 and 5

Virtual keyboard controls:

Plus - Toggle virtual keyboard

Right Stick Up/Down - Move virtual keyboard up and down

Right Stick Left/Right - Change virtual keyboard transparency

B - Press selected key (on Switch, this can be changed from B to A)

Y - Backspace

X - Toggle shift

A - Turn off all sticky keys (ctrl, alt, amiga, and shift) (on Switch, this can be changed from A to B)

Touch controls:

Single short tap - Left mouse click

Single short tap while holding a second finger down - Right mouse click

Single finger drag - Move the mouse pointer, how far the pointer moves in response to finger motion depends on the Mouse Speed setting

Dual finger drag - Drag'n'Drop (left mouse button is held down)

Three finger drag - Drag'n'Drop (right mouse button is held down)

Screenshots

uae4all2nx2.png uae4all2nx3.png

uae4all2nx4.png uae4all2nx5.png

uae4all2nx6.png uae4all2nx7.png

uae4all2nx8.png uae4all2nx9.png

Changelog

2.12 (Switch only)

  • Fix regression causing stuttery audio after suspend by linking with fixed SDL2.

2.11 (Switch only)

  • Fix touch input on Switch.

2.10

  • Allow autostarting of config file via command line argument. On Switch, the same forwarder that works with RetroArch can be used. On Vita, a custom bubble builder is provided. It uses the same method as DaedalusX.

2.00

  • Important note to Switch users: on the Switch, since v1.84, please use nsp injection to start uae4all2, otherwise the config save as and savestate export options will not work. On SX OS, you can do this by holding down R while launching any installed game to make hbmenu appear.
  • Allow suspend/resume again. On Switch, it was fixed in SDK. On Vita, please install fd_fix plugin to prevent corruption on resume.

1.99

  • Implement touch input to control on-screen keyboard, in addition to dpad.

1.98

  • Recompile to add support for 9.0.0 firmware.

1.97

  • Add option to main menu that displays online instruction manual (opens web browser).

1.96

  • Increase maximum displayed lines from 270 to 286, useful for overscan games like Babeanoid.
  • Fix cia overlay in AGA mode, fixes Reshoot-R hang at title screen.

1.95

  • Add support for .zip floppy files (read-only).
  • On Switch, also compile with optimization level 3.

1.94

  • Fix hdf settings with non-zero hd dir causing wrong mounted drives.
  • Implement .adz floppy disk format support (read only).
  • Widescreen file dialog to show longer filenames.

1.93

  • Fix mouse pointer getting stuck sometimes when using USB mouse (fixed in SDL).

1.92

  • Add frameskip option back in.

1.91

  • Widescreen menu.
  • Physical keyboard and mouse support also on Switch. All keyboards I tried seem to work. Not many mice work. The Logitech M187 mouse seems to work fine.
  • On Switch, no more slow-down when returning from sleep (thanks @Cpasjuste).

1.90

  • Add keyboard style option with many choices: original, warm, cool, dark (thanks @wronghands).
  • On Switch, quit gracefully when using home button to exit.
  • Speed up rendering of savestate menu when thumbnails are displayed.

1.89

  • Fix scaling artifacts when sharp_bilinear_simple was selected. Pixels are even sharper now.
  • On the Switch, since v1.84, please use nsp injection to start uae4all2, otherwise the config save as and savestate export options will not work. On SX OS, you can do this by holding down R while launching any installed game to make hbmenu appear.

1.84

  • Implement config load with dialog, config save as, and config delete.
  • Increase number of savestates per game to 12.
  • Increase number of custom control sets to 6.
  • On Switch, fix some issues with vsync.
  • Implement importing and exporting of savestates.
  • Better menu font (thanks @wronghands).
  • Option to select menu font.
  • On Switch, automatically use 1080p resolution in docked mode.

1.83

  • Stop hotkeys from affecting game controls in some cases.
  • Always allow left stick to control on screen keyboard.
  • Allow mapping of stick and dpad independently.

1.82

  • Support up to eight controllers on Switch.
  • Allow faster menu navigation by holding down directions.

1.81

  • Allow higher CPU speed hack (for Alien Breed 3D).
  • Allow optional custom kickstart named kickcustom.rom (for 3.1.4 etc.)
  • Buttons can now be mapped to quickload/quicksave for fast savestates.
  • A button can be mapped to fast mouse, hold it down to speed up mouse.
  • Slow mouse or fast mouse buttons now also affect touch and real mice.
  • Populate custom controls with sensible defaults instead of all blank.

1.80

  • Improve keyboard input (fixes Celtic Legends).
  • On Switch, improve single/dual joycon mode switching.

1.79

  • Fix interrupt 6 bitmask (fixes Marvin's Marv. Adv. AGA).

1.78

  • Fix 68020+ bitfield instructions (fixes crash in Virocop AGA).

1.77

  • Increase max files per dir from 3072 to 10240.
  • On Switch, in split JoyCon mode, make SL/SR act as L/R also in menu.
  • On Switch, in split JoyCon mode, disable L/R/ZL/ZR in menu.

1.76

  • On Switch, added split Joycon option for tabletop multiplayer with up to four single Joycons.
  • On Switch, allow menu navigation with analog stick.
  • Fixed lag when navigating the savestate menu.

1.75

  • Fixed crash when booting a floppy with floppy speed >1x.
  • Fixed inconsistencies in menu navigation.
  • Enabled long filename display in file browser (hold Triangle or X to show it).
  • Fixed an issue where HD Dir could not be selected unless Boot HD was set to OFF.
  • Removed legacy code and data files that were not needed.

1.74

  • Allow remapping of ZR/ZL on Switch.
  • Map ZR/ZL to "slow-down mouse" on Switch if custom controls are off.
  • Add option to misc menu to choose either A or B as OK button on Switch.
  • Add sharp-bilinear-simple scaling routine, and make it the new default.
  • Add point filtering scaling routine.

1.73

  • Fix savestates.

1.72

  • Switch release

Credits

  • Thanks to Cpasjuste for the original port, for jumping in and adding shader support, for making the assembler optimizations work, and for fixing audio playback on suspend/resume in SDL2 for Switch.
  • Thanks to ScHlAuChi for extensive testing, ideas, and for contributing the new larger virtual keyboard images.
  • Thanks to wronghands for the new, better-looking menu font, all the new keyboard styles, and many ideas.
  • Thanks to CrashMidnick for the French virtual keyboard.
  • Thanks to the original authors Chui, john4p, TomB, notaz, Bernd Schneider, Toni Wilen, Pickle, smoku, AnotherGuest, Anonymous engineer, finkel, Lubomyr, pelya and many more.
  • Thanks to my supporters on Patreon: Andyways, Count Duckula, Jesse Harlin, Özgür Karter, Matthew Machnee, Mored4u, Ibrahim Fazel Poor, and RadicalR.

External links

Advertising: