From c744c2345d6b2c89bedb126a5774cea8f6ecf446 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Fri, 25 Jul 2025 18:06:42 +0200 Subject: [PATCH] seeds: pressing new play now generates a new seed set Added seed index to every map --- maps/map_bc.s | 2 +- maps/map_be.s | 2 +- maps/map_bw.s | 2 +- maps/map_c.s | 2 +- maps/map_ce.s | 2 +- maps/map_cw.s | 2 +- maps/map_tc.s | 2 +- maps/map_te.s | 2 +- src/mapgen.s | 12 ++++++++++++ src/update.s | 4 ++++ src/wram.s | 2 ++ tools/tms2map.py | 6 +++--- 12 files changed, 29 insertions(+), 11 deletions(-) diff --git a/maps/map_bc.s b/maps/map_bc.s index f61a90e..23ca005 100644 --- a/maps/map_bc.s +++ b/maps/map_bc.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_bc_exit_table -dw 0 +dw 7 map_bc_bg: diff --git a/maps/map_be.s b/maps/map_be.s index 817ac6e..7609092 100644 --- a/maps/map_be.s +++ b/maps/map_be.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_bw_exit_table -dw 0 +dw 8 map_be_bg: diff --git a/maps/map_bw.s b/maps/map_bw.s index fbcceb6..0cfada0 100644 --- a/maps/map_bw.s +++ b/maps/map_bw.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_bw_exit_table -dw 0 +dw 6 map_bw_bg: diff --git a/maps/map_c.s b/maps/map_c.s index 7ca2f0b..cebf578 100644 --- a/maps/map_c.s +++ b/maps/map_c.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_c_exit_table -dw 0 +dw 4 map_c_bg: diff --git a/maps/map_ce.s b/maps/map_ce.s index eb9d07a..b7e4498 100644 --- a/maps/map_ce.s +++ b/maps/map_ce.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_ce_exit_table -dw 0 +dw 5 map_ce_bg: diff --git a/maps/map_cw.s b/maps/map_cw.s index 7086460..05f0485 100644 --- a/maps/map_cw.s +++ b/maps/map_cw.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_cw_exit_table -dw 0 +dw 3 map_cw_bg: diff --git a/maps/map_tc.s b/maps/map_tc.s index 7c0f1bb..e3b324c 100644 --- a/maps/map_tc.s +++ b/maps/map_tc.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_tc_exit_table -dw 0 +dw 1 map_tc_bg: diff --git a/maps/map_te.s b/maps/map_te.s index 253104c..15be87d 100644 --- a/maps/map_te.s +++ b/maps/map_te.s @@ -10,7 +10,7 @@ dw bank8800 dw bank8C00 dw bank9000 dw map_te_exit_table -dw 0 +dw 2 map_te_bg: diff --git a/src/mapgen.s b/src/mapgen.s index 15b7ce2..54aace5 100644 --- a/src/mapgen.s +++ b/src/mapgen.s @@ -2,6 +2,18 @@ ; generates a new set of seeds ; and places them into map_seeds mapgen_seed: + ld hl, map_seeds + ; 2 bytes per seed + ld b, FLOOR_MAP_COUNT*2 + +@loop: + push hl + call rand + pop hl + ld [hl+], a + dec b + jr nz, @loop REL + ret ; places a rectangular room diff --git a/src/update.s b/src/update.s index 8d0b92b..64616b5 100644 --- a/src/update.s +++ b/src/update.s @@ -49,6 +49,10 @@ new_game_init: call unit_load_default_player ; init initial map + + ; load initial seed + call mapgen_seed + call map_init call game_init diff --git a/src/wram.s b/src/wram.s index 280cbec..cd7e7dd 100644 --- a/src/wram.s +++ b/src/wram.s @@ -143,6 +143,8 @@ p0_units: .adv act_size * UNITS_MAX ; list of seeds used ; for the current maps ; fill using mapgen_seed + ; the seeds will be accessed via the map's + ; seed index map_seeds: .adv FLOOR_MAP_COUNT * 2 ; map tiles and collision data diff --git a/tools/tms2map.py b/tools/tms2map.py index de0889c..4180741 100755 --- a/tools/tms2map.py +++ b/tools/tms2map.py @@ -15,7 +15,7 @@ tile_bank2 = "bank8C00" tile_bank3 = "bank9000" exit_table = "map_c_exit_table" actor_table_ptr = "map_actor_table_null" -map_seed_index = "0" +map_seed_index = 0 map_name = "noname" NAME_LEN = 8 @@ -110,7 +110,7 @@ def print_header(name): print("dw " + tile_bank2) print("dw " + tile_bank3) print("dw " + exit_table) - print("dw " + map_seed_index) + print("dw " + str(map_seed_index)) print("") def get_flag(tile): @@ -165,7 +165,7 @@ def get_map_props(root): elif name == 'exit_table': exit_table = value elif name == 'seed_index': - seed_index = int(value) + map_seed_index = int(value) return -- 2.30.2