Git Product home page Git Product logo

libretro / dinothawr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from themaister/dinothawr

11.0 8.0 11.0 18.33 MB

Dinothawr is a block pushing puzzle game on slippery surfaces. Our hero is a dinosaur whose friends are trapped in ice. Through puzzles it is your task to free the dinos from their ice prison.

License: Other

Makefile 2.29% Java 2.42% C++ 16.66% GLSL 6.18% C 71.76% Assembly 0.69% Perl 0.01%

dinothawr's Introduction

Dinothawr

Dinothawr is a block pushing puzzle game on slippery surfaces. Our hero is a dinosaur whose friends are trapped in ice. Through puzzles it is your task to free the dinos from their ice prison.

Credits

  • Agnes Heyer (art, level design, some code)
  • Hans-Kristian Arntzen (programming, music, some level design)

Downloads (Android)

Android APK (link, QR)

Downloads (Bundled Windows 32-bit/64-bit)

  • Dinothawr v1.0 (Windows 32-bit) here
  • Dinothawr v1.0 (Windows 64-bit) here

Downloads (Other)

  • Game files (link)
  • Libretro cores (Win32, Win64, Linux 64-bit) (link)

Playing the game in RetroArch

The game itself is a shared library and needs a libretro frontend (e.g. RetroArch) to run. To play Dinothawr, use the right libretro core, and dinothawr.game as a game ROM. An example command line would be:

retroarch -L dinothawr_libretro_linux_x86_64.so dinothawr/dinothawr.game

Controls (gamepad)

Dinothawrs gamepad control are mapped as shown here.

Controls (keyboard)

On PC build of RetroArch, the default keyboard binds are:

  • Z: Push
  • X: Toggle menu
  • S: Reset level
  • Arrow keys: Move around
  • Escape: Exit game

Platforms

Dinothawr supports a large number of platforms. We only provide bundled builds for Android. After release, we expect bundled builds to show up.

libretro/RetroArch

Dinothawr implements the libretro API, and uses e.g. RetroArch as a frontend. On Android, RetroArch is bundled, and is transparent to the user.

Building (Android)

Make sure latest SDKs and NDKs (r9) are installed.

Clone repo

git clone git://github.com/Themaister/Dinothawr.git
cd Dinothawr
export DINOTHAWR_TOP_FOLDER="$(pwd)"

Build native libretro library

cd android/eclipse/jni
ndk-build -j4

Build RetroArch native activity

git clone git://github.com/libretro/RetroArch.git
cd RetroArch
cd android/native/jni
ndk-build -j4

Copy RetroArch libraries to dinothawr

cd ../libs
cp -r armeabi-v7a x86 mips "$DINOTHAWR_TOP_FOLDER/android/eclipse/libs/"

Copy Dinothawr assets

cd "$DINOTHAWR_TOP_FOLDER"
mkdir -p android/eclipse/assets
cp -r dinothawr/* android/eclipse/assets/

Build Java frontend

Open Eclipse and import project from android/eclipse. You should see Dinothawr assets in assets/ folder, and various libraries in libs/. Try running the project on your device, and you should see Dinothawr.apk in android/eclipse/bin/.

Building (Linux, OSX, Windows)

Clone repo

git clone git://github.com/Themaister/Dinothawr.git
cd Dinothawr

Build libretro core

make -j4   # (on OSX, you might need make CC=clang CXX="clang++ -stdlib=libc++")

Run Dinothawr in RetroArch

retroarch -L dinothawr_libretro.so dinothawr/dinothawr.game

Customizing / Hacking

Dinothawr is fairly hackable. dinothawr.game is the game file itself. It is a simple XML file which points to all assets used by the game. Levels are organized in chapters. Levels themselves are created using the Tiled editor. If you want to try making your own levels, make sure you use the "plain XML" format for .tmx files and not the default zlib base64.

dinothawr's People

Contributors

agnesh avatar alcaro avatar bananarama203 avatar eye-scuzzy avatar fr500 avatar gregorr avatar inactive123 avatar jdgleaver avatar jste0 avatar mprobinson avatar robloach avatar sergiobenrocha2 avatar simpletease avatar themaister avatar webgeek1234 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dinothawr's Issues

Core segfaults when closed

Hi there,

This core segfaults badly when closed. It can be either by closing the core, or trying to load another core from the RA menu.

Builds on iOS9, but not iOS10/11 (arm64)

See title.

Error is:

cc -arch arm64 -marm -miphoneos-version-min=8.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.4.sdk -O2 -DNDEBUG -DHAVE_ZLIB -ffast-math -fPIC -I./deps -I./audio -I./deps/pugixml -I./deps/vorbis -I./deps/ogg -I./libretro-common/include -c -o libretro-common/audio/conversion/s16_to_float_neon.o libretro-common/audio/conversion/s16_to_float_neon.c
clang: warning: argument unused during compilation: '-mno-thumb' [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-mno-thumb' [-Wunused-command-line-argument]
<inline asm>:3:3: error: unknown directive
  .arm
  ^
<inline asm>:7:3: error: unknown directive
  .arm
  ^
<inline asm>:12:18: error: unexpected floating point literal
   vmov.f32 q8, #16.0
                 ^
<inline asm>:13:18: error: unexpected floating point literal
   vmov.f32 q9, #0.5
                 ^
<inline asm>:14:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q8
   ^
<inline asm>:15:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q8
   ^
<inline asm>:16:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q9
   ^
<inline asm>:20:14: error: vector register expected
   vld1.f32 {q0-q1}, [r1]!
             ^
<inline asm>:22:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q0, q0, q8
   ^
<inline asm>:23:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q1, q1, q8
   ^
<inline asm>:25:4: error: unrecognized instruction mnemonic, did you mean: fcvt?
   vcvt.s32.f32 q0, q0
   ^
<inline asm>:26:4: error: unrecognized instruction mnemonic, did you mean: fcvt?
   vcvt.s32.f32 q1, q1
   ^
<inline asm>:28:4: error: unrecognized instruction mnemonic, did you mean: movn?
   vqmovn.s32 d4, q0
   ^
<inline asm>:29:4: error: unrecognized instruction mnemonic, did you mean: movn?
   vqmovn.s32 d5, q1
   ^
<inline asm>:31:14: error: vector register expected
   vst1.f32 {d4-d5}, [r0]!
             ^
<inline asm>:34:9: error: invalid operand for instruction
   subs r2, r2, #8
        ^
<inline asm>:37:4: error: unrecognized instruction mnemonic, did you mean: b, bl, br, tbx?
   bx lr
   ^
<inline asm>:3:3: error: unknown directive
  .arm
  ^
<inline asm>:717 errors generated.
:3: error: unknown directive
  .arm
  ^
<inline asm>:13:18: error: unexpected floating point literal
   vmov.f32 q8, #0.25
                 ^
<inline asm>:14:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q8
   ^
<inline asm>:15:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q8
   ^
<inline asm>:16:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q8, q8, q8
   ^
<inline asm>:17:4: error: unrecognized instruction mnemonic, did you mean: add, addp, adds, addv, fadd, madd?
   vadd.f32 q8, q8, q8
   ^
<inline asm>:20:14: error: vector register expected
   vld1.f32 {d6[0]}, [r3]
             ^
<inline asm>:21:23: error: unexpected token in argument list
   vmul.f32 q8, q8, d6[0]
                      ^
<inline asm>:25:14: error: vector register expected
   vld1.s16 {q0}, [r1]!
             ^
<inline asm>:28:4: error: unrecognized instruction mnemonic, did you mean: mov?
   vmovl.s16 q1, d0
   ^
<inline asm>:29:4: error: unrecognized instruction mnemonic, did you mean: mov?
   vmovl.s16 q2, d1
   ^
<inline asm>:32:4: error: unrecognized instruction mnemonic, did you mean: fcvt?
   vcvt.f32.s32 q1, q1
   ^
<inline asm>:33:4: error: unrecognized instruction mnemonic, did you mean: fcvt?
   vcvt.f32.s32 q2, q2
   ^
<inline asm>:35:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q1, q1, q8
   ^
make: *** [libretro-common/audio/conversion/float_to_s16_neon.o] Error 1
make: *** Waiting for unfinished jobs....
<inline asm>:36:4: error: unrecognized instruction mnemonic, did you mean: fmul, mul, pmul?
   vmul.f32 q2, q2, q8
   ^
<inline asm>:38:14: error: vector register expected
   vst1.f32 {q1-q2}, [r0]!
             ^
<inline asm>:41:9: error: invalid operand for instruction
   subs r2, r2, #8
        ^
<inline asm>:44:4: error: unrecognized instruction mnemonic, did you mean: b, bl, br, tbx?
   bx lr
   ^
19 errors generated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.