Coder Social home page Coder Social logo

dbeef / spelunky-psp Goto Github PK

View Code? Open in Web Editor NEW
128.0 8.0 10.0 102.65 MB

Spelunky remake for Sony PSP.

License: Other

CMake 0.09% C++ 99.43% Shell 0.01% C 0.07% Dockerfile 0.01% PowerShell 0.01% Java 0.39%
psp homebrew cpp opengl cross-platform game retro

spelunky-psp's Introduction

~/interests ls
cmake  computergraphics  cpp  crossplatform  ctf  gamedev  linux  retrocomputing  tmux  vim  zsh

spelunky-psp's People

Contributors

bedzior avatar dbeef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spelunky-psp's Issues

Building for PSP failes upon linking libSDL_mixed

I'm trying to usepspdev/pspdev:latest docker image to build the project, this includes the psp toolchain required in the building instructions. The image, along with the psp toolchain is based upon alpine linux, however I get linking errors when calling ./scripts/build-psp.sh.

[100%] Linking CXX executable Spelunky_PSP
/usr/local/pspdev/lib/gcc/psp/13.2.0/../../../../psp/bin/ld: /usr/local/pspdev/psp/lib/libSDL_mixer.a(music_cmd.o): in function `MusicCMD_Start':
(.text+0x23c): undefined reference to `sigprocmask'
/usr/local/pspdev/lib/gcc/psp/13.2.0/../../../../psp/bin/ld: /usr/local/pspdev/psp/lib/libSDL_mixer.a(music_cmd.o): in function `MusicCMD_Stop':
(.text+0x2e0): undefined reference to `waitpid'
/usr/local/pspdev/lib/gcc/psp/13.2.0/../../../../psp/bin/ld: /usr/local/pspdev/psp/lib/libSDL_mixer.a(music_cmd.o): in function `MusicCMD_Active':
(.text+0x370): undefined reference to `waitpid'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/Spelunky_PSP.dir/build.make:121: Spelunky_PSP] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:501: CMakeFiles/Spelunky_PSP.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

It looks like alpine doesn't define sigprocmask, waitpid functions used in libSDL_mixer. What can I do with this and how this is supposed to be built? I have no idea, since switching to any other linux distributive would be a very time-consuming task as it requires to recursively modify all the images used in the pspdev build.

Tutorial area?

Hi, on PSP version, the start screen shows a tutorial area but I can’t access it.

Spawn location should be safe

Before a character takes a single step, they should not be attacked by mobs or traps.
I got a bat and a skeleton on me right off the bat.

Screen Shot 2021-12-05 at 13 26 55

Whip hitbox

I was able to whip a bat behind my back and a spider that was falling on me from the top (in the second case, I was standing half a tile away from spider's tile). IIRC, it's not possible in the original.
I might be biased, though, as I play a lot of HD recently.

Display a level seed

Jupiter Hell does a great diagnostic thing: they have a deterministic level generator, which depends on a single random seed.
Thus, in order to report a level generation problem, one only has to tell the level name and its seed number.

Building gets stuck while compiling AudioBank.cpp (Linux aarch64)

I'm trying to build Spelunky-PSP on Linux aarch64
My OS is Fedora 34 AArch64
My CPU is RK3399 (6 cores ARM 64 bits) and have 4 GB of RAM

I have followed the instructions, running first ./scripts/config-linux.sh, and then ./scripts/build-linux.sh

Building process starts fast, but then gets stuck on 20%, after:

[ 20%] Linking CXX static library libCollisions.a
[ 20%] Built target Collisions

It stays there for hours without making any progress. One of the CPU cores stays working at 100% while the other ones are not doing any hard work.

On the system monitor I see the process cc1plus (gcc c++ compiler?) is the one using 100% of one core and 1.3 GB of RAM. After examining it's command line I see it's trying to compile src/audio/src/AudioBank.cpp. When viewing it's opened files, the last one is 'src/audio/include/generated/title.wav.hpp', which is a 13MB source file containing raw data in the form of a char array.

It has been there by 5 hours without making any progress.

Maybe 13 MB is too heavy for being parsed and compiled by g++? Is there any way to import the WAV binary files without compiling them as sources? I know in some ASM dialects there is an incbin command which just import a a binary raw file, but I don't know if c++ has something similar.

Captura de pantalla de 2021-07-24 13-05-14

SDL2 desktop port

This project is such a great news, thank you for all your work!
I looked into building it on Mac. SDL1 is holding me back, as it is known to be broken on the latest MacOS.
SDL2 would be great to have.

PSP issues

I ran the game on my PSP 1000. Here are some issues I had, maybe you will find it useful to know about them:

  • Music doesn't loop
  • Can't throw items upwards (probably because the same input is for opening chests)
  • There is no way of cycling through items afaik, so they can't be put away (once you take out a bomb/rope, you have to throw it)
  • A chest glitched into a ceiling when being put down; they generally don't have gravity when put down
  • I also had the whole console reboot after putting it to sleep with the game running
  • Taking the golden idol didn't trigger the boulder trap
  • I was able to blow up a part of the menu 😝

Input documentation would be nice, I wrote down what I was able to figure out:

  • Dpad to move
  • Circle to crouch (why isn't Dpad down used for this?)
  • Hold L to sprint
  • R is action (also whip or throw item in hand)
  • Square to equip a rope
  • Triangle to equip a bomb
    Usual Spelunky input combos apply (e.g. crouch+action to pick up items).

Asides from that, amazing job, it's very nice to have this game on a PSP, and in such a small file size too 😁

Freeze in damage resolution

Sorry, cannot post a text call stack.
This was a complicated situation involving a bat, a skeleton and a bomb.

Screen Shot 2021-12-05 at 13 24 55

Android: cropped and no controls

Screenshot_2023-08-09-17-17-31-608_lol dbeef spelunky_psp

And controls don't work (no touch controls visible, no Bluetooth gamepad response).

Phone Poco X3 Pro

Gamepad iPega PG-9023S

spelunky-psp v. 0.5

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.