shithub: pokecrystal

Download patch

ref: e485280a8a59e43745d9261b491075e19dbef5f9
parent: 6f226f584cf939015ccc3376f23c798833db4e83
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Wed Dec 9 06:53:29 EST 2020

Require rgbds 0.4.2

This allows [\1] to work when \1 is hl, bc, or de

The object file format has changed along with the version number

--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@
 install:
   - |-
     ( cd
-        git clone -b v0.4.1 --depth=1 https://github.com/gbdev/rgbds
+        git clone -b v0.4.2 --depth=1 https://github.com/gbdev/rgbds
         sudo make -C rgbds install
         rm -rf rgbds
     )
--- a/FAQ.md
+++ b/FAQ.md
@@ -41,15 +41,15 @@
 
 ### "ERROR: `UNION` already defined"
 
-Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
+Download [**rgbds 0.4.2**][rgbds] or newer. Older versions will not work.
 
 ### "ERROR: Macro not defined"
 
-Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
+Download [**rgbds 0.4.2**][rgbds] or newer. Older versions will not work.
 
 ### "Expression must be 8-bit"
 
-Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
+Download [**rgbds 0.4.2**][rgbds] or newer. Older versions will not work.
 
 ### "Segmentation fault" from `rgbgfx`
 
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -42,9 +42,9 @@
 
 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.4.1**.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.4.2**.
 
-**Note:** If you already have an older rgbds, you will need to update to 0.4.1. Ignore this if you have never installed rgbds before. If a version newer than 0.4.1 does not work, try downloading 0.4.1.
+**Note:** If you already have an older rgbds, you will need to update to 0.4.2. Ignore this if you have never installed rgbds before. If a version newer than 0.4.2 does not work, try downloading 0.4.2.
 
 Now open the **Cygwin terminal** and enter the following commands.
 
@@ -67,7 +67,7 @@
 
 Open **Terminal** and prepare to enter commands.
 
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.4.1**.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.4.2**.
 
 Now you're ready to [build **pokecrystal**](#build-pokecrystal).
 
@@ -84,7 +84,7 @@
 sudo apt-get install make gcc git
 ```
 
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.2** from source.
 
 ### OpenSUSE
 
@@ -94,7 +94,7 @@
 sudo zypper install make gcc git
 ```
 
-Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.1** from source.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.4.2** from source.
 
 ### Arch Linux
 
@@ -104,9 +104,9 @@
 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.4.1**.
+Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.4.2**.
 
-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.4.1** 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.4.2** from source.
 
 ### Termux
 
@@ -122,7 +122,7 @@
 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.4.1** 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.4.2** from source.
 
 ### Other distros
 
@@ -133,7 +133,7 @@
 - `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.4.1** 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.4.2** from source.
 
 Now you're ready to [build **pokecrystal**](#build-pokecrystal).
 
--- a/macros/code.asm
+++ b/macros/code.asm
@@ -11,11 +11,7 @@
 ; Design patterns
 
 jumptable: MACRO
-if !STRCMP("\2", "hl")
-	ld a, [hl]
-else
 	ld a, [\2]
-endc
 	ld e, a
 	ld d, 0
 	ld hl, \1
--- a/tools/unnamed.py
+++ b/tools/unnamed.py
@@ -82,17 +82,38 @@
     elif magic == b'RGB9':
         obj_ver = 10 + unpack_file("<I", f)[0]
 
-    if obj_ver not in [6, 10, 11, 12, 13, 15]:
+    if obj_ver not in [6, 10, 11, 12, 13, 15, 16]:
         print("Error: File '%s' is of an unknown format." % objfile, file=stderr)
         exit(1)
 
-    num_symbols = unpack_file("<II", f)[0]
+    num_symbols = unpack_file("<I", f)[0]
+    unpack_file("<I", f) # skip num sections
+
+    if obj_ver in [16]:
+        node_filenames = []
+        num_nodes = unpack_file("<I", f)[0]
+        for x in range(num_nodes):
+            unpack_file("<II", f) # parent id, parent line no
+            node_type = unpack_file("<B", f)[0]
+            if node_type:
+                node_filenames.append(read_string(f))
+            else:
+                node_filenames.append("rept")
+                depth = unpack_file("<I", f)[0]
+                for i in range(depth):
+                    unpack_file("<I", f) # rept iterations
+        node_filenames.reverse()
+
     for x in range(num_symbols):
         sym_name = read_string(f)
         sym_type = symtype(unpack_file("<B", f)[0] & 0x7f)
         if sym_type == symtype.IMPORT:
             continue
-        sym_filename = read_string(f)
+        if obj_ver in [16]:
+            sym_fileno = unpack_file("<I", f)[0]
+            sym_filename = node_filenames[sym_fileno]
+        else:
+            sym_filename = read_string(f)
         unpack_file("<III", f)
         if sym_name not in symbols:
             continue