failed to add more levels

This commit is contained in:
ManDude
2023-09-03 20:24:05 +01:00
parent 7e031fe4c7
commit 516333dcd9
17 changed files with 593 additions and 48 deletions
+1 -1
View File
@@ -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
+94
View File
@@ -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,
+2
View File
@@ -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");
+1 -1
View File
@@ -918,7 +918,7 @@ Ptr<Type> 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;
}
@@ -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))
@@ -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)
)
)
)
@@ -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)
)
)
)
@@ -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))
@@ -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)
)
)
@@ -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))
@@ -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
@@ -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)
+7 -1
View File
@@ -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
+114 -8
View File
@@ -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)
)
+111
View File
@@ -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)
;; <what renderer>-<what level>-<what tpage>
(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
+28 -10
View File
@@ -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
+11 -1
View File
@@ -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)