mupen64plus-core
mupen64plus-core copied to clipboard
PowerPC Big Endian issue????
Hello mupen64 developers,
I am sorry for noise, but I would like to know if MUPEN64PLUS has never ran on a big endian machine like mine PPC790MP Quad Core running @ 2.5Ghz. Actually I tried to compile from sources (git clone) and it compile without any issue (only Glide64 has an error for SSE [this architecture has Altivec]). I workedaround this modifying the include at the very beginnig in:
#ifndef NOSSE
// See https://stackoverflow.com/a/22291538
#if defined(_MSC_VER)
/* Microsoft C/C++-compatible compiler */
#include <intrin.h>
#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
/* GCC-compatible compiler, targeting x86/x86-64 */
#include <x86intrin.h>
#elif defined(__GNUC__) && defined(__ARM_NEON__)
/* GCC-compatible compiler, targeting ARM with NEON */
#include <arm_neon.h>
#elif defined(__GNUC__) && defined(__IWMMXT__)
/* GCC-compatible compiler, targeting ARM with WMMX */
#include <mmintrin.h>
#elif (defined(__GNUC__) || defined(__xlC__)) && (defined(__VEC__) || defined(__ALTIVEC__))
/* XLC or GCC-compatible compiler, targeting PowerPC with VMX/VSX */
#include <altivec.h>
#elif defined(__GNUC__) && defined(__SPE__)
/* GCC-compatible compiler, targeting PowerPC with SPE */
#include <spe.h>
#endif
and it looks like neither GCC nor Linker gives me any error. Anyway I wish to use Rice Video Driver which gave me no warning on compiling...
After launching test I see:
./mupen64plus m64p_test_rom.v64
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| http://code.google.com/p/mupen64plus/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core Warning: Unknown CIC type (000000A316ADC55A)! using CIC 6102.
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: Found ROM 'Mupen64Plus', CRC ddba4de5b107004a-00
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: Gallium 0.4 on AMD RV730 (DRM 2.43.0 / 4.4.0-104-powerpc64-s - 3.0 Mesa 17.0.7 : X.Org
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Cached Interpreter
Core Error: reserved opcode: A400004C:70A4083C
Core: R4300 emulator finished.
Core Status: Rom closed.
It looks like an endianness issue to me. As looking at mips_instructions.def I can't see any endianess switch or similar. Is it suppose to be run in the BigEndian world?
It is a pity if for a simple stuff like endianness this code cannot be run in a BE Arch...
Let me know please. If you point me where I can check for any hook just to run the code in this arch, I would be glad to re-write some pieces of code... Writing code is my full-time job.
My machine is a: Apple G5 Quad Core @ 2.5Ghz w/ 8192 Mb and it is running Linux Ubuntu 16.04 LTS with gcc 6 and an ATI VideoCard PCI Express 16x ATI Radeon HD4670 (not apple powerpc compatible during bootloader) as the log states...
Best regards, Gianluca Renzi
Yes, I’ve seen the exact same problem: mupen64plus builds without errors on PowerPC on OpenBSD, but fails at runtime because of byteswapped (or not‐byteswapped?) instructions. Any work on fixing that would be welcomed—I haven’t had the time to look into it.
At this moment I have two Apple Machines (OS X on Intel, and Linux on PPC64) and in the OSX machine everything is running good (but it is a binary package). Tomorrow I will try to download and run the same code and build from the same source in the OSX side. As soon is working good, I will backtrace the first mips instruction at the calling sequence. So I will check what function is failing on the PowerPC side... I will let you up-to-date. I hope gdb is working good at OS X side. :-)
Dislaimer : I don't own/use any big endian machine.
There have been a substantial work done to make the core endian agnostic using some M64P_BIG_ENDIAN defines. Be sure to build all projects (core+plugins) with the BIG_ENDIAN=1 makefile variable to enable it. This work has been done to allow the emulator to run on the GC/Wii if I remember correctly [1,2]. Please report any issue you face while trying this so we can fix them. Thanks for the interest you have in this project !
[1] http://emulatemii.com/wordpress/ [2] http://wiibrew.org/wiki/Wii64
Here I am with some news: I recompiled on both machines (x86_64 running MacOS X) with the same flags as the PowerPC 64bit machine i.e: NO_ASM=1 NO_SSE=1 DEBUGGER=1 DBG_CORE=1
but for PPC BIG_ENDIAN=1 and for x86 BIG_ENDIAN=0
When run the test rom I got on the PowerPC machine:
debian@G5-desktop:~/packages/MUPEN64PLUS/test$ ./mupen64plus ./m64p_test_rom.v64
` __ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core Warning: Unknown CIC type (000000A316ADC55A)! using CIC 6102.
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: Found ROM 'Mupen64Plus', CRC ddba4de5b107004a-00
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-109-powerpc64-smp, LLVM 5.0.0) - 3.0 Mesa 17.2.4 : X.Org
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Cached Interpreter
Core: init block A4000000 - A4001000
Core: init block 84000000 - 84001000
Core: NOTCOMPILED: addr = a4000040 ops = eecf3c0
Core: block recompiled (A4000040-A4000074)
Core Error: reserved opcode: A400004C:70A4083C
Core: R4300 emulator finished.
Core Status: Rom closed.
`
When running on the x86_64 MacOS X machine:
` __ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: Found ROM 'Mupen64Plus', CRC e54dbadd4a0007b1-00
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video: Using OpenGL: ATI Radeon HD 2400 OpenGL Engine - 2.1 ATI-10.4.14 : ATI Technologies Inc.
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Cached Interpreter
Core: init block A4000000 - A4001000
Core: init block 84000000 - 84001000
Core: NOTCOMPILED: addr = a4000040 ops = 11303f120
Core: block recompiled (A4000040-A40004C0)
Core: NOTCOMPILED: addr = a4000778 ops = 11303f120
Core: block recompiled (A4000778-A4000880)
Core: NOTCOMPILED: addr = a4000880 ops = 11303f120
Core: block recompiled (A4000880-A400090C)
Core: NOTCOMPILED: addr = a400090c ops = 11303f120
Core: block recompiled (A400090C-A4000980)
Core: NOTCOMPILED: addr = a4000a40 ops = 11303f120
Core: block recompiled (A4000A40-A4000AD0)
Core: init block A4000000 - A4001000
Core: init block 84000000 - 84001000
`
and the emulation runs well...
The differences are in the first line of Core:
Core: NOTCOMPILED: addr = a4000040 ops = eecf3c0
for the powerpc machine, and:
Core: NOTCOMPILED: addr = a4000040 ops = 11303f120
for the x86 machine.
I hope this can lead to a hint. I was thinking a more verbose output... :-/
Regards
Sorry I did a mistake closing the issue. The problem still persists. I would like to know how to proceed further. i.e. where the Core module is loading instructions and data from the memory just to clue out why the hell the SAME ROM gives a so strange result. Afterall ops - eecf3c0 is 24bit and 11303d120 is 33bit... :-? The architectures bus-width is the same (64bit)... O__o
Any help?
Can you try with this branch : https://github.com/bsmiles32/mupen64plus-core/tree/be
Well, I cloned that branch over the github original version (mupen64plus-core) and recompiled it with the same makefile flags. It gives me the same error:
./mupen64plus m64p_test_rom.v64
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core Warning: Unknown CIC type (000000A316ADC55A)! using CIC 6102.
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: ROM (CRC ddba4de5b107004a-00) not found in INI file
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-112-powerpc64-smp, LLVM 5.0.0) - 3.0 Mesa 17.2.4 : X.Org
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Cached Interpreter
Core: init block A4000000 - A4001000
Core: init block 84000000 - 84001000
Core: NOTCOMPILED: addr = a4000040 ops = eecf3c0
Core: block recompiled (A4000040-A4000074)
Core Error: reserved opcode: A400004C:70A4083C
Core: R4300 emulator finished.
Core Status: Rom closed.
Are my steps correct? If not, please tell me how to proceed.
Regards,
Just a quick note on the branch for big endian machines: Core Error: reserved opcode: A400004C:70A4083C is fetched directly from the ROM m64p_test_rom.v64. It should be useful if every opcode should be printed on the console output so just to watch what's going on the fetch unit of the CPU Core. Maybe something here? On the x86_64 machine there is no output, but only if the code fails. It should be useful to have both type of codes on both cases: good opcode and a reserved one.
@bsmiles32 if your code is running on a MacOS X on PowerPC I suppose, looking at the Makefile you changed in your branch. But there is a little issue: the debug options added by you are valid only for macOSX not for Linux. PPC does not mean OSX.
@bentley Did you proceed any further? @bsmiles32 I would like to know why the hell the BE branch you have is not running as supposed to. I would like to have more information about the reset vector, the fetching of the instructions for the core R4300. Nothing would change my mind about endianess issue here. Can anybody help me out?
@gianlucarenzi1971 Sorry for the delay. There is indeed something going wrong regarding endianness:
- MD5 computation seems OK
- CRC computed in Core and what Rice expects for it's db seem different
- CIC checksum is wrong ... Can you test the "be" branch (with BIG_ENDIAN=1) on a big-endian rom (.z64) not a byte-swapped (.v64) one to see if that helps.
If you need to convert between rom formats, you might be able to do so using https://www.zophar.net/utilities/n64aud/tool-n64.html (not tested).
I will try this asap. Thanks
Il 10/mar/2018 12:34 AM, "bsmiles32" [email protected] ha scritto:
@gianlucarenzi1971 https://github.com/gianlucarenzi1971 Sorry for the delay. There is indeed something going wrong regarding endianness:
- MD5 computation seems OK
- CRC computed in Core and what Rice expects for it's db seem different
- CIC checksum is wrong ... Can you test the "be" branch (with BIG_ENDIAN=1) on a big-endian rom (.z64) not a byte-swapped (.v64) one to see if that helps.
If you need to convert between rom formats, you might be able to do so using https://www.zophar.net/utilities/n64aud/tool-n64.html (not tested).
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-371975487, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDvTC68nPNCBUVsQBHMuDsC4epQoGks5tcxGLgaJpZM4ROs0_ .
There is further testing which you can do if you can build the latest code from git. I have fixed up the console debugger and added a memory read command, so you can run the test ROM and check your results when running on a big-endian machine. Here is what I get on my x86-64 linux box:
./mupen64plus --debug m64p_test_rom.v64
...
Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040.
(dbg) mem 0xa4000040
40806800
(dbg) mem /4x8 0xa4000040
40806800 40804800 40805800 3c08a470 25080000 8d09000c 152000ed 00000000
27bdffe8 afb30000 afb40004 afb50008 afb6000c afb70010 3c08a470 25080000
3c0aa3f8 3c0ba3f0 3c0ca430 258c0000 34090040 ad090004 24111f40 00000000
2231ffff 1620fffd 00000000 ad000008 34090014 ad09000c ad000000 24110004
(dbg) asm
mtc0 $zero,C0_CAUSE
Here is the log with the debug option:
`./mupen64plus --emumode 0 --debug m64p_test_rom.v64
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 2 SDL joysticks were found.
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('usb gamepad ')
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #2: Using auto-config with SDL joystick 1 ('usb gamepad ')
Input: 2 controller(s) found, 2 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core: Game controller 1 (Standard controller) has nothing plugged in
Core Warning: Unknown CIC type (000000A316ADC55A)! using CIC 6102.
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: Found ROM 'Mupen64Plus', CRC ddba4de5b107004a-00
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-116-powerpc64-smp, LLVM 5.0.0) - 3.0 Mesa 17.2.8 : X.Org
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Debugger initialized.
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040.
(dbg) mem 0xa4000040
ffffffff
(dbg) asm
sd $ra,-1($ra)
(dbg) mem /4x8 0xa4000040
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
(dbg) run
(dbg) Core Error: reserved opcode: A400004C:70A4083C
Core: R4300 emulator finished.
Core Status: Rom closed.`
No way, it does not work either. It seems it can not access the file itself. All 0xFF???
Looking at the CRC for the same rom (m64p_test_rom.v64) I have found this:
MUPEN64PLUS on BigEndian: ... Video: Found ROM 'Mupen64Plus', CRC ddba4de5b107004a-00 ...
MUPEN64PLUS on LittleEndian: ... Video: Found ROM 'Mupen64Plus', CRC e54dbadd4a0007b1-00 ...
This is CLEARLY a Endianness Issue to me:
BE = Most Significant Word (left) 0xddba4de5 LE = Most Significant Word (left) 0xe54dbadd
BE = Least Significant Word (right) 0xb107004a LE = Least Significant Word (right) 0x4a0007b1
The same code run in in a x86_64 machine gives:
` __ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: Version: 1444
Core: Manufacturer: 0
Core: Country: Demo
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0
Input: 0 SDL joysticks were found.
Input: N64 Controller #1: Forcing default keyboard configuration
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: 1 controller(s) found, 1 plugged in and usable in the emulator
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has nothing plugged in
Core: Using CIC type X102
Video: Disabled SSE processing.
Video: Found ROM 'Mupen64Plus', CRC e54dbadd4a0007b1-00
Video: Initializing OpenGL Device Context.
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: Gallium 0.4 on NV96 - 2.1 Mesa 8.0.4 : nouveau
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Debugger initialized.
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040.
(dbg) mem 0xa4000040
ffffffff
(dbg) asm
sd $ra,-1($ra)
(dbg) mem /4x8 0xa4000040
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
(dbg) run
(dbg) Core: Removing pak from controller 0
Core Status: Stopping emulation.
Core: R4300 emulator finished.
Core Status: Rom closed.
`
but when run it works as expected!
????
You need to rebuild from the latest source code. I just pushed changes last night to fix this problem where the debugger returns 0xffffffff for everything. Sorry I wasn't more explicit in my earlier message; you need to rebuild the core as well as the console-ui module.
Although very far from an expert, I've taken a look at the code and it seems to me the following is happening. Since PowerPC does not have a dynarec, it will always use the "pure interpreter". If you look at the pure interpreter, it seems that as the result of some big endian logic gone wrong somewhere, the switch statement falls back to a default case (such as this one):
default: /* Major opcodes 18..19, 28..31, 50..51, 54, 58..59, 62:
Reserved Instructions */
RESERVED(r4300, op);
break;
} /* switch ((op >> 26) & 0x3F) */
Which would explain the crash with message Core Error: reserved opcode: A400004C:70A4083C
as reported, since that can be one of the results of the RESERVED()
macro used here.
Since there's a lot of bit shifting and jumbling going on in this section, it's likely some implicit byte order expectations crept in.
It could be. The endianness should be adjusted before the switch statement.
Il lun 21 mag 2018 13:28 Rick van Galen [email protected] ha scritto:
Although very far from an expert, I've taken a look at the code and it seems to me the following is happening. Since PowerPC does not have a dynarec, it will always use the pure MIPS interpreter. If you look at the pure interpreter, it seems that it makes decision based on the byte ordering or 32-bit integers https://github.com/mupen64plus/mupen64plus-core/blob/111c39d3528497b5b3f1bb908d2127ab9d6d83d0/src/device/r4300/pure_interp.c#L170 :
switch ((op >> 26) & 0x3F) { // where op is type uint32_t // Interpreter logic }
Correct me if I'm wrong - but this bit shift and mask will not have the expected results on big endian architectures.
As a result, the switch statement falls back to the default case:
default: /* Major opcodes 18..19, 28..31, 50..51, 54, 58..59, 62: Reserved Instructions / RESERVED(r4300, op); break; } / switch ((op >> 26) & 0x3F) */
Which would explain the crash with message Core Error: reserved opcode: A400004C:70A4083C as reported, since that can be one of the results of the RESERVED() macro in use.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-390628328, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDtXmfaGGZqzD0dPTSRvSud5fTvh7ks5t0qTqgaJpZM4ROs0_ .
No this code is fine. All of the N64 ram/rom words are stored in system memory in native byte order, so the 'op' value is correct. And this shifting and bit-masking works exactly the same regardless of storage byte order. The instruction given in the error message is 70A4083C
. The top 6 bits of this value (aka major opcode) are 011100, which is 28, which is reserved according to the comment. I checked the mips r4300 instruction set document, and it does seem that there are no instructions starting with these 6 bits.
Il mar 22 mag 2018 04:35 Richard Goedeken [email protected] ha scritto:
No this code is fine. All of the N64 ram/rom words are stored in system memory in native byte order, so the 'op' value is correct.
I am not saying the way the value is managed is not correct. I mean maybe the way the opcode/instructions are fetched is not big-endian aware. So in consequence the value is managed wrongly. Looking in the previous messages, you will find some clear endianness issue (CRC overall), and probably other parts of the mips engine are suffering of the same issue.
And this shifting and bit-masking works exactly the same regardless of
storage byte order. The instruction given in the error message is 70A4083C. The top 6 bits of this value (aka major opcode) are 011100, which is 28, which is reserved according to the comment. I checked the mips r4300 instruction set document, and it does seem that there are no instructions starting with these 6 bits.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-390843996, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDgocYXKq0tPTveMzulfZ5DTtCBDKks5t03lggaJpZM4ROs0_ .
I looked through all the memory code, and I'm confident that this op
value should be in the machine-native byte order. If it's not, it would be due to a bug in the ROM loading. You should be able to use the debugger which is now built into mupen64plus-ui-console to print the values in memory around this address (0x70A4083C) and compare the printed values to those stored at the same address on an Intel machine.
I will do asap, and I will post the results.
Il mer 23 mag 2018 03:48 Richard Goedeken [email protected] ha scritto:
I looked through all the memory code, and I'm confident that this op value should be in the machine-native byte order. If it's not, it would be due to a bug in the ROM loading. You should be able to use the debugger which is now built into mupen64plus-ui-console to print the values in memory around this address (0x70A4083C) and compare the printed values to those stored at the same address on an Intel machine.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-391194362, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDkHUcn9GjWXyksPM7qu0KTQkm6Psks5t1L_7gaJpZM4ROs0_ .
Sorry, I gave the value for the opcode, not its address. Please post the output of this command in the debugger, with the Mupen64Plus test rom:
mem /4x8 0xa4000040
I bet it's byte-swapped compared to the values that I posted above, running the same test on my x86 machine. We're probably not handling the ROM byte order correctly after loading it.
I think I found the problem. We were always byte-swapping the ROM image after loading, but we should not do this if we're building for a big-endian machine. I just pushed a fix to the git repo; please test with the latest code and report your results.
@richard42 Did a similar fix here https://github.com/bsmiles32/mupen64plus-core/commit/b17db0a2617daaa956b2b497c35f85a82d3e1dc8 a few comments ago (1 Feb), but according to OP it didn't resolve it's issue...
Well I'm pretty sure it will solve the problems that I can see from the information presented in this bug report - the byte swapped instruction opcode and CRC value from the video plugin. There may be other problems lurking, so we'll have to tackle those next.
Is this issue already committed to git? Which branch? So I can test it asap
Il lun 28 mag 2018 07:05 Richard Goedeken [email protected] ha scritto:
Well I'm pretty sure it will solve the problems that I can see from the information presented in this bug report - the byte swapped instruction opcode and CRC value from the video plugin. There may be other problems lurking, so we'll have to tackle those next.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-392420066, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDjC67LMiTDFupEkFQoVvv38JJQCEks5t24WhgaJpZM4ROs0_ .
The fix is here, in the trunk of mupen64plus-core (no branch).
Here I am finally!
Some progress are done! Some other issues remain... :-(
Using the test rom code:
debian@G5-desktop:~/packages/mupen64-main/test$ ./mupen64plus --verbose
--debug m64p_test_rom.v64
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Mupen64Plus Demo by Marshallh (GPL)
Core: Name: Mupen64Plus
Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138
Core: CRC: DDBA4DE5 B107004A
Core: Imagetype: .v64 (byteswapped)
Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits)
Core: ClockRate = F
Core: Version: 1444
Core: Manufacturer: 0
Core: Cartridge_ID: 0
Core: Country: Demo
Core: PC = 800F1800
Core: Save type: 5
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice'
v2.5.0
UI-Console: Video plugin library: ./mupen64plus-video-rice.so
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
UI-Console: Audio plugin library: ./mupen64plus-audio-sdl.so
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: Input plugin library: ./mupen64plus-input-sdl.so
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP
Plugin' v2.5.0
UI-Console: RSP plugin library: ./mupen64plus-rsp-hle.so
Input: 2 SDL joysticks were found.
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('usb
gamepad ')
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #2: Using auto-config with SDL joystick 1 ('usb
gamepad ')
Input: 2 controller(s) found, 2 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has a Memory pak plugged in
Core: Game controller 1 (Standard controller) has nothing plugged in
Core: Game controller 2 (Standard controller) has nothing plugged in
Core: Game controller 3 (Standard controller) has nothing plugged in
Core: Using CIC type X102
Video: Reading .ini file: RiceVideoLinux.ini
Video: Disabled SSE processing.
Video: Found ROM 'epuMP46n sul', CRC e54dbadd4a0007b1-00
Video: InitExternalTextures
Video: Initializing OpenGL Device Context.
Video: Initializing video subsystem...
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-127-powerpc64-smp, LLVM
5.0.0) - 3.0 Mesa 17.2.8 : X.Org
Video: OpenGL Extension 'GL_EXT_texture_filter_anisotropic' is supported.
Video: OpenGL Extension 'GL_EXT_texture_format_BGRA8888' is NOT supported.
Video: OpenGL Extension 'GL_NV_depth_clamp' is supported.
Video: OpenGL Combiner: 2.1
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Audio: Primary buffer: 16384 output samples.
Audio: Primary target fullness: 10240 output samples.
Audio: Secondary buffer: 2048 output samples.
Audio: Requesting frequency: 44100Hz.
Audio: Requesting format: 36880.
Audio: Frequency: 44100
Audio: Format: 36880
Audio: Channels: 2
Audio: Silence: 0
Audio: Samples: 1024
Audio: Size: 4096
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Debugger initialized.
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040.
(dbg) run
It shows the "Mupen64Plus Started..." and I can not see anything else on the screen. Maybe some OpenGL issue??
But if I launch it without --debug flag it does not start at all, i.e. I do not see anything on the screen. No "Mupen64Plus Started..."
I had another try with a Super Mario 64 rom.
Here is the log:
debian@G5-desktop:~/packages/mupen64-main/test$ ./mupen64plus --verbose
--debug ../../mupen64/roms/Super\ Mario\ 64\ \(U\)\ \[\!\].z64
__ __ __ _ _ ____ _
| \/ |_ _ _ __ ___ _ __ / /_ | || | | _ \| |_ _ ___
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|
| | | | |_| | |_) | __/ | | | (_) |__ _| __/| | |_| \__ \
|_| |_|\__,_| .__/ \___|_| |_|\___/ |_| |_| |_|\__,_|___/
|_| https://mupen64plus.org/
Mupen64Plus Console User-Interface Version 2.5.0
UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1
UI-Console: Includes support for MIPS r4300 Debugger.
Core: Using full mem base
Core: Goodname: Super Mario 64 (U) [!]
Core: Name: SUPER MARIO 64
Core: MD5: 20B854B239203BAF6C961B850A4A51A2
Core: CRC: 635A2BFF 8B022326
Core: Imagetype: .z64 (native)
Core: Rom size: 8388608 bytes (or 8 Mb or 64 Megabits)
Core: ClockRate = F
Core: Version: 1444
Core: Manufacturer: Nintendo
Core: Cartridge_ID: 534D
Core: Country: Unknown (0x4500)
Core: PC = 80246000
Core: Save type: 0
UI-Console Status: Cheat codes disabled.
UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice'
v2.5.0
UI-Console: Video plugin library: ./mupen64plus-video-rice.so
UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0
UI-Console: Audio plugin library: ./mupen64plus-audio-sdl.so
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: Using auto-config file at: 'InputAutoCfg.ini'
UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0
UI-Console: Input plugin library: ./mupen64plus-input-sdl.so
UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP
Plugin' v2.5.0
UI-Console: RSP plugin library: ./mupen64plus-rsp-hle.so
Input: 2 SDL joysticks were found.
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('usb
gamepad ')
Input: Using auto-config file at: 'InputAutoCfg.ini'
Input: N64 Controller #2: Using auto-config with SDL joystick 1 ('usb
gamepad ')
Input: 2 controller(s) found, 2 plugged in and usable in the emulator
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized.
RSP: RSP Fallback disabled !
Core: Game controller 0 (Standard controller) has a Memory pak plugged in
Core: Game controller 1 (Standard controller) has nothing plugged in
Core: Game controller 2 (Standard controller) has nothing plugged in
Core: Game controller 3 (Standard controller) has nothing plugged in
Core: Using CIC type X102
Video: Reading .ini file: RiceVideoLinux.ini
Video: Disabled SSE processing.
Video: Found ROM 'EPUSAM R OIR 46', CRC ff2b5a632623028b-4d
Video: InitExternalTextures
Video: Initializing OpenGL Device Context.
Video: Initializing video subsystem...
Core: Setting 32-bit video mode: 640x480
Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1)
Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24)
Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24)
Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-127-powerpc64-smp, LLVM
5.0.0) - 3.0 Mesa 17.2.8 : X.Org
Video: OpenGL Extension 'GL_EXT_texture_filter_anisotropic' is supported.
Video: OpenGL Extension 'GL_EXT_texture_format_BGRA8888' is NOT supported.
Video: OpenGL Extension 'GL_NV_depth_clamp' is supported.
Video: OpenGL Combiner: 2.1
Audio: Using resampler trivial
Audio: Initializing SDL audio subsystem...
Audio: Primary buffer: 16384 output samples.
Audio: Primary target fullness: 10240 output samples.
Audio: Secondary buffer: 2048 output samples.
Audio: Requesting frequency: 44100Hz.
Audio: Requesting format: 36880.
Audio: Frequency: 44100
Audio: Format: 36880
Audio: Channels: 2
Audio: Silence: 0
Audio: Samples: 1024
Audio: Size: 4096
Input Warning: Couldn't open rumble support for joystick #1
Input Warning: Couldn't open rumble support for joystick #2
Input Warning: Couldn't open rumble support for joystick #3
Input Warning: Couldn't open rumble support for joystick #4
Debugger initialized.
Core: Initializing 4 RDRAM modules for a total of 8 MB
Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040.
(dbg) run
(dbg) Audio: sdl_init_audio_device(): SDL Audio sub-system already
initialized.
Audio: Initializing SDL audio subsystem...
Audio: Primary buffer: 16384 output samples.
Audio: Primary target fullness: 10240 output samples.
Audio: Secondary buffer: 2048 output samples.
Audio: Requesting frequency: 44100Hz.
Audio: Requesting format: 36880.
Audio: Frequency: 44100
Audio: Format: 36880
Audio: Channels: 2
Audio: Silence: 0
Audio: Samples: 1024
Audio: Size: 4096
Core: apply_speed_limiter(): Waiting 13ms
Core: apply_speed_limiter(): Waiting 24ms
Core: apply_speed_limiter(): Waiting 27ms
Core: apply_speed_limiter(): Waiting 21ms
Core: apply_speed_limiter(): Waiting 12ms
Core: apply_speed_limiter(): Waiting 7ms
Core: apply_speed_limiter(): Waiting 9ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 20ms
Core: apply_speed_limiter(): Waiting 20ms
Core: apply_speed_limiter(): Waiting 17ms
Core: apply_speed_limiter(): Waiting 14ms
Core: apply_speed_limiter(): Waiting 12ms
Core: apply_speed_limiter(): Waiting 13ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 17ms
Core: apply_speed_limiter(): Waiting 18ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 14ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 16ms
Core: apply_speed_limiter(): Waiting 15ms
Core: apply_speed_limiter(): Waiting 2ms
I clearly hear the voice: "It's me Mario" but nothing on the screen... And the apply_speed_limiter() string on the console...
May I use another video plugins instead of Rice? Just to see if there are some other hint?
On Mon, May 28, 2018 at 3:29 PM, Richard Goedeken [email protected] wrote:
The fix is here, in the trunk of mupen64plus-core (no branch).
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-392527365, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDpLcA2y80FfjKGsHcCvVdixhoKfUks5t2_u9gaJpZM4ROs0_ .
-- Ciao e buona giornata.
"GP! In mezzo al campo stai proprio schifoso!" Coach M.Russo
As you can see, the Audio Subsystem is initialized twice. The first before running "run" command, and the other just after it... :-/
On Wed, Jun 6, 2018 at 8:31 PM, Gianluca Renzi [email protected] wrote:
Here I am finally!
Some progress are done! Some other issues remain... :-(
Using the test rom code:
debian@G5-desktop:~/packages/mupen64-main/test$ ./mupen64plus --verbose --debug m64p_test_rom.v64
| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___ | |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / | | | | | || | |) | / | | | (_) | | __/| | || _
|| ||_,| ./ _|| ||_/ || || ||_,|/ || https://mupen64plus.org/ Mupen64Plus Console User-Interface Version 2.5.0UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1 UI-Console: Includes support for MIPS r4300 Debugger. Core: Using full mem base Core: Goodname: Mupen64Plus Demo by Marshallh (GPL) Core: Name: Mupen64Plus Core: MD5: DBF04773EC2B8ADF8A94DB7E3E461138 Core: CRC: DDBA4DE5 B107004A Core: Imagetype: .v64 (byteswapped) Core: Rom size: 1048576 bytes (or 1 Mb or 8 Megabits) Core: ClockRate = F Core: Version: 1444 Core: Manufacturer: 0 Core: Cartridge_ID: 0 Core: Country: Demo Core: PC = 800F1800 Core: Save type: 5 UI-Console Status: Cheat codes disabled. UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0 UI-Console: Video plugin library: ./mupen64plus-video-rice.so UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0 UI-Console: Audio plugin library: ./mupen64plus-audio-sdl.so Input: Using auto-config file at: 'InputAutoCfg.ini' Input: Using auto-config file at: 'InputAutoCfg.ini' UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0 UI-Console: Input plugin library: ./mupen64plus-input-sdl.so UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0 UI-Console: RSP plugin library: ./mupen64plus-rsp-hle.so Input: 2 SDL joysticks were found. Input: Using auto-config file at: 'InputAutoCfg.ini' Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('usb gamepad ') Input: Using auto-config file at: 'InputAutoCfg.ini' Input: N64 Controller #2: Using auto-config with SDL joystick 1 ('usb gamepad ') Input: 2 controller(s) found, 2 plugged in and usable in the emulator Input Warning: Couldn't open rumble support for joystick #1 Input Warning: Couldn't open rumble support for joystick #2 Input Warning: Couldn't open rumble support for joystick #3 Input Warning: Couldn't open rumble support for joystick #4 Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized. RSP: RSP Fallback disabled ! Core: Game controller 0 (Standard controller) has a Memory pak plugged in Core: Game controller 1 (Standard controller) has nothing plugged in Core: Game controller 2 (Standard controller) has nothing plugged in Core: Game controller 3 (Standard controller) has nothing plugged in Core: Using CIC type X102 Video: Reading .ini file: RiceVideoLinux.ini Video: Disabled SSE processing. Video: Found ROM 'epuMP46n sul', CRC e54dbadd4a0007b1-00 Video: InitExternalTextures Video: Initializing OpenGL Device Context. Video: Initializing video subsystem... Core: Setting 32-bit video mode: 640x480 Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1) Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24) Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24) Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-127-powerpc64-smp, LLVM 5.0.0) - 3.0 Mesa 17.2.8 : X.Org Video: OpenGL Extension 'GL_EXT_texture_filter_anisotropic' is supported. Video: OpenGL Extension 'GL_EXT_texture_format_BGRA8888' is NOT supported. Video: OpenGL Extension 'GL_NV_depth_clamp' is supported. Video: OpenGL Combiner: 2.1 Audio: Using resampler trivial Audio: Initializing SDL audio subsystem... Audio: Primary buffer: 16384 output samples. Audio: Primary target fullness: 10240 output samples. Audio: Secondary buffer: 2048 output samples. Audio: Requesting frequency: 44100Hz. Audio: Requesting format: 36880. Audio: Frequency: 44100 Audio: Format: 36880 Audio: Channels: 2 Audio: Silence: 0 Audio: Samples: 1024 Audio: Size: 4096 Input Warning: Couldn't open rumble support for joystick #1 Input Warning: Couldn't open rumble support for joystick #2 Input Warning: Couldn't open rumble support for joystick #3 Input Warning: Couldn't open rumble support for joystick #4 Debugger initialized. Core: Initializing 4 RDRAM modules for a total of 8 MB Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040. (dbg) run
It shows the "Mupen64Plus Started..." and I can not see anything else on the screen. Maybe some OpenGL issue??
But if I launch it without --debug flag it does not start at all, i.e. I do not see anything on the screen. No "Mupen64Plus Started..."
I had another try with a Super Mario 64 rom.
Here is the log:
debian@G5-desktop:~/packages/mupen64-main/test$ ./mupen64plus --verbose --debug ../../mupen64/roms/Super\ Mario\ 64\ (U)\ [!].z64
| / |_ _ _ __ ___ _ __ / /_ | || | | _ | |_ _ ___ | |/| | | | | '_ \ / _ \ '_ | '_ | || || |) | | | | / | | | | | || | |) | / | | | (_) | | __/| | || _
|| ||_,| ./ _|| ||_/ || || ||_,|/ || https://mupen64plus.org/ Mupen64Plus Console User-Interface Version 2.5.0UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.1 UI-Console: Includes support for MIPS r4300 Debugger. Core: Using full mem base Core: Goodname: Super Mario 64 (U) [!] Core: Name: SUPER MARIO 64 Core: MD5: 20B854B239203BAF6C961B850A4A51A2 Core: CRC: 635A2BFF 8B022326 Core: Imagetype: .z64 (native) Core: Rom size: 8388608 bytes (or 8 Mb or 64 Megabits) Core: ClockRate = F Core: Version: 1444 Core: Manufacturer: Nintendo Core: Cartridge_ID: 534D Core: Country: Unknown (0x4500) Core: PC = 80246000 Core: Save type: 0 UI-Console Status: Cheat codes disabled. UI-Console: using Video plugin: 'Mupen64Plus OpenGL Video Plugin by Rice' v2.5.0 UI-Console: Video plugin library: ./mupen64plus-video-rice.so UI-Console: using Audio plugin: 'Mupen64Plus SDL Audio Plugin' v2.5.0 UI-Console: Audio plugin library: ./mupen64plus-audio-sdl.so Input: Using auto-config file at: 'InputAutoCfg.ini' Input: Using auto-config file at: 'InputAutoCfg.ini' UI-Console: using Input plugin: 'Mupen64Plus SDL Input Plugin' v2.5.0 UI-Console: Input plugin library: ./mupen64plus-input-sdl.so UI-Console: using RSP plugin: 'Hacktarux/Azimer High-Level Emulation RSP Plugin' v2.5.0 UI-Console: RSP plugin library: ./mupen64plus-rsp-hle.so Input: 2 SDL joysticks were found. Input: Using auto-config file at: 'InputAutoCfg.ini' Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('usb gamepad ') Input: Using auto-config file at: 'InputAutoCfg.ini' Input: N64 Controller #2: Using auto-config with SDL joystick 1 ('usb gamepad ') Input: 2 controller(s) found, 2 plugged in and usable in the emulator Input Warning: Couldn't open rumble support for joystick #1 Input Warning: Couldn't open rumble support for joystick #2 Input Warning: Couldn't open rumble support for joystick #3 Input Warning: Couldn't open rumble support for joystick #4 Input: Mupen64Plus SDL Input Plugin version 2.5.0 initialized. RSP: RSP Fallback disabled ! Core: Game controller 0 (Standard controller) has a Memory pak plugged in Core: Game controller 1 (Standard controller) has nothing plugged in Core: Game controller 2 (Standard controller) has nothing plugged in Core: Game controller 3 (Standard controller) has nothing plugged in Core: Using CIC type X102 Video: Reading .ini file: RiceVideoLinux.ini Video: Disabled SSE processing. Video: Found ROM 'EPUSAM R OIR 46', CRC ff2b5a632623028b-4d Video: InitExternalTextures Video: Initializing OpenGL Device Context. Video: Initializing video subsystem... Core: Setting 32-bit video mode: 640x480 Video Warning: Failed to set GL_SWAP_CONTROL to 0. (it's 1) Video Warning: Failed to set GL_BUFFER_SIZE to 32. (it's 24) Video Warning: Failed to set GL_DEPTH_SIZE to 16. (it's 24) Video: Using OpenGL: AMD RV730 (DRM 2.43.0 / 4.4.0-127-powerpc64-smp, LLVM 5.0.0) - 3.0 Mesa 17.2.8 : X.Org Video: OpenGL Extension 'GL_EXT_texture_filter_anisotropic' is supported. Video: OpenGL Extension 'GL_EXT_texture_format_BGRA8888' is NOT supported. Video: OpenGL Extension 'GL_NV_depth_clamp' is supported. Video: OpenGL Combiner: 2.1 Audio: Using resampler trivial Audio: Initializing SDL audio subsystem... Audio: Primary buffer: 16384 output samples. Audio: Primary target fullness: 10240 output samples. Audio: Secondary buffer: 2048 output samples. Audio: Requesting frequency: 44100Hz. Audio: Requesting format: 36880. Audio: Frequency: 44100 Audio: Format: 36880 Audio: Channels: 2 Audio: Silence: 0 Audio: Samples: 1024 Audio: Size: 4096 Input Warning: Couldn't open rumble support for joystick #1 Input Warning: Couldn't open rumble support for joystick #2 Input Warning: Couldn't open rumble support for joystick #3 Input Warning: Couldn't open rumble support for joystick #4 Debugger initialized. Core: Initializing 4 RDRAM modules for a total of 8 MB Core: Starting R4300 emulator: Pure Interpreter
PC at 0xA4000040. (dbg) run (dbg) Audio: sdl_init_audio_device(): SDL Audio sub-system already initialized. Audio: Initializing SDL audio subsystem... Audio: Primary buffer: 16384 output samples. Audio: Primary target fullness: 10240 output samples. Audio: Secondary buffer: 2048 output samples. Audio: Requesting frequency: 44100Hz. Audio: Requesting format: 36880. Audio: Frequency: 44100 Audio: Format: 36880 Audio: Channels: 2 Audio: Silence: 0 Audio: Samples: 1024 Audio: Size: 4096 Core: apply_speed_limiter(): Waiting 13ms Core: apply_speed_limiter(): Waiting 24ms Core: apply_speed_limiter(): Waiting 27ms Core: apply_speed_limiter(): Waiting 21ms Core: apply_speed_limiter(): Waiting 12ms Core: apply_speed_limiter(): Waiting 7ms Core: apply_speed_limiter(): Waiting 9ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 20ms Core: apply_speed_limiter(): Waiting 20ms Core: apply_speed_limiter(): Waiting 17ms Core: apply_speed_limiter(): Waiting 14ms Core: apply_speed_limiter(): Waiting 12ms Core: apply_speed_limiter(): Waiting 13ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 17ms Core: apply_speed_limiter(): Waiting 18ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 14ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 16ms Core: apply_speed_limiter(): Waiting 15ms Core: apply_speed_limiter(): Waiting 2ms
I clearly hear the voice: "It's me Mario" but nothing on the screen... And the apply_speed_limiter() string on the console...
May I use another video plugins instead of Rice? Just to see if there are some other hint?
On Mon, May 28, 2018 at 3:29 PM, Richard Goedeken < [email protected]> wrote:
The fix is here, in the trunk of mupen64plus-core (no branch).
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mupen64plus/mupen64plus-core/issues/506#issuecomment-392527365, or mute the thread https://github.com/notifications/unsubscribe-auth/AhTUDpLcA2y80FfjKGsHcCvVdixhoKfUks5t2_u9gaJpZM4ROs0_ .
-- Ciao e buona giornata.
"GP! In mezzo al campo stai proprio schifoso!" Coach M.Russo
-- Ciao e buona giornata.
"GP! In mezzo al campo stai proprio schifoso!" Coach M.Russo