Skip to content

Commit

Permalink
Add OOT JP/US 0.9 support
Browse files Browse the repository at this point in the history
  • Loading branch information
Random06457 committed Jan 27, 2021
1 parent 21c0e14 commit 78218f5
Show file tree
Hide file tree
Showing 15 changed files with 12 additions and 156 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ The overlays the loader will seek for are the following:

| Version | Build ID | Supported |
|----------|:-------------:|:------:|
| JP/US 0.9 | zelda@srd44 98-10-18 23:05:00 | Yes |
| JP/US 1.0 | zelda@srd44 98-10-21 04:56:31 | Yes |
| JP/US 1.1 | zelda@srd44 98-10-26 10:58:45 | Yes |
| Europe 1.0 | zelda@srd44 98-11-10 14:34:22 | Yes |
Expand Down
3 changes: 2 additions & 1 deletion ghidra_scripts/F3DZEX.java
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,8 @@ else if (clearBits == 0xFFFFFF)
return String.format("gsSPPopMatrixN(G_MTX_MODELVIEW, %s)",
w1 == -1 ? "?" : Long.toString(sftr(w1, 0, 32) / 64));
case G_QUAD:
return String.format("gsSPQuadrangle(%d, %d, %d, %s, 0)", sftr(w0, 16, 8), sftr(w0, 8, 8), sftr(w0, 0, 8),
// TODO: fix this
return String.format("gsSP1Quadrangle(%d, %d, %d, %s, 0)", sftr(w0, 16, 8), sftr(w0, 8, 8), sftr(w0, 0, 8),
sftrStr(w1, 0, 8));
case G_RDPFULLSYNC:
return "gsDPFullSync()";
Expand Down
3 changes: 0 additions & 3 deletions lib/README.txt

This file was deleted.

3 changes: 0 additions & 3 deletions os/linux64/README.txt

This file was deleted.

3 changes: 0 additions & 3 deletions os/osx64/README.txt

This file was deleted.

3 changes: 0 additions & 3 deletions os/win64/README.txt

This file was deleted.

57 changes: 0 additions & 57 deletions src/main/help/help/TOC_Source.xml

This file was deleted.

58 changes: 0 additions & 58 deletions src/main/help/help/shared/Frontpage.css

This file was deleted.

23 changes: 0 additions & 23 deletions src/main/help/help/topics/mm64/help.html

This file was deleted.

3 changes: 3 additions & 0 deletions src/main/java/zelda64/Zelda64CodeInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ public Zelda64CodeInfo(long bootData, long bootRodata, long codeText, long codeD
0x80134d30, 0xa94000, 0x801162a0, 0x8011f830, 0x801159b0, 0x8012d1a0, 0x801200f8, -1));
put(Zelda64Version.OotEuropeGCDbg, new Zelda64CodeInfo(0x80009410, 0x8000afc0, 0x8001ce60, 0x80115440,
0x80134d50, 0xa94000, 0x801162c0, 0x8011f850, 0x801159d0, 0x8012d1c0, 0x80120118, -1));
put(Zelda64Version.OotJPUS09, new Zelda64CodeInfo(0x80006230, 0x80006550, 0x800110a0, 0x800e74c0,
0x80105b50, 0xa87000, 0x800e8320, 0x800f1130, 0x800e7a30, 0x800fe270, 0x800f19e8, -1));
put(Zelda64Version.OotJPUS10, new Zelda64CodeInfo(0x80006230, 0x80006550, 0x800110a0, 0x800e76b0,
0x80105d60, 0xa87000, 0x800e8530, 0x800f1340, 0x800e7c40, 0x800fe480, 0x800f1bf8, -1));
put(Zelda64Version.OotJPUS11, new Zelda64CodeInfo(0x80006230, 0x80006550, 0x800110a0, 0x800e7870,
Expand All @@ -66,6 +68,7 @@ public Zelda64CodeInfo(long bootData, long bootRodata, long codeText, long codeD
put(Zelda64Version.OotUSAGCMq, new Zelda64CodeInfo(0x800060b0, 0x800063a0, 0x80010ee0, 0x800e6b80,
0x80104e00, 0xa86000, 0x800e7a00, 0x800f0810, 0x800e7110, 0x800fd960, 0x800f10c8, -1));
// Majora's Mask
// TODO: support GC roms
put(Zelda64Version.MmEurope10, new Zelda64CodeInfo(0x80096b80, 0x800982e0, 0x800a5d60, 0x801ae980,
0x801d4380, 0xc8a000, 0x801af760, 0x801BE0A0, 0x801aefc0, 0x801c90b0, -1, 0x801c90f0));
put(Zelda64Version.MmEurope11, new Zelda64CodeInfo(0x80096cc0, 0x80098420, 0x800a5fe0, 0x801aed20,
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/zelda64/Zelda64Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public boolean IsOot() {
case OotEuropeGCMq:
case OotEuropeGCMqDbg:
case OotEuropeGCDbg:
case OotJPUS09:
case OotJPUS10:
case OotJPUS11:
case OotJPUS12:
Expand Down Expand Up @@ -120,6 +121,8 @@ public String GetVersionLongName() {
return gameName + " Europe Master Quest Debug";
case OotEuropeGCDbg:
return gameName + " Europe GameCube Debug";
case OotJPUS09:
return gameName + " JP/US 0.9";
case OotJPUS10:
return gameName + " JP/US 1.0";
case OotJPUS11:
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/zelda64/Zelda64Loader.java
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> optio

var codeInfo = Zelda64CodeInfo.TABLE.get(mGame.mVersion);
long entrypoint = (rom.getEntryPoint() & 0xFFFFFFFFl) + 0x60;
// TODO: ?

// boot
byte[] boot = mGame.GetFile(0x00001060).mData; // should be constant
Expand All @@ -136,7 +137,7 @@ protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> optio
byte[] code = mGame.GetFile(codeVrom).mData;
buff = ByteBuffer.wrap(code);
buff.position(0);

segment = new byte[(int) (codeInfo.mCodeData - codeInfo.mCodeText)];
buff.get(segment);
CreateSegment("code.text", codeInfo.mCodeText, segment, new MemPerm("R-X"), false);
Expand Down
1 change: 1 addition & 0 deletions src/main/java/zelda64/Zelda64Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
public enum Zelda64Version {
Invalid(null),
//Ocarina Of Time
OotJPUS09("zelda@srd44 98-10-18 23:05:00"),
OotJPUS10("zelda@srd44 98-10-21 04:56:31"),
OotJPUS11("zelda@srd44 98-10-26 10:58:45"),
OotEurope10("zelda@srd44 98-11-10 14:34:22"),
Expand Down
2 changes: 0 additions & 2 deletions src/main/resources/images/README.txt

This file was deleted.

2 changes: 0 additions & 2 deletions src/test/java/README.test.txt

This file was deleted.

0 comments on commit 78218f5

Please sign in to comment.