ROLL BOSS RUSH -{Homebrew Project}-(PSX/PSone/Playstation)

Discussion in 'Sony Programming and Development' started by isufje, Jun 28, 2012.

  1. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    [​IMG]

    This is an ongoing PSOne Project of mine. It's a 2D Action Shmupformer where you play Megaman's sister, Roll. I kinda reworked her shape a little ^_^...

    Anyway, the game is not complete, it currently has (8 bosses and 1 MEGA BOSS), and the difficultly level is kinda up there on the harder settings. This will play on real hardware in 320x240 resolution as well as ePSXe at 640x480. I have not tried it in any other form, like on a psp or something, but i'm pretty sure it'd work. (i did, however, try it on an OUYA running ePSXe for android at 640x480 in game resolution and it runs fine. And according to PSX-SCENE it runs on a PS3) If anyone is interested, I've included the source code, although it is a mess. (If anyone wants to do optimizations to the code, be my guest :) you will get all my appreciation for your efforts regardless)

    UPDATED 12-01-2015
    DownloadGame: https://www.dropbox.com/s/plw55ayog3iru4z/rbr_110a.rar?dl=1
    Source Code: https://www.dropbox.com/s/9304ssd7fa11zat/source_110a.rar?dl=1


    Youtube - Glitches

    Any feedback would be nice.
     
    Last edited: Dec 1, 2015
  2. tails92

    tails92 Spirited Member

    Joined:
    Sep 29, 2008
    Messages:
    197
    Likes Received:
    3
    Thank you for posting this good piece of work. :)
    I am PSX homebrew developer as well, and like me you know how hard it is too see stuff like this still being made.
    Keep up the work!
     
  3. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    I don't know what to say... Thanks for those kind words.
     
  4. Gemini

    Gemini Retro developer

    Joined:
    Apr 1, 2008
    Messages:
    406
    Likes Received:
    88
    Definitively the best PlayStation homebrew I've ever seen, especially because Roll is involved. :D
     
  5. pool7

    pool7 Site Supporter 2014

    Joined:
    Mar 4, 2008
    Messages:
    1,268
    Likes Received:
    134
    Very interesting!
    Thanks for sharing both the game and its source code!!!

    Keep it up, and I hope you get to finish it :)
     
  6. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    Yeah, I'll be uploading some better source soon. I'm currently trying to improve load times. The ISO and the source were just dumped immediately after i completed boss #5 before I could double check what I was uploading. And thanx for all the comments.
     
  7. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    ok, better loading version has been uploaded.
     
  8. gladiator5

    gladiator5 Robust Member

    Joined:
    Jun 25, 2012
    Messages:
    284
    Likes Received:
    17
    looks very nice.
    it would be so happy if i can make even something like that :p
     
  9. GENERiC

    GENERiC Active Member

    Joined:
    Dec 2, 2009
    Messages:
    26
    Likes Received:
    0
    It's always good to see that there are still coders who like challenging this great console that every time brings back some memories and nostalgia. The spirit haven't died yet and hopefully he will be alive for ever. Keep good work mate. ;)
     
  10. jaunelapin

    jaunelapin Spirited Member

    Joined:
    Oct 25, 2011
    Messages:
    195
    Likes Received:
    88
    Hell yeah, PsX Homebrew, long ago, but not forgotten :)


    Thanks a lot, I'm sure it's an awesome game (I hope I will get by playing it this weekend)
     
    Last edited: Jul 13, 2012
  11. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    Last edited: Sep 24, 2013
  12. Gemini

    Gemini Retro developer

    Joined:
    Apr 1, 2008
    Messages:
    406
    Likes Received:
    88
    Give this man an award for great sense of humour (bouncing 2D boobs cracked me up) and for bringing back good old memories.
     
  13. Johnny

    Johnny Gran Turismo Freak and Site Supporter 2013,2015

    Joined:
    Mar 14, 2004
    Messages:
    6,230
    Likes Received:
    397
    Nice to see you're still working on this
     
  14. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
  15. Piratero

    Piratero Peppy Member

    Joined:
    Feb 28, 2009
    Messages:
    367
    Likes Received:
    8
    Amazing work!

    I took a look at your source code... and if you could clean it up a bit... that would be great...
     
  16. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    sure... i'll try.
    is there anything in particular that you would like clarified?
    files marked... "code_XXX.h" are designated as main code for each boss, where "XXX" is the name of the boss (i.e. ICE)
    files marked "XXX2m.c" are designated compile files. these are the files you compile to produce the XXX2.exe file.
    Each boss has 2 main exe files. XXX1.exe and XXX2.exe ...where XXX1.exe is the boot file for XXX2.exe, the main executable.
    To compile a boot file XXX1.exe ...you have to compile the file marked "XXX1.c"
    files marked "MAP_XXX.h" are pretty much the collision detection for each stage (i.e. Stage Layout)
    the file "map_001_ROLLa.PNG" is a visual description of what each number means, so u can build your own map (piece of cake)
    "JUMBOJUNK.h" is pretty much the mother of all functions file. It includes all significant & useful functions that are not boss specific.
    for example... distance_calc(int *DIST,float x0,float y0,float x1,float y1) <- calculates distance between any 2 objects.
    another example... draw_circle (float *my_X,float *my_Y,float centerX,float centerY,float DIAMETER,float speed,int *stored_angle) <- put a point in a circular orbit of any given diameter and any given speed... and even stores the angle too ;)
    "ROLL_WEAPONS.h" contains all of Roll's weapons functions. If you want to make a new weapon, this is the place to start.
    "SHOOT_2_HIT.h" contains all of the weapons damage calculations. If you want to make a new weapon actually do damage, this is the place to start.
    "UNIHEAD.h" contains all important variables and proto-types, Such as Roll's HP or Button Variables such as square or triangle.
    "UNIDEC.h" and "UNIBIT.h" contain all universal variables that span across EXE files. These bits do not change or go away per EXE load. They stay forever, such as the "MUTE_FLAG" or the "REVERB_FLAG" note: they can be pretty much located anywhere that data is not loaded or over-written on a constant basis...

    please note that all file sizes and universal variables have to be micro managed by you. Every single file size is predetermined at compile time. there is not "size of" functions used in the entire source code. When a file changes size, you have to manually type in the new changed file size otherwise shit might crash or behave oddly :p

    "Grey_Area_TYPE1.h" and "Grey_Area_TYPE2.h" are pretty much the collision detection functions. Type 1 is for static maps and Type 2 is for scrolling maps. simple huh :)

    "ani_XXX.h" pretty much contains each characters animation.

    if there are any specific question just ask.

    There's no MAKE_GAME() function... u have 2 do it urself ;)

    edit:

    Oh, i forgot to add... when u compile the file "XXX2m.c" ... it has to be at address 0x8001A000
    and when u compile the file file "XXX1.c" ... it has to be at address 0x80010000.
     
    Last edited: Mar 6, 2014
  17. Gemini

    Gemini Retro developer

    Joined:
    Apr 1, 2008
    Messages:
    406
    Likes Received:
    88
    If you wanted to improve the code and make the whole thing perform much better, I would suggest you to use overlays instead of a lot of executables. Also, don't use float, libm is quite slow - use fixed point calculation instead.
     
  18. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    i can't use fixed point... (long story)
    i'll look into/ consider overlays... Can u explain to me about overlays again ;) - and why are they so much better

    edit:

    Also, the GTE sin and cosin calculations are what i'm usings, not libmath. I tried that and you are right, it is slow as a MF. GTE calculations are pretty fast and pretty much fixed point math with a set resolution.
     
    Last edited: Mar 6, 2014
  19. Gemini

    Gemini Retro developer

    Joined:
    Apr 1, 2008
    Messages:
    406
    Likes Received:
    88
    Overlays are like DLLs on Windows, more or less. They are simply child executables including pieces of code dependent from a father executable (or another overlay in a higher position in the hierarchy). Since you need only one executable, it means that once libraries and engine are compiled, you don't have to embed them ever again. This will produce much smaller code, link faster, create less redundancy, and reduce your loading time as a side effect. If you can also compress the assets, you're basically cutting the cd load in half (depending on your assets, of course).

    As for the GTE, if you're having slowdowns, I would suggest you to use the gte macro library instead of the default functions libgte provides. If you also take advantage of the scratchpad trick (move stack pointer to scratchpad, render, restore stack), you can bump up the speed quite a bit on real hardware.
     
    Last edited: Mar 7, 2014
  20. isufje

    isufje Active Member

    Joined:
    Jun 12, 2012
    Messages:
    38
    Likes Received:
    8
    That GTE inline macro thing is intesting, and i've read about it before. The only problem is that it's only for GTE functions and I only use a handfull of GTE calc funtions. It does nothing for Graphics Rendering time because, unfortunately, i'm using the GS Graphics library functions for rendering. That's probably the reason why everything renders so slow, too much overhead from the GS Graphics library. I'd have to reorganize everything to run thru the GTE and libGPU libraries, which is a pain (Even tho they give me more controller over everything Graphics wise/) I know libGS sucks when it comes to performance... but hey, what can i say? It was so freaking turnkey that i couldn't help myself but use it :) [now i'm paying the price :-(
     
    gwald likes this.
sonicdude10
Draft saved Draft deleted
Insert every image as a...
  1.  0%

Share This Page