I have lately been working on a Super Smash Bros. Melee clone for monochrome z80 calcs. If you don't know that game, here's a link that may interest you.

Before annoying you with text, here's a screenshot of the current progress.

(I know my game doesn't officially use grayscale but the Shine has really short frames and seems gray when used, which really gives a nice effect, that's why I recorded with grayscale enabled).

Now, why "Smash Bros. Open" ? Simply because of a play-on-words with "Open".
Those watching the tennis know that "Open" can refer to a competition, which fits a game such as Smash Bros. pretty well.
Those using Linux might think of open-source programs and other openness things.

To clarify that openness, let me give you an example. A question that I was often asked is "Will there be only Fox ?". And the answer is "Yes and no".
I will probably only make Fox. But the engine is really modular which (will) allow you to create your characters and play them ingame without even having access to the source code (they will be in appvars in other words). Even if you want to play as an invincible leek that one-shot with every hit !
As for the source code, it will probably be published (once cleaned up a bit) in order to allow people who want to add missing features (such as items) to do so.

Speaking of which, the source code is completely unoptimized, but it is done on purpose. This way, people who want to edit it can do so very easily instead of digging through my usual unreadable code (even though not necesarily more optimized Razz ). In fact, the source code is currently 51092 bytes with comments and preproc constants, while the executable is not even 13000.

Another question people can wonder is "6MHz or 15MHz ?". And the answer is "both" for now.
What slows down the program most is drawing the map. So we can play at 15MHz with a "complicated" map, such as in the screenshot, or at 6MHz with a "simplistic" map that only contains rectangles. That's still a bit slower than the 15MHz version with the complicated map, but it is very playable in my opinion.

Credits
Badja for scaled sprite routine.
Matref for packing those routines into an axiom.
Quigibo and Runer112 for Axe.
KermMartian for CalcNet, in a future version (don't get too excited, I already need to get everything to work properly with two players before adding support for more players)

Download
http://ti-pla.net/a110486

I think you'll easily guess the keys I use to control one of the Foxes. For the other one, the keys are the numpad, log and x2.

Please report any problem you encounter, especially if you are experiencing desync when playing with the linked play versions.

I don't see anything else to say for now so I'd say I'll answer questions if you have any ^^

Outadated versions (all versions try to run at 15MHz if available):
Versions without linking support (both Foxes are controlled with the same keyboard on the same calc):
Version with the "complicated" map.
Version with the "simplistic" map.
Versions with linking support:
Version with the "complicated" map
Version with the "simplistic" map
So you're doing it M.U.G.E.N style (I just realized) ? That's good, because it'll permit us to pick the characters we want from a database for example.
I didn't know about MUGEN until now but yeah, basically the engine will load any external character and map that is well formatted Smile
Which means that if you don't like Ness for example, you can save space by not putting him on your calc (assuming someone makes Ness one day) Wink
I have to say I'm really liking what I see in that screenshot. IF I can get some time to look at it, I wouldn't mind taking my shot at creating a character :p Mario and Luigi obviously need their spots. Wink
Thanks Smile

And I'll make a tutorial about character making. It will not come before a long time though because I am not sure things will not change during dev so I don't want people to start making characters just to hear "change things to make it work with the latest release".

You can start spriting though Wink
Make sure your character is the right size compared to Fox's.
UPDATE

You can now grab edges. Detection is half Melee and half Brawl. You can only grab if you are falling but the direction you are facing doesn't matter.
However, once hung, you can't do a lot of things Razz
The only thing you can do is wait for your character to let go (he will after 31 frames) which will allow you to double jump or make an UpB. But "official ways" to get back up are not done yet.


The Illusion is more realistic in its behaviour. Canceling it doesn't set your X-Speed to 0 anymore. However, some constants might be a little wrong.
This means that normal Illusions are still normal, long Illusions are possible and short Illusions are less short than they used to be.


The Up FireFox can be deviated a bit to the left or the right. I added that because I obviously lack support for 16 directions.
(No screensot for that).

FullMapLink
FullMapNoLink
RectanglesLink
RetanglesNoLink
Nice, thanks for keeping us updated on this project. My only experience with Super Smash Bros is a few rounds played with my fellow interns last summer, but from what I remember, the flow of your version is quite reminiscent of the original. Keep up the great work! Regarding CALCnet, you might consider giving it a try even for two-player support, since it is capable of communicating asynchronously. I'm not sure whether the default Axe routines allow for asynchronous communication, or must be used synchronously. Of course, I'm here to help if you want to play with them. Smile
This looks amazing, I hope that it will be finished soon, I'm excited for it!

how are the characters stored per appvar?
KermMartian wrote:
Nice, thanks for keeping us updated on this project. My only experience with Super Smash Bros is a few rounds played with my fellow interns last summer, but from what I remember, the flow of your version is quite reminiscent of the original. Keep up the great work! Regarding CALCnet, you might consider giving it a try even for two-player support, since it is capable of communicating asynchronously. I'm not sure whether the default Axe routines allow for asynchronous communication, or must be used synchronously. Of course, I'm here to help if you want to play with them. Smile

Thanks Smile
No, Axe routines don't support asynchronous communication but I was actually surprised not to see any slowdown in my program even when adding a 6 byte transfer. And since I am only sure of my schedule until September 8, I'd rather work on what doesn't work than changing what's working Wink
But there will probably be a menu asking for which multiplayer mode you want to use (two players on one calc, two players on two calcs with Axe routines) so we'll just have to add a CALCnet mode in this menu Smile

16aroth6 wrote:
This looks amazing, I hope that it will be finished soon, I'm excited for it!

how are the characters stored per appvar?

Thanks Smile
What do you mean ? Basically, you make an appvar containing a header (to identify it as a SSBO Character among other things) then the data describing how the character works and the engine will read that. Do you mean "what's this data like and how the program reads and understands it ?" ?
Can you publish the specs on the character data? I'm assuming that's what he means. I would like to get Mewtwo up and running Smile
Ok, thanks for clarifying Smile
And of course I'll publish the specs. I just don't want to publish too soon in case I make some changes that creates incompatibilities with what was already done. Plus, I couldn't really publish before I got loading from the external appvar working, which I got to work today.
Note that incompatibilitites are less of a problem for maps since there's a lot less data so at worst you'll change 10 lines and you're done.

If you really want to get a character done, I'd say that you should start spriting Wink
Be sure to have your character the right size compared to Fox's.

If despite what I said you really really want to see how Fox is done, here's a pastebin.
http://pastebin.com/tysUSpaB
(for those unfamiliar with Axe syntax, the "." starts a comment).

Note that the annoying "-°DB" that is everywhere can be avoided if you generate this data with SPASM and the likes, using a simple .org, but since I for no reason decided to generate this data with Axe, I have to make that substraction everywhere.
Awesome! I especially like the the sprite scaling. You can almost hear the Smash Bros announcer in the background. Very Happy
Thanks elfprince.

Are there any plans to have support for items?
Also, (I don't know much about axe or if this would work) would it be possible to put the finished characters into a group file and have the game load them from there? (Then you wouldn't have to have 32+ appvars in Archive (or RAM [I assume they run from archive]) .
Dianzi tian wrote:
Awesome! I especially like the the sprite scaling. You can almost hear the Smash Bros announcer in the background. Very Happy


If only it was feasible to have this going in the background:
Just play that track while you play the game. And wear headphones.
Dianzi tian wrote:
Awesome! I especially like the the sprite scaling. You can almost hear the Smash Bros announcer in the background. Very Happy
Haha ! Thanks Very Happy

16aroth6 wrote:
Thanks elfprince.
? edit ah yeah, about clarifying Wink

16aroth6 wrote:
Are there any plans to have support for items?
Also, (I don't know much about axe or if this would work) would it be possible to put the finished characters into a group file and have the game load them from there? (Then you wouldn't have to have 32+ appvars in Archive (or RAM [I assume they run from archive]) .
Yes and no for items. I just made a change in the engine that allows an arbitrary number of "objects" to be present on the map (the way I coded that used only to allow two "objects" (the two characters) but after a lot of RAM reorganization, adding "objects" will be a lot easier) so items will be possible. However, they are not on the top of the todo list, I need to support other objects before I think about items, such as projectiles for example.

About grouping, that could theoretically be possible (what's possible in Asm is possible in Axe, just sometimes slower if you don't use Asm()). That's actually not a bad idea if you really plan on putting all characters on your calc. But once again, that will probably not be high on my todo list at all, especially since, unlike items, the game can be considered as "complete" without this feature.

elfprince13 wrote:
If only it was feasible to have this going in the background: <youtube>
Sorry but the link port is already used Very Happy
Most of all, sound would add a lot of lag to the game (except if I only put it during menus but it's not that interesting in my opinion).
Hayleia wrote:
elfprince13 wrote:
If only it was feasible to have this going in the background
Sorry but the link port is already used Very Happy
Most of all, sound would add a lot of lag to the game (except if I only put it during menus but it's not that interesting in my opinion).

Which port does it use while linking? If you played this on an 84, you could in theory link with the USB port, and use the I/O port for music.
(unless axe can only link with the I/O port, I haven't used axe much)
Not only that would break compatibility with the regular 83+ (which only runs on simple maps but still runs) but that's also only in theory. The USB port is not something very well documented and often used. Even in Asm I can't name two programs using it. So I don't think this will be added in my game (note that Axe can include raw Asm code so what's possible in Asm is basically possible in an Axe program).
But the main problem is more that sound will either slow the program down a lot or be ridiculous.
I just peed a little... Neutral


This has sexiest camera movement I have ever seen on a calculator, and the player control looks so smooth. o.o

Excellent work! Can't wait to see the finished product! Good Idea
This looks incredible! Keep up the good work!
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
» Goto page 1, 2, 3, 4, 5  Next
» View previous topic :: View next topic  
Page 1 of 5
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement