Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Rom Hacking: |
Acmlm's Board - I2 Archive - Rom Hacking - Starfox 2 hacking information? | | | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
User | Post | ||
Dart Zaidyer Red Tektite Level: 15 Posts: 11/72 EXP: 13571 For next: 2813 Since: 06-27-04 Since last post: 8 days Last activity: 2 hours |
| ||
Has anyone really bothered to look into the Final beta of Starfox 2 floating around the 'net that much? I'm thinking the communication and some of the names (such as "Team Wolf" and "Andorf") could use a translation to their English equivalent. Optionally, perhaps the Debug information and FPS readouts could also be "disabled". The first step in this process is, of course, hacking the non-english text graphics, and then actually rewriting the dialogue. Then work on the already-english names and change them around to their American equivalent. It may help to know how to read the original Japanese too, but how hard can it be to wing it for a game like Starfox? Any information or ways to find it would be useful. |
|||
d4s Panser Level: 29 Posts: 49/325 EXP: 142151 For next: 5734 Since: 03-23-04 Since last post: 13 days Last activity: 1 day |
| ||
translation: just. forget. it. im tired of repeating this over and over. this game is probably the hardest game you could ever try to translate on snes. why? cause the super fx is used in basically every single step to get the text onscreen. graphics decompression, script fetching, vwf drawing and formatting. youd have to know 65816 and super fx assembly wich includes having atleast a super fx assembler/disassembler, both of these arent available atm. try hunting down the english starfox 2 preview version for e3 instead. debug info: this patch o' mine here disables the debug info: http://www.mos-fx.de/zeug/snes/starfox2_final_remove_debuginfo.ips you can also try the following debug options in-game: L+R+B = summon this snake-like boss. L+R+Y = go to final stage L+R+X = toggle debug info display L+R+A = make corneria fall (edited by d4s on 07-26-04 03:57 AM) (edited by d4s on 07-26-04 03:57 AM) |
|||
BMF98567 BLACK HAS BUILT A SILLY DICE-MAZE! GO! Current list of BURNING FURY >8( recipients: - Yiffy Kitten (x2) - Xkeeper Level: 53 Posts: 276/1261 EXP: 1094149 For next: 62970 Since: 03-15-04 From: Blobaria Special Move: Rising Meatloaf Backhand Combo Since last post: 21 hours Last activity: 1 hour |
| ||
AFAIK, someone's working on a translation, but I don't know how far along it is (they might be waiting until emulation improves a bit). You're not the only one interested. | |||
d4s Panser Level: 29 Posts: 50/325 EXP: 142151 For next: 5734 Since: 03-23-04 Since last post: 13 days Last activity: 1 day |
| ||
haha, try to guess who that is. gideon zhi of AGTP(pretty much one of the best snes hackers around) and me fiddled around with the game some half year ago. due to the mentioned problems its on hold however, i havent talked for some months to gid. we were able to replace the font and edit the text and fusoya had a look into the graphics decompression routines, but we got stuck as soon as the super fx got involved. that is adding 3 byte pointers to move the script around cause the rom is pretty tight and packed and fusoya didnt get very far either cause the game crashed all the time upon examining compressed data. |
|||
Dart Zaidyer Red Tektite Level: 15 Posts: 12/72 EXP: 13571 For next: 2813 Since: 06-27-04 Since last post: 8 days Last activity: 2 hours |
| ||
Holy crap. Knowing that, I'd rather leave it to the experienced guys. What about the original Star Fox, then? I think the pilot portraits of SF2 would look nice in place of the old ones, for starters. There was also a thread here a while back about hacking the in-game Arwing and replacing it with other craft, such as the high LOD Arwing you see in the controller config and ending sequence. (although, not without some issues.) Would it be possible also to "adjust" the tolerance for Wing Damage and muck about with enemy formations to make the game harder or maybe just different, or is there some sort of similar insane system governing that to make it nigh impossible? (edited by Dart Zaidyer on 07-27-04 09:59 PM) |
|||
VL-Tone Red Cheep-cheep Level: 23 Posts: 20/200 EXP: 64158 For next: 3565 Since: 06-06-04 From: In the Moon! Since last post: 5 days Last activity: 2 hours |
| ||
That post maybe a little off topic since it is mainly about StarFox 1, maybe it needed it's own topic, but anyway... I've been trying to crack the StarFox level format for some time now, and I made some interesting discoveries. Some of you may call me crazy to try this game since it uses the FX chip, but I think that its simpler than you would think, after all the chip was designed by only one or two guys. I'm sure the FX chip isn't used to decompress everything in the game. I would guess that it's only used to decompress graphics. The textures used by the 3d system are uncompressed, the character dialog is too, in plain ascii. Aside from the dialog you can find these interesting strings in Starfox 1 (and in one of the early SF 2 betas). HOVER TANK WALKER REL AXIS REL AXIS DEMO GAME PAUSED REL AXIS LOADING BAY EMPTY NULL MISSILE1 MISSILE2 TLASER HMISSILE TM GUN MACH GUN LASER TRILASER SHOT GUN We all know that there is a Walker in Starfox 2 and a tank in SF 64, but this is Starfox 1 we are talking about... Also interesting is all the different weapon names. Maybe these could be activated? I wouldn't bet on that. Aside from the near Final SF2 beta, two other were leaked. One is a fake I'm pretty sure, I never had any success on playing it and really it's content doesn't look at all like 65c816 code. The other is the one with a walker and an all range mode. Wild guess but this could also be a Starfox 1 beta. From what I can deduce from what I read about the story behind Starfox, Argonaut wanted to do an all range mode game a la StarGlider II (StarFox direct ancester) but Nintendo and Miyamoto made them do a game on rail (which is not a bad thing in my opinion). Anyway now that I think of it, it doesn't make as much sense as I thought... Now as for what I discovered data-wise in Starfox 1. Unfortunatly for some reason some part of my discoveries apply to StarFox version 1.0 and some to 1.2. To differenciate the versions, the 1.0 version has bright red outline in the title screen logo, and version 1.2 logo has the same outline color more like dark red brown. At $284B There is a list of about 250 16-bit pointer begining with A1AC F8C0 20D3... These are pointers to a little more than half of the polygon objects used in the game. For example if you change all of these to $20D3 you'll find that almost all objects in the game have been changed to arwings! The actual data defining the general properties of these objects such as relative size and color set is 28 bytes long and found starting at $2E15 (substract $8000 and add $2E15 to the 16 bit pointers from $2848+ to get the actual ROM position). Note that these 28 bytes don't contain the polygon data, it's referenced by some pointer in this data. I documented almost all of these objects in this document: http://pages.infinit.net/voxel/STARFOX_OBJECTS.TXT This is from Starfox version 1.2 but only one byte seems to be different from version 1.0 in each 28 byte part. Note that in Starfox 2 final beta the equivalent data is in 30 bytes chunks and unlike SF 1 it doesn't have any break in it's continuity. My document is an early version and there are couple of mistakes and I dont know the name of all bosses by heart, but almost every object (around 400 of them) have a little description at the right of the hex. I'm still trying to figure out the details of these 28 bytes chunks but I found the basics of it, here is an example: Let's take the Normal arwing entry, actually there are three of them, one is used for the other characters ships, but lets take just one for the example. 73 F1 11 96 F1 00 00 00 B2 5D 24 00 0E 00 50 00 50 00 13 82 20 D3 20 D3 20 D3 20 D3 Normal arwing (version 1.2) 73 F1 11 96 F1 00 00 00 AC 5D 24 00 0E 00 50 00 50 00 13 82 20 D3 20 D3 20 D3 20 D3 Normal arwing (in version 1.0) -73 F1 11 96 F1- is some kind of pointer that refers to the polygon data,you can change it to another object pointer, for example 01 E0 0C 42 E0 for the normal sized high polygon arwing. In my previous hack I only found a bigger high poly arwing and the way I patched it made it so that any objects you changed your arwing into made it invicible. Now if you change the arwing in all 3 entries the way I just described it will act like the real one and you won't be invincible. As for the rest of the 28 bytes, I don't know what the -00 00 00 B2 5D 24- part is but I'm pretty sure that -00 0E 00 50 00 50 00 - defines the scale of the object in the 3 axis. -13 82- is the color set for this object. If you change it to ED 82 you'll get an Arwing with the blue part changed to orange/red. C1 83 will get you a gray arwing and 7C 80 a completely black one. After that -20 D3- is the "object pointer". Again do $2E15+$D320-$8000 to get the ROM address, which is actually where this line of data can be found, I don't know why it's included there since it's implicit, but it seems some objects have different offsets than their own stored there. The general rule is that you can take the last 2 bytes of the 28 bytes and it gives you the object pointer. Note that these pointers are the same that can be found at $284B in ROM. They are also to be found in part of the working RAM. At 7E0448 and 7E0449 in WRAM in version 1.2 is the pointer for the rotating arwing in the title screen. Version 1.2 in RAM 7E0448-7E0449 Title screen Arwing object pointer. 7E0450-7E0451 is a 16-bit value for it's X position 7E0452-7E0453 Y pos 7E0454-7E0455 Z pos (the arwing is constantly moving foward to go against the automatic level movement) 7E0456 one byte for the Z rotation 7E0457 Y rotation 7E0458 X rotation These values while playing as well as many other similar data slots in this RAM area will contains the data for the onscreen objects presumably used by the FX chip directly. The data changes as the objects are loaded and in a non predictable way depending on if you shoot or not and if objects disapear. While in the continue screen you can change the current object to another object by using cheats at $7E0020 and $7E0021. For example 7E0020:85 7E0021:AC set it to Andross in a cube. This bonus feature in the continue screen comes straight from StarGlider II. These objects (those in the the doc) though seems to be part of macro objects for example the big walking robots holding blue columns are built from 2 objects. I'm looking for this macro object description data since these are probably referenced by the actual level data. Which is itself segmented in steps or chunks. In version 1.0 at $7E16FF and $7E1700 in RAM is a 16-bits pointer. This pointer represents the next chunk of level to be loaded (a chunk is a "step" like in the SF2 debug menu). At $7E16FD and $7E16FE in RAM is a 16-bit countdown to 0 starting from a number which is different depending on the level chunk. When the timer reaches 0, the next level chunk from the pointer is loaded and the objects appear at the horizon. If you use a cheat to stop the timer you'll end up in a void, with no new objects appearing in sight. If you use a cheat to stop the timer at 0, almost all objects from a level will appear at the same time, and the game ends up slowing down to a complete halt because it can't handle that many polygons. If you use a cheat to set a specific 16-bit pointer at $7E16FF you can make part of a level loop endlessly. A funny example, if you go into Corneria level 2 and activate these two cheats, 7E16FF:BB and 7E1700:01, you'll loop the part where one of your crew member will get attacked by an enemy. With these cheats activated you'll end up with dozens of arwings chased by dozens of enemies, and with each time a new character will blable something about being attacked. Then again, unfortunatly, the game will end up slowing down to a crawl. You can actually skip to any part of the game instantly though some problem arise from playing a space level on the ground and vice-versa. To find valid pointers you can use a watch feature in your emulator and watch adresses at 7E16FF and 7E1700. At 7E1FF9 and 7E1FFA is a 16-bit pointer for the starting level pointer, you can use a cheat at this adress to start at any level in a more "normal" way. It doesn't change while you are playing, only when you start a new level from the select screen. Here is the data defining the level in a general way, something like "headers" for setting the weather, if it's a space level and other things. The values between ** are the level data pointers for 7E1FF9 and 7E1FFA, for example to start on the slot machine level use these cheats: 7E1FF9:E5 and 7E1FFA:48 At $1D874 in ROM in Starfox Version 1.0 --Level 3 Route (in order) >00 E6 00 03 04 14 00 *66 5D* 0D 58 01 04 4E 00 F8 FF FF >02 04 00 03 04 0E 03 *4C 5F* 0D 59 01 04 4E 00 F8 04 4E 00 F8 02 0E 08 F8 FF FF >01 32 00 03 09 08 05 *A7 5F* 0D 6A 01 02 0E 08 F8 02 0E 08 F8 02 0E 08 F8 03 0E 08 00 03 0E 08 00 FF FF >01 54 00 03 12 05 09 *2A 60* 0D 6B 01 03 0E 08 00 03 0E 08 00 03 0E 08 00 03 0E 08 00 FF FF >01 72 00 03 00 00 0F *85 60* 0D 72 01 FF FF --Level 1 Route >01 56 02 03 06 15 00 *68 50* 0D 58 00 02 0E 08 F8 FF FF >02 02 00 03 0B 11 02 *68 52* 0D 59 00 02 0E 08 F8 02 0E 08 F8 02 0E 08 F8 03 0E 08 00 03 0E 08 00 FF FF >01 B4 00 03 14 0E 06 *C3 52* 0D 5A 00 03 0E 08 00 FF FF >01 C6 00 03 18 0B 08 *86 55* 0D 5B 00 04 4E 00 F8 FF FF >01 D8 00 03 00 00 0F *02 56* 0D 5C 00 FF FF --Level 2 Route >01 62 02 03 06 17 00 *CF 63* 0D 6C 02 03 0E 08 00 03 0E 08 00 FF FF >02 00 00 03 0C 15 01 *F6 65* 0D 6D 02 02 0E 08 F8 02 0E 08 F8 FF FF >01 12 01 03 12 13 04 *51 66* 0D 6E 02 03 0E 08 00 03 0E 08 00 03 0E 08 00 03 0E 08 00 03 0E 08 00 FF FF >01 34 01 03 1B 13 07 *D8 66* 0D 6F 02 02 0E 08 F8 04 4E 00 F8 FF FF >01 4A 01 03 1C 0B 0B *1C 68* 0D 70 02 04 4E 00 F8 FF FF >01 5C 01 03 00 00 0F *B9 68* 0D 74 02 FF FF >01 4A 02 03 06 0F 03 *4C 5F* 0D 59 01 00 0E 08 F8 00 0E 08 F8 00 0E 08 F8 FF FF --Black hole >02 06 00 03 0C 09 0A *A9 48* 0D 71 00 00 0E 08 F8 00 0E 08 F8 FF FF >01 54 00 03 0D 0B 0A *A9 48* 0D 71 00 00 0E 08 00 00 0E 08 00 00 0E 08 F8 00 0E 08 F8 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 FF FF >01 D8 00 03 0B 0E 0A *A9 48* 0D 71 00 00 0E 08 08 00 0E 08 08 00 0E 08 08 00 0E 08 08 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 FF FF --Two levels repeated from routes with some different parameters >01 34 01 03 09 10 02 *68 52* 0D 59 00 00 0E 00 F8 00 0E 00 F8 00 0E 08 F8 FF FF >02 06 00 03 0C 19 01 *F6 65* 0D 6D 02 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 00 0E 08 00 FF FF --Venom levels >01 6E 02 03 00 00 0F *29 69* 0D FF FF >00 03 00 00 0F *F5 60* 0D FF FF >00 03 00 00 0F *7F 56* 0D FF FF --Out of this world (slot machine) >00 03 00 00 0E *E5 48* 0D 73 00 FF FF Let's recapitulate, The levels in Starfox are segmented in chunks containing macro objects that include scenery, enemy and scenario events like ending a level or a crew ship being attacked.These macro objects are constructed from any of the 400 polygonal objects. The polygon data includes animation features. What I'm missing is the level data, the macro object data and the polygon data.Actually I know approximatly where the level data is, but I can't figure out it's format I would need to find a correlation between bytes and part of a level. My research may eventually lead to a dead end, but anyway I did this mainly for my own "fun". One last thing, anyone ever played X (Xekkusu) for the Gameboy? It's a polygon game unreleased in the US (was to be called LunarChase). It includes some big names in the credits like Miyamoto and Hip Tanaka, and Dylan Cuthbert (who was Starfox 1 and 2 main programmer). It's a little primitive but the title screen demo is cool, I can't get past the training though, it's all in Japanese and it looks like I always fail the 3rd mission. |
|||
Dart Zaidyer Red Tektite Level: 15 Posts: 13/72 EXP: 13571 For next: 2813 Since: 06-27-04 Since last post: 8 days Last activity: 2 hours |
| ||
Wow, that's a lot of useful information. It should also be noted that while the "comm portraits" of Pepper, the team, Andross, etc are uncompressed, they're a bit hard to read in the editors I've tried such as yy-chr and Tile Layer Pro. It seems they're "shifted" two pixels down and one to the left, resulting in something that's hard to edit because you can never really be sure how to set up the new graphics so they'll translate back to the game properly. Is there a tile editor out there that can read these graphics correctly? |
|||
FuSoYa Defender of Relm Level: 26 Posts: 100/255 EXP: 99529 For next: 2746 Since: 03-15-04 From: Moon Since last post: 7 days Last activity: 7 hours |
| ||
Originally posted by d4s Or rather, the game would crash whenever I tried to modify the compressed data, leaving me no opportunity to examine the output. So with no trial and error and no SFX tracer, there wasn't much I could do. However, after reading this thread earlier in the week I thought perhaps I'd give it one more try. And... well, as you can see... I now have a SFX tracer and have figured out the compression being used on the title screen. I've added it to LC, and I've run the ROM through sniff.exe to locate the graphics using this format. Just let me know whenever you or Gideon want the tracer, LC, and sniff log. I also ran a scan on Star Fox, and found that it uses the same format. |
|||
Dart Zaidyer Red Tektite Level: 15 Posts: 14/72 EXP: 13571 For next: 2813 Since: 06-27-04 Since last post: 8 days Last activity: 2 hours |
| ||
Wow, excellent work! I'd like to get ahold of that stuff and see what I can figure out... Seems like Starfox 2 may have a few more surprises in store for text hacking, but I do have a few plans for Starfox 1. Is this compression format also being used on the communications portraits? I'm quite sure that's the case for Starfox 2, but when looking at Starfox 1 they're "kinda sorta" uncompressed. They get a little garbled here and there when you look at them, and if you try to edit them they garble in the same manner upon applying to the ROM. EDIT: Seems that only happens in v1.2 of Starfox, not v1.0. I wonder why? (edited by Dart Zaidyer on 07-31-04 11:10 PM) |
|||
VL-Tone Red Cheep-cheep Level: 23 Posts: 21/200 EXP: 64158 For next: 3565 Since: 06-06-04 From: In the Moon! Since last post: 5 days Last activity: 2 hours |
| ||
Nice work Dart Zaidyer and FuSoYa I made a (major) discovery yesterday in Starfox 1. I found where the actual polygon data is for all objects and most of its format!! I'll have to look a little deeper into it until I post more but I already found how to individually change the color of the object faces (polygons), or to use one of the uncompressed polygon textures instead of a flat color on any polys. The data is uncompressed and seems pretty crackable, mostly ressembling the most basic 3d formats. For each object a basic set of vertices positions is defined, then these are connected together in a second list that uses numbers refering to the vertices position list. There is more to it in StarFox (like animated objects) but it's basically that same format. It's probably also not so far from the Starglider II object format. I would guess that all FX games use this format and what I found is the polygonal data read directly by the chip. Now I have to wonder if a 3d object editor/converter compatible with most of the SNES FX chip games couldn't be more interesting/feasible (to me) than a Starfox level editor... |
|||
d4s Panser Level: 29 Posts: 54/325 EXP: 142151 For next: 5734 Since: 03-23-04 Since last post: 13 days Last activity: 1 day |
| ||
fu: YOU'RE DA MAN, MAN! |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Rom Hacking - Starfox 2 hacking information? | | | |