Require rgbds 0.5.1

Use some new features: \<10> macro args, SECTION UNION, SIZEOF/STARTOF, and CHARLEN/CHARSUB
This commit is contained in:
Rangi 2021-05-09 12:26:28 -04:00
parent efd1006917
commit b1dbadbdd3
14 changed files with 224 additions and 148 deletions

View File

@ -9,7 +9,7 @@ install:
HOMEBREW_NO_AUTO_UPDATE=1 brew install bison
export PATH="/usr/local/opt/bison/bin:$PATH"
fi
git clone -b v0.5.0 --depth=1 https://github.com/gbdev/rgbds
git clone -b v0.5.1 --depth=1 https://github.com/gbdev/rgbds
sudo make -C rgbds install
rm -rf rgbds
)

6
FAQ.md
View File

@ -41,15 +41,15 @@ You need to install `gcc`. If you're using Cygwin, re-run its setup, and at "Sel
### "ERROR: `UNION` already defined"
Download [**rgbds 0.5.0**][rgbds] or newer. Older versions will not work.
Download [**rgbds 0.5.1**][rgbds] or newer. Older versions will not work.
### "ERROR: Macro not defined"
Download [**rgbds 0.5.0**][rgbds] or newer. Older versions will not work.
Download [**rgbds 0.5.1**][rgbds] or newer. Older versions will not work.
### "Expression must be 8-bit"
Download [**rgbds 0.5.0**][rgbds] or newer. Older versions will not work.
Download [**rgbds 0.5.1**][rgbds] or newer. Older versions will not work.
### "Segmentation fault" from `rgbgfx`

View File

@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.5.0**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.5.1**.
**Note:** If you already have an older rgbds, you will need to update to 0.5.0. Ignore this if you have never installed rgbds before. If a version newer than 0.5.0 does not work, try downloading 0.5.0.
**Note:** If you already have an older rgbds, you will need to update to 0.5.1. Ignore this if you have never installed rgbds before. If a version newer than 0.5.1 does not work, try downloading 0.5.1.
Now open the **Cygwin terminal** and enter the following commands.
@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
Open **Terminal** and prepare to enter commands.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.5.0**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.5.1**.
Now you're ready to [build **pokecrystal**](#build-pokecrystal).
@ -84,7 +84,7 @@ To install the software required for **pokecrystal**:
sudo apt-get install make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### OpenSUSE
@ -94,7 +94,7 @@ To install the software required for **pokecrystal**:
sudo zypper install make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Arch Linux
@ -104,9 +104,9 @@ To install the software required for **pokecrystal**:
sudo pacman -S make gcc git rgbds
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.5.0**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.5.1**.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Termux
@ -122,7 +122,7 @@ To install **rgbds**:
sudo apt install rgbds
```
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Other distros
@ -133,7 +133,7 @@ If your distro is not listed here, try to find the required software in its repo
- `git`
- `rgbds`
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
Now you're ready to [build **pokecrystal**](#build-pokecrystal).
@ -161,12 +161,12 @@ make crystal11
### Build with a local rgbds version
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.5.0 globally. Instead, you can put its files in a directory within pokecrystal, such as `pokecrystal/rgbds-0.5.0/`. Then specify it when you run `make`:
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.5.1 globally. Instead, you can put its files in a directory within pokecrystal, such as `pokecrystal/rgbds-0.5.1/`. Then specify it when you run `make`:
```bash
make RGBDS=rgbds-0.5.0/
make RGBDS=rgbds-0.5.1/
```
```bash
make RGBDS=rgbds-0.5.0/ crystal11
make RGBDS=rgbds-0.5.1/ crystal11
```

View File

@ -1,9 +1,8 @@
npctrade: MACRO
; dialog set, requested mon, offered mon, nickname, dvs, item, OT ID, OT name, gender requested
db \1, \2, \3, \4, \5, \6, \7
shift
dw \7
db \8, \9, 0
dw \8
db \9, \<10>, 0
ENDM
NPCTrades:

View File

@ -1,18 +1,17 @@
unownwall: MACRO
rept _NARG
if \1 == "-"
x = $64
elif \1 >= "Y"
x = 2 * (\1 - "Y") + $60
elif \1 >= "Q"
x = 2 * (\1 - "Q") + $40
elif \1 >= "I"
x = 2 * (\1 - "I") + $20
for n, CHARLEN(\1)
x = CHARSUB(\1, n + 1)
if x == "-"
db $64
elif x >= "Y"
db 2 * (x - "Y") + $60
elif x >= "Q"
db 2 * (x - "Q") + $40
elif x >= "I"
db 2 * (x - "I") + $20
else
x = 2 * (\1 - "A")
db 2 * (x - "A")
endc
db x
shift
endr
db -1 ; end
ENDM
@ -20,16 +19,16 @@ ENDM
UnownWalls:
; UNOWNWORDS_ESCAPE
; db $08, $44, $04, $00, $2e, $08, -1
unownwall "E", "S", "C", "A", "P", "E"
unownwall "ESCAPE"
; UNOWNWORDS_LIGHT
; db $26, $20, $0c, $0e, $46, -1
unownwall "L", "I", "G", "H", "T"
unownwall "LIGHT"
; UNOWNWORDS_WATER
; db $4c, $00, $46, $08, $42, -1
unownwall "W", "A", "T", "E", "R"
unownwall "WATER"
; UNOWNWORDS_HO_OH
; db $0e, $2c, $64, $2c, $0e, -1
unownwall "H", "O", "-", "O", "H"
unownwall "HO-OH"
MenuHeaders_UnownWalls:
; UNOWNWORDS_ESCAPE

View File

@ -1,6 +1,6 @@
unownword: MACRO
for x, STRLEN(\1)
db STRSUB(\1, x + 1, 1) - "A" + FIRST_UNOWN_CHAR
for n, CHARLEN(\1)
db CHARSUB(\1, n + 1) - "A" + FIRST_UNOWN_CHAR
endr
db -1
ENDM

View File

@ -14,8 +14,8 @@ _UnownPuzzle:
xor a
ldh [hBGMapMode], a
call DisableLCD
ld hl, wUnownPuzzle ; includes wPuzzlePieces
ld bc, wUnownPuzzleEnd - wUnownPuzzle
ld hl, STARTOF("Miscellaneous") ; includes wPuzzlePieces
ld bc, SIZEOF("Miscellaneous")
xor a
call ByteFill
ld hl, UnownPuzzleCursorGFX

View File

@ -187,25 +187,23 @@ NextChar::
CheckDict::
dict: MACRO
assert CHARLEN(\1) == 1
if \1 == 0
and a
else
cp \1
endc
if ISCONST(\2)
; Replace a character with another one
jr nz, ._\@
jr nz, .not\@
ld a, \2
._\@:
else
if STRSUB("\2", 1, 1) == "."
.not\@:
elif STRSUB("\2", 1, 1) == "."
; Locals can use a short jump
jr z, \2
else
jp z, \2
endc
endc
ENDM
dict "<MOBILE>", MobileScriptChar

View File

@ -326,12 +326,15 @@ WRAM0
"Sprites"
"Tilemap"
"Miscellaneous"
"Unused Map Buffer"
align 8
"Overworld Map"
align 4
"Video"
WRAMX 1
"WRAM 1"
"Miscellaneous WRAM 1"
"More WRAM 1"
"Enemy Party"
"Party"
WRAMX 2

View File

@ -224,12 +224,7 @@ signpost: MACRO
ENDM
person_event: MACRO
_s = \1
_y = \2
_x = \3
_m = \4
shift 4
object_event _x, _y, _s, _m, \1, \2, \3, \4, \5, \6, \7, \8, \9
object_event \3, \2, \1, \4, \5, \6, \7, \8, \9, \<10>, \<11>, \<12>, \<13>
ENDM
PERSONTYPE_SCRIPT EQUS "OBJECTTYPE_SCRIPT"

View File

@ -102,21 +102,16 @@ object_event: MACRO
; * if h1 == -1, h2 is treated as a time-of-day value:
; a combo of MORN, DAY, and/or NITE, or -1 to always appear
;\9: color: a PAL_NPC_* constant, or 0 for sprite default
;\10: function: a OBJECTTYPE_* constant
;\11: sight range: applies to OBJECTTYPE_TRAINER
;\12: script pointer
;\13: event flag: an EVENT_* constant, or -1 to always appear
;\<10>: function: a OBJECTTYPE_* constant
;\<11>: sight range: applies to OBJECTTYPE_TRAINER
;\<12>: script pointer
;\<13>: event flag: an EVENT_* constant, or -1 to always appear
db \3, \2 + 4, \1 + 4, \4
dn \6, \5
db \7, \8
shift
dn \8, \9
shift
db \9
shift
dw \9
shift
dw \9
dn \9, \<10>
db \<11>
dw \<12>, \<13>
; the dummy PlayerObjectTemplate object_event has no def_object_events
if DEF(_NUM_OBJECT_EVENTS)
{_NUM_OBJECT_EVENTS} = {_NUM_OBJECT_EVENTS} + 1

View File

@ -1,9 +1,9 @@
MAJOR EQU 0
MINOR EQU 5
PATCH EQU 0
PATCH EQU 1
wrong_rgbds: MACRO
fail "pokecrystal requires rgbds v0.5.0 or newer."
fail "pokecrystal requires rgbds v0.5.1 or newer."
ENDM
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)

View File

@ -82,14 +82,14 @@ for objfile in objects:
elif magic == b'RGB9':
obj_ver = 10 + unpack_file("<I", f)[0]
if obj_ver not in [6, 10, 11, 12, 13, 15, 16, 17]:
if obj_ver not in [6, 10, 11, 12, 13, 15, 16, 17, 18]:
print("Error: File '%s' is of an unknown format." % objfile, file=stderr)
exit(1)
num_symbols = unpack_file("<I", f)[0]
unpack_file("<I", f) # skip num sections
if obj_ver in [16, 17]:
if obj_ver in [16, 17, 18]:
node_filenames = []
num_nodes = unpack_file("<I", f)[0]
for x in range(num_nodes):
@ -109,7 +109,7 @@ for objfile in objects:
sym_type = symtype(unpack_file("<B", f)[0] & 0x7f)
if sym_type == symtype.IMPORT:
continue
if obj_ver in [16, 17]:
if obj_ver in [16, 17, 18]:
sym_fileno = unpack_file("<I", f)[0]
sym_filename = node_filenames[sym_fileno]
else:

235
wram.asm
View File

@ -323,27 +323,32 @@ wTilemap::
wTilemapEnd::
SECTION "Miscellaneous", WRAM0
; This union spans 480 bytes.
UNION
SECTION UNION "Miscellaneous", WRAM0
; surrounding tiles
; This buffer determines the size for the rest of the union;
; it uses exactly 480 bytes.
wSurroundingTiles:: ds SURROUNDING_WIDTH * SURROUNDING_HEIGHT
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; box save buffer
; SaveBoxAddress uses this buffer in three steps because it
; needs more space than the buffer can hold.
wBoxPartialData:: ds 480
wBoxPartialDataEnd::
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; battle tower temp struct
wBT_OTTemp:: battle_tower_struct wBT_OTTemp
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; battle data
wBattle::
wEnemyMoveStruct:: move_struct wEnemyMoveStruct
@ -626,23 +631,21 @@ wPlayerJustGotFrozen:: db
wEnemyJustGotFrozen:: db
wBattleEnd::
NEXTU
; unown puzzle
wUnownPuzzle::
ds 200
wPuzzlePieces:: ds 6 * 6
ds 244
wUnownPuzzleEnd::
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; link patch lists
wPlayerPatchLists:: ds 200
wOTPatchLists:: ds 200
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; mobile
wMobileTransferData:: ds 480
NEXTU
SECTION UNION "Miscellaneous", WRAM0
; This union spans 200 bytes.
UNION
@ -813,6 +816,10 @@ wMemoryGameLastMatches:: ds 5
wMemoryGameCounter:: db
wMemoryGameNumCardsMatched:: db
NEXTU
; unown puzzle
wPuzzlePieces:: ds 6 * 6
NEXTU
; mobile data
wc6d0:: ds 56
@ -839,7 +846,8 @@ wc7d2:: ds 1
wc7d3:: ds 2
ENDU
ENDU
SECTION "Unused Map Buffer", WRAM0
; This was a buffer for map-related pointers in the 1997 G/S prototype.
; See wMapBuffer in pokegold-spaceworld's wram.asm.
@ -847,14 +855,15 @@ wUnusedMapBuffer:: ds 24
wUnusedMapBufferEnd::
SECTION "Overworld Map", WRAM0
SECTION UNION "Overworld Map", WRAM0
UNION
; overworld map blocks
wOverworldMapBlocks:: ds 1300
wOverworldMapBlocksEnd::
NEXTU
SECTION UNION "Overworld Map", WRAM0
; GB Printer data
wGameboyPrinterRAM::
wGameboyPrinter2bppSource:: ds 40 tiles
@ -888,7 +897,9 @@ wPrinterExposureTime:: db
ds 16
wGameboyPrinterRAMEnd::
NEXTU
SECTION UNION "Overworld Map", WRAM0
; bill's pc data
wBillsPCData::
wBillsPCPokemonList::
@ -908,20 +919,27 @@ wBillsPC_MonHasMail:: db
wBillsPCDataEnd::
NEXTU
SECTION UNION "Overworld Map", WRAM0
; Hall of Fame data
wHallOfFamePokemonList:: hall_of_fame wHallOfFamePokemonList
NEXTU
SECTION UNION "Overworld Map", WRAM0
; debug color picker
wDebugOriginalColors:: ds 256 * 4
NEXTU
SECTION UNION "Overworld Map", WRAM0
; raw link data
wLinkData:: ds 1300
wLinkDataEnd::
NEXTU
SECTION UNION "Overworld Map", WRAM0
; link data members
wLinkPlayerName:: ds NAME_LENGTH
wLinkPartyCount:: db
@ -974,7 +992,9 @@ wLinkPatchList1:: ds SERIAL_PATCH_LIST_LENGTH
wLinkPatchList2:: ds SERIAL_PATCH_LIST_LENGTH
ENDU
NEXTU
SECTION UNION "Overworld Map", WRAM0
; link data prep
ds 1000
wCurLinkOTPartyMonTypePointer:: dw
@ -985,7 +1005,9 @@ for n, 1, PARTY_LENGTH + 1
wLinkOTPartyMon{d:n}Type:: dw
endr
NEXTU
SECTION UNION "Overworld Map", WRAM0
; link mail data
ds 500
wLinkPlayerMail::
@ -1002,13 +1024,17 @@ wOTPlayerMailPatchSet:: ds 103 + SERIAL_MAIL_PREAMBLE_LENGTH
wLinkOTMailEnd::
ds 10
NEXTU
SECTION UNION "Overworld Map", WRAM0
; received link mail data
ds 500
wLinkReceivedMail:: ds MAIL_STRUCT_LENGTH * PARTY_LENGTH
wLinkReceivedMailEnd:: db
NEXTU
SECTION UNION "Overworld Map", WRAM0
; mystery gift data
wMysteryGiftStaging:: ds 80
@ -1052,22 +1078,28 @@ wMysteryGiftPlayerBackupItem:: db
ds 1
wMysteryGiftPlayerDataEnd::
NEXTU
SECTION UNION "Overworld Map", WRAM0
ds $200
UNION
; blank credits tile buffer
wCreditsBlankFrame2bpp:: ds 4 * 4 tiles
wCreditsBlankFrame2bppEnd::
NEXTU
; mystery gift data
wUnusedMysteryGiftStagedDataLength:: db
wMysteryGiftMessageCount:: db
wMysteryGiftStagedDataLength:: db
ENDU
NEXTU
SECTION UNION "Overworld Map", WRAM0
ds $200
; blank credits tile buffer
wCreditsBlankFrame2bpp:: ds 4 * 4 tiles
wCreditsBlankFrame2bppEnd::
SECTION UNION "Overworld Map", WRAM0
; mobile
ds 7
wc807:: ds 1
@ -1096,9 +1128,9 @@ wccb8:: ds 1
wccb9:: ds 1
wccba:: ds 90
if DEF(_DEBUG)
NEXTU
; debug room
SECTION UNION "Overworld Map", WRAM0
; debug room RTC values
wDebugRoomRTCSec:: db
@ -1138,8 +1170,6 @@ ENDU
endc
ENDU
SECTION "Video", WRAM0
@ -1671,7 +1701,9 @@ wBetaTitleSequenceOpeningType::
wDefaultSpawnpoint:: db
UNION
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; mon buffer
wBufferMonNickname:: ds MON_NAME_LENGTH
wBufferMonOT:: ds NAME_LENGTH
@ -1680,7 +1712,9 @@ wBufferMon:: party_struct wBufferMon
wMonOrItemNameBuffer:: ds NAME_LENGTH
ds NAME_LENGTH
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; poke seer
wSeerAction:: db
wSeerNickname:: ds MON_NAME_LENGTH
@ -1693,11 +1727,15 @@ wSeerCaughtLevel:: db
wSeerCaughtData:: db
wSeerCaughtGender:: db
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; mail temp storage
wTempMail:: mailmsg wTempMail
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; bug-catching contest
wBugContestResults::
bugcontestwinner wBugContestFirstPlace
@ -1708,7 +1746,9 @@ wBugContestWinnersEnd::
ds 4
wBugContestWinnerName:: ds NAME_LENGTH
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; mart items
wMartItem1BCD:: ds 3
wMartItem2BCD:: ds 3
@ -1721,7 +1761,9 @@ wMartItem8BCD:: ds 3
wMartItem9BCD:: ds 3
wMartItem10BCD:: ds 3
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; town map data
wTownMapPlayerIconLandmark:: db
UNION
@ -1733,12 +1775,16 @@ wStartFlypoint:: db
wEndFlypoint:: db
ENDU
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; phone call data
wPhoneScriptBank:: db
wPhoneCaller:: dw
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; radio data
wCurRadioLine:: db
wNextRadioLine:: db
@ -1748,11 +1794,15 @@ wOaksPKMNTalkSegmentCounter:: db
ds 5
wRadioText:: ds 2 * SCREEN_WIDTH
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; lucky number show
wLuckyNumberDigitsBuffer:: ds 5
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; movement buffer data
wMovementBufferCount:: db
wMovementBufferObject:: db
@ -1760,7 +1810,9 @@ wUnusedMovementBufferBank:: db
wUnusedMovementBufferPointer:: dw
wMovementBuffer:: ds 55
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; box printing
wWhichBoxMonToPrint:: db
wFinishedPrintingBox:: db
@ -1768,46 +1820,64 @@ wAddrOfBoxToPrint:: dw
wBankOfBoxToPrint:: db
wWhichBoxToPrint:: db
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; Unown printing
wPrintedUnownTileSource:: ds 1 tiles
wPrintedUnownTileDest:: ds 1 tiles
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; trainer HUD data
ds 1
wPlaceBallsDirection:: db
wTrainerHUDTiles:: ds 4
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; mobile participant nicknames
ds 4
wMobileParticipant1Nickname:: ds NAME_LENGTH_JAPANESE
wMobileParticipant2Nickname:: ds NAME_LENGTH_JAPANESE
wMobileParticipant3Nickname:: ds NAME_LENGTH_JAPANESE
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; battle exp gain
wExperienceGained:: ds 3
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; earthquake data buffer
wEarthquakeMovementDataBuffer:: ds 5
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; switching items in pack
wSwitchItemBuffer:: ds 2 ; may store 1 or 2 bytes
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; switching pokemon in party
; may store NAME_LENGTH, PARTYMON_STRUCT_LENGTH, or MAIL_STRUCT_LENGTH bytes
wSwitchMonBuffer:: ds 48
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; giving pokemon mail
wMonMailMessageBuffer:: ds MAIL_MSG_LENGTH + 1
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; bill's pc
UNION
wBoxNameBuffer:: ds BOX_NAME_LENGTH
@ -1817,12 +1887,16 @@ wBillsPCTempListIndex:: db
wBillsPCTempBoxCount:: db
ENDU
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; prof. oak's pc
wTempPokedexSeenCount:: db
wTempPokedexCaughtCount:: db
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; player's room pc
UNION
wDecoNameBuffer:: ds ITEM_NAME_LENGTH
@ -1831,13 +1905,17 @@ wNumOwnedDecoCategories:: db
wOwnedDecoCategories:: ds 16
ENDU
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; trade
wCurTradePartyMon:: db
wCurOTTradePartyMon:: db
wBufferTrademonNickname:: ds MON_NAME_LENGTH
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; link battle record data
wLinkBattleRecordBuffer::
wLinkBattleRecordName:: ds NAME_LENGTH
@ -1845,7 +1923,9 @@ wLinkBattleRecordWins:: dw
wLinkBattleRecordLosses:: dw
wLinkBattleRecordDraws:: dw
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; miscellaneous
wTempDayOfWeek::
wPrevPartyLevel::
@ -1858,13 +1938,17 @@ wApricorns::
wSuicuneFrame::
db
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; debug color picker
wDebugColorIsTrainer:: db
wDebugColorIsShiny:: db
wDebugColorCurTMHM:: db
NEXTU
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; mobile?
wd002:: ds 1
wd003:: ds 1
@ -1892,9 +1976,11 @@ wd033:: ds 1
wd034:: ds 2
wd036:: ds 2
NEXTU
; Every previous NEXTU takes up 60 or fewer bytes,
; except the initial "mon buffer" UNION.
SECTION UNION "Miscellaneous WRAM 1", WRAMX
; Every previous SECTION UNION takes up 60 or fewer bytes,
; except the initial "mon buffer" one.
ds 60
UNION
@ -2018,7 +2104,9 @@ wPoisonStepDataEnd::
ENDU
ds 23
ENDU
SECTION "More WRAM 1", WRAMX
wTMHMMoveNameBackup:: ds MOVE_NAME_LENGTH
@ -2928,7 +3016,6 @@ wCurBox:: db
ds 2
; 8 chars + $50
wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES
wCelebiEvent::