add some ar codes

This commit is contained in:
Martin Michelsen
2025-09-18 21:51:55 -07:00
parent 16b15162d5
commit 9493e2d3e7
2 changed files with 69 additions and 30 deletions
+56
View File
@@ -70,14 +70,50 @@ Disable serial number validation (untested)
8C2670B6 01E0
Disable item equip restrictions ("God of equip")
3OE0 => 0410521C 38000005
3OE1 => 0410521C 38000005
3OE2 => 041050E4 38000005
3OJ2 => 04104F78 38000005
3OJ3 => 04105154 38000005
3OJ4 => 04105240 38000005
3OJ5 => 041050D4 38000005
3OJT => 0415BF50 38000005
3OP0 => 041052D4 38000005
59NL => 005C9F31 E9A7000000
All rareable enemies are rare
3OE0 => 040AC944 60000000 // Hildeblue
040C1B70 60000000 // Rappies
040C3FC8 60000000 // Nar Lily
040EB050 48000010 // Pouilly Slime
3OE1 => 040AC944 60000000 // Hildeblue
040C1B70 60000000 // Rappies
040C3FC8 60000000 // Nar Lily
040EB050 48000010 // Pouilly Slime
3OE2 => 040ACAFC 60000000 // Hildeblue
040C1D08 60000000 // Rappies
040C4160 60000000 // Nar Lily
040EB1E8 48000010 // Pouilly Slime
3OJ2 => 040AC6B8 60000000 // Hildeblue
040C18CC 60000000 // Rappies
040C3D24 60000000 // Nar Lily
040EADAC 48000010 // Pouilly Slime
3OJ3 => 040AC9C4 60000000 // Hildeblue
040C1BD0 60000000 // Rappies
040C4028 60000000 // Nar Lily
040EB0B0 48000010 // Pouilly Slime
3OJ4 => 040ACB3C 60000000 // Hildeblue
040C1E04 60000000 // Rappies
040C41A0 60000000 // Nar Lily
040EB374 48000010 // Pouilly Slime
3OJ5 => 040ACAEC 60000000 // Hildeblue
040C1CF8 60000000 // Rappies
040C4150 60000000 // Nar Lily
040EB1D8 48000010 // Pouilly Slime
3OP0 => 040ACAC4 60000000 // Hildeblue
040C1CD0 60000000 // Rappies
040C4128 60000000 // Nar Lily
040EB1B0 48000010 // Pouilly Slime
Unlock all songs in BGM test
Note: sadly, there are no secret/unused ones
@@ -199,6 +235,16 @@ Unlock all COM decks
3SP0 => 042CB414 38600001
3SE0 => 042CA908 38600001
Enable marker color menu in all lobbies
3OJ2 => 04138200 3800000E
3OJ3 => 04138508 3800000E
3OJ4 => 041390AC 3800000E
3OJ5 => 041385B0 3800000E
3OE0 => 041384BC 3800000E
3OE1 => 041384BC 3800000E
3OE2 => 041385C0 3800000E
3OP0 => 04138840 3800000E
Enable all lobby counter options in non-CARD lobbies
3SE0 => 04096A8C 480000C0
04096B4C 38800007
@@ -219,7 +265,10 @@ Change HUD color mask
0438CA90 6000BBAA
Disable lobby event music (but keep the visuals)
3OJT => 040B2394 38000000
3SE0 => 040B705C 38000000
3SJ0 => 040B7078 38000000
3SP0 => 040B74A0 38000000
Enable Pinz's Shop Super Card Capsule Machine as a fourth option
3SE0 => 043101C0 38800004
@@ -722,7 +771,14 @@ Show extended item info when targeting a dropped item
04005190 4E800020
All weapons can do 3-hit combos
3OE0 => 041D3248 38000001
3OE1 => 041D3248 38000001
3OE2 => 041D3448 38000001
3OJ2 => 041D2DEC 38000001
3OJ3 => 041D3318 38000001
3OJ4 => 041D3144 38000001
3OJ5 => 041D33E4 38000001
3OP0 => 041D3904 38000001
Disable save file signature validation (for moving Xbox saves across consoles)
4OJB => 002F01CB 9090
+13 -30
View File
@@ -48,11 +48,7 @@ void from_json_into(const phosg::JSON& json, parray<CommonItemSet::Table::Range<
template <typename IntT>
phosg::JSON to_json(const CommonItemSet::Table::Range<IntT>& v) {
if (v.min == v.max) {
return phosg::JSON(v.min);
} else {
return phosg::JSON::list({v.min, v.max});
}
return (v.min == v.max) ? phosg::JSON(v.min) : phosg::JSON::list({v.min, v.max});
}
template <typename IntT>
@@ -820,8 +816,7 @@ JSONCommonItemSet::JSONCommonItemSet(const phosg::JSON& json) {
}
RELFileSet::RELFileSet(std::shared_ptr<const std::string> data)
: data(data),
r(*this->data) {}
: data(data), r(*this->data) {}
ArmorRandomSet::ArmorRandomSet(std::shared_ptr<const std::string> data)
: RELFileSet(data) {
@@ -849,18 +844,13 @@ ArmorRandomSet::get_unit_table(size_t index) const {
ToolRandomSet::ToolRandomSet(std::shared_ptr<const std::string> data)
: RELFileSet(data) {
uint32_t specs_offset = r.pget_u32b(data->size() - 0x10);
this->common_recovery_table_spec = &r.pget<TableSpec>(r.pget_u32b(
specs_offset));
this->rare_recovery_table_spec = &r.pget<TableSpec>(
r.pget_u32b(specs_offset + sizeof(uint32_t)),
2 * sizeof(TableSpec));
this->common_recovery_table_spec = &r.pget<TableSpec>(r.pget_u32b(specs_offset));
this->rare_recovery_table_spec = &r.pget<TableSpec>(r.pget_u32b(specs_offset + sizeof(uint32_t)), 2 * sizeof(TableSpec));
this->tech_disk_table_spec = this->rare_recovery_table_spec + 1;
this->tech_disk_level_table_spec = &r.pget<TableSpec>(r.pget_u32b(
specs_offset + 2 * sizeof(uint32_t)));
this->tech_disk_level_table_spec = &r.pget<TableSpec>(r.pget_u32b(specs_offset + 2 * sizeof(uint32_t)));
}
pair<const uint8_t*, size_t> ToolRandomSet::get_common_recovery_table(
size_t index) const {
pair<const uint8_t*, size_t> ToolRandomSet::get_common_recovery_table(size_t index) const {
return this->get_table<uint8_t>(*this->common_recovery_table_spec, index);
}
@@ -887,25 +877,21 @@ WeaponRandomSet::WeaponRandomSet(std::shared_ptr<const std::string> data)
std::pair<const WeaponRandomSet::WeightTableEntry8*, size_t>
WeaponRandomSet::get_weapon_type_table(size_t index) const {
const auto& spec = this->r.pget<TableSpec>(
this->offsets->weapon_type_table + index * sizeof(TableSpec));
const auto* data = &this->r.pget<WeightTableEntry8>(
spec.offset, spec.entries_per_table * sizeof(WeightTableEntry8));
const auto& spec = this->r.pget<TableSpec>(this->offsets->weapon_type_table + index * sizeof(TableSpec));
const auto* data = &this->r.pget<WeightTableEntry8>(spec.offset, spec.entries_per_table * sizeof(WeightTableEntry8));
return make_pair(data, spec.entries_per_table);
}
const parray<WeaponRandomSet::WeightTableEntry32, 6>*
WeaponRandomSet::get_bonus_type_table(size_t which, size_t index) const {
uint32_t base_offset = which ? this->offsets->bonus_type_table2 : this->offsets->bonus_type_table1;
return &this->r.pget<parray<WeightTableEntry32, 6>>(
base_offset + sizeof(parray<WeightTableEntry32, 6>) * index);
return &this->r.pget<parray<WeightTableEntry32, 6>>(base_offset + sizeof(parray<WeightTableEntry32, 6>) * index);
}
const WeaponRandomSet::RangeTableEntry*
WeaponRandomSet::get_bonus_range(size_t which, size_t index) const {
uint32_t base_offset = which ? this->offsets->bonus_range_table2 : this->offsets->bonus_range_table1;
return &this->r.pget<RangeTableEntry>(
base_offset + sizeof(RangeTableEntry) * index);
return &this->r.pget<RangeTableEntry>(base_offset + sizeof(RangeTableEntry) * index);
}
const parray<WeaponRandomSet::WeightTableEntry32, 3>*
@@ -916,19 +902,16 @@ WeaponRandomSet::get_special_mode_table(size_t index) const {
const WeaponRandomSet::RangeTableEntry*
WeaponRandomSet::get_standard_grind_range(size_t index) const {
return &this->r.pget<RangeTableEntry>(
this->offsets->standard_grind_range_table + sizeof(RangeTableEntry) * index);
return &this->r.pget<RangeTableEntry>(this->offsets->standard_grind_range_table + sizeof(RangeTableEntry) * index);
}
const WeaponRandomSet::RangeTableEntry*
WeaponRandomSet::get_favored_grind_range(size_t index) const {
return &this->r.pget<RangeTableEntry>(
this->offsets->favored_grind_range_table + sizeof(RangeTableEntry) * index);
return &this->r.pget<RangeTableEntry>(this->offsets->favored_grind_range_table + sizeof(RangeTableEntry) * index);
}
TekkerAdjustmentSet::TekkerAdjustmentSet(std::shared_ptr<const std::string> data)
: data(data),
r(*data) {
: data(data), r(*data) {
this->offsets = &this->r.pget<Offsets>(this->r.pget_u32b(this->r.size() - 0x10));
}