Pages: 1 2 [3]
  Print  
Author Topic: Project Mario  (Read 17796 times)
Offline (Unknown gender) fervi
Reply #30 Posted on: June 02, 2014, 05:21:22 AM
Member
Joined: Feb 2013
Posts: 78

View Profile Email
http://gmclan.org/up6184_0_enigma_mario.html

I got error when I compile mario
Report it?

Fervi
Logged
Offline (Male) Goombert
Reply #31 Posted on: June 02, 2014, 09:53:34 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3151

View Profile
Fervi, it is unlikely to build for Linux right now because there are no working INI functions for XLIB yet.
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) sorlok_reaves
Reply #32 Posted on: June 13, 2014, 07:52:21 PM
Contributor
Joined: Dec 2013
Posts: 261

View Profile
I was able to get Project Mario to build and run on Linux with the Ini Extension. There's a few problems with it though:

1) Some random bugs. I'll file a pull request with my fixes.

2) Textures (or more likely polygons?) loading improperly:



3) Filename case sensitivity issues. I've edited the project file to fix these:
https://drive.google.com/file/d/0B1P7NepPcOslQXZHMEVkZVBtb0E/edit

Basically, here are the things I changed:
Code: [Select]
//Replace all backslashes with forward slashes in path names in the following files/objects:
./Objects/obj_map.obj:d3d_model_load(model, working_directory + "\maps\koopafalls\map_mod.d3d");
./Objects/obj_map.obj:texture = background_get_texture(background_add(working_directory + "\maps\koopafalls\texture.png", 0, 0));
./Objects/obj_map.obj:fname = working_directory + "\maps\koopafalls\map_col.d3d";
./Objects/obj_gamestate.obj:    path = working_directory + "\screenshots";
./Objects/obj_gamestate.obj:    path += "\";
./Objects/obj_gamestate.obj:    file = file_text_open_read(working_directory + "\maps\koopafalls\objects.dat");
./Objects/obj_tree.obj:    sound = sound_add(working_directory + "\Audio\Ambience\bird1.wav", 0, 1);
./Objects/obj_waterfall.obj:file = file_text_open_read(working_directory + "\maps\koopafalls\waterfall.d3d");
./Objects/obj_water.obj://surface_save(texturesurface, working_directory + "\test.png");

//Rename *.WAV to *.wav for the following files:
./ProjectMario/audio/ambience/bird1.WAV
./ProjectMario/audio/ambience/bird2.WAV
./ProjectMario/audio/ambience/bird3.WAV
./ProjectMario/audio/boing.WAV
./ProjectMario/audio/boo.WAV
./ProjectMario/audio/bowser/bowser_die.WAV
./ProjectMario/audio/bowser/bowser_fire.WAV
./ProjectMario/audio/bowser/bowser_grab.WAV
./ProjectMario/audio/bowser/bowser_inhale.WAV
./ProjectMario/audio/bowser/bowser_something.WAV
./ProjectMario/audio/bowser/bowser_step.WAV
./ProjectMario/audio/boxbreak.WAV
./ProjectMario/audio/bubble.WAV
./ProjectMario/audio/cannon1.WAV
./ProjectMario/audio/cannon2.WAV
./ProjectMario/audio/cannon3.WAV
./ProjectMario/audio/cannon_fire.WAV
./ProjectMario/audio/chomp.WAV
./ProjectMario/audio/crank.WAV
./ProjectMario/audio/movement/crawl.WAV
./ProjectMario/audio/ambience/cricket.WAV
./ProjectMario/audio/door_close.WAV
./ProjectMario/audio/door_metal.WAV
./ProjectMario/audio/door_open.WAV
./ProjectMario/audio/door_wood.WAV
./ProjectMario/audio/enter_painting.WAV
./ProjectMario/audio/explosion.WAV
./ProjectMario/audio/fuse_lite.WAV
./ProjectMario/audio/fuse_loop.WAV
./ProjectMario/audio/gunshot.WAV
./ProjectMario/audio/invalid.WAV
./ProjectMario/audio/lakitucam.WAV
./ProjectMario/audio/laser.WAV
./ProjectMario/audio/mario/mario_boing.WAV
./ProjectMario/audio/mario/mario_cough.WAV
./ProjectMario/audio/mario/mario_die.WAV
./ProjectMario/audio/mario/mario_doh.WAV
./ProjectMario/audio/mario/sleeping/mario_dream.WAV
./ProjectMario/audio/mario/mario_drown.WAV
./ProjectMario/audio/mario/mario_fire.WAV
./ProjectMario/audio/mario/mario_gameover.WAV
./ProjectMario/audio/mario/mario_haha.WAV
./ProjectMario/audio/mario/mario_hello.WAV
./ProjectMario/audio/mario/mario_herewego.WAV
./ProjectMario/audio/mario/mario_hoo.WAV
./ProjectMario/audio/mario/sleeping/mario_imtired.WAV
./ProjectMario/audio/mario/mario_itsme.WAV
./ProjectMario/audio/mario/mario_letsgo.WAV
./ProjectMario/audio/mario/mario_lift.WAV
./ProjectMario/audio/mario/mario_lowonhealth.WAV
./ProjectMario/audio/mario/mario_mamamia.WAV
./ProjectMario/audio/mario/mario_okiedokie.WAV
./ProjectMario/audio/mario/mario_oof.WAV
./ProjectMario/audio/mario/mario_pain.WAV
./ProjectMario/audio/mario/mario_presstart.WAV
./ProjectMario/audio/mario/mario_pullup.WAV
./ProjectMario/audio/mario/mario_scream.WAV
./ProjectMario/audio/mario/sleeping/mario_snore1.WAV
./ProjectMario/audio/mario/sleeping/mario_snore2.WAV
./ProjectMario/audio/mario/mario_solongbowser.WAV
./ProjectMario/audio/mario/mario_theend.WAV
./ProjectMario/audio/mario/mario_ugh.WAV
./ProjectMario/audio/mario/mario_ungh.WAV
./ProjectMario/audio/mario/movement/mario_wa.WAV
./ProjectMario/audio/mario/movement/mario_waha.WAV
./ProjectMario/audio/mario/mario_whoa.WAV
./ProjectMario/audio/mario/movement/mario_woo.WAV
./ProjectMario/audio/mario/movement/mario_woohoo.WAV
./ProjectMario/audio/mario/mario_ya.WAV
./ProjectMario/audio/mario/mario_yah.WAV
./ProjectMario/audio/mario/mario_yahh.WAV
./ProjectMario/audio/mario/movement/mario_yahoo.WAV
./ProjectMario/audio/mario/sleeping/mario_yawn.WAV
./ProjectMario/audio/mario/movement/mario_yippee.WAV
./ProjectMario/audio/mips-hop.WAV
./ProjectMario/audio/monkey1.WAV
./ProjectMario/audio/peach/peach1.WAV
./ProjectMario/audio/peach/peach2.WAV
./ProjectMario/audio/peach/peach3.WAV
./ProjectMario/audio/peach/peach4.WAV
./ProjectMario/audio/peach/peach5.WAV
./ProjectMario/audio/peach/peach6.WAV
./ProjectMario/audio/peach/peach7.WAV
./ProjectMario/audio/peach/peach8.WAV
./ProjectMario/audio/peach/peach9.WAV
./ProjectMario/audio/penguin.WAV
./ProjectMario/audio/pokeoutofsand.WAV
./ProjectMario/audio/movement/slide/slide1.WAV
./ProjectMario/audio/movement/slide/slide2.WAV
./ProjectMario/audio/movement/slide/slide3.WAV
./ProjectMario/audio/movement/slide/slide4.WAV
./ProjectMario/audio/movement/slide/slide5.WAV
./ProjectMario/audio/movement/slide/slide6.WAV
./ProjectMario/audio/movement/slide/slide7.WAV
./ProjectMario/audio/movement/splash.WAV
./ProjectMario/audio/movement/step_floor.WAV
./ProjectMario/audio/movement/step_grass.WAV
./ProjectMario/audio/movement/step_longgrass.WAV
./ProjectMario/audio/movement/step_metalcap.WAV
./ProjectMario/audio/movement/step_wetwood.WAV
./ProjectMario/audio/movement/swim_above.WAV
./ProjectMario/audio/movement/swim_below.WAV
./ProjectMario/audio/thwomp.WAV
./ProjectMario/audio/timer.WAV
./ProjectMario/audio/tinyzap.WAV
./ProjectMario/audio/vulturewound.WAV
./ProjectMario/audio/warp1.WAV
./ProjectMario/audio/warp2.WAV
./ProjectMario/audio/water.WAV
./ProjectMario/audio/ambience/waterfall.WAV
./ProjectMario/audio/ambience/waterfall2.WAV
./ProjectMario/audio/ambience/wind.WAV

I've only tested this with the Open GL 1.1 backend at the moment.
Logged
Offline (Male) Goombert
Reply #33 Posted on: June 14, 2014, 12:04:41 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3151

View Profile
Good work Sorlok, DaSpirit wrote that INI extension but never finished. Second, the issues you are seeing with geometry are related to the model struct for GL1. Josh fixed it for GL3, it has to do with how we handle color, but he didn't add the fixes to GL1.

https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Graphics_Systems/OpenGL1/GLModelStruct.h#L133
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Graphics_Systems/OpenGL3/GL3ModelStruct.h#L137
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) sorlok_reaves
Reply #34 Posted on: June 14, 2014, 07:26:51 PM
Contributor
Joined: Dec 2013
Posts: 261

View Profile
Good work Sorlok, DaSpirit wrote that INI extension but never finished. Second, the issues you are seeing with geometry are related to the model struct for GL1. Josh fixed it for GL3, it has to do with how we handle color, but he didn't add the fixes to GL1.

https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Graphics_Systems/OpenGL1/GLModelStruct.h#L133
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Graphics_Systems/OpenGL3/GL3ModelStruct.h#L137

Thanks for the insight; I'll dig into this a little more, since it would be kind of fun to have Project Mario working properly on Linux too.
Logged
Offline (Male) Goombert
Reply #35 Posted on: June 14, 2014, 08:10:09 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3151

View Profile
Yeah the reason is because the model classes use a hack that packs color into a single float, that was Josh's fix for Linux but he only applied it to GL3.

It's probably easier to review his commit and just make the same changes.
https://github.com/enigma-dev/enigma-dev/commit/b539ff0bee4b085532d8d0782d2518f83022ba3a

If you want, test it and see if it works, if it does send us a pull request.
« Last Edit: June 14, 2014, 08:11:42 PM by Robert B Colton » Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) sorlok_reaves
Reply #36 Posted on: June 15, 2014, 08:18:37 PM
Contributor
Joined: Dec 2013
Posts: 261

View Profile
Yep, that did it. Along with the fixes in my branch (and the filename fixes in the zip I linked earlier), you can now enjoy Project Mario on Linux. The only minor issue is that GL3 doesn't seem to do any shadows correctly:

GL1:


GL3:


I've added these to my "Project Mario" pull request, which is now ready for review (again).
Logged
Offline (Unknown gender) TheExDeus
Reply #37 Posted on: June 16, 2014, 01:16:34 PM

Developer
Joined: Apr 2008
Posts: 1886

View Profile
Yeah, I am fixing GL3 right now. I fixed lights in this branch (https://github.com/enigma-dev/enigma-dev/commits/GL3-cleanup), but AMD keeps crashing on it. So I need to fix that.
Logged
Online  (Male) time-killer-games
Reply #38 Posted on: June 16, 2014, 03:52:49 PM

Contributor
Location: Virginia Beach
Joined: Jan 2013
Posts: 1160

View Profile Email
sorlok should also be in the contributor member category, ah well, no big deal I suppose.
Logged
Offline (Male) Goombert
Reply #39 Posted on: June 16, 2014, 05:58:23 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3151

View Profile
Thank you sorlok! Good work everyone. And Harri get to work on fixing those lights!

Edit: I have updated the latest ISO compliant version fixing all file paths for UNIX switching \\ for /
If I have missed any, please tell me.
« Last Edit: July 04, 2014, 02:28:15 AM by Robert B Colton » Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Unknown gender) francot514
Reply #40 Posted on: December 18, 2014, 03:38:53 PM
Member
Joined: Dec 2014
Posts: 12

View Profile
Really awsome your project, the graphics are really good, how can i compile it for linux???
Logged
Offline (Male) Goombert
Reply #41 Posted on: January 01, 2019, 02:19:06 AM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 3151

View Profile
Minor update to this topic because I have run across the fact that my old Dropbox links have gone dead. I stopped using Dropbox about a year ago but have backed up all of my files from there. I spoke with Josh and asked him about putting Project Mario up on the EDC and he actually went so far as to fix EDC game uploading. I'm now hosting the project's source there.
https://enigma-dev.org/edc/games.php?game=76

I believe this is carried on from the ISO compliant version because I notice I use all forward slashes for filepaths instead of backslashes. Which is fine either way, GM8.1 should handle forward slashes just fine. To get this version to build on the latest master you just need to use the OpenAL audio system because the DirectSound audio system seems to have some issues with some of the WAV audio files.

Over the years since I posted this topic, ENIGMA has changed significantly. The only main issue I have found with running the game in the good old OpenGL1 is that Mario's head does not appear on the start screen. This is likely due to a change in the clipping planes of the projection function when I switched ENIGMA to GLM. Direct3D9 has also seemed to have developed some surface issues at some point. Regardless, I am generally happy that the game continues to work so well despite some of our massive overhauling of the models and everything (thanks continuous integration!).
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Pages: 1 2 [3]
  Print