 |
 |
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: 6182
 |
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: 6182
 |
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 # |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
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
|
|
|
 |