Omnimaga
Calculator Community => Major Community Projects => Pokémon Purple => Topic started by: tifreak on January 02, 2011, 06:34:54 am
-
To start the new year off;
Currently working on code for the battle engine, find the GUI code bits here: http://www.cemetech.net/forum/viewtopic.php?t=5548
Updated the Equations program, it used to use L_EPA for the list. The program before was 1003 bytes. I changed every instance of L_EPA to use L_2, the program is now 906 bytes in size.
Progress continues into the new year..
-
I'm glad this is still progressing. :)
Let's hope the 2011 topics will be larger in terms of updates than the 2009 and 2010 ones :P
-
lol I shall definitely try to do so. I have made some progress with the code for the GUI. It should, in theory, post the NPC and player sprites, display the text that NPC TRAINER wants to fight, clear out NPC TRAINER sprite and display TRAINER POKEMON and generate the stats for it, plus display said stats, the ones that are important, anyways.
-
Good luck with the gui, and i can't wait to see more of the 2011 updates! ^^
-
Thanks Builder.
I have managed to get a bit done with the GUI. I think all that is left is to do for the display at this moment is display the player's pokemon and data info and the options.
Edit:
I managed to get the code theoretically up to the point where it will display the fight options, and the start of the RUN function. Go me!
-
Cool to hear :D
-
I look forward to what this new year will bring, tifreak! Good luck, and thanks for a great program!
-
Thanks ^ ^
Got the UI part of the code done, I believe. I still need to drop it on the calc and see how it works, but I probably won't bother too much with that until after I get the rest of the code written out. I still need to finish up the party and items menus so they will work with the battle system, now that I have how lists will be set in stone. So that is what I am working on now.
-
One thing is for sure: with all the people that now play newer Pokémon games instead of the old ones, when this comes out this will definitively bring them some nostalgia :D
-
I agree with DJ.
Of course, I still play the older games more than the newer ones. (The exception to that is SoulSilver, because it's a remake of one of the best Pokemon games evar!)
I can't wait to see the battle engine, though. Sounds like you're making some good progress on it.
-
Wow I didn't know SoulSilver was a remake of Silver. I am Pokémon-illiterate so I just thought they started running out of name ideas. :P
-
I have almost 4 of the 5 pages of code I have written on paper dropped onto the calc. I have had to redo a few of the string vars so I can try to reuse them and save the names to each. I also saw an optimization that I thought was going to be an optimization when I wrote it down. However, It took up a few more bytes than it saved, so it was changed around.
The code, in theory, as it is on the calculator, should be up to the point where it displays trainers, then pokemon, then data, and finally the menu. Once I get the last bit typed in, we'll find out.
-
Cool!
I actually prefer the original Pokemon, everything after Hoenn was just not pokemon-ish, they all look sinister and look like something from Yu-Gi-Oh, no the cute pocket monsters that used to be Pokemon. Just my thoughts. ;)
-
Cool, New progress! \o/
-
Finished typing up the code this morning to the calc, did a backup and dropped it into archive. Sadly, the code does not work as expected. It displays the text box, and Ash sprite, but then after a few seconds, it ERR:SYNTAX so I need to see about figuring out what went wrong there. :/ At least it is progress!
-
GOTO TO THE RESCUE!
sometimes i can't believe that you are still working steadily on this, tifreak. how do you do it?
-
@Shmibs
Because he's a beast that way :P
Also, good luck on fixing that bug. Hope ya get it figured out and good luck on future progress.
-
lol Shmibs, sadly the GOTO option is completely and utterly unhelpful, as all it does is redirect to the program I have the test data in that then calls the GUI. It is something in between calling the ASH sprite and calling the trainer sprite. I think.. It might be the sprite data, maybe. I could have goofed up with it and the expr( I am using with it is causing some issues. I have to pull the sprite data out of appvar and check it over, just to be sure what is going on. Could be an asm program problem too. I just don't know yet :<
And thanks meishe, definitely appreciated. lol
-
Sorry to hear, good to hear about new progress, though :)
-
I have finally found some time to do some debugging, and I've manage to kill a few things off. There were a couple appvars missing, and some code in the equations program that hadn't been updated to see data programs as appvars. Now I have another issue that I'm not sure what is wrong, and I will be working on that until I get it figured out.
Just letting you all know so you don't think it died again :p
-
I am happy to see you around :)
-
Thanks Kalan, it is equally good to see you are still in the community
-
After doing some more digging, I have found that I neglected to fill a data appvar with the data it was meant to hold. And after digging through notes, I realized I never actually compiled the data to put into it. So that is what I shall be doing over the next couple days.
-
I've made some progress with the data compiling. 165 attacks grouped in 76 attack types over 10 pages. It took 30 minutes to set up 22 lists. :/
-
Ah, sweet! This really is sounding pretty awesome! I tried it out a long time ago and I was pretty impressed >_> I cannot wait for more!
-
lol Thanks! I am definitely working on it, regardless of if it looks like there is no progress. ><
I honestly think the battle system will be quite easy once I get everything set up, with the way I am writing things. I can only hope, at any rate ><
-
Haha sorry to hear about the appvar issue, but glad you got it figured out and that progress is still continuing on this project! ;D Sounds like you have a lot of data to enter D: That can sometimes be the easiest, or sometimes the hardest part XD Good luck! Can't wait to see more progress!
-
lol yeah. It's more tedious then anything. Especially when you need the data in one way but they have it grouped in another. Have to do that whole hunt and peck thing with the information. I'm up to around 70 now though.
Edit: Stopping for the night at 80. Eyes hurt so bad it is hard to read what the pages say ><
-
Glad to see more updates on this. :)
-
Yep, no intentions on stopping, just short bursts of progress as I can. I got up to 115 now in that list.
-
Alright, some news.
I got all the lists dropped into a program, all the data verified and the program converted into an application.
I realized upon testing that I had put the L_EPRTY(7 in backwards, so I have that changed in my notes as well. It is now in a sprite.name format.
The stats for health isn't generated, not sure why yet. I might not have included that in the equations. Something for me to go through digging. At this point, it is causing issues with debugging since it throws up a divide by 0 error when it tries to display the hp bar.
-
So, I managed to locate some decent information on the generation of stats themselves, and now I have to figure out how to add it to my equations program. Sadly, looking at it.. I think I broke it.
What I need to do at this point is refigure out what all is actually on there and rewrite the code to make sense. Because at this point I think a part of it might be getting skipped. :/
-
Oh, ouch. Yeah, I know what it is like to have to reformulate equations in an RPG... but I've only ever had to do that with a program just barely >9000 bytes. Good luck :/
-
Well, the equations are in a separate program, less than 1k bytes. It's just trying to organize them in a way that I can maximize efficiency and be able to use it for the maximum amount of situations that could call for them, if you know what I mean. I have got to sit down and organize that next.
-
Ah, well I still do not envy you... it is kind of what has put me off from making large projects like that, so I hope it doesn't have any adverse affects on your programming :/
-
Haha, not at all. I become overwhelmed at times and take some time off, but that is usually the doing of real life stress and very little to do with the project itself. Wish I had a normal 8-5 job, would be nice :/
Anyways, will try to keep people updated on here. (which at the moment seems to be you and DJ lol)
-
Aww... I love Pokémon, so it is kind of a given that I would be interested :D I have always wanted to create my own version of pokemon called Pokémon Amber, so I like to see other people's renditions ♥
-
I will definitely do my best not to disappoint ^^;
-
I think I tried a beta version a long while ago and I wasn't disappointed then, so I am sure I won't be disappointed now :D
-
I will definitely do my best not to disappoint ^^;
Basically this means version 1.0 for March 2010 :love: ... oh wait... we're in 2011 <_<
-
I'm always lurking on this thread whether or not I actually post. ;)
-
rofl DJ
I came to a decision on the equation stuff last night. I'm not going to worry too much about the size of that program, since there aren't really going to be too many equations to have to deal with thankfully. So there is going to be a bit of repeat code between New pokemon generation and the equation handling level ups. This should not take long to get done and programmed in, hopefully. Just have to find the time to work on it and not be distracted with other things <o<
-
Ok good luck with that stuff then :D
How large is the entire game so far, by the way?
-
Ok good luck with that stuff then :D
How large is the entire game so far, by the way?
Thanks, it's proving slightly tricky, but I am making progress. :]
As to the size, I know it is over 100k, but I haven't updated the list in a while, I need to try to remember to do that, eventually.
-
O.O Wow! I think the largest project I ever worked on was about 22k. Wow!
-
O.O Wow! I think the largest project I ever worked on was about 22k. Wow!
Yeah, Pokemon is going to be massive. I won't be surprised to easily surpass 250k with no trouble. Map data is going to be the biggest contributor to that. The pokemon sprites take up 16k all by themselves, and that is in hex, and optimized hex at that. I'll have to definitely see about updating that list :p
-
Wow 250 KB doesn't seems too big for me for a Pokémon game. I was expecting PP to be at least 1.3 MB large with all the Pokémon data and other stuff. But yeah way larger than any project I worked on. The final version of Illusiat 13 was expected to be 160 KB large.
-
I've sadly made little head way with the list creation over the past couple of weeks. I've been quite busy with work, life and just generally stressed out over problems that go beyond my control. I have, however, made SOME progress with it, so there is that. Just trying to make this as efficient as possible while not really caring about super optimizing, if that makes any sense lol
Also, with recent events that are happening, I would like to point out that if something happens to Omnimaga, I post updates on TI-Freakware and UTI as well.
-
Made some progress. Got the code put in for the equations program. Sadly, it seems I didn't add enough error checking for empty attack slots. This is for new, low level pokemon that know <4 moves, so at least one of the slots will be empty. Once I can get it to stop erroring out, then I can see if the rest of it works. So far, everything else seems happy enough.
-
Sorry to hear you had life issues. I hope things are better soon. Glad to see some updates by the way. :)
(Btw sorry for not checking sooner, catching up on 5000 posts takes quite a while. X.X)
-
oh, whoops, forgot to update about that here lol
I got the error problem with the attacks taken care of by adding a conditional to check and make sure the slot is >0 before trying to store data to it. That solves that small issue. I've also put in the round( command because some of those equations left decimal equivalents in attack stats, and I can't have that. I considered just using iPart(, but round( lets there be a small chance that you get a bonus point in a stat.
At this point (I haven't used the list editor to compare to the list on paper to make sure all fields are properly dealt with) the equation for new pokemon seems to work. The next issue I have is that, for some reason, the battle screen doesn't display. But it didn't work before the equations program update because of the equations not working. So, moving on.
And it is fine DJ, I completely understand. :p
-
Nice to hear you have fixed some of the issues :D And yess the file size I think is actual excellent for a Pokemon game! Good luck in fixing some of the new bugs! :D
-
More updates and fixes == great :D
-
Thanks guys.
@Builderboy: Sadly, they are old bugs, I just couldn't test it properly because my equations program was horrifically broken when I last tried. I think there are a few issues there still, in the equations program that I need to iron out. Just requires comparing lists and such and hoping I am wrong on that front.
-
(http://tifreakware.net/tifreak8x/pokemon/ss/battlegui.3.28.11.gif)
Yes, I am aware of the line not connecting on the hp bar, just wanted to screenshot progress of what works now :p
-
I like the layout so far and I'M glad to see some visuals of the battle engine. :D
-
Thanks. Now to start working on making that battle setup functional!
-
Again, this looks very nice! It's just awesome!
-
nice update!! awesome as always (y)
I hope the fighting moves fit into the box tho. I always had trouble fitting too many words on a calculator screen :(
btw the drawing of the trainers seem to be a lot slower than the pokemon drawing. Are you using different methods to display them?
-
Yes, benryves created a special asm program that handles the needs of the pokemon sprites, as I optimized the hex by replacing the end of a line of 0's with a single character 'G', in effect creating a new hex value of sorts. This reduced the size of the sprites severely, at the time I was using basic to display them, but ben threw that together in a few minutes after a bunch of people said it was too slow to show the pokemon. The NPCs don't take too long to load, and it is completely in BASIC.
Edit:
As to the text, the only solution I've thought of was to store a pic var right before the options pop up, then once a user selects the attack, it clears out that section that was expanded and recalls the picvar. I've not thought of anything else that would work for me.
-
ahh yeah drawing the pokemon in addition to the NPC might've been a bit too slow. Will there be attack animations? or is that too graphic-heavy for BASIC to handle quickly? Since pokemons are drawn in asm I think slight movement when pokemon attacks wouldn't be too hard to implement.
and it seems that ditto is a bit high up, position-wise? wouldn't it be better to lower the y-value a bit? lol now i'm kinda asking too much
-
Hmm, I could make a simple program to store/recall specific portions of a screen, not thta it would help much :D Other than that, if you need any small ASM tools, I would gladly try to put something together! If the code is small enough, I could supply the hex code and you could just use the Celtic 3 command to execute it.
-
I'm not using C3, I'm using C2 ;)
And thank you, I'll keep that in mind. Trying very hard to not need any more asm help lol Outside the eventual need of a linking program.
-
lol yeah we already have enough asm pokemons. The coolest thing about Pokemon Purple is that it uses BASIC to the greatest extent possible :D
-
Btw does every calc you own got the app crashing issues that prevents you from using Celtic III/DCS7 (which includes Celtic III)/Mirage?
-
I've not had issues with DCS, and I've never installed Celtic. The only one that truly gave me issues were MOS.
-
Well, I -think- I have things working properly for RUN. Only problem I am running into is that since none of the other things are working, I can't test it thoroughly. So the next item on the list is make it so you can swap pokemon from the one fighting to one on the list. I just need to verify that there are any fighting moves that might cause a pokemon to not be able to leave the arena.
-
I've not had issues with DCS, and I've never installed Celtic. The only one that truly gave me issues were MOS.
Ah ok good to hear. I was worried your calcs all had issues with every app.
Sorry to hear you got problems with your program, though. I hope you can manage to fix it easily.
-
Oh, you know how it goes, you get so in to programming something, that when you come back to look at the code, it looks like a vat of spaghetti. lol I just need to straighten out the party program and I can continue making progress.
If anyone noticed from twitter, I've gotten ideas for map storage as well.
-
Ah, I don't have a twitter cage or whatever it's called :D But yeah, I know what you mean about the code XD Sometimes I kind of get into a zone and my programming style changes a little. The next time I look at it, my brain implodes trying to read it :D
-
Oh yeah, I remember having that issue too. X.x
The worst part is that sometimes it gets slower and slower then you have to rewrite it completely, then mess things up and have no recent backup with working code...
-
Oh, slowness isn't an issue. I just have 11 or so End commands at the very end of the program and I need to move those around so they aren't like that. Once I get that fixed, I can see about fixing the moving of pokemon from battle and such.
-
Got the code sorted and all the Ends linked to their corresponding commands. Got an idea I am going with for switching out pokemon in battles, so I am going to try to start in that over the next couple of days. Also have an idea to implement better storage methods for maps.
-
Hey tifreak, how goes Pokemon Purple? :)
-
Well he posts updates once in a while. Maybe he's more active on tifreakware.net/forum if you wanna talk to him. :)
-
Well he posts updates once in a while. Maybe he's more active on tifreakware.net/forum if you wanna talk to him. :)
Ok thanks ;)
-
Hey tifreak, how goes Pokemon Purple? :)
I'm making slow bouts of progress, working out the code to switch pokemon around in battles.
-
I'M still looking forward for the integration of this engine into Pokémon Purple so the game looks like this
http://img.removedfromgame.com/imgs/portaloncalcs.gif
-
Haha, yeah, like that's going to happen :p
-
D: Damnit :'(
-
So, some good news. I've gotten through the code for ZPP and I've managed to figure out where to insert the code for switching out pokemon in battle and have even managed to get a bit written down on paper, code wise. I don't seem to have the code written out for ZMISC, which houses the code for the stats screen, so I need to deal with that yet so I can make sure there are no conflictions within that code and ZPP for the switch out. Once the stats bit is done, then I just have to write the switch out code, which will constitute storing the important date from L_1 to the correct LP# depending on the first active slot in L_PRTY. Then from that point, I pull the next slot over and dump that into L_1, then bring back the battle screen, erase the pokemon and HP data, then redraw it, then allow the enemy to attack. (For testing purposes, I'm just going to have 'Enemy attacks!' and might even have it deal 1 pt of damage to try to work out the hp bar going down.)
I actually just had an idea to that end as well. First I calculate the length of that line, and store that to a variable. Then I calculate the damage and recalculate the line the length. Then it's just a matter of using the Line(#,#,#,#,0 with the two values obtained, should allow to subtract the damage part of the hp bar without needing to clear it out and re-rendering it.
-
This is nice :D
-
I've made some more progress, I've essentially gotten it to the point where I need to return control of the game back to the battle gui program. I still need to have it do attacks, but I think I will just have it do "NAME attacks NAME" and have the damage meter go down by 1 or 2 or something random from 1-5.
I also saw this morning that I made the hp bars 1 pixel too short, so I've fixed that in the code, and moved the storing of Pic 2 in the battle GUI to Pic 1 and put it before it displays the text for the menu.
And I consolidated the code for displaying the HP bar (that shows you how much hp the pokemon has, not the border around it) from
L1(1)/L1(2)->G
(G_E2)/4->G
Line(65,25,65+G,25
To
Line(65,25,65+(.25iPart(_E2(L1(1)/L1(2)))),25
Hopefully will have this code finished and incorporated into where it should be before too much longer. Then testing to see how badly I screwed things up and see if it is fixable :p
-
It seems as though this is coming along nicely. Just wondering, how many programs do you think it will take up for Data and Executable code, and what would be an estimated size toll?
-
I can't even really warrant a guess on how many programs, though I will be moving a bit of them into appvars when I can start dropping map data over into them. As to size, I wouldn't be surprised if this broke 250kb. It's already over 100k as it stands, without taking into account variables and lists.
-
Well, that actually sounds abut right :) I would actually consider freeing up space on my 84+BE so that I could play this and maybe help you test it out for bugs and the like.
-
Thanks. I am pretty stringent on testing for bugs as I add each new thing to make sure it all works, but I am always capable of missing things :p
-
Well, if that's the case, then Bravo, you're a better programmer than me! :D I usually write a whole program before I even consider debugging. A quick question: you mentioned the use of Appvars in your game, are you using hybrid-BASIC, and if so what platform?
-
It's pure basic, but uses xcopy(or celtic II, I don't remember) for copying data back and forth and a small asm hex sprite utility written by Ben Ryves for one part of the game.
*Edit* It might be 15 mhz only simply because those calcs, have more storage space.
-
I am using absolute minimum asm interference. Currently, I have the following asm programs:
Celtic 2
Resource
List to String converter
Hex to sprite
I know for certain that I will need asm for the linking routines, but that is going to have to be very very customized. Beyond that, hoping for no other asm program.
-
Hmm, that's actually impressive. I'd still call that pure-BASIC, since that's pretty minimal assembly usage right there.
-
Thanks. The original intent of this game was to build a game using my RPGSK, however it proved to be inadequate, so I build RPGSK2 and am using that. DJ said he wouldn't host the files until games were made of them. :p Then I took it further and wanted to show people what BASIC can do with little asm help.
So far, I'd say I am doing well with that goal. :)
-
Got the last bit of code written into the calc and the calc is backed up, however, I've forgotten to include a few bits of code necessary to make things work, at least from what I can tell. Hopefully a test will happen soon!
-
Got the last bit of code written into the calc and the calc is backed up, however, I've forgotten to include a few bits of code necessary to make things work, at least from what I can tell. Hopefully a test will happen soon!
Hopefully, it will be worth the weight wait. Only VALVe players will get that, it's an honest statement though, since I hope it's worth it's weight in bytes.
-
Got the last bit of code written into the calc and the calc is backed up, however, I've forgotten to include a few bits of code necessary to make things work, at least from what I can tell. Hopefully a test will happen soon!
Hopefully, it will be worth the weight wait. Only VALVe players will get that, it's an honest statement though, since I hope it's worth it's weight in bytes.
From what I've seen form this so far, I think it'll be worth the wait and the weight ;) Plus, it's a lot smaller in comparison to TI-BOY SE pokemon ROMs, and was made and optimized for TI calculators.
-
Thanks. I'm trying to make sure it will be. I've also been optimizing things as I can find them to optimize, and hopefully Weregoose will still want to offer help with optimizations.
-
I managed to get the code written into the calc from paper. It didn't work, and after a few minutes using Tokens to move the End commands on to their own lines and to have SourceCoder parse the code using indentions, I was able to find that I missed adding 3 End commands in there somewhere. So, now that that part is fixed, it cannot use the STATS function. I am currently working on that to solve that issue.
-
Well, I figured out one of the errors that I had concerning loading the proper pokemon in the list. I had put in the (A) bit for which element in the list to look at, I however forgot to put the list name itself in there. 0x5 Silly mistake to make, however, I WAS writing in 5 pages of code, so I think I can excuse myself in that regard. The new problem arises, however, that the While loop isn't looping, and I'm not sure wtf is up with that. I'm going to change the code to work in a For( loop and see if that doesn't fix my problem.
-
/me hates when we debug something, take a long while to do so, then once done, we're all happy, only to later find out that our debugging introduced twice as many bugs :X
-
Lol, yeah, I really hate that as well, seems to happen to me a lot. Especially since I build the 'modules' on one calc, then drop it on the other calc and integrate it into the main game, and that normally causes issues. Just so much fun and all that.
-
Ok, so I am an idiot. Bug with pulling the correct pokemon from the list has been repaired.
-
Good to hear it was fixed :)
-
(http://tifreakware.net/tifreak8x/pokemon/ss/switchoutwitherrors.gif)
Oh yeah, now we're getting somewhere! :D
-
That's awesome! Great job, tifreak. :D
-
Thanks! As you can see, there are still errors that need to be dealt with. And it is quite confusing, since it shouldn't be like that :<
-
Great to hear :), good luck with the errors. :)
-
(http://tifreakware.net/tifreak8x/pokemon/ss/switchoutwithlesserrors.gif)
Managed to fix a few things with that, mostly 'cosmetic' bits
-
This looks very nice! The effort that must have gone into this must have been huge. +1
-
Looks awesome!
I did notice that in the dialog 'Youngster wants to fight!' there is no space between Youngster and wants, yet in the next dialog, 'Youngster sent out ...' there is a space after Youngster.
-
Looks awesome!
I did notice that in the dialog 'Youngster wants to fight!' there is no space between Youngster and wants, yet in the next dialog, 'Youngster sent out ...' there is a space after Youngster.
Thank you for pointing that out, real quick simple fix :D
And thanks for the compliments guys!
You all should be using Tokens, those that program 83+ line BASIC. With it, I'm actually making decent progress again.
-
You all should be using Tokens, those that program 83+ line BASIC. With it, I'm actually making decent progress again.
Personally I like programming on-calc, but I was able to try Tokens recently and like its interface. I'll still continue to program with the built-in editor. :)
-
Oh, I understand, I've just found with the updated wabbitemu and Tokens, I can program and test even faster now. But then, I'm working on one of the biggest BASIC games for the 83+ line, so yeah, it helps :p
Anyways, progress continues!
-
Update:
(http://tifreakware.net/tifreak8x/pokemon/ss/switchout2.gif)
What this adds over the previous screenshot is now it detects if the pokemon you are trying to send out is the same one that is already out or not.
I've fixed the problem with Cancel being used to exit the party screen, that just now cancels out of the menu you are in. This also helps by rearchiving the lists since you don't need those all the time.
The program also cleans up after itself by eliminating 2 Pic vars upon exiting the party screen. I do believe I need to have it delete a list or two though, as well.
-
Looks awesome, Daniel! It seems to be going at a very fast pace for a pure-BASIC implementation, so thumbs up for that! I also really, really like the status screen and the shadowed box look, it really looks nice! :D
-
pure-BASIC
Not quite. It's almost pure-Basic, but I believe he uses some small Asm programs as well. ;)
-
Looks awesome, Daniel! It seems to be going at a very fast pace for a pure-BASIC implementation, so thumbs up for that! I also really, really like the status screen and the shadowed box look, it really looks nice! :D
Thanks a ton! As Ztrumpet pointed out, I utilize three asm programs. For this particular bit, Resource, custom sprite routine and Celtic2.
I'm working now to fix the error that I have with the Run command not working correctly.
As to the screenshot, I forgot to mention that I added to the battle GUI program that it now shows status problems a pokemon has.
-
Cool update. Also question: On an empty SE calc, how often does it garbage collect now by the way? I remember ROL2 did those a lot x.x
-
To be honest, I've no idea. Once I get the game to a playable state, I will be able to test for that then :p
-
Ah ok lol, I was just curious, since this is a large (although good) game :D
-
Thanks. I'm hoping it will still be once I get it finished. The Run command is confusing to me. It looks like it should work, but it isn't. I'm beginning to suspect that the Tmin variable is at fault. going to try to find a different variable I can use in its plac eand see if that remedies the problem.
-
I've managed to kill off bugs relating to the Run option in the battle gui.
(http://tifreakware.net/tifreak8x/pokemon/ss/switchoutrunworks2.gif)
-
Well, I decided this morning that I needed to grit my teeth and add another small program to the list of programs that are currently being used. prgmZWT is a wait for key program that flashes the upside down pyramid when it displays text.
Why am I adding such a tiny program of only 62 bytes to the mess of them that are already in the VAT you might ask?
Because in ZPP (party display program) I saved 84 bytes by replacing the 2 instances of the same code with prgmZWT. In the temp battle gui program currently called prgmA, I have saved 173 bytes by replacing the same code roughly 5 times. Once I get around to it, I'll have to go through some of the other programs and see about cleaning them up a bit with this as well.
-
Good optimization :) what is the current count of subprograms up to now?
-
I sadly have no idea. I will guess between 60 and 70, but I won't know for certain until I can combine programs into the main project calc and get it backed up :<
And I'm not going to worry much about that until I can get the battle system fully functional.
-
As some know, I attempted to test out the items system, only to discover there isn't enough RAM to complete the task. I've done some code moving from the party display program into an appvar. I then took that program, and for every instance of a Z=#, the conditional was removed and all the code that was in the If Then End block was put onto one line. I know what 3 of the 4 lines of code are for, I'm still working on determining exactly what the last one is. The appvar is now sitting at 4601 bytes, it removed well over 1k from the party display program. There is considerable amount of work that needs to be completed yet, though I will get done what I can as I can, and hopefully I will make it so that it is playable once again.
I also think I can easily archive the picvar that is used to save the state of the battle screen as well, and unarchive it when it is needed again, that will save some used memory as well.
-
Yeah I hate it when you run out of RAM while running a program, due to the large data it's working with, and not knowing that a code does after a while :/
Did you put a limit in how many items you can hold in inventory, like the original pokemon?
-
I haven't implemented anything like that as of yet, I don't remember how many items a person can hold at once. I probably will put a stop at 50 unique items, but for now, I'm just trying to make things work, and it's not being very cooperative in that regard. :/
-
Lookin very good :)
-
Thanks a ton! I've started on adding archiving bits to programs that are 2 parent programs away. Like, you don't need prgmPOKEMON while you are playing in game, and you don't need the walking engine when in a battle. Hopefully this will help with memory usage and allow me a bit more wiggle room.
-
Managed some progress with getting the battle system to work again after it mysteriously stopped working. Still no idea what the problem was. Anyways, Use of Antidote now works so long as it is on a Pokemon that is in battle. It currently does nothing to the other Pokemon in the party, and I'm not sure why as of yet. I've got a few things to try to see if I can't make it work. I also need to make it subtract the amount from the Item list properly.
-
Interesting, hope you get it working. Is this just for antidote, or for other items too?
-
I only really have Antidote programmed in, and one other. I figured I better test my idea and make sure the code block was going to even work before I go writing the code for the other hundred some odd items.
-
yeah it's always good to see if one item works before adding all the others
-
it looks cute
-
Thanks, I think. lol
I've been scratching my head quite hard on a bit of code that doesn't seem to want to work. I've even added in a Pause after part of it, but it ignores it. Hopefully I'll figure something out about it soon.
-
Hmmm that's weird, if it even ignores Pause... Good luck! hopefully you figure out why it's happening soon
-
Problem was seemingly rectified! It seems you cannot have code similar to "OHHI->Str0 in an appvar, pull it from the appvar and drop it in a program and expect the basic interpreter to be happy about it. Why? Not a clue.
Working on getting the items system to properly display again when it uses or fails to use an item, and to redisplay things properly from party screen, to item screen, to battle screen.
Also, this was thanks to Weregoose's hard work.
-
I never said it but this is the best basic game I have ever seen
-
Thanks a ton! More comments pop up like this, I might be more motivated :p
Working on cleaning up code and trying to make screens go back to the previous properly before I work on adding more items.
-
your work is appreciated very muchI might use basic again because of this project!
-
Sweet! I'm hoping once this project becomes more playable, that it will inspire more people to write games with similar restrictions on themselves. :D
-
(http://tifreakware.net/tifreak8x/pokemon/ss/fixedmenubouncing.gif)
This shows I've fixed backing through the menus after selecting an item and going to the party screen. This also shows my next little graphical error to fix after using an item on a pokemon via the party screen.
-
I've managed to repair the problem with item usage on the party screen going straight to the battle menu without fixing the screen.
Also managed to solve the issue with items not getting decremented, and archiving of lists being done once items have been used.
Working on utilizing Awakening. The item itself seems to work, I just seem to have issues with ZPNA appvar disappearing on me
-
(http://tifreakware.net/tifreak8x/pokemon/ss/awakeninginuse.gif)
This shows multitudes of things:
1. Awakening does not work on a poisoned pokemon.
2. When item is ineffective on a pokemon, it properly returns you to the item screen.
3. Awakening awakens the sleeping pokemon.
4. Antidote cures a poisoned pokemon.
5. Items are decremented properly
6. Daniel is made of win. :D
Any thoughts on what is shown so far?
-
It's looking very good tifreak! =)
-
It looks awesome. Nice job ironing out the bugs. :D
-
Thanks a ton! :D I'm working on the Burn Heal item right now!
-
(http://tifreakware.net/tifreak8x/pokemon/ss/itemuse1.gif)
Here is a screenshot of the first 3 items in use on the afflicted pokemon. I think I also added the code to utilize the Cancel option from the item menu, but I don't remember if I put that amended program onto the emulator, so I didn't test that out.
Just more screenshot goodness and all that.
-
This is looking awesome. Great job on it. :D
-
Thanks ztrumpet. Been working on the Elixer item, it's considerably more complex than the other items, and since I have to make sure pokemon have lower PP than MaxPP, and all that stuff to properly test.
-
Wow, this is really cool! The graphics are great, especially for BASIC and the amount of time put into this... I would be burnt out a bajillion times over by now. You got a few +1s from me :) I know a lot of non-calc people that would be just as impressed by this simply because it is on a calculator. Awesomeawesomeawesomeawesome!
-
Aww, thanks so much xeda! :D
Yeah, I kept getting stuck with things and get burned out and stop for up to a year at a time, then pick things up, have inspiration and burn through things like there was no tomorrow. Now that I have Tokens, coding this has been so very easy.
This actually made Digg front page a few years ago with over 1k diggs :o
-
The best I could find was from 2006, and only 870 diggs: http://digg.com/news/story/Pokemon_For_Your_Calculator (http://digg.com/news/story/Pokemon_For_Your_Calculator) :/
It is indeed great to see that you're still working on this after so many years. Good luck in the future! :D
-
Odd, I remember one making it higher, unless my memory is flawed, which it could be. I don't know, I do remember it made front page. lol
Thanks on that calcdude. It shall be finished, someday.
-
Managed to get Elixir working on in party Pokemon, I still need to make sure that it works fully on Pokemon in battle. The fix for it was.. Rather confusing for me, but I guess as long as it works, who cares, right? Hoping to test the remainder of the Elixir code a little later today.
-
It's good as long as you didn't accidentally break something else in the process. :P
-
Lol, nope, still have a few more instances to test, of course.
As you might know, I have all the code for a single item on a single line in an appvar, which is recalled by celtic and pasted into a program, which is run by whichever pokemon program needs to do so. The problem I was having with Elixir was a For( loop wasn't doing anything when that program ran, however, I could put a Pause in before the loop and it worked. So I simply added variable K as the first thing it sees, which allows the For( loop to work. :D
-
I've been following this for a while, and it's good to know that it's still alive and progressing! Keep up the epic work!
-
Thanks JustCause. I don't plan on letting this die ever. Just so long as it is possible to make the game work.
-
Not sure if people care on the smaller updates, but I did manage to get the elixir to where it increased the battling pokemon's PP correctly. I need to still test to make sure that it says 'ineffective' once the PP=PPMax. plus I need to finish testing it on the party pokemon and make sure all instances of that are correct as well. Hopefully things go well and I can move on.
-
sure, we care. you've been working on this for as long as i remember and i'm still not bored of hearing about updates :P
-
Updates are great to hear. What was making the elixir difficult to work with? Was it simply because it was the first time you were working with an item to raise the PP (so you didn't have any other coding precedents)? In any case, nice work :D
-
No, because what I'm doing seems to break the BASIC parser. lol
For some reason, certain aspects of the TIBASIC code won't run. I had to put a variable infront of a For( loop to make it run. :/ Otherwise, it's a matter of making proper tweaks and such.
-
(http://tifreakware.net/tifreak8x/pokemon/ss/muchlulz.gif)
Just testing out the height I'm going to need for the text box that shows the attack names and the available PP they will each have. Thought it was funny, so here you go.
-
(http://tifreakware.net/tifreak8x/pokemon/ss/showmoveselixir.gif)
This shows the preliminary of the FIGHT option being started, and also shows that the Elixir item works on the battling Pokemon.
-
Psyduck 19/999 HP...
CHEATER SPOTTED!
-
HOLY CRAP! How long have you been working on this?
-
@Eiyeron: Haha, nah, just used filler data to populate lists so I can do testing :)
@Binder News: I've been working on this project off and on for.. 7 years now? I took several long breaks from it that lasted months at a time, and I've rewritten the game twice now.
Thanks for the compliments guys ^_^
-
I'm posting in this thread rather than the sprite one so I'm not necro-posting so badly (I'm still new enough not to be sure of the etiquette on this forum, so I apologize if I am in error.) Anyway, I whipped up some simple sprites for Oak, Red, and Blue. They're not the best, but at least you'll have a placeholder. I skimmed the threads and didn't see anything about the trainer sprites, so I hope I'm not stepping on anybodies toes. http://imageshack.us/photo/my-images/204/oakredblue.png/ (http://imageshack.us/photo/my-images/204/oakredblue.png/)
-
Oh hi there. 2 posts? Yeah, I'd say you are quite new, and there is nothing wrong with that.
Thanks for the offer up on the sprites, I'll take a closer glance at them later. We had decided to use the 16x16 sprites that I've done as place holders for now, might even become permanent. As I've been trying to get the battle system going, I've not really focused much more on the sprites.
-
Alright, well, if you want me to make the sprites, feel free to let me know.
-
Thanks for the offer, I'll keep you in mind :)
As to pokemon, I've finally found a spot to put DelVar L6 without it going nuts and crashing the battle system. This will free up around 500 bytes of memory. I need to go through ZPP and add in archiving and unarchiving of ZBA at certain points to save almost 3k of RAM to use for other functions.
-
Managed to do a little bit of testing this morning, confirmed that Elixir works flawlessly with the battling Pokemon. While testing stat checking (trying to find a Pokemon with PP<MaxPP) I stumbled upon a typing error on my part, having Delvar instead of DelVar. That has been repaired.
There was also an issue where when backing out of the item system, it automatically called on the FIGHT option. I'm not sure if I repaired the issue, haven't had time to test just yet.
-
This game will be awesome once it's out, but huge...
-
Yeah, sadly it will be. :< I try to go through and optimize as much as possible, but there really is only so much one can do with TI-BASIC.
On a side note, Elixir is now fully functional and I am ready to move on to the next item.
-
This game will be awesome once it's out, but huge...
Yeah, try to not do my mistake: I made a Pokemon in pure Basic (before Pokemon Topaze), and it needed 25000 bytes of RAM. And we always have less than 24000 :'(
On a side note, Elixir is now fully functional and I am ready to move on to the next item.
O.O I don't even know if my Elixir works ???
Good to see progress on it ! Keep working good ;D(http://www.omnimaga.org/Themes/default/images/gpbp_arrow_up.gif)
(if there are grammar or spelling fails, it is because I am French)
-
Well, Pokemon Purple is already over 100KB in size, not counting save data and lists.
As to the items, that is the benefit of programming in BASIC. I can create a temp program and fake data more easily to do my tests on items and the like. I have too many problems trying to code everything and then going back to try to fix mistakes, as they get buried in all the code :< And thank you kind sir! :D Escape rope is my next item, I can easily code it for the battle system (since it's a non-usable item) but I've not figured out how to deal with it yet when outside of battle. I'm thinking a list with numbers that correspond to certain places, the calc runs the program with conditionals and gets the info that way.
-
Small update:
Fixed error I had with Item system scrolling, variable was getting overwritten and causing issues.
Added some clean up code to the testing stuff, This way I don't have to worry about it while testing.
-
If Tmin>0 and Z=1:Then:For(F,4,14:Line(4,F,90,F,0:End:For(F,15,30:Line(0,F,94,F,0:End:"0ZBD":prgmZRS:{94,0,3,27:prgmTEMP:prgmZC1:"rowSwap(ZAN"->Str0:0->theta:If 0<L1(3:Then:L1(3:prgmZCE:Text(35,9,Str9:Text(35,70+4(1-int(log(L1(19)))),L1(19:Text(35,78,"/",L1(23:End:If 0<L1(4:Then:L1(4:prgmZCE:Text(41,9,Str9:Text(41,70+4(1-int(log(L1(20)))),L1(20:Text(41,78,"/",L1(24:End:If 0<L1(5:Then:L1(5:prgmZCE:Text(47,9,Str9:Text(47,70+4(1-int(log(L1(21)))),L1(21:Text(47,78,"/",L1(25:End:If 0<L1(6:Then:L1(6:prgmZCE:Text(53,9,Str9:Text(53,70+4(1-int(log(L1(22)))),L1(22:Text(53,78,"/",L1(26:End:
Yes, it's all on one line.
This is the start of the Ether code. This code will probably be the longest written code as of yet. :< What the code has to do is display the FIGHT option box with the attacks the pokemon knows (on the fight screen for the battling pokemon, on the party screen for the selected non-battling pokemon), and use that box to select which move you want to receive 10PP. I'm not too worried about the battling pokemon code, that should be easy since that is just stored in L1. It's the pokemon not battling that is going to be a massive pain, since the code has to be generated on the fly. :/
Anyways, just letting people know where I'm at.
-
Unreadable code O.o Too much in too little space >.< me has a headache
I have one question: Do you program directly on calc or do you write it on a computer before ?
-
I've been writing everything over the last couple months using Tokens and then dropping it into Wabbitemu. Tokens also builds appvars, which is what I am doing with all this item code. Each item corresponds to the item name stored in an appvar line by line. Then it's just a matter of copying just that code into a temp program and running that instead of needing a high overhead of RAM.
-
O.O so, in other words, you have code in appvar and call it inside a temporary prog when you need !
:thumbsup: 'Nuff said ;)
For my prog, I put all the data (except text) in archived appvars and only the executable program is in Ram.
-
That's essentially what I'm doing as well. I have certain programs in RAM. Others are in ROM and Resource is used to call those in to temp programs to run and deleted right afterwards. I'm also using progressive archiving, so when you start the game, it will archive prgmPOKEMON. Then when you go into a battle, it will archive the walking engine prgmZGA. If you go to switch pokemon, it will archive the battle engine. And of course, it unarchives as it goes back to those other programs.
-
So there is a time we see the "Garbage Collect" message ? :'(
In mine, only the saved game needs to be unarchived when I write in. But yeah, it has less details than yours.
-
Maybe, eventually. This is for the SE calcs though, so it won't be seen for a good long time.
And there isn't THAT many archives and unarchives being done.
-
So, working on code to use Ether. Right now, dealing with the battling Pokemon. This code is really giving me a headache. For the battling Pokemon, it redisplays the battle screen, then clears out the section of the text box and expands that to show the attacks. From there, you select which attack gets the Ether. I also have to re-clear a part of that, enough to redisplay the border/box so I can display the text.
If the item is not successful, I can thankfully clear the screen to return to the item screen.
If the item is successful, I have to clear out that entire mess and recall pic1.
And if you think this is bad.. The party Pokemon's code has to be written on the fly. Meaning it isn't like the battling Pokemon where it uses list L1. This code has to be compiled and dropped into a temp program to run, based off the |LP# for the list it is calling upon, on top of all the stuff I mentioned above.
-
Sorry to hear about the battle coding issues. Glad to see new updates, though.
-
Eh, it's fine. Just going to be a challenge :p And I mostly like challenges. lol
-
If Tmin>0 and Z=1:Then:For(F,4,14:Line(4,F,90,F,0:End:For(F,15,30:Line(0,F,94,F,0:End:"0ZBD":prgmZRS:{94,0,3,27:prgmTEMP:prgmZC1:"rowSwap(ZAN"->Str0:0->theta:0->Tmax:If 0<L1(3:Then:L1(3:prgmZCE:35->Tmax:Text(35,9,Str9:Text(35,70+4(1-int(log(L1(19)))),L1(19:Text(35,78,"/",L1(23:End:If 0<L1(4:Then:L1(4:prgmZCE:41->Tmax:Text(41,9,Str9:Text(41,70+4(1-int(log(L1(20)))),L1(20:Text(41,78,"/",L1(24:End:If 0<L1(5:Then:L1(5:prgmZCE:47->Tmax:Text(47,9,Str9:Text(47,70+4(1-int(log(L1(21)))),L1(21:Text(47,78,"/",L1(25:End:If 0<L1(6:Then:L1(6:prgmZCE:53->Tmax:Text(53,9,Str9:Text(53,70+4(1-int(log(L1(22)))),L1(22:Text(53,78,"/",L1(26:End:5->W:While W=5:Text(A,5,">":getKey->K:If K:Text(A,5," ":A-6((K=34 and A<Tmax)-(K=25 and A>35->A:If K=31:Then:ClrDraw:1->W:End:If K=21:Then:For(F,4,14:Line(4,F,90,F,0:End:For(F,15,30:Line(0,F,94,F,0:End:RecallPic Pic1:If A=35:Then:If L1(19)>=L1(23:Then:Text(47,4,"ETHER INEFFECTIVE":prgmZWT:1->W:End:If L1(19)<L1(23:Then:Text(47,4,"USED ETHER!":10+L1(19->L1(19:If L1(19)>L1(23:L1(23->L1(19:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=41:Then:If L1(20)>=L1(24:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(20)<L1(24:Then:Text(47,4,"USED ETHER!":prgmZWT:10+L1(20->L1(20:If L1(20)>L1(24:L1(24->L1(20:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=47:Then:If L1(21)>=L1(25:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(21)<L1(25:Then:Text(47,4,"USED ETHER!":10+L1(21->L1(21:If L1(21)>L1(25:L1(25->L1(21:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=53:Then:If L1(22)>=L1(26:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(22)<L1(26:Then:Text(47,4,"USED ETHER!":10+L1(22->L1(22:If L1(22)>L1(26:L1(26->L1(22:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:End:End:End:If iPart(W)=1:Return
This is the code I've come up with (read: untested as of yet) to deal with using the item Ether. This code -only- deals with the battling Pokemon. The code for the party Pokemon is going to be many levels higher in complexity.
This would also be a good time to note that this is now the longest piece of code in the appvar ZITU. And it's nowhere near complete.
-
...Wow. That's one hell of a line. Hope it works!
The code for the party Pokemon is going to be many levels higher in complexity.
AND IT GETS WORSE? D:
-
Yes. Because of the way I have the party system set up. There is a 6 element list, numbers 1-6, that keep track of which |LP# (there are 6, they are the stat lists for the pokemon) are in what order so you can move the pokemon around in your party. Since they are ever changing, I have to make the code for using items on the party pokemon quite dynamic. So it has to create the code, dump it off into another temp program, and then run it. :)
-
(http://tifreakware.net/tifreak8x/pokemon/ss/testetherbattle.gif)
Just shows that the ether works successfully. The first time ;)
Now to write the code to use Ether on the party pokemon.
-
You need to add Rotom. :D Did you asign the power points for each move to variables?
-
Rotom?
And the stats for each pokemon are stored in lists. 56 element lists.
-
Rotom?
It's a 4th gen Pokémon.
-
it looks like little electric thingy that can change forms O.o
-
Rotom?
It's a 4th gen Pokémon.
ooooo~ That would be why, I don't really remember names past first gen too well.
@yeongJIN, what do you mean exactly? Nothing is changing forms :p I just used filler data on the pokemon for testing purposes.
-
@yeongJIN, what do you mean exactly? Nothing is changing forms :p
Rotom is an electric-type Pokémon that can change forms when you take it to a certain place in PtHGSSBW.
-
Heh, I really need to go looking through that national pokedex again..
-
This is looking nice. You've made quite a bit of progress in the past month. :)
Quick question:
Have you ever considered using Text(Y,X," ") or Text(-1,Y,X," ") to erase things instead of Line(X1,Y1,X2,Y2,0) ?
-
I have. However, you lose the smoothness that the Line( command offers. Plus, I'd have to go through the whole game and make those changes since I want it all to be uniform, ya know? So that would eat much more time :p
Besides, using Line( is considerably more precise than guessing with the length of spaces needed to do the same thing.
-
I come bearing gifts of headaches and suffering:
If Tmin>0 and Z=1:Then:ClrDraw:RecallPic Pic1:For(F,4,14:Line(4,F,90,F,0:End:For(F,15,30:Line(0,F,94,F,0:End:"0ZBD":prgmZRS:{94,0,3,27:prgmTEMP:prgmZC1:"rowSwap(ZAN"->Str0:0->theta:0->Tmax:35->A:If 0<L1(3:Then:L1(3:prgmZCE:35->Tmax:Text(35,9,Str9:Text(35,70+4(1-int(log(L1(19)))),L1(19:Text(35,78,"/",L1(23:End:If 0<L1(4:Then:L1(4:prgmZCE:41->Tmax:Text(41,9,Str9:Text(41,70+4(1-int(log(L1(20)))),L1(20:Text(41,78,"/",L1(24:End:If 0<L1(5:Then:L1(5:prgmZCE:47->Tmax:Text(47,9,Str9:Text(47,70+4(1-int(log(L1(21)))),L1(21:Text(47,78,"/",L1(25:End:If 0<L1(6:Then:L1(6:prgmZCE:53->Tmax:Text(53,9,Str9:Text(53,70+4(1-int(log(L1(22)))),L1(22:Text(53,78,"/",L1(26:End:5->W:While W=5:Text(A,5,">":getKey->K:If K:Text(A,5," ":A+6((K=34 and A<Tmax)-(K=25 and A>35->A:If K=31:Then:ClrDraw:1->W:End:If K=21:Then:For(F,4,14:Line(4,F,90,F,0:End:For(F,15,30:Line(0,F,94,F,0:End:RecallPic Pic1:If A=35:Then:If L1(19)>=L1(23:Then:Text(47,4,"ETHER INEFFECTIVE":prgmZWT:1->W:End:If L1(19)<L1(23:Then:Text(47,4,"USED ETHER!":10+L1(19->L1(19:If L1(19)>L1(23:L1(23->L1(19:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=41:Then:If L1(20)>=L1(24:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(20)<L1(24:Then:Text(47,4,"USED ETHER!":prgmZWT:10+L1(20->L1(20:If L1(20)>L1(24:L1(24->L1(20:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=47:Then:If L1(21)>=L1(25:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(21)<L1(25:Then:Text(47,4,"USED ETHER!":10+L1(21->L1(21:If L1(21)>L1(25:L1(25->L1(21:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:If A=53:Then:If L1(22)>=L1(26:Then:Text(47,4,"ETHER INEFFECTIVE!":prgmZWT:1->W:End:If L1(22)<L1(26:Then:Text(47,4,"USED ETHER!":10+L1(22->L1(22:If L1(22)>L1(26:L1(26->L1(22:prgmZWT:1.5->W:End:For(F,4,14:Line(4,F,90,F,0:End:End:End:End:End:If iPart(W)=1:Return:If (Tmin>0 and Z>1) or Tmin=0:Then:For(F,0,30:Line(0,F,94,0:End:"0ZBD":prgmZRS:{94,0,3,27:prgmTEMP:prgmZC1:"|LP"+sub("123456",|LPRTY(Z),1)->Str7:35->A:0->Tmax:4->theta:"ZTMP2"->Str0:prgmZCE:3->theta:prgmZCE:"0"+sub(Str9,1,1)+"theta:"+sub(Str9,2,1)+"rowSwap(ZAN"+sub(Str9,2,1)+sub(Str9,1,1)+"Str0:If 0<"+Str7+"(3:Then:"+Str7+"(3:prgmZCE:35"+sub(Str9,1,1)+"Tmax:Text(35,9,Str9:Text(35,70+4(1-int(log("+Str7+"(19)))),"+Str7+"(19:Text(35,78,"+sub(Str9,2,1)+"/"+sub(Str9,2,1)+","+Str7+"(23:End:If 0<"+Str7+"(4:Then:"+Str7+"(4:prgmZCE:41"+sub(Str9,1,1)+"Tmax:Text(41,9,Str9:Text(41,70+4(1-int(log("+Str7+"(20)))),"+Str7+"(20:Text(41,78,"+sub(Str9,2,1)+"/"+sub(STr9,2,1)+","+Str7+"(24:End:If 0<"+Str7+"(5:Then:"+Str7+"(5:prgmZCE:47"+sub(Str9,1,1)+"Tmax:Text(47,9,Str9:Text(47,70+4(1-int(log("+Str7+"(21)))),"+Str7+"(21:Text(47,78,"+sub(Str9,2,1)+"/"+sub(Str9,2,1)+","+Str7+"(25:End:If 0<"+Str7+"(6:Then:"+Str7+"(6:prgmZCE:53"+sub(Str9,1,1)+"Tmax:Text(53,9,Str9:Text(53,70+4(1-int(log("+Str7+"(22)))),"+Str7+"(22:Text(53,78,"+sub(Str9,2,1)+"/"+sub(Str9,2,1)+","+Str7+"(26:End:5"+sub(Str9,1,1)+"W:While W=5:Text(A,5,"+sub(Str9,2,1)+">"+sub(Str9,2,1)+":getKey"+sub(Str9,1,1)+"K:If K:Text(A,5,"+sub(Str9,2,1)+" "+sub(Str9,2,1)+:A+6((K=34 and A<Tmax)-(K=25 and A>35"+sub(Str9,1,1)+"A:If K=31:Then:ClrDraw:1"+sub(Str9,1,1)+"W:End:If K=21:Then:For(F,0,30:Line(0,F,94,F,0:End:RecallPic Pic2:For(F,0,17):Line(0,F,94,F,0):End:"+sub(Str9,2,1)+"0ZBD"+sub(Str9,2,1)+":prgmZRS:{94,0,3,15:prgmTEMP:prgmZC1:If A=35:Then:If "+Str7+"(19)>="+Str7+"(23:Then:Text(47,4,"+sub(Str9,2,1)+"ETHER INEFFECTIVE!"+sub(Str9,2,1)+":prgmZWT:1"+sub(Str9,1,1)+"W:End:If "+Str7+"(19)<"+Str7+"(23:Then:Text(47,4,"+sub(Str9,2,1)+"USED ETHER!"+sub(Str9,2,1)+":prgmZWT:10+"+Str7+"(19"+sub(Str9,1,1)+Str7+"(19:If "+Str7+"(19)>"+Str7+"(23:"+Str7+"(23"+sub(Str9,1,1)+Str7+"(19:1.5"+sub(Str9,1,1)+"W:End:End:If A=41:Then:If "+Str7+":(20)<"+Str7+"(24:Then:Text(47,4,"+sub(Str9,2,1)+"ETHER INEFFECTIVE!"+sub(Str9,2,1)+":prgmZWT:1"+sub(Str9,1,1)+"W:End:If "+Str7+"(20)<"+Str7+"(24:Then:Text(47,4,"+sub(Str9,2,1)+"USED ETHER!"+sub(Str9,2,1)+":prgmZWT:10+"+Str7+"(20"+sub(Str9,1,1)+Str7+"(20:If "+Str7+"(20)>"+Str7+"(24:"+Str7+"(24"+sub(Str9,1,1)+Str7+"(20:1.5"+sub(Str9,1,1)+"W:End:End:If A=47:Then:If "+Str7+"(21)<"+Str7+"(25:Then:Text(47,4,"+sub(Str9,2,1)+"ETHER INEFFECTIVE!"+sub(Str9,2,1)+":prgmZWT:1"+sub(Str9,1,1)+"W:End:If "+Str7+"(21)<"+Str7+"(25:Then:Text(47,4,"+sub(Str9,2,1)+"USED ETHER!"+sub(Str9,2,1)+":prgmZWT:10+"+Str7+"(21"+sub(Str9,1,1)+Str7+"(21:If "+Str7+"(21)>"+Str7+"(25:"+Str7+"(25"+sub(Str9,1,1)+Str7+"(21:1.5"+sub(Str9,1,1)+"W:End:End:If A=53:Then:If "+Str7+"(22)<"+Str7+"(26:Then:Text(47,4,"+sub(Str9,2,1)+"ETHER INEFFECTIVE!"+sub(Str9,2,1)+":prgmZWT:1"+sub(Str9,1,1)+"W:End:If "+Str7+"(22)<"+Str7+"(26:Then:Text(47,4,"+sub(Str9,2,1)+"USED ETHER!"+sub(Str9,2,1)+":prgmZWT:10+"+Str7+"(22"+sub(Str9,1,1)+Str7+"(22:If "+Str7+"(22)>"+Str7+"(26:"+Str7+"(26"+sub(Str9,1,1)+Str7+"(22:1.5"+sub(Str9,1,1)+"W:End:End:End:End:End"->Str9:1->theta:"ZTMP2"->Str0:1:prgmZCE:prgmZTMP2:6->theta:"ZTMP2"->Str0:prgmZCE:End
This is the code currently that deals with Ether. It alone is 3569 bytes in size.
-
:o Wow... that's amazing tifreak!
If the ether alone takes up over 3500 bytes, I can only imagine how big the finished game will be!
Good luck! :thumbsup:
-
O.O
That's insane. At what point does it get its own subroutine?
-
This -is- its own subroutine :p
Don't worry, I'll be making changes to the code. I'll have to sacrifice a slight amount of speed so I can make it smaller. I'm going to drop the Text( commands that display which attacks a pokemon has into a For( loop, and hope that I don't lose too much in speed. Should knock down the size considerably though.
-
That is insane O.O That bunch of code along makes me wonder if this isn't one of the most ambitious TiBasic programs developed
-
Ether = about 2% of the game (I'm guessing, based on the old gbc pokemon games)
3569 bytes * 50 = 178,450 bytes
Oh my holy crap.
-
Ether = about 2% of the game (I'm guessing, based on the old gbc pokemon games)
3569 bytes * 50 = 178,450 bytes
Oh my holy crap.
D:
-
Ether = about 2% of the game (I'm guessing, based on the old gbc pokemon games)
3569 bytes * 50 = 178,450 bytes
Oh my holy crap.
This game is already sitting over 110kb, and I am no where near done ;)
-
are you going to use Basic Builder, or something?
-
Nope, it wouldn't work for this project in the slightest. I plan on moving more data over to the appvars once I get battles working properly.
Sadly, Ether is giving me issues, hopefully it can be resolved soon.
-
Well, been almost a week, thought I'd post an update.
Ether now works for the battling pokemon to the point that it applies the stat increase. However, it merely shuts the game down right after, so I need to figure out where this problem is coming in from.
-
:/ I hope you figure it out because that sounds like a tough problem :/
-
Yeah, these typically are. :<
I did find that there are 2 too many End commands in the section of code dealing with the party pokemon using Ether, and it is entirely possible this is causing the issue. I just have to split things up a bit and see.
-
WOO! *throws a FREAKING PARTY man*
I finally found the issue. It seems, that in an unrelated bit of code, I was missing an End statement. What threw me was that the loop this missing End statement was in was still working. At least the thing is fixed now. :/
And for your viewing pleasure, testing out the party pokemon with ether and the result:
(http://tifreakware.net/tifreak8x/pokemon/ss/whoops1.gif)
I think I already got those bits fixed, still amused me, so I thought I'd show it off.
-
Are the lines supposed to happen or is that just a minor bug to eventually fix? I only ask because I know you sometimes leave in obvious bugs that can be easily fixed later...
-
Well, I forgot to add a variable, had Line(0,F,94,0 when it was sposed to be Line(0,F,94,F,0 ^^; Then the box after that was supposed to display in the empty zone :) That part was super easily fixed. The error syntax, however, not going to be as simple ^^;
-
(http://tifreakware.net/tifreak8x/pokemon/ss/evolvetest1.gif)
This is the beginnings of the evolution screen. I'm just curious what you all might think of this so far?
1. Yes, Dragonite isn't affected by Fire Stones
2. I don't care if Dragonite being evolved via Fire Stone offends you for this test.
3. Yes, I have things to tweak, like placement of the black square, how long it lasts, etc
I'm just looking for overall thoughts on how I'm displaying evolutions.
-
looks good...
I'd guess that you're using the square animation because the pokemon drawing is too slow to flicker between pre-evolved and evolved
-
Not really that, I have an asm program to display the pokemon, it's the clearing out of and such that would make it hard to do :<
-
ah...
that makes sense :P
-
(http://tifreakware.net/tifreak8x/pokemon/ss/stopevo.gif)
This shows what things look like when you cancel the evolution of a pokemon when you press the Alpha key.
(http://tifreakware.net/tifreak8x/pokemon/ss/evolvetest3.gif)
And this is what I have so far of the completed evolution. I know the pokemon needs to be moved over a couple more pixels. But otherwise, what do you all think? Better than the firewall, huh? :p
Thank Weregoose for that.
-
I really like the spiraling. It looks great. :)
-
That's pretty sick, man. Is that the square character that is used to create the spiraling and then Line() to unspiral?
-
Looks nice Tifreak, and wow I didn't even know we could cancel the evolution of Pokémons.
-
meishe: No, it's two pt-on/pt-off commands that do it via a list with some complicated bit of coding, you can find it on the Cemetech topic from Weregoose. I still don't completely understand the code yet, I've gotta figure it out though :p
And thanks for the compliments! ^ ^
-
Ah, ya. That is some tricky coding Goose came up with :P I think I understand it for the most part but I haven't gone over it all to fully understand it. (Stopped when I got to the U+.1V part.)
Ya, until this week I had completely forgotten about the Pt-Off() command working the same as Pt-On(). Which makes something I'm working on much easier :P
Well good luck on the stuff you're working on now ;D
-
http://tifreakware.net/tifreak8x/pokemon/ss.php
Updated the screenshot page with well over 50 screenshots that I've never bothered to link to it.
-
(http://tifreakware.net/tifreak8x/pokemon/ss/testevolve3.gif)
Reduced the looping to just once, removed the need to recall the pic which sped things up. Checked and verified that exiting the loop still functions.
-
hey, looks sweet.
-
any progress on PP? :)
-
lol, there should be a new topic: [PP] Progress '12
-
Some how I missed the evolution screenshots. I have to say, it looks quite nice! =)
-
Thanks for the compliments, guys. Sadly, I've not had tons of time to mess with this. It's mostly been chicken scratches at the overall code. Since it's been so small on updates, I've only really posted those small updates on TI-Freakware forums. Once I get something substantial done, I'll make a new topic here.