 |
 |
GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community
|
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6187
 |
Posted: Fri Jun 06, 2025 1:13 pm Post subject: |
 |
|
Some notes from latest beta. Of course still pretty experimental - new solo levels seem not really feasible due to how the actual objectives/event ids hardcoding work, but at least can have some fun, especially in multi.
Added:
Inject ability (reshift tables for objects)
Insert/Delete/Clone Objects
Make Level Barebones (experimental, likely not great)
Import Obj in Edit Model (then open up in Visual if a level)
For anything with external objects (levels/guns), need to import and preserve external objects. For solo levels, it's recommended to make a minimal setup first, then import and preserve. All start points/triggers should be over geometry. Rooms are recommended to be rectangular and not strange, nor should they overlap due to portals. Portals are Type0E, and don't need room numbers. There are other objects like blockers, other portal/room types that probably need more examination to understand how they work. Just put Type0E for Portals in room name, and Type42 for rooms. Clipping is auto-generated by geometry. For multi import and preserve objects, then open the level and drag all the objects until are over geometry. GoldenEye levels seem to be about 0.15 scale in TWINE, everything is much smaller. Class Id may be required for some objects, like weapons, while in levels auto-increment likely ok. It can be specified via ClassIdXX in room. Characters need to have right rig. Export obj to understand each one and the types/class ids. For solo levels you may need to mostly clear out (but leave just the camera) in cut-scenes, or else it won't be above the level either. The only images flags allowed are ClampS and ClampT.
Only 4/8-bit CI images are allowed (but for some reason, guards can only be 4-bit). No other types supported.
When importing, you can actually have a moving image (moves between images), but they must share the same palette. That is a SpecialTextureMapping.txt, the second file (the first is just a file of bitmaps, one per line), and looks like, similar to how Smash Bros works:
Special Image: 0126-0000-0000.bmp
Delay: 10
Alt: 0126-0000-0000_Alt.bmp
Alt: 0126-0000-0000_Alt2.bmp
Delete Unused Objects in Game Configuration (Q and Roulette Wheel)
Sound/Midi Viewer
Export/Import Text from Game Configuration
Image Editor (edit images in objects individually without importing whole model, such as for levels)
Fix EDL Compression in certain cases
Here are two example levels (Basement, and Courier one-room solo minimal import, with virtually nothing).
https://www.dropbox.com/scl/fi/2k3wxw2m6sg5rxizm8wh6/ExampleTWINEMaps.zip?rlkey=kw1idjv1m4xwtlv3wxrvr7q0k&st=z43ttmtg&dl=0 |
|
|
|
|
|
 |
 |
 |
 |
 |
MultiplayerX 007


Joined: 29 Jan 2006 Posts: 1211 Location: USA  |
Posted: Wed Jun 25, 2025 1:19 pm Post subject: OMG My dream Bond emu game .... :D |
 |
|
You guys figure out how to barebones and load any solo level in multi I'll come out of retirement Well done for what has been done though  _________________
 |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6187
 |
Posted: Mon Sep 01, 2025 8:30 am Post subject: |
 |
|
It does seem like TWINE objective's are all really hardcoded; at least in the sense, that anything meaningful will have to require rewritten game code...so not a good thing. Unless someone reverse engineers the entirety of objectives for a level only simple changes are really viable.
Some notes from Courier Objective A:
806E3A4C:01020103 completes objective A (just sets items to your inventory)
ASM 800171EC Collect Items Objective Function (JAL 0x80118228)
80118950 - seems to hold maybe some kind of objectives flags?
On both in inventory, set 01 to 80128955, probably used by other functions
8011838C: 24020001 ADDIU $v0, $zero, 0x0001 #
80118390: 3C018012 LUI $at, 0x8012 #
80118394: A0228955 SB $v0, 0x8955($at) #(*STORE) 80118955
Check at 8011839C for mission failure (non-zero is failure):
24040001 ADDIU $a0, $zero, 0x0001 #
801183A0: 3C028012 LUI $v0, 0x8012 #
801183A4: 80428950 LB $v0, 0x8950($v0) #(*LOAD) 80118950
Inventory Check of Flashbang and Appointment Card values
8011835C: 24050002 ADDIU $a1, $zero, 0x0002 #
80118374: 24050003 ADDIU $a1, $zero, 0x0003 #
Sets objective A to true with this function (parameter isn't objective #, some kind of parameter though to indicate what is done)
80118398: 0C00C5C0 JAL 0x80031700 #
8011839C: 24040001 ADDIU $a0, $zero, 0x0001 #
You can search disassembly (at least courier, didn't look at other levels for JAL 0x800707B4 to find other collectibles, here's Briefcase of Money):
80118410: 2405001C ADDIU $a1, $zero, 0x001C #
80118414: 0C01C1ED JAL 0x800707B4 # |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7263 Location: Ontario, Canada  |
Posted: Sun Sep 28, 2025 4:28 pm Post subject: |
 |
|
I ran into something curious with an object export from TWINE. The fire effects, object ID 0101, has 30 images that make up the fire animation. However, the first eight are (at least exporting as) black and white (colour images with a palette). The other 22 have their full colour range. It shows these eight as being tinted by the prop RGB, but this does not match how they appear in game at all. It isn't possible to get the correct colouration by doing that. Is there something else going on, or could there be an issue with how these textures were extracted? Such as an incorrect palette. All thirty are definitely used in game, as it wouldn't loop cleanly without them. |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6187
 |
Posted: Mon Sep 29, 2025 3:09 pm Post subject: |
 |
|
I don't see anything obvious wrong with the extraction. The EDL file is at 0x010195C0. The first 8 palettes are all:
000010852109318D4A535AD76B5B7BDF8C639CE7AD6BBDEFD6B5E739F7BDFFFF
Which is greyscale, basically, if you separate out RGB. So it must be colored?
I did manually run through and apply the palettes 8,9, and 0xA though.
https://www.mediafire.com/file/lfmay32mq5lowc2/paletted.7z/file |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7263 Location: Ontario, Canada  |
Posted: Mon Sep 29, 2025 10:24 pm Post subject: |
 |
|
Thanks. I had tested trying to copy one of the images palette over, and it seemed like it might work well enough, so this saves me the hassle of doing that for all eight. Should fit in nicely with the rest. |
|
|
|
|
|
 |
 |
 |
 |
 |
zoinkity 007


Joined: 24 Nov 2005 Posts: 1737
 |
Posted: Thu Oct 02, 2025 10:25 pm Post subject: |
 |
|
One thing about TWINE is that palettes are independent of images. You load the image and palette separately, and they remain in effect until reloaded/overloaded with something else (changing settings to ignore the palette doesn't delete it from memory!). That's why if you were unlucky enough to try to use the original extraction tools it would spit out only images with the last applied palette, creating a lot of pointless duplicates (because addresses!).
When SubDrag applied sanity to all that work and shuffled through all the display scripts, it turned out there weren't any obvious cases where palettes were swapped or shared...assuming this isn't one of them of course. |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
 |