| |||
Views: 88,601,847 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 05-18-24 10:21 PM |
|
Guest: Register | Login |
Main - Posts by GuyPerfect |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 61/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Here's my GhettoSoftware source code!
#include "whatitcamewith.h" #include "dontknowwhatitdoes.h" int main(int whatisthis, char **twostarsftw) { whatiscout << ihavenoidea(howitworks); return 0; } Oh, wait. That's how all corporate software works. Darn you programmers and your magic wands! |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 62/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Check your PMs, Heian. I sent you a message before you made that post.
And yeah, I've done my fair amount of F-Zero-related hacking. Hacked Maximum Velocity and the SNES one (but only a bit), and made a level editor for F-Zero X. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 63/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
I know this post will be posted in vain, but...
Linux is just the kernel. An operating system is made up of the software you run on it. The bash command prompt in and of itself is installed to the computer in order to make the kernel useful. OS's are the whole deal, like Debian, Fedora, Ubuntu, etc. Calling Linux an OS is like calling Text a newspaper. Part of the way there, but only a part. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 64/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
If it's anything like the GBA games, there's a predefined path that all machines are expected to adhere to. Just a list of points that draw the path that machines are supposed to take. The GBA games allow parts where there are two alternate paths, which helps with forks in the road as well as having the CPU players use the pit area.
There's a special tile used in the panels of the track, usually tile 00, that represents "nothing here" and allows the course "floor" to show through. Of course, the SNES game has the ground built into the panels themselves, so it's probably a bit different. Either way... As a machine glides across the course, it travels over each of the path points, in order. That's how the game knows when you're facing the wrong way, etc. When you drive on a tile on a panel that you're not supposed to drive on, the game says "OMFG Collision!" and pushes the machine back towards the path point they're supposed to be on while administering a little damage. If you modify the track but not the path, you have to be very careful not to step in the wrong spot. If you do, it'll painfully drag you across the netherworld until it puts you back where it thinks you're supposed to be, which may very well be in the middle of nothingness itself, causing your machine to blow up. On a side note, if you're airborne and you land on one of those "nothingness" tiles, you blow up. That's how the game detects a miss. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 65/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
If you're not going to share your thoughts or post a real thread title, then you must have been attacked with that technology. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 66/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
I've only worked with Maximum Velocity on GBA. Sorry.
However, I am at this time working with smkdan. We should start diving into hacking full-speed here fairly quickly, then we'll have a good chunk of stuff to update. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 67/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Some sound effects in Wario Land (Super Mario Land 3) are definitely taken from Metroid II, such as the pause sound effect (WL) and the save sound effect (M2). There's a bird in Wario Land that, like... you throw a coin into its head or something? It makes the same noise the Alpha and Gamma metroids make when you shoot them. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 68/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Wonderful. I'll take another shot at the path format shortly.
For everyone else, what I found with the path was for a North American ROM with a 512-byte header. I was able to screw up the AI on Mute City, but I haven't cracked the data just yet. It's not plain simple as would be nice. (-: Setting all bytes from 176A0 to 176B0 to the value 00 makes the AI immediately veer off the right side of the track. Anyways, I'll do more work on it and see what I can find. It might be compressed, but the data surrounding it suggests otherwise... But still! (Man, I hope it's not compressed. There has yet to be an F-Zero game I've worked with that I didn't have to crack a compression format) __________ EDIT: Wait a sec... I don't see that PM in my sent list... smkdan, did you get a message regaring the path info or did it get lost? |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 69/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Messing up the data I described will mess up computer AI as well as "reverse" detection. The only thing that doesn't seem to line up right now (I might just not know the details yet) is the exact coordinates of the starting position, which appear to be independent from the course path.
Another note of interest is that the four usable machines need a good stretch of straight road to drive on right at the start. They drive straight for a few seconds before shifting over to conform with the course path, which means you can't have a curve right after the lap line. Other than that, there don't appear to be any restriction in what can be done with the path. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 70/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
I think, at least in part, that the path data is built relative off of itself, which would explain the collision botching. However, regardless of where the start position is or what you do to the first half of the path data, the second half of the lap is always navigable by the AI.
I'm learning slowly, but still don't know enough to decode the path data. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 71/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Yes, sir. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 72/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Long story short, I think I got it. Picture!
Mute City I appears to have a list of 29 X values followed 29 Y values. Each value is biased by the one preceeding it. They're 16-bit signed integers; little endian. IMPORTANT: The first entry in the list is in fact the first point of the path data. However, the first point is not on the lap line. Its values are biased by the lap line, but the first point in the path is actually a bit ahead of the starting point. __________ Now comes the big question... Why 29? Is it 29 for all courses? I'm guessing probably not. smkdan, your knowledge could come in handy here. See if you can find out exactly where the number of points comes from. __________ EDIT: After some further examination, I can see that my data isn't quite right. But hey, I'm a lot closer than I have been. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 73/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Thanks for the bit of insight, VL-Tone.
I'm at a loss as to the reasoning behind the "low order byte inverted" business, but it DOES seem to get the job done. This was generated from data at 0x176A2 on a 512-byte headered ROM and extracted as thus: 16-bit unsigned integers, little endian, low-order byte inverted. If the bytes read from ROM are in order and are B1 and B2, then the value is B2 * 256 Or Not B1. For Mute City I, there appear to be 29 points (1D, not 3A), and are stored as "all X's first, then all Y's." __________ This data is all shifted a bit to the right and a bit forward from where the official starting point is and I don't know why. If the AI likes it, I guess that's okay. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 74/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
That would explain the magical "fixes itself" I was seeing. Even if you screw up the first few path values, the machine will somehow correct itself on the second half of the lap. I knew it had to load in another reference coordinate pair, but I didn't know how to find it. Good job tracking it down. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 75/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Heian
The data was generated from the data I found in the ROM. There are so many points for two reasons. 1) When you bump into the wall, the game repels you towards the "next" point along the way. If it was too far up ahead, you'd be bumped at a very odd angle. Didn't GP Legend do that? 2) The AI uses the points to drive. If you got one off-center, it would slowly drag itself back to the center of the course because it's only heading to the next control point. VL-Tone The idea we came up with when pulling apart F-Zero Maximum Velocity was to have the editor come with expandable definitions for "meta panels"; groups of track parts that could be puzzled together fairly easily. While the exact panels in the game vary, certain combinations could be moved as though they were panels in themselves, making something akin to Climax's editor. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 76/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
0x176A2 - 0x176DB for X and 0x176DC - 0x17715 for Y. Again, the low-order byte was Not'd. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 77/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
I actually mentioned that earlier in the thread.
Posted by GuyPerfect |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 78/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
That's because it's not an assembly hack. It's just repointing a palette. |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 79/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Could you give a more thorough explination of the path data in ROM, describing what it is you mean by 'Midle Values' (I'm lost as it is, and your quotations don't help either), and working specifically with the Mute City I data?
Basically, if I were to write a program to pull the path out of the ROM (hint, hint), what would I need to do? |
GuyPerfect |
| ||
Paratroopa Level: 30 Posts: 80/155 EXP: 152874 Next: 12995 Since: 03-14-07 Last post: 6067 days Last view: 6016 days |
Super Mario 64 WAS originally an NES development, originally called "Super Mario 3D." Managing PPU sprites can be difficult, yes, but they were attempting to make some rudimentary 3D world out of it. Their research was eventually put towards the Super FX chip for SNES, since a lot of the aspects between the two systems were the same. It wasn't until the N64 that they decided to give the project another go.
(-: |
Main - Posts by GuyPerfect |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 132, rows: 164/164, time: 0.222 seconds. |