• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Red hack: Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)

thank you for the feedback
i can help you with some more information generaly the problem with glitched pokemon happens when i catch wild pokemon with rod
PS: in the beginning i did not have the corrupted name for the 3 pokemon but when i catched lapras with super rod in safari zone they become corrupted and i catched goldeen but i found it corrupted

Okay, that helps a lot! I think I found the cause. Pressing SELECT causes a memory leak each time it is pressed on the overworld. Eventually you will start overwriting into the box nicknames.

I'll work on fixing the memory leak over the next few days. Nope, I found where it's occurring and I'll fix it later tonight.

EDIT: Okay, I implemented some fixes and I'm testing out your save file. I'm fishing Lapras and Dratinis in the safari zone for an hour. The stack pointer is holding stable, not creeping upward, and going down to its nominal depth after captures are made. I think I nailed this one!

Thanks a ton for your bug report on this. This also fixes the issue I had earlier with the exp bar acting strange, and that one had me tearing my hair out.
 
Last edited:
The V1.13 beta has been re-uploaded. It fixes the memory leak in v1.11 and v1.12. It also tries to stabilize glitched names and fixes not being able to enter the game corner. Please apply the patch to a fresh rom if you are on v1.11 or v1.12. You may need to use the softlock teleport when you first load your save file.
 
A few minor bugs have been discovered.

1 - The coin guy in the celadon hotel does not give the correct amount of coins due to hex numbers not being converted into BCD format. This affects the master branch.

2 - Pay Day coin amount will overflow at higher levels. This affects the master branch.

These bugs will be fixed when v1.13 goes to release.
 
Last edited:
Yeah!! i discovered how to compile. awesome..
____
i Will need some help. Sorry for nrwbies question.. Keep in mind i Will use The lite one. And make my custom pteferences.

I have doubts about.. Can i use ex: charizard front from Red. And beta sprite back, but in gastly i prefer original ones back and front.. (mixed sprites)
edit: DONE.. AWESOME

>>> I want add The girl trainer feature to lite one.. How?

I want 150 mons in lite.. Just replace The shin "complete" wild mons file to lite? Easy?
edit: DONE AWESOME

>>> How to add infinite tms? I prefer it than have tms in mart. I want The emotion to take The tms first and not going to mart buy..

>>> How to add exp bar in lite version???

>>> Last one. Move relearner and deleter. How to add in lite?

This would be my perfect pokemon ever version (vanilla + enchantments + 150)

Sorry If its too many question or if could help. I Will understand. Thanks!!
 
Last edited:
>>> I want add The girl trainer feature to lite one.. How?

>>> How to add exp bar in lite version???

>>> Last one. Move relearner and deleter. How to add in lite?

The simple answer is to copy/paste the relevant code and assets into your lite branch. Easier said than done. What you need to do is download the master branch and start searching for every single line where the relevant code and assets are referenced. Then branch out your search until you have compiled a full reference of everything that needs to change. Going through the commit history on github should help you narrow things down. For example, the girl trainer was added in the commit titled "v1.08 upload"

>>> How to add infinite tms? I prefer it than have tms in mart. I want The emotion to take The tms first and not going to mart buy..

The reason I did it this was is because Gen 1 has more items than you have space in your bag or box. Infinite TMs requires expanding the box and bag slots, and this means altering the SAV file structure. Something I did not want to do as it breaks compatibility with Pokemon Stadium. If you really want Infinite TMs like in more recent gens, you could set them as Key Items. But I never really dove into how to do that.
 
Obs; I Implemented Move Relearner, how do i know its working? its in saffron.. i want to test, i tried to use a normal red version sav, teleported to saffron, some pokemons worked, but some failed, now i dont know if its working or its because i used a ''original red sav''

Yes im going to search every script and file and try to put in lite.

Gonna try The girl one and move relearner.

Then i Will have The perfect version. Thanks a lot for The informations.

Im every update that u launch. I have The proceed everything again? To compile my own?
 
Last edited:
You are on the lite branch which I'm not really updating anymore. If I do an update to it, the line-by-line changes will be listed in the relevant commit.

The move relearner does not rely on a save file. It's scripts are independent. If something isn't working then you missed something somewhere.
 
You are on the lite branch which I'm not really updating anymore. If I do an update to it, the line-by-line changes will be listed in the relevant commit.

The move relearner does not rely on a save file. It's scripts are independent. If something isn't working then you missed something somewhere.

i think i found something, i can use mixed sprites front (original and beta), but when i tried to use mixed sprites ''back'' the original sprites bugged, but the beta no.. can u help me with that? or this is a rule, i need choose original or beta..

__

>> can u check move relearner? i copied everything the same, 99% moves work, but when i try to remember wing attack from pidgeot, the game freeze... why? what im doing wrong?

Sorry too many questions
 
Last edited:
i think i found something, i can use mixed sprites front (original and beta), but when i tried to use mixed sprites ''back'' the original sprites bugged, but the beta no.. can u help me with that? or this is a rule, i need choose original or beta..

__

>> can u check move relearner? i copied everything the same, 99% moves work, but when i try to remember wing attack from pidgeot, the game freeze... why? what im doing wrong?

Sorry too many questions

Unfortunately the back sprites cannot be mixed by default. The originals and betas use a different image size and resolution. Check out the beta back png files compared to the originals.

To mix them, use an image editor to scale up the old back sprites to the beta sizes and delete their .2bpp and .pic files.
 
Sorry for many questions.

I tried to make it. Scaled back to 48x48 in paint but when i try to compile.. A error msg appear saiying too many bits. Something like that. Maximum 4.. How to proceed?

Anyway. Help me with move relearner. Wing attack in pidgeot.. And other moves freeze The game when i select then. Other are ok.. I really dont know what to do. Copied every script from Master. Searched in notepad++ for move relearner and move deleter. And Copied.

This is my Last attempt. XD
 
Hello any news about the new update Please

Work is hectic at the moment due to wuhan coronavirus. I've had no time to sit down and very the last couple things for v1.13 release.

Sorry for many questions.

I tried to make it. Scaled back to 48x48 in paint but when i try to compile.. A error msg appear saiying too many bits. Something like that. Maximum 4.. How to proceed?

Anyway. Help me with move relearner. Wing attack in pidgeot.. And other moves freeze The game when i select then. Other are ok.. I really dont know what to do. Copied every script from Master. Searched in notepad++ for move relearner and move deleter. And Copied.

This is my Last attempt. XD

The png files can only be 4 specific colors. Gameboy only supported black, dark gray, light gray, and white/clear. I use Irfanview to edit them since it gives more flexibility and information.

Make sure you hit all the notes on this checklist:
Copy over the move_relearner.asm that's in the text folder
In text.asm, put in under SECTION "Text 3"
INCLUDE "text/move_relearner.asm"

Copy over the move_relearner.asm that's in the scripts folder
In main.asm under SECTION "bank7" add the following
INCLUDE "scripts/move_relearner.asm"

In home.asm modify a part of the DisplayListMenuIDLoop:: function
.skipMultiplying
ld a, [wListPointer]
ld l, a
ld a, [wListPointer + 1]
ld h, a
inc hl ; hl = beginning of list entries
ld b, 0
add hl, bc
ld a, [hl]
ld [wcf91], a
ld a, [wListMenuID]
and a ; is it a PC pokemon list?
jr z, .pokemonList
push hl
call GetItemPrice
pop hl
ld a,[wListMenuID]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;needed to make Mateo's move deleter/relearner work
cp a, MOVESLISTMENU
jr z, .skipStoringItemName
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cp ITEMLISTMENU
jr nz, .skipGettingQuantity
; if it's an item menu
inc hl
ld a, [hl] ; a = item quantity
ld [wMaxItemQuantity], a
.skipGettingQuantity
ld a, [wcf91]
ld [wd0b5], a
ld a, BANK(ItemNames)
ld [wPredefBank], a
call GetName
jr .storeChosenEntry
.pokemonList
ld hl, wPartyCount
ld a, [wListPointer]
cp l ; is it a list of party pokemon or box pokemon?
ld hl, wPartyMonNicks
jr z, .getPokemonName
ld hl, wBoxMonNicks ; box pokemon names
.getPokemonName
ld a, [wWhichPokemon]
call GetPartyMonName
.storeChosenEntry ; store the menu entry that the player chose and return
ld de, wcd6d
call CopyStringToCF4B ; copy name to wcf4b
.skipStoringItemName ;skip here if skipping storing item name
ld a, CHOSE_MENU_ITEM
ld [wMenuExitMethod], a
ld a, [wCurrentMenuItem]
ld [wChosenMenuItem], a
xor a
ld [hJoy7], a ; joypad state update flag
ld hl, wd730
res 6, [hl] ; turn on letter printing delay
jp BankswitchBack
.checkOtherKeys ; check B, SELECT, Up, and Down keys

In the engine/evos_moves.asm file, you need to copy over the function PrepareRelearnableMoveList:

Make sure your text scripts and object definitions line up in both saffronhouse1.asm files
 
Last edited:
omg dude you'are a god!!! solved the wing attack problem... in check, i missed home.asm part.. now its working!!!

the last one is scale in irfanview the sprites.. thanks for now!! really thanks!

Where did u found those scripts? Im New im hack Roms. Im learnjng by Myself. Im really enjoying and thanks for your help.
 
Last edited:
Great. Gonna try it in home. Where did u found those scripts? Im New im hack Roms. Im learnjng by Myself. Im really enjoying and thanks for your help.

I've adapted them from Mateo's Red++ hack and made a few tweaks to them. He posts around these parts.

The thing behind the home.asm modification is that the constant Movelistmenu normally goes unused, but the move relearner and deleter put it back into use for storing lists of moves. The function by default does not check to see if you are using the move list, so it ends up accidentally treating it as a list of items. This change is a simple check to keep that from happening.
 
omg dude you'are a god!!! solved the wing attack problem... in check, i missed home.asm part.. now its working!!!

the last one is scale in irfanview the sprites.. thanks for now!! really thanks!

Where did u found those scripts? Im New im hack Roms. Im learnjng by Myself. Im really enjoying and thanks for your help.

Go to Image-->Information in order to get a lot of good info about the sprite. In particular, it gives you the size and the number of unique colors. Make sure there are only 4 colors. Go to Image-->Palette-->Edit Palette to see the color palette. The four RGB colors supported by the gameboy are (0.0.0), (85.85.85), (170.170.170), and (255.255.255). That's your black, dark gray, light gray, and white/clear.

Open up one of the back png files in Irfanview. Go to Image-->Resize/Resample. Tick the Set New Size option and do 48x48 pixels. Under Size Method tick Resize. Now do File-->Save As... and save the image as a PNG with binary encoding and 0 compression.

See if that back sprite will compile now. To be honest, I haven't tried mixing the back sprites before. I'm curious to see if it will look any good in-game.

EDIT: Also, I'm most certainly not anything special. I've only been doing this about a year as an exercise to brush up on assembly coding. Most of my knowledge comes from my career.
 
Last edited:
Gotcha, got the female code working.. my perfect rom is complete...

I found perfect backsprites too..

https://imgur.com/a/jK6XRrN

https://imgur.com/a/FFqwblJ

just more few tweaks like this one VVV

i was thinkin about put mew in the truck near SS anne, when player complete the E4 or 150 pokemons, ss anne will return (player can enter into the room before the ship) like, if player click in the truck, mew appears, then if i capture him, he wont respawn again, like mewtwo fixed NPC.. do u think its hard?

EDIT> i found a mew script, in master, how it works? when player have 150 mons and diploma, mew will appear in wild in unknowndungeon b1?
If i want this, just copy custom_functions\func_enc_gen.asm just the mew part and in main too right?
 
Last edited:
In Red lite. If i choose battle style set. Trainers wills be more harder or it Just apply for Master? (shift option is vanilla?)
 
In Red lite. If i choose battle style set. Trainers wills be more harder or it Just apply for Master? (shift option is vanilla?)

The Lite branch is just like the retail games. The battle style has no effect on difficulty. All enemy trainer pokemon will have zero stat exp and fixed DVs of 9,8,8,8. You can see where I've commented out code when I made the lite branch. Look at functions LoadEnemyMonData: and CalcEnemyStatEXP: in the file engine/battle/core.asm. Badge boosts are always applied.

The Master branch, when in SET style only, gives enemy trainer pokemon DVs of 9,8,8,8 at minimum as well as 648 stat exp per level while disabling badge boosts.

Improved AI routines are active in both Master and Lite and are not affected by battle style.
 
Last edited:
V1.13 release patches have been uploaded. The notable changes from the beta are as follows:

--The celadon hotel coin guy now pays out more due to correct numerical conversions.
--Pay Day pays out 5x your level and pays correctly at higher levels.
--Post-game, the game corner chief will offer to buy pokemon from you (though in true rocket fashion he offers a ripoff price for good high-level stuff).
--The SS Anne kitchen now has a PC cobbled together using the ship tileset. It replaces the bookcase tile. Added it to lessen frustration for the post-game tournament.
--Trainers in the SS Anne tournament will never have Mew or Mewtwo.
 
Back
Top