Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
16348d5
Added shiny kingler palette
jmynes Nov 1, 2024
a97e8d9
Added notes for Kingler
jmynes Nov 1, 2024
aaaff23
Merge pull request #2 from jmynes/master
jmynes Nov 1, 2024
30ef94e
Re-ordered Kingler's frames (credit ansh), so it faces the screen whe…
jmynes Nov 1, 2024
5a762a0
Reverted back to Kingler facing away from the screen when moving righ…
jmynes Nov 2, 2024
45eeac5
Added Kingler to README
jmynes Nov 2, 2024
88cec7e
Added Latios and Latias, credit Nolo33LP
jmynes Nov 4, 2024
1d300e8
Added Jordank's placeholder shinies for Latios/Latias, awaiting updat…
jmynes Nov 4, 2024
4ca975c
Nolo33LP updated Latias Shiny
jmynes Nov 4, 2024
2fa0372
Nolo33LP updated Latios shiny sprite
jmynes Nov 4, 2024
50796ca
Jordank re-indexed Nolo33LP's shiny palettes for Latios/Latias
jmynes Nov 4, 2024
95307a5
Added Rayquaza, straight from Nolo33LP
jmynes Nov 5, 2024
40a7dc5
Jordank re-indexed shiny
jmynes Nov 5, 2024
c79651d
Jordank edited south/down facing sprite tail
jmynes Nov 5, 2024
7c0cd10
Support for 4 frames per direction for desired mon
ansh746 Nov 5, 2024
0cd502d
Reduced overlay sprite, arm no longer overlaps player's face. Additio…
jmynes Nov 5, 2024
e216681
Fixed line-doubling issue in Pikachu's head overlay
jmynes Nov 5, 2024
bbb3d27
Fixed Pikachu East/West Overlay errors with NPCs by making the body b…
jmynes Nov 5, 2024
e445768
Added overlay graphics for Raichu (non-shiny)
jmynes Nov 5, 2024
f024c88
Fixed Raichu line doubling on overlay
jmynes Nov 5, 2024
aaf659d
Updated shiny sprite to match fixed overlay
jmynes Nov 5, 2024
02c601a
Updated Pichu to have an overlay, slightly cleaned up south/down faci…
jmynes Nov 5, 2024
e09ae88
Updated Pichu/Pikachu/Raichu to have a different color surfboard when…
jmynes Nov 5, 2024
4521316
Fixed Huntail's line-doubling, and Shiny Huntail's palette index
jmynes Nov 5, 2024
1477430
Fixed line doubling issue for Gorebyss
jmynes Nov 5, 2024
8e67b34
Updated overlay graphics for Latios/Latias to fix line doubling
jmynes Nov 5, 2024
7c0182d
Fixed line doubling on Rayquaza's head overlay
jmynes Nov 5, 2024
cf04bcd
Crossed Rayquaza off TODO list
jmynes Nov 5, 2024
57847ac
Added missing space
jmynes Nov 5, 2024
972ce10
Added another missing space
jmynes Nov 5, 2024
3efe8ae
Simple build script in bash
jmynes Nov 21, 2024
1b0770a
Jordank's fixed up and edited version of Carvanha from Shiny's (curre…
jmynes Nov 21, 2024
39ca79c
Whiscash marked as in-progress
jmynes Nov 22, 2024
dd1f196
Added Whiscash
jmynes Nov 22, 2024
62be40c
Added test.SAV file with Boxes 1-7 containing vanilla Gen 1-3 surf mo…
jmynes Nov 22, 2024
2cada32
Added gen 4-9 tradebacks to box 7, with an empty row between
jmynes Nov 22, 2024
5aa116e
Ensure whiscash is aligned, overlay works. Shiny palette not yet set
jmynes Nov 22, 2024
2be4d1e
Re-arranged sprite frames to match up/down bobbing
jmynes Nov 22, 2024
3941ed0
Added missing pokemon, rearranged tradebacks mons to box 8
jmynes Nov 22, 2024
0c81a62
Set Hariyama line to lv 100 in save file
jmynes Nov 22, 2024
14dc7fa
Added later gen evos, regional variants, and regional evolutions for …
jmynes Nov 22, 2024
9f36065
Fixed formatting
jmynes Nov 22, 2024
a48f720
missing newline
jmynes Nov 22, 2024
852a65d
Adding missing bullet points
jmynes Nov 22, 2024
18e62ad
Credits for Carvanha
jmynes Nov 23, 2024
e83e55f
Finalized Whiscash and shiny
jmynes Nov 23, 2024
f1b46db
Updated README
jmynes Nov 23, 2024
7550de6
Enable 64x64 Corphish (raft)
jmynes Nov 27, 2024
34cff2d
Initial Corphish from EduarPokeN, partially misaligned on up/down frames
jmynes Nov 27, 2024
237a538
Adjusted alignment of Corphish to fix line doubling offset issue
jmynes Nov 27, 2024
8eae1a4
Jordank updated raft and positioning to better match new Corphish by …
jmynes Nov 27, 2024
4062248
Received updated Corphish from EduarPokeN, and also shiny version
jmynes Nov 28, 2024
46ceaf0
Updated README
jmynes Nov 28, 2024
3e7445a
Crawdaunt 1st draft ny EduarPokeN
jmynes Nov 28, 2024
bd6d89a
Updated Crawdaunt overlay to fix line doubling and overlap issues
jmynes Nov 28, 2024
a00770a
Placeholder shiny should copy over most recent changes
jmynes Nov 28, 2024
53ba644
EduarPokeN added sideways view to Crawdaunt
jmynes Nov 29, 2024
0e70648
Quieting perms change by wsl
jmynes Nov 29, 2024
54e2f68
Added finalized shiny crawdaunt
jmynes Nov 30, 2024
c5c4f28
Updated credits for Crawdaunt
jmynes Nov 30, 2024
4f48c83
Added Sharpedo, by Pokets
jmynes Dec 15, 2024
82d0df3
First draft relicanth by Pokets
jmynes Dec 18, 2024
a957691
Rough draft edits by Jordank to Relicanth
jmynes Dec 18, 2024
ce9a7fb
added additional sleep seconds
jmynes Dec 18, 2024
a9dae70
Revisions by Pokets
jmynes Dec 20, 2024
070d056
Further revisions made by Jordank
jmynes Dec 20, 2024
1160d49
Final Relicanth edits by Pokets, shiny version as well
jmynes Dec 20, 2024
6eab54c
Fixed palette
jmynes Dec 20, 2024
9f3cba5
Jordank adjusted a few more px, finalized
jmynes Dec 20, 2024
b028e94
Additional minor edits by Jordank
jmynes Dec 20, 2024
ffa52c8
Wailord draft sent by Pokets
jmynes Jan 1, 2025
7068301
Adjusted alignment, Jordank draft for overlay
jmynes Jan 1, 2025
5c21291
Enabled Wailord as 64x64
jmynes Jan 1, 2025
ea26573
Alignment adjusted slightly wider horizontal sprite for Wailord from …
jmynes Jan 4, 2025
5c86cea
Shiny version of final Wailord sprite
jmynes Jan 4, 2025
c0d6157
Fixed shiny palette index
jmynes Jan 4, 2025
d2c2b0a
Added baseline 32x32px sprite template
jmynes Jan 4, 2025
becec67
Updated frame for template
jmynes Jan 4, 2025
1653792
Added 64x64 frame version of Red template
jmynes Jan 4, 2025
304ed61
Added Leaf 32x32 and 64x64 bases
jmynes Jan 4, 2025
9813740
README markdown improvements, added Pokets credit for Wailord, improv…
jmynes Jan 4, 2025
c011648
Added templates for raft (indexed, importable palette), and versions …
jmynes Jan 10, 2025
9e3c671
Moved templates to their own folder
jmynes Jan 10, 2025
b3ea23d
Barboach by Pokets
jmynes Jan 10, 2025
69e6520
Enabled Barboach
jmynes Jan 10, 2025
85bff43
Updated README to show Barboach completed
jmynes Jan 10, 2025
fb5f2ed
Edit from Pokets, fix nose, adjust coloring
jmynes Jan 16, 2025
98acd3a
Jordank alignment fix, off by 1px sideways
jmynes Jan 16, 2025
894fd4e
Jordank adjusted barboach colors to use previous revision, while reta…
jmynes Jan 16, 2025
ed8dff0
Added Zangoose, not previously supported by this project
jmynes Jan 16, 2025
722a90e
First draft Zangoose sprite, by Pokets
jmynes Jan 16, 2025
49645d3
Added Pokets as credit for Zangoose
jmynes Jan 16, 2025
2001823
Adjusted completion percent in README
jmynes Jan 16, 2025
b5b66aa
Jordank reordered sprites, fixed vertical alignment of overlay
jmynes Jan 16, 2025
60f4b28
Adjusted comments, removed some redundant/inconsistent markers
jmynes Jan 16, 2025
96b2c73
Added twitter links for Pokets, Nolo33LP, EduarPokeN
jmynes Jan 17, 2025
9893fd1
Shiny Barboach from Pokets
jmynes Jan 18, 2025
ddd7566
Jordank repaired shiny palette
jmynes Jan 18, 2025
7cf1b69
Shiny provided by Pokets, has palette issue, but was cool enough to s…
jmynes Jan 18, 2025
7c857fc
Jordank adjusted sprite, added purple to claws, need matching palette…
jmynes Jan 19, 2025
314d555
Jordank adjusted shiny sprite to match basic zangoose
jmynes Jan 19, 2025
09e7ad3
Draft Feebas from Pokets
jmynes Jan 23, 2025
79bfe9f
Jordank adjusted feebas alignment
jmynes Jan 23, 2025
c461de6
Update README.md
Shiny-Miner Jan 23, 2025
ebdeb10
Added Feebas
jmynes Jan 24, 2025
241212f
Updated README for Feebas
jmynes Jan 24, 2025
09d2347
Final Feebas sprite
jmynes Jan 24, 2025
414f05f
Luvdisc by Pokets
jmynes Jan 24, 2025
e4d27fd
Surskit and Masquerain by Pokets
jmynes Jan 24, 2025
246c592
Enabled Luvdisc, added support for Surskit and Masquerain, both not p…
jmynes Jan 24, 2025
6a1c3b8
New draft with improved overlay by Pokets
jmynes Jan 24, 2025
f96f0ed
Moved overlay frame up by 1px
jmynes Jan 24, 2025
865f1ab
Pokets provided shiny versions
jmynes Jan 24, 2025
ccefa5e
Jordank fixed palette
jmynes Jan 24, 2025
b3432c4
Jordank repaired shiny palette
jmynes Jan 24, 2025
cce5f7a
Jordank fixed shiny palette
jmynes Jan 24, 2025
1d6cd7f
Holy shit we did it you guys
jmynes Jan 24, 2025
e78acc9
Updated README status, we have reached vanilla completion!
jmynes Jan 24, 2025
03fa65d
New draft by pokets
jmynes Jan 24, 2025
f89d25b
Slightly recolored Masquerain edits by Jordank
jmynes Jan 24, 2025
5cae0a0
Jordank touchups
jmynes Jan 24, 2025
548033d
Jordank adjusted shiny palette
jmynes Jan 24, 2025
c189f6d
Moved one overlay frame up 1px
jmynes Jan 24, 2025
15b41e5
Updated test save file
jmynes Jan 24, 2025
24f930e
Moved old Snorlax to old backup directory, testing draft of Snorlax r…
jmynes Jan 30, 2025
3a1566b
Jordank rearranged frames
jmynes Jan 30, 2025
8c8f578
Use 64x64 for Snorlax
jmynes Jan 31, 2025
0bea92d
Added pokets credit for Snorlax rework
jmynes Jan 31, 2025
fcac91c
Added Lairon to README, exists in sprites folder
jmynes Feb 1, 2025
22bd79f
Moved Lairon out of surfing sprites, doesnt learn surf in any gen
jmynes Feb 1, 2025
53495cf
Created subfolder of old-graphics
jmynes Feb 1, 2025
ae42e43
Updated Lickitung to resemble the one in zacwalton/wally-217's direct…
jmynes Feb 1, 2025
31c8e3f
Lugia draft by Jordank, adapted from HGSS
jmynes Feb 1, 2025
2eafffe
64x64 Lugia
jmynes Feb 1, 2025
163cc86
Credited Jordank for current Lugia
jmynes Feb 1, 2025
b0cdcda
Updated shiny to match current Jordank Lugia's overlays, slightly adj…
jmynes Feb 1, 2025
ef84429
Added alt-color for Lugia, matching in-game sprite
jmynes Feb 1, 2025
b94cf48
Added template for 4 frame animation
jmynes Feb 2, 2025
f95ed26
Jordank snoring 2 and 4 frame variants of Snorlax
jmynes Feb 2, 2025
b6c8c17
4-frame 64x64 snoring Snorlax, currently only snores when facing East…
jmynes Feb 2, 2025
ca6b4b7
Repaired Snorlax palette, accidentally lost a few colors before. Adde…
jmynes Feb 2, 2025
81db5ae
Added south snoring to snorlax
jmynes Feb 2, 2025
41d388f
Gave snoring its own color
jmynes Feb 2, 2025
e4465ae
Pokets version, before Zs added to snoring
jmynes Feb 2, 2025
1a6bdd1
Added 2-frame snoring to all directions
jmynes Feb 2, 2025
f5bac5b
Support for Unique East-West frames with Four frames per direction
ansh746 Feb 2, 2025
7c1b9fe
Fixed comments
jmynes Feb 2, 2025
719f408
Snorlax now supports 4-frames and unique East/West sprites!
jmynes Feb 2, 2025
a2f9984
Adding comments
jmynes Feb 2, 2025
a5a36b8
Added comments
jmynes Feb 3, 2025
0f6eb1d
Jordank temporary shiny palette for Snorlax
jmynes Feb 3, 2025
0cde1a9
Updated README
jmynes Feb 3, 2025
9a00f6a
Added pre-release #1 .ups patch file
jmynes Feb 3, 2025
a52cf28
Added more explicit instructions for ROM version and verification
jmynes Feb 3, 2025
a232434
Updated README with detailed credits
jmynes Feb 3, 2025
10de75a
History chart for development of this feature
jmynes Feb 3, 2025
25403d1
Further edited README credits
jmynes Feb 3, 2025
77bfbd8
Two versions of the test save file
jmynes Feb 3, 2025
ec8d929
Add test.SAV to gitignore, in favor of the other two save files
jmynes Feb 3, 2025
a003c9c
Updating credits, including raft
jmynes Feb 3, 2025
c55f10b
Added old Kingler
jmynes Feb 3, 2025
4cbc762
Added missing credit for Michelle Soto's Dratini
jmynes Feb 3, 2025
b648684
Added Barboach to Pokets credits
jmynes Feb 3, 2025
871a59b
Fixed color pattern error in Red Base 32
jmynes Feb 3, 2025
03cc7c7
Fixed SAV files, boxed pokemon now correctly know Surf
jmynes Feb 3, 2025
3c2f131
Boxed Pokemon in test.SAV now correctly know surf
jmynes Feb 3, 2025
658699b
Moved shiny Nidoqueen to old folder, has closed eyes for some reason?…
jmynes Feb 3, 2025
54811a8
Fixed repo link for Slawter666
jmynes Feb 3, 2025
942c874
Fixed alignment of Nidoqueen sprite
jmynes Feb 3, 2025
801745d
Adapted shiny palette from old shiny Nidoqueen, to rearranged base Ni…
jmynes Feb 3, 2025
9545fa9
Normalized sprite order for Nidoqueen
jmynes Feb 3, 2025
8b4fc34
Added Nidoqueen with game-accurate shiny palette
jmynes Feb 3, 2025
0bb2bda
Normalized sprite ordering for Squirtle
jmynes Feb 4, 2025
a3dc1ab
Normalized sprite ordering for Wartortle
jmynes Feb 4, 2025
b3a540b
Normalized sprite ordering for Blastoise
jmynes Feb 4, 2025
fc1467f
Improved commenting for squirtle/wartotle
jmynes Feb 4, 2025
ee65457
Normalized sprite ordering for Pikachu
jmynes Feb 4, 2025
d19641d
Jordank Improved overlay and alignment for Pikachu
jmynes Feb 4, 2025
44aab62
Jordank adjusted shiny palette for Pikachu
jmynes Feb 4, 2025
44994f8
Jordank finalized shiny pikachu palette
jmynes Feb 4, 2025
17977d6
Jordank normalized, and improved overlay + alignment for Pikachu
jmynes Feb 4, 2025
634d710
Updating comments
jmynes Feb 4, 2025
f45203f
More comment updates
jmynes Feb 4, 2025
67361eb
Finished updating comments for all Kanto Pokemon
jmynes Feb 4, 2025
96cd638
Jordank normalized, and improved overlay + alignment for Pichu
jmynes Feb 4, 2025
61e1d80
Jordank improved south-facing overlay for Pichu
jmynes Feb 4, 2025
452b5df
Updated README
jmynes Feb 4, 2025
1fdef00
Correct Kingler comments
jmynes Feb 6, 2025
71e26ad
Fixed Snorlax comments
jmynes Feb 6, 2025
726919c
Reordered Poliwag frames to match others, sprite was already correct …
jmynes Feb 8, 2025
ca5d431
Reordered Poliwhirl and Poliwrath frames to match others, sprites wer…
jmynes Feb 8, 2025
9552921
Replaced bad shiny Poliwhirl sprite
jmynes Feb 8, 2025
ccbf0bf
Fixed Tentacool sprite alignment, starting on Tentacruel and Seel
jmynes Feb 8, 2025
f539e47
Normalized Tentacruel sprite order
jmynes Feb 8, 2025
2a8561b
Fixed Seel sprite order and positioning
jmynes Feb 8, 2025
a5b436f
Fixed Dewgong sprite order and overlay positioning
jmynes Feb 8, 2025
9bfa616
Jordank realigned Gyarados sprite, improved overlay, & fixed mouth pa…
jmynes Feb 9, 2025
e141077
Fixed Gyarados sprite order
jmynes Feb 9, 2025
a7a9a06
Commiting Ansh's sprite conversion script, for re-ordering frames
jmynes Feb 9, 2025
62069c1
First sprite re-ordered by Ansh's script
jmynes Feb 9, 2025
768c8eb
Extending North/South Lapras sprite width by 1px to center it with pl…
jmynes Feb 9, 2025
7e82e93
Added CLI, and additional layout choices
jmynes Feb 9, 2025
537ebc5
Rename paths
jmynes Feb 9, 2025
e7ee431
Make exported_sprites directory, if missing
jmynes Feb 9, 2025
1ad60a0
Better descriptions for options
jmynes Feb 9, 2025
6a2b45f
Add help printout option
jmynes Feb 9, 2025
cd3d4a0
Refactor for readability, factored out flags.txt
jmynes Feb 9, 2025
a7815c1
More readbale output in CLI
jmynes Feb 9, 2025
c408fd5
Refactor print logic into functions
jmynes Feb 9, 2025
8c18c7f
User can now pass one or more args in any order, to set FRAME_SIZE an…
jmynes Feb 9, 2025
d21ac8c
Chatgpt generated readme for convert.py
jmynes Feb 9, 2025
e98d465
Use a loop and enumerate how many layout options we have, instead of …
jmynes Feb 9, 2025
18c1a07
Rename description to help_text, removed an extra newline
jmynes Feb 9, 2025
5ef4086
Added credits for Kyogre to Surskitty
jmynes Feb 14, 2025
625d721
Renamed lugia using game colors to indicate it's flying
jmynes Feb 16, 2025
0127077
Added flying lugia to alt sprites
jmynes Feb 16, 2025
7e4be8d
Fixed sprite order of Lugia sprites
jmynes Feb 20, 2025
90d1e2a
Moved alt sprites to their own subfolders
jmynes Feb 20, 2025
b914cfb
lugia (surfing) improved, by Pokets
jmynes Mar 15, 2025
be9f165
Updated Lugia in README
jmynes Mar 15, 2025
b9a3959
updated lugia sprite, now has working overlay, improved north facing …
jmynes Mar 24, 2025
a5b5c8a
Slightly adjusted lugia overlay
jmynes Mar 24, 2025
7c4d0a3
feat: finished lugia palette and shiny lugia palette
jmynes Mar 25, 2025
0ef6e9a
Added gen 3 color accurate surfing lugia to alternate graphcis
jmynes Mar 25, 2025
72bf88d
slightly brightened lugia shiny palette
jmynes Mar 25, 2025
9b1aebe
Updated README credits for Lugia
jmynes Mar 25, 2025
d9336f4
drop-shadow added to flying lugia alts
jmynes Mar 26, 2025
4d474d8
Adjusted southern facing Lapras overlay sprite
jmynes Apr 7, 2025
38c27e1
Reordered Vaporeon sprites, improved colors for Shiny Vaporeon
jmynes Apr 7, 2025
986c405
Corrected sprite order and cleaned up Totodile/Croconaw/Feraligatr, p…
jmynes Apr 7, 2025
d7dc88d
Vaporeon sprite reordered by script
jmynes Apr 7, 2025
53880bd
script reordered furret sprites
jmynes Apr 7, 2025
2a2bace
Updated Sentret's ears and pallete, fixed shiny palette
jmynes Apr 7, 2025
1824291
Slightly tweaked colors again for shiny Sentret
jmynes Apr 7, 2025
c1f5694
Fixed east/west sprite order, slightly adjusted shiny palette one mor…
jmynes Apr 7, 2025
984d1f7
Fixed corrupted shiny palette for Lanturn
jmynes Apr 7, 2025
6b7a693
Normalized pattern for Sentret and Chinchou evo lines, and cleaned up…
jmynes Apr 7, 2025
cdc19f1
fixed order of azurill and azumarill to match dex order
jmynes Apr 7, 2025
7a18060
Adjusted outline of southern-facing lanturn sprite
jmynes Apr 7, 2025
d5a201a
Fixed marill shiny sprite palette
jmynes Apr 13, 2025
c153b25
checkpoint: normalized a bunch more of the main script
jmynes Apr 13, 2025
c697ce1
Fix swampert and shiny sprite order, palette, and alignment
jmynes Apr 13, 2025
ef3e1f4
normalized sprite order for Crawdaunt and Whiscash
jmynes Apr 13, 2025
87ee852
Normalized sprite order, and fixed alignment issues with Wailmer/Shiny
jmynes Apr 13, 2025
e3ed4cd
upgraded wailord to 64x64 frame, alignment looks much better!
jmynes Apr 13, 2025
f0e0b80
removed duplicate SPECIES_HUNTAIL definition
jmynes Apr 13, 2025
cc7e85b
Normalized sprite ordering for 8 more 32x32 pokemon
jmynes Apr 13, 2025
fca7569
Normalized Kyogre sprite order, and updated Kyogre to same canvas hei…
jmynes Apr 13, 2025
cdd1095
First commit past 6 months : Added kyogre overlay and overworld defin…
Shiny-Miner Jun 10, 2025
80af881
fix: kyogre should now render again
jmynes Sep 1, 2025
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ build/*
*.dmp
*.bak
*.lnk
*.sav
*.sa1
*.sg1
*.ss1
*.ss2
*.ss3
generatedrepoints
*__pycache__
graphics/*.h
graphics/shiny/*.h
test.sav
3 changes: 3 additions & 0 deletions BPRE.ld
Original file line number Diff line number Diff line change
Expand Up @@ -208,4 +208,7 @@ free_ = 0x8002BC4 | 1;

CpuSet = 0x81E3B64 | 1;

sSurfBlobAnim_FaceSouth = 0x83a552c;
sSurfBlobAnim_FaceNorth = 0x83a5538;
sSurfBlobAnim_FaceWest = 0x83a5544;

Binary file added Dynamic Surfing FR.ups
Binary file not shown.
291 changes: 272 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
# dynamic_surf_ows
# Dynamic surfing overworlds for FR
## Expansion by Shiny miner, ansh, jordank

=====================================================
**Original thread (by ghoulslash):**
https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/

What Is This?
For any queries, ping one of us via [Discord](https://discord.gg/yKhCRrqJyX):
- anxz86
- jordank.memes
- shinyhunter08

## What Is This?

This is a feature, originally from pokeem, (see https://github.com/Slawter666/pokeemerald/tree/surfable/src), to have the surfing sprite dynamically change based on the first party pokemon or selected pokemon from the menu.

It has a few improved features:
![Surfing Pikachu](example.gif)

## Improved Features

1. One master structure for all species data, so worrying about matching indexes is no longer an issue

Expand All @@ -18,21 +27,267 @@ It has a few improved features:

5. The overlay frames are hidden underneath map tiles (eg. treetops over water)

=====================================================
### Special Sprite Handling

This repo also now supports unique West/Left-facing and East/Right-facing sprites!
In the case of Kingler, it has an asymmetric sprite, with one larger claw. Mirroring this sprite would have resulted in the claw switching sides when the player moves around; instead, we now support sprites that have a unique look for all 4 directions!

![Kingler](kingler.gif)

Important Notes:
## Important Notes

1. This includes the dynamic overworld palette hack, as it removes the need to worry about matching palettes, and is generally just awesome. See https://github.com/Navenatox/DynamicOverworldPalettes for more details. The original source code has been modified to call some of these functions, so removing the file if you've already added this feature will not do. There is ample free-space in FR so I suggest just leaving it be unless you know what you are doing.

2. This feauture is currently missing a lot of necessary artwork. Any pokemon without art will default to the original surf blob. As art is added, either by the user or community, you can change this in src/surf_mons.h by changing the elements `.paletteTag` and `.images` of `const struct SpriteTemplate s[species]Overworld`
2. Any pokemon without art will default to the original surf blob. As art is added, either by the user or community, you can change this in src/surf_mons.h by changing the elements `.paletteTag` and `.images` of `const struct SpriteTemplate s[species]Overworld`

3. Fire Red likes vertical images, and as such the sprites have to have all their frames lined up vertically, as opposed to the pokeem images that are layered horizontally. While annoying, changing the frame ordering isn't a big deal, and I hope this won't stand in the way of community art being shared.

=====================================================

How To Compile:

1. add `rom.gba` to the main directory
## TODOs:

1. Verify that each Pokemon has a matching Shiny sprite

2. Continue normalizing sprite order ([0-1] .. [7-8]), rather than ([1-0] .. [8-7])

3. Fix template, old, and alt sprites, in accordance with #2

3. Test all sprites in-engine (see Tha Code Mining Hub's #surf-overworlds-expansion channel, and "Checking in-game" thread)

4. Apply fixes from #3.

---

# Credits:
## History Lesson
Here's a fun infographic, provided by AsparagusEduardo in the [Team Aqua Asset Repo](https://github.com/Pawkkie/Team-Aquas-Asset-Repo)'s [Discord server](https://discord.gg/hX3a63RYzZ):
![Chart showing the history of development for this project, starting with Slawter666's project for early pret/pokeemerald. This split into Ghoulslash's binary Fire Red version of the project, continued by Shiny-Miner, Ansh, and Jordank, and into surskitty's port to pokeemerald-expansion, which was continued by grunt-lucas and wally-217](history.png)

## Legacy Sprites
Various artists contributed edited sprites [Gen 1](https://www.spriters-resource.com/ds_dsi/pokemonheartgoldsoulsilver/sheet/26794/), [Gen 2](https://www.spriters-resource.com/fullview/26795/), and [Gen 3](https://www.spriters-resource.com/ds_dsi/pokemonheartgoldsoulsilver/sheet/26795/) from the Following Pokemon feature of Heart Gold and Soul Silver. Please let me know if you've contributed, and would like specific credit for specific Pokemon; This is rabbit hole to unravel, but here are the names we could verify:
- [Ghoulslash](https://github.com/ghoulslash/dynamic_surf_ows)
- [grunt-lucas](https://github.com/grunt-lucas/pokeemerald-expansion/tree/surfable/graphics/object_events/pics/pokemon/surfable)
- [Slawter666](https://github.com/Slawter666/pokeemerald/blob/surfable/graphics/event_objects/pics/pokemon/surfable/)
- [Surskitty](https://github.com/surskitty/pokeemerald/tree/surfable/graphics/object_events/pics/pokemon/surfable)
- [wally-217](https://github.com/zacwalton/pokeemerald-expansion/tree/master/graphics/object_events/pics/pokemon/surfable)

## Modern Sprites
Any sprites listed below this header are custom drawn, in the Shiny-Miner/Ansh/Jordank version of this project (the repo you're reading currently)

### [Avara](https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/)
- Wartortle, Tentacool, Tentacruel

### [eMMe97](https://www.pokecommunity.com/threads/fire-red-dynamic-surf-overworlds.420665/)
- Squirtle, Blastoise

### Hestia
- Wailmer

### Michelle Soto
- Dratini
- Carvanha
- Made the raft used by several smaller Pokemon

### [Nolo33LP](https://x.com/Nolo33LP)
- Pichu, Pikachu, Raichu
- Additional editing by Jordank
- Clamperl, Huntail, Gorebyss
- Latias, Latios
- Rayquaza

### [EduarPokeN](https://x.com/EduarPokeN)
- Whiscash
- Corphish, Crawdaunt
- Improved the Raft used by several smaller Pokemon

### [Pokets](https://x.com/pokets3)
- Snorlax
- Snoring, w/ 4-frame animation adjustment by [Jordank](https://github.com/jmynes/dynamic_surf_ows_masters-expansion)
- Lugia
- Surfing sprite by Pokets
- Flying sprite adapted from HG/SS by Jordank
- Sharpedo
- Wailord
- Barboach
- Feebas
- Relicanth
- Luvdisc
- Surskit, Masquerain
- Zangoose

### [Surskitty](https://github.com/surskitty)
- Kyogre
- Primal Kyogre

## Edited HGSS Sprites (such as posture/redrawn parts)
### Surskitty
- Nidoking, Nidoqueen
- Kangaskhan
- Quagsire
- Swampert

# [wally-217](https://github.com/zacwalton/pokeemerald-expansion/tree/master/graphics/object_events/pics/pokemon/surfable)
- Lickitung

# Completed Pokemon
## Spriting Progress:
### Gen 1: 100%
- Squirtle - Complete (eMMe97)
- Wartortle - Complete (Avara)
- Blastoise - Complete (eMMe97)
- Pikachu - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Raichu - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Nidoqueen - Complete
- Nidoking - Complete
- Psyduck - Complete (ghoulslash)
- Golduck - Complete (ghoulslash)
- Poliwag - Complete
- Poliwhirl - Complete
- Poliwrath - Complete
- Tentacool - Complete (Avara)
- Tentacruel - Complete (Avara)
- Slowpoke - Complete (ghoulslash)
- Slowbro - Complete (ghoulslash)
- Seel - Complete (ghoulslash)
- Dewgong - Complete (ghoulslash)
- Shellder - Complete
- Cloyster - Complete
- Krabby - Complete
- Kingler - Complete (Ansh746)
- Lickitung - Complete
- Rhydon - Complete
- Kangaskhan - Complete
- Horsea - Complete
- Seadra - Complete
- Goldeen - Complete
- Seaking - Complete
- Staryu - Complete (ghoulslash)
- Starmie - Complete (ghoulslash)
- Tauros - Complete
- Gyarados - Complete
- Lapras - Complete (Slawter666)
- Vaporeon - Complete (ghoulslash)
- Omanyte - Complete
- Omastar - Complete
- Kabuto - Complete
- Kabutops - Complete
- Snorlax - Complete ([Pokets](https://x.com/pokets3)), with Snoring efforts from Jordank
- Dratini - Complete (michelle soto)
- Dragonair - Complete
- Dragonite - Complete
- Mew - Complete

### Gen 2: 100%
- Totodile - Complete
- Croconaw - Complete
- Feraligatr - Complete
- Sentret - Complete (gota_csm)
- Furret - Complete (gota_csm)
- Pichu - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Chinchou - Complete
- Lanturn - Complete
- Marill - Complete
- Azumarill - Complete
- Politoed - Complete
- Wooper - Complete
- Quagsire - Complete
- Slowking - Complete (ghoulslash)
- Qwilfish - Complete
- Sneasel - Complete
- Corsola - Complete
- Remoraid - Complete
- Octillery - Complete
- Mantine - Complete
- Kingdra - Complete
- Miltank - Complete
- Suicune - Complete
- Tyranitar - Complete
- Lugia - Complete (Surfing by Pokets, Flying HGSS edit by Jordank)

### Gen 3: 100%
- Mudkip - Complete
- Marshtomp - Complete
- Swampert - Complete
- Zigzagoon - Complete
- Linoone - Complete
- Lotad - Complete
- Lombre - Complete
- Ludicolo - Complete
- Pelipper - Complete
- Makuhita - Complete
- Hariyama - Complete
- Azurill - Complete
- Aggron - Complete
- Carvanha - [Complete?] Michelle Soto
- Sharpedo - Complete ([Pokets](https://x.com/pokets3))
- Wailmer - Complete (Hestia)
- Wailord - Complete ([Pokets](https://x.com/pokets3))
- Barboach - Complete ([Pokets](https://x.com/pokets3))
- Whiscash - Complete ([EduarPokeN](https://x.com/EduarPokeN))
- Corphish - Complete ([EduarPokeN](https://x.com/EduarPokeN))
- Crawdaunt - Complete ([EduarPokeN](https://x.com/EduarPokeN))
- Feebas - Complete ([Pokets](https://x.com/pokets3))
- Milotic - Complete
- Spheal - Complete (ghoulslash)
- Sealeo - Complete (ghoulslash)
- Walrein - Complete (ghoulslash)
- Clamperl - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Huntail - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Gorebyss - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Relicanth - Complete ([Pokets](https://x.com/pokets3))
- Luvdisc - Complete ([Pokets](https://x.com/pokets3))
- Latias - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Latios - Complete ([Nolo33LP](https://x.com/Nolo33LP))
- Kyogre - Complete (Surskitty)
- Rayquaza - Complete ([Nolo33LP](https://x.com/Nolo33LP))

## Tradebacks (Receives Surf in a later gen)
### Learns Surf in Gen 4: 100%
- Exploud - Complete

### Learns Surf in Gen 9: 100%
- Surskit - Complete ([Pokets](https://x.com/pokets3))
- Masquerain - Complete ([Pokets](https://x.com/pokets3))
- Zangoose - Complete ([Pokets](https://x.com/pokets3))

## Pokemon w/ Gen 4-9 Evolutions
### Gen 4: 0%
- Munchlax - Missing
- Mantyke - Missing
- Lickilicky - Missing
- Rhyperior - Missing
- Weavile - Missing

## Pokemon w/ Regional Variants and Evolutions
### Alola: 0%
- Alolan Raichu - Missing

### Galar: 0%
- Galarian Slowpoke - Missing
- Galarian Slowbro - Missing
- Galarian Slowking - Missing
- Galarian Corsola - Missing
- Cursola - Missing
- Galarian Zigzagoon - Missing
- Galarian Linoone - Missing
- Obstagoon - Missing

### Hisui: 0%
- Hisuian Qwilfish - Missing
- Overqwil - Missing

### Paldea: 0%
- Paldean Tauros (Combat Breed) - Missing
- Paldean Tauros (Aqua Breed) - Missing
- Paldean Wooper - Missing
- Clodsire - Missing

---

## How To Compile:

0. Ensure that you have Pokemon - Fire Red v1.0 (aka `1636 - Pokemon Fire Red (U)(Squirrels).gba`). If you're unsure, you can [verify](https://emn178.github.io/online-tools/md5_checksum.html) the md5sum of your ROM, which should match `e26ee0d44e809351c8ce2d73c7400cdd`

1. Rename your ROM to `rom.gba`, and add it to the root directory of this project

2. open `scripts/make.py` and modify `OFFSET_TO_PUT` to wherever you'd like to insert this code, as well as `SEARCH_FREE_SPACE` to `True` if you'd like to search for free space from said offset.

Expand All @@ -42,12 +297,11 @@ How To Compile:

4. `test.gba` will be added to the folder, and the offsets will be located in `offsets.ini`

---

=====================================================

Adding New Species:
### Adding New Species:

if you want to add new species that can learn surf, follow these steps. I will use Popplio as an example
If you want to add new species that can learn surf, follow these steps. I will use Popplio as an example
1. make the sprite, 32 x 384 (12 frames of 32x32). Use the existing sprites as models.

2a. add the indexed image .png file to graphics/. Eg. `popplio.png`
Expand Down Expand Up @@ -78,8 +332,8 @@ const struct SpriteFrameImage gSurfingOverlayPicTable_Popplio[] = {
overworld_frame(&popplioTiles[0], 4, 4, 11),
};

sPopplioOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfBlobFieldEffect)
sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfMonOverlay)
const struct SpriteTemplate sPopplioOverworld = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popplio, UpdateSurfBlobFieldEffect);
const struct SpriteTemplate sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverlayPicTable_Popplio, UpdateSurfMonOverlay);
```

4. If you do not have any overlay frames, the sprite sheet only needs to be 32x192 (6 frames), and do not need to define the `OverlayPicTable`. Also, if you want unique palette tags, `PAL_TAG_SURF_NEW` should be `PAL_TAG_POPPLIO_SURF` or whatever you want to call it, instead.
Expand All @@ -90,8 +344,7 @@ sPopplioOverlay = surf_template(PAL_TAG_SURF_NEW, gSurfingOverworldPicTable_Popp
.species = SPECIES_POPPLIO,
.palAddr = &popplioPal[0],
.shinyPalAddr = &popplioShinyPal[0], // or 0 if it doesn't exist
.overworldGfx = &sPopplioOverword,
.overworldGfx = &sPopplioOverworld,
.overlayGfx = &sPopplioOverlay, // or 0 if it doesn't exist
},
```

Binary file added [Female]_Dynamic_Surfing_FR.SAV
Binary file not shown.
Binary file added [Male]_Dynamic_Surfing_FR.SAV
Binary file not shown.
Binary file added alt-graphics/Lugia/lugia-flying-game-colors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Lugia/lugia-flying.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Lugia/lugia-shiny-flying.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Lugia/lugia-surfing-game-colors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Snorlax/snorlax-2-frame-not-snoring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Snorlax/snorlax-2-frame-snoring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added alt-graphics/Snorlax/snorlax-4-frame-snoring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added example.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/aggron.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/azumarill.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/azurill.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/barboach.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 0 additions & 28 deletions graphics/blastoise.h

This file was deleted.

Binary file modified graphics/blastoise.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/carvanha.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/chinchou.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/clamperl.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/cloyster.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/corphish.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/corsola.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/crawdaunt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added graphics/croconaw.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading