|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
![]() |
Author | Message |
---|---|
|
[WIP] Bonk's Adventure for the SMS
![]() |
I'd like to show off my current SMS project using Z88DK, I'm trying to adapt Bonk's Adventure to the SMS using a mix of elements from the TG-16 and NES versions of the first game. Currently I have my sprite engine working more or less with some bugs and the HUD but haven't gotten far with scrolling backgrounds or collision. What's the best way to approach collision for the BG tilemap? The 1-1 BGM is based on the NES version and is a bit rough, will probably need to tweak the Noise channel.
A quick animation test, and about how far it's along. https://youtu.be/x8A1c_dC7aI?si=qeSi1J9xbCSrCZqf |
|
![]() ![]() |
|
|
![]() |
It looks great so far!
The SMS can output 3 basic noise frequencies. You seem to be using the lowest frequency. The medium or highest noise will sound much more like the noise used in the nes version. So it should be an easy fix. I also want to point you to this Alex Kidd mod: https://www.smspower.org/Hacks/AlexKiddInMiracleWorld-SMS-PcKidded-Mod Bonk is the same size as Alex Kidd, which is an obvious restriction when making an Alex Kidd mod in Kidded. The music might be interesting. Hopefully it will be inspiring. |
|
![]() ![]() ![]() |
|
|
![]() |
Very nice. Congratulations and keep goind. Im sure that members with big experience here will help you when you need. |
|
![]() ![]() |
|
|
![]() |
Regarding the level layout and collisions, I guess it partly depends on the level form. Are there any solid surfaces not aligned to a 16x16 grid? Is there ever a floor over another floor? You can make simplifying assumptions sometimes. However, the most general strategy is to define the level as a matrix of block types, where each block is a multiple of the 8x8 tile size, often 16x16; then have a table that defined attributes for each block, including how it is drawn and whether it is solid or not. The main character’s movement is tested against the blocks (or “meta tiles”), with the X and Y movements restricted by blocks that are solid.
So if if after applying movement, the character’s top edge is inside a solid block, and they are moving up, they “zip” to its edge, and maybe the Y velocity is zeroed. If the player’s bottom edge is inside a solid block, and they are falling, then zip them to the top and change their state to not falling. It’s then possible to add special behaviour to blocks and maybe even to put the block map in RAM so you can modify it at runtime, if the game needs that. |
|
![]() ![]() ![]() |
|
|
![]() |
As maxim said,
* with a collision map or * using the 3 unused bits of each tilemap tile definition (bit 31,30,29) |
|
![]() ![]() |
|
|
![]() |
Wow! That looks awesome so far! Good luck with this! I hope you are able to see it through to completion! | |
![]() ![]() |
|
|
![]() |
It looks very striking, keep it up! although the character sizes will undoubtedly have to be reduced a little, given the enormous size of bonk. | |
![]() ![]() |
|
|
![]() |
Bonk is 3x4 8x8 tiles which is the same as the NES sprite for Bonk, is that too many tiles for an SMS sprite? I do understand you can't have more than 8 sprites drawn per scanline at a time but he's pretty much sized appropriately for the Background graphics compared to the other versions. ![]() |
|
![]() ![]() |
|
|
![]() |
No, both the SMS and the NES share the same max-8-sprites-per-line limit, so don't worry :) |
|
![]() ![]() ![]() |
|
|
![]() |
Maybe better to use 6 x 8x16 sprites ;) |
|
![]() ![]() |
|
|
![]() |
Update
I've implemented collision with the ground though I need to rework it a bit as its causing very noticeable slowdown but it works currently. I also got scrolling to work though I can't seem to get the column to remain in the first column thats blacked out as its drawn so you can see it pop in at the far right as the column is updated, also I need to fix a bug that makes it draw the wrong column of tiles when you walk right after walking left. Overall I think its very good progress. |
|
![]() ![]() |
|
|
![]() |
Wonderful music. Close to original. | |
![]() ![]() |
![]() |