decomp3: geometry, vector, timer-h, ocean table files and game-task related enums (#3329)

This commit is contained in:
Hat Kid
2024-01-23 02:45:53 +01:00
committed by GitHub
parent 01d5fc2bbb
commit d4c21c784f
34 changed files with 61583 additions and 416 deletions
+1 -1
View File
@@ -2113,7 +2113,7 @@ std::optional<std::string> find_best_field_in_structure(const TypeSystem& ts,
}
for (size_t i = start_field; i < (size_t)end_field; ++i) {
const auto& field = st->fields().at(i);
auto type = ts.lookup_type(field.type());
auto type = ts.lookup_type_allow_partial_def(field.type());
if (field.is_dynamic() || field.offset() > offset || field.user_placed() != want_fixed) {
continue;
}
+1
View File
@@ -347,6 +347,7 @@ FormElement* rewrite_as_send_event(LetElement* in,
Matcher::any_reg(1));
break;
case GameVersion::Jak2:
case GameVersion::Jak3:
// in jak 2, the event message block holds a ppointer instead.
set_from_matcher = Matcher::set(
Matcher::deref(Matcher::reg(block_var_reg), false, {DerefTokenMatcher::string("from")}),
File diff suppressed because it is too large Load Diff
@@ -1,5 +1,5 @@
{
"gkernel": [
"gkernel": [
[17, "(function process symbol)"],
[24, "(function process symbol)"],
[26, "(function process symbol)"],
@@ -2,5 +2,37 @@
"math": [
["L108", "(pointer float)", 32],
["L109", "(pointer float)", 32]
],
"ocean-trans-tables": [
["L1", "(inline-array vector)", 4],
["L2", "(pointer float)", 160],
["L3", "(pointer float)", 100],
["L4", "(pointer float)", 72],
["L5", "(pointer float)", 72],
["L6", "(pointer float)", 72],
["L7", "(pointer float)", 72],
["L8", "(pointer float)", 44],
["L9", "(pointer float)", 44],
["L10", "(pointer float)", 44],
["L11", "(pointer float)", 44],
["L12", "(pointer float)", 40],
["L13", "(pointer float)", 40],
["L14", "(pointer float)", 40],
["L15", "(pointer float)", 40],
["L16", "(pointer float)", 28],
["L17", "(pointer float)", 28],
["L18", "(pointer float)", 28],
["L19", "(pointer float)", 28]
],
"ocean-frames": [["L1", "(pointer uint32)", 16384]],
"task-control-h": [
["L1042", "uint64", true],
["L1047", "uint64", true],
["L1048", "uint64", true],
["L1045", "uint64", true],
["L1049", "uint64", true],
["L1043", "uint64", true],
["L1046", "uint64", true],
["L1044", "uint64", true]
]
}
@@ -1,4 +1,13 @@
{
"quaternion-smooth-seek!": [[16, "quaternion"]],
"eul->matrix": [[16, "vector"]]
"eul->matrix": [[16, "vector"]],
"segment-segment-find-intersection-xz": [[16, "vector"]],
"vector-line-xz-distance-point!": [[16, "matrix"]],
"vector-segment-xz-distance-point!": [[16, "matrix"]],
"nearest-dist2-between-moving-points": [[16, ["inline-array", "vector", 2]]],
"vector-circle-tangent-new": [
[32, "vector"],
[48, "vector"]
],
"rotate-vector-to-vector": [[16, "quaternion"]]
}
@@ -47,10 +47,6 @@
[13, "a0", "pointer"],
[25, "v1", "pointer"]
],
"(method 14 dead-pool)": [
[[24, 25], "v1", "(pointer process)"],
[[30, 39], "s4", "(pointer process)"]
],
"method-state": [[12, "a2", "state"]],
"(method 0 protect-frame)": [
[0, "a0", "int"],
@@ -86,5 +82,44 @@
[18, "f0", "float"],
[18, "f1", "float"],
[[23, 32], "f0", "float"]
],
"generate-rand-vector-on-sphere": [
[12, "v1", "float"],
[28, "v1", "float"]
],
"vector-segment-distance-point!": [[[21, 30], "f1", "float"]],
"vector4-array-add!": [
[11, "s5", "(inline-array vector4)"],
[12, "s4", "(inline-array vector4)"],
[13, "gp", "(inline-array vector4)"]
],
"vector4-array-sub!": [
[11, "s5", "(inline-array vector4)"],
[12, "s4", "(inline-array vector4)"],
[13, "gp", "(inline-array vector4)"]
],
"vector4-array-mul!": [
[11, "s5", "(inline-array vector4)"],
[12, "s4", "(inline-array vector4)"],
[13, "gp", "(inline-array vector4)"]
],
"vector4-array-scale!": [
[11, "s5", "(inline-array vector4)"],
[12, "gp", "(inline-array vector4)"]
],
"vector4-array-madd!": [
[13, "s5", "(inline-array vector4)"],
[14, "s4", "(inline-array vector4)"],
[15, "gp", "(inline-array vector4)"]
],
"vector4-array-msub!": [
[13, "s5", "(inline-array vector4)"],
[14, "s4", "(inline-array vector4)"],
[15, "gp", "(inline-array vector4)"]
],
"vector4-array-lerp!": [
[13, "s5", "(inline-array vector4)"],
[14, "s4", "(inline-array vector4)"],
[15, "gp", "(inline-array vector4)"]
]
}
@@ -170,9 +170,6 @@
"(method 0 process-tree)": {
"args": ["allocation", "type-to-make", "name"]
},
"(method 0 process)": {
"args": ["allocation", "type-to-make", "name"]
},
"(method 9 process-tree)": {
"args": ["this", "active-tree", "name", "stack-pointer"]
},
@@ -333,7 +330,6 @@
"change-to-last-brother": {
"args": ["proc"]
},
"matrix-transpose!": {
"args": ["dst", "src"]
},
@@ -414,5 +410,11 @@
},
"string>=?": {
"args": ["a", "b"]
},
"game-task->string": {
"args": ["task"],
"vars": {
"v1-0": "val"
}
}
}
+6
View File
@@ -967,6 +967,12 @@ const std::unordered_map<
{"speeches", ArrayFieldDecompMeta(TypeSpec("bot-speech-info"), 16)},
{"dirs", ArrayFieldDecompMeta(TypeSpec("vector"), 16)},
{"speech-tunings", ArrayFieldDecompMeta(TypeSpec("bot-speech-tuning"), 16)}}},
}},
{GameVersion::Jak3,
{
{"ocean-near-indices",
{{"data", ArrayFieldDecompMeta(TypeSpec("ocean-near-index"), 32)}}},
{"ocean-mid-masks", {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-mid-mask"), 8)}}},
}}};
goos::Object decompile_structure(const TypeSpec& type,
@@ -5,5 +5,959 @@
;; name in dgo: game-task-h
;; dgos: GAME
;; +++game-task
(defenum game-task
:type uint8
:bitfield #f
(unknown -1)
(none 0)
(complete 1)
(dummy0 2)
(eco-blue-button 3)
(eco-yellow-button 4)
(eco-red-button 5)
(city-start 6)
(desert-interceptors 7)
(desert-vehicle-training-1 8)
(desert-vehicle-training-2 9)
(arena-training-1 10)
(arena-fight-1 11)
(wascity-chase 12)
(wascity-pre-game 13)
(desert-turtle-training 14)
(desert-course-race 15)
(desert-artifact-race-1 16)
(wascity-leaper-race 17)
(desert-hover 18)
(arena-fight-2 19)
(desert-catch-lizards 20)
(desert-rescue 21)
(wascity-gungame 22)
(arena-fight-3 23)
(nest-eggs 24)
(temple-climb 25)
(desert-glide 26)
(volcano-darkeco 27)
(temple-oracle 28)
(desert-oasis-defense 29)
(temple-tests 30)
(comb-travel 31)
(mine-explore 32)
(mine-blow 33)
(mine-boss 34)
(sewer-met-hum 35)
(city-vehicle-training 36)
(city-port-fight 37)
(city-port-attack 38)
(city-gun-course-1 39)
(city-sniper-fight 40)
(sewer-kg-met 41)
(city-destroy-darkeco 42)
(forest-kill-plants 43)
(city-destroy-grid 44)
(city-hijack-vehicle 45)
(city-port-assault 46)
(city-gun-course-2 47)
(city-blow-barricade 48)
(city-protect-hq 49)
(sewer-hum-kg 50)
(city-power-game 51)
(desert-artifact-race-2 52)
(nest-hunt 53)
(desert-beast-battle 54)
(desert-jump-mission 55)
(desert-chase-marauders 56)
(forest-ring-chase 57)
(factory-sky-battle 58)
(factory-assault 59)
(factory-boss 60)
(temple-defend 61)
(wascity-defend 62)
(forest-turn-on-machine 63)
(precursor-tour 64)
(city-blow-tower 65)
(tower-destroy 66)
(palace-ruins-patrol 67)
(palace-ruins-attack 68)
(comb-wild-ride 69)
(precursor-destroy-ship 70)
(desert-final-boss 71)
(city-win 72)
(desert-bbush-get-to-1 73)
(desert-bbush-get-to-2 74)
(desert-bbush-get-to-3 75)
(desert-bbush-get-to-4 76)
(desert-bbush-get-to-5 77)
(desert-bbush-get-to-6 78)
(desert-bbush-get-to-7 79)
(desert-bbush-get-to-8 80)
(desert-bbush-get-to-9 81)
(desert-bbush-get-to-11 82)
(desert-bbush-get-to-12 83)
(desert-bbush-get-to-14 84)
(desert-bbush-get-to-16 85)
(desert-bbush-get-to-17 86)
(wascity-bbush-get-to-18 87)
(desert-bbush-get-to-19 88)
(wascity-bbush-get-to-20 89)
(wascity-bbush-get-to-21 90)
(wascity-bbush-get-to-22 91)
(wascity-bbush-get-to-23 92)
(wascity-bbush-get-to-24 93)
(wascity-bbush-get-to-25 94)
(city-bbush-get-to-26 95)
(city-bbush-get-to-27 96)
(city-bbush-get-to-28 97)
(city-bbush-get-to-29 98)
(city-bbush-get-to-30 99)
(city-bbush-get-to-31 100)
(city-bbush-get-to-32 101)
(city-bbush-get-to-33 102)
(city-bbush-get-to-34 103)
(city-bbush-get-to-35 104)
(city-bbush-get-to-36 105)
(city-bbush-get-to-37 106)
(city-bbush-get-to-38 107)
(city-bbush-get-to-39 108)
(city-bbush-get-to-40 109)
(city-bbush-get-to-41 110)
(city-bbush-get-to-42 111)
(city-bbush-get-to-43 112)
(city-bbush-get-to-44 113)
(desert-bbush-ring-1 114)
(desert-bbush-ring-2 115)
(wascity-bbush-ring-3 116)
(wascity-bbush-ring-4 117)
(city-bbush-ring-5 118)
(city-bbush-ring-6 119)
(desert-bbush-egg-spider-1 120)
(desert-bbush-spirit-chase-1 121)
(wascity-bbush-spirit-chase-2 122)
(city-bbush-spirit-chase-3 123)
(desert-bbush-timer-chase-1 124)
(wascity-bbush-timer-chase-2 125)
(desert-bbush-air-time 126)
(desert-bbush-total-air-time 127)
(desert-bbush-jump-distance 128)
(desert-bbush-total-jump-distance 129)
(desert-bbush-roll-count 130)
(desert-bbush-time-trial-1 131)
(desert-bbush-rally 132)
(city-bbush-port-attack 133)
(desert-rescue-bbush 134)
(city-gun-course-play-for-fun 135)
(city-jetboard-bbush 136)
(desert-bbush-destroy-interceptors 137)
(max 138)
)
;; ---game-task
;; +++game-task-node
(defenum game-task-node
:type uint16
(none)
(city-start-start)
(city-start-introduction)
(city-start-resolution)
(desert-interceptors-attack)
(desert-vehicle-training-1-introduction)
(desert-vehicle-training-2-introduction)
(arena-training-1-introduction)
(arena-training-1-collect)
(arena-training-1-resolution)
(arena-fight-1-introduction)
(arena-fight-1-fight)
(arena-fight-1-throne)
(arena-fight-1-resolution)
(wascity-chase-introduction)
(wascity-chase-resolution)
(wascity-pre-game-introduction)
(wascity-pre-game-wait)
(wascity-pre-game-resolution)
(wascity-pre-game-post-game)
(wascity-pre-game-bronze)
(wascity-pre-game-silver)
(wascity-pre-game-gold)
(desert-turtle-training-introduction)
(desert-turtle-training-restrict-to-turtle)
(desert-turtle-training-in-desert)
(desert-turtle-training-resolution)
(desert-course-race-introduction)
(desert-course-race-restrict-to-turtle)
(desert-course-race-post-intro)
(desert-course-race-race)
(desert-course-race-win)
(desert-course-race-resolution)
(desert-artifact-race-1-introduction)
(desert-artifact-race-1-post-intro)
(desert-artifact-race-1-race)
(desert-artifact-race-1-resolution)
(wascity-leaper-race-introduction)
(wascity-leaper-race-resolution)
(desert-hover-introduction)
(desert-hover-resolution)
(arena-fight-2-introduction)
(arena-fight-2-gun-training)
(arena-fight-2-fight)
(arena-fight-2-resolution)
(desert-catch-lizards-introduction)
(desert-catch-lizards-restrict-to-snake)
(desert-catch-lizards-get-to-corral)
(desert-catch-lizards-resolution)
(desert-rescue-introduction)
(desert-rescue-get-vehicle)
(desert-rescue-post-intro)
(desert-rescue-rescue)
(desert-rescue-dead-wlander-movie)
(desert-rescue-satellite-fight)
(desert-rescue-resolution)
(desert-rescue-hold-doors)
(wascity-gungame-introduction)
(wascity-gungame-resolution)
(wascity-gungame-play-for-fun)
(wascity-gungame-bronze)
(wascity-gungame-silver)
(wascity-gungame-gold)
(arena-fight-3-introduction)
(arena-fight-3-training)
(arena-fight-3-fight)
(arena-fight-3-resolution)
(nest-eggs-introduction)
(nest-eggs-get-to-scorpion)
(nest-eggs-wall)
(nest-eggs-tunnel)
(nest-eggs-resolution)
(nest-eggs-gas)
(temple-climb-introduction)
(temple-climb-resolution)
(desert-glide-introduction)
(desert-glide-templetop)
(desert-glide-resolution)
(volcano-darkeco-introduction)
(volcano-darkeco-catch-flut)
(volcano-darkeco-indax-1-introduction)
(volcano-darkeco-indax-1)
(volcano-darkeco-indax-2-introduction)
(volcano-darkeco-indax-2)
(volcano-darkeco-resolution)
(temple-oracle-introduction)
(temple-oracle-stairs)
(temple-oracle-watchers-complete)
(temple-oracle-pre-pole-room)
(temple-oracle-pole-room)
(temple-oracle-pole-half)
(temple-oracle-door-1)
(temple-oracle-meeting)
(temple-oracle-powerup)
(temple-oracle-resolution)
(desert-oasis-defense-introduction)
(desert-oasis-defense-meeting)
(desert-oasis-defense-battle)
(desert-oasis-defense-resolution)
(temple-tests-introduction)
(temple-tests-hover-training)
(temple-tests-oracle-door-crossed)
(temple-tests-oracle)
(temple-tests-training)
(temple-tests-door-1)
(temple-tests-door-2)
(temple-tests-door-3)
(temple-tests-resolution)
(comb-travel-introduction)
(comb-travel-resolution)
(comb-travel-training)
(mine-explore-introduction)
(mine-explore-elevator)
(mine-explore-armor)
(mine-explore-resolution)
(mine-blow-introduction)
(mine-blow-elevator)
(mine-blow-resolution)
(mine-boss-introduction)
(mine-boss-resolution)
(sewer-met-hum-introduction)
(sewer-met-hum-resolution)
(city-vehicle-training-hover-zone-1)
(city-vehicle-training-hover-zone-2)
(city-port-fight-introduction)
(city-port-fight-resolution)
(city-port-attack-introduction)
(city-port-attack-get-on)
(city-port-attack-mission)
(city-port-attack-resolution)
(city-gun-course-1-introduction)
(city-gun-course-1-post-intro)
(city-gun-course-1-resolution)
(city-gun-course-1-tess)
(city-gun-course-1-bronze)
(city-gun-course-1-silver)
(city-gun-course-1-gold)
(city-sniper-fight-introduction)
(city-sniper-fight-resolution)
(sewer-kg-met-introduction)
(sewer-kg-met-button0-pressed)
(sewer-kg-met-button1-pressed)
(sewer-kg-met-resolution)
(city-destroy-darkeco-introduction)
(city-destroy-darkeco-orbs)
(city-destroy-darkeco-dark-punch)
(city-destroy-darkeco-resolution)
(forest-kill-plants-introduction)
(forest-kill-plants-pillars)
(forest-kill-plants-armor)
(forest-kill-plants-resolution)
(city-destroy-grid-introduction)
(city-destroy-grid-resolution)
(city-hijack-vehicle-introduction)
(city-hijack-vehicle-infiltrate)
(city-hijack-vehicle-escape)
(city-hijack-vehicle-resolution)
(city-port-assault-introduction)
(city-port-assault-force-load-borrows)
(city-port-assault-resolution)
(city-gun-course-2-introduction)
(city-gun-course-2-post-intro)
(city-gun-course-2-resolution)
(city-gun-course-2-bronze)
(city-gun-course-2-silver)
(city-gun-course-2-gold)
(city-blow-barricade-introduction)
(city-blow-barricade-resolution)
(city-protect-hq-introduction)
(city-protect-hq-resolution)
(sewer-hum-kg-introduction)
(sewer-hum-kg-switch-off)
(sewer-hum-kg-resolution)
(city-power-game-introduction)
(city-power-game-wait)
(city-power-game-resolution)
(city-power-game-post-game)
(city-power-game-bronze)
(city-power-game-silver)
(city-power-game-gold)
(desert-artifact-race-2-introduction)
(desert-artifact-race-2-post-intro)
(desert-artifact-race-2-race)
(desert-artifact-race-2-resolution)
(nest-hunt-introduction)
(nest-hunt-sig)
(nest-hunt-fight)
(nest-hunt-get-crystal)
(nest-hunt-resolution)
(desert-beast-battle-introduction)
(desert-beast-battle-kill-last-beast)
(desert-beast-battle-resolution)
(desert-jump-mission-introduction)
(desert-jump-mission-post-intro)
(desert-jump-mission-protect-doors)
(desert-jump-mission-resolution)
(desert-chase-marauders-introduction)
(desert-chase-marauders-get-to-stronghold)
(desert-chase-marauders-ambush)
(desert-chase-marauders-chase)
(desert-chase-marauders-resolution)
(forest-ring-chase-introduction)
(forest-ring-chase-statues)
(forest-ring-chase-statue-1)
(forest-ring-chase-statue-2)
(forest-ring-chase-statue-3)
(forest-ring-chase-statue-4)
(forest-ring-chase-statue-5)
(forest-ring-chase-resolution)
(factory-sky-battle-introduction)
(factory-sky-battle-hanger)
(factory-sky-battle-wave1)
(factory-sky-battle-wave2)
(factory-sky-battle-tower1)
(factory-sky-battle-tower2)
(factory-sky-battle-tower3)
(factory-sky-battle-tower4)
(factory-sky-battle-resolution)
(factory-assault-introduction)
(factory-assault-indax-1-introduction)
(factory-assault-indax-1)
(factory-assault-indax-2-introduction)
(factory-assault-indax-2)
(factory-assault-indax-3-introduction)
(factory-assault-indax-3)
(factory-assault-indax-4-introduction)
(factory-assault-indax-4)
(factory-assault-get-vehicle)
(factory-assault-broke-ultimate-fence)
(factory-assault-resolution)
(factory-boss-introduction)
(factory-boss-resolution)
(temple-defend-introduction)
(temple-defend-talk-box)
(temple-defend-door-1)
(temple-defend-door-2)
(temple-defend-door-3)
(temple-defend-door-4)
(temple-defend-oracle)
(temple-defend-training)
(temple-defend-resolution)
(wascity-defend-introduction)
(wascity-defend-get-to)
(wascity-defend-resolution)
(forest-turn-on-machine-introduction)
(forest-turn-on-machine-spawners)
(forest-turn-on-machine-resolution)
(precursor-tour-introduction)
(precursor-tour-generator-trigger)
(precursor-tour-resolution)
(city-blow-tower-introduction)
(city-blow-tower-phase-1)
(city-blow-tower-resolution)
(tower-destroy-introduction)
(tower-destroy-climb)
(tower-destroy-resolution)
(palace-ruins-patrol-introduction)
(palace-ruins-patrol-stadium)
(palace-ruins-patrol-resolution)
(palace-ruins-attack-introduction)
(palace-ruins-attack-resolution)
(comb-wild-ride-introduction)
(comb-wild-ride-resolution)
(precursor-destroy-ship-introduction)
(precursor-destroy-ship-escape)
(precursor-destroy-ship-escape-continue)
(precursor-destroy-ship-resolution)
(desert-final-boss-introduction)
(desert-final-boss-walker)
(desert-final-boss-climb)
(desert-final-boss-resolution)
(city-win-introduction)
(city-win-resolution)
(desert-bbush-get-to-1-introduction)
(desert-bbush-get-to-1-resolution)
(desert-bbush-get-to-2-introduction)
(desert-bbush-get-to-2-resolution)
(desert-bbush-get-to-3-introduction)
(desert-bbush-get-to-3-resolution)
(desert-bbush-get-to-4-introduction)
(desert-bbush-get-to-4-resolution)
(desert-bbush-get-to-5-introduction)
(desert-bbush-get-to-5-resolution)
(desert-bbush-get-to-6-introduction)
(desert-bbush-get-to-6-resolution)
(desert-bbush-get-to-7-introduction)
(desert-bbush-get-to-7-resolution)
(desert-bbush-get-to-8-introduction)
(desert-bbush-get-to-8-resolution)
(desert-bbush-get-to-9-introduction)
(desert-bbush-get-to-9-resolution)
(desert-bbush-get-to-11-introduction)
(desert-bbush-get-to-11-resolution)
(desert-bbush-get-to-12-introduction)
(desert-bbush-get-to-12-resolution)
(desert-bbush-get-to-14-introduction)
(desert-bbush-get-to-14-resolution)
(desert-bbush-get-to-16-introduction)
(desert-bbush-get-to-16-resolution)
(desert-bbush-get-to-17-introduction)
(desert-bbush-get-to-17-resolution)
(wascity-bbush-get-to-18-introduction)
(wascity-bbush-get-to-18-resolution)
(wascity-bbush-get-to-19-introduction)
(wascity-bbush-get-to-19-resolution)
(wascity-bbush-get-to-20-introduction)
(wascity-bbush-get-to-20-resolution)
(wascity-bbush-get-to-21-introduction)
(wascity-bbush-get-to-21-resolution)
(wascity-bbush-get-to-22-introduction)
(wascity-bbush-get-to-22-resolution)
(wascity-bbush-get-to-23-introduction)
(wascity-bbush-get-to-23-resolution)
(wascity-bbush-get-to-24-introduction)
(wascity-bbush-get-to-24-resolution)
(wascity-bbush-get-to-25-introduction)
(wascity-bbush-get-to-25-resolution)
(city-bbush-get-to-26-introduction)
(city-bbush-get-to-26-resolution)
(city-bbush-get-to-27-introduction)
(city-bbush-get-to-27-resolution)
(city-bbush-get-to-28-introduction)
(city-bbush-get-to-28-resolution)
(city-bbush-get-to-29-introduction)
(city-bbush-get-to-29-resolution)
(city-bbush-get-to-30-introduction)
(city-bbush-get-to-30-resolution)
(city-bbush-get-to-31-introduction)
(city-bbush-get-to-31-resolution)
(city-bbush-get-to-32-introduction)
(city-bbush-get-to-32-resolution)
(city-bbush-get-to-33-introduction)
(city-bbush-get-to-33-resolution)
(city-bbush-get-to-34-introduction)
(city-bbush-get-to-34-resolution)
(city-bbush-get-to-35-introduction)
(city-bbush-get-to-35-resolution)
(city-bbush-get-to-36-introduction)
(city-bbush-get-to-36-resolution)
(city-bbush-get-to-37-introduction)
(city-bbush-get-to-37-resolution)
(city-bbush-get-to-38-introduction)
(city-bbush-get-to-38-resolution)
(city-bbush-get-to-39-introduction)
(city-bbush-get-to-39-resolution)
(city-bbush-get-to-40-introduction)
(city-bbush-get-to-40-resolution)
(city-bbush-get-to-41-introduction)
(city-bbush-get-to-41-resolution)
(city-bbush-get-to-42-introduction)
(city-bbush-get-to-42-resolution)
(city-bbush-get-to-43-introduction)
(city-bbush-get-to-43-resolution)
(city-bbush-get-to-44-introduction)
(city-bbush-get-to-44-resolution)
(desert-bbush-ring-1-introduction)
(desert-bbush-ring-1-resolution)
(desert-bbush-ring-2-introduction)
(desert-bbush-ring-2-resolution)
(wascity-bbush-ring-3-introduction)
(wascity-bbush-ring-3-resolution)
(wascity-bbush-ring-4-introduction)
(wascity-bbush-ring-4-resolution)
(city-bbush-ring-5-introduction)
(city-bbush-ring-5-resolution)
(city-bbush-ring-6-introduction)
(city-bbush-ring-6-resolution)
(desert-bbush-egg-spider-1-introduction)
(desert-bbush-egg-spider-1-resolution)
(desert-bbush-spirit-chase-1-introduction)
(desert-bbush-spirit-chase-1-resolution)
(wascity-bbush-spirit-chase-2-introduction)
(wascity-bbush-spirit-chase-2-resolution)
(city-bbush-spirit-chase-3-introduction)
(city-bbush-spirit-chase-3-resolution)
(desert-bbush-timer-chase-1-introduction)
(desert-bbush-timer-chase-1-resolution)
(wascity-bbush-timer-chase-2-introduction)
(wascity-bbush-timer-chase-2-resolution)
(desert-bbush-air-time-introduction)
(desert-bbush-air-time-resolution)
(desert-bbush-total-air-time-introduction)
(desert-bbush-total-air-time-resolution)
(desert-bbush-jump-distance-introduction)
(desert-bbush-jump-distance-resolution)
(desert-bbush-total-jump-distance-introduction)
(desert-bbush-total-jump-distance-resolution)
(desert-bbush-roll-count-introduction)
(desert-bbush-roll-count-resolution)
(desert-bbush-time-trial-1-introduction)
(desert-bbush-time-trial-1-resolution)
(desert-bbush-rally-introduction)
(desert-bbush-rally-resolution)
(city-bbush-port-attack-introduction)
(city-bbush-port-attack-port-attack-load)
(city-bbush-port-attack-resolution)
(desert-rescue-bbush-introduction)
(desert-rescue-bbush-resolution)
(city-gun-course-play-for-fun-introduction)
(city-gun-course-play-for-fun-resolution)
(city-gun-course-play-for-fun-bronze-rnc-1)
(city-gun-course-play-for-fun-silver-rnc-1)
(city-gun-course-play-for-fun-gold-rnc-1)
(city-gun-course-play-for-fun-bronze-rnc-2)
(city-gun-course-play-for-fun-silver-rnc-2)
(city-gun-course-play-for-fun-gold-rnc-2)
(city-jetboard-bbush-introduction)
(city-jetboard-bbush-resolution)
(desert-bbush-destroy-interceptors-introduction)
(desert-bbush-destroy-interceptors-resolution)
)
;; ---game-task-node
;; +++game-task-action
(defenum game-task-action
:bitfield #f
:type uint8
(hide 0)
(idle 1)
(say 2)
(talk 3)
(show 4)
(trade 5)
(play 6)
(menu 7)
)
;; ---game-task-action
;; +++game-task-actor
(defenum game-task-actor
:type uint8
(none 0)
(minimap 1)
(oracle-oracle 2)
(daxter 3)
(damus-arena 4)
(damus-waspal 5)
(damus-desert 6)
(damus-wasdoors 7)
(damus-wascity 8)
(damus-ruins 9)
(kleever-arena 10)
(kleever-wasdoors 11)
(kleever-pen 12)
(seem-wascity 13)
(seem-temple 14)
(ashelin-oasis 15)
(ashelin-talkbox 16)
(ashelin-freehq 17)
(veger-cave 18)
(veger-ruins 19)
(torn-hiphog 20)
(torn-hiptable 21)
(torn-hipbar 22)
(torn-hipbooth 23)
(torn-freehq 24)
(tess-gungame 25)
(samos-talkbox 26)
(sig-talkbox 27)
(sig-wasdoors 28)
(sig-nest 29)
(pecker-onintent 30)
(onin-onintent 31)
(onin-talkbox 32)
(keira-garage 33)
(was-pre-game-wascityb 34)
(kleever-wascityb 35)
(seem-wascitya 36)
(gun-gungame 37)
(vin-vinroom 38)
(power-game-vinroom 39)
(jinx-hiphog 40)
(samos-genb 41)
(wascity-turret 42)
(seem-leaper 44)
(monk-wascity 43)
(wascity-leaper 45)
(was-pre-game-deserte 46)
(onin-freehq 48)
(samos-freehq 47)
(keira-freehq 49)
(keira-genb 50)
(monk-mummy 51)
(pecker 52)
(samos-onintent 53)
(unused-slot-8 54)
(unused-slot-9 55)
(unused-slot-10 56)
(unused-slot-11 57)
(unused-slot-12 58)
(unused-slot-13 59)
(unused-slot-14 60)
(unused-slot-15 61)
(unused-slot-16 62)
(unused-slot-17 63)
(unused-slot-18 64)
(unused-slot-19 65)
(unused-slot-20 66)
(unused-slot-21 67)
(unused-slot-22 68)
(unused-slot-23 69)
(unused-slot-24 70)
(unused-slot-25 71)
(unused-slot-26 72)
(unused-slot-27 73)
(unused-slot-28 74)
(unused-slot-29 75)
(unused-slot-30 76)
(unused-slot-31 77)
(burning-bush-slumb 78)
(burning-bush-gena 79)
(burning-bush-genc 80)
(burning-bush-marka 81)
(burning-bush-sluma 82)
(burning-bush-slumb-2 83)
(burning-bush-slumc 84)
(burning-bush-farma 85)
(burning-bush-farmb 86)
(burning-bush-markb 87)
(burning-bush-markb-2 88)
(burning-bush-gena-2 89)
(burning-bush-genb 90)
(burning-bush-genc-2 91)
(burning-bush-inda 92)
(burning-bush-indb 93)
(burning-bush-port 94)
(burning-bush-port-2 95)
(burning-bush-port-3 96)
(burning-bush-pal 97)
(burning-bush-stadium 98)
(burning-bush-pal-2 99)
(burning-bush-genb-2 100)
(burning-bush-arena 101)
(burning-bush-desd 102)
(burning-bush-desc 103)
(burning-bush-desa 104)
(burning-bush-desg 105)
(burning-bush-desh 106)
(burning-bush-desc-2 107)
(burning-bush-dese 108)
(burning-bush-desb 109)
(burning-bush-desa-2 110)
(burning-bush-desc-3 111)
(burning-bush-desg-2 112)
(burning-bush-desd-2 113)
(burning-bush-desg-3 114)
(burning-bush-dese-2 115)
(burning-bush-dese-3 116)
(burning-bush-desd-3 117)
(burning-bush-desb-2 118)
(burning-bush-wasa-1 119)
(burning-bush-wasa-2 120)
(burning-bush-wasa-3 121)
(burning-bush-wasa-4 122)
(burning-bush-wasb-1 123)
(burning-bush-wasb-2 124)
(burning-bush-wasb-3 125)
(burning-bush-wasb-4 126)
(burning-bush-desg-4 127)
(burning-bush-wasb-5 128)
(burning-bush-wasb-6 129)
(burning-bush-desa-3 130)
(burning-bush-sluma-1 131)
(burning-bush-genb-1 132)
(burning-bush-slumb-1 133)
(burning-bush-wasa-5 134)
(burning-bush-desd-4 135)
(burning-bush-slumb-3 136)
(burning-bush-desc-4 137)
(burning-bush-inda-1 138)
(burning-bush-dese-4 139)
(burning-bush-desc-5 140)
(burning-bush-desb-3 141)
(burning-bush-wasa-6 142)
(burning-bush-wasb-7 143)
(burning-bush-indb-1 144)
(burning-bush-desf 145)
(burning-bush-port-1 146)
(burning-bush-genb-3 147)
(burning-bush-genb-4 148)
(burning-bush-genb-5 149)
(burning-bush-slumb-4 150)
(burning-bush-slumc-1 151)
(burning-bush-dese-5 152)
(burning-bush-port-4 153)
(burning-bush-slumc-2 154)
(burning-bush-sluma-2 155)
(burning-bush-sluma-3 156)
(burning-bush-indb-2 157)
(burning-bush-indb-3 158)
(burning-bush-inda-2 159)
(burning-bush-inda-3 160)
(burning-bush-inda-4 161)
(burning-bush-port-5 162)
(burning-bush-port-6 163)
(burning-bush-port-7 164)
(burning-bush-port-8 165)
(burning-bush-desd-5 166)
(burning-bush-inda-5 167)
(burning-bush-desb-4 168)
)
;; ---game-task-actor
;; +++game-task-node-command
(defenum game-task-node-command
:type uint8
(none 0)
(add-sidekick 1)
(sub-sidekick 2)
(add-board 3)
(sub-board 4)
(add-gun-red-1 5)
(add-gun-red-2 6)
(add-gun-red-3 7)
(add-gun-red-ammo-1 8)
(add-gun-red-ammo-2 9)
(add-gun-yellow-1 10)
(add-gun-yellow-2 11)
(add-gun-yellow-3 12)
(add-gun-yellow-ammo-1 13)
(add-gun-yellow-ammo-2 14)
(add-gun-blue-1 15)
(add-gun-blue-2 16)
(add-gun-blue-3 17)
(add-gun-blue-ammo-1 18)
(add-gun-blue-ammo-2 19)
(add-gun-dark-1 20)
(add-gun-dark-2 21)
(add-gun-dark-3 22)
(add-gun-dark-ammo-1 23)
(add-gun-dark-ammo-2 24)
(add-pass-front-gate 25)
(add-pass-port-mh 26)
(add-pass-port-inda 27)
(add-pass-inda-indb 28)
(add-pass-indb-sluma 29)
(add-pass-slumb-genb 30)
(add-darkeco 31)
(add-darkjak 32)
(add-darkjak-smack 33)
(add-darkjak-bomb0 34)
(add-darkjak-bomb1 35)
(add-darkjak-tracking 36)
(add-darkjak-invinc 37)
(add-lighteco 38)
(add-lightjak 39)
(add-lightjak-regen 40)
(add-lightjak-freeze 41)
(add-lightjak-shield 42)
(add-lightjak-swoop 43)
(add-board-training 44)
(add-board-launch 45)
(add-board-trail 46)
(add-board-zap 47)
(sub-board-trail 48)
(add-artifact-invis 49)
(add-armor-0 50)
(add-armor-1 51)
(add-armor-2 52)
(add-armor-3 53)
(add-amulet-1 54)
(add-amulet-2 55)
(add-amulet-3 56)
(add-light-eco-crystal 57)
(add-dark-eco-crystal 58)
(add-seal 59)
(add-cypher-gliph 60)
(add-star-map 61)
(add-vehicle-toad 62)
(add-vehicle-snake 63)
(add-vehicle-scorpion 64)
(add-vehicle-turtle 65)
(add-vehicle-rhino 66)
(add-av-cube 67)
(add-av-reflector 68)
(add-av-prism 69)
(add-av-generator 70)
(add-av-map 71)
(add-jakc 72)
)
;; ---game-task-node-command
;; +++game-task-node-flag
(defenum game-task-node-flag
:type uint32 ;; guess
:bitfield #t
(closed 0)
(data 1)
(auto-close 2)
(disk-close 3)
(kiosk-close 4)
(close-task 5)
(utility-node 6)
(abs-task-mask 7)
(set-task-mask 8)
(clear-task-mask 9)
(save-on-life 10)
(save-on-try 11)
(reset-on-try 12)
(no-restart 13)
(exclusive 14)
(intro-wait 15)
(city-wait 16)
(no-hud-wait 17)
(no-percent 18)
(act1 19)
(act2 20)
(act3 21)
(bbush 22)
)
;; ---game-task-node-flag
;; +++game-task-flags
(defenum game-task-flags
:bitfield #t
:type uint8
(gatflag-00)
(gatflag-01)
(gatflag-02)
)
;; ---game-task-flags
;; +++game-task-icon
(defenum game-task-icon
:type uint8
(gaticon-00)
(gaticon-01)
(gaticon-02)
(gaticon-03)
(gaticon-04)
(gaticon-05)
(gaticon-06)
(gaticon-07)
(gaticon-08)
(gaticon-09)
(gaticon-10)
(gaticon-11)
(gaticon-12)
(gaticon-13)
(gaticon-14)
(gaticon-15)
(gaticon-16)
(gaticon-17)
(gaticon-18)
(gaticon-19)
(gaticon-20)
(gaticon-21)
(gaticon-22)
(gaticon-23)
(gaticon-24)
(gaticon-25)
(gaticon-26)
(gaticon-27)
(gaticon-28)
(gaticon-29)
(gaticon-30)
(gaticon-31)
(gaticon-32)
(gaticon-33)
(gaticon-34)
(gaticon-35)
(gaticon-36)
(gaticon-37)
(gaticon-38)
(gaticon-39)
(gaticon-40)
(gaticon-41)
(gaticon-42)
(gaticon-43)
(gaticon-44)
(gaticon-45)
(gaticon-46)
(gaticon-47)
(gaticon-48)
(gaticon-49)
(gaticon-50)
(gaticon-51)
(gaticon-52)
(gaticon-53)
(gaticon-54)
(gaticon-55)
(gaticon-56)
(gaticon-57)
(gaticon-58)
(gaticon-59)
(gaticon-60)
(gaticon-61)
(gaticon-62)
(gaticon-63)
(gaticon-64)
(gaticon-65)
(gaticon-66)
(gaticon-67)
(gaticon-68)
(gaticon-69)
)
;; ---game-task-icon
;; DECOMP BEGINS
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+122
View File
@@ -7,3 +7,125 @@
;; DECOMP BEGINS
(deftype ocean-spheres (structure)
((spheres sphere 36 :inline :offset-assert 0) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x240
:flag-assert #x900000240
)
(deftype ocean-colors (structure)
((colors rgba 2548 :offset-assert 0) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x27d0
:flag-assert #x9000027d0
)
(deftype ocean-colors-float (structure)
((colors vector 2548 :inline :offset-assert 0) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x9f40
:flag-assert #x900009f40
)
(deftype ocean-mid-mask (structure)
((mask uint8 8 :offset-assert 0) ;; guessed by decompiler
(dword uint64 :offset 0)
)
:pack-me
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype ocean-mid-indices (basic)
((data uint16 36 :offset-assert 4) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x4c
:flag-assert #x90000004c
)
(deftype ocean-mid-masks (basic)
((data (inline-array ocean-mid-mask) :offset-assert 4) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype ocean-trans-mask (structure)
((mask uint8 4 :offset-assert 0) ;; guessed by decompiler
(word int32 :offset 0)
)
:pack-me
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
(deftype ocean-trans-index (structure)
((parent int16 :offset-assert 0)
(child int16 :offset-assert 2)
)
:pack-me
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
(deftype ocean-trans-indices (basic)
((data ocean-trans-index 2304 :inline :offset-assert 4)
)
:method-count-assert 9
:size-assert #x2404
:flag-assert #x900002404
)
(deftype ocean-near-index (structure)
((data uint16 16 :offset-assert 0) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x20
:flag-assert #x900000020
)
(deftype ocean-near-indices (basic)
((data (inline-array ocean-near-index) :offset-assert 4) ;; guessed by decompiler
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype ocean-near-colors (structure)
((color0 vector :inline :offset-assert 0)
(color1 vector :inline :offset-assert 16)
(color2 vector :inline :offset-assert 32)
(color3 vector :inline :offset-assert 48)
)
:method-count-assert 9
:size-assert #x40
:flag-assert #x900000040
)
(deftype ocean-map (structure)
((start-corner vector :inline :offset-assert 0)
(far-color vector :inline :offset-assert 16)
(ocean-colors ocean-colors :offset-assert 32)
(ocean-mid-indices ocean-mid-indices :offset-assert 36) ;; guessed by decompiler
(ocean-trans-indices ocean-trans-indices :offset-assert 40) ;; guessed by decompiler
(ocean-near-indices ocean-near-indices :offset-assert 44) ;; guessed by decompiler
(ocean-mid-masks ocean-mid-masks :offset-assert 48) ;; guessed by decompiler
)
:method-count-assert 11
:size-assert #x34
:flag-assert #xb00000034
(:methods
(set-height! (_type_ float) none) ;; 9
(get-base-height (_type_) float) ;; 10
)
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -414,7 +414,11 @@
)
(deftype rgba (uint32)
()
((r uint8 :offset 0 :size 8)
(g uint8 :offset 8 :size 8)
(b uint8 :offset 16 :size 8)
(a uint8 :offset 24 :size 8)
)
)
(defmacro static-rgba (r g b a)
+5
View File
@@ -8,11 +8,16 @@
(define-extern vector-identity! (function vector vector))
(define-extern vector-cross! (function vector vector vector vector))
(define-extern vector-float*! (function vector vector float vector))
(define-extern vector+float*! (function vector vector vector float vector))
(define-extern vector-negate! (function vector vector vector))
(define-extern vector-normalize! (function vector float vector))
(define-extern vector-normalize-copy! (function vector vector float vector))
(define-extern vector-normalize-ret-len! (function vector float float))
(define-extern vector-xz-normalize! (function vector float vector))
(define-extern vector-get-unique! (function vector vector vector))
(define-extern vector-get-closest-perpendicular! (function vector vector vector vector))
(define-extern vector-vector-distance (function vector vector float))
(define-extern vector-vector-distance-squared (function vector vector float))
(define-extern vector-length (function vector float))
(define-extern vector-length-squared (function vector float))
(define-extern vector-xz-length (function vector float))
File diff suppressed because it is too large Load Diff
+107
View File
@@ -5,5 +5,112 @@
;; name in dgo: timer-h
;; dgos: GAME
#|@file
There are two sources for timing:
- EE TIMER1, used for the frame profiler. There are 9765 counts of this per frame. It gets reset in drawable.
- The "stopwatch" system, used for reading the CPU clock cycle counter, at 300 MHz (32-bit)
|#
;; The Emotion Engine has 4 hardware timers, timer1 is used as the
(defconstant TIMER0_BANK (the timer-bank #x10000000)) ;; has HOLD register!
(defconstant TIMER1_BANK (the timer-bank #x10000800)) ;; has HOLD register!
(defconstant TIMER2_BANK (the timer-bank #x10001000)) ;; does NOT have HOLD register!
(defconstant TIMER3_BANK (the timer-bank #x10001800)) ;; does NOT have HOLD register!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; PC Port Timer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defmacro get-cpu-clock ()
"Read the 300 MHz clock."
;; __read-ee-timer is a 300 MHz timer from the C Kernel.
;; it's a real timer.
`(the uint (logand #xffffffff (__read-ee-timer)))
)
(defmacro get-bus-clock/256 ()
"Read the 150 MHz / 256 clock."
;; 300 MHz / (2^9)
`(the uint (logand #xffffffff (shr (__read-ee-timer) 9)))
)
(#when PC_PORT
;; the bus clock can be reset, which just stores the current count here.
(define *timer-reset-value* (the uint 0))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Timer HW
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defenum timer-clock-selection
:type uint8
(busclk 0)
(busclk/16 1)
(busclk/256 2)
(hblank 3)
)
;; DECOMP BEGINS
(deftype timer-mode (uint32)
"This matches the Tn_MODE register structure of the ps2 EE timers.
Only the lower 32 bits of these registers are usable, and the upper 16 hardwired to zero."
((clks timer-clock-selection :offset 0 :size 2)
(gate uint8 :offset 2 :size 1)
(gats uint8 :offset 3 :size 1)
(gatm uint8 :offset 4 :size 2)
(zret uint8 :offset 6 :size 1)
(cue uint8 :offset 7 :size 1)
(cmpe uint8 :offset 8 :size 1)
(ovfe uint8 :offset 9 :size 1)
(equf uint8 :offset 10 :size 1)
(ovff uint8 :offset 11 :size 1)
)
)
(deftype timer-bank (structure)
"This matches an EE timer (without a HOLD register, timers 2 and 3).
Each register is 128-bits wide, but only the lower 32-bits are usable, and the upper
16-bits of that are hardwired to zero."
((count uint32)
(mode timer-mode :offset 16)
(comp uint32 :offset 32)
)
)
(deftype timer-hold-bank (timer-bank)
"This matches an EE timer (with a HOLD register, timers 0 and 1)."
((hold uint32 :offset 48)
)
)
(deftype stopwatch (basic)
"Stopwatches are used to measure CPU clock cycles.
They don't use the timer above, but instead the Count COP0 register,
which counts CPU clock cycles directly."
((prev-time-elapsed time-frame)
(start-time time-frame)
(begin-level int32)
)
)
;; Confusing! What IS this measuring exactly? Hmm...
;; this is set by default for NTSC, it will later be changed if PAL.
(define *ticks-per-frame* (/ 2500000 256)) ;; 2 500 000 / 256 = 9765
(defun timer-init ((arg0 timer-bank) (arg1 timer-mode))
"Initiate a timer, start counting at a rate of 1 every 256 bus clocks (BUSCLK: ~147.456MHz)."
(set! (-> arg0 mode) arg1)
(set! (-> arg0 count) (the-as uint 0))
0
)
;; og:preserve-this
;; needs PS2 TIMER porting
(#unless PC_PORT
(timer-init (the-as timer-bank TIMER1_BANK) (new 'static 'timer-mode :clks (timer-clock-selection busclk/16) :cue 1))
)
+68
View File
@@ -5,5 +5,73 @@
;; name in dgo: vif-h
;; dgos: GAME
#|@file
Types related to VIF: the PS2's Vector Interface.
Each of VU0 and VU1 has a VIF which is used to sent/receive data.
The VIFs are controlled by registers and fed data using DMA.
The VIF registers defined here are used extremely rarely, usually they are sent DMA
(during gameplay, everything is synchronized by DMA, so code generally does not know when
it is safe to mess with VIF registers.)
|#
;; DECOMP BEGINS
(deftype vif-stat (uint32)
((vps uint8 :offset 0 :size 2)
(vew uint8 :offset 2 :size 1)
(mrk uint8 :offset 6 :size 1)
(vss uint8 :offset 8 :size 1)
(vfs uint8 :offset 9 :size 1)
(vis uint8 :offset 10 :size 1)
(int uint8 :offset 11 :size 1)
(er0 uint8 :offset 12 :size 1)
(er1 uint8 :offset 13 :size 1)
(fqc uint8 :offset 24 :size 4)
)
)
(deftype vif-fbrst (uint32)
((rst uint8 :offset 0 :size 1)
(fbk uint8 :offset 1 :size 1)
(stp uint8 :offset 2 :size 1)
(stc uint8 :offset 3 :size 1)
)
)
(deftype vif-err (uint32)
((mii uint8 :offset 0 :size 1)
(me0 uint8 :offset 1 :size 1)
(me1 uint8 :offset 2 :size 1)
)
)
(deftype vif-bank (structure)
((stat uint32)
(fbrst uint32 :offset 16)
(err vif-err :offset 32)
(mark uint32 :offset 48)
(cycle uint32 :offset 64)
(mode uint32 :offset 80)
(num uint32 :offset 96)
(mask uint32 :offset 112)
(code uint32 :offset 128)
(itops uint32 :offset 144)
(base uint32 :offset 160)
(offset uint32 :offset 176)
(tops uint32 :offset 192)
(itop uint32 :offset 208)
(top uint32 :offset 224)
(r0 uint32 :offset 256)
(r1 uint32 :offset 272)
(r2 uint32 :offset 288)
(r3 uint32 :offset 304)
(c0 uint32 :offset 320)
(c1 uint32 :offset 336)
(c2 uint32 :offset 352)
(c3 uint32 :offset 368)
)
)
;; PS2 VIF map. There are no VIFs in OpenGOAL.
(defconstant VIF0_BANK (the vif-bank #x10003800))
(defconstant VIF1_BANK (the vif-bank #x10003c00))
+909
View File
@@ -5,5 +5,914 @@
;; name in dgo: text-h
;; dgos: GAME
;; +++text-id
(defenum text-id
:type uint32
(null #x0)
(text-0001 #x0001)
(text-0002 #x0002)
(text-0003 #x0003)
(text-0004 #x0004)
(text-0005 #x0005)
(text-0006 #x0006)
(text-0007 #x0007)
(text-0008 #x0008)
(text-0009 #x0009)
(text-000a #x000a)
(text-000b #x000b)
(text-000c #x000c)
(text-000d #x000d)
(text-000e #x000e)
(text-000f #x000f)
(text-0010 #x0010)
(text-0011 #x0011)
(text-0012 #x0012)
(text-0013 #x0013)
(text-0014 #x0014)
(text-0015 #x0015)
(text-0016 #x0016)
(text-0017 #x0017)
(text-0018 #x0018)
(text-0019 #x0019)
(text-001a #x001a)
(text-001b #x001b)
(text-001c #x001c)
(text-001d #x001d)
(text-001e #x001e)
(text-001f #x001f)
(text-0020 #x0020)
(text-0021 #x0021)
(text-0022 #x0022)
(text-0023 #x0023)
(text-0024 #x0024)
(text-0025 #x0025)
(text-0026 #x0026)
(text-0027 #x0027)
(text-0028 #x0028)
(text-0029 #x0029)
(text-002a #x002a)
(text-002b #x002b)
(text-002c #x002c)
(text-002d #x002d)
(text-002e #x002e)
(text-002f #x002f)
(text-0030 #x0030)
(text-0031 #x0031)
(text-0032 #x0032)
(text-0033 #x0033)
(text-0034 #x0034)
(text-0035 #x0035)
(text-0036 #x0036)
(text-0037 #x0037)
(text-0038 #x0038)
(text-0039 #x0039)
(text-003a #x003a)
(text-003b #x003b)
(text-003c #x003c)
(text-003d #x003d)
(text-003e #x003e)
(text-003f #x003f)
(text-0040 #x0040)
(text-0041 #x0041)
(text-0042 #x0042)
(text-0043 #x0043)
(text-0044 #x0044)
(text-0049 #x0049)
(text-004a #x004a)
(text-004b #x004b)
(text-004c #x004c)
(text-004d #x004d)
(text-0052 #x0052)
(text-0053 #x0053)
(text-0054 #x0054)
(text-0055 #x0055)
(text-0056 #x0056)
(text-0057 #x0057)
(text-0058 #x0058)
(text-0059 #x0059)
(text-005a #x005a)
(text-005b #x005b)
(text-005c #x005c)
(text-005d #x005d)
(text-005e #x005e)
(text-005f #x005f)
(text-0060 #x0060)
(text-0061 #x0061)
(text-0062 #x0062)
(text-0063 #x0063)
(text-0065 #x0065)
(text-0066 #x0066)
(text-0067 #x0067)
(text-0068 #x0068)
(text-0069 #x0069)
(text-006a #x006a)
(text-006b #x006b)
(text-006c #x006c)
(text-006d #x006d)
(text-006e #x006e)
(text-006f #x006f)
(text-0072 #x0072)
(text-0073 #x0073)
(text-0074 #x0074)
(text-0075 #x0075)
(text-0076 #x0076)
(text-0077 #x0077)
(text-0078 #x0078)
(text-0079 #x0079)
(text-007a #x007a)
(text-007b #x007b)
(text-007c #x007c)
(text-007d #x007d)
(text-007e #x007e)
(text-007f #x007f)
(text-0080 #x0080)
(text-0081 #x0081)
(text-0082 #x0082)
(text-0083 #x0083)
(text-0084 #x0084)
(text-0085 #x0085)
(text-0086 #x0086)
(text-0087 #x0087)
(text-0088 #x0088)
(text-0089 #x0089)
(text-008a #x008a)
(text-008b #x008b)
(text-008c #x008c)
(text-008d #x008d)
(text-008e #x008e)
(text-008f #x008f)
(text-0090 #x0090)
(text-0091 #x0091)
(text-0092 #x0092)
(text-0093 #x0093)
(text-0094 #x0094)
(text-0095 #x0095)
(text-0096 #x0096)
(text-0097 #x0097)
(text-0098 #x0098)
(text-0099 #x0099)
(text-009a #x009a)
(text-009b #x009b)
(text-009c #x009c)
(text-009d #x009d)
(text-009e #x009e)
(text-009f #x009f)
(text-00a0 #x00a0)
(text-00a1 #x00a1)
(text-00a2 #x00a2)
(text-00a3 #x00a3)
(text-00a4 #x00a4)
(text-00a5 #x00a5)
(text-00a6 #x00a6)
(text-00a7 #x00a7)
(text-00a8 #x00a8)
(text-00a9 #x00a9)
(text-00aa #x00aa)
(text-00ab #x00ab)
(text-00ac #x00ac)
(text-00ad #x00ad)
(text-00ae #x00ae)
(text-00af #x00af)
(text-00b0 #x00b0)
(text-00b1 #x00b1)
(text-00b2 #x00b2)
(text-00b3 #x00b3)
(text-00b4 #x00b4)
(text-00b5 #x00b5)
(text-00b6 #x00b6)
(text-012c #x012c)
(text-012d #x012d)
(text-012e #x012e)
(text-012f #x012f)
(text-0130 #x0130)
(text-0131 #x0131)
(text-0132 #x0132)
(text-0134 #x0134)
(text-0135 #x0135)
(text-0136 #x0136)
(text-0137 #x0137)
(text-0138 #x0138)
(text-0139 #x0139)
(text-013a #x013a)
(text-013b #x013b)
(text-013c #x013c)
(text-013d #x013d)
(text-013e #x013e)
(text-013f #x013f)
(text-0140 #x0140)
(text-0141 #x0141)
(text-0142 #x0142)
(text-0143 #x0143)
(text-0144 #x0144)
(text-0145 #x0145)
(text-0147 #x0147)
(text-0155 #x0155)
(text-0156 #x0156)
(text-0157 #x0157)
(text-0158 #x0158)
(text-01b8 #x01b8)
(text-0207 #x0207)
(text-0208 #x0208)
(text-0209 #x0209)
(text-020a #x020a)
(text-020b #x020b)
(text-020c #x020c)
(text-020d #x020d)
(text-020e #x020e)
(text-03bf #x03bf)
(text-03c0 #x03c0)
(text-03c1 #x03c1)
(text-03c2 #x03c2)
(text-03c3 #x03c3)
(text-03c4 #x03c4)
(text-03c5 #x03c5)
(text-03c6 #x03c6)
(text-03c7 #x03c7)
(text-03c8 #x03c8)
(text-03c9 #x03c9)
(text-03d1 #x03d1)
(text-0408 #x0408)
(text-0409 #x0409)
(text-040a #x040a)
(text-040b #x040b)
(text-040c #x040c)
(text-040d #x040d)
(text-040e #x040e)
(text-0443 #x0443)
(text-0444 #x0444)
(text-0445 #x0445)
(text-0446 #x0446)
(text-0447 #x0447)
(text-0448 #x0448)
(text-0449 #x0449)
(text-044b #x044b)
(text-044c #x044c)
(text-044d #x044d)
(text-044e #x044e)
(text-044f #x044f)
(text-0450 #x0450)
(text-0451 #x0451)
(text-0452 #x0452)
(text-0453 #x0453)
(text-0454 #x0454)
(text-0456 #x0456)
(text-0457 #x0457)
(text-0458 #x0458)
(text-0459 #x0459)
(text-045a #x045a)
(text-045b #x045b)
(text-045c #x045c)
(text-045d #x045d)
(text-045e #x045e)
(text-045f #x045f)
(text-0460 #x0460)
(text-0461 #x0461)
(text-0462 #x0462)
(text-0463 #x0463)
(text-0464 #x0464)
(text-0465 #x0465)
(text-0466 #x0466)
(text-0467 #x0467)
(text-0468 #x0468)
(text-0469 #x0469)
(text-046a #x046a)
(text-046b #x046b)
(text-053d #x053d)
(text-053e #x053e)
(text-0546 #x0546)
(text-0547 #x0547)
(text-0548 #x0548)
(text-0549 #x0549)
(text-054a #x054a)
(text-054b #x054b)
(text-054c #x054c)
(text-054d #x054d)
(text-054e #x054e)
(text-054f #x054f)
(text-0550 #x0550)
(text-0551 #x0551)
(text-0552 #x0552)
(text-0553 #x0553)
(text-0554 #x0554)
(text-0555 #x0555)
(text-0556 #x0556)
(text-0557 #x0557)
(text-0558 #x0558)
(text-0559 #x0559)
(text-055a #x055a)
(text-055b #x055b)
(text-055c #x055c)
(text-055d #x055d)
(text-055e #x055e)
(text-055f #x055f)
(text-0562 #x0562)
(text-0563 #x0563)
(text-0564 #x0564)
(text-0565 #x0565)
(text-0566 #x0566)
(text-0567 #x0567)
(text-0568 #x0568)
(text-0569 #x0569)
(text-056a #x056a)
(text-056b #x056b)
(text-056c #x056c)
(text-056d #x056d)
(text-056e #x056e)
(text-056f #x056f)
(text-0570 #x0570)
(text-0571 #x0571)
(text-0572 #x0572)
(text-0573 #x0573)
(text-0574 #x0574)
(text-0575 #x0575)
(text-0576 #x0576)
(text-0577 #x0577)
(text-0578 #x0578)
(text-0579 #x0579)
(text-057a #x057a)
(text-057b #x057b)
(text-057c #x057c)
(text-057d #x057d)
(text-057e #x057e)
(text-057f #x057f)
(text-0580 #x0580)
(text-0581 #x0581)
(text-0582 #x0582)
(text-0583 #x0583)
(text-0584 #x0584)
(text-0585 #x0585)
(text-0586 #x0586)
(text-0587 #x0587)
(text-0588 #x0588)
(text-0589 #x0589)
(text-058a #x058a)
(text-058b #x058b)
(text-058c #x058c)
(text-058d #x058d)
(text-058e #x058e)
(text-058f #x058f)
(text-0590 #x0590)
(text-0591 #x0591)
(text-0592 #x0592)
(text-0593 #x0593)
(text-0594 #x0594)
(text-0595 #x0595)
(text-0596 #x0596)
(text-0597 #x0597)
(text-0598 #x0598)
(text-0599 #x0599)
(text-059a #x059a)
(text-059b #x059b)
(text-059c #x059c)
(text-059d #x059d)
(text-059e #x059e)
(text-059f #x059f)
(text-05a0 #x05a0)
(text-05a1 #x05a1)
(text-05a3 #x05a3)
(text-05a4 #x05a4)
(text-05a6 #x05a6)
(text-05a7 #x05a7)
(text-05a8 #x05a8)
(text-05a9 #x05a9)
(text-05aa #x05aa)
(text-05ab #x05ab)
(text-05ac #x05ac)
(text-05ad #x05ad)
(text-05ae #x05ae)
(text-05af #x05af)
(text-05b0 #x05b0)
(text-05b1 #x05b1)
(text-05b2 #x05b2)
(text-05b3 #x05b3)
(text-05b4 #x05b4)
(text-05b5 #x05b5)
(text-05b6 #x05b6)
(text-05b7 #x05b7)
(text-05b8 #x05b8)
(text-05b9 #x05b9)
(text-05ba #x05ba)
(text-05bb #x05bb)
(text-05bc #x05bc)
(text-05bd #x05bd)
(text-05be #x05be)
(text-05bf #x05bf)
(text-05c0 #x05c0)
(text-05c1 #x05c1)
(text-05c2 #x05c2)
(text-05c3 #x05c3)
(text-05c4 #x05c4)
(text-05c5 #x05c5)
(text-05c6 #x05c6)
(text-05c7 #x05c7)
(text-05c8 #x05c8)
(text-05c9 #x05c9)
(text-05ca #x05ca)
(text-05cb #x05cb)
(text-05cc #x05cc)
(text-05cd #x05cd)
(text-05ce #x05ce)
(text-05cf #x05cf)
(text-05d0 #x05d0)
(text-05d1 #x05d1)
(text-05d2 #x05d2)
(text-05d3 #x05d3)
(text-05d4 #x05d4)
(text-05d5 #x05d5)
(text-05d6 #x05d6)
(text-05d7 #x05d7)
(text-05d8 #x05d8)
(text-05d9 #x05d9)
(text-05da #x05da)
(text-05db #x05db)
(text-05dc #x05dc)
(text-05dd #x05dd)
(text-05de #x05de)
(text-05df #x05df)
(text-05e0 #x05e0)
(text-05e1 #x05e1)
(text-05e2 #x05e2)
(text-05e3 #x05e3)
(text-05e4 #x05e4)
(text-05e5 #x05e5)
(text-05e6 #x05e6)
(text-05e7 #x05e7)
(text-05e8 #x05e8)
(text-05e9 #x05e9)
(text-05ea #x05ea)
(text-05eb #x05eb)
(text-05ec #x05ec)
(text-05ed #x05ed)
(text-05ee #x05ee)
(text-05f0 #x05f0)
(text-05f1 #x05f1)
(text-05f2 #x05f2)
(text-05f3 #x05f3)
(text-05f5 #x05f5)
(text-05f6 #x05f6)
(text-05f7 #x05f7)
(text-05f8 #x05f8)
(text-05f9 #x05f9)
(text-05fa #x05fa)
(text-05fb #x05fb)
(text-05fc #x05fc)
(text-05fd #x05fd)
(text-05fe #x05fe)
(text-05ff #x05ff)
(text-0600 #x0600)
(text-0601 #x0601)
(text-0602 #x0602)
(text-0603 #x0603)
(text-0604 #x0604)
(text-0605 #x0605)
(text-0606 #x0606)
(text-0607 #x0607)
(text-0608 #x0608)
(text-0609 #x0609)
(text-060a #x060a)
(text-060b #x060b)
(text-060c #x060c)
(text-060d #x060d)
(text-060e #x060e)
(text-060f #x060f)
(text-0610 #x0610)
(text-0611 #x0611)
(text-0612 #x0612)
(text-0613 #x0613)
(text-0614 #x0614)
(text-0615 #x0615)
(text-0616 #x0616)
(text-0617 #x0617)
(text-0618 #x0618)
(text-0619 #x0619)
(text-061a #x061a)
(text-061b #x061b)
(text-061c #x061c)
(text-061d #x061d)
(text-061e #x061e)
(text-061f #x061f)
(text-0620 #x0620)
(text-0621 #x0621)
(text-0622 #x0622)
(text-0623 #x0623)
(text-0624 #x0624)
(text-0625 #x0625)
(text-0626 #x0626)
(text-0627 #x0627)
(text-0628 #x0628)
(text-0629 #x0629)
(text-062a #x062a)
(text-062b #x062b)
(text-062c #x062c)
(text-062d #x062d)
(text-062e #x062e)
(text-0630 #x0630)
(text-0631 #x0631)
(text-0632 #x0632)
(text-0633 #x0633)
(text-0634 #x0634)
(text-0635 #x0635)
(text-0636 #x0636)
(text-0637 #x0637)
(text-0638 #x0638)
(text-0639 #x0639)
(text-063a #x063a)
(text-063b #x063b)
(text-063d #x063d)
(text-063e #x063e)
(text-063f #x063f)
(text-0640 #x0640)
(text-0641 #x0641)
(text-0642 #x0642)
(text-0643 #x0643)
(text-0644 #x0644)
(text-0645 #x0645)
(text-0646 #x0646)
(text-0647 #x0647)
(text-0648 #x0648)
(text-0649 #x0649)
(text-064a #x064a)
(text-064b #x064b)
(text-064c #x064c)
(text-064d #x064d)
(text-064e #x064e)
(text-064f #x064f)
(text-0650 #x0650)
(text-0651 #x0651)
(text-0652 #x0652)
(text-0653 #x0653)
(text-0654 #x0654)
(text-0655 #x0655)
(text-0656 #x0656)
(text-0657 #x0657)
(text-0658 #x0658)
(text-0659 #x0659)
(text-065a #x065a)
(text-065b #x065b)
(text-065c #x065c)
(text-065d #x065d)
(text-065e #x065e)
(text-065f #x065f)
(text-0660 #x0660)
(text-0661 #x0661)
(text-0662 #x0662)
(text-0663 #x0663)
(text-0664 #x0664)
(text-0665 #x0665)
(text-0666 #x0666)
(text-0667 #x0667)
(text-0668 #x0668)
(text-0669 #x0669)
(text-066a #x066a)
(text-066b #x066b)
(text-066c #x066c)
(text-066d #x066d)
(text-066e #x066e)
(text-066f #x066f)
(text-0670 #x0670)
(text-0671 #x0671)
(text-0672 #x0672)
(text-0673 #x0673)
(text-0674 #x0674)
(text-0675 #x0675)
(text-0676 #x0676)
(text-0677 #x0677)
(text-0678 #x0678)
(text-0679 #x0679)
(text-067a #x067a)
(text-067b #x067b)
(text-067c #x067c)
(text-067d #x067d)
(text-067e #x067e)
(text-067f #x067f)
(text-0680 #x0680)
(text-0681 #x0681)
(text-0682 #x0682)
(text-0683 #x0683)
(text-0684 #x0684)
(text-0685 #x0685)
(text-0686 #x0686)
(text-0687 #x0687)
(text-0688 #x0688)
(text-0689 #x0689)
(text-068a #x068a)
(text-068b #x068b)
(text-068c #x068c)
(text-068d #x068d)
(text-068e #x068e)
(text-068f #x068f)
(text-0690 #x0690)
(text-0691 #x0691)
(text-0692 #x0692)
(text-0693 #x0693)
(text-0694 #x0694)
(text-0695 #x0695)
(text-0696 #x0696)
(text-0697 #x0697)
(text-0698 #x0698)
(text-0699 #x0699)
(text-069a #x069a)
(text-069b #x069b)
(text-069c #x069c)
(text-069d #x069d)
(text-069e #x069e)
(text-069f #x069f)
(text-06a0 #x06a0)
(text-06a1 #x06a1)
(text-06a2 #x06a2)
(text-06a3 #x06a3)
(text-06a4 #x06a4)
(text-06a5 #x06a5)
(text-06a6 #x06a6)
(text-06a7 #x06a7)
(text-06a8 #x06a8)
(text-06a9 #x06a9)
(text-06aa #x06aa)
(text-06ab #x06ab)
(text-06ac #x06ac)
(text-06ad #x06ad)
(text-06ae #x06ae)
(text-06af #x06af)
(text-06b0 #x06b0)
(text-06b1 #x06b1)
(text-06b2 #x06b2)
(text-06b3 #x06b3)
(text-06b4 #x06b4)
(text-06b5 #x06b5)
(text-06b6 #x06b6)
(text-06b7 #x06b7)
(text-06b8 #x06b8)
(text-06b9 #x06b9)
(text-06ba #x06ba)
(text-06bb #x06bb)
(text-06bc #x06bc)
(text-06bd #x06bd)
(text-06be #x06be)
(text-06bf #x06bf)
(text-06c0 #x06c0)
(text-06c1 #x06c1)
(text-06c2 #x06c2)
(text-06c3 #x06c3)
(text-06c4 #x06c4)
(text-06c5 #x06c5)
(text-06c6 #x06c6)
(text-06c7 #x06c7)
(text-06c8 #x06c8)
(text-06c9 #x06c9)
(text-06ca #x06ca)
(text-06de #x06de)
(text-06df #x06df)
(text-06e0 #x06e0)
(text-06e1 #x06e1)
(text-06e2 #x06e2)
(text-06e3 #x06e3)
(text-06e4 #x06e4)
(text-06e5 #x06e5)
(text-06e6 #x06e6)
(text-06e7 #x06e7)
(text-06e8 #x06e8)
(text-06e9 #x06e9)
(text-06ea #x06ea)
(text-06eb #x06eb)
(text-06ec #x06ec)
(text-06ed #x06ed)
(text-06ee #x06ee)
(text-06ef #x06ef)
(text-06f0 #x06f0)
(text-06f1 #x06f1)
(text-06f2 #x06f2)
(text-06f3 #x06f3)
(text-06f4 #x06f4)
(text-06f5 #x06f5)
(text-06f6 #x06f6)
(text-06f7 #x06f7)
(text-06f8 #x06f8)
(text-06f9 #x06f9)
(text-06fa #x06fa)
(text-06fb #x06fb)
(text-06fc #x06fc)
(text-06fd #x06fd)
(text-06fe #x06fe)
(text-06ff #x06ff)
(text-0700 #x0700)
(text-0701 #x0701)
(text-0702 #x0702)
(text-0703 #x0703)
(text-0704 #x0704)
(text-0705 #x0705)
(text-0706 #x0706)
(text-0707 #x0707)
(text-0708 #x0708)
(text-0709 #x0709)
(text-070a #x070a)
(text-070b #x070b)
(text-070c #x070c)
(text-070d #x070d)
(text-070e #x070e)
(text-070f #x070f)
(text-0775 #x0775)
(text-0776 #x0776)
(text-0778 #x0778)
(text-0779 #x0779)
(text-077a #x077a)
(text-077b #x077b)
(text-077c #x077c)
(text-078d #x078d)
(text-07b3 #x07b3)
(text-07b4 #x07b4)
(text-07b5 #x07b5)
(text-07b8 #x07b8)
(text-07b9 #x07b9)
(text-07ba #x07ba)
(text-07bb #x07bb)
(text-07bc #x07bc)
(text-07bd #x07bd)
(text-07be #x07be)
(text-07bf #x07bf)
(text-07c0 #x07c0)
(text-07c1 #x07c1)
(text-07c2 #x07c2)
(text-07c3 #x07c3)
(text-07c4 #x07c4)
(text-07c7 #x07c7)
(text-07c8 #x07c8)
(text-07cb #x07cb)
(text-07cc #x07cc)
(text-07cd #x07cd)
(text-07ce #x07ce)
(text-07cf #x07cf)
(text-07d0 #x07d0)
(text-07d1 #x07d1)
(text-07d2 #x07d2)
(text-07d3 #x07d3)
(text-07d4 #x07d4)
(text-07d5 #x07d5)
(text-07d6 #x07d6)
(text-07d7 #x07d7)
(text-07d8 #x07d8)
(text-07d9 #x07d9)
(text-07da #x07da)
(text-07db #x07db)
(text-07dc #x07dc)
(text-07dd #x07dd)
(text-07de #x07de)
(text-07df #x07df)
(text-07e0 #x07e0)
(text-07e1 #x07e1)
(text-07e2 #x07e2)
(text-07e3 #x07e3)
(text-07e4 #x07e4)
(text-07e5 #x07e5)
(text-07e6 #x07e6)
(text-07e7 #x07e7)
(text-07e8 #x07e8)
(text-07e9 #x07e9)
(text-07ea #x07ea)
(text-07f6 #x07f6)
(text-07f7 #x07f7)
(text-07f8 #x07f8)
(text-07f9 #x07f9)
(text-07fa #x07fa)
(text-07fb #x07fb)
(text-07fc #x07fc)
(text-07fd #x07fd)
(text-07fe #x07fe)
(text-07ff #x07ff)
(text-0800 #x0800)
(text-0801 #x0801)
(text-0802 #x0802)
(text-0803 #x0803)
(text-0804 #x0804)
(text-0805 #x0805)
(text-0806 #x0806)
(text-0807 #x0807)
(text-0808 #x0808)
(text-0809 #x0809)
(text-080a #x080a)
(text-080b #x080b)
(text-080c #x080c)
(text-080d #x080d)
(text-0816 #x0816)
(text-0817 #x0817)
(text-0818 #x0818)
(text-0819 #x0819)
(text-081a #x081a)
(text-081b #x081b)
(text-081c #x081c)
(text-081d #x081d)
(text-081e #x081e)
(text-081f #x081f)
(text-0820 #x0820)
(text-0821 #x0821)
(text-0822 #x0822)
(text-0823 #x0823)
(text-0824 #x0824)
(text-0825 #x0825)
(text-0826 #x0826)
(text-0827 #x0827)
(text-0828 #x0828)
(text-0829 #x0829)
(text-082a #x082a)
(text-082b #x082b)
(text-082c #x082c)
(text-082d #x082d)
(text-082e #x082e)
(text-082f #x082f)
(text-0830 #x0830)
(text-0831 #x0831)
(text-0832 #x0832)
(text-0833 #x0833)
(text-0834 #x0834)
(text-0835 #x0835)
(text-0836 #x0836)
(text-0837 #x0837)
(text-0838 #x0838)
(text-0839 #x0839)
(text-083a #x083a)
(text-083b #x083b)
(text-083c #x083c)
(text-083d #x083d)
(text-083e #x083e)
(text-083f #x083f)
(text-0840 #x0840)
(text-0841 #x0841)
(text-0842 #x0842)
(text-0843 #x0843)
(text-0844 #x0844)
(text-0845 #x0845)
(text-0846 #x0846)
(text-0847 #x0847)
(text-0848 #x0848)
(text-0849 #x0849)
(text-084a #x084a)
(text-084b #x084b)
(text-084c #x084c)
(text-084d #x084d)
(text-084e #x084e)
(text-084f #x084f)
(text-0850 #x0850)
(text-0851 #x0851)
(text-0852 #x0852)
(text-0853 #x0853)
(text-0856 #x0856)
(text-0857 #x0857)
(text-0858 #x0858)
(text-085a #x085a)
(text-085f #x085f)
(text-0860 #x0860)
(text-0861 #x0861)
(text-0862 #x0862)
(text-0863 #x0863)
(text-0864 #x0864)
(text-0866 #x0866)
(text-0867 #x0867)
(text-0868 #x0868)
(text-0869 #x0869)
(text-086a #x086a)
(text-086c #x086c)
(text-086d #x086d)
(text-086e #x086e)
(text-086f #x086f)
(text-0870 #x0870)
(text-0871 #x0871)
(text-0872 #x0872)
(text-0873 #x0873)
(text-0874 #x0874)
(text-0875 #x0875)
(text-0876 #x0876)
(text-0877 #x0877)
(text-0878 #x0878)
(text-0879 #x0879)
(text-087a #x087a)
(text-087b #x087b)
(text-087c #x087c)
(text-087d #x087d)
(text-087e #x087e)
(text-087f #x087f)
(text-0880 #x0880)
(text-0883 #x0883)
(text-0884 #x0884)
(text-0885 #x0885)
(text-0886 #x0886)
(text-0887 #x0887)
(text-0888 #x0888)
(text-088a #x088a)
(text-088b #x088b)
(text-088c #x088c)
(text-088d #x088d)
(text-088e #x088e)
(text-088f #x088f)
(text-0891 #x0891)
(text-0892 #x0892)
(text-0893 #x0893)
(text-0894 #x0894)
(text-0895 #x0895)
(text-0896 #x0896)
(text-0897 #x0897)
(text-0898 #x0898)
(text-0899 #x0899)
)
;; ---text-id
;; DECOMP BEGINS
+18
View File
@@ -45,6 +45,14 @@
(defconstant PP (with-pp pp))
(defmacro current-time ()
`(-> PP clock frame-counter)
)
(defmacro seconds-per-frame ()
`(-> PP clock seconds-per-frame)
)
(defmacro make-u128 (upper lower)
`(rlet ((result :class i128)
(upper-xmm :class i128)
@@ -279,3 +287,13 @@
(defmacro .sync.l ()
`(none))
(defmacro seek! (place target rate)
"Macro to use seek in-place. place is the base, and where the result is stored."
`(set! ,place (seek ,place ,target ,rate))
)
(defmacro seekl! (place target rate)
"Macro to use seekl in-place. place is the base, and where the result is stored."
`(set! ,place (seekl ,place ,target ,rate))
)
+6
View File
@@ -0,0 +1,6 @@
;;-*-Lisp-*-
(in-package goal)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+9 -1
View File
@@ -279,7 +279,11 @@
;; definition of type rgba
(deftype rgba (uint32)
()
((r uint8 :offset 0 :size 8)
(g uint8 :offset 8 :size 8)
(b uint8 :offset 16 :size 8)
(a uint8 :offset 24 :size 8)
)
)
;; definition of type xyzw
@@ -765,3 +769,7 @@
- f'(arg3) = f'(arg4) = 0"
(+ arg0 (* (- arg1 arg0) (smooth-step (/ (- arg2 arg3) (- arg4 arg3)))))
)
File diff suppressed because it is too large Load Diff
+115
View File
@@ -0,0 +1,115 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type timer-mode
(deftype timer-mode (uint32)
"This matches the Tn_MODE register structure of the ps2 EE timers.
Only the lower 32 bits of these registers are usable, and the upper 16 hardwired to zero."
((clks timer-clock-selection :offset 0 :size 2)
(gate uint8 :offset 2 :size 1)
(gats uint8 :offset 3 :size 1)
(gatm uint8 :offset 4 :size 2)
(zret uint8 :offset 6 :size 1)
(cue uint8 :offset 7 :size 1)
(cmpe uint8 :offset 8 :size 1)
(ovfe uint8 :offset 9 :size 1)
(equf uint8 :offset 10 :size 1)
(ovff uint8 :offset 11 :size 1)
)
)
;; definition of type timer-bank
(deftype timer-bank (structure)
"This matches an EE timer (without a HOLD register, timers 2 and 3).
Each register is 128-bits wide, but only the lower 32-bits are usable, and the upper
16-bits of that are hardwired to zero."
((count uint32)
(mode timer-mode :offset 16)
(comp uint32 :offset 32)
)
)
;; definition for method 3 of type timer-bank
(defmethod inspect ((this timer-bank))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this 'timer-bank)
(format #t "~1Tcount: #x~X~%" (-> this count))
(format #t "~1Tmode: #x~X~%" (-> this mode))
(format #t "~1Tcomp: #x~X~%" (-> this comp))
(label cfg-4)
this
)
;; definition of type timer-hold-bank
(deftype timer-hold-bank (timer-bank)
"This matches an EE timer (with a HOLD register, timers 0 and 1)."
((hold uint32 :offset 48)
)
)
;; definition for method 3 of type timer-hold-bank
(defmethod inspect ((this timer-hold-bank))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this 'timer-hold-bank)
(format #t "~1Tcount: #x~X~%" (-> this count))
(format #t "~1Tmode: #x~X~%" (-> this mode))
(format #t "~1Tcomp: #x~X~%" (-> this comp))
(format #t "~1Thold: #x~X~%" (-> this hold))
(label cfg-4)
this
)
;; definition of type stopwatch
(deftype stopwatch (basic)
"Stopwatches are used to measure CPU clock cycles.
They don't use the timer above, but instead the Count COP0 register,
which counts CPU clock cycles directly."
((prev-time-elapsed time-frame)
(start-time time-frame)
(begin-level int32)
)
)
;; definition for method 3 of type stopwatch
(defmethod inspect ((this stopwatch))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this (-> this type))
(format #t "~1Tprev-time-elapsed: ~D~%" (-> this prev-time-elapsed))
(format #t "~1Tstart-time: ~D~%" (-> this start-time))
(format #t "~1Tbegin-level: ~D~%" (-> this begin-level))
(label cfg-4)
this
)
;; definition for symbol *ticks-per-frame*, type int
(define *ticks-per-frame* 9765)
;; definition for function timer-init
(defun timer-init ((arg0 timer-bank) (arg1 timer-mode))
"Initiate a timer, start counting at a rate of 1 every 256 bus clocks (BUSCLK: ~147.456MHz)."
(set! (-> arg0 mode) arg1)
(set! (-> arg0 count) (the-as uint 0))
0
)
;; failed to figure out what this is:
(timer-init
(the-as timer-bank #x10000800)
(new 'static 'timer-mode :clks (timer-clock-selection busclk/256) :cue #x1)
)
;; failed to figure out what this is:
0
+124
View File
@@ -0,0 +1,124 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type vif-stat
(deftype vif-stat (uint32)
((vps uint8 :offset 0 :size 2)
(vew uint8 :offset 2 :size 1)
(mrk uint8 :offset 6 :size 1)
(vss uint8 :offset 8 :size 1)
(vfs uint8 :offset 9 :size 1)
(vis uint8 :offset 10 :size 1)
(int uint8 :offset 11 :size 1)
(er0 uint8 :offset 12 :size 1)
(er1 uint8 :offset 13 :size 1)
(fqc uint8 :offset 24 :size 4)
)
)
;; definition for method 3 of type vif-stat
(defmethod inspect ((this vif-stat))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this 'vif-stat)
(format #t "~1Tvps: ~D~%" (-> this vps))
(format #t "~1Tvew: ~D~%" (-> this vew))
(format #t "~1Tmrk: ~D~%" (-> this mrk))
(format #t "~1Tvss: ~D~%" (-> this vss))
(format #t "~1Tvfs: ~D~%" (-> this vfs))
(format #t "~1Tvis: ~D~%" (-> this vis))
(format #t "~1Tint: ~D~%" (-> this int))
(format #t "~1Ter0: ~D~%" (-> this er0))
(format #t "~1Ter1: ~D~%" (-> this er1))
(format #t "~1Tfqc: ~D~%" (-> this fqc))
(label cfg-4)
this
)
;; definition of type vif-fbrst
(deftype vif-fbrst (uint32)
((rst uint8 :offset 0 :size 1)
(fbk uint8 :offset 1 :size 1)
(stp uint8 :offset 2 :size 1)
(stc uint8 :offset 3 :size 1)
)
)
;; definition of type vif-err
(deftype vif-err (uint32)
((mii uint8 :offset 0 :size 1)
(me0 uint8 :offset 1 :size 1)
(me1 uint8 :offset 2 :size 1)
)
)
;; definition of type vif-bank
(deftype vif-bank (structure)
((stat uint32)
(fbrst uint32 :offset 16)
(err vif-err :offset 32)
(mark uint32 :offset 48)
(cycle uint32 :offset 64)
(mode uint32 :offset 80)
(num uint32 :offset 96)
(mask uint32 :offset 112)
(code uint32 :offset 128)
(itops uint32 :offset 144)
(base uint32 :offset 160)
(offset uint32 :offset 176)
(tops uint32 :offset 192)
(itop uint32 :offset 208)
(top uint32 :offset 224)
(r0 uint32 :offset 256)
(r1 uint32 :offset 272)
(r2 uint32 :offset 288)
(r3 uint32 :offset 304)
(c0 uint32 :offset 320)
(c1 uint32 :offset 336)
(c2 uint32 :offset 352)
(c3 uint32 :offset 368)
)
)
;; definition for method 3 of type vif-bank
(defmethod inspect ((this vif-bank))
(when (not this)
(set! this this)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" this 'vif-bank)
(format #t "~1Tstat: #x~X~%" (-> this stat))
(format #t "~1Tfbrst: #x~X~%" (-> this fbrst))
(format #t "~1Terr: #x~X~%" (-> this err))
(format #t "~1Tmark: #x~X~%" (-> this mark))
(format #t "~1Tcycle: #x~X~%" (-> this cycle))
(format #t "~1Tmode: #x~X~%" (-> this mode))
(format #t "~1Tnum: #x~X~%" (-> this num))
(format #t "~1Tmask: #x~X~%" (-> this mask))
(format #t "~1Tcode: #x~X~%" (-> this code))
(format #t "~1Titops: #x~X~%" (-> this itops))
(format #t "~1Tbase: #x~X~%" (-> this base))
(format #t "~1Toffset: #x~X~%" (-> this offset))
(format #t "~1Ttops: #x~X~%" (-> this tops))
(format #t "~1Titop: #x~X~%" (-> this itop))
(format #t "~1Ttop: #x~X~%" (-> this top))
(format #t "~1Tr0: #x~X~%" (-> this r0))
(format #t "~1Tr1: #x~X~%" (-> this r1))
(format #t "~1Tr2: #x~X~%" (-> this r2))
(format #t "~1Tr3: #x~X~%" (-> this r3))
(format #t "~1Tc0: #x~X~%" (-> this c0))
(format #t "~1Tc1: #x~X~%" (-> this c1))
(format #t "~1Tc2: #x~X~%" (-> this c2))
(format #t "~1Tc3: #x~X~%" (-> this c3))
(label cfg-4)
this
)
;; failed to figure out what this is:
0
+6 -1
View File
@@ -30,7 +30,12 @@
// matrix
"matrix-axis-sin-cos-vu!",
"matrix-axis-sin-cos!",
"matrix-3x3-normalize!"
"matrix-3x3-normalize!",
// geometry
"closest-pt-in-triangle",
"circle-circle-xz-intersect",
"calculate-basis-functions-vector!",
"curve-evaluate!"
],
"skip_compile_states": {}