Difference between pages "Sharp X1 emulators" and "DuckStation"

From Emulation General Wiki
(Difference between pages)
Jump to navigation Jump to search
(Emulators)
(Tags: Mobile edit, Mobile web edit)
 
(Categories replaced)
 
Line 1: Line 1:
{{Infobox console
+
{{stub}}
|title = Sharp X1
+
{{Infobox emulator
|logo = X1twin.jpg
+
|logo = DuckStation.png
|developer = Sharp Corporation
+
|logowidth = 80px
|type = [[:Category:Computers|Home computer]]
+
|screenshot = DuckStation-screenshot-qt.png
|generation =
+
|screenshotwidth = 300px
|release = 1982
+
|screenshotcaption = The Qt frontend on Windows 10.
|discontinued = 1988
+
|active = Yes
|predecessor = Sharp MZ series
+
|platform = [[Emulators on PC|Windows]]<br/>Linux<br/>[[Emulators on macOS|macOS]]<br/>[[Emulators on Android OS|Android]]
|successor = [[Sharp X68000 emulators|Sharp X68000]]
+
|architecture = x86_64, aarch64, ARMv7
|emulated = {{✓}}
+
|target = [[PlayStation emulators|Sony PlayStation]]
 +
|developer = stenzek [https://github.com/stenzek/duckstation/graphs/contributors et al.]
 +
|source = [https://github.com/stenzek/duckstation GitHub]
 +
|license = GNU GPLv3
 +
|bios = [[Emulator_Files#PlayStation|Required]]
 
}}
 
}}
The '''[[wikipedia:X1 (computer)|X1]]''' <small>(<span lang="ja">エックスワン</span> ''Ekkusu Wan'')</small> is a Japan-only line of home computers created by [[wikipedia:Sharp_Corporation|Sharp]]’s television division. The first model, simply named Sharp X1, was released in November 1982. These computers doubled as TV sets and included many functionalities that made use of this combination, such as the ability to superimpose text to the TV image and, in later models, even to digitally record live television, albeit in a compressed 8-colour video format. Despite being powerful for its time, the [[NEC PC-8800 series]] outsold it. The last additions to the X1 line, the X1 Twin, also included a built-in [[PC Engine (TurboGrafx-16) emulators|NEC PC Engine]].
 
  
At the time, Sharp was following a ''Clean Computer'' philosophy: this means that, in order to leave the user in control of the RAM, the computer shipped only with an IPL and BIOS. When necessary, operating systems must be loaded using external storage devices, such as cassettes and, in all but the first model, floppy disks.
+
'''DuckStation''' is a free and open-source [[PlayStation emulators|PlayStation]] emulator developed primarily by stenzek. It features PGXP, upscaling, texture filtering, overclocking, advanced "cheat" code support, CHD support, and a graphical interface.
  
The whole X1 line runs on a Sharp Z80 A CPU at 4 MHz and 64 kB of RAM. The X1 Turbo, released in October 1984, featured higher resolution and more VRAM. The X1 Turbo Z featured a 4096-colour mode, built-in FM synthesizer, video capturing/editing capabilities and (in the Turbo ZII and Turbo ZIII models) 128 kB of RAM. Needless to say, the X1 Twin also featured a HuCard slot.
+
==Downloads==
 
+
{| cellpadding="4"
==Emulators==
 
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|X1
 
! scope="col"|<abbr title="X1 Turbo">X1T</abbr>
 
! scope="col"|<abbr title="X1 Turbo Z">X1TZ</abbr>
 
! scope="col"|<abbr title="X1 Twin">X1Tw</abbr>
 
! scope="col"|<abbr title="Free/Libre and Open-Source Software">FLOSS</abbr>
 
! scope="col"|Active
 
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
! colspan="10"|PC / x86
 
|-
 
|eX1
 
|align=left|{{Icon|Windows}}
 
|[http://takeda-toshiya.my.coocan.jp/x1twin/index.html {{eX1Ver}}]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|?
 
|{{✓}}
 
|{{✓}}
 
|-
 
|[[MAME]]
 
|align=left|{{Icon|Windows|Linux|macOS|FreeBSD}}
 
|[http://www.mamedev.org/release.html {{MAMEVer}}]
 
|{{✓}}
 
|{{✓}}
 
|{{~}}
 
|{{~}}
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|-
 
|Xmilx
 
|align=left|{{Icon|Windows}}
 
|[http://rednow.php.xdomain.jp/ 3]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|?
 
|{{✓}}
 
|{{✓}}
 
|-
 
|X millennium ikaTune
 
|align=left|{{Icon|Windows}}
 
|[http://retropc.net/ryu/ika/xmil_ika.shtml 0.26 ikaR5]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|?
 
|?
 
|{{✓}}
 
|-
 
|X millennium T-tune + ikaTune
 
|align=left|{{Icon|Windows}}
 
|[http://retropc.net/ryu/ika/xmil_ika.shtml 0.26 tt1.43 ikaR5]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|?
 
|?
 
|{{✗}}
 
|-
 
|X millennium T-Tune
 
|align=left|{{Icon|Windows}}
 
|[http://www.x1center.org/emu.html 0.26 t-tune step 1.43]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|X millennium fmgen
 
|align=left|{{Icon|Windows}}
 
|17/08/18
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|X millennium
 
|align=left|{{Icon|Windows|macOS}}
 
|[http://web.archive.org/web/20190213063333if_/http://www.turboz.to:80/ Windows 0.60a]<br>[http://www.retropc.net/yui/xmil.html Mac 05/02/14 test]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|WinX1 ~ikafumi~
 
|align=left|{{Icon|Windows}}
 
|[http://retropc.net/ryu/ika/xmil_ika.shtml 0.10+5.1]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|?
 
|{{✗}}
 
|-
 
|Xmil106RS
 
|align=left|{{Icon|Windows}}
 
|[https://web.archive.org/web/20130219152410/http://www.geocities.jp/xmil106/Xmil106RS.zip 1.90]
 
|{{✓}}
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✓}}
 
|-
 
|X1EMx
 
|align=left|{{Icon|macOS}}
 
|[http://web.archive.org/web/20071128152157if_/http://retropc.net:80/tk800/X1EMx/index.html 0.5.4 beta]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{~}}
 
|-
 
|WinX1
 
|align=left|{{Icon|Windows}}
 
|[http://web.archive.org/web/20000815235344if_/http://www.retropc.net/kenjo/winx1.html 0.08]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|X1EMU
 
|align=left|{{Icon|DOS}}
 
|[http://web.archive.org/web/20190319212516if_/http://www.geocities.co.jp/SiliconValley-SanJose/3949/ 0.5]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|X1 Emulator for X68000
 
|align=left|{{Icon|x68k}}
 
|[http://gorry.haun.org/x1/#X1EMULATOR 1.00 rel3]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
! colspan="10"|Mobile
 
|-
 
|X millenniumOne
 
|align=left|{{Icon|PalmOS}}
 
|[http://web.archive.org/web/20071128152202if_/http://retropc.net:80/tk800/xmilOne/index.html 2005/2/28]
 
|?
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{~}}
 
 
|-
 
|-
|eX1twin
+
|align=center|{{Icon|Win|Lin|macOS}}
|align=left|{{Icon|WinMobile}}
+
|'''[https://github.com/stenzek/duckstation/releases Latest Development Builds]'''<br/><small>MacOS isn't officially supported and builds are not released for it. Must be compiled from source.</small>
|2009/5/17
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{~}}
 
 
|-
 
|-
|X millennium
+
|colspan="2"|<hr/>
|align=left|{{Icon|WinMobile}}
 
|[http://www.retropc.net/yui/xmil.html 05/02/14 test]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
 
|-
 
|-
! colspan="10"|Console
+
|align=center|{{Icon|APK}}
|-
+
|[https://play.google.com/store/apps/details?id=com.github.stenzek.duckstation Play Store]<br/><small>Free</small>
|X millennium for Dreamcast
 
|align=left|{{Icon|DC}}
 
|[http://turboz.sourceforge.net/ 0.13.05.12]
 
|{{✓}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
|-
 
|X millennium Advance
 
|align=left|{{Icon|GBA}}
 
|[http://web.archive.org/web/20140428021512if_/http://www.turboz.to/ ver0.20]
 
|{{✗}}
 
|{{✓}}
 
|{{✗}}
 
|{{✗}}
 
|?
 
|{{✗}}
 
|{{✗}}
 
 
|}
 
|}
  
===Comparisons===
+
==Overview==
;eX1
+
DuckStation is focused on playability, speed, and long-term maintainability. The goal of the emulator is to be as accurate as possible while maintaining performance on a broad range of devices. "Hack" options are discouraged, and the default configuration should support all playable games with only some of the enhancements having compatibility issues. 64-bit CPUs are required for recompiler support for maximum performance.  
:A very recent emulator that progressed very fast. It was the first emulator to support the X1 Twin, and is currently the best one at it. It is the only emulator to receive frequent updates up to this day, and also the only one (besides MAME) to have documentation in English. The X1 Twin core used to have an official Windows CE port, which was discontinued in early 2010. Despite referencing X millennium T-tune code, it does not seem to be a fork. The PC Engine section of its X1 Twin core is based off [[Ootake]].
 
 
 
;[[MAME]]
 
:Inherited X1 support from [[MESS]]. Its X1 Turbo Z and X1 Twin cores are listed as not working as of November 2019. Despite this, the X1 Turbo core is quite decent.
 
 
 
;Xmilx
 
:One of the numerous forks of X millennium 0.26 t-tune step 1.43, Xmilx’s main selling points are Direct3D support, better window scaling capabilities and added compatibility with [[Kega Fusion]] RPI screen filters. As of version 3, the timing issues seem to be resolved, making it at the very least a decent emulator.
 
 
 
;X millennium T-tune
 
:In the beginning of the 10-year span during which X millennium stopped being updated, this fork was the one being most updated and, as a result, the fork with best compatibility. Because of this, it spawned lots of forks when the developer announced that there would be no more updates. Despite many improvements to sound and FM synthesizer emulation, as well as added compatibility with X1 Turbo Z, this fork suffers of terrible slowdown, at least under Windows 10. Even if the emulation is cranked to 12 MHz − threefold overclocked −, it still runs much slower than it should. If No Wait is enabled, however, it flies to the opposite direction and runs humorously fast.
 
 
 
;X millennium T-tune (STC 256-colour mod)
 
:This is a one-off mod of the last version of X millennium T-tune made exclusively to enhance the experience of playing Star Cruiser. This role-playing first-person space shooter uses polygonal 3D graphics similar to Star Fox, and handles colour in a peculiar way: it calculates internally 256-colour graphics and outputs them in 8-colour with dithering. This mod adds a Star Cruiser 256-colour video mode that bypasses the dithering calculation and shows the game’s graphics in all its 8-bit glory. It also adds some other enhancements, such as mapping Star Cruiser cheats to unused keys. The full documentation of the changes can be found on its [http://web.archive.org/web/20090924023008if_/http://sapporo.cool.ne.jp/x1g/download.html original website], while the binary has been kindly archived by the developer of the original X millennium T-tune when the mod’s dev’s website went down − it can be found [http://www.x1center.org/emu.html here].
 
 
 
;X millennium T-tune + ikaTune
 
:The most widely known and used fork of T-tune after its demise. It received many important and useful new features and improvements, such as bugfixes regarding keyboard and CPU emulation, savestates, better memory handling, a revamped configuration screen and many changes to the sound emulation: to name a few, the use of NRTDRV for sound handling and the ability of saving sound output to a WAV file. For some of the new sound capabilities to work, it is necessary to put two files together with the emulator to enable ROMEO support: pcidebug.dll and either pcidebug.sys (if running on Windows NT) or pcidbg95.vxd (if running on DOS-based Windows). These files can be found [http://www.otto.to/~kasiwano/pdbg10.lzh here]. Sadly, this fork did not fix the slowdown issue present in T-tune. This fork was last updated in 2009 and pulled from the website in 2013, together with the other two ika forks. However, in October 2019, they were put back online, which might mean a possible revival of the ikaTune family and new updates under the horizon. It might also mean that the dev had a nostalgia trip and decided to put all back online with no intention of touching it again, too.
 
 
 
;X millennium ikaTune
 
:A fork of plain X millennium with exactly the same changes to the original as T-tune + ikaTune, made by the same person. Savestates are compatible across all three ika forks. Fortunately, this one added a working adjustable throttle to the clock speed that works properly, which means the emulation speed is accurate.
 
 
 
;WinX1 ~ikafumi~
 
:The only known fork of WinX1 includes some changes present in the ikaTune releases − not all, hence the ika''fumi'' (ika-flavoured). This one also includes savestates and ROMEO support, but can’t export the sound output to WAV, for example. It also doesn’t fix the hideously fast emulation speed present in the original WinX1. However, it is, according to the author, useful to emulate Lagrange L-2, as that game doesn’t play well with X millennium.
 
 
 
;X millennium fmgen
 
:A fork of X millennium version 05/02/14 test that uses fmgen to emulate audio. By far, the worst documented emulator in this page. In order for its very gimmick to work, the [http://nenecchi.kirara.st/php/dl.php?f=fmdllset.7z fmgen DLL set] must be placed together with the emulator. fmgen options are controlled through the .ini file, in a very poorly documented manner available in the skimpy Japanese-language readme that comes with the emulator. At one point, the same dev also offered a fork of eX1 named eX1 System Revision, which naturally also required their fmgen DLL set, among other files. Unlike the original eX1, it did not support X1 Twin. Despite there being no trace of it left on their website, Emu-France dutifully archived a copy of the last release, dated January 1st, 2018.
 
 
 
;Xmil106RS
 
:A rather excellent fork of the last version of T-tune that manages to not only resolve the timing issues, but also add a lot of improvements and new stuff, such as savestates, integration with the host OS’s clipboard and the ability to create new disk images. Like the above fork, it uses fmgen as the sound engine, yet it is contained in the executable, no extra DLLs or external config files needed. The default configuration may cause the sound to be delayed; if that’s the case, change the sound buffer to 100 ms in Emulate > Configure. All of its changes are documented in the rather lengthy included readme. This fork stopped being updated in 2012, yet it still stands as one of the best Sharp X1 emulators. The last version ever released can be downloaded [http://web.archive.org/web/20130219152410if_/http://www.geocities.jp/xmil106/Xmil106RS.zip here].
 
 
 
;X1EMx
 
:A rather unusual port of X millennium for macOS from when it was still named Mac OS X. It is forked from the original X millennium, most likely the beta macOS version; it uses fmgen and includes code from the last version of T-tune, among other assorted sources. Curiously, it also referenced the original X1EMU code and T-tune + ikaTune release 2’s functions. Unfortunately for Mac users, it’s been dead for quite some time.
 
 
 
;X millennium
 
:Born in the late 1990s as X1R, a real-time mode fork of X1EMU, X millennium was the first Sharp X1 emulator for Windows, and unarguably the most influential to date. It was updated until version 0.26d’s release in 2005, when development halted for no apparent reason. Suddenly, in December 2015, a little over ten years of silence, version 0.60a was released, bringing emulation enhancements ported over from [[NEC PC-9800 series|Neko Project II]] among other small compatibility improvements. The gap between the last two releases was so wide, however, that version 0.60a all but flew under the radar, impacting the existing forks by little to nothing. In early 2019, the developer’s domain name expired and was not renewed, making a new release highly unlikely − at least before 2025, that is.
 
:In what is likely a problem inherited from X1EMU, X millennium suffers from ridiculously fast unbridled clockspeed. This is a problem that hasn’t been solved even in 0.60a.
 
 
 
;WinX1
 
:An independent emulator, born in 1999 and defunct in 2000. Differently from most other emulators, it is entirely in Japanese. Despite apparently not being a fork of anything, the author did refer to the source codes of X1EMU, X1R/X millennium and MAME. Rumours around the existence of versions 0.09 and 0.10 do float, as WinX1 ~ikafumi~ is said to be based off WinX1 0.10, yet those seem to be vaporware.
 
 
 
;X1EMU
 
:The mother of all Sharp X1 emulators. First released in January 1999 and last updated in July 1999, X1EMU is designed to be compatible both with [[Intel CPUs|IBM-PCs]] and [[NEC PC-9800 series|PC-98s]] running MS-DOS. The emulator runs in DOS protected mode, as such, it needs a copy of DOS4GW.EXE to sit in the same folder as it. Unlike most of its offspring, it is entirely in Japanese. In late-1990s machines, it might not exhibit this issue, yet in modern computers, its emulation is ridiculously fast, as there seems to be no programmed limitation on the clock speed.
 
 
 
;X1 Emulator for X68000
 
:Probably the first truly functional Sharp X1 emulator to ever be coded, and the first to be open-source. It was first released through a BBS in ''1993'', when the Sharp X68000 was still on shelves all around Japan. In the readme, the original coder mentions an earlier payware he used as a reference simply named “X1 Emulator”, which was barely usable and doesn’t seem to be archived online. X1 Emulator for X68000 is only able to run at a maximum of 31 kHZ, and is incompatible with the D88 image format, accepting only 2D files. It is hideously outdated and pretty much useless nowadays for anyone who doesn’t own a Sharp X68000, yet it is an important footnote on Sharp X1 emulation history. After its initial release, it was picked up by another developer and received small updates until 1999 (!). Curiously, it has some functions that other emulators wouldn’t pick up on until over one decade later, such as having four emulated floppy drives, the option to change clock speed and not requiring ROM dumps to work. Its configurations are stored in the CONFIG.X1 file; for usage help, use the -? switch on the command line.
 
  
;X millenniumOne
+
DuckStation was used as a testing ground for code that would be added to [[Dolphin]].<ref>JMC47, Maylmilae. [https://dolphin-emu.org/blog/2020/02/07/dolphin-progress-report-dec-2019-and-jan-2020/#50-11524-improve-frame-pacing-by-manually-inserting-duplicate-frames-by-stenzek Dolphin Progress Report]. § ''5.0-11524 - Improve Frame Pacing by Manually Inserting Duplicate Frames by Stenzek''. "As a proof of concept, Stenzek used his Playstation 1 emulator, Duckstation to test a frame pacing solution that involved padding 30 FPS games."</ref> stenzek has even said the UI was pulled directly from Dolphin, since it was "designed in conjunction with actual UI/UX people".<ref>[https://old.reddit.com/r/emulation/comments/jjuhcf/for_playstation_1_emulation_fans_i_made_a_very/gagvsnf/?context=3 stenzek] on Reddit. "Yep it is heavily influenced by Dolphin. I'm terrible at UI/UX design so I borrowed Dolphin's, since it's been designed in conjunction with actual UI/UX people."</ref>
:A port of X millennium to PalmOS 5. Apparently, it can only emulate the X1 Turbo. It has been confirmed to work on the T|T3, Zire72, T|T5 and Treo65 PDAs.
 
  
;X millennium for Dreamcast
+
The Qt frontend includes an automatic update checker. Builds downloaded after 2020/08/07 will automatically check for updates each time the emulator starts, this can be disabled in Settings. Alternatively, you can force an update check by clicking Help->Check for Updates.
:An independent little-known fork of X millennium that sees no updates since 2013. Offers options both for burning to a CD-R and loading from an SD card.
 
  
;X millennium Advance
+
==References==
:An official port of X millennium to the Game Boy Advance, of all platforms, first published in 2004. In regards of quality, it is as good as X millennium goes, yet it is understandably very stripped down: there is no keyboard support, meaning that only games that are controlled with a joystick will work, and it emulates the X1 Turbo only. Oddly, the font ROM files must be named in the format fontxxxx.x1 instead of the usual FNTxxxx.X1 in order for it to work.
+
{{Reflist}}
  
===ROM dumps===
+
==External links==
Most Sharp X1 emulators require ROM dumps to work. If the emulator you’ve chosen either returns an error at start or fails to boot, place the ROM files present in [http://blackdiamond.co.za/incomp/x1roms.zip this archive] in the emulator’s folder.
+
* [https://docs.google.com/spreadsheets/d/1H66MxViRjjE5f8hOl5RQmF5woS1murio2dsLn14kEqo/edit#gid=0 Compatibility list]
  
[[Category:Computers]]
+
[[Category:Emulators‎]]
 +
[[Category:Console emulators]]
 +
[[Category:Home console emulators]]
 +
[[Category:PlayStation emulators‎]]
 +
[[Category:Windows emulation software]]
 +
[[Category:Linux emulation software]]
 +
[[Category:Android emulation software]]

Revision as of 03:42, 14 October 2021

DuckStation
DuckStation.png
DuckStation-screenshot-qt.png
The Qt frontend on Windows 10.
Developer(s) stenzek et al.
Latest version N/A
Active Yes
Platform(s) Windows
Linux
macOS
Android
Architecture(s) x86_64, aarch64, ARMv7
Emulates Sony PlayStation
License GNU GPLv3
Source code GitHub
BIOS/Keys Required

DuckStation is a free and open-source PlayStation emulator developed primarily by stenzek. It features PGXP, upscaling, texture filtering, overclocking, advanced "cheat" code support, CHD support, and a graphical interface.

Downloads

Windows Linux macOS Latest Development Builds
MacOS isn't officially supported and builds are not released for it. Must be compiled from source.

Android Play Store
Free

Overview

DuckStation is focused on playability, speed, and long-term maintainability. The goal of the emulator is to be as accurate as possible while maintaining performance on a broad range of devices. "Hack" options are discouraged, and the default configuration should support all playable games with only some of the enhancements having compatibility issues. 64-bit CPUs are required for recompiler support for maximum performance.

DuckStation was used as a testing ground for code that would be added to Dolphin.[1] stenzek has even said the UI was pulled directly from Dolphin, since it was "designed in conjunction with actual UI/UX people".[2]

The Qt frontend includes an automatic update checker. Builds downloaded after 2020/08/07 will automatically check for updates each time the emulator starts, this can be disabled in Settings. Alternatively, you can force an update check by clicking Help->Check for Updates.

References

  1. JMC47, Maylmilae. Dolphin Progress Report. § 5.0-11524 - Improve Frame Pacing by Manually Inserting Duplicate Frames by Stenzek. "As a proof of concept, Stenzek used his Playstation 1 emulator, Duckstation to test a frame pacing solution that involved padding 30 FPS games."
  2. stenzek on Reddit. "Yep it is heavily influenced by Dolphin. I'm terrible at UI/UX design so I borrowed Dolphin's, since it's been designed in conjunction with actual UI/UX people."

External links