Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified patches/ips/map_progress_maintain.ips
Binary file not shown.
1 change: 1 addition & 0 deletions patches/rom_map/Bank 89.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
AF00 - AF31: ; hud_expansion_opaque.asm
AF60 - B0BA: ; Area FX.asm
B100 - B200: nothing item graphics (zeros, used only for Bomb Torizo Room; nothing_item.asm)
B200 - : mapstation partial reveal bitmask.
25 changes: 13 additions & 12 deletions patches/src/map_progress_maintain.asm
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
arch snes.cpu
lorom

!map_station_reveal_type = $90F700 ; 0 = Full reveal, 1 = Partial reveal
;!map_station_reveal_type = $90F700 ; 0 = Full reveal, 1 = Partial reveal
!map_reveal_tile_table = $90FA00 ; must match reference in patch.rs
!bank_90_freespace_start = $90F702
!bank_90_freespace_start = $90F700
!bank_90_freespace_end = $90F800


Expand All @@ -30,8 +30,8 @@ org $90AB6D
org $90A98B
jmp mark_progress

org !map_station_reveal_type
dw $0000 ; default: full reveal
;org !map_station_reveal_type
; dw $0000 ; default: full reveal

org !bank_90_freespace_start
mark_progress:
Expand Down Expand Up @@ -108,25 +108,26 @@ activate_map_station_hook:
tax ; X <- map area * $100
ldy #$0080 ; Y <- loop counter (number of words to fill with #$FFFF)

lda !map_station_reveal_type
bne .partial_only_loop
; lda !map_station_reveal_type
; bne .partial_only_loop

.loop:
lda $829727, x
sta $702000, x
lda $89b200, x
sta $702700, x
inx
inx
dey
bne .loop
bra .leave

.partial_only_loop:
sta $702700, x
inx
inx
dey
bne .partial_only_loop
;.partial_only_loop:
; sta $702700, x
; inx
; inx
; dey
; bne .partial_only_loop
.leave
jsr cross_area_reveal
rtl
Expand Down
14 changes: 13 additions & 1 deletion rust/data/presets/full-settings/Community Race Season 5.json
Original file line number Diff line number Diff line change
Expand Up @@ -4685,6 +4685,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "4-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": true,
Expand Down Expand Up @@ -4842,7 +4855,6 @@
},
"door_locks_size": "Large",
"maps_revealed": null,
"map_station_reveal": "Full",
"energy_free_shinesparks": false,
"all_enemies_respawn": false,
"race_mode": true,
Expand Down
14 changes: 13 additions & 1 deletion rust/data/presets/full-settings/Default.json
Original file line number Diff line number Diff line change
Expand Up @@ -4597,6 +4597,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "3-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": false,
Expand Down Expand Up @@ -4753,7 +4766,6 @@
"item_dot_change": "Fade",
"transition_letters": true,
"door_locks_size": "Large",
"map_station_reveal": "Full",
"energy_free_shinesparks": false,
"all_enemies_respawn": false,
"disable_spikesuit": false,
Expand Down
14 changes: 13 additions & 1 deletion rust/data/presets/full-settings/Mentor Tournament.json
Original file line number Diff line number Diff line change
Expand Up @@ -4685,6 +4685,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "4-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": true,
Expand Down Expand Up @@ -4842,7 +4855,6 @@
},
"door_locks_size": "Large",
"maps_revealed": null,
"map_station_reveal": "Full",
"energy_free_shinesparks": false,
"all_enemies_respawn": false,
"race_mode": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4597,6 +4597,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "4-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": true,
Expand Down Expand Up @@ -4754,7 +4767,6 @@
},
"door_locks_size": "Large",
"maps_revealed": null,
"map_station_reveal": "Full",
"energy_free_shinesparks": false,
"all_enemies_respawn": false,
"race_mode": true,
Expand Down
13 changes: 13 additions & 0 deletions rust/data/presets/quality-of-life/Default.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "3-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": false,
Expand Down
13 changes: 13 additions & 0 deletions rust/data/presets/quality-of-life/High.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "4-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": true,
Expand Down
13 changes: 13 additions & 0 deletions rust/data/presets/quality-of-life/Low.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "Uniques",
"room_outline_revealed": false,
"opposite_area_revealed": false,
Expand Down
13 changes: 13 additions & 0 deletions rust/data/presets/quality-of-life/Max.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "4-Tiered",
"room_outline_revealed": true,
"opposite_area_revealed": true,
Expand Down
13 changes: 13 additions & 0 deletions rust/data/presets/quality-of-life/Off.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,19 @@
"other": "No",
"all_areas": false
},
"map_station_activation_settings": {
"preset": "Full",
"save_stations": "Full",
"refill_stations": "Full",
"ship": "Full",
"objectives": "Full",
"area_transitions": "Full",
"items1": "Full",
"items2": "Full",
"items3": "Full",
"items4": "Full",
"other": "Full"
},
"item_markers": "Simple",
"room_outline_revealed": false,
"opposite_area_revealed": false,
Expand Down
6 changes: 6 additions & 0 deletions rust/maprando-web/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,7 @@ struct SeedData {
item_progression_preset: Option<String>,
difficulty: DifficultyConfig,
quality_of_life_preset: Option<String>,
map_station_activation_preset: Option<String>,
supers_double: bool,
escape_autosave: bool,
mother_brain_fight: String,
Expand Down Expand Up @@ -719,6 +720,11 @@ async fn randomize(
race_mode: settings.other_settings.race_mode,
preset: settings.skill_assumption_settings.preset.clone(),
item_progression_preset: settings.item_progression_settings.preset.clone(),
map_station_activation_preset: settings
.quality_of_life_settings
.map_station_activation_settings
.preset
.map(|p| format!("{:?}", p)),
difficulty: output.difficulty_tiers[0].clone(),
quality_of_life_preset: settings.quality_of_life_settings.preset.clone(),
supers_double: settings.quality_of_life_settings.supers_double,
Expand Down
32 changes: 27 additions & 5 deletions rust/maprando-web/src/randomize_helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ use maprando::{
seed_repository::{Seed, SeedFile},
settings::{
AreaAssignmentBaseOrder, AreaAssignmentPreset, CrashFixesPreset, DisableETankSetting,
DoorLocksSize, ETankRefill, FillerItemPriority, ItemCount, RandomizerSettings,
SpeedBooster, WallJump, get_objective_groups,
DoorLocksSize, ETankRefill, FillerItemPriority, ItemCount, MapStationActivationPreset,
RandomizerSettings, SpeedBooster, WallJump, get_objective_groups,
},
spoiler_log::SpoilerLog,
spoiler_map,
Expand Down Expand Up @@ -157,9 +157,22 @@ impl SeedHeaderTemplate<'_> {
}
}

fn map_station_activation_preset(&self) -> &'static str {
match self
.settings
.quality_of_life_settings
.map_station_activation_settings
.preset
{
Some(MapStationActivationPreset::Partial) => "Partial",
Some(MapStationActivationPreset::Full) => "Full",
None => "Custom",
}
}
fn game_variations(&self) -> Vec<&str> {
let mut game_variations = vec![];
let other_settings = &self.settings.other_settings;
let qol_settings = &self.settings.quality_of_life_settings;
if other_settings.area_assignment.preset != Some(AreaAssignmentPreset::Standard) {
match other_settings.area_assignment.base_order {
AreaAssignmentBaseOrder::Size => {
Expand All @@ -185,10 +198,19 @@ impl SeedHeaderTemplate<'_> {
if other_settings.wall_jump == WallJump::Collectible {
game_variations.push("Collectible wall jump");
}
if other_settings.map_station_reveal == maprando::settings::MapStationReveal::Partial {
game_variations.push("Map stations give partial reveal");
}
match qol_settings.map_station_activation_settings.preset {
Some(maprando::settings::MapStationActivationPreset::Partial) => {
game_variations.push("Map stations give partial reveal");
}

Some(maprando::settings::MapStationActivationPreset::Full) => {
// push nothing (default mapstation behaviour)
}

None => {
game_variations.push("Map stations have custom reveal settings");
}
}
if other_settings.energy_free_shinesparks {
game_variations.push("Energy-free shinesparks");
}
Expand Down
12 changes: 0 additions & 12 deletions rust/maprando-web/templates/generate/game_variations.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,6 @@
<label class="btn btn-outline-primary" for="doorLocksSizeLarge">Large</label>
</div>
</div>
<div class="form-group row" onchange="gameVariationChanged()">
<div class="col-lg-4 col-md-6 my-2">
{% include "help/variations/map_station_reveal.html" %}
<label for="map_station_reveal">Map station activation reveal</label>
</div>
<div id="mapStationReveal" class="col-3 btn-group my-2" role="group">
<input type="radio" class="btn-check" name="map_station_reveal" id="mapStationRevealPartial" value="Partial">
<label class="btn btn-outline-primary" for="mapStationRevealPartial">Partial</label>
<input type="radio" class="btn-check" name="map_station_reveal" id="mapStationRevealFull" value="Full" checked>
<label class="btn btn-outline-primary" for="mapStationRevealFull">Full</label>
</div>
</div>
<div class="form-group row" onchange="gameVariationChanged()">
<div class="col-lg-4 col-md-6 my-2">
{% include "help/variations/energy_free_shinesparks.html" %}
Expand Down
Loading
Loading