#67508 - thegamefreak0134 - Wed Jan 18, 2006 6:56 pm
I know this is way off topic, but I can't seem to find the answer anywhere else. I am working on a port of Pokemon Red and Blue for the GB to my TI-83 Plus. Because of the huge ammounts of data required to make the battle engine work, draw the world map, and such, I want to make this project using an APP so the entire game is just one thing and not a bunch of programs.
My concern here is that I have no earthly idea of how to do this. I get the feeling that it is possible to program an APP in BASIC, or something similar, because all of the Veriner APPs I've seen are slow as hell. But anywho, back to my question.
Is there a tutorial or a forums site for the development of TI-83 Plus APPs? I know about ticalc, but they don't have what I'm looking for. (not to mention their forums are a royal pain to read.) Thanks in advance for all you can help with.
On a side note, anyone willing to help me with data collection, I would be glad of it.
-gamefreak
Thanks again!
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#67512 - keldon - Wed Jan 18, 2006 7:24 pm
Lucky I remembered this. This is the remains of a university group who formed a community of guys who programmed their ti-8x calculators for 'obvious reasons'.
http://www.acz.org/
http://ti83plus.acz.org/
http://james.acz.org/
#67538 - thegamefreak0134 - Wed Jan 18, 2006 9:42 pm
Hmm... good sites, yes. However, they still don't tell me how to program APPs, which are a different beast alltogether. I am familiar with how to program in assembly. I've never gotten anything to compile (old old old ancient software) but I still know how to do it. However, writing a Program (BASIC or Assembly) is different from writing an App. For one, the APP is stored in the Flash Mem (the equivilent of a hard drive), letting me use lots of data without having to archive and unarchivve stuff as I go.
What I would really like to know is if an app can be programed in assembly, if it can be in basic, it it can have both, and if I need a special compiler to make one. (Rather than an assembly compiler.)
Thanks again. BTW, listed sites 1 and 3 appear to be closed down.
EDIT------
I did some tooling around on my own and have discovered that an APP is basically an asm program that stays stored in FLASH mem when it's run. This will be perfect for developing my program, as I will be able to have lots of data going without mem errors and such. What I need now is a tutorial to get me started with Apps in mind. I have access to a few good asm tutorials, but I hear compilers treat an app as a sort of shell, so I need more info on that. (What have I gotten myself into now?) What you might be able to help me most with is the actual coding. The TI-83 Plus uses a z80 processor, which if I remember correctly is the same one used in the old GBC. I understand the concept fine, but generally have coding issues, so I may ask for advice. First off however, I need to get a sample app up and running.
Gosh, I type a lot. I know I'm still kind of pointing to the wrong direction for help, but I've been working on this project for years and want to make some real progress on it rather than just cheap demos. Thanks again for any help you can offer!
-gamefreak
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#67625 - Dwedit - Thu Jan 19, 2006 3:34 pm
I hope this starting kit tool I made helps:
http://www.ticalc.org/archives/files/fileinfo/323/32393.html
And if you need a good message board to go to regarding TI83+ programming help, you could use the maxcoderz board, or UnitedTI board.
http://joepnet.com/hosted/maxcoderz/phpBB2/index.php
http://www.unitedti.org/index.php?act=idx
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#67732 - thegamefreak0134 - Fri Jan 20, 2006 1:46 am
Interestingly enough, I am already using that tool. It's awesome, because you don't have to worry about the heador and other nice stuff like that. Thanks for the awesome tool.
On that note, I looked at the hello demo you had in there and the code for switching APP pages has me kindof confused. For the one with two pages, you have the same offset for both pages. What does it all mean?
On the other hand, I had kindof a cool idea about that. I am going to set up the main program on the first page, including the exit program thing (I just remembered that you can't simply turn the calc off like you can a GB), and then use the other pages I add to contain functions for things like PKMN and World Map data. I could use single bytes in RAM and when calling the page, it would check its byte to see which of its functions I was calling. Neat trick? Will it work?
The only drawback would be if my main game engine was too big for one page, but I seriously doubt this. What I really need to do is get comfortable with assembly again. Thanks for all of your help so far. I am going to check out those message boards (Thanks again!) and see what I can cook up.
-gamefreak
PS: Yay! I actually get to use assembly! Finally! BASIC is soooooo slow it was making my eyes water...
PPS: Do I type too much in my posts? JK
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#67794 - Dwedit - Fri Jan 20, 2006 11:25 am
Usually you would NOT want to pass a single byte, then switch to another page.
You should create a proper bcall table on the calling page. In order to know what address you should jump to on the other page, I used a bunch of jump instructions at a fixed location, but you don't have to use that. But it's really hard to do it any other way due to TASM's limitations (no linker).
Keep in mind that pages can't directly access data that's stored on other pages, which is why the data gets copied to ram.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#67833 - thegamefreak0134 - Fri Jan 20, 2006 8:06 pm
OK, point taken
I actually wrote and compiled my very first app and got it to work properly. YAY!!!!!!!!!! Um... A couple issues I am still having though.
My app was very simple. I coded it as a standard hello world app, and it should have put the cursor ar currow, loaded a string into the op1 ram location (so it was in RAM and not the app), displayed the string on screen, and exited. I got the string on screen with the cursor blinking expectantly after it as expected, but then nothing except menus seemed to work (and they left ghosts of themselves) untill I reset the calc. Whats the deal here? Is there a command I need to call to bring the calc back to the homescreen after an APP? Did using the op1 have something to do with it?
The other thing I still don't quite understand is calling APP pages. I understand the concepts fairly enough, but I don't understand how you specify which one to call.
You have helped me so much, it is beyond funny at this point. If it wasn't the middle of the night, I prolly would have danced for joy. This first APP also happens to be my first asm program ever. Yay.
-gamefreak
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#67865 - Miked0801 - Fri Jan 20, 2006 11:23 pm
Real men program with the TI-85 I still use from high-school :)
#68288 - thegamefreak0134 - Mon Jan 23, 2006 4:12 pm
Yes, but seeing as how the TI-83 Plus and 84 Plus are the current TI standard, used in almost every math class that uses TI, and most supported by the TI company with accessories, tecnical support, and such, I figured I'd go with it. Not to mention that the 85 doesn't even have archive memory to my knowledge, making asm programming rather difficult to debug.
I suppose the best reason is that I don't have access to one. We have one, and it works well, but it's a pain to operate because it's not set up like most of their other products.
Thanks anyway for the off comment though. 8-D
-thegamefreak
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#68315 - Miked0801 - Mon Jan 23, 2006 7:52 pm
Don't bother trying to program for the 85. It is very slow and out-dated. Some financial programs from TI take so long to run on it that I went and bought a $15 calculator to do it instead. It still works great fro graphing and basic problem solving, but not so good for much else.
I was being very out-there with my comment :P
#68342 - Dwedit - Mon Jan 23, 2006 10:10 pm
The 85 is faster than the regular 83+ for asm games, due to its memory mapped screen.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#68356 - thegamefreak0134 - Mon Jan 23, 2006 11:05 pm
Well, regardless, I don't have one. I found out that my Calculus teacher has one lying around, but I didn't like the interface very much.
Anywho, I got the wierd error in my program to go away. It turned out that (as I didn't know) you have to call the homescreen back up when you end the program, or it will sit there waiting for input that it won't ever use. Not good.
My last problem comes in two questions.
(1) How on earth are you supposed to do Greater Than / Less Than statements in asm? I got doing the conditional "cp" for equal to statements fine, but I will need to do a min and max value for damage calculation and check things like if the user is trying to walk offscreen. Obviously I will be able to comprimise for most things (nameley for speed and such) but otherwise I will need to know this.
(2) How do you create an AppVar? (With code or on the computer if possible) I will need users to be able to save the game at times, and will probably create an on-calc editor for maps and such so I can work away from home. Not to mention that having to go through pallete town again will get really old every time. I've got a lot of info about programming in general from the arasian set of tutorials, but their app section is incomplete.
With your help, I can finally say I've created a working "Hello Pikachu!" App that doesn't crash. Happy!!!!!
Oh! one last thought... Do you know of a good sprite drawing routine I could use to avoid coding my own, at least for now? I have info on how do make one, I'm just not sure I'm ready for something of that magnitude quite yet. Thanks!
-gamefreak
PS: Anyone willing to collect info for me would be greatly appreciated. There are some things I just can't seem to find on the net...
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#68387 - tepples - Tue Jan 24, 2006 5:46 am
thegamefreak0134 wrote: |
(1) How on earth are you supposed to do Greater Than / Less Than statements in asm? I got doing the conditional "cp" for equal to statements fine, but I will need to do a min and max value for damage calculation and check things like if the user is trying to walk offscreen. Obviously I will be able to comprimise for most things (nameley for speed and such) but otherwise I will need to know this. |
In 6502 or ARM assembly language, you do a 'cmp' followed by a 'bcc' or 'bcs' (keying off the carry flag) or 'bpl' or 'bmi' (keying off the sign flag) or the like. Intel 8080, Z80, and GBZ80 assembly should be similar; try Google.
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.
#68413 - Dwedit - Tue Jan 24, 2006 12:15 pm
thegamefreak0134 wrote: |
(1) How on earth are you supposed to do Greater Than / Less Than statements in asm? I got doing the conditional "cp" for equal to statements fine, but I will need to do a min and max value for damage calculation and check things like if the user is trying to walk offscreen. Obviously I will be able to comprimise for most things (nameley for speed and such) but otherwise I will need to know this.
|
CP works like subtraction. It sets the carry flag based on whether A-X is less than 0.
A-X<0
add X to both sides
A<X if carry flag is set
A>=X otherwise.
Then use any jr, jp, call, or ret instruction that can be conditional based on the carry flag.
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#68453 - thegamefreak0134 - Tue Jan 24, 2006 6:33 pm
Ahh, that makes sense. OK, how does one go about cheching the carry flag?
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]
#68485 - Dwedit - Tue Jan 24, 2006 11:24 pm
thegamefreak0134 wrote: |
Ahh, that makes sense. OK, how does one go about cheching the carry flag? |
Use any of the conditional jump/call/ret instructions, with nc for no carry, or c for carry.
jr = jump reletive (address must be within -128 to 127 bytes away from the next instruction)
jp = jump (to any address)
call = call (pushes PC onto stack, then jumps)
ret = return (pops PC from stack)
jr nc, xxxx
jr c, xxxx
jp nc, xxxx
jp c, xxxx
call nc, xxxx
call c, xxxx
ret nc
ret c
_________________
"We are merely sprites that dance at the beck and call of our button pressing overlord."
#68486 - keldon - Tue Jan 24, 2006 11:29 pm
Its processor is similar to the gameboys - both Z80 based. So there may be many routines you can use from http://devrs.com/gb for any code resource without broken links.
#68809 - thegamefreak0134 - Thu Jan 26, 2006 10:12 pm
Yay! I understand it now!
Thanks a bunch guys. For now, I'm going to post my question regarding TI calcs on the maxcoderz page, which seems a much more appropriate place to ask such questions. You've been a great help though, all of you. Thanks again!
-thegamefreak0134
_________________
What if the hokey-pokey really is what it's all about?
[url=http:/www.darknovagames.com/index.php?action=recruit&clanid=1]Support Zeta on DarkNova![/url]