barbudreadmon / fbalpha-backup-dontuse-ty

Deprecated port of Final Burn Alpha to Libretro (v0.2.97.43).
61 stars 43 forks source link

Compilation fails for PS3 build #148

Closed ghost closed 6 years ago

ghost commented 7 years ago

I just compiled 'fbalpha2012' just fine for PS3, but this one wont compile, I think there is something wrong in the makefile.

inactive123 commented 7 years ago

if modern FB Alpha uses C++11 now, then unfortunately it will no longer compile with the PS3 SDK. We'd have to backport relevant stuff to FBA 2012 then, which was still on C++98.

I'll let @barbudreadmon comment though in case I am getting it wrong here.

Also ,long time no see, @CaptainCPS !

ghost commented 7 years ago

Hey! Thanks for the quick reply, yeah I had some difficulties in life, and the job I have wont give me much free time, but recently I was able to get another PS3 and been slowly trying to get back into my old projects, or at least update them, been thinking about updating FB Alpha Retro Loader.

I hope something can be done at some point to build this for PS3, there have been so many fixes and additions in this one.

Thanks for your time @twinaphex !! I appreciate it! šŸ‘

inactive123 commented 7 years ago

No problem, good to see you're still around and that the old timers haven't yet all left the building yet.

barbudreadmon commented 7 years ago

I don't think there is any c++11 code enabled in the current libretro-fbalpha code. The only c++11 code in current upstream release should be for midway hardware, which is disabled in libretro.

Le 14 aoƻt 2017 5:25 AM, "Twinaphex" notifications@github.com a Ʃcrit :

No problem, good to see you're still around and that the old timers haven't yet all left the building yet.

ā€” You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/libretro/fbalpha/issues/148#issuecomment-322092095, or mute the thread https://github.com/notifications/unsubscribe-auth/AJ6O4eL8qOyTVUQj7oSRrsxmkDZ8-_wLks5sX74ugaJpZM4O14tT .

ghost commented 7 years ago

Yay! I don't know how it will work, but I was able to compile it (platform=ps3) after doing a few changes in the makefile, removing <math.h> from "driver.h" and adding it on the source files that needed it (like 7 files). I am tired and will go to bed in a few, but if it works, tomorrow I'll add the changes to my fork after I come from work.

EDIT: Had to add "defined(__CELLOS_LV2__)" to ioapi.c to avoid RetroArch linking errors as well. Now I just have to see if it runs xD lol

EDIT2: Since I couldn't build the PS3 PKG (shaders, etc) I used the one released recently and repackaged it with my new compiled core, replacing the 2012 one, so far I tested Street Fighter 2, Metal Slug, Metal Slug 4 and Street Fighter 3 (sfiii3r1) and they all work well. I will do more tests when I get more free time, I really need to sleep now xD.

Btw, I'm on Rebug REX (CEX) CFW v4.81.2

EDIT3: I just figured out that there are other repos for rdb, assets, shaders, etc, I was cracking my head last night LOL, I'm heading out for work now, but after I come back in the night I will clean up everything and make my changes available in my RetroArch / FBAlpha libretro forks.

ghost commented 7 years ago

Here are the minimal version of the changes to fix the PS3 build, idk if it breaks other builds, but at least for me is good xD.

Tested compilation on:

https://github.com/CaptainCPS/fbalpha/commit/4e8c27775e0e5ecfd2c9ca998dc691d2a8fbeacb

@twinaphex @barbudreadmon

SeeYa! :)

barbudreadmon commented 7 years ago

Just confirm me that moving math.h is necessary then i will do the needed changes

ghost commented 7 years ago

It seems weird moving math.h from driver.h to burnint.h , but I just confirmed that leaving it as it was will cause this build error on all 3 environments (Cygwin, Msys and Msys2).

Edit: Attached screenshot as well.

c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1368: error: declaration of C function 'long double std::round(long double)' conflicts with c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1016: error: previous declaration 'float std::round(float)' here c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1373: error: declaration of C function 'long double std::scalbn(long double, int)' conflicts with c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1021: error: previous declaration 'float std::scalbn(float, int)' here c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1378: error: declaration of C function 'long double std::scalbln(long double, long int)' conflicts with c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1026: error: previous declaration 'float std::scalbln(float, long int)' here c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1383: error: declaration of C function 'long double std::tgamma(long double)' conflicts with c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1031: error: previous declaration 'float std::tgamma(float)' here c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1388: error: declaration of C function 'long double std::trunc(long double)' conflicts with c:/usr/local/cell/host-win32/ppu/bin/../../../target/ppu/include/math.h:1036: error: previous declaration 'float std::trunc(float)' here /c/usr/local/cell/host-win32/ppu/bin/ppu-lv2-g++.exe -std=gnu++98 -O3 -DNDEBUG -Wno-write-strings -DGIT_VERSION=\"" 2d6355d"\" -DPTR64 -DEXTERNAL_ZLIB -DINCLUDE_7Z_SUPPORT -D__LIBRETRO__ -DWORDS_BIGENDIAN -D__CELLOS_LV2__ -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DUSE_SPEEDHACKS -DFASTCALL -U__fastcall -D__fastcall="" -DTOAPLAN_SOUND_SAMPLES_HACK -fforce-addr -finline-limit=1200 -fcheck-new -Wall -W -Wshadow -Wno-long-long -Wno-write-strings -Wunknown-pragmas -Wundef -Wno-conversion -Wno-missing-braces -Wno-multichar -Wuninitialized -Wpointer-arith -Wno-inline -Wno-unused-value -Wno-sequence-point -Wno-extra -Wno-strict-aliasing -DFRONTEND_SUPPORTS_RGB565 -Isrc/burner/win32 -Isrc/burner/libretro -Isrc/burner/libretro/tchar -Isrc/burn -Isrc/cpu -Isrc/burn/snd -Isrc/burn/devices -Isrc/intf -Isrc/intf/input -Isrc/intf/cd -Isrc/intf/audio -Isrc/burner -Isrc/cpu -Isrc/cpu/i8039 -Isrc/cpu/i8051 -Isrc/cpu/tms32010 -Isrc/cpu/upd7725 -Isrc/cpu/upd7810 -Isrc/cpu/v60 -Isrc/dep/libs/zlib -Isrc/dep/libs/lib7z -Isrc/burn/drv/capcom -Isrc/burn/drv/konami -Isrc/burn/drv/dataeast -Isrc/burn/drv/cave -Isrc/burn/drv/neogeo -Isrc/burn/drv/psikyo -Isrc/burn/drv/sega -Isrc/burn/drv/toaplan -Isrc/burn/drv/taito -Isrc/dep/generated -Isrc/dep/libs -c src/burn/burn_memory.cpp -o src/burn/burn_memory.o make: *** [makefile.libretro:692: src/burn/hiscore.o] Error 1 make: *** Waiting for unfinished jobs....

In the following days I will publish my changes at psx-place dev forums so others can test these changes too. I feel like there might be something else in the makefile that needs to be modded in order to avoid moving math.h, but so far I haven't figured out what is it.

@barbudreadmon @twinaphex

2017-08-16_7-37-29

SeeYa! :)

barbudreadmon commented 7 years ago

There is something very wrong about this, it basically says your math.h is in conflict with himself, could you upload your math.h somewhere so i can take a look ?

ghost commented 7 years ago

sure, when I get home I'll upload it :), btw I think probably is something defined in driver.h or somewhere else that makes it conflict. Because I find it weird that when included from burnint.h it behaves properly. maybe there is some declaration that when includes math is interpreting it as multiple variations, just a theory.

And it doesn't conflict on fbalpha 2012 repo, I will compare the headers when I get home as well to try and see if there is something going on.

Thanks for you time!

ghost commented 7 years ago

Here you have math.h @barbudreadmon

math.zip

SeeYa! :)

ghost commented 7 years ago

Reverted changes at "burn/driver.h", there was no need to comment "#include " in there. Was just needed at "burn/burnint.h" as well to avoid build problems.

https://github.com/CaptainCPS/fbalpha/commit/34d0c3a80d41d42d95919a503d99624a3b761469

I will call it fixed on my end, it shouldn't break anything :P. Now I will continue to test romsets and see if problems previously reported on older FB Alpha 2012 are fixed in this build.

SeeYa! :)

barbudreadmon commented 7 years ago

What about moving this "#include " from "burn/burnint.h" to "burner/libretro/burn_endian.h" in the ps3 part of the file next to "#include " ? It should do the trick and would be cleaner.

Btw, don't expect any reply from me for the next 2 days, i won't be at home.

ghost commented 7 years ago

Oh I will try that! thanks! :)

EDIT: Yeah that worked as well. In the makefile I will add a condition to the warning flags that I commented to be specific for ps3 build, to avoid issues with other builds.

SeeYa! :)

ghost commented 7 years ago

There we go!

https://github.com/CaptainCPS/fbalpha/commit/ea5640eb64d6c0858ccd4fb2477d9945c7c34ca6

:)

barbudreadmon commented 6 years ago

Is it still building successfully for ps3 ? Can i close ?