Code Monkey home page Code Monkey logo

u4's People

Contributors

chocorho avatar darrenjaneczek avatar dominusexult avatar kirben avatar wickedsmoke avatar winterheart 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

u4's Issues

[Feature request] Let us select multiple music modules

Let us select multiple music modules at once and hand-pick which track from each to play.

For example, the player could enable the Aradindae and Hurin music modules at once and have the game use the Hurin tracks for Wanderer and Towns, along with the Aradindae tracks for the rest of the music.

Hope that was clear enough.

Move glv to github?

I just tried updating NixOS/nixpkgs#181866 but it fails fetching the submodule for glv:

source> exporting https://github.com/xu4-engine/u4.git (rev v1.4) into /nix/store/0ibb0821xvymqzpw7dw1265fxmi7skfi-source
source> Initialized empty Git repository in /nix/store/0ibb0821xvymqzpw7dw1265fxmi7skfi-source/.git/
source> remote: Enumerating objects: 437, done.
source> remote: Counting objects: 100% (437/437), done.
source> remote: Compressing objects: 100% (418/418), done.
source> remote: Total 437 (delta 11), reused 235 (delta 7), pack-reused 0
source> Receiving objects: 100% (437/437), 7.76 MiB | 15.05 MiB/s, done.
source> Resolving deltas: 100% (11/11), done.
source> From https://github.com/xu4-engine/u4
source>  * tag               v1.4       -> FETCH_HEAD
source> Switched to a new branch 'fetchgit'
source> Submodule 'src/faun' (https://github.com/WickedSmoke/faun.git) registered for path 'src/faun'
source> Submodule 'src/glv' (https://git.code.sf.net/p/outguard/glv) registered for path 'src/glv'
source> Cloning into '/nix/store/0ibb0821xvymqzpw7dw1265fxmi7skfi-source/src/faun'...
source> remote: Enumerating objects: 70, done.
source> remote: Counting objects: 100% (70/70), done.
source> remote: Compressing objects: 100% (68/68), done.
source> remote: Total 70 (delta 0), reused 45 (delta 0), pack-reused 0
source> Receiving objects: 100% (70/70), 115.50 KiB | 3.30 MiB/s, done.
source> Cloning into '/nix/store/0ibb0821xvymqzpw7dw1265fxmi7skfi-source/src/glv'...
source> remote: Enumerating objects: 47, done.
source> remote: Counting objects: 100% (47/47), done.
source> remote: Compressing objects: 100% (46/46), done.
source> remote: Total 47 (delta 7), reused 6 (delta 1)
source> remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
source> remote: Enumerating objects: 9, done.
source> remote: Counting objects: 100% (9/9), done.
source> remote: Compressing objects: 100% (5/5), done.
source> remote: Total 5 (delta 4), reused 1 (delta 0), pack-reused 0
source> Unpacking objects: 100% (5/5), 416 bytes | 416.00 KiB/s, done.
source> From https://github.com/WickedSmoke/faun
source>  * branch            f090eba840d8373d5aa2acbd9f402337c7bba098 -> FETCH_HEAD
source> Submodule path 'src/faun': checked out 'f090eba840d8373d5aa2acbd9f402337c7bba098'
source> remote: Total 0 (delta 0), reused 0 (delta 0)
source> error: Server does not allow request for unadvertised object 8b3f057502061925ce01e7db627532046dc04e09
source> fatal: Fetched in submodule path 'src/glv', but it did not contain 8b3f057502061925ce01e7db627532046dc04e09. Direct fetching of that commit failed.

I don't know why it's complaining about this commit, it does exist https://sourceforge.net/p/outguard/glv/ci/8b3f057502061925ce01e7db627532046dc04e09/
Who knows what sourceforge is doing here... it's showing its age I guess. Since u4 and faun are already on github maybe glv could be moved to github?

Alternatively updating the submodules "fixes" the issue somehow too ( mausch@f9db0a2 )... for now at least 🤷‍♂️

Building xu4 on aarch64 devuan

Glad you're reviving. What uses -gstabs?
./configure --sdl make make -C src -f Makefile make[1]: Entering directory '/media/sd/pcbak2/Projects/games/u4/src' cc -DHAVE_BACKTRACE=1 -DHAVE_VARIADIC_MACROS=1 -Wall -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libxml2 -DICON_FILE=\"/usr/local/share/pixmaps/u4.bmp\" -DVERSION=\"1.1svn\" -ggdb1 -rdynamic -g -O0 -fno-inline -fno-eliminate-unused-debug-types -gstabs -g3 -c -o lzw/hash.o lzw/hash.c cc1: error: target system does not support the ‘stabs’ debug format

DEBUGCXXFLAGS=-ggdb1 -rdynamic -g -O0 -fno-inline -fno-eliminate-unused-debug-types -gstabs -g3

Removing -gstabs from Makefile gets me through most of the compile but then, ... ambush!

g++ -DHAVE_BACKTRACE=1 -DHAVE_VARIADIC_MACROS=1 -Wall -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libxml2 -DICON_FILE=\"/usr/local/share/pixmaps/u4.bmp\" -DVERSION=\"1.1svn\" -ggdb1 -rdynamic -g -O0 -fno-inline -fno-eliminate-unused-debug-types -g -g3 -O2 -march=native -mcpu=native -mtune=native -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations  -c -o util/dumpsavegame.o util/dumpsavegame.cpp
g++ -DHAVE_BACKTRACE=1 -DHAVE_VARIADIC_MACROS=1 -Wall -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/libxml2 -DICON_FILE=\"/usr/local/share/pixmaps/u4.bmp\" -DVERSION=\"1.1svn\" -ggdb1 -rdynamic -g -O0 -fno-inline -fno-eliminate-unused-debug-types -g -g3  -o dumpsavegame util/dumpsavegame.o savegame.o
/usr/bin/ld: savegame.o: in function `UltimaSaveIds::alloc(int, int, Config*, Tileset const*)':
/media/sd/pcbak2/Projects/games/u4/src/savegame.cpp:421: undefined reference to `Config::internSymbols(unsigned short*, unsigned short, char const*)'
/usr/bin/ld: /media/sd/pcbak2/Projects/games/u4/src/savegame.cpp:428: undefined reference to `Tileset::getByName(unsigned short) const'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile.common:99: dumpsavegame] Error 1
make[1]: Leaving directory '/media/sd/pcbak2/Projects/games/u4/src'
make: *** [Makefile:13: src/u4] Error 2

savegame.cpp looks quite different to my other versions. Still I got an executeable somehow.

27160992 Jul  6 08:49 u4

symlinked my ultima4 dir to ./ultima4 and ran u4
it complained with

xu4: warning: Failed to open file u4u/charset.vga for reading.

Let's make this work with original tileset and not require vga ultima4upgrade
(available here) https://ultima4.ultimacodex.com/ultima-4-upgrade/


moving on...

xu4: warning: Failed to open file u4u/start.old for reading

Strace doesn't show u4 trying to load any start.old, just shows:

/pr/games/u4/src$ strace ./u4 2>&1 |grep -i start.old
write(2, "Failed to open file u4u/start.ol"..., 46Failed to open file u4u/start.old for reading.) = 46

/pr/games/u4/src$ ls -l  u4u/start.old ultima4/u4u/start.old
-rw-rw-rw- 1 6847 Apr 30  1999 u4u/start.old
-rw-r--r-- 1 6847 Jul  6 09:39 ultima4/u4u/start.old

Then there's this mysterious thing:

xu4: error: Unable to load image "borders"
09:39:56-Clort@Desktop:/pr/games/u4/src$ strace ./u4 2>&1 |grep -i borders
write(2, "Unable to load image \"borders\"", 30Unable to load image "borders") = 30

I know this is detail work but just thought I'd give the feedback. For now U4 works fine in SCUMMVM

Todo list?

Hey guys,

This is more a question, perhaps a small request.

Is there a document that:

a) shows the completion of the project compared to u4, e. g. what is playable what is not
b) shows a todo list of things that are missing or so?

In particular b) may perhaps be helpful in the long run when devs come in but may only
have a limited amount of time, so perhaps they could work on a todo list for some days
before moving on.

xu4: error: Unable to initialize Allegro

I'm getting a mystery-meat "Unable to initialize Allegro" launching the sourceforge binaries of xu4 1.0 on a Debian bullseye system with Allegro 5.2.6 installed.

Running xu4 --verbose is no more enlightening.

stack smashing detected; terminated

After some challenges building from the github repo (which may admittedly be the source of my problem here) on pop_os 21.10 I've managed to get to a complete build, but now the xu4 binary aborts with

$ ./src/xu4 
*** stack smashing detected ***: terminated
Aborted (core dumped)

The build is mostly clean with a few warnings of the type:

warning: format not a string literal and no format arguments

but no other errors.

Dependencies were satisfied as follows:

From system packages:
libsdl2-2.0-0
libsdl2-dev
libxml2
libxml2-dev
liballegro5.2
liballegro5-dev

From sourceforge:
libboron https://sourceforge.net/p/urlan/boron/code/ci/master/tree/

any suggestions would be much appreciated

SDL support

Is SDL support planned? I see there is some code for that, though the build fails with:
event_sdl.cpp:117:14: error: ‘SDL_MOUSEWHEEL’ was not declared in this scope; did you mean ‘IE_MOUSE_WHEEL’?

If it is planned, it would be nice to have support for legacy SDL (i.e. SDL1). I would love to see this game on some cheap handhelds and SDL1 is a prerequisite for that.

"Master is unstable"

Hey there, nice to see that this fantastic project has moved to Github and some additional work is being done on it!

The project description says that "Master is unstable", so where should we build from if we want to build xu4 from source or package it? The Sourceforge home page offers beta builds which are ancient (and probably shouldn't use) and snapshot builds, but it's not clear what commits/tags these were build from.

Also, as a side-note, are there any fundamental differences between the Allegro and SDL builds? Which one is the recommended version? Are there any up or downsides to either of them?

Thanks!

can't build on macos

I ran ./configure
then make, which fails

└─> make
make -C src -f Makefile.macosx
make[1]: *** No rule to make target `macosx/SDLMain.m', needed by `macosx/SDLMain.o'.  Stop.
make: *** [src/u4] Error 2

I have SDL installed via brew.

I cd into src dir and ran make, which got further, but still failed

./xu4.h:11:1: note: did you mean struct here?
class SaveGame;
^~~~~
struct
person.cpp:33:10: fatal error: 'boron/boron.h' file not found
#include <boron/boron.h>
         ^~~~~~~~~~~~~~~
4 warnings and 1 error generated.
make: *** [person.o] Error 1

Sanity Check: OpenGL requirement.

Decades long player of xu4 here.

Ultima 4 ran on a 1mhz, 8-bit Apple ][.

XU4 ran with almost no cpu use on many, many devices, which did not have openGL support.

Can you please explain why you've added opengl as a requirement? XU4 is a game that does nort inherently require opengl. Many devices do not have opengl or GPU, and will no longer be able to run XU4.

Thank you for your consideration. Very interesting to follow your many commits. Thanks for the work!

Tag for 1.1 ?

Hi, great news about the 1.1 release, congrats!
Could you tag it here on github so I can package it?
Many thanks.

Building binaries directly in github

Hi!

Earlier today I was having a quiet day at work and thought "I wonder if xu4 works on macos".. one thing led to another and I started investigating what it would take to make binaries directly in github themselves. Before I finish this work I wanted to check in and ask... would you take a PR that spits out binaries as releases automatically?

I was thinking:

  • Linux builds (most straightforward)
  • Try and cross-build from linux for windows (with msys2)
  • Macos will take the most work (but they do have mac runners in github)

If this is a PR you'd take I may have some questions (I've been trying to make this work locally and I'm not 100% sure on the optimal setup for boron, etc).

And just to show roughly what linux looks like right now:

jobs:
  release-linux-amd64:
    name: release-linux-amd64
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Dependencies
      run: |
        sudo apt update
        sudo apt install -y liballegro5-dev libxml2 libxml2-dev

    - name: Install boron
      run: |
        rm -rf boron
        git clone --depth 1 git://git.code.sf.net/p/urlan/boron/code boron
        cd boron
        ./configure
        make
        sudo make install install-dev

    - name: Configure
      run: ./configure

    - name: Build
      run: make

That at least gets to a point it can compile xu4.

(Oh and separately I'll mention I had to modify image.h to change #include "image32.h" to "support/image32.h" and xu4.h to "support/notify.h" to get working compiles). Anyway, I just wanted to pick your brain about the entire effort before I go on any further :)

Cannot get Xu4 1.1 to run "Cannot find module"

I unpacked the files to a folder named XU4. In this folder I have another folder named Ultima4. In this folder are all the game files I installed from gog. When I try to run xu4.exe, I get a message "Cannot find module Ultima IV".

companions' names not visible in party window

Screenshot from 2023-03-06 23-54-59
the avatar at the top, dupre on the left, and jaana on the right. dupre's name is highlighted in the party window, but the text is invisible.

switching from U4-Upgrade to Ultima-IV then back to U4-Upgrade fixes the party window like 20% of the time. i'd try it with the vanilla graphics, but i can't play without the upgrade anymore -- when switching to Ultima-IV and attempting to load my save, xu4 crashes:

xu4: warning: Can't load image "u4/start.ega" with type 3
Segmentation fault (core dumped)

i started playing without the modded graphics and it seemed to work fine, but i only had a companion join after i'd installed the upgrade. now, even trying to start a new (non-upgraded) game (with a clean ~/.config/xu4/, so default settings) crashes after the personality test -- everything works fine up to that point.

i'm using the gog release in a directory named ultima4, next to the xu4 binary and u4upgrad.zip. and i'm using pop!_os 22.04 lts (ubuntu) and the prebuilt xu4 1.2.1 release from sourceforge

Sounds

I am not sure if you are interested, but I did some work a while back to get all the sounds correct for Dos, C64 and Apple.

The DOS sounds are found here:

https://github.com/cambragol/xu4/tree/master/sound/dos

The apple II and c64 sounds are not named/sorted the same as dos, so might need some work to fit. In any case, the files are all recorded and cleaned up nicely. Incorporate them if you want.

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.