andwn / cave-story-md Goto Github PK
View Code? Open in Web Editor NEWA fan port of Cave Story for the Sega Mega Drive
A fan port of Cave Story for the Sega Mega Drive
Open the sound test from the main menu and then exit back out again. The Sega logo will reappear and will have weird white boxes underneath it.
http://andwhyisit.bugsiteguardian.com/csmd/segggggaaaaaaaaaaaaaaaaaaaaa_zpsvtetqdlh.gif
After you inspect the shelter door in Grasstown Kazuma starts saying "Hey!" from the crack. This is normal. However Kazuma keeps saying "Hey!" over and over again whereas the original only does this once.
Not only that, but every time I interact with the door the "Hey!" sprite and entity moves up 8 or so pixels. Effectively I can no longer interact with the "Hey!" entity after interacting with the door more than once.
The bug in action:
http://andwhyisit.bugsiteguardian.com/csmd/hey_zpsos3bgxkv.gif
Yes I know it's a debug thing but it still irks me =P
The NPC No. field is not redrawn properly, i.e. if it draws a number with more digits, then a number with less digits, there will be trailing digits which result in the "wrong" number being displayed.
Suggested fix: clear those three tiles before drawing the number. (or even two, since the first digit will always be drawn and will never need clearing)
I've noticed the game slows down rather quickly when there are enough objects on screen. I've decided to take a look at how it works and noticed that it's an one-way linked list, but the game tries to access the previous object quite often (resulting in it traversing a lot of the list for no reason). How much would it help to turn it into a double linked list? (so checking the previous object is just as fast as the next object)
Of course would be nice to still check on other stuff that would possibly cause this, but that one seems to be a rather obvious problem.
In the shack where you fight Balrog the first time, the first cutscene and fight are normal.
After the fight (or if you choose not to fight), you can still talk to Toroko, which will cause the battle cutscene to repeat, but this time without any enemy sprites.
If you choose to fight, the battle music will start, but there's no Balrog. You can't leave the shack until you talk to Toroko a third time and choose not to fight.
When you use the Z button to switch weapons before you get your first weapon the game freezes.
If you go back to the terminal room in Egg Corridor after getting the ID card and disabling the shield, the game hangs. According to BlastEm: Read from VDP data port while writes are configured, CPU is now frozen. VDP Address: 2, CD: 5
(this also ironically hung up BlastEm itself as well and I had to kill the process, but that's a different matter lol - stop breaking the emulator jeez)
EDIT: er right, this is after disabling the shield, not just getting the card.
The terminals for eggs 1 and 6 (on the bottom floor) should be red on activation. At the moment they are blue like all of the other terminals.
Example:
http://andwhyisit.bugsiteguardian.com/csmd/eggobservationterminals_zps9t7cg8ua.gif
Trying to compile causes this error:
src/db/npc.c:221:37: error: ‘onspawn_deaddragon’ undeclared here (not in a function)
{ &SPR_BabyDragon,NOSHEET,PAL3,2, &onspawn_deaddragon, &ai_null, &ai_null }, // Dragon Zombie (Dead)
^
The function is defined in the source file, but not in the header file.
aigen.py seems to not detect this function, so it's not in the header file.
Compare the bottom of the screen for reference:
http://andwhyisit.bugsiteguardian.com/csmd/arthurshouse_zpsj0fpldnv.gif
Also the flowers and flower entity seem to be missing.
While I'm here, though it is entirely cosmetic, it might be worth removing the leading 0 from the health bar.
Tested in v0.2.0-alpha
In vanilla CS there are invisible tiles that can be destroyed by shooting them enough times. After these tiles are destroyed a heart will appear.
In this port the invisible tiles are still present, but are invincible, they absorb the shots, but are never destroyed. Not only that, but if you move over the invisible tile you will pick up the heart regardless of whether or not you shot the tile.
Here's an image for reference:
http://andwhyisit.bugsiteguardian.com/csmd/invisibletile_zpsugbmzjnl.gif
The heart represents where the hidden tile is located (it's also what you see after destroying the tile).
Here are save files for both this port and the pc original that place you in that exact room:
https://www.mediafire.com/?5i90jlgezgxzza4
This is based on the 2016.07.16 snapshot, so let me know if this issue has already been resolved.
This is an issue that happens occasionally with the fireball and exp crystals on certain slopes, they unexpectedly rebound.
Here's an example of the bug in action:
http://andwhyisit.bugsiteguardian.com/csmd/GIF3_zpsgdjusrjn.gif
And once again here is a save file that may help:
https://www.mediafire.com/?vdexioyi598mexw
There seems to be a difference in how physics work when hitting the ceiling. In vanilla CS there is a rebound effect, yet in CS MD the ceiling tiles become more of a jump limiter.
Here's some examples of this in action:
http://andwhyisit.bugsiteguardian.com/csmd/ceilingphysics1_zps7d4kuwbb.gif
http://andwhyisit.bugsiteguardian.com/csmd/ceilingphysics2_zpsvwlvwhzv.gif
Oh, and I figured I'd note while I am here that your port was mentioned in a magazine called Retro Gamer.
Sorry I haven't been playtesting of late.
Sometimes killing an enemy resullts in the game crashing. Some of the big green flying guys in the egg corridor are prone to doing it, as well as the enemies at the beginning of Grasstown. Doesn't happen 100% of the time (sometimes it won't crash) but does happen quite often.
Projectiles pass right through him until he enters "attack mode".
Emu used: Genesis Plus GX
Rom version: SNAPSHOT-2016.07.16
If the text box is at the top of the screen (e.g. when checking the terminals at the bottom of the terminal room in Egg Corridor), the HUD will appear on top of it, obscuring part of the text.
Obvious fix would be to just hide the HUD while such a text box is visible (it'd have been completely covered by the box anyway)
I haven't been able to get one to actually run in to me to see if they still do damage, though.
In the original game, enemies are paused during the pickup jingle.
Emu used: Genesis Plus GX
Rom version: SNAPSHOT-2016.07.16
Presumably unfinished platform physics, but still it makes that part pretty annoying. The player doesn't move with the elevator which makes it hard to use it to move across floors (and if you aren't lucky with your jumping, you can get stuck at the bottom of this room).
Emu used: Genesis Plus GX
Rom version: SNAPSHOT-2016.07.16
You can walk right through the red barrier in the Egg Corridor by simply holding right during your invincibility frames after it hurts you. Normally you're supposed to turn the barrier off with the ID card before you can get past it.
Emulator I used was the Genesis Plus GX core in RetroArch.
Balrog seems to be incapable of jumping or flying out of the hole in the middle of the room once he is in there. It is like he becomes rooted to that x position.
That 1 tile high gap you go through to get to Mahin in Mimiga Village is much harder to get through than in vanilla CS.
In vanilla CS:
http://andwhyisit.bugsiteguardian.com/csmd/GIF_zpsbl0iglbi.gif
In MD CS:
http://andwhyisit.bugsiteguardian.com/csmd/GIF2_zpskqjhbmlk.gif
This also seems to be an issue with running over 1 tile gaps in that you don't fall into them unless you are going crazy slow.
I'll let the images do the talking this time.
See here:
http://andwhyisit.bugsiteguardian.com/csmd/itsjustgravey_zpspsttwkbu.gif
8 cases of miscentred sign text.
2 cases of sticky non-scrolling characters.
2 cases of text cutoff.
2 cases of missing item images.
I was leveling Polar Star off those first few hopping guys and going in and out of the door to respawn them. After 7 or 8 door usages, this error occurred. Note that I've done this same leveling process in previous builds and not had an error. Could be a coincidence.
ROM used: SNAPSHOT-2016.07.26
Emu used: Genesis Plus GX
When talking to Mahin in the MD version Quote jumps 2 squares to the right and Mahin looks left, but in the original Quote jumps 1 square to the right and Mahin looks right.
Well I finally have this cronjob working. It updates the nightly build download at 5:45am your time.
Getting crontab to populate the correct environment variables and run under the correct user and permissions was waaaaayyyy more painful then it needed to be, but it is holding up well.
Here's the url:
http://www.cavestory.org/md/nightly.zip
When you stand on the block on the upper-right of the shack Balrog will stand there underneath you and do nothing but jump occasionally.
http://andwhyisit.bugsiteguardian.com/csmd/balrogmd_zpsoug8qyjs.gif
http://andwhyisit.bugsiteguardian.com/csmd/balrogpc_zpswh1zn9ef.gif
Also in vanilla CS Balrog will always travel a set distance in the direction of the player, never longer, and only shorter when he runs into something like a wall. The MD version on the other hand has him travelling the full distance to the player regardless of length. The player's position should only determine the direction of travel, not the distance of travel. Although I think the distance is different during the jumping phase.
http://andwhyisit.bugsiteguardian.com/csmd/balrogdistancemd_zpswhv6sqm4.gif
http://andwhyisit.bugsiteguardian.com/csmd/balrogdistancepc_zpsdpvuamku.gif
Oh, and it should be 2 points of damage, not 1.
Tested in v0.2.0-alpha
You shouldn't be able to fly with the Lv1 or Lv2 machine gun, only the Lv3 machine gun.
Also it should be noted that the machine gun in the MD version currently has no lift, it just holds your current y position.
I heard that the Lv3 machine gun in the original CS taps into the fan logic for lift, so it has a quirk where holding the jump button while shooting down grants you more lift. I figured it was worth noting if it helps any, since you do have working fan logic.
This may be an emulator related issue as I cannot test on real hardware at this time.
Sprites appear to be sorted in reverse order. This makes things like beds, terminals, doors, and other background objects appear in front of NPCs. Does not affect the player character.
Let me know if providing screen shots would be of assistance.
Well while I can tell that the Behemoth (the elephant in the Egg Corridor) AI is a work in progress, and I won't go into all of that because I don't fully understand the Behemoth AI myself (I have yet to figure out the exact conditions to trigger his enraged state). However I instead want to go into matters of collision.
When I approach the back of this enemy weird stuff happens:
http://andwhyisit.bugsiteguardian.com/csmd/hejustwantsahug_zpshnrnusdh.gif
But in the original the player is stopped like he hit a solid tile:
http://andwhyisit.bugsiteguardian.com/csmd/behemoth_zpsjcxlrh0b.gif
Hello;
A friend told me about your project, looks really interesting. I would like to ask is you have editor for Megadrive/Genesis cart release. I may do for you. If you are interested, please, contact me in [email protected]
Greeting and nice work :)
.: Felipe :.
Mannan, those tombstone shaped enemies from Grasstown, they have too much health. There are certain enemies in Cave Story that die before their HP total is reached. For instance Mannan is listed as having 100 hp, but it dies after 11 damage or greater.
Other examples of this behaviour to watch out for:
Polish is listed as 120 HP, but splits up at 20 or more damage.
Gaudi/Armor is listed as 1000 HP, but dies at 15 or more damage.
Gaudi Egg is listed as 100 HP, but dies at 11 or more damage.
Buyobuyo base is listed as 1000 HP, but dies at 61 or more damage.
Dragon Zombie is listed as 1000 HP, but dies at 51 or more damage.
Bute is listed as 1000 HP, but dies at 4 or more damage.
Mesa is listed as 1000 HP, but dies at 64 or more damage.
Deleet is listed as 1000 HP, but dies at 31 or more damage.
Toroko (before first Balrog fight) had the same behaviour, but you've already addressed Toroko.
Sue (1000 HP, 501 damage to die) and Misery (1000 HP, 601 damage to die) from the Undead Core fight share this behaviour as well.
All the bone projectiles from the enemies in the sand zone are shootable in the original CS, but can't be shot in the MD version.
What subject says. Wasn't there in 2016.06.30 (where it looked fine), it's there in 2016.07.02. And it's even misplaced by a few pixels. I don't think the player is meant to become hidden by it?
I'm using a real Genesis with an everdrive. If I hit the reset button and load my save game, most tiles are not drawn. If I power off then back on, it works fine.
The cutscene when you rescue Kazuma in Grasstown is bugged up. That in itself I assume is just unfinished, but the real problem is that the trigger for the door is higher than the door sprite (so you have to jump and press down in mid-air to get through). This is also easy to miss so you're bound to get stuck if you don't figure it out.
The cutscene in itself needs to be finished but that one issue is actually critical compared to all the other bugginess.
It's acquirable in the current build, but as expected it doesn't function yet.
This looks really fantastic so far! We recently added an area in RetroArch for downloading freeware and homebrew content for various libretro cores and were wondering if you would mind us adding it to the list.
I see that it's GPL v3 but wanted to ask first anyway :)
The Giant Pignon (the big mushroom in the cemetery) seems to rebound backwards (in the opposite direction to where it is facing) when it takes damage from the player, but in vanilla CS it always rebounds in the direction of the player.
In the original CS the item list would always collapse when an item was added or removed so that there were no empty slots.
However in the MD version something weird is going on:
http://andwhyisit.bugsiteguardian.com/csmd/gapitem_zpsnrdifjl0.gif
You can also see this in your finalcave_good save.
The SRAM field in the header is not valid. Some emulators do pay attention to it and will not make the savegame functionality work properly since Cave Story is not in their list of exceptions (BlastEm happens to trip over this).
The entire header could use being updated but this is the most critical part.
For example: experience gems. They'll survive being off screen until you transition to a new area or remain next to them and wait for the time out period.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.