RELEASE [Release] OpenRCT2 (RollerCoaster Tycoon 2) for Switch

Discussion in 'Switch - Emulation, Homebrew & Software Projects' started by rsn8887, May 6, 2019.


    18,008

    113
    Front-page RELEASE
    Download: https://github.com/rsn8887/openrct2/releases/latest

    Edit: New update v1.04 (see changelog at the bottom). To update from any version to latest, it is enough to just replace the .nro file.

    # OpenRCT2 (RollerCoaster Tycoon 2) port for Switch

    This is my Switch port of OpenRCT2, a re-implementation of RollerCoaster Tycoon 2. A construction and management simulation video game that simulates amusement park management.

    Data files from the original game are required to play this game. _RollerCoaster Tycoon 2_ data files are required to launch the game. Additionally, _RollerCoaster Tycoon 1_ data files are also supported.

    Port by @rsn8887.

    Visit my Patreon:
    https://www.patreon.com/rsn8887

    IMG_2411.

    OpenRCT2_cc. OpenRCT2_bb. OpenRCT2_dd.

    # Thanks

    Thanks to the many many developers who worked on this open source game.

    Thanks to Chris Sawyer for writing the amazing original game.

    Thanks to devkitPro for making Switch homebrew possible.

    Thanks to Milenko for testing and making screenshots.

    Thanks to my supporters on Patreon: Andyways, CountDuckula, Jason Crawford, Greg Gibson, Jesse Harlin, Özgür Karter, Matthew Machnee, Milenko, and RadicalR.

    # Installation

    - Download (see `assets` below), and unzip openrct2_switch.zip and copy the contents over to the `/switch/` folder on your sd card, so that you have a folder `/switch/openrct2` with many folders and files inside.

    - Copy all files and folders from a working *Windows RollerCoaster Tycoon 2* installation to `/switch/openrct2/rct2/` so that you have a files and folders `/switch/openrct2/rct2/rct2.exe`, `/switch/openrct2/rct2/Data/`, `/switch/openrct2/rct2/Landscapes/`, `/switch/openrct2/rct2/ObjData/` and many more files and folders there. For my testing, I used the files from the gog.com version.

    - Optionally, you can also install the *Windows RollerCoaster Tycoon 1* files. Just copy your complete rct1 files to `/switch/openrct2/rct1/`. Then you can select the RCT1 scenarios, and in options you can select to show the rct1 title sequence. For my testing, I used the files from the gog.com version.

    - Note: This game takes quite long to load at first, because it generates a bunch of cache files. Subsequent boots are much faster.

    # Controls

    - Left analog stick = mouse pointer control
    - Right analog stick = scroll the map
    - R = left mouse click
    - L = right mouse click
    - ZR = hold to slow down analog joystick mouse, useful to precisely position the pointer
    - ZL = hold to speed up analog joystick mouse
    - A = right mouse click
    - B = left mouse click
    - Y = shift key, hold and move mouse up/down to build above the ground
    - X = ctrl key, hold and move mouse to build multiple pieces at the same height above ground
    - Dpad up = zoom out (page up key)
    - Dpad down = zoom in (page down key)
    - Dpad left = rotate construction object (z key)
    - Dpad right = rotate camera (enter key)
    - R3 (press right stick in) = open cheat menu (ctrl-alt-c)
    - Hold ZL + dpad left = close topmost window (backspace key)
    - Hold ZL + dpad right = exit construction mode (escape key)
    - Minus = toggle between three touch control modes:
    * Touchpad style drag pointer with finger and tap to click, default:
    * Move a single finger to move the mouse pointer. Use short tap for left click. Hold a single finger while tapping a second finger for right click. Drag with two fingers to drag and drop.
    * Jump to finger without click
    * The pointer jumps to the finger, but the finger doesn't click. Use L/R or A/B to click
    * Jump to finger with tap click
    * The pointer jumps to the finger, and a short tap also generates a left click
    - Plus = bring up on-screen keyboard, useful for entering names, etc.
    * When pressing enter, it first erases existing text and replaces it with new text
    - Physical USB keyboard and mouse are supported. Not all mice work. There's a [mouse compatibility
    chart](https://docs.google.com/spreadsheets/d/1Drbo5-QuSX901MwtOytSMuqRGxeIkq2HELM806I9dj0/edit#gid=0).

    # Current Limitations

    - No network support

    # Building

    ## Dependencies

    - Switch compilation helper scripts
    ```
    sudo -E dkp-pacman -S devkitpro-pkgbuild-helpers
    ```

    - Switch libicu
    ```
    git clone https://github.com/rsn8887/icu
    cd icu
    git checkout switch
    cd ..
    mkdir macos
    mkdir switch
    cd macos
    ../icu/icu4c/source/runConfigureICU MacOSX
    make -j12
    cd ../switch
    source $DEVKITPRO/switchvars.sh
    ../icu/icu4c/source/configure --host aarch64-none-elf --prefix $DEVKITPRO/portlibs/switch/ --disable-shared --enable-static --disable-samples --disable-tests --with-cross-build=$PWD/../macos
    cp ../icu/icu4c/source/config/mh-linux ../icu/icu4c/source/config/mh-unknown
    make -j12
    sudo -E make install
    ```

    - Switch libzip
    ```
    git clone https://github.com/rsn8887/libzip
    cd libzip
    git checkout switch
    cd ..
    mkdir buildswitch
    cd buildswitch
    source $DEVKITPRO/switchvars.sh
    cmake ../libzip \
    -DENABLE_COMMONCRYPTO=OFF \
    -DENABLE_GNUTLS=OFF \
    -DENABLE_MBEDTLS=OFF \
    -DENABLE_OPENSSL=OFF \
    -DENABLE_WINDOWS_CRYPTO=OFF \
    -DBUILD_TOOLS=OFF \
    -DBUILD_REGRESS=OFF \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_DOC=OFF \
    -DCMAKE_TOOLCHAIN_FILE=$DEVKITPRO/switch.cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=$PORTLIBS_PREFIX \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DCMAKE_C_FLAGS="$CFLAGS $CPPFLAGS" \
    -DCMAKE_CXX_FLAGS="CFLAGS -fno-exceptions -fno-rtti"
    make -j12 install
    ```

    - Switch libspeexdsp
    ```
    git clone https://github.com/rsn8887/speexdsp
    #might use libtoolize instead of glibtoolize if not on mac
    glibtoolize
    aclocal
    autoconf
    autoheader
    automake --add-missing
    source $DEVKITPRO/switchvars.sh
    ./configure --host aarch64-none-elf --prefix $DEVKITPRO/portlibs/switch/ --disable-shared --enable-static
    sudo -E make install
    ```

    ## Main app

    - Switch openRCT2
    ```
    git clone https://github.com/rsn8887/openrct2
    cd openRCT2
    git checkout switch
    cd ..
    mkdir buildswitch
    cd buildswitch
    source $DEVKITPRO/switchvars.sh
    cmake ../openrct2 \
    -DSWITCH_BUILD=ON \
    -DCMAKE_BUILD_TYPE=RELEASE
    make -j12 openrct2_switch.zip
    ```

    # Changelog
    v1.04

    - Fix right mouse click input
    - Map object rotation to dpad left and camera rotation to dpad right
    - Map backspace to zl+dpad left and escape to zl+dpad right to make room for new rotation mapping

    v1.03

    - Map shift, ctrl, backspace, and escape keys, useful to build above ground and quickly close windows.
    - Map cheat menu hotkey, now works by pressing the right stick in.
    - Make joystick pointer speed truly independent of fps. It now moves at constant speed even if the frame rate is low.
    - The filtering options now work as expected. In docked mode, `linear` gives a slightly blurry image, and `sharp nearest neighbor` gives perfectly sharp pixels.
    - General image quality improvements in both docked and handheld mode. The internal rendering now dynamically switches resolution between 1080p and 720p instead of always rendering at 720p. Also, the mouse pointer looks a bit sharper now in handheld mode.
    - The window scaling option now works and can be used to blow up or shrink down the whole game screen, including the user interface.
    - Different game resolutions should also work in principle now. This involves editing the window_width and window_height entries in `/switch/home/openrct2/config.ini`. Only 16x9 ratios will work correctly. I think the default choice of 960x540 looks the best.

    v1.02

    - Fix mouse cursor not turning into a hand when hovering over hotspots in the park
    - Reduce joystick pointer speed slightly for easier control in-game.

    v1.01

    - First release on Switch
     
    Discussion (113 replies)
  1. Cubuss

    Cubuss GBAtemp Fan

    Member
    8
    Aug 4, 2017
    Netherlands
    High Quality Shitposter
    yeeeeeeeeeeeeeees thank you finaly!

    The waiting was worth it
     
  2. justinbug2

    justinbug2 GBAtemp Advanced Fan

    Member
    5
    Jun 9, 2015
    United States
    Nice
     
    mhayquel and coppertj like this.
  3. KingBlank

    KingBlank King of Nothing

    Member
    6
    Sep 17, 2008
    New Zealand
    New Zealand
    Awesome, I'll try this out
     
  4. RattletraPM

    RattletraPM GBATemp's official 蒸気イーブイ

    pip Reporter
    13
    Jan 18, 2017
    Italy
    Shinjuku Station
    Oh, my childhood.
    Thanks you for making this port!
     
  5. Idontknowwhattoputhere

    Idontknowwhattoputhere See i would put something here if i knew what to

    Member
    3
    Jan 19, 2019
    United Kingdom
    FUCK YES!
    THANK YOU THANK YOU!!!!!
     
  6. KirovAir

    KirovAir Dutch Alcoholic Programmer

    Member
    5
    Dec 7, 2006
    Netherlands
    Netherlands
    Never, ever would have thought this would be possible. Unreal.

    Think about it: This was originally written in ASSEMBLY 20 years ago. My programming classes had this game as a prime example of awesome and efficient programming achievements for the x86 architecture back then.
    Now, every single line has been reverse engineered over the years and it has been ported over to a portable device with a completely different architecture. Not emulation, no extra OS, just completely ported with added control support. I know there are evenly (and way more) astonishing projects and devs (mupen64Plus-NEXT, retroarch itself etc.) but this port combined with nostalgia just blows my mind.
     
    Last edited by KirovAir, May 6, 2019
  7. Ninn

    Ninn GBAtemp Regular

    Member
    5
    Dec 1, 2006
    Wow, nice! Never played this game, but i always wanted to try it.

    Now its the time to do just that.:) Good job man!
     
    Last edited by Ninn, May 6, 2019
  8. rodan100919

    rodan100919 Member

    Newcomer
    3
    Aug 2, 2013
    United States
    Does this support RCT1 assets as well?
     
  9. Cubuss

    Cubuss GBAtemp Fan

    Member
    8
    Aug 4, 2017
    Netherlands
    High Quality Shitposter
    lordelan likes this.
  10. Localhorst86

    Localhorst86 GBAtemp Addict

    Member
    9
    Jul 17, 2014
    Germany
    Nintendo works for my dad
    Noice
     
  11. Mr. Looigi

    Mr. Looigi UwU

    Member
    6
    Aug 8, 2018
    United States
    Rec Center
    What is this series? I know it’s a tycoon and I think it was on the nes somehow.
     
  12. rsn8887
    OP

    rsn8887 GBAtemp Advanced Fan

    Member
    9
    Oct 8, 2015
    United States
    It should work with rct1 assets. Milenko tested that. Try copying your rct1 assets into the folder /switch/openrct2/rct1/

    I heard that many scenarios from rct1 are too easy or play wrong in the rct2 engine, since the gameplay is a bit different. But in principle it should work.

    — Posts automatically merged - Please don't double post! —

    It is a kind of management game with insane level of detail. You can decide the color of single ride-wagons, and every little person has a name etc. Think of it like Bullfrog's Theme Park but on steroids.
     
    Asia81, DSwizzy and Mr. Looigi like this.
  13. limpbiz411

    limpbiz411 GBAtemp Regular

    Member
    6
    Oct 12, 2007
    United States
    amazing, ive been playing open rct2 all week and this this comes out. lol

    anyway to copy over my parks and tracks?
     
    Last edited by limpbiz411, May 6, 2019
  14. Essasetic

    Essasetic Your local TX Fanboy

    Member
    9
    Jun 16, 2018
    United Kingdom
    Wow, I checked your twitter multiple times today. The progress you made on this is insane! Great job mate!
     
    lordelan likes this.
  15. rodan100919

    rodan100919 Member

    Newcomer
    3
    Aug 2, 2013
    United States
    Made a forwarder here for anyone who's interested.
     
    jacksprat1990, JABY, lordelan and 4 others like this.
  16. rsn8887
    OP

    rsn8887 GBAtemp Advanced Fan

    Member
    9
    Oct 8, 2015
    United States
    Should be compatible. There's a folder called `/switch/openrct2/home` for such files already. It is also used for the cache files the game generates on first boot, and the `config.ini` file that is generated etc..
     
    limpbiz411 likes this.
  17. Cubuss

    Cubuss GBAtemp Fan

    Member
    8
    Aug 4, 2017
    Netherlands
    High Quality Shitposter
    Tried that with roller coaster tycoon Deluxe but it didn't work,
    It stays black screen for a while when opening the nro but then returns to homebrew menu:
     
  18. rsn8887
    OP

    rsn8887 GBAtemp Advanced Fan

    Member
    9
    Oct 8, 2015
    United States
    Hmm, just a guess, but I think you always need all the rct2 files. I think There's no way around the game will try to load the rct2 files and fail if it cannot find them.

    But you can also, in addition put rct1 files I think. Milenko was the one who tested that.
     
    Last edited by rsn8887, May 6, 2019
    Cubuss likes this.
  19. nikeymikey

    nikeymikey This is now a Spiderman thread.........

    Member
    6
    Nov 19, 2008
    This is awesome!! Spent sooooo long play RCT2 back in the day. Is there any way to access the openrct2 cheats window??

    The OSK doesnt seem to be working so i guess the cheat window cant be accessed at the moment!! On another note yes the RCT1 + expansion pack files do work :)
     
    Last edited by nikeymikey, May 6, 2019
Loading...