pret / pokeyellow Goto Github PK
View Code? Open in Web Editor NEWDisassembly of Pokemon Yellow
Disassembly of Pokemon Yellow
pokered has been significantly reorganized based on the structure of pokegold and pokecrystal. To make the repos comparable, pokeyellow should reflect its changes (and port back to pokered any various improvements it has, like better label names or whitespace).
I wanted to add 25 new moves to the game, so I was following the Heart Stamp tutorial and to follow it I tried adding the move Signal Beam. I'm pretty sure I did everything correctly but when i try to build the room I get 3 error messages and they all points to "macros/asserts.asm::assert_table_length<16>:"
If i'm not mistaken the error message is talking about this line: "{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes".
I got something similar before when I tried to change some pokémon names... I'm not really sure whats going on, I guess the rom is running out of space? How can I fix this or how could I provide more info about this issue?
i don't know if this counts as an issue but Pikachu's cries (.wav) are REALLY loud. Any reason?
Bonus: decode .pcm files back into .wav audio.
pokeyellow/engine/pikachu/pikachu_status.asm
Lines 139 to 179 in cf5a7f0
From a glance, it seems that the two labels are wrong: At lines 162-164, a nonzero value of a
means there is a status ailment, and 0 means no status ailment. The bitwise OR of the two HP bytes is also stored in d
, but I don't know if it is ever used.
I'm working on a ROM hack using the disassembled code here as a base. I want to edit some trainer names (e.g., Misty, Jessie & James, etc), however, running a grep recursive search shows nothing useful. Has that part of the binary not been disassembled yet? If not, where in the tree are they stored?
I have found how to edit the questions themselves, for the quiz.
But I can not for the life of me find where you can change the value of the corrected answer.
For example I changed the first question to Hit no
, and I found this section in hidden_objects.asm
that shows these lines:
CinnabarGymHiddenObjects:
hidden_object 13, 17, SPRITE_FACING_UP, GymStatues
hidden_object 7, 15, (0 << 4) | 1, PrintCinnabarQuiz
hidden_object 1, 10, (1 << 4) | 2, PrintCinnabarQuiz
hidden_object 7, 9, (1 << 4) | 3, PrintCinnabarQuiz
hidden_object 13, 9, (1 << 4) | 4, PrintCinnabarQuiz
hidden_object 13, 1, (0 << 4) | 5, PrintCinnabarQuiz
hidden_object 7, 1, (1 << 4) | 6, PrintCinnabarQuiz
db $ff
The 0's and 1's actually do line up with the correct answers, so I thought 0 was Yes and 1 was No.
So I changed the first 0 to a 1, but the answer was still Yes.
Does anyone actually know exactly where to find where to change it at?
The Pokemon logo on the title screen is all messed up and looks... corrupted. Any advice?
In event_constants.asm, EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 isn't referenced anywhere.
Also, the name for EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 seems incorrect. It isn't linked to an actual battle.
Hello please update the Macros from Warp and Warp_to I want use it with Polished Map like Pokered and Pokecrystal, thanks
Hello.
After installing rgbds I tried to make pokeyellow project. Unfortunately I received
> make
python: can't open file 'extras/pokemontools/scan_includes.py': [Errno 2] No such file or directory
python: can't open file 'extras/pokemontools/scan_includes.py': [Errno 2] No such file or directory
python: can't open file 'extras/pokemontools/scan_includes.py': [Errno 2] No such file or directory
python: can't open file 'extras/pokemontools/scan_includes.py': [Errno 2] No such file or directory
rgbasm -h -o audio.o audio.asm
error: Unable to open incbin file 'gfx/surfing_pikachu_1a.2bpp'
make: *** [audio.o] Error 1
How should I build this?
pret/pokered@95ec2cf needs merging into pokeyellow.
Reference pret/pokecrystal#967
I followed the rgbds setup guide, installed all the required libs for rgbgfx to work but it doesn't
Logs
rgbgfx -o gfx/surfing_pikachu/surfing_pikachu_1a.2bpp gfx/surfing_pikachu/surfing_pikachu_1a.png
make: rgbgfx: Command not found
make: *** [Makefile:166: gfx/surfing_pikachu/surfing_pikachu_1a.2bpp] Error 127
Thanks
Skyde
When I build pokeyellow in Cygwin with rgbds 0.4.1, I get these warnings from the pikapic_jump
macro:
rgbasm -h -L -Weverything -o main.o main.asm
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(33) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(45) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(55) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(65) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(75) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(85) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(95) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(105) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(115) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(125) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(136) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(146) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(156) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(166) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(176) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(186) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(196) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(206) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(216) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(226) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(236) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(249) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(259) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(269) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(279) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(307) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(317) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
warning: main.asm(416) -> engine/pikachu/pikachu_pic_animation.asm(852) -> data/pikachu/pikachu_pic_animation.asm(327) -> constants/pikachu_emotion_constants.asm::pikapic_looptofinish(223) -> constants/pikachu_emotion_constants.asm::pikapic_jump(187) -> macros/data.asm::dbw(61): [-Wlong-string]
File stack dump too long, got truncated
pret can now convert .wav files to 1-bit pcm data at compile time.
First, use pret/pokemontools/pcm.py to convert all of the pikachu cries' pcm data into .wav files. Then, INCBIN those .wav files in pokeyellow's source code. Finally, update the MakeFile to convert .wav files to .pcm files.
Use this pokepinball commit as reference: pret/pokepinball@10b87f1
Upon running make
in the repo (after following the steps in INSTALL.md for Mac OS), I get this:
rgbasm -h -o audio.o audio.asm
rgbasm -h -o main.o main.asm
rgbasm -h -o text.o text.asm
rgbasm -h -o wram.o wram.asm
ERROR: wram.asm(2857) :
'UNION' already defined
ERROR: wram.asm(2875) :
'NEXTU' already defined
ERROR: wram.asm(2896) :
'ENDU' already defined
ERROR: wram.asm(3504) :
'UNION' already defined
ERROR: wram.asm(3509) :
'NEXTU' already defined
ERROR: wram.asm(3522) :
'ENDU' already defined
rgbasm: Assembly aborted in pass 1 (6 errors)!
make: *** [wram.o] Error 1
As I said, I am on mac.
ERROR: main.asm(165) -> data/pokemon/base_stats.asm(110) -> data/pokemon/base_stats/lickitung.asm(23) -> macros/data.asm::tmhm(23) -> macros/data.asm::tmhm::REPT~26(24):
syntax error, unexpected identifier, expecting )
ERROR: main.asm(165) -> data/pokemon/base_stats.asm(110) -> data/pokemon/base_stats/lickitung.asm(23) -> macros/data.asm::tmhm(23) -> macros/data.asm::tmhm::REPT~26(25):
syntax error, unexpected identifier
ERROR: main.asm(165) -> data/pokemon/base_stats.asm(110) -> data/pokemon/base_stats/lickitung.asm(23) -> macros/data.asm::tmhm(23) -> macros/data.asm::tmhm::REPT~26(26):
syntax error, unexpected identifier
FATAL: main.asm(165) -> data/pokemon/base_stats.asm(110) -> data/pokemon/base_stats/lickitung.asm(23) -> macros/data.asm::tmhm(23) -> macros/data.asm::tmhm::REPT~26(28):
Found ELSE outside an IF construct
make: *** [Makefile:87: main.o] Error 1
How do I resolve this? The only part of Lickitung.asm I edited was the TMs section, to add ones he would later get:
; tm/hm learnset
tmhm MEGA_PUNCH, SWORDS_DANCE, MEGA_KICK, TOXIC, BODY_SLAM, \
TAKE_DOWN, DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, \
BLIZZARD, HYPER_BEAM, SUBMISSION, COUNTER, SEISMIC_TOSS, \
RAGE, THUNDERBOLT, THUNDER, EARTHQUAKE, FISSURE, \
DIG, MIMIC, DOUBLE_TEAM, BIDE, FIRE_BLAST, \
SKULL BASH, REST, ROCK_SLIDE, SUBSTITUTE, CUT, \
SURF, STRENGTH
; end
rgbasm -h -o audio.o audio.asm
make: rgbasm: Command not found
make: *** [Makefile:42: audio.o] Error 127
Hi! I get an error when compiling the file wram.asm on OSX Yosemite with the newest version of rgbds (installed it with homebrew --HEAD).
ERROR: wram.asm(536):
Constant mustn't be negative: -528
make: *** [wram.o] Error 5
On line 536:
ds wPrinterSerialReceived -@
I just started venturing into this land of rom hacking. Anyone has any ideas of what may be happening?
This doesn't even come close to building anything. I know of course it isn't going to build a real Yellow, but you have introduced so many bugs and typos that this is a nightmare for me to go behind you and fix your mess. This should be redone from the start.
This is constantly happening.
It has to do with a minimum of 8-bits in bit depth, even though there's only 4 colors used in the input.
"rgbgfx -o gfx/yellow_titlescreen.2bpp gfx/yellow_titlescreen.png
error: Too many colors in input PNG file's palette to fit into a 2-bit palette (256 in input palette, max 4).
make: *** [Makefile:80: gfx/yellow_titlescreen.2bpp] Error 1"
make: python: No such file or directory
make: *** [Makefile:99: audio/pikachu_cries/pikachu_cry_1.pcm] Error 127
I know extremely little about code, and I'm just wanting to make a simple rom hack for a nuzlocke randomizer thing I'm doing.
But when I'm trying to compile on my mac I get this
rgbasm -h -o text.o text.asm ERROR: text.asm(2130) -> text/maps/route_9_1.asm(94): Section 'Text 3' is too big (max size = 0x4000 bytes). make: *** [text.o] Error 5
Any ideas on what I need to change to fix this?
I already found one issue where it freaked out from bank 13, but I just removed the colosseum and trade center code, since they won't be used, and that fixed that. But I wasn't having this issue the last time I tried compiling.
Thanks for any help guys!
data/, gfx/, and engine/ all have top-level files that are missing some refactoring and reorganizing that was done for pokered.
hey i might be comleatly dumb but how do you start it this since you have installed it completely?
See pret/pokered#271 for more discussion.
1dc242039218fba50928d1afb66b70565b6b9daf *pokeyellow-es.gbc
42f3714eec6eca25200d42461ff08d57c98f6d1d *pokeyellow-de.gbc
0aceec0ef7aa2ca5aa831554598d91f61a925591 *pokeyellow-fr.gbc
05bb8e99f24d498613930949730afa8024e77d08 *pokeyellow-it.gbc
The Japanese and Chinese pirate ROMs probably deserve separate projects:
1fb6c264e950d97ce3fd99b347e485b2150df4ff *pokeyellow-jp.gb
28e4b8531ea4ea1de5a396fccb0cfba51b06b149 *pokeyellow11-jp.gb
91864ecdf26d1c593bde4d9ed615520eb57d5e41 *pokeyellow12-jp.gb
a40298a8123613ee60cd7aab204d788b8425976e *pokeyellow13-jp.gb
c5690201f538d1f1d8bd3cece26042f0eb7334d4 *pokeyellow-ch-pirate.gb
YELLMONS.GBC sha1: D44E96EDDFBDAD633CBE4E6E64915E9E198974B0
This has already been done for pokered (BLUEMONS.GB), pokegold, and pokecrystal.
In scripts\Route24.asm,
Route24TrainerHeader5:
trainer EVENT_BEAT_ROUTE_24_TRAINER_5, 1, Route24Youngster2BattleText, Route24Youngster2EndBattleText, Route24Youngster2AfterBattleText
db -1 ; end
In text\Route24.asm
_Route24Youngster2BattleText::
text "This is NUGGET"
line "BRIDGE! Beat us 5"
cont "trainers and win"
cont "a fabulous prize!"
para "Think you got"
line "what it takes?"
done
The issue is that the trainer is a bug catcher, not a youngster. The name Route24Youngster2BattleText is thus incorrect.
See https://youtu.be/4-X6EVPuYl4?t=1755 for game footage.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.