Register - Login
Views: 85741465
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
09-25-17 12:32:25 PM

Jul - SM64 Hacking - Exploring Camera Data New poll - New thread - New reply
Pages: 1 2Next newer thread | Next older thread
CaptainSwag101
Newcomer
Level: 5


Posts: 4/6
EXP: 492
For next: 37

Since: 08-29-14
From: California, United States of America

Since last post: 2.0 years
Last activity: 2.0 years

Posted on 02-02-15 06:54:12 PM (last edited by CaptainSwag101 at 02-02-15 07:11:58 PM) Link | Quote
I've found some more interesting info! At the address of 0x8033C848, the first byte can be changed to switch the camera between several preset locations. For example, a value of 00 is the default for most areas, and changing it to 20 will switch to first-person (like pressing C-Up, which always increases the value of this byte by 20 hex).

Also, more interestingly, if the byte is changed to 80, the camera will switch to the behavior it uses when the game is paused. In most levels, this means the camera zooms way out while still following Mario, to give a good look at the whole level. However, inside the castle and other, more enclosed levels, the camera simply freezes in its current position, while still allowing Mario to move around. This value usually reverts from 80 to 00 upon changing levels or areas, unless the value is brute-forced (repeatedly set to 80 very quickly, such as by another program) while changing from a castle-type level to a regular level, the camera will use the "castle" behavior when the game is paused. This is how Mario 64 Movie Maker would freeze the camera.

However, even more interesting is if C-Up is pressed while the camera is in this "paused" state, the value at 0x8033C848 changes to A0, which is the same increase as when C-Up is pressed normally, and the player will enter first-person while the camera is still "paused", allowing Mario to look around in first person while the camera is still in 3rd person.

Additionally, the next 3 bytes of data also seem to do stuff, but I can't seem to figure out what, so if anybody could help me out there, I'd be grateful.

Finally (I know, this post has been really long already), using this information, I have been able to create Mario 64 Movie Maker 2.0! It is compatible with Windows Vista, 7, and 8/8.1, and it also works with both Project64 v1.6 and v2.1. It works way better than the GameShark camera freeze code, and I hope to add support for lots of different emulators. If you want to check out the source code or download the releases, it's available on GitHub: https://github.com/jpmac26/M64MM2/

Anyway, sorry if this is a shameless plug, I just wanted to get the word out about this.
Kaze
Member
Level: 17


Posts: 49/63
EXP: 21190
For next: 3553

Since: 10-25-12


Since last post: 1.0 years
Last activity: 364 days

Posted on 02-02-15 08:12:35 PM Link | Quote
im unsure how much effort you want to put into your moviemaker, but you might want to look at my cutscene engine:
Link

by applying all these codes on a SM64 rom suitable for the importer, you have pretty much perfect cameratours.
there are some rewrites in this, which disable the camera movement from the original game (everything that is not at 120xxxxx) you could create a cutscene somewhere in rom with any tool and call it through mario's behavior on L press - that way the SM64 movies would have nonstatic cameras. (also, this engine allows for some other stuff as you might notice)
CaptainSwag101
Newcomer
Level: 5


Posts: 5/6
EXP: 492
For next: 37

Since: 08-29-14
From: California, United States of America

Since last post: 2.0 years
Last activity: 2.0 years

Posted on 02-03-15 03:22:44 PM Link | Quote
Hmm, that looks pretty cool, and would probably be very useful for Mario 64 Machinimas. However, the main function of my program is actually its simplicity; you don't need to know how to patch a ROM or anything to use the program. Also, I aim to make my program work on various hacks of SM64 as well as clean ROMs. Would the cutscene patching patching process be feasible on in-depth hacks such as SM64 Star Road, etc?

Additionally, I'd be interested in seeing if there is a way to automate/streamline the process for ease of use because then--with your permission, of course--I'd like to see if the automated process can be integrated somehow into my program, so it can be a great new feature for SM64 Machinimists to use. Again, it would be only with your permission.
Kaze
Member
Level: 17


Posts: 51/63
EXP: 21190
For next: 3553

Since: 10-25-12


Since last post: 1.0 years
Last activity: 364 days

Posted on 02-03-15 03:32:16 PM (last edited by Kaze at 02-03-15 03:33:11 PM) Link | Quote
Originally posted by CaptainSwag101
Hmm, that looks pretty cool, and would probably be very useful for Mario 64 Machinimas. However, the main function of my program is actually its simplicity; you don't need to know how to patch a ROM or anything to use the program. Also, I aim to make my program work on various hacks of SM64 as well as clean ROMs. Would the cutscene patching patching process be feasible on in-depth hacks such as SM64 Star Road, etc?

Additionally, I'd be interested in seeing if there is a way to automate/streamline the process for ease of use because then--with your permission, of course--I'd like to see if the automated process can be integrated somehow into my program, so it can be a great new feature for SM64 Machinimists to use. Again, it would be only with your permission.


you could probably make a patchfile and copy the whole code and have it patched in a few seconds without user input.
the code will work with any hack ive ever looked into, it uses an unused area frauber DMAed into ram since forever, but never actually used. i cant imagine any romhack using it so far.

edit: actually, it won't work with "kaze's warmup" and "peach's christmas invitation", the 2 hacks i made, since ive used that area for other stuff.
CaptainSwag101
Newcomer
Level: 5


Posts: 6/6
EXP: 492
For next: 37

Since: 08-29-14
From: California, United States of America

Since last post: 2.0 years
Last activity: 2.0 years

Posted on 02-04-15 11:26:06 AM (last edited by CaptainSwag101 at 02-04-15 03:34:09 PM) Link | Quote
Cool, now if only I understood how to do that... yeah, I'm not good at understanding assembly, I'd probably need to find someone to do that stuff for me.

Also, I noticed that somebody listed the function that allows the camera to be controlled by Player 2's controller during the credits. Is there a way to enable/disable this function in places other than the credits, like during normal gameplay? If so, does anybody have an idea as to how that could be accomplished?

Anyway, thanks for the info!
Pages: 1 2Next newer thread | Next older thread
Jul - SM64 Hacking - Exploring Camera Data New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

27 database queries, 3 query cache hits.
Query execution time: 0.141820 seconds
Script execution time: 0.006438 seconds
Total render time: 0.148258 seconds