sarah-walker-pcem / pcem

PCem
http://pcem-emulator.co.uk
GNU General Public License v2.0
1.54k stars 217 forks source link

More Ram #260

Open actraiser30 opened 5 months ago

actraiser30 commented 5 months ago

Hello there

Is it possible on a feature update to add more ram than 128mb ??

256mb or 512mb would been great

Thanks

ruben-balea commented 5 months ago

There are some mainboards that support more than 128 MB: [386DX] AMI 386DX clone 256 MB [386DX] MR 386DX clone 256 MB [486] AMI 486 clone 256 MB [486] AMI WinBIOS 486 256 MB [486] Award SiS 496/497 256 MB [486] Elonex PC-425X 256 MB [Socket 7] ASUS P/I-P55T2P4 256 MB [Super 7] FIC VA-503+ 512 MB [Socket 8] Intel VS440FX 256 MB [Slot 1] Gigabyte GA-686BX 512 MB

actraiser30 commented 5 months ago

Thanks

I'm trying to build it for raspberry pi

But it fails after make what I did was

Downloaded the source code installed the dependencies

sudo apt-get install libsdl2-dev libwxgtk3.0-gtk3-dev libopenal-dev gcc make g++

./configure

Make

After a while it stop with an error I attached a photo

IMG_20240610_131757_979_LL

JosepMaJAZ commented 5 months ago

The message is reporting that codegen_backend_arm.c or codegen_backend.arm64.c is not being built/linked.

Version 17 uses makefiles, version dev (18 ) uses cmake.

In version 17, in makefile.am, there's:

if CPU_I386
pcem_SOURCES += codegen_backend_x86.c codegen_backend_x86_ops.c codegen_backend_x86_ops_fpu.c codegen_backend_x86_ops_sse.c codegen_backend_x86_uops.c
pcem_CFLAGS += -msse2
endif

if CPU_X86_64
pcem_SOURCES += codegen_backend_x86-64.c codegen_backend_x86-64_ops.c codegen_backend_x86-64_ops_sse.c codegen_backend_x86-64_uops.c
endif

if CPU_ARM
pcem_SOURCES += codegen_backend_arm.c codegen_backend_arm_ops.c codegen_backend_arm_uops.c
endif

if CPU_ARM64
pcem_SOURCES += codegen_backend_arm64.c codegen_backend_arm64_imm.c codegen_backend_arm64_ops.c codegen_backend_arm64_uops.c
endif

CPU checking is done in configure.ac as in:


AC_MSG_CHECKING([for cpu])
case "${host_cpu}" in
    i?86)
    CPU=i386
    AC_MSG_RESULT(${host_cpu})
    ;;
    x86_64)
    CPU=x86_64
    AC_MSG_RESULT(${host_cpu})
    ;;
    armv7l)
    CPU=arm
    AC_MSG_RESULT(${host_cpu})
    ;;
    aarch64)
    CPU=arm64
    AC_MSG_RESULT(${host_cpu})
    ;;
    *)
    AC_MSG_ERROR([Unsupported CPU. ${host_cpu}])
    ;;
esac

AM_CONDITIONAL(CPU_I386, test "$CPU" = "i386")
AM_CONDITIONAL(CPU_X86_64, test "$CPU" = "x86_64")
AM_CONDITIONAL(CPU_ARM, test "$CPU" = "arm")
AM_CONDITIONAL(CPU_ARM64, test "$CPU" = "arm64")

So it might happen that the "arm" name reported by the raspberry is not armv7l or you are not building for aarch64.

You might also try if building version 18 works better or not, although I've seen that on arm, it might not pick the correct name either (arch_detect.cmake might report more arm names than supported on codegen.cmake) .

actraiser30 commented 5 months ago

Where is exactly version 18 ??? I cannot find the source..

JosepMaJAZ commented 5 months ago

version 18 is the dev branch on git. it is not a finished release.