Register - Login
Views: 99381304
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
04-23-22 11:52:17 PM
Jul - Posts by messiaen
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 45 46 47 48 49 50 51 52 53 54
messiaen
Catgirl
Level: 68


Posts: 189/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-02-08 05:06:45 PM, in Stuff inside the checksum protected area (Title Screen, etc.) (last edited by messiaen at 08-02-08 02:44 PM) Link
I can't help much in that, because this area is loaded very early in the initialization process, so probably this would require a good deal of low-level knowledge of the N64. By the way, in the header of the ROM there's the RAM address where this area is copied to (80246000), hence the ram = 0x80245000 + rom "formula".

About the snow, this is the function called in the Geo Layout I was talking about:

18 00 00 [xx] 80 27 61 D0

xx = Some argument (usually 00). Values used:

01 = used in Cool Cool Mountain (area 1) and Snowman's Land (area 1). Produces the snow effect.
02 = used in Jolly Roger Bay (area 2) and Secret Aquarium.
0C = used in Lethal Lava Land (area 1), Bowser's Fire Sea and Bowser Second Battle
0D = used in Dire Dire Docks (area 1).
0E = used in Jolly Roger Bay and Dire Dire Docks (area 2).

I tried using the 01 value in Bob-omb Battlefield, but instead of producing snow it produces strange polygon shapes. So, I guess it could be either that a specific bank loaded in Cool Cool Mountain/Snowman's Land is needed or that snow is in one of the shared banks but there isn't a 0x22 pointing to it in Bob-omb Battlefield.

But getting back to the checksum area, I don't know if that's what you meant when you said you find Mario's move table, but a lot of the 8027xxxx RAM pointers are some sort of jump table for specific Mario actions. For instance, the value at 80336C60 is read and them jumped to (by a Jump Register opcode) when you do the "jump" action. All nearby values are jump related, such as double jump, triple jump, etc. By swapping these values you can make things like a instant triple jump or another changes. For example, here is a fun code I created that replaces the kick after two punches value with another punch value. This way you can punch very fast:

81336EE8 8027
81336EEA 4F90
messiaen
Catgirl
Level: 68


Posts: 190/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-04-08 01:22:33 PM, in Goomba Geo Layout Deconstruction Link
Trees, Mr. I and the flames are examples of objects which use this kind of effect. Since Mario64 is vey low-polygonish, this is a good trick to cut the number of polygons.

In the Goomba, it is used in the body. Rather than using a complex 3D structure such as the head, it's just a simple square (formed by two triangles) with a texture applied and the billboarding effect:

200FEC: 1400 0000 0000 0000 <-- Enable Billboarding for next
200FF4: 0400 0000
200FF8: 1504 0000 0801 B690 <-- Body (not animated). Uses texture #382.
messiaen
Catgirl
Level: 68


Posts: 191/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-04-08 07:10:06 PM, in Help/Questions about Toad's Tool 64 and SM64 hacking (last edited by messiaen at 08-04-08 04:12 PM) Link
To understand better these commands you need to take a closer look at the main Mario Hacking doc. Inside it, you'll find what each byte (or group of bytes) does for a specific command.

I don't recommend spending too much time on the polygon commands, especially now that VL-Tone is working on a .obj importer, but understanding the level scripts will be very useful for more advanced stuff.

Before going into pointers, you have to understand how segmented data is loaded into RAM.

For instance, 17 0C 00 [07] [01 20 30 00] [01 20 31 08] loads ROM data from 0x1203000 to 0x1203108 into "bank" 07, which is just an arbitrary number to reference the data in the RAM.

As for pointers, usualy they are the last 4 bytes of a command:


[2E] [08] [00 00] [07] [00 00 D8]
(command) | |--> Offset
--> Bank (or segment)


Since we already seen that for Flatworld Bank 0x07 starts at 0x1203000, this command points to 0x12030D8.

As for the triangle commands, the last tree bytes (for instance, 00 0A 14) are pointers to the vertex cache loaded before with the 0x04 command:

04 30 00 00 07 00 00 00 <------ Loads 4 vertices from 0x0000 of Bank 07 (that is, 0x1203000) into the vertex cache. Yes, this is very confusing at first!

BF |
---|------------
00 | First vertex
0A | Second vertex
14 | Third vertex
1E | Fourth vertex

You can download and experiment with the Platform Battlefield v0.2 patch, because the data is more organized - that is, less optimized - than the normal Flatworld and also there's free space so you can experiment adding things. A good way to see if you understood pointers is to move things around.
messiaen
Catgirl
Level: 68


Posts: 192/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-04-08 11:48:31 PM, in SM64 Music Editing (last edited by messiaen at 08-08-08 09:24 AM) Link
I have made some great progress on the sequenced music format!

Here is a note table:


Octave|| Note Numbers
# || C | C# | D | D# | E | F | F# | G | G# | A | A# | B
------------------------------------------------------------------------------
x-1 || 1B | 1C | 1D | 1E | 1F | 20 | 21 | 22 | 23 | 24 | 25 | 26
x || 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2E | 2F | 30 | 31 | 32
x+1 || 33 | 34 | 35 | 36 | 37 | 38 | 39 | 3A | 3B | 3C | 3D | 3E


When this table is used, here is the format:

{58} 85 [22] (18) # eight-note G

{} = Velocity
= Not really sure, but something like ticks before NoteOff.
[] = Pitch (normal table)
() = Duration (18 = eight-note, 30 = quarter-note, 60 = half-note, 20 = triplets, all simple proportions) [delta-tick?]

This alternate note table is also used. It's basically the same plus 80 (hex), so it sets some kind of flag:


Octave|| Note Numbers
# || C | C# | D | D# | E | F | F# | G | G# | A | A# | B
------------------------------------------------------------------------------
x-1 || 9B | 9C | 9D | 9E | 9F | A0 | A1 | A2 | A3 | A4 | A5 | A6
x || A7 | A8 | A9 | AA | AB | AC | AD | AE | AF | B0 | B1 | B2
x+1 || B3 | B4 | B5 | B6 | B7 | B8 | B9 | BA | BB | BC | BD | BE


When this alternate table is used, we have 3 bytes instead of 4. "Duration" is omitted (it uses the last parameter supplied). Excerpt:

{64} 40 [24] (60) # half-note A (normal pitch table)
{5C} C8 [26] (20) # triplet B

{64} *40* ~AC~ triplet F # Begins alternate, 3 byte format. Duration = 20 (last one)
{5E} *88* ~AC~ triplet F
{62} *90* ~AC~ triplet F
{5C} *50* ~AB~ triplet E
{5E} *60* ~A9~ triplet D
{64} *58* [27] (80) C

And here is one VERY important thing, the *JUMP* command, which is also used for Loops!

[FC] [1B EE]

[00] = Jump
[01, 02] = Jumps to offset 0x1BEE, counting from the begginning of the sequence.

The "FF" character to indicate when to jump back. Here is one loop example using this command:

FC 1B EE # Jump to 0x1BEE (0x00 = 7B4080,start of track). Return when ch = FF.
FC 1B F9 # Jump to 0x1BF9
FC 1B EE # Again (Manual Loop)
FC 1B F9
FC 1B EE # Again (Manual Loop)
FC 1B F9
messiaen
Catgirl
Level: 68


Posts: 193/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-05-08 06:08:06 PM, in Stuff inside the checksum protected area (Title Screen, etc.) Link
This was way simpler than I thought, so here is a simple way to skip CRC check. Just NOP these two instructions:

(ROM)
0x066C: BNE A3, T0, 0x800001C8 <-- Sends you to a dark trap room.
0x0678: BNE S0, T0, 0x800001C8

The emulator will complain about it ("unknown CIC"), but it works. There also could be an option in TT64 to restore this code and recalculate the CRC when your project is ready, to avoid emulator annoyances.
messiaen
Catgirl
Level: 68


Posts: 194/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-06-08 12:42:39 AM, in Stuff inside the checksum protected area (Title Screen, etc.) Link
I tested it on a few emulators. Here are the results:

1964 - Doesn't complain at all.
Mupen 0.5.1 - Same (haven't tried MupenPlus yet).
Nemu64 0.8 - One error message ("Unknown bootcode. Chances that this game won't work are high").
Project 64 1.6 - Two error messages ("Unknown Cic Chip" and "Unhandled CicChip(-1) in first DMA".

Now it's time to gather more data, I'll see what I can gather from Gameshark codes.
messiaen
Catgirl
Level: 68


Posts: 195/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-06-08 03:48:10 PM, in Stuff inside the checksum protected area (Title Screen, etc.) (last edited by messiaen at 08-09-08 01:38 PM) Link
Great list! Just to narrow our searches, the non-ASM data seems to start at 0x0E6260.

I think I found what the parameters after the RAM pointer does: it's the time before you regain camera control.

To confirm this, I swapped the "00 01" parameter in the double door opening with "03 34" from the Lakitu tour, then opened another emulator window and watched the intro at the same time I opened the double door. When the intro's over, you can control the camera again. With parameter "7F FF", there is probably some kind of input (either from joypad or some function to be called) needed to regain camera control.

By the way, at 0x8029000C lies some sort of StopCamera() function which is called by some behaviors (ie, collect star).

And here's what I got from the behavior list on 0xEAED8 (updated):


1300 24AC - Produces "white dust" when Mario starts/stops running.
1300 0A54 - Produces little yellow stars (when Mario hits a wall)
1300 0A98 - Produces little yellow starts (when Mario pounds the ground)
1300 2B08 - ??
1300 02B8 - ??
1300 2C14 - ??
1300 2CE0 - ??
1300 0428 - Produces snow?? (Not sure. Hardcoded model setting in ASM = 0xA4).
1300 2DC0 - ??
1300 11EC - ??
1300 2D50 - ??
1300 2D7C - ??
1300 1390 - Produces leaves (when Mario is on a tree?)
1300 0E58 - Produces little snowballs (when Mario is walking on snow?)
1300 0D98 - Produces shadows
1300 0E3C - Produces little red objects (when Mario hits something?)
1300 0E24 - Produces the dust when Mario pounds the ground
1300 0AD8 - Same effect as 0xA54, but producing little arrows?


I used Yoshiman's Spawn any object anywhere code to discover most of this (code on his website). Most of these are "spawn" behaviors, and they have a hardcoded model setting.
messiaen
Catgirl
Level: 68


Posts: 196/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-06-08 06:11:19 PM, in Adobe Director 11 released March 25th. Link
I don't care much about textures, but when you release the new TT64 version you could still keep the download link of 0.5.9b with texture export. Or perhaps you could include in the download package (or as a separate file) all the exported textures.

By the way, have you seen this texture list on the japanese forum? There's some interesting offsets there, such as the water texture.

Also, I have been experimenting with background swaps, and while this may be a bit dangerous to include, as the differented sized background banks could crash the game, it would still be useful when creating new levels. One of the common functions in the main terrain Geo Layout is responsible for handling the background textures, and there is some minor adjustments depending on which Background Bank (0x0A) you load. I'll document a bit more this stuff and send it to you in a few days.
messiaen
Catgirl
Level: 68


Posts: 197/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-07-08 06:37:30 PM, in Experimental Platform Battlefield v0.4 RELEASED (Mac patch included) Link
If you have sucessfully applied the Flat Lava Land patch, I'm not sure what could be going wrong with this. Are you patching to an extended non-Flatworld enabled ROM? Have you tried patching to another ROM? Have you tried another emulator? Where exactly in the file screen does it crashes? Does the emulator crashes too (and what kind of error) or just the game?

Anyone else with this problem?
messiaen
Catgirl
Level: 68


Posts: 198/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-08-08 07:38:59 PM, in oh god YES Link
That "useless bottom" of yours just kept me entertained for about 300 clicks. I guess the same happens to about 75% of the people. The other 25% are probably anal.
messiaen
Catgirl
Level: 68


Posts: 199/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 03:55:01 AM, in Stuff inside the checksum protected area (Title Screen, etc.) Link
You'll have to experiment and see for yourself! Just remember to patch the ROM as described to get rid of the checksum infinite loop.

I tried to force the "Stuck drunk Lakitu cam cam from far away" values for all the camera settings, and it shows that none of these values are used for the normal camera movement, all of these are used for special events.
messiaen
Catgirl
Level: 68


Posts: 200/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 02:57:04 PM, in Mega Man 3: A Stinking Pile of Crap Link
An entertaining review by SydLexia!

Gotta look for this on some abbandonware site!
messiaen
Catgirl
Level: 68


Posts: 201/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 04:11:00 PM, in Mega Man 3: A Stinking Pile of Crap Link
Never understimate the power of negative media!
messiaen
Catgirl
Level: 68


Posts: 202/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 04:34:44 PM, in Adobe Director 11 released March 25th. (last edited by messiaen at 08-09-08 02:04 PM) Link
rstewart215804 posted some info about backgrounds texture pointers on the Flatworld thread, but probably you already know about that.

Here is a list I compiled with the necessary changes use any background on Flatworld (or any other level, for anyone who wants to swap backgrounds).

Besides changing the 0x0A Bank Loaded, you need to adjust this function in the Terrain Geo Layout: 19 00 00 xx 80 27 63 D4.

See the list below for correct values:


# | Level | Bank 0x0A | Arg
---------------------------------------------------
01 | Haunted House | C3AFD5-C4F915 | 06
02 | Cool Cool Mountain | B5D855-B7D995 | 04
03 | Inside Castle | No Background | 00
04 | Hazy Mazy Cave | No Background | 00
05 | Shifting Sand Land | C12E95-C32FD5 | 05
07 | Bob-omb Battlefield | B35715-B55855 | 00
08 | Snow Man's Land | B5D855-B7D995 | 04
09 | Wet Dry World | BC2C15-BE2D55 | 02
10 | Jolly Roger Bay | B85995-B9A2D5 | 08
11 | Tiny Huge Island | B35715-B55855 | 00
12 | Tick Tick Clock | No Background | 00
13 | Rainbow Ride | BEAD55-C0AE95 | 03
14 | Castle Grounds | B35715-B55855 | 00
15 | Bowser 1 Course | C57915-C77A55 | 07
16 | Vanish Cap | No Background | 00
17 | Bowser's Fire Sea | BA22D5-BBAC15 | 01
18 | Secret Aquarium | BEAD55-C0AE95 | 03
19 | Bowser Third Course | C7FA55-C9FB95 | 09
20 | Lethal Lava Land | BA22D5-BBAC15 | 01
21 | Dire Dire Docks | B35715-B55855 | 00
22 | Whomp's Fortress | BEAD55-C0AE95 | 03
23 | Castle Courtyard | C3AFD5-C4F915 | 00
24 | Peach's Secret Slide | No Background | 00
25 | Metal Cap | No Background | 00
26 | Wing Cap | BEAD55-C0AE95 | 03
27 | Bowser First Battle | C57915-C77A55 | 07
28 | Rainbow Clouds | BEAD55-C0AE95 | 03
29 | Bowser Second Battle | BA22D5-BBAC15 | 01
30 | Bowser Third Battle | C7FA55-C9FB95 | 09
31 | Tall Tall Mountain | B35715-B55855 | 00


There is also a function in the Geo Layout which repositions the entire background, but I have to test it again to provide more consistent information.
messiaen
Catgirl
Level: 68


Posts: 203/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 04:53:53 PM, in Mega Man 3: A Stinking Pile of Crap Link
This site has both games. Use DOSBox to run.
messiaen
Catgirl
Level: 68


Posts: 204/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-09-08 07:18:36 PM, in Experimental Platform Battlefield v0.4 RELEASED (Mac patch included) Link
The v0.4 patch replaces Whomp's Fortress with an "empty" terrain, but it would be very easy to replace some other levels with a Flat terrain setting. I may produce a patch with a few corrections and more "flat" templates.

---

Also, here are the custom objects merged with my "Bowser in Bob-omb" modification. There's also some changes in the title screen music (check my last post on the Music Editing thread for some handy information on the music format).

<object width="425" height="350"> <embed src="http://www.youtube.com/v/NACPNe8kukA" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>
messiaen
Catgirl
Level: 68


Posts: 206/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-10-08 06:25:56 PM, in SM64 Music Editing (last edited by messiaen at 08-16-08 04:53 PM) Link
Ops, acidentally deleted this post. Anyway, rstewart215804, this was just the piece of info I was looking for!

I'm doing a 100% "deconstruction" of the Toad's Music, here is how far I got. I omitted the music data because I'm not done with it, and because the overall format should be our focus now.

One easy way to find out what's in a channel before looking at the music data is to replace all the main 0x9x pointers with the same value. This is a good trick to use also on level scripts to NOPe something (ie, creating a repeated 0x22 command).

It's also worth looking for bit patterns in these 1 byte commands.


------------------------
Toad's music - 0x7CA8F0
------------------------

D3 80 (Sort of Header?)

D7 01 81 <- According to DJ Bouche, Channel enable flag?

90 00 19 <-- Pointer to track data (chan 00?) --> E E E E G G F G A B
97 00 2D <-- Pointer to track data (chan 07?) --> C Bb A Ab G
98 00 47 <-- Pointer to track data (chan 08?) --> C Bb A Ab G one octave lower

DB 50

DD AA (Tempo = 170 BPM)

FD 81 28
D6 01 81 <-- Probably related to the 0xD7 on the beggining (certainly not a jump)
FF

------
0x19 <-- Entry-point for channel 00?
------

C4
90 00 5B <-- Call this
91 00 79 <-- Call this

DF 7F 6A
DD 4A
D4 14
C1 00
FD 81 20
FF

------
0x2D <-- Entry-point for channel 07?
------
C4
90 00 86 <-- Call this
91 00 93 <-- Call this
92 00 A0 <-- Call this
93 00 AB <-- Call this
DF 7F 69
DD 36 <-- In this context, I don't think this is the tempo setting.
D4 14
C1 07
FD 81 28
FF

-----
0x47 <-- Entry point for channel 08?
-----

C4 <-- Marks the beggining / initializes something?
90 00 B8 <-- Call this
91 00 C5 <-- Call this
C1 08
DF 6E 68
DD 28
D4 14
FD 81 28
FF

messiaen
Catgirl
Level: 68


Posts: 207/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-10-08 09:44:59 PM, in SM64 Music Editing (last edited by messiaen at 08-10-08 07:35 PM) Link
Nice, I'll check more on this track later. I think you got the correct byte order, I was experimenting before and I noticed that the velocity (volume) I was changing affected the previous note, so that's probably the correct order: [pitch] [ticks] [velocity] [something].

Have you checked all these 0xDD commands? I believe the first one is the global tempo, but I find hard to believe there's different tempo settings for each channel, especially because the values aren't simple proportions. That is just, unmusical!. Could you check on this?

Here is more from the Toad's song music. The jump structure is sort like the polygon data:

90 00 19 <-- Pointer to track data (chan 00?) --> High melody E E E E G G F G A B


------
0x19 <-- Entry-point for channel 00?
------

C4
90 00 5B <-- Call this

------
0x5B
------

[37] (18) 63 AA E (18)
~B7~ 5C B5 E
~B7~ 54 B5 E
~B7~ 61 AA E
[3A] (30) 67 E0 G (30)
~BA~ 61 DA G
[38] (52) 5F 16 F (52) [ 60 - 52 = 0E, ticks to fill the measure)

7C 07 5F
C0 06
FF

91 00 79 <-- Call this

------
0x79
------
C0
81 08
[3A] (0E) 5A 37 G

7E 09 67
C0 01
FF

DF 7F 6A
DD 4A
D4 14
C1 00
FD 81 20
FF


The problem is that I can't find the last two notes, high A and B. They should be 3C, 3E or A4, A6. Also, these two parts of data called by the 9x aren't played at the same time. I have to check more, but this could be just jumps, and simultaneuos notes are made by using a 00 duration. At least, this is how it's done in MIDI as far as I can remember.
messiaen
Catgirl
Level: 68


Posts: 208/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-11-08 12:27:38 PM, in SM64 Music Editing (last edited by messiaen at 08-12-08 01:31 PM) Link
Nice discovery, it works exactly like MIDI:

MIDI Value 0 - pan hard left
MIDI Value 1 - pan hard left
MIDI Value 64 - pan center
MIDI Value 127 - pan hard right

(edited: rephrased this) So, The last byte is the actual duration of the note, while the () one is the "tick before next event" one.

I confirmed that 0xDB and 0xDF are respectively Global Volume and Track Volume from DJBouche's notes, however I'm not getting success changing instruments, is this really done by the 0xC1 command?

---

Here is the pitch table (more testing will be necessary to find the correct range for this):

Octave|| Note Numbers
# || C | C# | D | D# | E | F | F# | G | G# | A | A# B
------------------------------------------------------------------------------
x-1 || 67 | 68 | 69 | 6A | 6B | 6C | 6D | 6E | 6F | 70 | 71 | 72
x || 73 | 74 | 75 | 76 | 77 | 78 | 79 | 7A | 7B | 7C | 7D | 7E
x+1 || 7F


I find it high likely that more optimizations of this kind will be found, especially for pauses. This 0xB0 command on the Title Music makes a two 4/4 measure pause, but I still have to check how it's used on other tracks:

B0 54 F0

(All the range between 0xB0 - 0xB9 seems to commands).

---

Look in the beggining of the Slide Melody how the three "formats" are mixed to get maximum optimization (I labeled them as [xx], ~xx~ and "xx").


0xE0 Main Melody

C4
90 04 75

0x475

36 (60) 57 E0
~B0~ 5A 28 <--A
[30] 30 52 3B <-- A
~B4~ 6D 3B <-- C#
~B2~ 60 30 <-- B
"71" 2A 5F <-- Bb
FF

91 04 8A
92 04 95
93 04 A0
D4 14
C1 02
DF 6E 6C
DD 48 <-- Pan
D3 00
FD
81 80


I also did a little experience setting an infinite loop:

LoopStart:
C0 83 00
notes
FC LoopStart

What's interesting is that the first "C0 83 00" is probably a pause command, because there is a delay before the loops repeats. When I change it to "C0 80 00", the loop starts right away.

---

I did a Mario 64 port of the "underwater" SMB1 theme!

<object width="425" height="350"> <embed src="http://www.youtube.com/v/SW6XEwrqq9M" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>
messiaen
Catgirl
Level: 68


Posts: 209/1085
EXP: 2594047
For next: 134753

Since: 11-20-07


Since last post: 8.1 years
Last activity: 7.2 years

Posted on 08-13-08 09:56:55 PM, in SM64 Music Editing Link
I just noticed that there are sequences before 0x7B3E10, then went back in the ROM and guess what, I found the pointers for the sequences! They are at 0x7B0860.

Also, I took a look at the 0x37 commands in the first rstewart215804 post. They are used in the main level scripts, not only for the press start/title screen but also for the "act select" music and something else I forgot . The song numbers for this command are a bit different, but perhaps it will be clear by looking at this pointer table.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 45 46 47 48 49 50 51 52 53 54
Jul - Posts by messiaen


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

29 database queries, 48 query cache hits.
Query execution time:  0.081335 seconds
Script execution time:  0.029021 seconds
Total render time:  0.110356 seconds


TidyHTML vomit below
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 119 column 11 - Warning: <form> isn't allowed in <table> elements
line 118 column 10 - Info: <table> previously mentioned
line 120 column 11 - Warning: missing <tr>
line 120 column 119 - Warning: missing </font> before </td>
line 124 column 16 - Warning: plain text isn't allowed in <tr> elements
line 120 column 11 - Info: <tr> previously mentioned
line 125 column 68 - Warning: missing </nobr> before </td>
line 141 column 68 - Warning: missing </nobr> before <tr>
line 147 column 35 - Warning: missing <tr>
line 147 column 50 - Warning: missing </font> before </td>
line 147 column 135 - Warning: missing </font> before </table>
line 149 column 35 - Warning: missing <tr>
line 149 column 95 - Warning: unescaped & or unknown entity "&page"
line 149 column 128 - Warning: unescaped & or unknown entity "&page"
line 149 column 161 - Warning: unescaped & or unknown entity "&page"
line 149 column 194 - Warning: unescaped & or unknown entity "&page"
line 149 column 227 - Warning: unescaped & or unknown entity "&page"
line 149 column 260 - Warning: unescaped & or unknown entity "&page"
line 149 column 293 - Warning: unescaped & or unknown entity "&page"
line 149 column 326 - Warning: unescaped & or unknown entity "&page"
line 149 column 359 - Warning: unescaped & or unknown entity "&page"
line 149 column 395 - Warning: unescaped & or unknown entity "&page"
line 149 column 430 - Warning: unescaped & or unknown entity "&page"
line 149 column 465 - Warning: unescaped & or unknown entity "&page"
line 149 column 500 - Warning: unescaped & or unknown entity "&page"
line 149 column 539 - Warning: unescaped & or unknown entity "&page"
line 149 column 574 - Warning: unescaped & or unknown entity "&page"
line 149 column 609 - Warning: unescaped & or unknown entity "&page"
line 149 column 644 - Warning: unescaped & or unknown entity "&page"
line 149 column 679 - Warning: unescaped & or unknown entity "&page"
line 149 column 714 - Warning: unescaped & or unknown entity "&page"
line 149 column 749 - Warning: unescaped & or unknown entity "&page"
line 149 column 784 - Warning: unescaped & or unknown entity "&page"
line 149 column 819 - Warning: unescaped & or unknown entity "&page"
line 149 column 854 - Warning: unescaped & or unknown entity "&page"
line 149 column 50 - Warning: missing </font> before </td>
line 149 column 891 - Warning: missing </font> before </table>
line 156 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 158 column 9 - Warning: missing <tr>
line 176 column 13 - Warning: missing <tr>
line 201 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 203 column 9 - Warning: missing <tr>
line 221 column 13 - Warning: missing <tr>
line 234 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 236 column 9 - Warning: missing <tr>
line 254 column 13 - Warning: missing <tr>
line 288 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 290 column 9 - Warning: missing <tr>
line 308 column 13 - Warning: missing <tr>
line 373 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 375 column 9 - Warning: missing <tr>
line 393 column 13 - Warning: missing <tr>
line 405 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 407 column 9 - Warning: missing <tr>
line 425 column 13 - Warning: missing <tr>
line 438 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 440 column 9 - Warning: missing <tr>
line 458 column 13 - Warning: missing <tr>
line 494 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 496 column 9 - Warning: missing <tr>
line 514 column 13 - Warning: missing <tr>
line 519 column 409 - Warning: unescaped & or unknown entity "&langpair"
line 519 column 426 - Warning: unescaped & or unknown entity "&u"
line 519 column 475 - Warning: unescaped & or unknown entity "&usg"
line 524 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 526 column 9 - Warning: missing <tr>
line 544 column 13 - Warning: missing <tr>
line 552 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 554 column 9 - Warning: missing <tr>
line 572 column 13 - Warning: missing <tr>
line 578 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 580 column 9 - Warning: missing <tr>
line 598 column 13 - Warning: missing <tr>
line 606 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 608 column 9 - Warning: missing <tr>
line 626 column 13 - Warning: missing <tr>
line 635 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 637 column 9 - Warning: missing <tr>
line 655 column 13 - Warning: missing <tr>
line 661 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 663 column 9 - Warning: missing <tr>
line 681 column 13 - Warning: missing <tr>
line 684 column 201 - Warning: unescaped & or unknown entity "&page"
line 730 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 732 column 9 - Warning: missing <tr>
line 750 column 13 - Warning: missing <tr>
line 756 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 758 column 9 - Warning: missing <tr>
line 776 column 13 - Warning: missing <tr>
line 783 column 528 - Warning: unescaped & or unknown entity "&page"
line 785 column 658 - Warning: discarding unexpected <param>
line 785 column 724 - Warning: discarding unexpected </param>
line 788 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 790 column 9 - Warning: missing <tr>
line 808 column 13 - Warning: missing <tr>
line 887 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 889 column 9 - Warning: missing <tr>
line 907 column 13 - Warning: missing <tr>
line 966 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 968 column 9 - Warning: missing <tr>
line 986 column 13 - Warning: missing <tr>
line 1063 column 2560 - Warning: discarding unexpected <param>
line 1063 column 2626 - Warning: discarding unexpected </param>
line 1066 column 9 - Warning: <div> isn't allowed in <table> elements
line 152 column 17 - Info: <table> previously mentioned
line 1068 column 9 - Warning: missing <tr>
line 1086 column 13 - Warning: missing <tr>
line 1094 column 17 - Warning: missing <tr>
line 1094 column 17 - Warning: discarding unexpected <table>
line 1097 column 35 - Warning: missing <tr>
line 1097 column 95 - Warning: unescaped & or unknown entity "&page"
line 1097 column 128 - Warning: unescaped & or unknown entity "&page"
line 1097 column 161 - Warning: unescaped & or unknown entity "&page"
line 1097 column 194 - Warning: unescaped & or unknown entity "&page"
line 1097 column 227 - Warning: unescaped & or unknown entity "&page"
line 1097 column 260 - Warning: unescaped & or unknown entity "&page"
line 1097 column 293 - Warning: unescaped & or unknown entity "&page"
line 1097 column 326 - Warning: unescaped & or unknown entity "&page"
line 1097 column 359 - Warning: unescaped & or unknown entity "&page"
line 1097 column 395 - Warning: unescaped & or unknown entity "&page"
line 1097 column 430 - Warning: unescaped & or unknown entity "&page"
line 1097 column 465 - Warning: unescaped & or unknown entity "&page"
line 1097 column 500 - Warning: unescaped & or unknown entity "&page"
line 1097 column 539 - Warning: unescaped & or unknown entity "&page"
line 1097 column 574 - Warning: unescaped & or unknown entity "&page"
line 1097 column 609 - Warning: unescaped & or unknown entity "&page"
line 1097 column 644 - Warning: unescaped & or unknown entity "&page"
line 1097 column 679 - Warning: unescaped & or unknown entity "&page"
line 1097 column 714 - Warning: unescaped & or unknown entity "&page"
line 1097 column 749 - Warning: unescaped & or unknown entity "&page"
line 1097 column 784 - Warning: unescaped & or unknown entity "&page"
line 1097 column 819 - Warning: unescaped & or unknown entity "&page"
line 1097 column 854 - Warning: unescaped & or unknown entity "&page"
line 1097 column 50 - Warning: missing </font> before </td>
line 1097 column 891 - Warning: missing </font> before </table>
line 1099 column 35 - Warning: missing <tr>
line 1099 column 50 - Warning: missing </font> before </td>
line 1099 column 135 - Warning: missing </font> before </table>
line 1101 column 17 - Warning: discarding unexpected </textarea>
line 1101 column 28 - Warning: discarding unexpected </form>
line 1101 column 35 - Warning: discarding unexpected </embed>
line 1101 column 43 - Warning: discarding unexpected </noembed>
line 1101 column 53 - Warning: discarding unexpected </noscript>
line 1101 column 64 - Warning: discarding unexpected </noembed>
line 1101 column 74 - Warning: discarding unexpected </embed>
line 1101 column 82 - Warning: discarding unexpected </table>
line 1101 column 90 - Warning: discarding unexpected </table>
line 1103 column 9 - Warning: missing </font> before <table>
line 1115 column 25 - Warning: discarding unexpected </font>
line 1124 column 58 - Warning: discarding unexpected </font>
line 1102 column 1 - Warning: missing </center>
line 120 column 63 - Warning: <img> lacks "alt" attribute
line 125 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 125 column 93 - Warning: <img> lacks "alt" attribute
line 141 column 19 - Warning: <td> attribute "width" has invalid value "120px"
line 141 column 98 - Warning: <img> lacks "alt" attribute
line 161 column 22 - Warning: <img> lacks "alt" attribute
line 161 column 63 - Warning: <img> lacks "alt" attribute
line 161 column 111 - Warning: <img> lacks "alt" attribute
line 161 column 161 - Warning: <img> lacks "alt" attribute
line 172 column 15 - Warning: <img> lacks "alt" attribute
line 206 column 22 - Warning: <img> lacks "alt" attribute
line 206 column 63 - Warning: <img> lacks "alt" attribute
line 206 column 111 - Warning: <img> lacks "alt" attribute
line 206 column 161 - Warning: <img> lacks "alt" attribute
line 217 column 15 - Warning: <img> lacks "alt" attribute
line 239 column 22 - Warning: <img> lacks "alt" attribute
line 239 column 63 - Warning: <img> lacks "alt" attribute
line 239 column 111 - Warning: <img> lacks "alt" attribute
line 239 column 161 - Warning: <img> lacks "alt" attribute
line 250 column 15 - Warning: <img> lacks "alt" attribute
line 293 column 22 - Warning: <img> lacks "alt" attribute
line 293 column 63 - Warning: <img> lacks "alt" attribute
line 293 column 111 - Warning: <img> lacks "alt" attribute
line 293 column 161 - Warning: <img> lacks "alt" attribute
line 304 column 15 - Warning: <img> lacks "alt" attribute
line 378 column 22 - Warning: <img> lacks "alt" attribute
line 378 column 63 - Warning: <img> lacks "alt" attribute
line 378 column 111 - Warning: <img> lacks "alt" attribute
line 378 column 161 - Warning: <img> lacks "alt" attribute
line 389 column 15 - Warning: <img> lacks "alt" attribute
line 410 column 22 - Warning: <img> lacks "alt" attribute
line 410 column 63 - Warning: <img> lacks "alt" attribute
line 410 column 111 - Warning: <img> lacks "alt" attribute
line 410 column 161 - Warning: <img> lacks "alt" attribute
line 421 column 15 - Warning: <img> lacks "alt" attribute
line 443 column 22 - Warning: <img> lacks "alt" attribute
line 443 column 63 - Warning: <img> lacks "alt" attribute
line 443 column 111 - Warning: <img> lacks "alt" attribute
line 443 column 161 - Warning: <img> lacks "alt" attribute
line 454 column 15 - Warning: <img> lacks "alt" attribute
line 499 column 22 - Warning: <img> lacks "alt" attribute
line 499 column 63 - Warning: <img> lacks "alt" attribute
line 499 column 111 - Warning: <img> lacks "alt" attribute
line 499 column 161 - Warning: <img> lacks "alt" attribute
line 510 column 15 - Warning: <img> lacks "alt" attribute
line 529 column 22 - Warning: <img> lacks "alt" attribute
line 529 column 63 - Warning: <img> lacks "alt" attribute
line 529 column 111 - Warning: <img> lacks "alt" attribute
line 529 column 161 - Warning: <img> lacks "alt" attribute
line 540 column 15 - Warning: <img> lacks "alt" attribute
line 557 column 22 - Warning: <img> lacks "alt" attribute
line 557 column 63 - Warning: <img> lacks "alt" attribute
line 557 column 111 - Warning: <img> lacks "alt" attribute
line 557 column 161 - Warning: <img> lacks "alt" attribute
line 568 column 15 - Warning: <img> lacks "alt" attribute
line 583 column 22 - Warning: <img> lacks "alt" attribute
line 583 column 63 - Warning: <img> lacks "alt" attribute
line 583 column 111 - Warning: <img> lacks "alt" attribute
line 583 column 161 - Warning: <img> lacks "alt" attribute
line 594 column 15 - Warning: <img> lacks "alt" attribute
line 611 column 22 - Warning: <img> lacks "alt" attribute
line 611 column 63 - Warning: <img> lacks "alt" attribute
line 611 column 111 - Warning: <img> lacks "alt" attribute
line 611 column 161 - Warning: <img> lacks "alt" attribute
line 622 column 15 - Warning: <img> lacks "alt" attribute
line 640 column 22 - Warning: <img> lacks "alt" attribute
line 640 column 63 - Warning: <img> lacks "alt" attribute
line 640 column 111 - Warning: <img> lacks "alt" attribute
line 640 column 161 - Warning: <img> lacks "alt" attribute
line 651 column 15 - Warning: <img> lacks "alt" attribute
line 666 column 22 - Warning: <img> lacks "alt" attribute
line 666 column 63 - Warning: <img> lacks "alt" attribute
line 666 column 111 - Warning: <img> lacks "alt" attribute
line 666 column 161 - Warning: <img> lacks "alt" attribute
line 677 column 15 - Warning: <img> lacks "alt" attribute
line 735 column 22 - Warning: <img> lacks "alt" attribute
line 735 column 63 - Warning: <img> lacks "alt" attribute
line 735 column 111 - Warning: <img> lacks "alt" attribute
line 735 column 161 - Warning: <img> lacks "alt" attribute
line 746 column 15 - Warning: <img> lacks "alt" attribute
line 761 column 22 - Warning: <img> lacks "alt" attribute
line 761 column 63 - Warning: <img> lacks "alt" attribute
line 761 column 111 - Warning: <img> lacks "alt" attribute
line 761 column 161 - Warning: <img> lacks "alt" attribute
line 772 column 15 - Warning: <img> lacks "alt" attribute
line 793 column 22 - Warning: <img> lacks "alt" attribute
line 793 column 63 - Warning: <img> lacks "alt" attribute
line 793 column 111 - Warning: <img> lacks "alt" attribute
line 793 column 161 - Warning: <img> lacks "alt" attribute
line 804 column 15 - Warning: <img> lacks "alt" attribute
line 892 column 22 - Warning: <img> lacks "alt" attribute
line 892 column 63 - Warning: <img> lacks "alt" attribute
line 892 column 111 - Warning: <img> lacks "alt" attribute
line 892 column 161 - Warning: <img> lacks "alt" attribute
line 903 column 15 - Warning: <img> lacks "alt" attribute
line 971 column 22 - Warning: <img> lacks "alt" attribute
line 971 column 63 - Warning: <img> lacks "alt" attribute
line 971 column 111 - Warning: <img> lacks "alt" attribute
line 971 column 161 - Warning: <img> lacks "alt" attribute
line 982 column 15 - Warning: <img> lacks "alt" attribute
line 1071 column 22 - Warning: <img> lacks "alt" attribute
line 1071 column 63 - Warning: <img> lacks "alt" attribute
line 1071 column 111 - Warning: <img> lacks "alt" attribute
line 1071 column 161 - Warning: <img> lacks "alt" attribute
line 1082 column 15 - Warning: <img> lacks "alt" attribute
line 1091 column 478 - Warning: <img> proprietary attribute value "absmiddle"
line 1091 column 478 - Warning: <img> lacks "alt" attribute
line 1109 column 25 - Warning: <img> lacks "alt" attribute
line 1114 column 267 - Warning: <img> lacks "alt" attribute
line 147 column 135 - Warning: trimming empty <font>
line 149 column 891 - Warning: trimming empty <font>
line 1094 column 17 - Warning: trimming empty <tr>
line 1097 column 891 - Warning: trimming empty <font>
line 1099 column 135 - Warning: trimming empty <font>
line 125 column 68 - Warning: <nobr> is not approved by W3C
line 141 column 68 - Warning: <nobr> is not approved by W3C
line 177 column 27 - Warning: <nobr> is not approved by W3C
line 222 column 27 - Warning: <nobr> is not approved by W3C
line 255 column 27 - Warning: <nobr> is not approved by W3C
line 309 column 27 - Warning: <nobr> is not approved by W3C
line 394 column 27 - Warning: <nobr> is not approved by W3C
line 426 column 27 - Warning: <nobr> is not approved by W3C
line 459 column 27 - Warning: <nobr> is not approved by W3C
line 515 column 27 - Warning: <nobr> is not approved by W3C
line 545 column 27 - Warning: <nobr> is not approved by W3C
line 573 column 27 - Warning: <nobr> is not approved by W3C
line 599 column 27 - Warning: <nobr> is not approved by W3C
line 627 column 27 - Warning: <nobr> is not approved by W3C
line 656 column 27 - Warning: <nobr> is not approved by W3C
line 682 column 27 - Warning: <nobr> is not approved by W3C
line 751 column 27 - Warning: <nobr> is not approved by W3C
line 777 column 27 - Warning: <nobr> is not approved by W3C
line 809 column 27 - Warning: <nobr> is not approved by W3C
line 908 column 27 - Warning: <nobr> is not approved by W3C
line 987 column 27 - Warning: <nobr> is not approved by W3C
line 1087 column 27 - Warning: <nobr> is not approved by W3C
Info: Document content looks like HTML5
Info: No system identifier in emitted doctype
Tidy found 285 warnings and 0 errors!


The alt attribute should be used to give a short description
of an image; longer descriptions should be given with the
longdesc attribute which takes a URL linked to the description.
These measures are needed for people using non-graphical browsers.

For further advice on how to make your pages accessible
see http://www.w3.org/WAI/GL.
You are recommended to use CSS to specify the font and
properties such as its size and color. This will reduce
the size of HTML files and make them easier to maintain
compared with using <FONT> elements.

You are recommended to use CSS to control line wrapping.
Use "white-space: nowrap" to inhibit wrapping in place
of inserting <NOBR>...</NOBR> into the markup.

About HTML Tidy: https://github.com/htacg/tidy-html5
Bug reports and comments: https://github.com/htacg/tidy-html5/issues
Official mailing list: https://lists.w3.org/Archives/Public/public-htacg/
Latest HTML specification: http://dev.w3.org/html5/spec-author-view/
Validate your HTML documents: http://validator.w3.org/nu/
Lobby your company to join the W3C: http://www.w3.org/Consortium

Do you speak a language other than English, or a different variant of
English? Consider helping us to localize HTML Tidy. For details please see
https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md