mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Use LOAD/ENDL for OAM DMA code in HRAM (requires rgbds 0.4.1)
This commit is contained in:
parent
d96f914315
commit
bb25c1074c
@ -5,7 +5,7 @@ os:
|
|||||||
install:
|
install:
|
||||||
- |-
|
- |-
|
||||||
( cd
|
( cd
|
||||||
git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
|
git clone -b v0.4.1 --depth=1 https://github.com/rednex/rgbds
|
||||||
sudo make -C rgbds install
|
sudo make -C rgbds install
|
||||||
rm -rf rgbds
|
rm -rf rgbds
|
||||||
)
|
)
|
||||||
|
6
FAQ.md
6
FAQ.md
@ -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"
|
### "ERROR: `UNION` already defined"
|
||||||
|
|
||||||
Download [**rgbds 0.4.0**][rgbds] or newer. Older versions will not work.
|
Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
|
||||||
|
|
||||||
### "ERROR: Macro not defined"
|
### "ERROR: Macro not defined"
|
||||||
|
|
||||||
Download [**rgbds 0.4.0**][rgbds] or newer. Older versions will not work.
|
Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
|
||||||
|
|
||||||
### "Expression must be 8-bit"
|
### "Expression must be 8-bit"
|
||||||
|
|
||||||
Download [**rgbds 0.4.0**][rgbds] or newer. Older versions will not work.
|
Download [**rgbds 0.4.1**][rgbds] or newer. Older versions will not work.
|
||||||
|
|
||||||
### "Segmentation fault" from `rgbgfx`
|
### "Segmentation fault" from `rgbgfx`
|
||||||
|
|
||||||
|
10
INSTALL.md
10
INSTALL.md
@ -38,7 +38,7 @@ Double click on the text that says "**Skip**" next to each package to select the
|
|||||||
|
|
||||||
Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.zip** or **win32.zip** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**.
|
Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.zip** or **win32.zip** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**.
|
||||||
|
|
||||||
**Note: If you already have an older rgbds, you will need to update to 0.4.0.** Ignore this if you have never installed rgbds before. If a version newer than 0.4.0 does not work, try downloading 0.4.0.
|
**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.
|
||||||
|
|
||||||
Now open the **Cygwin terminal** and enter the following commands.
|
Now open the **Cygwin terminal** and enter the following commands.
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ To install **rgbds**:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install pkg-config flex bison libpng-dev
|
sudo apt-get install pkg-config flex bison libpng-dev
|
||||||
git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
|
git clone -b v0.4.1 --depth=1 https://github.com/rednex/rgbds
|
||||||
sudo make -C rgbds install
|
sudo make -C rgbds install
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ To install **rgbds**:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo zypper install pkg-config flex bison libpng16-devel
|
sudo zypper install pkg-config flex bison libpng16-devel
|
||||||
git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
|
git clone -b v0.4.1 --depth=1 https://github.com/rednex/rgbds
|
||||||
sudo make -C rgbds install
|
sudo make -C rgbds install
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ Alternatively, to install **rgbds** manually:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo pacman -S pkg-config flex bison libpng
|
sudo pacman -S pkg-config flex bison libpng
|
||||||
git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
|
git clone -b v0.4.1 --depth=1 https://github.com/rednex/rgbds
|
||||||
sudo make -C rgbds install
|
sudo make -C rgbds install
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ If `rgbds` is not available, you'll also need these:
|
|||||||
To install **rgbds**:
|
To install **rgbds**:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
|
git clone -b v0.4.1 --depth=1 https://github.com/rednex/rgbds
|
||||||
sudo make -C rgbds install
|
sudo make -C rgbds install
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -2520,7 +2520,7 @@ EndMoveEffect:
|
|||||||
ld l, a
|
ld l, a
|
||||||
ld a, [wBattleScriptBufferAddress + 1]
|
ld a, [wBattleScriptBufferAddress + 1]
|
||||||
ld h, a
|
ld h, a
|
||||||
ld a, $ff
|
ld a, endmove_command
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
@ -1,21 +1,28 @@
|
|||||||
WriteOAMDMACodeToHRAM::
|
WriteOAMDMACodeToHRAM::
|
||||||
ld c, LOW(hTransferVirtualOAM)
|
ld c, LOW(hTransferVirtualOAM)
|
||||||
ld b, .PushOAMEnd - .PushOAM
|
ld b, OAMDMACodeEnd - OAMDMACode
|
||||||
ld hl, .PushOAM
|
ld hl, OAMDMACode
|
||||||
.loop
|
.copy
|
||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ldh [c], a
|
ldh [c], a
|
||||||
inc c
|
inc c
|
||||||
dec b
|
dec b
|
||||||
jr nz, .loop
|
jr nz, .copy
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.PushOAM:
|
OAMDMACode:
|
||||||
|
; This code is defined in ROM, but
|
||||||
|
; copied to and called from HRAM.
|
||||||
|
LOAD "OAM DMA", HRAM
|
||||||
|
hTransferVirtualOAM::
|
||||||
|
; initiate DMA
|
||||||
ld a, HIGH(wVirtualOAM)
|
ld a, HIGH(wVirtualOAM)
|
||||||
ldh [rDMA], a
|
ldh [rDMA], a
|
||||||
|
; wait for DMA to finish
|
||||||
ld a, NUM_SPRITE_OAM_STRUCTS
|
ld a, NUM_SPRITE_OAM_STRUCTS
|
||||||
.pushoam_loop
|
.wait
|
||||||
dec a
|
dec a
|
||||||
jr nz, .pushoam_loop
|
jr nz, .wait
|
||||||
ret
|
ret
|
||||||
.PushOAMEnd
|
ENDL
|
||||||
|
OAMDMACodeEnd:
|
||||||
|
2
hram.asm
2
hram.asm
@ -1,7 +1,5 @@
|
|||||||
SECTION "HRAM", HRAM
|
SECTION "HRAM", HRAM
|
||||||
|
|
||||||
hTransferVirtualOAM:: ds 10
|
|
||||||
|
|
||||||
hROMBankBackup:: db
|
hROMBankBackup:: db
|
||||||
hFarByte::
|
hFarByte::
|
||||||
hTempBank:: db
|
hTempBank:: db
|
||||||
|
@ -367,4 +367,5 @@ SRAM $06
|
|||||||
SRAM $07
|
SRAM $07
|
||||||
"SRAM Mobile 4"
|
"SRAM Mobile 4"
|
||||||
HRAM
|
HRAM
|
||||||
|
"OAM DMA"
|
||||||
"HRAM"
|
"HRAM"
|
||||||
|
Loading…
Reference in New Issue
Block a user