MMLL Development Diary

flash · 349809

Offline Sokurah

  • RBP Member
  • Cray-1 Super Computer
  • *****
    • Posts: 724
    • Tardis Remakes
Reply #150 on: September 09, 2009, 10:26:01 pm
What about 2001?...or is The Airlock enough spacetheme for one game? :)



Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #151 on: September 09, 2009, 10:28:46 pm
2001 with big black blocks as enemies and lots of pulsing lights in the background :)

Oh, I should really send you Lobo's level - hang you on a mo!!

Coding for the love of it!


Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #152 on: September 09, 2009, 10:31:13 pm
2001, yep, was thinking of the same thing and immediately thought of Airlock level.
However, the big black stone monument thingie is scary enough to grant the level, hmm..maybe we should have a voting time about movies.  8)



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #153 on: September 09, 2009, 10:36:47 pm
Personly I doent want tunes for each movie and the "The Lost Levels" term simply just would losts it charm, if the game going to much hollywood?

Personly I want ragtime and old classics in this game.

Howover 2001 is propenty best movie to do a level for, due the game have a space theme allready and the title tune can been reused directly when its finished......

For a unlouckable feature, could been using all classic spectrum levels, or mightbeen China Miner Levels as a feature?
« Last Edit: September 09, 2009, 10:38:49 pm by spacefractal »

The Musician for the RetroBytes Portal Projects.


Offline Sokurah

  • RBP Member
  • Cray-1 Super Computer
  • *****
    • Posts: 724
    • Tardis Remakes
Reply #154 on: September 09, 2009, 10:39:36 pm
Personly I want ragtime and classics in this game.

That gives me an an idea. "CASABLANCA"...and we already have an expert in the field around. ;)



Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #155 on: September 09, 2009, 10:41:47 pm
I'm thinking that 'movie levels' should be the ones that are unblockable as a bonus but not too many of them. Just a few classics that's all. For the rest of the levels, after these 20 or so, it's about how much space is left and what Flash finds to include there, I guess.

Haha, LO and Behold-Casablanca, crap and what do you know I already got the gfx for it, hehe..gonna work on it tonight, thanks for the idea!  ;)



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #156 on: September 09, 2009, 10:44:09 pm
spectrum graphics using original levels should not take very much memory.... Of course a unlockable feature.

The Musician for the RetroBytes Portal Projects.


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #157 on: September 09, 2009, 10:47:35 pm
spectrum graphics using original levels should not take very much memory.... Of course a unlockable feature.
They would not take much memory.. True..

But.. They have all been done to death on so many formats, do we need them again?

I like the idea of completing the game and getting more NEW levels as a bonus.. Even if it is just a few...

I have sent you the latest demo... This has Ghostbusters (watch his eyes LOL)

Coding for the love of it!


Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #158 on: September 09, 2009, 10:51:50 pm
Yup, I don't really wanna see the levels which have been whored around numerous other remakes, better to go off with a few surprises and the rest can be done by...us, Fluffons. Flash can probably make some, maybe spacefractal and HK make some, I'll try as well (not too good tbh, see ghostbusters level :P). Alternatively, if Flash finds more 'lost' stuff, that haven't been used- all for the better then.



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #159 on: September 09, 2009, 10:54:45 pm
lost stuff is allways best. How do I create levels?

The Musician for the RetroBytes Portal Projects.


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #160 on: September 09, 2009, 11:02:44 pm
Yup, I don't really wanna see the levels which have been whored around numerous other remakes, better to go off with a few surprises and the rest can be done by...us, Fluffons. Flash can probably make some, maybe spacefractal and HK make some, I'll try as well (not too good tbh, see ghostbusters level :P). Alternatively, if Flash finds more 'lost' stuff, that haven't been used- all for the better then.
Well, there are several more levels that we have not used that were in other releases... But... I think Stu Campbell pretty much picked the better levels.

New levels would also be nice.. Even just 10 levels... (The Team-Mix)

I could make a level template that would help creation? HK would not need this, but for other non-compilers (source is on google code), I coudl add as test levels and move them to the main levels if they are good...

But... As I said, getting Stuarts 20 lost levels as perfect as possible is the main challenge and priority...

But... Hellraiser, Goonies, CasablankYer!

ps. Dom't forget a level can have a switch and this can be made to do lot's of things... (1 per room though at the mo...)

Coding for the love of it!


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #161 on: September 09, 2009, 11:10:04 pm
OH...

Gremlins

Coding for the love of it!


Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #162 on: September 09, 2009, 11:20:21 pm
OH...

Gremlins

Fukin AYE! was about to say that one, I swear!! Excellent choice, madame!

I'm kinda repeating myself here but yes, whatever unused/lost levels can anyone scavenge~we go with it. The rest is movie goodies.
Level template would be cool even though I don't need it but for SF and HK would be great if they wanna try some? The basic thing is to know how far the dude can jump, that's the only major stuff. :D



Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #163 on: September 09, 2009, 11:34:42 pm
How about a Level Editor, if the themes can handle it or using spectrum graphics?

The Musician for the RetroBytes Portal Projects.


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #164 on: September 09, 2009, 11:38:30 pm
ER, he can jump all the way up until he falls... LOL

No, he jumps 20 pixels (2 platforms and a bit = 16+4) but, the distance and arc are the tricky bits. I can;t remember at the moment how it fits into the parabolic curve, but the distance is 36 pixels.. Ie. 4 blocks and 4 pixels (though the original was 34 pixels i believe?) platform to platform on the same height. The jump curve is perhaps best plotted on a graph.. just because a descending jump can colide with a platfrom, and that distance is different depending on the part of the jump involved..

Has it all got a bit complicated?  ;D

Coding for the love of it!


Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #165 on: September 09, 2009, 11:39:38 pm
How about a Level Editor, if the themes can handle it or using spectrum graphics?

Any spectrum level editor will do.. A picture of the level is all that is needed - there are a few of them already

Coding for the love of it!


Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #166 on: September 09, 2009, 11:41:29 pm
Which Editor? A color png read by the game (like that way I did for Cave Hereos) or such a txt external file would work too.
« Last Edit: September 09, 2009, 11:49:50 pm by spacefractal »

The Musician for the RetroBytes Portal Projects.


Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #167 on: September 09, 2009, 11:49:15 pm
Here is a quick example-8x8 grid, he jumps up 16px the most in order to reach the platform (right, Flash?). That would mean that you have to position the platform you want Willy to reach at this distance.
Also, the level size is actually 256x152, this image is double that. Helps?




Offline Lobo

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 3119
    • Spitoufs
Reply #168 on: September 10, 2009, 03:37:09 am
Olly Crap, just watchin' me olde Hellraiser here after so many years, still kickin' sharp! Who gonna design that level, huh?
 :D



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #169 on: September 10, 2009, 07:07:24 am
You forgot Young Frankenstein ;)  [But why not making an 'Hollywood release' later, in a MMHL Holliwood Level instead of fitting all that into this MMLL ?]

Anyway, I finally succeeded in completing 1 level ;) But there is at least one bug in the version I'm betatesting: when you enter a level for the first time there are more apples (or jewels or whatever) than what would appear when you restart it. And in the mummy level sometimes one jewel is missing when you restart.

Then a little suggestion... what about adding a thunder sfx (synced with the end of the lightning effect) to the 'rain' level? Two different samples and playing them at a different volume each time (but quite low) would enhance the background effect... (also rain sfx would be cool, but that's a bit more complicated as it should be looping...)




Offline flash

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 13180
Reply #170 on: September 10, 2009, 07:11:56 am
I will add a few sound effects at some point, thunder, key collection, switches, etc.

I will look into the little bugs soon, just been spending so much time adding the levels.. LOL

The jump is 20 pix, enough to clear 2 platforms and stick his head into the next space so a enemy above can still be collided with.

Coding for the love of it!


Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #171 on: September 10, 2009, 08:23:05 am
Instead of one movie in one level, how about using elements from more movies at same time, and using some sort of ragtime (The Entertianer mightbeen)?

The Musician for the RetroBytes Portal Projects.


Offline headkaze

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 7838
Reply #172 on: September 10, 2009, 10:22:32 am
Me and Flash have been going a bit wacky trying to track down this music issue were having with libxm7. At first I thought it was some bug in either my implementation of it or in Flash's init code. I've spent quite a bit of time fiddling around and can't seem to fix it.

So what I did was download the xm7 demo and modify the C++ example so that everytime you press the "A" button it would unload and reload the XM. This is basically what is happening in MMLL every time it loads a new level and after a few level skips the music stops working or gets corrupted.

Okay so do this around 130 times with the attached demo (in No$GBA) and you will start to hear the music corrupting and not restarting correctly. I think it demonstrates some sort of memory leak in the library. Sverx if you could take a look at this that would be great :)
« Last Edit: September 10, 2009, 10:31:18 am by headkaze »



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #173 on: September 10, 2009, 10:52:49 am
Cheking it... I wonder what that could be  ???




Offline spacefractal

  • RBP Team Member
  • Blue Gene Super Computer
  • *****
    • Posts: 4138
Reply #174 on: September 10, 2009, 11:10:21 am
or if skale export the xm wrong? I have heard about it, or used a other xm and see it does the same? Then I think I need to load in modplug tracker and save here again.

The Musician for the RetroBytes Portal Projects.


Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #175 on: September 10, 2009, 12:01:40 pm
No, I don't think it's a problem involving that specific XM or the program you're using to make it. I'm running some tests, loading/unloading functions aren't involved, the problem still appears even if you do not load/unload the tune each time, so I guess it's not a memory leak.
I'm starting to think it's a libnds fifoSendValue32() problem, going to investigate deeper on this now...
No$gba gives the first error always after the 127th start... quite curious, uh?

See ya later.




Offline headkaze

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 7838
Reply #176 on: September 10, 2009, 12:15:18 pm
Yes it does seem strange although we arn't using FIFO in MMLL were using IPC. I guess the first question with FIFO is, does the ARM7 receive the message and return immediately or is there a delay between sending the message and the ARM7 receiving it? If so that could mean it's unloading before the ARM7 has a chance to stop the XM. That being said part of my experiments in asm were to add some swiWaitForVBlank calls between sending messages using IPC. But I did have the ARM7 reading IPC memory during a VBlank interrupt so needing a wait is more necessary perhaps than if you were to use the IPC interrupt or FIFO.



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #177 on: September 10, 2009, 12:35:30 pm
Yeah, I forgot you aren't using libnds... so maybe there's something strange that affects both libnds and your IPC, but I've found a -really strange- way to make it work (tested going over the 500th restart...)

Basically is: when sending the address of the XM to play, mask it with 0x003FFFFF

in libxm7 example (arm9/main) is:
Code: [Select]
// sending pointer to the libxm7 engine on ARM7
#define FIFO_ADDRESSDATA_MASK 0x003FFFFF
fifoSendValue32(FIFO_XM7, (u32)Module & FIFO_ADDRESSDATA_MASK);

and on ARM7 side, if you receive something (not zero), add 0x02000000

in libxm7 example (arm7/main) is:
Code: [Select]
// received a pointer to a module that should start now
#define FIFO_ADDRESSBASE 0x02000000
XM7_PlayModule((XM7_ModuleManager_Type*)(command | FIFO_ADDRESSBASE));

Want to know the truth? I don't know why it works. I'd think there's a bug in libnds fifoSendValue32() but I couldn't find it (I've read the source now, that's where I took the two defines...) but you aren't using that...

Well, let me know if you've got any idea (and if it works with your own IPC too!)

Bye!

« Last Edit: September 10, 2009, 12:40:55 pm by sverx »



Offline headkaze

  • Administrator
  • Blue Gene Super Computer
  • **********
    • Posts: 7838
Reply #178 on: September 10, 2009, 12:53:09 pm
I did try that and it didn't work using IPC. I had some serious doubts. I'm pretty tired right now but if your up to testing this, you can try IPC by setting up the following #define.

Code: [Select]
#define IPC 0x027FF000
And both arm7 and arm9 can read from that memory to share data. Just be aware that if your reading the data on the arm7 in a vblank interrupt for example that you have to account for the delay on the arm7. This would be a good way to test to see if FIFO is screwing up or not.



Offline sverx

  • RBP Member
  • IBM PC
  • *****
    • Posts: 516
  • "Ow!!! What's that ?!?!"
    • My NDS folder
Reply #179 on: September 10, 2009, 01:12:56 pm
I did try that and it didn't work using IPC. I had some serious doubts.

I had them too :(  ... well, I won't set up an IPC now to test it, but I'll further investigate about the libnds FIFO strange behavior.

I also don't know how you're ensuring that the tune will be already stopped when calling the XM unloading routines... I think you can check if the 'State' member of the XM7_ModuleManager_Type struct has a XM7_STATE_STOPPED value, for example... (but, again, I'm experiencing the same behavior even not reloading the XM each time...)

edit: http://forums.devkitpro.org/viewtopic.php?f=15&t=1510&p=3191#p3191 in case ;)



« Last Edit: September 10, 2009, 01:46:28 pm by sverx »