VICE C64 Emulator

I would like to be able to install VICE (https://vice-emu.sourceforge.io) from Haiku depo.
Currently I am building from source and that is not working very well.
Last version had ‘make bindist’ that generated a new folder with all the compiled binaries. Seems like this was removed in the last version.

The latest official version of VICE (c64 emulator) does now build and work well in Haiku.

5 Likes

Hi! Did you need to change something to get it built successfully? I am trying in Haiku 32 bit and got stuck at this step:

/boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbeos.cc:82: undefined reference to `BGameSound::operator new(unsigned long)'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: /boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbeos.cc:82: undefined reference to `BPushGameSound::BPushGameSound(unsigned long, gs_audio_format const*, unsigned long, BGameSoundDevice*)'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: /boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbeos.cc:83: undefined reference to `BGameSound::InitCheck() const'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: ../src/arch/shared/sounddrv/libsounddrv.a(soundbsp.o): in function `bsp_suspend()':
/boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:199: undefined reference to `BSoundPlayer::Stop(bool, bool)'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: ../src/arch/shared/sounddrv/libsounddrv.a(soundbsp.o): in function `bsp_init(char const*, int*, int*, int*, int*)':
/boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:115: undefined reference to `BSoundPlayer::BSoundPlayer(media_raw_audio_format const*, char const*, void (*)(void*, void*, unsigned long, media_raw_audio_format const&), void (*)(void*, BSoundPlayer::sound_player_notification, ...), void*)'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: /boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:116: undefined reference to `BSoundPlayer::InitCheck()'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: /boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:126: undefined reference to `BSoundPlayer::Start()'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: /boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:131: undefined reference to `BSoundPlayer::SetHasData(bool)'
/boot/system/develop/tools/x86/bin/../lib/gcc/i586-pc-haiku/11.2.0/../../../../i586-pc-haiku/bin/ld: ../src/arch/shared/sounddrv/libsounddrv.a(soundbsp.o): in function `bsp_resume()':
/boot/home/Desktop/vice-3.7/src/arch/shared/sounddrv/soundbsp.cc:206: undefined reference to `BSoundPlayer::Start()'

Thank you!!!

I compiled like this:

./configure —disable-pdf-docs
make
make bindist

No other changes. The error you get must be something else.

Try to disable the sound when you build VICE. The error looks to be sound related. Maybe the sound library in the 32-bit version lack some functions.

Did you try using setarch before building, maybe it can’t be built with gcc2 (anymore)?

It seems he was using GCC11:

The libraries are identican and don’t mysteriously lack functions on 32 bit systems. It looks like the build script forgot to link in the game kit where BSoundPlayer is found, so you have to find a way to add -lgame" to the compiler command line.

Yep, i didn’t pay attention to the paths.

Trying to compile but i get this error

checking for GLEW... configure: error: Package requirements (glew) were not met:

Package 'gl', required by 'glu', not found

Installed:
Haiku shredder 1 hrev56578+87
mesa_devel-22.0.5-2
glew_devel-2.2.0-3

Do you have the devel packages installed? Sometimes there could be an error also when a source is loooking for gl.pc which we don’t provide (been reported at haikuports).
glew_devel should also installed (if not already) the ones for GL and glu.

I see what’s wrong

With this configuration can be compiled

wget https://deac-ams.dl.sourceforge.net/project/vice-emu/releases/vice-3.7.tar.gz
tar xvfa vice-3.7.tar.gz
cd  vice-3.7
pkgman update (and reboot if needed)
pkgman install dos2unix xa glib2_devel libsdl2_devel sdl2_image_devel
./configure  --disable-pdf-docs

But i if we try to add the GTK3 GUI

./configure  --disable-pdf-docs  --enable-gtk3ui

Then the configure asks to install glew, ok, and then is looking for the gl.pc and fails

Did a quick check (not with GTK3) with SDL2, that still seems to build fine:

With a bit of a hack you can get it to finish configure and run make, but you will end up with new errors (stopped searching after the first one) :slight_smile:

In file included from ../../src/maincpu.h:31,
                 from joystick.c:49:
../../src/mainlock.h:46:31: error: unknown type name 'tick_t'; did you mean 'stack_t'?
   46 | void mainlock_yield_and_sleep(tick_t ticks);
      |                               ^~~~~~
      |                               stack_t
1 Like