Register - Login
Views: 87374300
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
11-20-17 12:22:53 PM

Jul - SM64 Hacking - RAM tools thread New poll - New thread - New reply
Next newer thread | Next older thread
shyguyhex

Level: 14


Posts: 10/45
EXP: 11361
For next: 1710

Since: 01-03-14


Since last post: 2.0 years
Last activity: 1.0 years

Posted on 07-12-14 03:15:16 AM (last edited by shyguyhex at 07-20-14 12:41:24 AM) Link | Quote
I didn't see a thread for ram editing resources on here so I thought I'd start one.
If you have any Cheat Engine tables, tools that you made, emulator dll's, etc, I guess this would be a good place to post them.

Here's a command line tool I just started writing: (Image album)

Download SG64 7.19a (I'll probably be updating this link very often)
Some more ram stuff // c header for editing emulator memory, a cheat engine table for nemu



SG64 7.19a
Usage guide 7/19/2014
__________________________________________________
-------- Commands & Keys -------------------------

'objects' command:
Starts the objects browser
[left] Next object
[right] Previous object
[up] Next object (0x10)
[down] Previous object (0x10)
[ctrl+C] Exit

[E] Edit object
Input: 3 char hex offsets and 32bit values
Example: >014 800F0860
Type x x to exit
[I] Inject data/injo file to object // not added yet
File format: plain text 3 char hex offsets and 32bit values
[B] View behavior script
[B] Exit
[E] Export // not added yet
[I] Import // not added yet
[R] Locate in rom // not added yet
[N] Name pointer // not added yet
[M] Copy model pointer(0x14) and case (0xF0) to Mario's object
[N] Copy animation pointer to Mario's object
[P] Move Mario to object

'inj' command:
Starts 32bit hex injector
Input: 8 char hex address and 32bit value
Example: >8033B21C 06640880
Type x x to exit

'injf' command:
Injects file from data/injf/
Example: >injf grounds/top
File format example:

8033B1AC 43474DC3
8033B1B0 45466000
8033B1B4 C5AA4F45

'injf_raw' command: // not added yet
Injects file from data/injfraw/ as raw binary
Example: >injfraw test.bin 80400000

'mwarp' command:
Saves 'injf' file with Mario's coordinates to data/injf

'segments' command:
Prints 8033B400 ram segments table

'seg' command: // not added yet
Converts segmented address to address and prints
Example: >seg 0400CC98

'collision' command:
Prints info on current collision
(Press any key to exit)
// some editing functionality will be added eventually

'script' command: // not added yet
Inject sg64 script

'ls' command: // not added yet
Recursively list data/ files
Example: >ls path/path/

'clear' command:
Clear the console

________________________________________________
-------- Default Files -------------------------

sg64.exe
guide.txt
data/
config/
asm_instructions
asm_regnames
help
rompath

behaviors/
bobomb

injf/
bob/
warp_island
warp_top
ccm/
warp_penguin
warp_start
grounds/
warp_doors
warp_top
die
heal
reset

injo/
mario

script/
example

tables/
behaviors
collisions
emulators

________________________________________________
------------------------------------------------





SG64 7.19a
Changelog 7/19/14
________________________________________
----------------------------------------

7.14a:
- emulator support is now loaded from 'data/emulators' file
- added injf command - loads file from data/injf and injects (check guide.txt for format)
- added mwarp command - creates injf file for moving mario around a level

7.19a
- added changelog.txt and guide.txt
- reorganized the files a bit
- made console printing less 'flickery' looking
- patched up mem leaks
- added 'collision' command
- removed useless info from the object browser


CaptainSwag101
Newcomer
Level: 5


Posts: 1/6
EXP: 504
For next: 25

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

Since last post: 2.0 years
Last activity: 5 days

Posted on 08-29-14 02:56:16 PM Link | Quote
Does this program work with Project64 2.1? If so, can you call it silently from another program, for example, a Windows Forms program? I'm trying to make a modern version of Mario 64 Movie Maker that works with new versions of Windows and Project64, and this could be a good way to call the "camera freeze" and "camera unfreeze" events, etc.
shyguyhex

Level: 14


Posts: 29/45
EXP: 11361
For next: 1710

Since: 01-03-14


Since last post: 2.0 years
Last activity: 1.0 years

Posted on 09-08-14 12:21:43 AM Link | Quote
Originally posted by CaptainSwag101
Does this program work with Project64 2.1? If so, can you call it silently from another program, for example, a Windows Forms program? I'm trying to make a modern version of Mario 64 Movie Maker that works with new versions of Windows and Project64, and this could be a good way to call the "camera freeze" and "camera unfreeze" events, etc.


I made a heavily improved version of the injector here http://jul.rustedlogic.net/thread.php?pid=435712#435712

It works with pj64; your frontend would just need to provide a script path, process id, and virtual console memory base address. Unfortunately, virtual console memory is allocated dynamically in pj64. If determining vcm base address of pj64 with your frontend isn't an option (I haven't figured out how to do it myself btw), it might be better to use this app with nemu (10020000) or 1964 (20000000), because both statically allocate their vcm.
Next newer thread | Next older thread
Jul - SM64 Hacking - RAM tools thread New poll - New thread - New reply




Rusted Logic

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

26 database queries.
Query execution time: 0.176365 seconds
Script execution time: 0.006373 seconds
Total render time: 0.182738 seconds