This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - thepenguin77
Pages: 1 ... 84 85 [86] 87 88 ... 108
1276
« on: October 26, 2010, 06:53:36 pm »
If you are going to use TiLP, don't expect to be able to fall back on ti-connect. TiLP makes installing ti-connect twice as hard. Your problem could be related to low batteries, but here's a nearly sure way to get ti-connect working again.
1. Plug in your calculator 2. Go to device explorer and uninstall it 3. Repeat 1 and 2 for any port you think you may have plugged your calc into 4. Uninstall ti-connect 5. Go to your drivers, and delete libusb0 6. Restart computer 7. Reinstall ti-connect 8. Plug calculator in and let it install 9. It should work
1277
« on: October 26, 2010, 06:48:07 pm »
699. You've written a basic program to calculate pi to 999 digits.
(true. Never ran it since it would take 24 hrs though)
1278
« on: October 25, 2010, 11:04:07 pm »
So an update on this.
The game is pretty much done, but the more I play it, I keep finding little things to improve. Here are some of those improvements:
-The secret mode is in place and updates other stats accordingly -Menu graphics evolve with accomplishments -There are special thinner spikes in places where the screen tends to get too black to see them (like after a block) -The physics have been cleaned up a bit. You die one frame earlier on spikes and you can't jump through blocks anymore. -The game successfully hijacks the old appVar, meaning that you keep your old stats
1279
« on: October 25, 2010, 04:24:24 pm »
$8000 has at least until $8100 of nothing. And then the area from $8100 to about $8180 is also rarely used.
It's basically just used as a temporary do something area. That's what the OS uses it for.
1280
« on: October 24, 2010, 10:44:36 pm »
If the source is what you want, then it's the source you shall get.
And to answer your question DJ, adding a ton of ships would slow it down, but I would assume it can handle 5 without too much difficulty.
1281
« on: October 24, 2010, 04:58:16 pm »
Ok, bcall(_jForceCMDNoChar) tells the OS, "Go." But when you do this, the OS does not know that there is a program currently sitting in ram that needs to be deallocated, which results in a memory leak the size of your program. So here's how to get around that:
First, put a label "theStart" at the very beginning of your program (but after .db $BB $6D). Then put a label "theEnd" at the very end of your program. Now, instead of quitting with RET, quit with this.
quit: ld hl, runner ld de, $8000 ld bc, runnerEnd-runner ldir
jp $8000 runner: ld hl, $9D95 ld de, theEnd-theStart bcall(_delMem) bcall(_jForceCMDNoChar) runnerEnd:
This manually deallocates your program (which obviously must be done from outside of it) and then does a jForceCMDNoChar. This might cause a one byte memory leak or something, so if it does, just increase DE by one there at the end.
Oh, and using RET instead of jForceCMDNoChar won't make the OS look at the recall queue. But then pressing [2nd] [mode] might make it happen.
1282
« on: October 23, 2010, 08:49:54 pm »
675. You move those folders to C:\ for faster command prompt navigation
1283
« on: October 23, 2010, 04:20:50 pm »
Wow, unexpected development.
You would have 4,000 t-states per byte. I would use between 10 and 12 t-states as your unit. And then use those spare 1,140 to decode MP3.
Edit: No. You have so much ram that that's not even necessary. Decode the MP3 beforehand and then play it as a wav.
1284
« on: October 23, 2010, 04:13:08 pm »
For units, this is basically the most amount of t-states that you can fit within your time constraints. So a bit of math: 15,800,000 t-states / 22500 hz = 702 t-states per byte. Now, we need 257 units, but to be safe around the edges (1 unit is usually impossible) we'll call it 260 units. So your options for units are either 1 or 2 t-states. 1 t-state will give you 442 t-states for note switching but low volume. With cheap headphones, it probably won't be audible. 2 t-states is what I use and that gives you 182 t-states to switch. That's plenty of time for optimization if space is an issue, or time for compression . So I would recommend that you use 2 t-states as your unit of time. This is so small that you can see why you need dedicated code. And you correctly understood what I said the first time. Oh, and I used 15.8 MHz as the calculator speed because that's the average speed that I have found in calcs. I have seen some as slow as 14.8 and as fast as 16.2.
1285
« on: October 23, 2010, 03:30:21 pm »
Those are wav files. I mean 8-bit wav files. Not midi's. I have no idea how those work.
The instructions are for what you do once you have read the header and are going to play music for real.
1286
« on: October 23, 2010, 03:22:29 pm »
You are probably going to want to play 8 bit music, so I'll go with that. You need to turn the link port on an off for varying amounts for each different byte. So say you have 257 units to work with. For byte 0 it would be 1 off and 256 on. Byte 1 would be 2 off and 255 on. Byte 2 would be 3 off and 254 on. And it continues on...
But to do this accurately and very fast, (<200 t-states of switching code if you want good quality), you need to sacrifice space for speed. This means making a huge table of code for every single possible byte. The way you do this can vary, but you basically have to have dedicated code if you want quality.
Also, using this technique, you have to have music of at least 20KHz sample rate. Any lower and those with really good hearing will be in pain.
That's not really pseudo code, but that's how I do it.
1287
« on: October 23, 2010, 01:30:17 pm »
That sounds possible. As for hooks, you basically look through that list to see where the closest hook is to what you will be doing. For your purposes, I would say you want the raw key hook. That hook is called any time the OS receives a key press. So lets say that you decide that VARS is going to be your goto button. You would have to find a ram area that you don't think is going to be killed in the near future. My favorite is smallEditRAM, no one knows about it so it is never used; it will persist through almost all games.
Then at smallEditRam you will make the code for your hook, your first line must be a .db $83, this is so the OS knows that it is calling a hook and not jumping to an outdated address. Since this ram area is pretty small ~170 bytes, I like to make the code at this area find the real program in the archive, and stream the real code into appBackUpScreen. Then for your hook, the first thing you want to do is figure out which button was pressed, and if it wasn't vars, quit. Then if it was vars, you probably want to have some other qualifier so that the vars button is not useless, like the ON button which doesn't trigger the hook.
So now you are ready to do your calculations. Remember that since you are editing a program, the edit buffer is open and there is 0 free ram available. And when your calculation is done, I'm not exactly sure how you would put the screen back to normal you'll have to ask someone else for that. A bcall(_jForceCMDNoChar) might do it, but I think that will go to the homescreen. Also, don't forget to enable the hook with it's corresponding enable bcall.
Edit: Now that I think about it, don't stream the info in on every single key press, you're calculator will be sooo slow. Instead, do the checks in smallEditRAM and then stream in your calculator GUI code when you get a match.
1288
« on: October 23, 2010, 12:20:04 pm »
The recall queue should work with standard programs, you just have to be sure to store the info to be recalled somewhere where it won't get destroyed. Like appBackUpScreen. Also, I'm not positive, but you might need to force a jForceCMDNoChar. One way would be to manually deallocate the memory for your program and then bcall(_jForceCmdNoChar) And real vars are real number variables. So like A, B, C are all real number vars. Unless of course they are complex
1289
« on: October 22, 2010, 05:10:30 pm »
I don't know how you do your enemy movements, but going in circles can be done with a look up table. The size of your circle will will affect how many entries you need to make it smooth, but here's how you would do it.
Make a table of the cosine's and sine's of the angles from 0 to 330 counting by 30's multiplied by the radius. If your circle is massive, you might have to go by 15's. Then, just treat those new numbers as the x and y velocities and just go to the next one every frame. And behold, a circle!
Here's a simple basic prog of what I mean: :Radius -> R :For(A,0,330,30 :Disp RCos(A),RSin(A :End
Since those will be decimals, treat them as two by numbers where the upper byte is the whole part and the lower byte is the decimal times 256.
1290
« on: October 22, 2010, 04:52:59 pm »
Lots of bullets 1. At least on OS 2.53 they are stored out in the extra ram page. Page 3 977Eh–9A7Dh, I have no idea what format. They are somewhere else on previous OS's but I don't remember. 2. ! and # are normal for what they do. If you change them cleverly you can mess with them. 3. Instead of changing !, use the recall queue. With this, you can send whatever you want to the command line when the app returns.
Pages: 1 ... 84 85 [86] 87 88 ... 108
|