don't click here

PROSONIC IS NOW OPEN SOURCE

Discussion in 'Fangaming Discussion' started by saxman, Jul 16, 2008.

Thread Status:
Not open for further replies.
  1. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    Hmm... Looks like there are a few things that need to be changed to make it work with UNIX systems, but overall, it still is as portable as it was last year.
     
  2. GHFan

    GHFan

    Member
    67
    0
    6
    For those of us who lack coding skills, could someone upload an EXE for this version of ProSonic? I would love to mess around with it a bit.
     
  3. Polygon Jim

    Polygon Jim

    Eternal Tech Member
    0
    3
    0
    across town from Hinchy
    All the bitches.
    There already is one. Go to the /bin folder and open DrawScreen.exe.
     
  4. Mad Echidna

    Mad Echidna

    Gone Oldbie
    5,219
    0
    0
    Really? Such as?

    I was all excited till now, I was going to try to compile it on Haiku :P

    Also, THANK YOU for releasing this Saxman, it's very generous of you! I do think you should probably pick a "real" license for it though, based on your post you'd probably be good with the MIT license http://www.opensource.org/licenses/mit-license.php

     
  5. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Only reason it's not building for me is a buuuuunch of "undefined reference to `procode_process_number'" and "undefined reference to `procode_playfm'" I have all the other libraries linking perfectly....

    Edit: Scratch that, there are a few more, anything procode_* isn't linking for some reason....
     
  6. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    It's pretty much implicitly PD, so you could relicense it whatever which way. In my case, I'm either going to use {L}GPL. In the current state, the codebase will NOT compile on Unix systems because it uses keywords reserved by the POSIX standard, among other things.
     
  7. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    I'm having no issues building on Linux aside from what I mentioned above, ld not finding any of the procode_* stuff.
     
  8. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    For me, the network code errors out because of the "socket" keyword being used as a variable. I just renamed it and it pretty much compiled. Right now, I'm organizing the code with scripts so that it can compile out of the box on Windows, Mac, Linux, Haiku, etc. I'll push it up to a Mercurial repository as soon as it is done.
     
  9. saxman

    saxman

    Oldbie Tech Member
    I tested the source on my laptop (which I've never compiled it on before), and after reworking a few minor things, it compiled just fine. What are you using to compile and link it? I'm using everything that comes packaged with Dev-C++, the compiler being MinGW.


    Yes, unfortunately most things I code start out neat, but quickly get sloppy. It would probably be a good idea if someone cleaned house a bit and made the code a bit more uniform. Your suggestions are all very good, though I disagree with the 68000 part. I feel that could really be a powerful feature of the engine if it was completed. It's definitely not a crucial part of the engine though.


    Well, I didn't do it for anyone but myself really. After my hard drive crashed, I thought for a while that my entire ProSonic source code was completely gone. It was only until I discovered a backup I forgot I made on this laptop I'm using that I realized everything was safe. That put everything into perspective for me though, and I felt that I would rather have the thing out there so everyone has a copy instead of me having the only copy and being at great risk of losing all my hard work.

    Regardng the license though, I don't see the point. My Readme.txt is a good enough license. I have nothing to protect. I'm putting it out there for a free-for-all, so it doesn't need a real license.
     
  10. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    @saxman (as to not quote that whole thing X_X): Just plain old gcc 4.4.3 with all the ld and cflags passed myself as the ones in makefile.win were all windowsy, although I did adapt all the build stuff from the Windows makefile. Everything compiled to object code with no errors, it's just the final link that isn't working for whatever reason. This is my code

    (Used quote b/c code goes offscreen)
     
  11. Techokami

    Techokami

    For use only on NTSC Genesis systems Researcher
    1,374
    84
    28
    HoleNet!
    Sonic Worlds Next
    Aw, but Mercurial is so damn complicated when it comes to contributing back :(
     
  12. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Well, pulled off a linux build, after a bit of work and elbowgrease. It's... I dunno, I think it could at least half be because I'm running on 64-bit, but there is no BGM, sound effects are shoddy, that sorta thing, not like the windows version. I'm gonna record a video of it in action on linux.

    Edit: Here's a video, no audio though, for some reason the audio backend of ProSonic doesn't like to share with anything else. I can't run any capture on audio as it depends on ALSA and ProSonic locks ALSA to itself for some reason....


    Video: http://www.maxilamba.com/flash.html?video=...grammes/out.flv

    Just tell me if everything looks in order.
     
  13. saxman

    saxman

    Oldbie Tech Member
    That's not right. Something is screwed up with the scripting in that video. I don't know if it's the game.pc file itself, or the script interpreter. I know this because "zone warp" shouldn't be appearing in the corner of the screen, and the HUD numbers should be showing up. I'm not sure what's going on on your end.

    I don't know if this would be useful to resolving the sound issues at all, but you can try uncommenting the "AUDIO_REC_ENABLED" in the common.h file to make sure that ProSonic is actually streaming the audio correctly.
     
  14. SegaLoco

    SegaLoco

    W)(at did you say? Banned
    Ah, I'll try that. As for the hud stuff, I know what you mean, I ran the windows binary in wine and it had all the proper zone warps and stuff. It's something in the X11 code I think. Whenever I close it, it crashes and gives me a backtrace with a bunch of X11 modules that messed up. I'll get you a printout of that.

    Edit: Nope, no affect.

    Code (Text):
    1. segaloco@segaloco-desktop:~/Desktop/Prosonic Source/bin$ ./DrawScreen
    2. *** glibc detected *** ./DrawScreen: free(): invalid pointer: 0x0000000000755480 ***
    3. ======= Backtrace: =========
    4. /lib/libc.so.6(+0x775b6)[0x7f51016a65b6]
    5. /lib/libc.so.6(cfree+0x73)[0x7f51016ace53]
    6. ./DrawScreen[0x415764]
    7. ./DrawScreen[0x41d117]
    8. /lib/libc.so.6(__libc_start_main+0xfd)[0x7f510164dc4d]
    9. ./DrawScreen[0x40bd99]
    10. ======= Memory map: ========
    11. 00400000-00522000 r-xp 00000000 08:11 1313901                            /home/segaloco/Desktop/Prosonic Source/bin/DrawScreen
    12. 00722000-00723000 r-xp 00122000 08:11 1313901                            /home/segaloco/Desktop/Prosonic Source/bin/DrawScreen
    13. 00723000-00735000 rwxp 00123000 08:11 1313901                            /home/segaloco/Desktop/Prosonic Source/bin/DrawScreen
    14. 00735000-0085f000 rwxp 00000000 00:00 0
    15. 00a3d000-010d5000 rwxp 00000000 00:00 0                                  [heap]
    16. 7f50f8000000-7f50f8021000 rwxp 00000000 00:00 0
    17. 7f50f8021000-7f50fc000000 ---p 00000000 00:00 0
    18. 7f50ff0e8000-7f50ff0e9000 ---p 00000000 00:00 0
    19. 7f50ff0e9000-7f50ff8e9000 rwxp 00000000 00:00 0
    20. 7f50ff8e9000-7f50ff8ea000 ---p 00000000 00:00 0
    21. 7f50ff8ea000-7f51000ea000 rwxp 00000000 00:00 0
    22. 7f51000ea000-7f51000f1000 r-xp 00000000 08:11 6476                       /lib/librt-2.11.1.so
    23. 7f51000f1000-7f51002f0000 ---p 00007000 08:11 6476                       /lib/librt-2.11.1.so
    24. 7f51002f0000-7f51002f1000 r-xp 00006000 08:11 6476                       /lib/librt-2.11.1.so
    25. 7f51002f1000-7f51002f2000 rwxp 00007000 08:11 6476                       /lib/librt-2.11.1.so
    26. 7f51003b4000-7f51003ca000 r-xp 00000000 08:11 552                        /lib/libgcc_s.so.1
    27. 7f51003ca000-7f51005c9000 ---p 00016000 08:11 552                        /lib/libgcc_s.so.1
    28. 7f51005c9000-7f51005ca000 r-xp 00015000 08:11 552                        /lib/libgcc_s.so.1
    29. 7f51005ca000-7f51005cb000 rwxp 00016000 08:11 552                        /lib/libgcc_s.so.1
    30. 7f51005cb000-7f51005d7000 r-xp 00000000 08:11 6469                       /lib/libnss_files-2.11.1.so
    31. 7f51005d7000-7f51007d6000 ---p 0000c000 08:11 6469                       /lib/libnss_files-2.11.1.so
    32. 7f51007d6000-7f51007d7000 r-xp 0000b000 08:11 6469                       /lib/libnss_files-2.11.1.so
    33. 7f51007d7000-7f51007d8000 rwxp 0000c000 08:11 6469                       /lib/libnss_files-2.11.1.so
    34. 7f51007d8000-7f51007dd000 r-xp 00000000 08:11 263977                     /usr/lib/libXdmcp.so.6.0.0
    35. 7f51007dd000-7f51009dc000 ---p 00005000 08:11 263977                     /usr/lib/libXdmcp.so.6.0.0
    36. 7f51009dc000-7f51009dd000 r-xp 00004000 08:11 263977                     /usr/lib/libXdmcp.so.6.0.0
    37. 7f51009dd000-7f51009de000 rwxp 00005000 08:11 263977                     /usr/lib/libXdmcp.so.6.0.0
    38. 7f51009de000-7f51009e0000 r-xp 00000000 08:11 263805                     /usr/lib/libXau.so.6.0.0
    39. 7f51009e0000-7f5100be0000 ---p 00002000 08:11 263805                     /usr/lib/libXau.so.6.0.0
    40. 7f5100be0000-7f5100be1000 r-xp 00002000 08:11 263805                     /usr/lib/libXau.so.6.0.0
    41. 7f5100be1000-7f5100be2000 rwxp 00003000 08:11 263805                     /usr/lib/libXau.so.6.0.0
    42. 7f5100be2000-7f5100be7000 r-xp 00000000 08:11 271435                     /usr/lib/libXfixes.so.3.1.0
    43. 7f5100be7000-7f5100de6000 ---p 00005000 08:11 271435                     /usr/lib/libXfixes.so.3.1.0
    44. 7f5100de6000-7f5100de7000 r-xp 00004000 08:11 271435                     /usr/lib/libXfixes.so.3.1.0
    45. 7f5100de7000-7f5100de8000 rwxp 00005000 08:11 271435                     /usr/lib/libXfixes.so.3.1.0
    46. 7f5100de8000-7f5100df1000 r-xp 00000000 08:11 264984                     /usr/lib/libXrender.so.1.3.0
    47. 7f5100df1000-7f5100ff0000 ---p 00009000 08:11 264984                     /usr/lib/libXrender.so.1.3.0
    48. 7f5100ff0000-7f5100ff1000 r-xp 00008000 08:11 264984                     /usr/lib/libXrender.so.1.3.0
    49. 7f5100ff1000-7f5100ff2000 rwxp 00009000 08:11 264984                     /usr/lib/libXrender.so.1.3.0
    50. 7f5100ff2000-7f510100d000 r-xp 00000000 08:11 264851                     /usr/lib/libxcb.so.1.1.0
    51. 7f510100d000-7f510120c000 ---p 0001b000 08:11 264851                     /usr/lib/libxcb.so.1.1.0
    52. 7f510120c000-7f510120d000 r-xp 0001a000 08:11 264851                     /usr/lib/libxcb.so.1.1.0
    53. 7f510120d000-7f510120e000 rwxp 0001b000 08:11 264851                     /usr/lib/libxcb.so.1.1.0
    54. 7f510120e000-7f5101210000 r-xp 00000000 08:11 4081                       /lib/libdl-2.11.1.so
    55. 7f5101210000-7f5101410000 ---p 00002000 08:11 4081                       /lib/libdl-2.11.1.so
    56. 7f5101410000-7f5101411000 r-xp 00002000 08:11 4081                       /lib/libdl-2.11.1.so
    57. 7f5101411000-7f5101412000 rwxp 00003000 08:11 4081                       /lib/libdl-2.11.1.so
    58. 7f5101412000-7f510142a000 r-xp 00000000 08:11 6474                       /lib/libpthread-2.11.1.so
    59. 7f510142a000-7f5101629000 ---p 00018000 08:11 6474                       /lib/libpthread-2.11.1.so
    60. 7f5101629000-7f510162a000 r-xp 00017000 08:11 6474                       /lib/libpthread-2.11.1.so
    61. 7f510162a000-7f510162b000 rwxp 00018000 08:11 6474                       /lib/libpthread-2.11.1.so
    62. 7f510162b000-7f510162f000 rwxp 00000000 00:00 0
    63. 7f510162f000-7f51017a7000 r-xp 00000000 08:11 1422                       /lib/libc-2.11.1.so
    64. 7f51017a7000-7f51019a7000 ---p 00178000 08:11 1422                       /lib/libc-2.11.1.so
    65. 7f51019a7000-7f51019ab000 r-xp 00178000 08:11 1422                       /lib/libc-2.11.1.so
    66. 7f51019ab000-7f51019ac000 rwxp 0017c000 08:11 1422                       /lib/libc-2.11.1.so
    67. 7f51019ac000-7f51019b1000 rwxp 00000000 00:00 0
    68. 7f51019b1000-7f51019c1000 r-xp 00000000 08:11 265079                     /usr/lib/libXpm.so.4.11.0
    69. 7f51019c1000-7f5101bc0000 ---p 00010000 08:11 265079                     /usr/lib/libXpm.so.4.11.0
    70. 7f5101bc0000-7f5101bc1000 r-xp 0000f000 08:11 265079                     /usr/lib/libXpm.so.4.11.0
    71. 7f5101bc1000-7f5101bc2000 rwxp 00010000 08:11 265079                     /usr/lib/libXpm.so.4.11.0
    72. 7f5101bc2000-7f5101bc7000 r-xp 00000000 08:11 262896                     /usr/lib/libXxf86vm.so.1.0.0
    73. 7f5101bc7000-7f5101dc6000 ---p 00005000 08:11 262896                     /usr/lib/libXxf86vm.so.1.0.0
    74. 7f5101dc6000-7f5101dc7000 r-xp 00004000 08:11 262896                     /usr/lib/libXxf86vm.so.1.0.0
    75. 7f5101dc7000-7f5101dc8000 rwxp 00005000 08:11 262896                     /usr/lib/libXxf86vm.so.1.0.0
    76. 7f5101dc8000-7f5101dd1000 r-xp 00000000 08:11 271439                     /usr/lib/libXcursor.so.1.0.2Aborted
    Dunno if that will help any, but there's what I got out of it.
     
  15. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    What version for Allegro are you using? If it is 4.2.x, update to 4.4.x and recompile. I've had lots of issues with 4.2.x in ProSonic. I've talked to some developers of Allegro while I was porting it to work properly on Linux last year and they told me they recently made quite a few fixes in 4.4.x that resolved issues in sound and display that I described to them. It is quite possible that your issue may be resolved in 4.4.x.

    If not, then please file a bug here.


    I'll try to make a Subversion or CVS mirror then, but I make no promises. Mercurial is pretty easy in my opinion, and there's a very well written tutorial for it for those unfamiliar with the system.
     
  16. saxman

    saxman

    Oldbie Tech Member
    I've got to say, the repository makes me really excited. I hope a good number of people contribute and really make something groundbreaking out of this!

    Taxman made some suggestions I felt were pretty good. I think it'd be cool to collect a list of suggestions from many different people and come together with a solid agreement as to what should be done to improve the engine and such.

    I feel the scripting language needs to be expanded to do many more things. At the point at which I stopped in the source, I had started making way to support scripting of enemies. I recall there being a problem with the way the object manager handled moving objects though, so that's probably an important issue to resolve. The network code doesn't function at all and was left incomplete, so I think that too is an area that could be improved. Finally, the code really needs to be reorganized so that it's easier to find stuff, and as Taxman suggested, following basic naming conventions which I failed to do at times. All of these things are what I feel should be the focus for any upcoming work on the engine in the near future. Of course, it's entirely up to you guys.

    Also, if anyone can come up with level drawing code that is faster than mine, I want to see it in action! I optimized the hell out of my code, and although I was proud of it, it's nowhere as fast as Taxman's Retro engine (run ProSonic on an old Pentium II machine and watch it choke on frames per second.)
     
  17. Liliam

    Liliam

    Oldbie
    1,563
    117
    43
    Just don't make it a community project, or else you'll have people stuck deciding how to name a variable for two and a half months.
     
  18. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    I've populated the repository. Information on how to checkout and make public clones is here. The system uses Mercurial. If you are unfamiliar with Mercurial and/or familiar with SVN or any other revision control system, check out this tutorial site to help you get started. The tutorial is also useful to those unfamiliar with revision control altogether.
     
  19. Harmony Friends

    Harmony Friends

    it's the whole gang Oldbie
    Hey, if I could chime in, please only use GPL if you find it necessary. LGPL's a little better. I just don't like the idea of using the ProSonic engine to make a fangame and then under the GPL being forced to release the source to your Sonic fangame, because then a million people will recolor your sprites and call it their "MODDED VERSION!!".

    Just my $0.02.
     
  20. Conan Kudo

    Conan Kudo

    「真実はいつも一つ!」工藤新一 Member
    478
    1
    18
    Umm. The GPL only applies to CODE. Content, such as sprites, and music do not fall under this license. An exception is in place that allows *.pcs (ProCode script) files to not require being under the GPL.

    There's a clarifying file called "LICENSE-EXCEPTIONS.txt" in the root of the source tree now that explains this.
     
Thread Status:
Not open for further replies.