diff --git a/common/goal_constants.h b/common/goal_constants.h index cc48b3ac4d..12cb1abf84 100644 --- a/common/goal_constants.h +++ b/common/goal_constants.h @@ -57,7 +57,7 @@ constexpr int SYM_TO_STRING_OFFSET = 0xff37; constexpr int SYM_TO_HASH_OFFSET = 0x1fe6f; // amount of levels in level heap -constexpr int LEVEL_MAX = 8; // 6 +constexpr int LEVEL_MAX = 10; // 6 // total amount of levels, including ones outside level heap (default-level) constexpr int LEVEL_TOTAL = LEVEL_MAX + 1; } // namespace jak2 diff --git a/game/graphics/opengl_renderer/buckets.h b/game/graphics/opengl_renderer/buckets.h index 3c8498890d..1c0186a9dc 100644 --- a/game/graphics/opengl_renderer/buckets.h +++ b/game/graphics/opengl_renderer/buckets.h @@ -176,6 +176,28 @@ enum class BucketId { EMERC_L7_TFRAG, GMERC_L7_TFRAG, TIE_V_L7_TFRAG, + TEX_L8_TFRAG, + TFRAG_L8_TFRAG, + TIE_L8_TFRAG, + ETIE_L8_TFRAG, + TFRAG_S_L8_TFRAG, + TIE_S_L8_TFRAG, + ETIE_S_L8_TFRAG, + MERC_L8_TFRAG, + EMERC_L8_TFRAG, + GMERC_L8_TFRAG, + TIE_V_L8_TFRAG, + TEX_L9_TFRAG, + TFRAG_L9_TFRAG, + TIE_L9_TFRAG, + ETIE_L9_TFRAG, + TFRAG_S_L9_TFRAG, + TIE_S_L9_TFRAG, + ETIE_S_L9_TFRAG, + MERC_L9_TFRAG, + EMERC_L9_TFRAG, + GMERC_L9_TFRAG, + TIE_V_L9_TFRAG, TEX_L0_SHRUB, SHRUB_L0_SHRUB, SHRUB_N_L0_SHRUB, @@ -248,6 +270,24 @@ enum class BucketId { MERC_L7_SHRUB, EMERC_L7_SHRUB, GMERC_L7_SHRUB, + TEX_L8_SHRUB, + SHRUB_L8_SHRUB, + SHRUB_N_L8_SHRUB, + BILLBOARD_L8_SHRUB, + SHRUB_V_L8_SHRUB, + SHRUB_NT_L8_SHRUB, + MERC_L8_SHRUB, + EMERC_L8_SHRUB, + GMERC_L8_SHRUB, + TEX_L9_SHRUB, + SHRUB_L9_SHRUB, + SHRUB_N_L9_SHRUB, + BILLBOARD_L9_SHRUB, + SHRUB_V_L9_SHRUB, + SHRUB_NT_L9_SHRUB, + MERC_L9_SHRUB, + EMERC_L9_SHRUB, + GMERC_L9_SHRUB, TEX_L0_ALPHA, TFRAG_T_L0_ALPHA, TIE_T_L0_ALPHA, @@ -328,6 +368,26 @@ enum class BucketId { TFRAG_ST_L7_ALPHA, TIE_ST_L7_ALPHA, ETIE_ST_L7_ALPHA, + TEX_L8_ALPHA, + TFRAG_T_L8_ALPHA, + TIE_T_L8_ALPHA, + ETIE_T_L8_ALPHA, + MERC_L8_ALPHA, + EMERC_L8_ALPHA, + GMERC_L8_ALPHA, + TFRAG_ST_L8_ALPHA, + TIE_ST_L8_ALPHA, + ETIE_ST_L8_ALPHA, + TEX_L9_ALPHA, + TFRAG_T_L9_ALPHA, + TIE_T_L9_ALPHA, + ETIE_T_L9_ALPHA, + MERC_L9_ALPHA, + EMERC_L9_ALPHA, + GMERC_L9_ALPHA, + TFRAG_ST_L9_ALPHA, + TIE_ST_L9_ALPHA, + ETIE_ST_L9_ALPHA, TEX_LCOM_TFRAG, MERC_LCOM_TFRAG, EMERC_LCOM_TFRAG, @@ -369,6 +429,14 @@ enum class BucketId { MERC_L7_PRIS, EMERC_L7_PRIS, GMERC_L7_PRIS, + TEX_L8_PRIS, + MERC_L8_PRIS, + EMERC_L8_PRIS, + GMERC_L8_PRIS, + TEX_L9_PRIS, + MERC_L9_PRIS, + EMERC_L9_PRIS, + GMERC_L9_PRIS, TEX_LCOM_PRIS, MERC_LCOM_PRIS, EMERC_LCOM_PRIS, @@ -405,6 +473,14 @@ enum class BucketId { MERC_L7_PRIS2, EMERC_L7_PRIS2, GMERC_L7_PRIS2, + TEX_L8_PRIS2, + MERC_L8_PRIS2, + EMERC_L8_PRIS2, + GMERC_L8_PRIS2, + TEX_L9_PRIS2, + MERC_L9_PRIS2, + EMERC_L9_PRIS2, + GMERC_L9_PRIS2, TEX_LCOM_PRIS2, MERC_LCOM_PRIS2, EMERC_LCOM_PRIS2, @@ -481,6 +557,24 @@ enum class BucketId { TIE_SW_L7_WATER, TFRAG_WS_L7_WATER, ETIE_SW_L7_WATER, + TEX_L8_WATER, + MERC_L8_WATER, + GMERC_L8_WATER, + TFRAG_W_L8_WATER, + TIE_W_L8_WATER, + ETIE_W_L8_WATER, + TIE_SW_L8_WATER, + TFRAG_WS_L8_WATER, + ETIE_SW_L8_WATER, + TEX_L9_WATER, + MERC_L9_WATER, + GMERC_L9_WATER, + TFRAG_W_L9_WATER, + TIE_W_L9_WATER, + ETIE_W_L9_WATER, + TIE_SW_L9_WATER, + TFRAG_WS_L9_WATER, + ETIE_SW_L9_WATER, TEX_LCOM_WATER, MERC_LCOM_WATER, GMERC_LCOM_WATER, diff --git a/game/kernel/common/memory_layout.h b/game/kernel/common/memory_layout.h index 16e7bc21b2..3451a951d9 100644 --- a/game/kernel/common/memory_layout.h +++ b/game/kernel/common/memory_layout.h @@ -29,3 +29,5 @@ constexpr u32 DEBUG_HEAP_START = 0x8000000; namespace jak2 { constexpr u32 DEBUG_HEAP_SIZE = 0x2f00000; } + +static_assert(DEBUG_HEAP_START > GLOBAL_HEAP_END, "global heap overrun into debug"); diff --git a/game/kernel/jak2/kscheme.cpp b/game/kernel/jak2/kscheme.cpp index a095948251..490c28b179 100644 --- a/game/kernel/jak2/kscheme.cpp +++ b/game/kernel/jak2/kscheme.cpp @@ -918,7 +918,7 @@ Ptr set_fixed_type(u32 offset, } static bool in_valid_memory_for_new_type(u32 addr) { - if (SymbolTable2.offset <= addr && addr < 0x8000000) { + if (SymbolTable2.offset <= addr && addr < EE_MAIN_MEM_SIZE) { return true; } diff --git a/goal_src/jak2/engine/gfx/background/background.gc b/goal_src/jak2/engine/gfx/background/background.gc index b0069db3f2..ed033c4010 100644 --- a/goal_src/jak2/engine/gfx/background/background.gc +++ b/goal_src/jak2/engine/gfx/background/background.gc @@ -363,6 +363,12 @@ ) ) + (format *stdcon* "tree-counts:~%") + (format *stdcon* "~1Ttfrag : ~D~%" (-> *background-work* tfrag-tree-count)) + (format *stdcon* "~1Ttfrag-trans : ~D~%" (-> *background-work* tfrag-trans-tree-count)) + (format *stdcon* "~1Ttfrag-water : ~D~%" (-> *background-work* tfrag-water-tree-count)) + (format *stdcon* "~1Tshrub : ~D~%" (-> *background-work* shrub-tree-count)) + (format *stdcon* "~1Ttie : ~D~%" (-> *background-work* tie-tree-count)) (let ((gp-6 (the-as level #f))) (when (or (nonzero? (-> *background-work* tfrag-tree-count)) (nonzero? (-> *background-work* tfrag-trans-tree-count)) diff --git a/goal_src/jak2/engine/gfx/background/tfrag/tfrag-methods.gc b/goal_src/jak2/engine/gfx/background/tfrag/tfrag-methods.gc index 0cab4d3843..998bf560e9 100644 --- a/goal_src/jak2/engine/gfx/background/tfrag/tfrag-methods.gc +++ b/goal_src/jak2/engine/gfx/background/tfrag/tfrag-methods.gc @@ -109,8 +109,14 @@ ((= v1-53 6) (bucket-id tfrag-l6-tfrag) ) + ((= v1-53 7) + (bucket-id tfrag-l7-tfrag) + ) + ((= v1-53 8) + (bucket-id tfrag-l8-tfrag) + ) (else - (bucket-id tfrag-l7-tfrag) + (bucket-id tfrag-l9-tfrag) ) ) s2-0 @@ -268,8 +274,14 @@ ((= v1-46 6) (bucket-id tfrag-t-l6-alpha) ) + ((= v1-46 7) + (bucket-id tfrag-t-l7-alpha) + ) + ((= v1-46 8) + (bucket-id tfrag-t-l8-alpha) + ) (else - (bucket-id tfrag-t-l7-alpha) + (bucket-id tfrag-t-l9-alpha) ) ) s3-0 @@ -415,8 +427,14 @@ ((= v1-46 6) (bucket-id tfrag-w-l6-water) ) + ((= v1-46 7) + (bucket-id tfrag-w-l7-water) + ) + ((= v1-46 8) + (bucket-id tfrag-w-l8-water) + ) (else - (bucket-id tfrag-w-l7-water) + (bucket-id tfrag-w-l9-water) ) ) s3-0 @@ -606,6 +624,22 @@ :tfrag-water-bucket (bucket-id tfrag-w-l7-water) :tfrag-water-scissor-bucket (bucket-id tfrag-ws-l7-water) ) + (new 'static 'tfrag-init-data + :tfrag-bucket (bucket-id tfrag-l8-tfrag) + :tfrag-scissor-bucket (bucket-id tfrag-s-l8-tfrag) + :tfrag-trans-bucket (bucket-id tfrag-t-l8-alpha) + :tfrag-scissor-trans-bucket (bucket-id tfrag-st-l8-alpha) + :tfrag-water-bucket (bucket-id tfrag-w-l8-water) + :tfrag-water-scissor-bucket (bucket-id tfrag-ws-l8-water) + ) + (new 'static 'tfrag-init-data + :tfrag-bucket (bucket-id tfrag-l9-tfrag) + :tfrag-scissor-bucket (bucket-id tfrag-s-l9-tfrag) + :tfrag-trans-bucket (bucket-id tfrag-t-l9-alpha) + :tfrag-scissor-trans-bucket (bucket-id tfrag-st-l9-alpha) + :tfrag-water-bucket (bucket-id tfrag-w-l9-water) + :tfrag-water-scissor-bucket (bucket-id tfrag-ws-l9-water) + ) ) ) diff --git a/goal_src/jak2/engine/gfx/background/tie/tie-methods.gc b/goal_src/jak2/engine/gfx/background/tie/tie-methods.gc index 76fb42cd1c..48171d26e4 100644 --- a/goal_src/jak2/engine/gfx/background/tie/tie-methods.gc +++ b/goal_src/jak2/engine/gfx/background/tie/tie-methods.gc @@ -273,8 +273,14 @@ ((= v1-48 6) (bucket-id tie-l6-tfrag) ) + ((= v1-48 7) + (bucket-id tie-l7-tfrag) + ) + ((= v1-48 8) + (bucket-id tie-l8-tfrag) + ) (else - (bucket-id tie-l7-tfrag) + (bucket-id tie-l9-tfrag) ) ) a2-10 @@ -1654,6 +1660,36 @@ :tie-envmap-water-bucket (bucket-id etie-w-l7-water) :tie-envmap-scissor-water-bucket (bucket-id etie-sw-l7-water) ) + (new 'static 'tie-init-data + :tie-bucket (bucket-id tie-l8-tfrag) + :tie-scissor-bucket (bucket-id tie-s-l8-tfrag) + :tie-envmap-bucket (bucket-id etie-l8-tfrag) + :tie-envmap-scissor-bucket (bucket-id etie-s-l8-tfrag) + :tie-vanish-bucket (bucket-id tie-v-l8-tfrag) + :tie-trans-bucket (bucket-id tie-t-l8-alpha) + :tie-scissor-trans-bucket (bucket-id tie-st-l8-alpha) + :tie-envmap-trans-bucket (bucket-id etie-t-l8-alpha) + :tie-envmap-scissor-trans-bucket (bucket-id etie-st-l8-alpha) + :tie-water-bucket (bucket-id tie-w-l8-water) + :tie-scissor-water-bucket (bucket-id tie-sw-l8-water) + :tie-envmap-water-bucket (bucket-id etie-w-l8-water) + :tie-envmap-scissor-water-bucket (bucket-id etie-sw-l8-water) + ) + (new 'static 'tie-init-data + :tie-bucket (bucket-id tie-l9-tfrag) + :tie-scissor-bucket (bucket-id tie-s-l9-tfrag) + :tie-envmap-bucket (bucket-id etie-l9-tfrag) + :tie-envmap-scissor-bucket (bucket-id etie-s-l9-tfrag) + :tie-vanish-bucket (bucket-id tie-v-l9-tfrag) + :tie-trans-bucket (bucket-id tie-t-l9-alpha) + :tie-scissor-trans-bucket (bucket-id tie-st-l9-alpha) + :tie-envmap-trans-bucket (bucket-id etie-t-l9-alpha) + :tie-envmap-scissor-trans-bucket (bucket-id etie-st-l9-alpha) + :tie-water-bucket (bucket-id tie-w-l9-water) + :tie-scissor-water-bucket (bucket-id tie-sw-l9-water) + :tie-envmap-water-bucket (bucket-id etie-w-l9-water) + :tie-envmap-scissor-water-bucket (bucket-id etie-sw-l9-water) + ) ) ) diff --git a/goal_src/jak2/engine/gfx/foreground/foreground-h.gc b/goal_src/jak2/engine/gfx/foreground/foreground-h.gc index 101b8368ac..73210ee37a 100644 --- a/goal_src/jak2/engine/gfx/foreground/foreground-h.gc +++ b/goal_src/jak2/engine/gfx/foreground/foreground-h.gc @@ -54,11 +54,11 @@ (deftype foreground-bucket-grid (structure) ((level-buckets foreground-level-buckets LEVEL_TOTAL :inline :offset-assert 0) - (warp-chain mercneric-chain :inline :offset-assert 3024) + (warp-chain mercneric-chain :inline) ) :method-count-assert 9 - :size-assert #xbe4 - :flag-assert #x900000be4 + ;:size-assert #xbe4 + ;:flag-assert #x900000be4 ) (deftype foreground-regs (structure) @@ -86,14 +86,14 @@ ((regs foreground-regs :inline :offset-assert 0) (draw-index-map uint8 LEVEL_TOTAL :offset 64) (grid foreground-bucket-grid :inline :offset-assert 80) - (bounds sphere :inline :offset-assert 3136) - (lights vu-lights :inline :offset-assert 3152) - (distance vector :inline :offset-assert 3264) - (next-tmpl dma-packet :inline :offset-assert 3280) + (bounds sphere :inline); :offset-assert 3136) + (lights vu-lights :inline); :offset-assert 3152) + (distance vector :inline); :offset-assert 3264) + (next-tmpl dma-packet :inline); :offset-assert 3280) ) :method-count-assert 9 - :size-assert #xce0 - :flag-assert #x900000ce0 + ;:size-assert #xce0 + ;:flag-assert #x900000ce0 ) @@ -143,12 +143,12 @@ (deftype foreground-globals (structure) ((foreground-grid foreground-bucket-grid :inline :offset-assert 0) - (merc-bucket-info merc-bucket-info :inline :offset-assert 3056) - (texscroll texscroll-globals :inline :offset-assert 3696) + (merc-bucket-info merc-bucket-info :inline); :offset-assert 3056) + (texscroll texscroll-globals :inline); :offset-assert 3696) ) :method-count-assert 9 - :size-assert #xef4 - :flag-assert #x900000ef4 + ;:size-assert #xef4 + ;:flag-assert #x900000ef4 ) (define *foreground* (new 'global 'foreground-globals)) diff --git a/goal_src/jak2/engine/gfx/foreground/foreground.gc b/goal_src/jak2/engine/gfx/foreground/foreground.gc index e300b6528f..9807dba71c 100644 --- a/goal_src/jak2/engine/gfx/foreground/foreground.gc +++ b/goal_src/jak2/engine/gfx/foreground/foreground.gc @@ -20,7 +20,7 @@ (define foreground-vu0-block (new 'static 'vu-function)) -(define *bucket-map* (new 'static 'array bucket-id-16 260 +(define *bucket-map* (new 'static 'array bucket-id-16 308 (bucket-id-16 merc-l0-tfrag) (bucket-id-16 emerc-l0-tfrag) (bucket-id-16 gmerc-l0-tfrag) @@ -245,6 +245,62 @@ (bucket-id-16 emerc-l7-pris2) (bucket-id-16 gmerc-l7-pris2) (bucket-id-16 tex-l7-pris2) + (bucket-id-16 merc-l8-tfrag) + (bucket-id-16 emerc-l8-tfrag) + (bucket-id-16 gmerc-l8-tfrag) + (bucket-id-16 tex-l8-tfrag) + (bucket-id-16 merc-l8-pris) + (bucket-id-16 emerc-l8-pris) + (bucket-id-16 gmerc-l8-pris) + (bucket-id-16 tex-l8-pris) + (bucket-id-16 merc-l8-shrub) + (bucket-id-16 emerc-l8-shrub) + (bucket-id-16 gmerc-l8-shrub) + (bucket-id-16 tex-l8-shrub) + (bucket-id-16 merc-l8-alpha) + (bucket-id-16 emerc-l8-alpha) + (bucket-id-16 gmerc-l8-alpha) + (bucket-id-16 tex-l8-alpha) + (bucket-id-16 merc-l8-water) + (bucket-id-16 merc-l8-water) + (bucket-id-16 gmerc-l8-water) + (bucket-id-16 tex-l8-water) + (bucket-id-16 merc-l8-pris) + (bucket-id-16 emerc-l8-pris) + (bucket-id-16 gmerc-l8-pris) + (bucket-id-16 tex-l8-pris) + (bucket-id-16 merc-l8-pris2) + (bucket-id-16 emerc-l8-pris2) + (bucket-id-16 gmerc-l8-pris2) + (bucket-id-16 tex-l8-pris2) + (bucket-id-16 merc-l9-tfrag) + (bucket-id-16 emerc-l9-tfrag) + (bucket-id-16 gmerc-l9-tfrag) + (bucket-id-16 tex-l9-tfrag) + (bucket-id-16 merc-l9-pris) + (bucket-id-16 emerc-l9-pris) + (bucket-id-16 gmerc-l9-pris) + (bucket-id-16 tex-l9-pris) + (bucket-id-16 merc-l9-shrub) + (bucket-id-16 emerc-l9-shrub) + (bucket-id-16 gmerc-l9-shrub) + (bucket-id-16 tex-l9-shrub) + (bucket-id-16 merc-l9-alpha) + (bucket-id-16 emerc-l9-alpha) + (bucket-id-16 gmerc-l9-alpha) + (bucket-id-16 tex-l9-alpha) + (bucket-id-16 merc-l9-water) + (bucket-id-16 merc-l9-water) + (bucket-id-16 gmerc-l9-water) + (bucket-id-16 tex-l9-water) + (bucket-id-16 merc-l9-pris) + (bucket-id-16 emerc-l9-pris) + (bucket-id-16 gmerc-l9-pris) + (bucket-id-16 tex-l9-pris) + (bucket-id-16 merc-l9-pris2) + (bucket-id-16 emerc-l9-pris2) + (bucket-id-16 gmerc-l9-pris2) + (bucket-id-16 tex-l9-pris2) (bucket-id-16 merc-lcom-tfrag) (bucket-id-16 emerc-lcom-tfrag) (bucket-id-16 gmerc-lcom-tfrag) @@ -273,14 +329,6 @@ (bucket-id-16 emerc-lcom-pris2) (bucket-id-16 gmerc-lcom-pris2) (bucket-id-16 tex-lcom-pris2) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) - (bucket-id-16 bucket-0) ) ) diff --git a/goal_src/jak2/engine/gfx/foreground/merc/emerc.gc b/goal_src/jak2/engine/gfx/foreground/merc/emerc.gc index c08868b66e..34d2cccee3 100644 --- a/goal_src/jak2/engine/gfx/foreground/merc/emerc.gc +++ b/goal_src/jak2/engine/gfx/foreground/merc/emerc.gc @@ -118,6 +118,16 @@ (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0 ) + (emerc-vu1-init-buffer + (bucket-id emerc-l8-tfrag) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id emerc-l9-tfrag) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) (emerc-vu1-init-buffer (bucket-id emerc-lcom-tfrag) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) @@ -163,6 +173,16 @@ (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0 ) + (emerc-vu1-init-buffer + (bucket-id emerc-l8-pris) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id emerc-l9-pris) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) (emerc-vu1-init-buffer (bucket-id emerc-lcom-pris) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) @@ -208,6 +228,16 @@ (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0 ) + (emerc-vu1-init-buffer + (bucket-id emerc-l8-shrub) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id emerc-l9-shrub) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) (emerc-vu1-init-buffer (bucket-id emerc-lcom-shrub) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) @@ -253,6 +283,16 @@ (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0 ) + (emerc-vu1-init-buffer + (bucket-id emerc-l8-alpha) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id emerc-l9-alpha) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) (emerc-vu1-init-buffer (bucket-id emerc-l0-pris2) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) @@ -293,6 +333,16 @@ (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) 0 ) + (emerc-vu1-init-buffer + (bucket-id emerc-l8-pris2) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) + (emerc-vu1-init-buffer + (bucket-id emerc-l9-pris2) + (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) + 0 + ) (emerc-vu1-init-buffer (bucket-id emerc-lcom-pris2) (new 'static 'gs-test :zte #x1 :ztst (gs-ztest greater-equal)) diff --git a/goal_src/jak2/engine/gfx/foreground/merc/merc.gc b/goal_src/jak2/engine/gfx/foreground/merc/merc.gc index adc952bc5c..eb6264a621 100644 --- a/goal_src/jak2/engine/gfx/foreground/merc/merc.gc +++ b/goal_src/jak2/engine/gfx/foreground/merc/merc.gc @@ -574,6 +574,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-tfrag) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l6-tfrag) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l7-tfrag) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l8-tfrag) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l9-tfrag) 0 #t) (merc-vu1-init-buffer (bucket-id merc-lcom-tfrag) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l0-pris) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l1-pris) 0 #t) @@ -583,6 +585,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-pris) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l6-pris) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l7-pris) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l8-pris) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l9-pris) 0 #t) (merc-vu1-init-buffer (bucket-id merc-lcom-pris) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l0-shrub) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l1-shrub) 0 #t) @@ -592,6 +596,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-shrub) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l6-shrub) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l7-shrub) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l8-shrub) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l9-shrub) 0 #t) (merc-vu1-init-buffer (bucket-id merc-lcom-shrub) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l0-alpha) 1 #t) (merc-vu1-init-buffer (bucket-id merc-l1-alpha) 1 #t) @@ -601,6 +607,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-alpha) 1 #t) (merc-vu1-init-buffer (bucket-id merc-l6-alpha) 1 #t) (merc-vu1-init-buffer (bucket-id merc-l7-alpha) 1 #t) + (merc-vu1-init-buffer (bucket-id merc-l8-alpha) 1 #t) + (merc-vu1-init-buffer (bucket-id merc-l9-alpha) 1 #t) (merc-vu1-init-buffer (bucket-id merc-l0-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l1-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l2-pris2) 0 #t) @@ -609,6 +617,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l6-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l7-pris2) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l8-pris2) 0 #t) + (merc-vu1-init-buffer (bucket-id merc-l9-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-lcom-pris2) 0 #t) (merc-vu1-init-buffer (bucket-id merc-l0-water) 1 #f) (merc-vu1-init-buffer (bucket-id merc-l1-water) 1 #f) @@ -618,6 +628,8 @@ (merc-vu1-init-buffer (bucket-id merc-l5-water) 1 #f) (merc-vu1-init-buffer (bucket-id merc-l6-water) 1 #f) (merc-vu1-init-buffer (bucket-id merc-l7-water) 1 #f) + (merc-vu1-init-buffer (bucket-id merc-l8-water) 1 #f) + (merc-vu1-init-buffer (bucket-id merc-l9-water) 1 #f) (merc-vu1-init-buffer (bucket-id merc-lcom-water) 1 #f) ) 0 diff --git a/goal_src/jak2/engine/gfx/generic/generic-vu1.gc b/goal_src/jak2/engine/gfx/generic/generic-vu1.gc index 3ab578a321..ae300c5eb8 100644 --- a/goal_src/jak2/engine/gfx/generic/generic-vu1.gc +++ b/goal_src/jak2/engine/gfx/generic/generic-vu1.gc @@ -151,6 +151,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-tfrag) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l6-tfrag) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l7-tfrag) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-tfrag) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-tfrag) s5-0) (generic-vu1-init-buf (bucket-id gmerc-lcom-tfrag) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l0-pris) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l1-pris) s5-0) @@ -160,6 +162,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-pris) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l6-pris) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l7-pris) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-pris) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-pris) s5-0) (generic-vu1-init-buf (bucket-id gmerc-lcom-pris) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l0-shrub) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l1-shrub) s5-0) @@ -169,6 +173,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-shrub) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l6-shrub) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l7-shrub) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-shrub) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-shrub) s5-0) (generic-vu1-init-buf (bucket-id gmerc-lcom-shrub) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l0-alpha) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l1-alpha) s5-0) @@ -178,6 +184,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-alpha) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l6-alpha) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l7-alpha) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-alpha) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-alpha) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l0-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l1-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l2-pris2) s5-0) @@ -186,6 +194,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l6-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l7-pris2) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-pris2) s5-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-lcom-pris2) s5-0) (generic-vu1-init-buf (bucket-id gmerc-l0-water) gp-0) (generic-vu1-init-buf (bucket-id gmerc-l1-water) gp-0) @@ -195,6 +205,8 @@ (generic-vu1-init-buf (bucket-id gmerc-l5-water) gp-0) (generic-vu1-init-buf (bucket-id gmerc-l6-water) gp-0) (generic-vu1-init-buf (bucket-id gmerc-l7-water) gp-0) + (generic-vu1-init-buf (bucket-id gmerc-l8-water) gp-0) + (generic-vu1-init-buf (bucket-id gmerc-l9-water) gp-0) (generic-vu1-init-buf (bucket-id gmerc-lcom-water) gp-0) ) (generic-vu1-init-buf (bucket-id effects) gp-0) diff --git a/goal_src/jak2/engine/gfx/shrub/shrubbery.gc b/goal_src/jak2/engine/gfx/shrub/shrubbery.gc index 80dc631a3c..acdb23ca3d 100644 --- a/goal_src/jak2/engine/gfx/shrub/shrubbery.gc +++ b/goal_src/jak2/engine/gfx/shrub/shrubbery.gc @@ -512,8 +512,14 @@ ((= *draw-index* 6) (bucket-id shrub-l6-shrub) ) + ((= *draw-index* 7) + (bucket-id shrub-l7-shrub) + ) + ((= *draw-index* 8) + (bucket-id shrub-l8-shrub) + ) (else - (bucket-id shrub-l7-shrub) + (bucket-id shrub-l9-shrub) ) ) dma-start diff --git a/goal_src/jak2/engine/gfx/texture/texture-h.gc b/goal_src/jak2/engine/gfx/texture/texture-h.gc index f7c9bdd042..a3363d85fb 100644 --- a/goal_src/jak2/engine/gfx/texture/texture-h.gc +++ b/goal_src/jak2/engine/gfx/texture/texture-h.gc @@ -424,7 +424,7 @@ (new 'static 'boxed-array :type texture-page-translate-item (new 'static 'texture-page-translate-item :bucket (bucket-id tex-lcom-sky-pre) - :level-index #x8 + :level-index LEVEL_MAX :level-texture-page (tpage-category-u32 sky) :texture-user (texture-enable-mask-u32 sky) ) @@ -467,6 +467,16 @@ :level-index #x7 :texture-user (texture-enable-mask-u32 tfrag) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l8-tfrag) + :level-index #x8 + :texture-user (texture-enable-mask-u32 tfrag) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-tfrag) + :level-index #x9 + :texture-user (texture-enable-mask-u32 tfrag) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-l0-shrub) :level-texture-page (tpage-category-u32 shrub) @@ -514,6 +524,18 @@ :level-texture-page (tpage-category-u32 shrub) :texture-user (texture-enable-mask-u32 shrub) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l8-shrub) + :level-index #x8 + :level-texture-page (tpage-category-u32 shrub) + :texture-user (texture-enable-mask-u32 shrub) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-shrub) + :level-index #x9 + :level-texture-page (tpage-category-u32 shrub) + :texture-user (texture-enable-mask-u32 shrub) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-l0-alpha) :level-texture-page (tpage-category-u32 alpha) @@ -562,13 +584,25 @@ :texture-user (texture-enable-mask-u32 alpha) ) (new 'static 'texture-page-translate-item - :bucket (bucket-id tex-lcom-tfrag) + :bucket (bucket-id tex-l8-alpha) :level-index #x8 + :level-texture-page (tpage-category-u32 alpha) + :texture-user (texture-enable-mask-u32 alpha) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-alpha) + :level-index #x9 + :level-texture-page (tpage-category-u32 alpha) + :texture-user (texture-enable-mask-u32 alpha) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-lcom-tfrag) + :level-index LEVEL_MAX :texture-user (texture-enable-mask-u32 tfrag) ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-lcom-shrub) - :level-index #x8 + :level-index LEVEL_MAX :level-texture-page (tpage-category-u32 shrub) :texture-user (texture-enable-mask-u32 shrub) ) @@ -620,11 +654,23 @@ :texture-user (texture-enable-mask-u32 pris) ) (new 'static 'texture-page-translate-item - :bucket (bucket-id tex-lcom-pris) + :bucket (bucket-id tex-l8-pris) :level-index #x8 :level-texture-page (tpage-category-u32 pris) :texture-user (texture-enable-mask-u32 pris) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-pris) + :level-index #x9 + :level-texture-page (tpage-category-u32 pris) + :texture-user (texture-enable-mask-u32 pris) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-lcom-pris) + :level-index LEVEL_MAX + :level-texture-page (tpage-category-u32 pris) + :texture-user (texture-enable-mask-u32 pris) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-l0-pris2) :level-texture-page (tpage-category-u32 pris2) @@ -673,11 +719,23 @@ :texture-user (texture-enable-mask-u32 pris) ) (new 'static 'texture-page-translate-item - :bucket (bucket-id tex-lcom-pris2) + :bucket (bucket-id tex-l8-pris2) :level-index #x8 :level-texture-page (tpage-category-u32 pris2) :texture-user (texture-enable-mask-u32 pris) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-pris2) + :level-index #x9 + :level-texture-page (tpage-category-u32 pris2) + :texture-user (texture-enable-mask-u32 pris) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-lcom-pris2) + :level-index LEVEL_MAX + :level-texture-page (tpage-category-u32 pris2) + :texture-user (texture-enable-mask-u32 pris) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-l0-water) :level-texture-page (tpage-category-u32 water) @@ -726,14 +784,26 @@ :texture-user (texture-enable-mask-u32 water) ) (new 'static 'texture-page-translate-item - :bucket (bucket-id tex-lcom-water) + :bucket (bucket-id tex-l8-water) :level-index #x8 :level-texture-page (tpage-category-u32 water) :texture-user (texture-enable-mask-u32 water) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-l9-water) + :level-index #x9 + :level-texture-page (tpage-category-u32 water) + :texture-user (texture-enable-mask-u32 water) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-lcom-water) + :level-index LEVEL_MAX + :level-texture-page (tpage-category-u32 water) + :texture-user (texture-enable-mask-u32 water) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-lcom-sky-post) - :level-index #x8 + :level-index LEVEL_MAX :level-texture-page (tpage-category-u32 sky) :texture-user (texture-enable-mask-u32 sky) ) @@ -790,6 +860,18 @@ :level-texture-page (tpage-category-u32 sprite) :texture-user (texture-enable-mask-u32 sprite) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-sprite) + :level-index #x9 + :level-texture-page (tpage-category-u32 sprite) + :texture-user (texture-enable-mask-u32 sprite) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-sprite) + :level-index #xa + :level-texture-page (tpage-category-u32 sprite) + :texture-user (texture-enable-mask-u32 sprite) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-all-warp) :level-texture-page (tpage-category-u32 warp) @@ -843,6 +925,18 @@ :level-texture-page (tpage-category-u32 warp) :texture-user (texture-enable-mask-u32 warp) ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-warp) + :level-index #x9 + :level-texture-page (tpage-category-u32 warp) + :texture-user (texture-enable-mask-u32 warp) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-warp) + :level-index #xa + :level-texture-page (tpage-category-u32 warp) + :texture-user (texture-enable-mask-u32 warp) + ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-all-map) :level-texture-page (tpage-category-u32 map) @@ -898,7 +992,19 @@ ) (new 'static 'texture-page-translate-item :bucket (bucket-id tex-all-map) - :level-index #x8 + :level-index #x9 + :level-texture-page (tpage-category-u32 map) + :texture-user (texture-enable-mask-u32 map) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-map) + :level-index #xa + :level-texture-page (tpage-category-u32 map) + :texture-user (texture-enable-mask-u32 map) + ) + (new 'static 'texture-page-translate-item + :bucket (bucket-id tex-all-map) + :level-index LEVEL_MAX :level-texture-page (tpage-category-u32 alpha) :texture-user (texture-enable-mask-u32 map) ) diff --git a/goal_src/jak2/engine/gfx/vu1-user-h.gc b/goal_src/jak2/engine/gfx/vu1-user-h.gc index 8fa29eeba7..c1c4600537 100644 --- a/goal_src/jak2/engine/gfx/vu1-user-h.gc +++ b/goal_src/jak2/engine/gfx/vu1-user-h.gc @@ -22,6 +22,11 @@ for example: tie-s-l1-tfrag - while the tfrag tpage is in VRAM |# +;; max amount of levels in level heap +(defconstant LEVEL_MAX 10) +;; total amount of levels, including ones outside level heap (default-level) +(defconstant LEVEL_TOTAL 11) + ;; -- (defenum bucket-id :type int32 @@ -137,6 +142,30 @@ for example: tie-s-l1-tfrag (gmerc-l7-tfrag) ;; mercneric (tie-v-l7-tfrag) ;; tie + (tex-l8-tfrag) ;; tex + (tfrag-l8-tfrag) ;; tfrag + (tie-l8-tfrag) ;; tie + (etie-l8-tfrag) ;; tie + (tfrag-s-l8-tfrag) ;; tfrag + (tie-s-l8-tfrag) ;; tie + (etie-s-l8-tfrag) ;; tie + (merc-l8-tfrag) ;; merc + (emerc-l8-tfrag) ;; emerc + (gmerc-l8-tfrag) ;; mercneric + (tie-v-l8-tfrag) ;; tie + + (tex-l9-tfrag) ;; tex + (tfrag-l9-tfrag) ;; tfrag + (tie-l9-tfrag) ;; tie + (etie-l9-tfrag) ;; tie + (tfrag-s-l9-tfrag) ;; tfrag + (tie-s-l9-tfrag) ;; tie + (etie-s-l9-tfrag) ;; tie + (merc-l9-tfrag) ;; merc + (emerc-l9-tfrag) ;; emerc + (gmerc-l9-tfrag) ;; mercneric + (tie-v-l9-tfrag) ;; tie + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; All levels with shrub tpage ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -221,6 +250,26 @@ for example: tie-s-l1-tfrag (emerc-l7-shrub) ;; emerc (gmerc-l7-shrub) ;; mercneric + (tex-l8-shrub) ;; tex + (shrub-l8-shrub) ;; shrub + (shrub-n-l8-shrub) ;; shrub + (billboard-l8-shrub) ;; shrub + (shrub-v-l8-shrub) ;; shrub + (shrub-nt-l8-shrub) ;; shrub + (merc-l8-shrub) ;; merc + (emerc-l8-shrub) ;; emerc + (gmerc-l8-shrub) ;; mercneric + + (tex-l9-shrub) ;; tex + (shrub-l9-shrub) ;; shrub + (shrub-n-l9-shrub) ;; shrub + (billboard-l9-shrub) ;; shrub + (shrub-v-l9-shrub) ;; shrub + (shrub-nt-l9-shrub) ;; shrub + (merc-l9-shrub) ;; merc + (emerc-l9-shrub) ;; emerc + (gmerc-l9-shrub) ;; mercneric + (tex-l0-alpha) ;; tex (tfrag-t-l0-alpha) ;; tfrag (tie-t-l0-alpha) ;; tie @@ -309,6 +358,28 @@ for example: tie-s-l1-tfrag (tie-st-l7-alpha) ;; tie (etie-st-l7-alpha) ;; tie + (tex-l8-alpha) ;; tex + (tfrag-t-l8-alpha) ;; tfrag + (tie-t-l8-alpha) ;; tie + (etie-t-l8-alpha) ;; tie + (merc-l8-alpha) ;; merc + (emerc-l8-alpha) ;; emerc + (gmerc-l8-alpha) ;; mercneric + (tfrag-st-l8-alpha) ;; tfrag + (tie-st-l8-alpha) ;; tie + (etie-st-l8-alpha) ;; tie + + (tex-l9-alpha) ;; tex + (tfrag-t-l9-alpha) ;; tfrag + (tie-t-l9-alpha) ;; tie + (etie-t-l9-alpha) ;; tie + (merc-l9-alpha) ;; merc + (emerc-l9-alpha) ;; emerc + (gmerc-l9-alpha) ;; mercneric + (tfrag-st-l9-alpha) ;; tfrag + (tie-st-l9-alpha) ;; tie + (etie-st-l9-alpha) ;; tie + (tex-lcom-tfrag) ;; tex (merc-lcom-tfrag) ;; merc (emerc-lcom-tfrag) ;; emerc @@ -361,6 +432,16 @@ for example: tie-s-l1-tfrag (emerc-l7-pris) ;; emerc (gmerc-l7-pris) ;; mercneric + (tex-l8-pris) ;; tex + (merc-l8-pris) ;; merc + (emerc-l8-pris) ;; emerc + (gmerc-l8-pris) ;; mercneric + + (tex-l9-pris) ;; tex + (merc-l9-pris) ;; merc + (emerc-l9-pris) ;; emerc + (gmerc-l9-pris) ;; mercneric + (tex-lcom-pris) ;; tex (merc-lcom-pris) ;; merc (emerc-lcom-pris) ;; emerc @@ -406,6 +487,16 @@ for example: tie-s-l1-tfrag (emerc-l7-pris2) ;; emerc (gmerc-l7-pris2) ;; mercneric + (tex-l8-pris2) ;; tex + (merc-l8-pris2) ;; merc + (emerc-l8-pris2) ;; emerc + (gmerc-l8-pris2) ;; mercneric + + (tex-l9-pris2) ;; tex + (merc-l9-pris2) ;; merc + (emerc-l9-pris2) ;; emerc + (gmerc-l9-pris2) ;; mercneric + (tex-lcom-pris2) ;; tex (merc-lcom-pris2) ;; merc (emerc-lcom-pris2) ;; emerc @@ -491,6 +582,26 @@ for example: tie-s-l1-tfrag (tfrag-ws-l7-water) ;; tfrag (etie-sw-l7-water) + (tex-l8-water) ;; tex + (merc-l8-water) ;; merc + (gmerc-l8-water) ;; mercneric + (tfrag-w-l8-water) ;; tfrag + (tie-w-l8-water) + (etie-w-l8-water) + (tie-sw-l8-water) + (tfrag-ws-l8-water) ;; tfrag + (etie-sw-l8-water) + + (tex-l9-water) ;; tex + (merc-l9-water) ;; merc + (gmerc-l9-water) ;; mercneric + (tfrag-w-l9-water) ;; tfrag + (tie-w-l9-water) + (etie-w-l9-water) + (tie-sw-l9-water) + (tfrag-ws-l9-water) ;; tfrag + (etie-sw-l9-water) + (tex-lcom-water) ;; tex (merc-lcom-water) ;; merc (gmerc-lcom-water) ;; mercneric diff --git a/goal_src/jak2/engine/level/level-h.gc b/goal_src/jak2/engine/level/level-h.gc index 02a6a06ed9..3047f2a8a1 100644 --- a/goal_src/jak2/engine/level/level-h.gc +++ b/goal_src/jak2/engine/level/level-h.gc @@ -6,11 +6,6 @@ ;; dgos: ENGINE, GAME ;; todo docs, methods -;; max amount of levels in level heap -(defconstant LEVEL_MAX 8) -;; total amount of levels, including ones outside level heap (default-level) -(defconstant LEVEL_TOTAL 9) - (declare-type bsp-header basic) (declare-type drawable basic) (declare-type entity-links structure) @@ -386,10 +381,9 @@ (load-login-time float :offset-assert 160) (draw-level-count int32 :offset-assert 164) (draw-level level LEVEL_TOTAL :offset-assert 168) - (draw-index-map uint8 LEVEL_TOTAL :offset-assert 204) - (load-order uint64 :offset-assert 216) - (pad uint8 30 :offset 216) - (level level LEVEL_TOTAL :inline :offset-assert 256) + (draw-index-map uint8 LEVEL_TOTAL) + (load-order uint64 :offset 248) + (level level LEVEL_TOTAL :inline :offset 256) (level0 level :inline :offset 256) (level1 level :inline :offset 5488) (level2 level :inline :offset 10720) @@ -398,7 +392,9 @@ (level5 level :inline :offset 26416) (level6 level :inline :offset 31648) (level7 level :inline :offset 36880) - (default-level level :inline :offset 42112) + (level8 level :inline :offset 42112) + (level9 level :inline :offset 47344) + (default-level level :inline :offset 52576) (pad2 uint8 4) ) :method-count-assert 31 @@ -531,6 +527,28 @@ :linking #f :level-type #f ) + :level8 (new 'static 'level + :name #f + :index 8 + :status 'inactive + :borrow-level (new 'static 'array level 2 #f #f) + :borrow-from-level #f + :inside-boxes #f + :force-inside? #f + :linking #f + :level-type #f + ) + :level9 (new 'static 'level + :name #f + :index 9 + :status 'inactive + :borrow-level (new 'static 'array level 2 #f #f) + :borrow-from-level #f + :inside-boxes #f + :force-inside? #f + :linking #f + :level-type #f + ) :default-level (new 'static 'level :name 'default :index LEVEL_MAX diff --git a/goal_src/jak2/engine/level/level.gc b/goal_src/jak2/engine/level/level.gc index 0509b42d02..b455e4920e 100644 --- a/goal_src/jak2/engine/level/level.gc +++ b/goal_src/jak2/engine/level/level.gc @@ -24,7 +24,7 @@ into 7 sections, which might explain the weird sizes in the center. (define-extern level-update-after-load (function level login-state level)) (define-extern *level-type-list* type) -(defglobalconstant NUM_LEVEL_PAGES (+ 146 25 25 24 24)) +(defglobalconstant NUM_LEVEL_PAGES (+ 146 24 24 24 24 24 24)) (defglobalconstant LEVEL_PAGE_SIZE_KB 126) ;; original value (defglobalconstant LEVEL_PAGE_SIZE (* LEVEL_PAGE_SIZE_KB 1024)) ;; original value @@ -917,6 +917,16 @@ into 7 sections, which might explain the weird sizes in the center. (set! bits-to-use #b1100000000) (goto cfg-83) ) + (when (memory-unused? *level* #b110000000000) + (set! offset-in-level-heap (+ 24 24 25 25 24 24 24 24 24 24)) + (set! bits-to-use #b110000000000) + (goto cfg-83) + ) + (when (memory-unused? *level* #b11000000000000) + (set! offset-in-level-heap (+ 24 24 25 25 24 24 24 24 24 24 24 24)) + (set! bits-to-use #b11000000000000) + (goto cfg-83) + ) ) ) (set! bits-to-use 0)