Page 1 of 3

Alex kidd in Miracle World SMS to Genesis/Megadrive port

Posted: Thu Mar 14, 2013 4:25 pm
by oofwill

Always to increase my knowledge in coding, i've started to port Miracle World, one of my favorite master system game.

i'm working on level 1, there's some bugs again, but i'm pretty happy since it begin to look to original game :)

this is working on emu, but there is some problems on real hardware.

Here's a video of actual state.

Here you will download a rom to test it.

Please give me your feelings, your advice and, if some persons could test it on hardware and tell me what they think of the bugs?

Many thanks :)

Posted: Thu Mar 14, 2013 8:02 pm
by peekpoke
Wow! Thats very nice! About problems with running on real hardware, try to update ur SGDK to lastest version, if not yet... (and if u use SGDK of course)

Im too writing some "port" (without source) of one well known game, but im on very preliminary stage. Very great to see such advanced projects! Good luck to you!

Posted: Thu Mar 14, 2013 8:14 pm
by djcouchycouch
Very nice!

Posted: Thu Mar 14, 2013 8:43 pm
by oofwill

I'm already using latest version of SGDK. I think something's wrong in my initialisation since sometimes there's no problems, and other times...

peekpoke, don't you want to tell what game you are writing?

Posted: Thu Mar 14, 2013 9:03 pm
by peekpoke
Maybe something with VDP timings? We had such problem with raycaster (worked on emus, but froze on hardware), but Chilly Willy found solution. He just added some delays before few VDP calls, and it stop freezing.
oofwill wrote: peekpoke, don't you want to tell what game you are writing?
Oh thx, for asking! But, I think i dont have moral right to name this game yet, because i really on very early stage - did one level only, only main character, simple parallax scrolling, just added collision map, but collision detection still buggy. When, i at least, finish this collision detection, i will be glad to show it :) Oh, and implement jumping, because right now, main character may fell into pit holes, but cant jump out of them xD

Posted: Thu Mar 14, 2013 9:04 pm
by oofwill
Ok, i will be waiting for your announce :mrgreen:

Posted: Fri Mar 15, 2013 2:12 am
by TmEE co.(TM)
Holy carp !

This is impressive !

I have to note that this does not work in emulation in 50Hz, only in 60Hz. This is maybe where the problems on real hardware come from too.

Posted: Fri Mar 15, 2013 10:32 am
by oofwill

On RH, this is working either 50 or 60hz.
In fact sometimes this is working, and sometimes fully buggy, in 50 or 60Hz.

It sad since i don't want to play it on emu... ^^

Posted: Fri Mar 15, 2013 12:55 pm
by djcouchycouch
What kind of problems are you encountering? Are you able to provide screenshots or videos that show it off?

Posted: Fri Mar 15, 2013 1:47 pm
by oofwill
Yes, have a look at this video :

First time, seems to be ok but collide doesn't work properly (but not all the time buggy...)
Then, game just desn't want to play.
Finally, game start, collide's ok (just the very forst box, this box is never ok!) but there are some draw bugs on screen...

Posted: Fri Mar 15, 2013 3:01 pm
by djcouchycouch
Looking at the video, it certainly smells like uninitialized memory.

Posted: Sat Mar 16, 2013 11:34 am
by Stef
Very impressive :) It looks so much close to the real one !

As i told you, you have to take care of separate VDP access from main code and only do them in V-Int callback. Actually you can do them in your main code but then you have to protect it from Vertical interrupt by modifying interrupt mask register :

Code: Select all

  // doing game logic

  // save int mask level and set it to 7 (no more V-int)
  saveIntMask = SYS_getInterruptMaskLevel();

  // doing VDP access

  // restore mask int level
But generally it's better to do all VDP accesses in V-Int as you know you are in VBlank period and have full speed VDP access :)

You have to know that SGDK is doing some processing on V-int, for instance if you use the asynchrone palette fading method, V-int is used to change the palette data so it can mess with your code which is also writing to VDP.

Posted: Mon Mar 18, 2013 9:27 am
by KanedaFr
already on SpritesMind's Youtube favorites since v1 ;)

ps: if you have a demo not listed yet, PM me

Posted: Tue Apr 23, 2013 9:11 pm
by oofwill
KanedaFr wrote:already on SpritesMind's Youtube favorites since v1 ;)

ps: if you have a demo not listed yet, PM me
Nothing more than you already know ;)

Some news here.
Level one was very buggy, i decided to rewrite my engine in order to improve it.
I've done this on level two. Level is playable, without ennemies.
Alex can go in the shop, buy some items but not use it at this point.

video 07

Posted: Fri May 03, 2013 8:50 am
Pure awesomeness :D