mirror of
https://github.com/notwa/mm
synced 2024-11-04 22:49:03 -08:00
update readme
This commit is contained in:
parent
d0ccf16dff
commit
6cda92f07b
2 changed files with 174 additions and 165 deletions
228
Lua/README.md
228
Lua/README.md
|
@ -12,11 +12,6 @@ Note that some scripts lack full support for Ocarina of Time.
|
|||
|
||||
## Scripts
|
||||
|
||||
#### actor lister.lua
|
||||
Lists actor data onscreen,
|
||||
and focuses the camera on them.
|
||||
Actors may be selected using the D-Pad.
|
||||
|
||||
#### cheat menu.lua
|
||||
Provides an onscreen UI for many features.
|
||||
Has four different input methods;
|
||||
|
@ -26,7 +21,59 @@ Generally, it's opened with L and navigated with the D-Pad.
|
|||
#### count flags.lua
|
||||
Simply counts the number of scene flags globally set.
|
||||
|
||||
#### exit calculator.lua
|
||||
#### inject.lua
|
||||
Assembles and injects code into the game.
|
||||
|
||||
#### m64p entry.lua
|
||||
Ignore this for now.
|
||||
This is a rough interfacing script for passing to mupen64plus,
|
||||
and serves no purpose on Bizhawk.
|
||||
|
||||
#### setup hundred.lua
|
||||
Instantly gives you all the items in the game, etc.
|
||||
|
||||
Does not set scene/event flags,
|
||||
except the one required for the Great Spin Attack.
|
||||
|
||||
#### setup race file.lua
|
||||
Sets up a race file.
|
||||
|
||||
A race file is a save in which the first cycle has been completed,
|
||||
the Deku Mask has been acquired,
|
||||
and some other details.
|
||||
|
||||
#### test chests.lua
|
||||
TODO
|
||||
|
||||
#### test movement.lua
|
||||
Tests the fastest form of basic movement in Majora's Mask.
|
||||
Run it in the Clock Town Great Fairy's Fountain.
|
||||
|
||||
### Monitors
|
||||
|
||||
#### monitor actors.lua
|
||||
Lists actor data onscreen,
|
||||
and focuses the camera on them.
|
||||
Actors may be selected using the D-Pad.
|
||||
|
||||
#### monitor debug memory editor.lua
|
||||
(Ocarina of Time) Used for determining which values
|
||||
listed by the in-game debug memory editor are constant.
|
||||
|
||||
#### monitor debug text.lua
|
||||
TODO
|
||||
|
||||
#### monitor epona.lua
|
||||
used to investigate [this glitch with unloading Epona.][eponaglitch]
|
||||
|
||||
[eponaglitch]: https://www.youtube.com/watch?v=kX0ZcIS8P84
|
||||
|
||||
#### monitor event flags.lua
|
||||
Monitors event flags,
|
||||
and announces which bits are being changed,
|
||||
and if they have ever been seen changing before.
|
||||
|
||||
#### monitor exits.lua
|
||||
Dumps information on the current exit value;
|
||||
scene name, entrance, entrance with unused offset;
|
||||
using human-readable English names.
|
||||
|
@ -36,175 +83,26 @@ which produces [a large csv file.][csv]
|
|||
|
||||
[csv]: https://eaguru.guru/t/_exits.csv
|
||||
|
||||
#### movement tests.lua
|
||||
Tests the fastest form of basic movement in Majora's Mask.
|
||||
Run it in the Clock Town Great Fairy's Fountain.
|
||||
|
||||
#### inject.lua
|
||||
Assembles and injects an assembly subroutine into the game.
|
||||
|
||||
#### oneshot.lua
|
||||
Instantly gives you all the items in the game, etc.
|
||||
|
||||
Does not set scene/event flags,
|
||||
except the one required for the Great Spin Attack.
|
||||
|
||||
#### race.lua
|
||||
Sets up a race file.
|
||||
|
||||
A race file is a save in which the first cycle has been completed,
|
||||
the Deku Mask has been acquired,
|
||||
and some other details.
|
||||
|
||||
#### room debug.lua
|
||||
Parses and dumps the currently loaded room headers.
|
||||
|
||||
#### m64p entry.lua
|
||||
Ignore this for now.
|
||||
This is a rough interfacing script for passing to mupen64plus,
|
||||
and serves no purpose on Bizhawk.
|
||||
|
||||
### Monitors
|
||||
|
||||
These scripts look for changes in RAM regions and print them in detail.
|
||||
|
||||
These are mostly used for documenation.
|
||||
|
||||
#### epona monitor.lua
|
||||
used to investigate [this glitch with unloading Epona.][eponaglitch]
|
||||
|
||||
[eponaglitch]: https://www.youtube.com/watch?v=kX0ZcIS8P84
|
||||
|
||||
#### event flag monitor.lua
|
||||
Monitors event flags,
|
||||
and announces which bits are being changed,
|
||||
and if they have ever been seen changing before.
|
||||
|
||||
#### scene flag monitor.lua
|
||||
Monitors the current scene's flags,
|
||||
and announces which bits are being changed,
|
||||
and if they have ever been seen changing before.
|
||||
|
||||
#### misc monitor.lua
|
||||
#### monitor misc.lua
|
||||
Monitors unknown regions of memory.
|
||||
Currently, this region is a chunk of save data, ignoring known addresses.
|
||||
|
||||
#### oot memory editor monitor.lua
|
||||
(Ocarina of Time) Used for determining which values
|
||||
listed by the in-game debug memory editor are constant.
|
||||
#### monitor rooms.lua
|
||||
Parses and dumps the currently loaded room headers.
|
||||
|
||||
#### monitor scene flags.lua
|
||||
Monitors the current scene's flags,
|
||||
and announces which bits are being changed,
|
||||
and if they have ever been seen changing before.
|
||||
|
||||
#### watch animations.lua
|
||||
Monitors Link's used animations.
|
||||
|
||||
## Libraries
|
||||
|
||||
Or rather, scripts that have no functionality on their own.
|
||||
See [the README in the lib directory][libs] for information.
|
||||
|
||||
#### depend.lua
|
||||
Meant to override Lua's native `require` function,
|
||||
to force reloading of the given script.
|
||||
|
||||
This is useless outside of development.
|
||||
In fact, this could cause bugs in code that depends on
|
||||
`require` yielding the same tables twice.
|
||||
|
||||
#### boilerplate.lua
|
||||
Provides common functions used in the majority of scripts.
|
||||
This should generally be imported before any other scripts, besides depend.lua.
|
||||
|
||||
#### addrs/init.lua
|
||||
Using boilerplate.lua's functions,
|
||||
this provides the bulk of the interface to the games.
|
||||
|
||||
Note that this particular initialization script populates the global namespace
|
||||
with `version`, `oot`, `mm`, and most importantly `addrs`.
|
||||
|
||||
#### addrs/basics.lua
|
||||
Returns a table of tables of offsetable common addresses
|
||||
between every known version of OoT and MM.
|
||||
|
||||
**table keys:**
|
||||
|
||||
* **link:** the bulk of the player's state in the game;
|
||||
not to be confused with Link's actor.
|
||||
most of this is saved to SRAM.
|
||||
|
||||
* **global:** global context.
|
||||
this is passed as an argument to many functions in the game's code
|
||||
and contains a wealth of miscellaneous game state information.
|
||||
this is actually allocated on heap, but its address never changes
|
||||
— except on the file select screen?
|
||||
|
||||
* **actor:** Link's actor.
|
||||
this includes position, rotation, animation status, etc.
|
||||
Link's actor is the only actor that
|
||||
has the same address consistently,
|
||||
as it's always the first one loaded.
|
||||
|
||||
#### addrs/versions.lua
|
||||
Returns a dictionary of md5 and sha1 hashes
|
||||
of every known version of OoT and MM.
|
||||
|
||||
The format of version strings is
|
||||
`(O|M) (US|JP|EU)(1[0-9]|GC|DE|DB)( MQ)?`,
|
||||
where:
|
||||
* O: Ocarina of Time
|
||||
* M: Majora's Mask
|
||||
* US: American NTSC (United States)
|
||||
* JP: Japanese NTSC
|
||||
* EU: European PAL
|
||||
* [two digits]: version number of a release build for the N64
|
||||
* GC: Gamecube
|
||||
* DE: Demo (includes Debug features)
|
||||
* DE: Debug
|
||||
* MQ: Master Quest
|
||||
|
||||
#### pt.lua
|
||||
Dumps Lua tables as pseudo-yaml,
|
||||
complete with references to prevent recursion.
|
||||
Invaluable for debugging.
|
||||
[Its repository is on gist][pt] — look there for basic usage.
|
||||
|
||||
[pt]: https://gist.github.com/notwa/13fbddf05f654ba48321
|
||||
|
||||
#### extra.lua
|
||||
Implements the `opairs` iterator function
|
||||
and its helper functions,
|
||||
providing iteration by sorted keys in alphabetical order.
|
||||
|
||||
#### serialize.lua
|
||||
Serializes (saves, dumps) Lua tables for later deserialization (loading).
|
||||
|
||||
unlike `pt`, this dumps as Lua and cannot handle complicated (recursive) tables.
|
||||
|
||||
#### messages.lua
|
||||
Provides functions for printing onscreen,
|
||||
such as printing for a given number of game frames.
|
||||
|
||||
Also provides deferred printing,
|
||||
to print to console all at once at the end of a frame,
|
||||
which works around printing being otherwise slow on Bizhawk.
|
||||
|
||||
#### flag manager.lua
|
||||
Provides basic functions for poking at event flags and scene flags.
|
||||
|
||||
#### classes.lua
|
||||
For lazy people.
|
||||
Populate the global namespace with all available classes,
|
||||
excluding menu/interface classes.
|
||||
|
||||
#### menu classes.lua
|
||||
Provides various classes for implementing onscreen menus.
|
||||
|
||||
#### menu input handlers.lua
|
||||
Provides classes for interfacing user inputs with menus.
|
||||
|
||||
#### menus/\*
|
||||
Contains various submenus for `cheat menu.lua`.
|
||||
|
||||
#### classes/\*
|
||||
Contains various classes.
|
||||
Note that the base `Class` function is defined in `boilerplate.lua`.
|
||||
[libs]: /Lua/lib/README.md
|
||||
|
||||
## Data
|
||||
|
||||
|
|
111
Lua/lib/README.md
Normal file
111
Lua/lib/README.md
Normal file
|
@ -0,0 +1,111 @@
|
|||
## Libraries
|
||||
|
||||
#### actors.lua
|
||||
TODO
|
||||
|
||||
#### classes.lua
|
||||
For lazy people.
|
||||
Populate the global namespace with all available classes,
|
||||
excluding menu/interface classes.
|
||||
|
||||
#### extra.lua
|
||||
Implements the `opairs` iterator function
|
||||
and its helper functions,
|
||||
providing iteration by sorted keys in alphabetical order.
|
||||
|
||||
#### flag manager.lua
|
||||
Provides basic functions for poking at event flags and scene flags.
|
||||
|
||||
#### boilerplate.lua
|
||||
Provides common functions used in the majority of scripts.
|
||||
This should generally be imported before any other scripts, besides depend.lua.
|
||||
|
||||
#### lips.lua
|
||||
TODO
|
||||
|
||||
#### menu classes.lua
|
||||
Provides various classes for implementing onscreen menus.
|
||||
|
||||
#### menu input handlers.lua
|
||||
Provides classes for interfacing user inputs with menus.
|
||||
|
||||
#### messages.lua
|
||||
Provides functions for printing onscreen,
|
||||
such as printing for a given number of game frames.
|
||||
|
||||
#### pt.lua
|
||||
Dumps Lua tables as pseudo-yaml,
|
||||
complete with references to prevent recursion.
|
||||
Invaluable for debugging.
|
||||
[Its repository is on gist][pt] — look there for basic usage.
|
||||
|
||||
#### serialize.lua
|
||||
Serializes (saves, dumps) Lua tables for later deserialization (loading).
|
||||
|
||||
unlike `pt`, this dumps as Lua and cannot handle complicated (recursive) tables.
|
||||
|
||||
Also provides deferred printing,
|
||||
to print to console all at once at the end of a frame,
|
||||
which works around printing being otherwise slow on Bizhawk.
|
||||
|
||||
[pt]: https://gist.github.com/notwa/13fbddf05f654ba48321
|
||||
|
||||
#### setup.lua
|
||||
TODO
|
||||
|
||||
### addrs
|
||||
|
||||
#### addrs/init.lua
|
||||
Using boilerplate.lua's functions,
|
||||
this provides the bulk of the interface to the games.
|
||||
|
||||
Note that this particular initialization script populates the global namespace
|
||||
with `version`, `oot`, `mm`, and most importantly `addrs`.
|
||||
|
||||
#### addrs/basics.lua
|
||||
Returns a table of tables of offsetable common addresses
|
||||
between every known version of OoT and MM.
|
||||
|
||||
**table keys:**
|
||||
|
||||
* **link:** the bulk of the player's state in the game;
|
||||
not to be confused with Link's actor.
|
||||
most of this is saved to SRAM.
|
||||
|
||||
* **global:** global context.
|
||||
this is passed as an argument to many functions in the game's code
|
||||
and contains a wealth of miscellaneous game state information.
|
||||
this is actually allocated on heap, but its address never changes
|
||||
— except on the file select screen?
|
||||
|
||||
* **actor:** Link's actor.
|
||||
this includes position, rotation, animation status, etc.
|
||||
Link's actor is the only actor that
|
||||
has the same address consistently,
|
||||
as it's always the first one loaded.
|
||||
|
||||
#### addrs/versions.lua
|
||||
Returns a dictionary of md5 and sha1 hashes
|
||||
of every known version of OoT and MM.
|
||||
|
||||
The format of version strings is
|
||||
`(O|M) (US|JP|EU)(1[0-9]|GC|DE|DB)( MQ)?`,
|
||||
where:
|
||||
* O: Ocarina of Time
|
||||
* M: Majora's Mask
|
||||
* US: American NTSC (United States)
|
||||
* JP: Japanese NTSC
|
||||
* EU: European PAL
|
||||
* [two digits]: version number of a release build for the N64
|
||||
* GC: Gamecube
|
||||
* DE: Demo (includes Debug features)
|
||||
* DE: Debug
|
||||
* MQ: Master Quest
|
||||
|
||||
## menus/\*
|
||||
Contains various submenus for `cheat menu.lua`.
|
||||
|
||||
## classes/\*
|
||||
Contains various classes.
|
||||
Note that the base `Class` function is defined in `boilerplate.lua`.
|
||||
|
Loading…
Reference in a new issue