| Strychnine Goomba Level: 10 ![]() Posts: 1/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
![]() Register - Login |
||
| Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies |
||
| Jul - Game Development/Mod Projects - Star Fox Adventures: Krystal Ver. [NEW PROJECT] | - - ![]() |
| Pages: 1 2 | Next newer thread | Next older thread |
| Strychnine Goomba Level: 10 ![]() Posts: 1/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
2Tie![]() Rumours of my death have been greatly exaggerated. Level: 70 ![]() Posts: 1157/1229 EXP: 2872011 For next: 143800 Since: 02-22-10 Pronouns: anything works From: here Since last post: 49 days Last activity: 1 day |
|
||
|
UESCTerm 802.11 (remote override)
044 05.10.2337
![]() sounds exciting, i wish you good luck in this endeavor! ____________________
Press B to Cancel
Press A to Acknowledge
|
| Strychnine Goomba Level: 10 ![]() Posts: 2/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5291/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
|
I've also been working on this.
Actually that project started as an effort to rip sound effects, but next thing I knew I was writing a model extractor. ¯\_(ツ)_/¯ From that screenshot, it looks like you simply changed the "active model" variable of the Player object. That does let you switch between Fox, Krystal, and the SharpClaw disguise, but if a model isn't loaded, you get that cube. (Which is usually colored...) Getting the game to load in her model would be the more difficult part. ____________________ |
| Strychnine Goomba Level: 10 ![]() Posts: 3/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5292/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
|
Right, patching the MODELS.bin for every map is one way to go, though I'm surprised it worked that easily. I was planning to patch the code instead. The code in that repo shows how to decode ZLB, and FACEFEED is just a wrapper around that.
There's another variable that changes things like the voice and whether to render the backpack. I still haven't looked into preventing the staff from being despawned and/or letting Krystal use it. (That might not be necessary if we just swap the models themselves.) Also I'm not sure how it loads the actual texture graphics. I'm hoping to allow switching characters on the fly. The game seems to have been programmed with that in mind; Fox and Krystal have separate variables for health, coords, etc in the save data. If I can force it to load both characters at once, or to reload the area with the other character (maybe can just stick a dummy model in the inactive character's place), it might just work. (Maybe some game mechanics wouldn't play so well with it, but, oh well) ____________________ |
| Strychnine Goomba Level: 10 ![]() Posts: 4/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rozurabu Random nobody Level: 2 Posts: 1/1 EXP: 30 For next: 16 Since: 11-04-19 Since last post: 2.5 years Last activity: 2.5 years |
|
||
| I've been lurking this forum for a long time, mostly just watching the DP thread. Seeing this, though, and I just couldn't sit back anymore. A lot of what OP's doing is stuff that I've already worked on awhile back with rather little publicity aside from the KA Discord server. 15.06.2019, First Attempt: ![]() ![]() 16.06.2019, Second Attempt, pretty Dolphin screenshots: ![]() ![]() ![]() ![]() ![]() ![]() ![]() 05.07.2019, Second Attempt tested & working on Console: ![]() Apologies in advanced for not using spoiler tags, the syntaxes I tried appeared to make buttons that wouldn't expand. |
| Strychnine Goomba Level: 10 ![]() Posts: 6/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Strychnine Goomba Level: 10 ![]() Posts: 7/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5294/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
| Oh snap. So this is just from changing the models.tab and textures.tab? I haven't really looked into textures yet. I should be able to quickly put together a Gecko code that will apply those changes on the fly, so we'll be able to at least replace Fox. Long term plan is still to have both at once though. |
| Strychnine Goomba Level: 10 ![]() Posts: 8/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Strychnine Goomba Level: 10 ![]() Posts: 9/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5295/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
|
Right, MODELS.tab is a list of offsets into MODELS.bin, so if you're overwriting models, you'd need to either keep the offsets the same or update those (and possibly others). Within a model the offsets are relative to its beginning, so they don't mind being moved around.
I'm not sure about textures. I know they're commonly referenced by ID. Are they all the same size TEX0/TEX1.bin? It would make sense that each map has a list of which textures to load. I know the models' display lists select textures by ID. (And if the selected texture isn't loaded, you get that weird blue effect, which I think is the beginning of RAM interpreted as a texture.) But I'm not sure how the IDs are resolved to pointers in RAM or offsets in a file. (Actually I'm not sure how GX display lists reference textures either; maybe they don't? The game uses its own custom display list format in addition to GX lists, and those select textures. A lot like Mario Kart 64 does... but, much simpler.)There's also different materials which can share the same texture. For example Krystal's fur and clothes are both part of the same texture, but are drawn with different settings so that the clothes have a metallic reflection and don't appear furry up close. I don't really even know how materials work in general, let alone how this game uses them... ____________________ |
| Strychnine Goomba Level: 10 ![]() Posts: 10/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5296/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
| Strychnine Goomba Level: 10 ![]() Posts: 11/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Strychnine Goomba Level: 10 ![]() Posts: 12/24 EXP: 3542 For next: 872 Since: 10-29-19 Pronouns: They/them From: CO, USA Since last post: 1.5 years Last activity: 1.5 years |
|
||
|
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5297/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
|
Yeah, it doesn't work so well to swap models that don't have the same skeletal structure.
I have a pretty nice Ghidra database too but I'm not sure how to share that... ![]() Right now the main question is how the game decides what to load from the global MODELS.bin and what to load from the map's own file. Does it just load all of both? If so we could just tack Krystal on to the end of the global file. (Still need to find a way to use edited game files with Dolphin too.) ____________________ |
| Rena I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings Level: 135 Posts: 5298/5390 EXP: 29051659 For next: 283346 Since: 07-22-07 Pronouns: he/him/whatever From: RSP Segment 6 Since last post: 333 days Last activity: 333 days |
|
||
|
So, this Gecko code will load Krystal's model in every map, and let you swap them with D-pad Down. But her textures and animations aren't loaded.
c20453d4 0000001b 48000018 7761726c 6f636b2f 4d4f4445 4c532e62 696e0000 9421ffc0 90610018 3c808180 9064fffc 3ca00001 60a52b40 90a10014 7c632a14 38a00000 3c807d7d 60847d7d 3c008002 60003cc8 7c0803a6 4e800021 90610010 48000005 7c6802a6 3863ffa8 38800000 3c008001 60005ab4 7c0803a6 4e800021 9061001c 3c000009 600001c0 7c830214 80610010 80a10014 80010018 7c630214 3c008000 60003494 7c0803a6 4e800021 8061001c 3c008002 600033e8 7c0803a6 4e800021 80610010 38210040 3c808004 608453e4 7c8803a6 4e800020 00000000 c2045670 00000005 3c608035 6063f490 80630000 3c808180 8084fffc 3ca08000 7c842b78 908313a0 60000000 00000000 283398d2 00000004 82200000 803428f8 86000000 000000ac 86410000 00010000 e2000000 80000000 ![]() This code has three parts to it: The first part hooks the function that loads MODELS.bin. It loads warlock/MODELS.bin, copies Krystal's model out of it, and tacks it onto the end of whichever MODELS.bin is actually being loaded. The second part hooks the loading of MODELS.tab, and sets entry 0x4E8 (Krystal's model ID) to the offset that the first part copied her data to. (It doesn't need to deal with compression; the game will do that on its own!) The third part just toggles the "current model" variable of the Player object when you press the button. I'm not sure why it doesn't apply Fox's animations; they should be the same? I hope I don't have to manually load in all the animations this way. I will have to do the textures but fortunately there's only a few of those. Having studied the code more, I have a better understanding of the files. Every map has its own MODELS.bin which has a copy of every model the map uses. (Same for TEX0.bin and so on.) That way it only needs to load one file to have all of the models it needs, instead of seeking around a lot; it uses a lot more disc space (which doesn't really matter since discs are a fixed size) but greatly reduces loading time. The corresponding .tab file tells where to find each model ID in the .bin file. To load model N, you just go to offset N*4 in the table, read the offset, go to that offset in the .bin file, and read from there. (Well, and the top 4 bits are flags such as "is the data compressed" and others I'm not sure about...) I'm not sure where the global MODELS.bin comes in; it looks like a few maps don't have their own (cloudtreasure, dbay, dfalls, frontend, insidegal, linklevel, swapcircle) - are these maps even used? (frontend is the title screen, but I think so is gamefront?) But now that I know that the .tab files are just arrays indexed by asset ID, it's all much clearer. Source for this code is here, except the toggle part which is just a couple lines of Gecko. ____________________ |
| Pages: 1 2 | Next newer thread | Next older thread |
| Jul - Game Development/Mod Projects - Star Fox Adventures: Krystal Ver. [NEW PROJECT] | - - ![]() |
![]() |
Acmlmboard - commit 47be4dc [2021-08-23] ©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al. Warning: You are using TidyHTML mode! Pages MAY and probably WILL break. To disable, click here or append 'xxx-off=1' to the URL! ![]() |
| Query execution time: | 0.098679 seconds |
| Script execution time: | 0.053707 seconds |
| Total render time: | 0.152386 seconds |