Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpu_gettotalcycles() called with no executing cpu! #493

Open
padremayi opened this issue Dec 25, 2021 · 13 comments
Open

cpu_gettotalcycles() called with no executing cpu! #493

padremayi opened this issue Dec 25, 2021 · 13 comments

Comments

@padremayi
Copy link

padremayi commented Dec 25, 2021

Both core and RetroArch compiled from master branch (in 32 bit mode). When I starts Killer Instinct (with dynarec enabled) I get a segmentation fault. The last error is this:

[libretro ERROR] [MAME 2003] cpu_gettotalcycles() called with no executing cpu!

@mahoneyt944
Copy link
Collaborator

Please post the full log

@padremayi
Copy link
Author

[INFO] [Config]: Loading default config.
[INFO] [Config]: Looking for config in: "/home/<user>/.config/retroarch/retroarch.cfg".
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz
[INFO] Capabilities:  MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX
[INFO] Built: Dec 25 2021
[INFO] Version: 1.9.14
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] [Core]: Loading dynamic libretro core from: "../mame2003-libretro-master/mame2003_libretro.so"
[INFO] [Overrides]: No core-specific overrides found at "/home/<user>/.config/retroarch/config/MAME 2003 (0.78)/MAME 2003 (0.78).cfg".
[INFO] [Overrides]: No content-dir-specific overrides found at "/home/<user>/.config/retroarch/config/MAME 2003 (0.78)/roms.cfg".
[INFO] [Overrides]: No game-specific overrides found at "/home/<user>/.config/retroarch/config/MAME 2003 (0.78)/kinst.cfg".
[INFO] [Remaps]: Remap directory: "/home/<user>/.config/retroarch/config/remaps".
[INFO] [Overrides]: Redirecting save file to "/home/<user>/.config/retroarch/saves/kinst.srm".
[INFO] [Overrides]: Redirecting save state to "/home/<user>/.config/retroarch/states/kinst.state".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: PERFORMANCE_LEVEL: 10.
[INFO] [Content]: Content loading skipped. Implementation will load it on its own.
[libretro INFO] [MAME 2003] Full content path ../roms/kinst.zip
[libretro INFO] [MAME 2003] Git Version 
[libretro INFO] [MAME 2003] Content lookup name: kinst
[libretro INFO] [MAME 2003] Driver index counter: 4389. Matched game driver: kinst
[libretro INFO] [MAME 2003] ==== BEGIN DRIVER CONTENT ATTRIBUTES ====
[libretro INFO] [MAME 2003] * Supports 2 players with 2 distinct controls.
[libretro INFO] [MAME 2003] * Supports 6 distinct button controls.
[libretro INFO] [MAME 2003] * Uses a service button.
[libretro INFO] [MAME 2003] * Uses a tilt function.
[libretro INFO] [MAME 2003] * Uses multiplayer control labels.
[libretro INFO] [MAME 2003] * Uses 8-way joystick controls.
[libretro INFO] [MAME 2003] ==== END DRIVER CONTENT ATTRIBUTES ====
[INFO] [Environ]: SYSTEM_DIRECTORY: "/home/<user>/.config/retroarch/system".
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[libretro INFO] [MAME 2003] Check for trailing slash in path: ../roms/
[libretro INFO] [MAME 2003] Removed a trailing slash in path: ../roms
[libretro INFO] [MAME 2003] Check for trailing slash in path: /home/<user>/.config/retroarch/system
[libretro INFO] [MAME 2003] Trailing slash removal was not necessary for path given.
[libretro INFO] [MAME 2003] Check for trailing slash in path: /home/<user>/.config/retroarch/saves
[libretro INFO] [MAME 2003] Trailing slash removal was not necessary for path given.
[libretro INFO] [MAME 2003] content path: ../roms
[libretro INFO] [MAME 2003]  system path: /home/<user>/.config/retroarch/system
[libretro INFO] [MAME 2003]    save path: /home/<user>/.config/retroarch/saves
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2.
[INFO] [Environ]: SET_AUDIO_BUFFER_STATUS_CALLBACK.
[INFO] [Environ]: GET_LED_INTERFACE.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[libretro INFO] [MAME 2003] Opening ROM file: u10-l1
[libretro INFO] [MAME 2003] Opening ROM file: u11-l1
[libretro INFO] [MAME 2003] Opening ROM file: u12-l1
[libretro INFO] [MAME 2003] Opening ROM file: u13-l1
[libretro INFO] [MAME 2003] Opening ROM file: u33-l1
[libretro INFO] [MAME 2003] Opening ROM file: u34-l1
[libretro INFO] [MAME 2003] Opening ROM file: u35-l1
[libretro INFO] [MAME 2003] Opening ROM file: u36-l1
[libretro INFO] [MAME 2003] Opening ROM file: u98-l14
[libretro INFO] [MAME 2003] Opening disk image: kinst.chd
[libretro INFO] [MAME 2003] Opening differencing image: kinst.dif
[libretro INFO] [MAME 2003] Succesfully loaded ROMs.
[INFO] [Environ]: SET_ROTATION: 0
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[libretro INFO] [MAME 2003] 

CONTROLS: 

GAMEINFO: Killer Instinct (v1.0)
1994 Rare

CPU:
R4600 100.000000 MHz
ADSP2105 10.000000 MHz (sound)

Sound:
Custom

Screen Resolution:
320 x 240 (H) 60.000000 Hz

[INFO] [SRAM]: Skipping SRAM load.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Set video size to: 960x720.
[ERROR] [Wayland]: Failed to connect to Wayland server.
[INFO] [GLX]: GLX_EXT_swap_control_tear supported.
[INFO] [GL]: Found GL context: "x".
[INFO] [GL]: Detecting screen resolution: 1920x1080.
[INFO] [GLX]: Window manager is GNOME Shell.
[INFO] [GLX]: X = 0, Y = 0, W = 960, H = 720.
[INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
[INFO] [GL]: Vendor: Intel, Renderer: Mesa Intel(R) HD Graphics 620 (KBL GT2).
[INFO] [GL]: Version: 4.6 (Compatibility Profile) Mesa 21.0.3.
[INFO] [GL]: Using resolution 960x720.
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ...
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [GL]: Using GL_RGB565 for texture uploads.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [Font]: Using font rendering backend: "freetype".
[INFO] [X11]: Suspending screensaver (X11, xdg-screensaver).
[INFO] [Video]: Found display server: "x11".
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Display]: Found display driver: "gl".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/favorites.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/netplay.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_room.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_room_lan.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_room_relay.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/bluetooth.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/rename.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/favorites-content.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/add-favorite.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/battery-80.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/battery-60.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/battery-40.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/battery-20.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/dialog-slice.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_achievements.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_audio.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_exit.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_frameskip.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_info.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_help.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_network.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_power.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_saving.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_updater.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_video.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_record.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/Libretro - Pad.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_mixer.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_log.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_osd.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_ui.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_user.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_privacy.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_latency.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_drivers.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_playlist.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_quickmenu.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_rewind.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_overlay.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_override.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_notifications.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_stream.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_shutdown.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_DPAD-U.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_DPAD-D.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_DPAD-L.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_DPAD-R.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_STCK-U.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_STCK-D.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_STCK-L.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_STCK-R.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_STCK-P.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_SELECT.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_START.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_BTN-U.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_BTN-D.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_BTN-L.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_BTN-R.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_LB.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_RB.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_LT.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_RT.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_ADC.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_BIND_ALL.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_MOUSE.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_LGUN.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/input_TURBO.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_check.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_add.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_brightness.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_pause.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_apply_toggle.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/menu_apply_cog.png
[WARN] [XMB] Asset missing: /usr/share/libretro/assets/xmb/monochrome/png/disc.png
[INFO] [Playlist]: Loading history file: "/home/<user>/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/<user>/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/<user>/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/<user>/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/<user>/.config/retroarch/content_favorites.lpl".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[ERROR] [Font]: Failed to create rendering backend: "freetype".
[ERROR] [Font]: Failed to create rendering backend: "stb-unicode".
[libretro INFO] [MAME 2003] Preparing emulated CPUs for execution.
[libretro ERROR] [MAME 2003] cpu_gettotalcycles() called with no executing cpu!
Segmentation fault (core dumped)

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Dec 25, 2021

This seems like RA is crashing and not allowing the core to function normally. Did you recently update RA when these issues began?

@padremayi
Copy link
Author

I got RetroArch from the current master branch.

I don't think that the problem is RetroArch, infact if I start Final Fight the game runs correctly. I'm the developer of M.A.M.E. SDL Plus and I'm familiar with MAME source code. That log, [libretro ERROR] [MAME 2003] cpu_gettotalcycles() called with no executing cpu!, comes from mame2003 libretro core, line 59 (or 67) from src/cpuexec.c source code.

Do you have the time to debug the problem? If not I'll take a look

@mahoneyt944
Copy link
Collaborator

mahoneyt944 commented Dec 25, 2021

Well yes, certainly that error is concerning. However, if you look at your log there are many errors and warnings from RA as well. I have personally tested killer instinct and it works fine for me (screen shots below just taken). So this issue maybe isolated to your platform or specific build. You may try posting a "debug" level log and maybe that will show something more?

kinst-211225-173723
kinst-211225-173803

@padremayi
Copy link
Author

Those RetroArch errors are exactly the same that come from the run of Final Fight (that works fine), so are not related to the problem.

Did you enable MIPS dynarec when compiled the core? You have the flag X86_MIPS3_DRC in the Makefile (that comes from original MAME 0.78), I forgot to mention that I enabled that (I want the x86 dynarec enabled for what I'm trying to check). My RetroArch and core builds obviously are compiled in 32 bit mode.

I checked the mips3drc.c and x86drc.c source code, you didn't change anything about malloc() stuff so the dynarec is trying to execute memory from no executable allocated memory. In this way e.g. on Ubuntu or Windows it will never work.

Did you test the dynarec? If not maybe it is better to remove that flag from Makefile

@mahoneyt944
Copy link
Collaborator

This core does not receive updates anymore since there are no active maintainers besides the few commits I bring over from the mame2003-plus core, which does see development. None of the maintainers for these cores receive any compensation for there time. We work on these as a hobby to benefit others.

I would only recommend using the official libretro builds downloadable from https://buildbot.libretro.com/nightly/ when filing issues here since modifying the source, including the makefile, can have undefined results.

We like to leave development open for future development, so removing the flag would not be encouraged. If you would like to contribute to the project we accept and welcome the development.

@padremayi
Copy link
Author

All MAME developers don't receive compensation, why you have to say that? I don't ask money for my M.A.M.E. SDL Plus.

In your Makefile there is the option, with a comment that doesn't come from original MAME 0.78 source code, for enabling dynarec, if the developers of this porting don't know what a dynarec is, that flag must be removed.

Sorry but if you answer is not friendly I have to use the same style

@mahoneyt944
Copy link
Collaborator

I think you're missing the point here because this isn't meant to sound hostile.... This core is essentially abandoned. If it wasn't for the few housekeeping things that I do here, no one would have responded to this at all.

This project is not mine and I have not made all the decisions that went into this cores current condition. It's community built.....if you think you can improve the current condition of this core, we welcome Pull Requests from everyone at any time.

My commenting on your proposal is that if you are changing default settings in the makefile then filing issues that things do not work properly then there may be a reason why the default setting is the way it is. Someday a developer may want to fix the dynarec implementation so we do not encourage removing it entirely.

In the event that a default setting causes issues we would certainly correct that.

Thanks.

@markwkidd
Copy link
Collaborator

@padremayi this sounds like an exciting project. I'm technically a maintainer of this core, but I'm not active at the moment, unlike mahoneyt944. As he said, there is little to no activity on this core, but contributions are definitely welcome. Most platforms are known to be able to run this game with this core, so it does seem like the first step is to figure out why you are having trouble.

I am posting just in case you were not aware of mame2003-plus, at https://github.com/libretro/mame2003-plus-libretro

That is an active fork of mame2003. mahoneyt944 is also a maintainer there! :)

@padremayi
Copy link
Author

padremayi commented Dec 27, 2021

...the first step is to figure out why you are having trouble.

Hi, Killer Instinct works because you built the core without MIPS dynamic recompilator enabled. In your Makefile there is this option:
X86_MIPS3_DRC = # don't use x86 DRC MIPS3 engine by default; set to 1 to enable

why do you offer the possibility to enable the dynarec if it doesn't work? If you enable the dynarec Killer Instinct doesn't work because the code is unchanged compared to the original MAME 0.78 source code. Maybe it is a good idea to remove that flag. Only a suggestion.

What I did is a check on dynarec performance on your port but the dynarec is not supported :-( I'm working on it on my port in order to write the dynarec for ARM.

As I said before, I'm the developer of M.A.M.E. SDL Plus and my port has many code optimizations, in terms of performance it runs very fast also on Raspberry Pi v1, the first model. I'm adding the ARM dynarec.

If you want to try M.A.M.E. SDL Plus has these things:

  • Multiplatform, runs very fast also on Raspberry Pi v1
  • Support for 4 trakcballs
  • Support for 4 spinners
  • Added romset like World Rally
  • Adaptive dynamic frameskipping
  • Customizable framebuffer
  • HD artworks
  • Simple scanlines
  • 3 CRT video effects (also with CRT flickering)
  • Video interpolation with blur
  • Vertical refresh synchronization
  • Hiscore memory

@markwkidd
Copy link
Collaborator

I'm sorry, but you don't understand this makefile. The dynarec is most certainly enabled for x86 platforms. I don't understand your attitude, if you want to know why you are having problems, we are trying to help you. You don't know about this build environment evidently, but based on your qualifications, if you spend some time reading and asking questions, I'm sure you can contribute here as well. Thanks.

@padremayi
Copy link
Author

padremayi commented Dec 27, 2021

I'm sorry but maybe you didn't understand the problem. Dynarec is enabled on x86 platform but not in x86_64 platform.

ifeq ($(ARCH),)
	# no architecture value passed make; try to determine host platform
	UNAME_P = $(shell uname -p)
	ifneq ($(findstring powerpc,$(UNAME_P)),)
		ARCH = ppc
	else ifneq ($(findstring x86_64,$(UNAME_P)),)
		# catch "x86_64" first to avoid 64-bit architecture being caught by our next search for "86"
		# no commands for x86_x64 only at this point
		# we could help compile an x86_64 dynarec here or something like that
	else ifneq ($(findstring 86,$(UNAME_P)),)
		ARCH = x86 # if "86" is found now it must be i386 or i686
	endif
endif

ifeq ($(ARCH), x86)
	X86_MIPS3_DRC = 1
endif

If you build the core with DRC enabled and -m32 flag (as I wrote before) the output must be the same as the one built on x86 platform (x86_64 platform runs x86, so 32 bit application, without problem). Additionally, the original MAME 0.78 binary was built as 32 bit application.

I want to help you to find the problem but if I write where the problem is and all of you answer that I have to find where the problem is... it is a circle!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants