ZZT on GBA I've been working on it.
#1
Posted 21 September 2007 - 01:17 AM
I've been playing around with C programming with DevkitPro to created a ZZT interpreter for the GBA... I guess calling it an interpreter is the best way to describe it. Right now all it will interpret is a single board file, which can be loaded off of a flash card on real hardware using the DLDI drivers.
So far I've managed to get board files to load and display, Although boards that have a 1 runlength for every tile on the board cannot display correctly. i.e. it creates a new tile for each new runlength. Once the location specified for the tile exceeds what appears to be a 32K block it kind of wraps around and does funky tile manipulation like horizontal and vertical flipping starting with the first tile in the specified tile base. There is enough space to store the tiles though... but anything outside a specified tile base just cannot be accessed by the map base it appears.
I've managed to make it so ammo, torches, gems... that stuff can be picked up, and a display showing what you've picked up can be displayed. Doors can be unlocked. But as for the rest of it I mean the player cannot shoot, enemies don't move... obviously can't walk over to another board yet... Im thinking I might implement loading scrolls tonight, since it seems like an easier task to do.
Well now getting to my point, this project is starting to take a more serious path of me wanting to complete it rather than just hobbyst fun. I was wondering if anyone in the community would be willing to help me look over and clean up my code, such as better ways to accomplish certain tasks... maybe help make clear up what the sprite code does, since although I can use it Im still confused to how it works. I've just learned how to use pointers recently so I imagine those parts of the code can be written in a more efficient manner. Im also wondering how I would document my progress correctly.
Im not going to post any part of the actual project until I am able to document it correctly. If there is anyone out there willing to give me some help with my project Id be really happy recieving the advice.
If anyone has questions or comments please Id like to hear. Also if anyone can think of some complex boards in zzt please post what they are here so I can test it out on what I've created. I would like to anticipate issues where they may lie.
#2
Posted 21 September 2007 - 01:30 AM
I don't know if you've heard about DreamZZT - that's a ZZT player for DS.
http://dev.c99.org/D...wiki/DreamZZTDS
A GBA version could be pretty similar. You can also take the route Kev Vance does for getting 8x14 hardware rendering. I'm interested in hearing exactly how you're doing rendering right now.
If you need help with C or GBA stuff let me know.. I guess you can find me on AIM.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#3
Posted 21 September 2007 - 01:32 AM
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#4
Posted 21 September 2007 - 06:53 AM
#5
Posted 21 September 2007 - 12:10 PM
#6
Posted 21 September 2007 - 03:26 PM
Exophase, on Sep 20 2007, 08:30 PM, said:
I remember DreamZZT originally playable on the Dreamcast. That was like 8 years ago

#7
Posted 21 September 2007 - 07:19 PM
asiekierka, on Sep 21 2007, 01:10 PM, said:
*facepalm*
No offense, but how are you going to do that? :D
#8
Posted 21 September 2007 - 07:38 PM
--ajs.
#9
Posted 21 September 2007 - 11:53 PM
<Mooseka> YES LANCER <b>TALK DIRTY TO ME</b>
<GMCBay> When creating a game, the first thing I do is design the box cover for the special edition collectors DVD. The second thing I do is begin thinking about what will be in the sequel.
<Koji> SOYLENT MILK IS COWS!! D:
<Jotz> you guys have such a mindless disdain for a delicious mint julep! that you're making it not work by thinking that it won't.
<Jotz> Sorry, but I don't think this project is going to succeed like a delicious mint julep! did.
<xicloid> Isn't there anything like "return null"in C?
#10
Posted 22 September 2007 - 12:05 AM
ZZT as a GCS is kind of archaic, superseded in every respect. Playing classic titles is surely critical for it to be useful (networking sounds cool, but it's fairly impractical).
Like you say, it's good to have a starting point, but there's a lot more complexity to ZZT than a board viewer. A long way to go!
--ajs.
#11
Posted 22 September 2007 - 01:54 AM
ajs, on Sep 21 2007, 07:05 PM, said:
ZZT as a GCS is kind of archaic, superseded in every respect. Playing classic titles is surely critical for it to be useful (networking sounds cool, but it's fairly impractical).
Like you say, it's good to have a starting point, but there's a lot more complexity to ZZT than a board viewer. A long way to go!
--ajs.
Of course ZZT on GBA can't literally be 100% correct, but the required differences are probably not in the same category as the important ones you refer to. From what I understand clones exist that will play over 90% of ZZT games but no one uses them anyway, possibly because they're extremely picky, but more likely because DOS ZZT still "works" so there's no reason to replace it, especially if compromises have to be made. It'll never "just work" on a platform like GBA (PSP via DOSBox, on the other hand...) so if people do want to play it there they may be more willing to take what they can get.
On the other hand, it could just be that most ZZT games are crap and some of the most popular ones are the ones that exploit it the most...
If people do want portable ZZT they'll probably turn to DreamZZT (given that they have a DS and not just a GBA, which is a likely scenario). You can't really beat it on a GBA, and even if you could it has a huge head start. If just getting the best ZZT on GBA was the top priority then I'd recommend back-porting that, but that's not really any way to learn and have fun with a project.
"The fact that I say I've one of the best, is called honesty." -Akwende
"Megazeux is not ment to be just ASCII, it is ANSI!" - T-bone6
"I hate it when you get all exo on me." - emalkay
Exophase can what Rubi-cant.
exoware is ware ur ware is exoware
ps. not loking 4 new membrs kthx
#12
Posted 22 September 2007 - 02:44 AM
<img src="http://img223.imageshack.us/img223/2655/quakemarinepz1.gif" border="0" class="linked-sig-image" />
--------------------
"There is only one basic human right, the right to do as you damn well please. And with it comes the only basic human duty, the duty to take the consequences."
- P.J. O'Rourke
--------------------
"Of all tyrannies, a tyranny sincerely exercised for the good of its victims may be the most oppressive. It would be better to live under robber barons than under omnipotent moral busybodies. The robber baron's cruelty may sometimes sleep, his cupidity may at some point be satiated; but those who torment us for our own good torment us without end, for they do so with the approval of their own conscience."
- C.S. Lewis
--------------------
This week, on LANCER PONDERS:
<lolilover> I notice alot of Japanese fiction involving kemono-mimi characters always has the main character saving an innocent animal and then the animal returns as a girl to reward him for his kindness.
<lolilover> Well there's a cat that is always wandering around in my backyard. Should I feed it in the hopes that one day a catgirl will show up at my door?
#13
Posted 22 September 2007 - 03:03 AM
IF I do continue with this project however, Im probably going to reprogram a fair amount of this. I want to make this work well, and right now what I have is kind of hacked together from broken ideas.
#14
Posted 22 September 2007 - 04:25 AM
ajs, on Sep 22 2007, 12:05 AM, said:
I think people shouldn't program things just because of how useful they are or aren't. Besides, programs are built slowly. MZX is up to version 2.81g, you've got to start somewhere. MZX didn't start as much.
<Mooseka> YES LANCER <b>TALK DIRTY TO ME</b>
<GMCBay> When creating a game, the first thing I do is design the box cover for the special edition collectors DVD. The second thing I do is begin thinking about what will be in the sequel.
<Koji> SOYLENT MILK IS COWS!! D:
<Jotz> you guys have such a mindless disdain for a delicious mint julep! that you're making it not work by thinking that it won't.
<Jotz> Sorry, but I don't think this project is going to succeed like a delicious mint julep! did.
<xicloid> Isn't there anything like "return null"in C?
#15
Posted 22 September 2007 - 06:55 AM
Way better will be our own text-mode GCS made specifically for consoles. Or something.
"You will never get 100% if 99% is enough."
#16
Posted 22 September 2007 - 02:36 PM
The point is that reimplementing the editor and other frivolities in ZZT is a waste of time, and more effort should be spent on compatibility. Just my two cents. I think it's inarguable that the clones aren't used because they just aren't as good as the original ZZT.
Of course, as Exo points out, ZZT actually works properly in DOSBox (unlike MZX, historically), so there's less motivation to reimplement it. Why risk a reimplementation when you can run the original perfectly? I don't think that in any way justifies console ports lacking compatibility, however.
@Elig: MegaZeux is an entirely different beast. Compatibility has been broken occasionally, but Exo did a port _from the original sources_ and compatibility is largely identical to the original DOS version. Any problems that do come up are rarely conceptually difficult to fix, and normally just bugs. See the veritable stack of bugs we fixed in 2.81g, with respect to compatibility. We even fixed a bug that existed in 2.51, before anybody besides Greg touched the sources. Hypothetically, some 2.02 games will play in 2.81g that wouldn't play in 2.51!
--ajs.
#17
Posted 22 September 2007 - 05:50 PM
EDIT: that dosen't suck (DreamZZT DS crashes on my fav games!)
This post has been edited by asiekierka: 22 September 2007 - 05:51 PM
#18
Posted 22 September 2007 - 06:20 PM
--ajs.
#19
Posted 23 September 2007 - 02:46 AM
ajs, on Sep 22 2007, 02:36 PM, said:
The point is that reimplementing the editor and other frivolities in ZZT is a waste of time, and more effort should be spent on compatibility. Just my two cents. I think it's inarguable that the clones aren't used because they just aren't as good as the original ZZT.
Of course, as Exo points out, ZZT actually works properly in DOSBox (unlike MZX, historically), so there's less motivation to reimplement it. Why risk a reimplementation when you can run the original perfectly? I don't think that in any way justifies console ports lacking compatibility, however.
@Elig: MegaZeux is an entirely different beast. Compatibility has been broken occasionally, but Exo did a port _from the original sources_ and compatibility is largely identical to the original DOS version. Any problems that do come up are rarely conceptually difficult to fix, and normally just bugs. See the veritable stack of bugs we fixed in 2.81g, with respect to compatibility. We even fixed a bug that existed in 2.51, before anybody besides Greg touched the sources. Hypothetically, some 2.02 games will play in 2.81g that wouldn't play in 2.51!
--ajs.
Right, but what I'm mainly saying is that a project's worth is more what it's worth to it's creator, not what it's worth to other people. For instance, if I created a ZZT clone, I might be doing it for my benefit or for my enjoyment, and that's a lot better than doing it so that there's another ZZT clone. Unarguably, we don't need more ZZT clones, but I think that's not looking at it from the perspective of the developer. Maybe the developer wants to learn about this or that through the production of a ZZT clone, or maybe the developer is just having fun trying to implement a ZZT clone.
Plus, emulators are traditionally built over a very long time with varying degrees of compatability. And what we're talking about is probably closest to an emulator, so, I see a lot of similarity there.
Sure, we don't need another NES emulator, but it might be a lot of fun for the developer.
Edit; Also, ZZT hasn't been done on the GBA before outside of DreamZZT to my knowledge. So, this would be a project that hasn't been done before.
This post has been edited by Elig: 23 September 2007 - 02:54 AM
<Mooseka> YES LANCER <b>TALK DIRTY TO ME</b>
<GMCBay> When creating a game, the first thing I do is design the box cover for the special edition collectors DVD. The second thing I do is begin thinking about what will be in the sequel.
<Koji> SOYLENT MILK IS COWS!! D:
<Jotz> you guys have such a mindless disdain for a delicious mint julep! that you're making it not work by thinking that it won't.
<Jotz> Sorry, but I don't think this project is going to succeed like a delicious mint julep! did.
<xicloid> Isn't there anything like "return null"in C?
#20
Posted 23 September 2007 - 04:31 AM


#21
Posted 23 September 2007 - 06:07 AM
Nedemai (mzxer) works on porting zzt to a handheld.
Exo ports GBA to PSP.
#22
Posted 23 September 2007 - 06:10 AM
Dr_Dos, on Sep 23 2007, 04:31 AM, said:
Awesome. That is just awesome. I completely agree.
<Mooseka> YES LANCER <b>TALK DIRTY TO ME</b>
<GMCBay> When creating a game, the first thing I do is design the box cover for the special edition collectors DVD. The second thing I do is begin thinking about what will be in the sequel.
<Koji> SOYLENT MILK IS COWS!! D:
<Jotz> you guys have such a mindless disdain for a delicious mint julep! that you're making it not work by thinking that it won't.
<Jotz> Sorry, but I don't think this project is going to succeed like a delicious mint julep! did.
<xicloid> Isn't there anything like "return null"in C?
#23
Posted 23 September 2007 - 10:58 AM
--ajs.
#24
Posted 23 September 2007 - 12:32 PM
This post has been edited by asiekierka: 23 September 2007 - 12:33 PM
#25
Posted 23 September 2007 - 01:08 PM
Dr_Dos, on Sep 22 2007, 11:31 PM, said:
Thats both cute, and weird. Cute is all I can describe it as.