Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Use this forum to share and discuss Uzebox games and demos.
User avatar
Jubatian
Posts: 1561
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by Jubatian »

mapes wrote: Sun Jan 26, 2020 6:11 am One thing I thought I would mention for anyone trying the game. Make sure you move the PLevel to 3 , 4 or 5 when playing. ...
Well, that certainly did lower the difficulty from level sheer lunacy to a rather friendly just about impossible. Trying (Struggling? Blundering?) to play on Student :lol: I am just not good at these games, I guess! :P
User avatar
mapes
Posts: 174
Joined: Sun Feb 13, 2011 7:04 am
Location: Seattle

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by mapes »

Yeah I realized that there is no obvious menu to adjust settings for Dr Mario and megatris, but there isn't for normal arcade machines either.

It's hard to get the perfect balance for an arcade game to a casual game.

For an arcade machine owner, you want the player to usually put a quarter in every few minutes. If a player can put in a quarter, and play for 20 minutes, you are not getting a good return.

I love to play Castlevania on the Nintendo, so when I played the arcade version of Castlevania I almost thought I could play right through the game... But the game has a shortened timer for difficulty adjustment. I was right to the boss on level 2 and ran out of time for my first death. If you try to get many of the bonus points in the game, you are out of time... One missed jump while not fatal, could set you back 10 seconds or more and you still run out of time. Although the game is already difficult, the shortened time generally prevents someone from sitting on it all day.

That being said, I think 3 should be the current 'toughest' mode and I can move the easiest to even more easy.

This is more for fun and less for revenue generation.

I'll post an updated version later this week. The compiled uze file is almost maxed out for available space when loaded by an SD card.
User avatar
mapes
Posts: 174
Joined: Sun Feb 13, 2011 7:04 am
Location: Seattle

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by mapes »

:evil: well the bottom right virus bug is still there. But I noticed it was a red virus in the bottom right during the last two times it happened. I was playing at plevel 3, and it was my first round in surgeon difficulty. The pieces were starting to fall faster, but the game was manageable until I couldn't get the virus.
User avatar
mapes
Posts: 174
Joined: Sun Feb 13, 2011 7:04 am
Location: Seattle

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by mapes »

The bug in the game is very strange, but I 'kinda' figured it out. At least a way to get past the problem

I edited the code to check for sequences the row AFTER the last row, and for some reason, the far right bottom corner is perceived as a red 'block' of some sort. The sequence automatically breaks when you are at the end of the bottle, and since it seems another 'block' there, it doesn't clear the line since it waits for the end of the sequence to be reached.
bug artifact.png
bug artifact.png (38.37 KiB) Viewed 10374 times
Interestingly, when you do zap that block (and only with a red sequence) the virus count goes haywire too.

To fix this, I reversed the check4matching function to start from the bottom of the bottle and go up.

I haven't checked to see if the same 'glitch' would occur on the top of the bottle, but I'm guessing the chance to run into that bug is significantly less than the one I was seeing.

I've included the uze file with the fix below.

@ Jubatian: Looking at the dr. mario code, I don't see any uses of the waitVsync() function to play the buffered soundfx. But there is a waitVsyncflag function. Should I be playing the audio after this?
Attachments
pdmd.uze
(59.61 KiB) Downloaded 464 times
User avatar
Jubatian
Posts: 1561
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by Jubatian »

mapes wrote: Sun Feb 02, 2020 4:13 am Interestingly, when you do zap that block (and only with a red sequence) the virus count goes haywire too.
That's because the virus_count field is just after the playfield in the bottle structure, so if you start writing past the array bounds, then that gets corrupted first (undefined behaviour, but it tends to compile to this result). No idea why it doesn't work, though (assuming the amended bounds checks are in place).
mapes wrote: Sun Feb 02, 2020 4:13 am @ Jubatian: Looking at the dr. mario code, I don't see any uses of the waitVsync() function to play the buffered soundfx. But there is a waitVsyncflag function. Should I be playing the audio after this?
There the solution is like I mentioned earlier (in my first reply) is to process the buffer on the path when the getVsyncFlag() function returns true. Guess you refer to this function as normally there is no waitVsyncFlag() function unless you had added one at some point later compared to the source posted on the top. Check its implementation, the solution should be the same. In the original code I see a single getVsyncFlag() function in MainGameLoop(), you would have to add the buffer processing on Line 503 there (after calling ClearVsyncFlag()). A difficulty may be that other areas of the game (menus) having some effects might not wait for VSync at all. There a tolerable workaround would be just putting a call in those loops anyway (it would result in the effects working, with the potential of them messing up in case the VSync interrupt happened to interfere, but that would just be the same like before).
User avatar
mapes
Posts: 174
Joined: Sun Feb 13, 2011 7:04 am
Location: Seattle

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by mapes »

Looks like I've got it all working now.

Here is the latest version.

I revised the code to eliminate the waitVsyncFlag() and clearVsyncFlag() and used the traditional waitforVsync() like Megatris used.

I don't see any specific bugs after a play through or two. But one thing to mention, when the game starts, I have it wait for 1 second before checking the SERVICE button being pressed. If it is pressed, it resets the high scores.

Previously I had the standard Uzebox coin logo show and if you held the service button during the coin logo, the hi scores would be reset.

Without the delay of the coin, I just added my own, otherwise it is impossible to reset the score.
Attachments
PillDropperMD_2_16_20.zip
(332.05 KiB) Downloaded 452 times
User avatar
codecrank
Posts: 66
Joined: Sun Nov 16, 2008 10:13 pm
Location: Denver, Co

Re: Arcade versions of Dr Mario (Pill Dropper MD) and MegaTris

Post by codecrank »

mapes wrote: Sun Jan 05, 2020 1:48 am I fixed alot of bugs in Dr Mario and brought it more inline with the original game, but never could figure one strange bug where the last virus in the bottom right corner of the bottle would not die when 4 or more pills of the same color were on it.
Geez .. You took away all the special features ? How am I supposed to maintain my unfair advantage now... thanks pal :lol:

wow looking at those sprites brings back good memories.

seriously I'm super happy to see someone took the time to fix it ( again ... :? ) thank you !!
Post Reply