This is an old revision of the document!


Console compatibility with SM64 ROM hacks

TBA

Issues

Misaligned decompressed MIO0 blocks

TBA

Improper use of Fast3D's SetCombine (0xFC) command

TBA

Warping triangles

Some versions of the SM64 Editor, like v1.9.3S, will have warping polygons when the player is moving around the level. This issue was caused by skelux setting the camera frustum's far value to be a negative number (0x9696 = -26,986) in the Geometry Layout Command 0xA (Set Camera Frustum).

How to fix it?

This issue can be fixed by changing the camera's far value back to being a positive number. The largest possible positive number is 0x7FFF (‭32767‬).

RCVI Hack

TBA

Trying to write to the framebuffer area of memory (8038F800-803FFFFF)

Older versions of the SM64 Editor moved the music pointer to address 0x803E0000. The problem with using that address is that the region from 0x8038F800 to 0x803FFFFF is constantly being overwritten with the game's framebuffer, so any data that gets stored within that region will be erased immediately. Some graphic plugins for Project64, like jabo's, have the option of writing the framebuffer to memory turned off by default, which is probably why this was not caught earlier.

How to fix it?

Later versions of the SM64 Editor will put the music memory pool in extended memory, which is safe to use. Please do not use this area in memory if you want your hack to be compatible.

The Project64 problem

Project64 is a popular, and performance friendly, Nintendo 64 emulator that was initially created back in 2001. While it is highly compatible with most of the N64 library when it comes to casual players, it is not cycle accurate and depends on plugins for graphics and audio. This fact makes it easy for us, as ROM hackers using the emulator, to unknowingly create the issues seen above.

See Also

References