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


Joined: 14 Dec 2005 Posts: 7279 Location: Ontario, Canada  |
Posted: Sat Jul 11, 2026 1:47 pm Post subject: |
 |
|
I am not sure if Zoinkity had passed this information on, but regarding including more music (MIDI files) in GoldenEye, this is what he sent to me...
"In an unedited ROM the halfword at 419790 indicates how many song entries follow it. Each entry is an (L) offset to the compressed music sequence, (H) decompressed size, (H) compressed size. Music table loading uses dynamic memory, shouldn't be a real limit.
Adding (or removing) songs involves changing the count, changing the entries, and adding or removing data. Really simple stuff."
I took a quick look at the data, and it appears correct. So it should just be a matter of updating the count at the start, and adding/deleting entries, shifting everything beyond. And that all already shifts if you replace a song with something of a different size, anyway. Some of the music guys seemed excited by the prospect of allowing more music tracks on Discord. |
|
| |
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6223
 |
Posted: Sat Jul 11, 2026 5:17 pm Post subject: |
 |
|
| The issue was the RAM table of entries. It was fixed size. Actually expanding or contracting was otherwise OK with shifting. |
|
| |
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7279 Location: Ontario, Canada  |
Posted: Sat Jul 11, 2026 5:56 pm Post subject: |
 |
|
| By RAM table, do you mean either the music by level ID table (main, background, x), and/or the list of random tracks used when a non-matching level ID is started, both in 21990? Those can be moved and expanded. I've done that in Tournament Edition to support more. Unless you mean something else entirely? Perhaps Zoinkity can continue poking and supply any necessary info to help get this going. |
|
| |
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6223
 |
Posted: Sun Jul 12, 2026 3:41 am Post subject: |
 |
|
When I had tried it before, it crashed ingame because of I think the main midi listing, got larger, so in RAM it didn't work. I guess I can put the shifting back but it won't work for anyone unless they've changed the table location then. Guess link to an xdelta of the table expanded in RAM and I can try the addition shifting on it and see. It's been and while and losing touch on this stuff, but can see.
These are what my notes say:
/* Disabled because of hardcoded tables of compressed sizes
802D1C00 Midi table
Write to 80063860,80063714
70006C60: 3C018006 LUI $at, 0x8006 #
70006C64: 3C038006 LUI $v1, 0x8006 #
70006C68: 3C048006 LUI $a0, 0x8006 #
70006C6C: 3C058006 LUI $a1, 0x8006 #
70006C70: 3C068006 LUI $a2, 0x8006 #
70006C74: AC2B3840 SW $t3, 0x3840($at) #(*STORE) 80063840
70006C78: 24C63836 ADDIU $a2, $a2, 0x3836 #(*CONSTANT) 80063836
70006C7C: 24A537B8 ADDIU $a1, $a1, 0x37B8 #(*CONSTANT) 800637B8
70006C80: 8C843734 LW $a0, 0x3734($a0) #(*LOAD) 80063734
70006C84: 24633738 ADDIU $v1, $v1, 0x3738 #(*CONSTANT) 80063738
70006C88: .XREF:70006CB4[D],
70006C88: 948C0008 LHU $t4, 0x0008($a0) #
70006C8C: 24840008 ADDIU $a0, $a0, 0x0008 #
70006C90: 24A50002 ADDIU $a1, $a1, 0x0002 #(*CONSTANT) 800637BA
70006C94: A46C0000 SH $t4, 0x0000($v1) #(*STORE) 80063738
I've also changed my mind on support past 0xFFF - it's not valid for GE or PD. The C0 special command has detail mapping, FFF is the max texture index because the detail map and the regular image are side by side. Past FFF is not valid. Probably why ingame it didn't work.
From Zoinkity's docs:
C0 commands
upper command
00C00000 S mirror(2), clamp(1)
00300000 T mirror(2), clamp(1)
000C0000 ST settilesize offset, which may only be 2 or 0. Avoids pixelization on edges.
0003C000 S shift
00003C00 T shift
000003F0 RESERVED
00000007 type 0-4
lower command
FF000000 Primcolor diffuse level, used to determine visible distance of overlay images (LOD effect)
00FFF000 Overlay image ID. Appears when close to the object.
00000FFF Base image ID. When overlay present, used at a distance and replaced at close range. |
|
| |
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7279 Location: Ontario, Canada  |
Posted: Mon Jul 13, 2026 11:46 am Post subject: |
 |
|
Alrighty, I think I managed to get something going here. This is the "simple" method, which may be good enough. What I did was move the 2nd table (the compressed file sizes) someplace else. This effectively doubles the number of supported songs. For my testing purposes, I chose 80058338 for the new address. These were the changes made in ROM...
787A end of 2nd table? (83B8)
787E start of 2nd table (8338)
7B36 start of 2nd table (8338)
7EBE start of 2nd table (8338)
8246 start of 2nd table (8338)
The original tracks play, can swap between watch and X, and a newly added track at 0x3F can also play fine. Not sure if there is anything else missing from this, but so far I've not run into any issues.
Edit: Zoinkity might contact you with other info and changes, which you may prefer to incorporate, I'm not sure. There is also, apparently, a table of volume settings for the songs in 21990, which would also either need moving/extending, or some other method. Though I am not entirely keen on forcing a certain volume by default, as the originals do have some variance to them. |
|
| |
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6223
 |
Posted: Mon Jul 13, 2026 4:39 pm Post subject: |
 |
|
That was the piece I was missing, the RAM change. What I had coded before is now working with those manual changes. If ROM 787A is not the default value it will show the "Add Song" button in editor. It's in beta editor now. Once you add songs it will adjust the total count and give you access to it in the level song choice.
On the texture > 0xFFF - I'm confused how that would ever work. The C0 command just doesn't support it, so that would break detail mapping? |
|
| |
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7279 Location: Ontario, Canada  |
Posted: Mon Jul 13, 2026 9:44 pm Post subject: |
 |
|
Excellent. That seems to be doing nicely. I was able to successfully add eleven songs, and they play just fine in game. The only weird thing, is the MIDI playback within the Editor menu has gotten messed up. Like it drags the sounds out very long and slowly. Other than that, it's great. Thanks!
As for the PD +FFF texture IDs, I can only venture to guess the PC Port has been able to both extend the allowable texture count, and perhaps update how the detail mapping works? Though you would have to think the display lists would require updating in those instances. There may be some sort of exceptions or something, however. I have never played with the PC Port, but I know it is capable of a lot. |
|
| |
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6223
 |
Posted: Thu Jul 16, 2026 1:38 pm Post subject: |
 |
|
| Zoinkity did a bunch of work to extend the volume tables, and make those other midi RAM tables not needed. That's now supported in editor. |
|
| |
|
|
|
 |
 |
 |
 |
 |
Morrigan Aensland-Hill Agent


Joined: 09 Mar 2021 Posts: 51 Location: Arlen, Texas  |
Posted: Mon Jul 20, 2026 1:29 pm Post subject: |
 |
|
Greetings, Subby. I have a request for Diddy Kong Racing: a font editor which can be used for editing the fonts in the game since GE and PD have font editors while DKR does not which is slightly despondent. _________________ My beauty can overcome brains and brawn!
...Also, my husband sells propane and propane accessories. |
|
| |
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6223
 |
Posted: Mon Jul 20, 2026 2:29 pm Post subject: |
 |
|
| Not aware of how the fonts work. Someone would have to reverse engineer it first. |
|
| |
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
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
|
|
|
 |