The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Sideshow Showcase (https://www.pokecommunity.com/forumdisplay.php?f=204)
-   -   Red Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch) (https://www.pokecommunity.com/showthread.php?t=427398)

jojobear13 May 27th, 2020 11:06 AM

Quote:

Originally Posted by JOBO (Post 10162985)
You're right, it didn't upload properly.

I'm still not seeing any issue with depositing or withdrawing the coin case. I'm walking into the vermilion pokemon center and everything is behaving fine. This is using a freshly dumped red rom with the patch applied.

jojobear13 May 28th, 2020 1:50 PM

Just making a quick post about some updates I’m working on over the next month.

—The amazing man glitch is fixed. I need to port the changes to the lite branch.

—Red/Green/Blue versions were originally supposed to have an quick intermediate frame when turning 180 degrees from a standstill. The code is there but doesn’t display anything, and it was cut from from all future games. This is getting fixed and activated for the master and lite branch.

—The AI for switching is admittedly not super robust. It switches defensively to the next mon in the roster and is blind to the mon it switches to. I’m going to revisit the switching AI and, at the very least, try to prevent it from doing blatantly stupid switch-ins. The master and lite branches will get this one.

—SGB colors on the GBC. This one is being a pain in my rear. Lots of studying going into this one, so I’ve split it into its own branch for experimentation. This is a long-term feature that may or may not go anywhere. If I ever get it to work I’ll document the code changes and write up a guide for implementation.

JOBO June 3rd, 2020 10:35 AM

Quote:

Originally Posted by jojobear13 (Post 10163135)
I'm still not seeing any issue with depositing or withdrawing the coin case. I'm walking into the vermilion pokemon center and everything is behaving fine. This is using a freshly dumped red rom with the patch applied.

I realize now that it's only happening on the emulator I'm using. Masterboy on Psp, which has never given me problems with this hack before now. Not a huge deal. Thanks for checking it out! I'm excited for the future releases :)

jojobear13 June 3rd, 2020 10:19 PM

Quote:

Originally Posted by JOBO (Post 10166099)
I realize now that it's only happening on the emulator I'm using. Masterboy on Psp, which has never given me problems with this hack before now. Not a huge deal. Thanks for checking it out! I'm excited for the future releases :)

Ah, okay. Yeah, not all emulators are created equal. I use BGB on my laptop since its closest to the real hardware and gives nice debug tools. Then I do playtesting on my old Super Gameboy and sometimes my Gameboy Pocket.

zycain June 4th, 2020 2:18 AM

Hey Jojo, I have found a bug which doesn't seem to be game-breaking linked with depositing items in the PC on some real hardware. If I deposit the item on the first or last line of the selection box everything is a-ok but if I scroll down and deposit any item on the middle two lines I get a different items name as having been deposited (seems totally random and names items I'm not even carrying/even own or badges or doesn't happen at all) but does actually deposit the correct item when checked inside the computer afterwards. I think I've done this in about every pokemart with the same glitch. I'm playing a fresh red rom with the latest patch on a ez-flash jr card on a Game Boy DMG-01. I could not replicate this bug on BGB or VisualBoyAdvance, a Game Boy Color or a Game Boy Advance AGB-001 (that's all the hardware I have to test with)

I have a photo of the screen showing the glitch and can upload the save file if needed but I don't seem to have permission to post attachments...?

zycain June 4th, 2020 2:31 AM

given it seems somewhat intermittent and I only extensively play on the DMG-01 normally its entirely possible the other things I tried could produce the bug just I didn't try for long enough? I don't want to inadvertently lead you down a dead end of just looking at one circumstance I just wanted it to be known my testing so far on other hardware/emulators is brief at best

jojobear13 June 4th, 2020 3:51 PM

Quote:

Originally Posted by zycain (Post 10166323)
given it seems somewhat intermittent and I only extensively play on the DMG-01 normally its entirely possible the other things I tried could produce the bug just I didn't try for long enough? I don't want to inadvertently lead you down a dead end of just looking at one circumstance I just wanted it to be known my testing so far on other hardware/emulators is brief at best

I’ve seen this. It has to do with how TM names are now more descriptive. Under the hood, TM names are handled by a list whereas before they were just generated on the fly by a function.

I’m pretty sure it’s just a matter of your save file working through data cleanup. My expectation is it will work itself out as items get deposited and taken out.

You can always attach your save file or post a download link at the GitHub page. Just open up a new issue and I can queue it up for investigation.

jojobear13 June 7th, 2020 9:17 PM

Quote:

Originally Posted by zycain (Post 10166320)
Hey Jojo, I have found a bug which doesn't seem to be game-breaking linked with depositing items in the PC on some real hardware. If I deposit the item on the first or last line of the selection box everything is a-ok but if I scroll down and deposit any item on the middle two lines I get a different items name as having been deposited (seems totally random and names items I'm not even carrying/even own or badges or doesn't happen at all) but does actually deposit the correct item when checked inside the computer afterwards. I think I've done this in about every pokemart with the same glitch. I'm playing a fresh red rom with the latest patch on a ez-flash jr card on a Game Boy DMG-01. I could not replicate this bug on BGB or VisualBoyAdvance, a Game Boy Color or a Game Boy Advance AGB-001 (that's all the hardware I have to test with)

I have a photo of the screen showing the glitch and can upload the save file if needed but I don't seem to have permission to post attachments...?

Quote:

Originally Posted by JOBO (Post 10160601)
Hey Jojobear13! I'm loving shin Pokemon red and have been playing it for quite some time. I booted it up today and experienced a strange bug. I went to my personal pc to deposit some items, when I tried to deposit the coin case the game crashed. I rebooted, went to the PC again and it crashed a second time. I'm playing on "shin_pokemon_red_v113_hotfix3.ips". If you need any more info or a save file then let me know. Cheers :)

I believe I have found a common root cause for these issues and have fixed it. Machines, in order to give them unique list-based names, were given their own list-type constant (the unused value of 3). All other items use list-type 4. This can cause problems when a mix of machines and other items are displayed in the same menu. If a machine is the bottom-most item displayed, then the value in wNameListType gets changed to 3. If it's a regular item, then gets changed to 4. Normally this would always be 4 in an item menu, so Gamefreak devs made it so wNameListType only gets updated when the menu gets redrawn by scrolling up or down.

The problem is that you can select the top three displayed items without scrolling the menu and getting it to redraw. wNameListType doesn't get updated. Selecting a regular item when a machine is at the bottom, or selecting a machine while a regular item is at the bottom, will load the wrong list constant for the item and cause the game to load name data from the wrong location. This can result in loading a name from a different item or (assuming you don't load a value of $50 within 10 loops) loading a huge string of garbage data that crashes the game.

I have pushed a commit to v1.14b to correct this.

zycain June 16th, 2020 5:25 PM

Hey Jojo, I had spotted JOBO's post and did wonder if we came across the same issue glad you pinned it down sounds like it can only help with the overall stability.

I've found a bug (that could be related?) it's a different use case as I just got an EZ Flash Omega for DS Lite gaming so it could be that flash hardware or Goomba (shudders) but if I go to the Mart on Cinnabar and try to buy a Max Elixer 9 times out of 10 I get a corruption and the game freezes, when the selection loads instead of saying "x01 $5500" it just displays "x01" then crashes/sometimes lets me back out but mostly crashes.

I also noticed an oddity when grinding Blaine when his battle completes instead of the celebratory jingle on receiving the badge again, a wrong sound is played, it sounds like menu closing. the main music continues to play as normal, its barely noticeable on a single pass likely wouldn't even realise but repeatedly its jarring enough to stick out thought I'd mention it

I'm now past the E4 and in to the post-game material you have added in, your rom is wonderfully fun to play and you deserve an amazing amount of credit for your insanely hard work getting all of these amazing features added in to the game they add a wonderful level of depth, I look forward to hopefully many more hours of grinding to get a full Pokedex, exploring all the little extras you have added in and also to see the ongoing development of this rom :D might even get brave enough to try out hard mode again one day! good job making something that was already re-playable even more so!

Thanks for the credit, not necessary but I'm very grateful none-the-less :D

Zycain

jojobear13 June 17th, 2020 12:38 PM

Quote:

Originally Posted by zycain (Post 10171463)
I've found a bug (that could be related?) it's a different use case as I just got an EZ Flash Omega for DS Lite gaming so it could be that flash hardware or Goomba (shudders) but if I go to the Mart on Cinnabar and try to buy a Max Elixer 9 times out of 10 I get a corruption and the game freezes, when the selection loads instead of saying "x01 $5500" it just displays "x01" then crashes/sometimes lets me back out but mostly crashes.

Right, it is the same as I mentioned before. TM03 is right below the max elixir, so scrolling down to select the max elixir makes TM03 the bottom item and triggers the glitch. I've since fixed the problem.

Quote:

I also noticed an oddity when grinding Blaine when his battle completes instead of the celebratory jingle on receiving the badge again, a wrong sound is played
This is a bug in the original games. You can also hear it with a few other gym leaders (Misty I think). Still looking into it.

jojobear13 June 17th, 2020 11:20 PM

I've put out new patches for both the lite and master branches that are consistent with the current 1.14 beta changelog. There's a lot of stuff in there. Now onto making the switching AI a little smarter.

zycain June 20th, 2020 7:27 AM

Hey found another little bug upon battling the Silph Co chief post E4 the dialog text upon talking to him reads "Do you challenge him to to a pokemon battle?" this is using the current 114b1 :)

jojobear13 June 20th, 2020 1:51 PM

Quote:

Originally Posted by zycain (Post 10172867)
Hey found another little bug upon battling the Silph Co chief post E4 the dialog text upon talking to him reads "Do you challenge him to to a pokemon battle?" this is using the current 114b1 :)

Yes, that is intentional. The post-e4 special trainers have an intended order as hinted by dialogue, but I do not force that order on the player. I did this because I miss the days when games had secrets that, while hinted at, could be discovered by sheer accident.

zycain June 20th, 2020 5:13 PM

sorry I meant the word "to" is repeated

jojobear13 June 20th, 2020 7:15 PM

Quote:

Originally Posted by zycain (Post 10173066)
sorry I meant the word "to" is repeated

Good grief. Guess I need to get my eyes checked.

jojobear13 June 22nd, 2020 7:52 PM

An expansion to the switching AI has been committed to both the lite and master branches. Will consolidate it into IPS patches after a period of playtesting.

Octorox June 26th, 2020 12:07 PM

This is a pretty great hack and exactly the kind of thing I was looking for in a Gen 1 QOL hack. A few nitpicks though:

Quote:

Originally Posted by jojobear13 (Post 10095577)
Press SELECT to use HMs based on proper context (must have the right badge and the move on one of your pkmn)

Out of curiosity, why Select? Why not the A button like in every other Pokemon game? Certainly not a dealbreaker but I find this a bit unintuitive.

Quote:

Originally Posted by jojobear13 (Post 10095577)
TrainerAI, Shiny SGB palette, & Exp Bar

I think the EXP bar looks a little "off" with the Gen 1 style battle interface. However, I think if you moved the bar itself up by one pixel so the bottom is flush with the arrow graphic it would look a lot better.

Does this hack also have the Pokeball "caught" tile? I find that to be a useful piece of information when facing off with wild Pokemon. I wouldn't mind seeing gender either, since it's relevant when trading with Gen 2 or importing into Pokemon Bank and afaik is just determined by DVs in Gen 2.

jojobear13 June 26th, 2020 2:39 PM

Quote:

Originally Posted by Octorox (Post 10175304)
Out of curiosity, why Select? Why not the A button like in every other Pokemon game? Certainly not a dealbreaker but I find this a bit unintuitive.

The reason is that it was easy to do in a weekend or two. The engine itself is surprisingly rigid. The A button is coded for confirmation and text in such a way that tile checking functions would need to be added to overworld.asm, but it's very difficult to free up the needed space in rom bank 0. Select is an unused button, so it's easy to check for it then jump to another rom bank to do all the custom functions.

Quote:

I think the EXP bar looks a little "off" with the Gen 1 style battle interface. However, I think if you moved the bar itself up by one pixel so the bottom is flush with the arrow graphic it would look a lot better.
There's only two pixels of height to work with on the exp bar. The black line was originally flush but the exp bar was too tiny. I'll play around and see what I can do

Quote:

Does this hack also have the Pokeball "caught" tile? I find that to be a useful piece of information when facing off with wild Pokemon. I wouldn't mind seeing gender either, since it's relevant when trading with Gen 2 or importing into Pokemon Bank and afaik is just determined by DVs in Gen 2.
Hitting select in battle will play the opposing mon's cry if you've caught it. I've not done the pokeball marker or even thought about adding gender as I'm not too familiar with adjusting how tiles are rendered.

Octorox June 26th, 2020 3:19 PM

Thanks for the response. I'm sorry if I came across as overly critical. To tell you the truth I have next to no knowledge when it comes to asm hacking so what you've done is far more than I could ever do.

The only reason I asked about the A-button HM use is because it's already been implemented into other hacks. Specifically Rangi's Space World Edition, as have genders and shinies in a pretty elegant and unobtrusive way. I know it's not a simple as "plugging it in" to your hack though.

jojobear13 June 26th, 2020 4:50 PM

Quote:

Originally Posted by Octorox (Post 10175369)
Thanks for the response. I'm sorry if I came across as overly critical. To tell you the truth I have next to no knowledge when it comes to asm hacking so what you've done is far more than I could ever do.

You didn't. I have thick skin anyway.

Quote:

The only reason I asked about the A-button HM use is because it's already been implemented into other hacks. Specifically Rangi's Space World Edition, as have genders and shinies in a pretty elegant and unobtrusive way. I know it's not a simple as "plugging it in" to your hack though.
Rangi has been doing this a lot longer than I have. Those projects all have years worth of features built upon features. Backs of giants and all. Anyway, folks like rangi and mateo and Danny-E are at the point where big chunks of the engine have been re-written. Meanwhile I'm still struggling to get palettes working on the gameboy color.

But hey, this is just something I picked up as a learning exercise.

jojobear13 July 1st, 2020 11:07 PM

There was a crash happening upon choosing the starter pokemon. It's caused by the key item sfx playing in a text box in the overworld (specifically an improper stack push/pull).

In light of this, I have put out v1.14 beta-2 patches for both the lite and master branches to fix this problem. The beta-2 patches also contain the most recent draft of the switching AI.

The master branch beta-2 patch has the following additions but they are totally untested:
- Slightly adjusted the style of the exp bar for flush lines and better visibility in grayscale
- The mind battle with trainer RED can only be initiated after beating Oak, Fuji, Silph Chief, and Green
- Beating the RED mind battle will respawn mewtwo and the legendary birds
- You must re-beat the four special trainers to challenge the RED mind battle again after each win
- Mewtwo and legendary birds removed from cerulean cave wild battle tables
- Static mewtwo encounter set back to level 70

EDIT: Beta 3 uploaded. I am testing the previously mentioned master features, and beating Green wasn't setting a flag.

jojobear13 July 3rd, 2020 3:03 PM

Quote:

Originally Posted by Octorox (Post 10175304)
Does this hack also have the Pokeball "caught" tile? I find that to be a useful piece of information when facing off with wild Pokemon. I wouldn't mind seeing gender either, since it's relevant when trading with Gen 2 or importing into Pokemon Bank and afaik is just determined by DVs in Gen 2.

So in the process of fixing the flag check for pokemon owned, I've been poking around with how the battle HUD get's loaded. I think this is really easy to do. A lot of handy tiles are already loaded into VRAM so I can just directly point to them and assign a coordinate. Initial experiments are promising. I just need to piece together some tiles that look halfway decent. For the pokeball indicator I'll probably just use one of the four textbox corners.

The male/female symbols are just text tiles (thankfully), but there's some extra planning in where and when they are displayed. Since gender has no mechanical or graphical meaning in gen 1, I'll probably limit its display to enemy wild pokemon and the individual 'mon status screens.

darthbr July 7th, 2020 7:52 AM

Hello Jojo, long time hum? xD

I want to update the AI switching in my custom game, how to proceed? i added the custom ai function (in home as well), updated the stats function (in battle engines), but im having a error when trying to compile, i mean, how to update it without errors, i just want update this feature.

jojobear13 July 7th, 2020 1:26 PM

Quote:

Originally Posted by darthbr (Post 10179316)
Hello Jojo, long time hum? xD

I want to update the AI switching in my custom game, how to proceed? i added the custom ai function (in home as well), updated the stats function (in battle engines), but im having a error when trying to compile, i mean, how to update it without errors, i just want update this feature.

You need to research rebasing with git. Basically automatically refreshes your main branch from one of my branches and then automatically overlays your changes on top of that. You will likely have conflicts that will be pointed out by git, so you'll have to learn how to fix those and continue the rebase.

What may be simpler but more tedious is cherry-picking. You download one of my branches as a local branch in your directory. Then you start cherry-picking specific commit hashes from it that you want to apply.

jojobear13 July 15th, 2020 11:12 PM

2 Attachment(s)
A small teaser for something I've been working on. Super Gameboy palette conversion for the Gameboy Color, like how it is done in Pokemon Yellow, has been coming along in great strides. Here's the progress thus far:
  • The background palettes are displaying well. This is the source of 90% of the game's color.
  • Title screen BGmaps and attributes modified to get the proper appearance.
  • Overworld sprite tile attributes are linking to the correct object palette.
  • Palettes displayed on the GBC are derived from Pokemon Yellow and tweaked where appropriate. This is because the default SGB pals were designed to look good on a 90's CRT monitor. A real GBC screen, combined with the GBC's color mixing, makes them look very washed out.

I still need to do a few more things. The title screen has the wrong object palette for Trainer Red. There's also a brief graphical glitch affecting a few tiles of Red's hat at the start of battle. I also haven't tested out the slot machines that much.

jojobear13 July 16th, 2020 12:33 PM

Real quick. I uploaded the patch files for v1.14 final. This fixes a few more bugs, and it also adds pokeball-caught and gender symbols. They can be activated by talking to the bottom-left Oak aide after getting the pokedex.

V1.15 is next and will focus on backporting GBC functionality from pokemon yellow.

jojobear13 July 17th, 2020 9:47 PM

Pokeyellow GBC functionality has been backported and is now being playtested. The current code can be compiled from the "master_dev" or "lite_dev" branches.

jastolze007 July 19th, 2020 6:25 AM

Love this. I've been playing it off and on. I picked it up again and noticed you now give an option whether opponents use more competitive stats via the Set option.

It was originally very difficult. I would often have a Bellsprout a couple levels lower out speed my Nidoking lol.

Anyway, maybe next you could fix the Critical hit ignoring user Atk/Sp. Atk boosts? (Swords dance, Growth, Amesia, etc.)

I play this hack mainly for the rematch feature and replayability. I'm curious about one of the features you had. The randomized 6 PKMN roster post game. Is there a list of the possible PKMN they use and moves? Also are they EV trained?

I'm currently playing this on my 3DS VC and really hope you continue working on it. Good job man!

jojobear13 July 19th, 2020 1:13 PM

Quote:

Originally Posted by jastolze007 (Post 10183174)
Love this. I've been playing it off and on. I picked it up again and noticed you now give an option whether opponents use more competitive stats via the Set option.

It was originally very difficult. I would often have a Bellsprout a couple levels lower out speed my Nidoking lol.

Yeah, under SET the trainers will have stat exp. It can add up.

Quote:

Anyway, maybe next you could fix the Critical hit ignoring user Atk/Sp. Atk boosts? (Swords dance, Growth, Amesia, etc.)
Delving into this, and after some in-depth discussions, I don't believe this to be a bug or an oversight. Critical hit rate is based on speed in gen 1. This means you can have stuff like Jolteon auto-critting after using Focus Energy. Or Scyther with Slash eating through defensive buffs. The fact you don't get other modifiers with crits is likely an intentional trade-off. This was even carried over into pokemon stadium. I did do some playtesting that applied stat changes to crits, but I ditched it in frustration when Hikers and their Machops kept doing Leer-->Karate Chop.

Quote:

I play this hack mainly for the rematch feature and replayability. I'm curious about one of the features you had. The randomized 6 PKMN roster post game. Is there a list of the possible PKMN they use and moves? Also are they EV trained?
Yes, but also no. EVs did not exist until Gen 3. Stat exp is used in gen 1 and 2, and it is the precursor to EVs. You could have up to 65,535 stat exp per stat in every stat. SET battle assigns trainer mons stat exp while shift battle defaults it to zero like in the retail games (which is why you always seemed to out-speed opponents). The stat point increase = SQRT(stat exp) * level / 400. Trainers are given 640 stat exp per level. So this works out to the following:
  • level 5 mons get 0 bonus points to all stats
  • level 30 mons get 10 bonus points to all stats
  • level 50 mons get 22 bonus points to all stats
  • level 100 mons get 63 bonus points to all stats

The random trainer guy in the underground path can generate any of the 151 pokemon, but Mew is only possible if the diploma has been gained. The tournament on the SS ANNE generates any pokemon except Mew and Mewtwo. Moves for randomly generated teams are assigned based on the order learned in the level-up list.

jastolze007 July 20th, 2020 8:38 AM

Regarding the randomized trainers, does he give EXP (not stat EXP) upon defeating his PKMN? What about the tournament? Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along. If I decide to activate the level scaling post Level 100, would it affect anything in a negative way?

Also, I didn't see how to obtain Mew. Is there a particular way?

jojobear13 July 20th, 2020 11:55 AM

Quote:

Originally Posted by jastolze007 (Post 10183629)
Regarding the randomized trainers, does he give EXP (not stat EXP) upon defeating his PKMN? What about the tournament?

Yes and yes. I never liked how Gamefreak made postgame single-player battle areas not give exp or restrict legendaries.

Quote:

Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along. If I decide to activate the level scaling post Level 100, would it affect anything in a negative way?
Umm...maybe. Trainer scaling keeps enemies at or slightly above your level, and a little more for boss battles (indicated by the gym leader or champion battle themes playing). At levels that high, the trainer scaling might loop around to level 0 and then weird stuff starts happening. Capping at 240 should be okay. I'll make a note to account for this in the next master_dev commit.

Also, trainer money maxes out at about level 100. After that, most trainers will just give you $9999 every battle.

Quote:

Also, I didn't see how to obtain Mew. Is there a particular way?
Way down at the very bottom of the readme. You must complete your dex and view the diploma. This will set an event flag. Mew then becomes a wild encounter in the basement floor of cerulean cave. It uses the rarest encounter rate slot (3 in 256 or about 1%).

jojobear13 July 20th, 2020 1:31 PM

Quote:

Originally Posted by jastolze007 (Post 10183629)
Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along.

I also forgot to mention this. While there aren't big issues with what I've added and changed from retail, you will definitely run into issues related to the vanilla game engine itself.

For just one example, the experience value is coded everywhere with the assumption that it is 3 bytes. That means the max exp you can have is 16,777,215. Going to 255 makes it possible to exceed this value so you end up overflowing into level 0. The highest max level on the slowest-growth pokemon would be 237 under this condition (requiring 16,640,066 exp).

jastolze007 July 20th, 2020 5:26 PM

Quote:

Originally Posted by jojobear13 (Post 10183721)
I also forgot to mention this. While there aren't big issues with what I've added and changed from retail, you will definitely run into issues related to the vanilla game engine itself.

For just one example, the experience value is coded everywhere with the assumption that it is 3 bytes. That means the max exp you can have is 16,777,215. Going to 255 makes it possible to exceed this value so you end up overflowing into level 0. The highest max level on the slowest-growth pokemon would be 237 under this condition (requiring 16,640,066 exp).

Thanks. I had heard about the exp underflow error on gen 1/2 games. Luckily none of my team uses the slow growth formula. I've never finished a game past 120 anyway so it probably will never be an issue for me personally.

Also, have you considered adding other features? Like the B/W EXP for instance? Maybe also changing Bug type being super effective against itself and Poison? With the original 151 mons, I counted 49 that were weak against Bug. Maybe change it to Gen 2+ standard? (I personally love it, as I use a Parasect on my team, but it's definitely overpowered despite their not being many Bug type attacks)

Also, how does the game handle 4 digit stats? I know the max is by default 999 but you can edit that in the newest version of Red's disassembly to something else. I was curious how it would display HP for instance.

jojobear13 July 21st, 2020 7:49 AM

Quote:

Originally Posted by jastolze007 (Post 10183773)
Thanks. I had heard about the exp underflow error on gen 1/2 games. Luckily none of my team uses the slow growth formula. I've never finished a game past 120 anyway so it probably will never be an issue for me personally.

Also, have you considered adding other features? Like the B/W EXP for instance? Maybe also changing Bug type being super effective against itself and Poison? With the original 151 mons, I counted 49 that were weak against Bug. Maybe change it to Gen 2+ standard? (I personally love it, as I use a Parasect on my team, but it's definitely overpowered despite their not being many Bug type attacks)

Also, how does the game handle 4 digit stats? I know the max is by default 999 but you can edit that in the newest version of Red's disassembly to something else. I was curious how it would display HP for instance.

Mechanics and system changes from later generations are out of scope for this project. In general, GF’s intentions for Red are followed wherever possible.

Each stat has 2 bytes, so it can theoretically go up to 65,536. I made the battle engine cap things at 999 to prevent stat boosts overflowing things to 0. The status screen is coded for 3 digits but can handle 4 digits just fine (use the cheat for displaying stat exp for an example). But it won’t matter. No Pokémon can get 1000 in a stat without in-battle stat boosts.

charphantom96 July 21st, 2020 9:05 AM

How do you raise the level cap to 250, is that standard

jojobear13 July 21st, 2020 11:49 PM

Quote:

Originally Posted by charphantom96 (Post 10183963)
How do you raise the level cap to 250, is that standard

misc_constants.asm, line 1, reads:
Code:

MAX_LEVEL EQU 100


So change 100 to 250 and compile. No this is not standard. As stated in my previous posts, it will cause certain things to break in the game. Officially (well...as official as a random rom hacker can be), Shin Pokemon supports a level cap of 100 and makes no claims to any game stability should this be modified.

LusoTrainer July 23rd, 2020 1:35 PM

I'm trying to build the rom but I get the following error:

Code:

error: macros/asm_macros.asm::callba(22) : Unknown symbol 'SoftlockTeleport'


Does anyone know what's causing this?

jojobear13 July 23rd, 2020 2:01 PM

Quote:

Originally Posted by LusoTrainer (Post 10184767)
I'm trying to build the rom but I get the following error:

Code:

error: macros/asm_macros.asm::callba(22) : Unknown symbol 'SoftlockTeleport'


Does anyone know what's causing this?

It means that the function 'SoftlockTeleport' is being called across rom banks, but the function definition itself cannot be found.

You didn't specify what branch you are trying to build, so I can only advise that you make sure your local working git branch is up to date with the remote branch you copied it from. The "pull" feature of git is probably what you want, as it will preserve your personal changes while updating any differences. You may have some conflicts you need to fix, but "git diff" and "git status" should help you narrow down affected files. I'm no expert with git so you will need to read some tutorials on your own.

LusoTrainer July 23rd, 2020 2:06 PM

I'm building from the lite branch. I've downloaded it and I'm making the changes (which are very minor) locally.

jojobear13 July 23rd, 2020 2:41 PM

Quote:

Originally Posted by LusoTrainer (Post 10184772)
I'm building from the lite branch. I've downloaded it and I'm making the changes (which are very minor) locally.

Wait, you're using the yellow front 'mon sprites aren't you? Are you using the replacement main.asm? That modified main.asm is actually out of date and doesn't INCLUDE certain files. You might want to consider going off the lite_dev branch instead.

While it is the development branch, it is fairly stable as of commit d2aaeda. I've updated lite_dev to make swapping sprites easier and adjusted the guide. The front and back sprites are standardized to 7 unique rom banks, so the only thing that needs to change are filepaths. Also you'll have color in GBC mode since that's the big feature update for the upcoming v1.15.

LusoTrainer July 23rd, 2020 2:46 PM

Quote:

Originally Posted by jojobear13 (Post 10184776)
Wait, you're using the yellow front 'mon sprites aren't you? Are you using the replacement main.asm? That modified main.asm is actually out of date and doesn't INCLUDE certain files. You might want to consider going off the lite_dev branch instead.

Ha! That's exactly what I ended up doing and everything went fine. The GBC colors look nice (it's the main reason why I'm back into this). However, as soon as I get to Oak's speech, it looks like this:

https://i.postimg.cc/Kzs1Wfw6/pokered-0.png

It looks this way all the way through until you get to the player's room.

EDIT:

In the other thread, I mentioned that some sprites had some corruption artifacts, and sadly the problem remains:

https://i.postimg.cc/c4THC0ss/pokeblue-0.png https://i.postimg.cc/BQJbJXfY/pokeblue-1.png

jojobear13 July 23rd, 2020 7:09 PM

1 Attachment(s)
Quote:

Originally Posted by LusoTrainer (Post 10184777)
In the other thread, I mentioned that some sprites had some corruption artifacts, and sadly the problem remains:

Delete your local branch and start over. I'm not sure what's causing your sprite corruption, but I cannot replicate it from my side.

EDIT: Just pushed a commit to the dev branches that fixes the red background for oak's speech. It was caused by a function clearing out most of the wram data when a new game is selected, and it zeroed-out the palette pointers along with it. While it might have made for a cool creepypasta, the default palette just needed to be reinitialized.

EDIT2: I created a branch called lite_dev_yel that uses the yellow front mon pics. You can see a comparison of what was changed. Some other unknown changes you have are causing the sprites to decompress wrong, so I suggest purging everything and starting fresh.

LusoTrainer July 23rd, 2020 11:22 PM

The only other change I made, aside of changing some move types like Gust and Sand Attack, was calling the Yellow trainer sprites for Red, Brock, Misty, Erika and the Rival.

But I'll give a try to that new branch and report back.

LusoTrainer July 24th, 2020 10:59 AM

First of all, thanks for the help so far.

Having tried the new branch, it now works with the Yellow sprites. However, the Nidorino in Oak's speech doesn't get its proper color:

https://i.postimg.cc/YjBHMQzS/pokeblue-0.png

Also, if you try to compile with the back sprites from 'swmonback', you get the following error:

Code:

ERROR: main.asm(769):
    Section 'Pics 4' is too big (max size = 0x4000 bytes, reached 0x4013).
make: *** [Makefile:42: main_red.o] Error 5



jojobear13 July 24th, 2020 5:07 PM

Quote:

Originally Posted by LusoTrainer (Post 10185163)
First of all, thanks for the help so far.

Having tried the new branch, it now works with the Yellow sprites. However, the Nidorino in Oak's speech doesn't get its proper color:

https://i.postimg.cc/YjBHMQzS/pokeblue-0.png

Also, if you try to compile with the back sprites from 'swmonback', you get the following error:

Code:

ERROR: main.asm(769):
    Section 'Pics 4' is too big (max size = 0x4000 bytes, reached 0x4013).
make: *** [Makefile:42: main_red.o] Error 5



That is it’s proper color. Check it out in super gameboy mode. Mon pics for the title screen and oak speech use the trainer pic palette. I’ve done the title mons as an added touch, but I haven’t gotten around to the oakspeech nidorino.

So there are 19 bytes that need to be cleared out of rom bank C. Where did that come from? I’ll look into it.

jojobear13 July 24th, 2020 6:16 PM

Quote:

Originally Posted by LusoTrainer (Post 10185163)
First of all, thanks for the help so far.
Also, if you try to compile with the back sprites from 'swmonback', you get the following error:

Okay, give this one a go. You can see how I changed main.asm and UncompressMonSprites to shift the mons across the 7 banks. It's just a matter of making room. You just have to keep the mons in their index order in main.asm (except for mew), and then adjust UncompressMonSprites for the shift.

EDIT: A new commit has been pushed that gets the oakspeech nidorino palette loading.

Also, do note that you have extra work to do to get spaceworld back sprites uncompressing properly. This is detailed in the "how to change pkmn sprites" guide.

jastolze007 July 26th, 2020 1:48 PM

Quote:

Originally Posted by charphantom96 (Post 10183963)
How do you raise the level cap to 250, is that standard

If you do end up changing the level cap, unfortunately the starter Pokemon isn't affected. It will still max out at 100 (Not sure if this problem was addressed, it was the case a year ago)

jojobear13 July 26th, 2020 7:48 PM

Quote:

Originally Posted by jastolze007 (Post 10186366)
If you do end up changing the level cap, unfortunately the starter Pokemon isn't affected. It will still max out at 100 (Not sure if this problem was addressed, it was the case a year ago)

Outdated info maybe? I compiled with max_level=101 and ran a test using pikasav. A level 100 charizard gains exp and shows it needs 33446 more exp to get to level 101. It will also level up to 101 when it reaches the next exp threshold.

sergiof1 August 12th, 2020 12:43 AM

Hi, nice rom. But, I turned on the trainer level march but, I have a lv 14 bulbasaur and when I face the rival, he have pidgey lv 16 and it's ok but, when I catch a lv 3 Pikachu and face it again, his pidgey is lv 8.
Would be possible to make trainer level match with your higest level pokemon instead of the average of all of them?

Thanks

jojobear13 August 12th, 2020 2:10 AM

Quote:

Originally Posted by sergiof1 (Post 10194369)
Hi, nice rom. But, I turned on the trainer level march but, I have a lv 14 bulbasaur and when I face the rival, he have pidgey lv 16 and it's ok but, when I catch a lv 3 Pikachu and face it again, his pidgey is lv 8.
Would be possible to make trainer level match with your higest level pokemon instead of the average of all of them?

Thanks

This was done back on Jun 14th, 2020. Please make sure you are using the latest patch. If the problem persists, then you have to post your .sav file so I can directly see what's going on in wram.

jojobear13 August 14th, 2020 11:37 PM

V1.15 is go for launch!

EDIT: Just realized this is post 151 of the thread. How appropriate.

Master branch patch notes:
#Hack-Induced Bugfixes & Adjustments since last version:
-----------
- Female trainer default name changed from YELLOW to VIOLET
- AI routine #3 favorability for 0 bp moves has been corrected.
- Fixed an issue where enabling gender symbols could cause a status screen crash
- More graphical fixes to the route 22 rival
- Female trainer has correct overworld sprite in intro


#New features & adjustments since last version:
-----------
- GBC color palettes have been back-ported from Yellow-version.
- Scrolling mons on the title screen have their own palettes loaded on the GBC.
- In the blue version intro, jigglypuff has it's own palette loaded on the GBC.
- Oak-speech nidorino has its color palette on the GBC.
- The formula functions for exp now have underflow protection.
- General RNG improved to the one used by Prism and Polished Crystal
- Female trainer now has her own fishing sprites


Lite branch patch notes:
#Latest Fixes (most recent ips patch):
---------------
- The Gameboy Color palette functionality from pokemon Yellow has been back-ported into the game
- Scrolling mons on the title screen have their own palettes loaded on the GBC.
- In the blue version intro, jigglypuff has it's own palette loaded on the GBC.
- Oak-speech nidorino has its color palette on the GBC.
- Ai routine #3 has a correction involving favoribility of 0 bp moves
- Minor graphical fixes to route 22 rival

darthbr August 29th, 2020 9:09 AM

Battle system is not good yet. I mean The AI. They switch when pokemon is on Red Life HP. then put another one. IF this one faint. They return The Red hp one again. Also pokemon use dumb moves constant. Like leer or tail whip. Even in e4. Im not complaining. Just saying The original vanila is stupid. So The AI can be better.

IF i have a raichu. And trainer have gyarados. He Will switch to a krabby. Doesnt make sense.

jojobear13 August 30th, 2020 8:25 AM

Quote:

Originally Posted by darthbr (Post 10201839)
They switch when pokemon is on Red Life HP. then put another one.

Yes, this is intended.

Quote:

IF this one faint. They return The Red hp one again.
This will happen if the other possible switch-ins are determined to not be good choices either. But I can adjust the AI scoring so that red health is penalized more heavily.

Quote:

Also pokemon use dumb moves constant. Like leer or tail whip. Even in e4
The battle engine chooses moves randomly even if AI is active. The difference is that it will randomly choose between the most-preferred moves. If multiple moves are in the most-preferred list, then each one has an equal chance of being chosen. Pokemon with mostly non-damage moves tend to skew this preferred list. There's not a lot I can do, but I'll see if I can tweak it some more by occasionally discouraging these moves.

Quote:

IF i have a raichu. And trainer have gyarados. He Will switch to a krabby. Doesnt make sense.
Yes it does. The krabby is scored higher than the gyarados because krabby has a 2x weakness to your raichu as opposed to the 4x weakness of gyarados. The other switch-in choices were scored either equal to or less than the krabby. However, I can look at giving a harsher penalty for type weaknesses.

Illusioned September 2nd, 2020 7:52 PM

Really good stuff. I'm just wondering if it is possible to implement custom movesets for Gym Leaders and Elite four similar to how that is handled in gen 2? The AI could really shine with beefed up movesets.

Chronosplit September 3rd, 2020 4:24 AM

Quote:

Originally Posted by Illusioned (Post 10203833)
Really good stuff. I'm just wondering if it is possible to implement custom movesets for Gym Leaders and Elite four similar to how that is handled in gen 2? The AI could really shine with beefed up movesets.

Yep! Trainer_moves.asm and trainer_parties.asm in the data folder should be what you're looking for.

darthbr September 3rd, 2020 4:44 AM

Started to play shin pokered master version, awesome, just wondering, could u make those 2 guys in oak lab like ''yes or no'', i mean, not just talk and activate, make it like ''rematch'' system.

I have kids, they just talk to the npc and the game becomes harder (the npc that makes pokemon stronger), and keeps me asking why hahahaha, so i have to change it, anyway, its just a suggestion...

Also, can u make the game start with ''set'' option? i have been playing with SET, and its awesome, not very difficult, but not very easy.. perfect

jojobear13 September 3rd, 2020 1:41 PM

Quote:

Originally Posted by darthbr (Post 10203945)
Started to play shin pokered master version, awesome, just wondering, could u make those 2 guys in oak lab like ''yes or no'', i mean, not just talk and activate, make it like ''rematch'' system.

I have kids, they just talk to the npc and the game becomes harder (the npc that makes pokemon stronger), and keeps me asking why hahahaha, so i have to change it, anyway, its just a suggestion...

Also, can u make the game start with ''set'' option? i have been playing with SET, and its awesome, not very difficult, but not very easy.. perfect

These are all simple requests. I'll make a note to do them.

CadmiumRED September 3rd, 2020 6:31 PM

On my deviantart page, I actually attempted to make "devamped" GSC Spaceworld '97-style sprites of some of the Pokemon from Gen 1. I might attempt to do more later on if it can aid in this project.

https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/ba4fb8b0-41cc-4fad-9d61-7bab628b0ab6/ddiq4a0-5a6b0c96-1946-4bb9-9c74-eaaeb50e9a94.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvYmE0ZmI4YjAtNDFjYy00ZmFkLTlkNjEtN2JhYjYyOGIwYWI2XC9kZGlxNGEwLTVhNmIwYzk2LTE5NDYtNGJiOS05Yzc0LWVhYWViNTBlOWE5NC5wbmcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.NB_DKJf1ygBZaUrXUSaCSzQIlPKrpdoAgyVyKHOXCdA
https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/ba4fb8b0-41cc-4fad-9d61-7bab628b0ab6/ddiqo6v-6cfc41ac-02a2-46b4-bc7f-c91773ba719c.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvYmE0ZmI4YjAtNDFjYy00ZmFkLTlkNjEtN2JhYjYyOGIwYWI2XC9kZGlxbzZ2LTZjZmM0MWFjLTAyYTItNDZiNC1iYzdmLWM5MTc3M2JhNzE5Yy5wbmcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.Qa_4fPfJEjt9qslyF7T4RIdilBdAp8LKodvUGBLEzsM
https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/ba4fb8b0-41cc-4fad-9d61-7bab628b0ab6/de3r8d5-f77c8ff6-d8e8-451f-95bb-6d07e45efdca.png?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvYmE0ZmI4YjAtNDFjYy00ZmFkLTlkNjEtN2JhYjYyOGIwYWI2XC9kZTNyOGQ1LWY3N2M4ZmY2LWQ4ZTgtNDUxZi05NWJiLTZkMDdlNDVlZmRjYS5wbmcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.SfaHOoPBLDtmnXgtCo66OSElOIbUVXETtO3y89JbgbA

jojobear13 September 3rd, 2020 7:10 PM

Quote:

Originally Posted by Illusioned (Post 10203833)
Really good stuff. I'm just wondering if it is possible to implement custom movesets for Gym Leaders and Elite four

As Chronosplit posted, those two files control trainer rosters and custom movesets. This is what Gamefreak did to get custom movesets working for Yellow version. I just backported it into red & blue. It's not super elegant, but it works.

darthbr September 6th, 2020 9:32 AM

I have found a minor minor error. When u give a drink to The girl on Last floor of celadon store. Appears a "N" into The Middle of The boarder.

jojobear13 September 6th, 2020 2:44 PM

Quote:

Originally Posted by darthbr (Post 10205129)
I have found a minor minor error. When u give a drink to The girl on Last floor of celadon store. Appears a "N" into The Middle of The boarder.

Fixed it. The code tries to dynamically print the item name of the TM stored in wram as part of the text. The really weird thing about it is that this is only done on the celadon mart roof. Every other instance in the game just prints a straight string of "TMxx contains".

It makes me think that Gamefreak originally wanted to reuse the same block of text for the thirsty girl and just swap out the TM names (an attempt to save on rom space). Then later they changed their minds and left it as-is.

darthbr September 7th, 2020 5:18 AM

Another request. What is The possibility to add automatic use of pokeflute in both snorlax? Just a minor improv

Grilo September 7th, 2020 7:38 AM

the possibility of adding the event in the pikachu surf game the same as the yellow one?

darthbr September 8th, 2020 5:55 PM

Agatha is op as hell. Every pokemon i take she uses hypnosis without fail (how do i make to use less hypnosis)? . Too many substitutes and mega Drain and psych? Omg

jojobear13 September 8th, 2020 8:30 PM

Quote:

Originally Posted by darthbr (Post 10206031)
Agatha is op as hell. Every pokemon i take she uses hypnosis without fail (how do i make to use less hypnosis)? . Too many substitutes and mega Drain and psych? Omg

You'd have to change the moves on her team. Agatha's pokemon all have move sets that are relatively straightforward to use yet are very effective. The best strategy for her is to simply not make any dumb mistakes. What you are experiencing is the natural result of the AI keeping her from making dumb mistakes. Take her lvl 60 Gengar for example:
Quote:

Gengar: lvl 60
-confuse ray
-psychic
-hypnosis
-dream eater
AI layer 1 will heavily discourage dream eater if the opponent is awake. This leaves an almost equal chance for any of the other three moves to be chosen (a 1-in-3 chance to use psychic and a 2-in-3 chance to throw a status effect your way). Then AI layer 3 runs to check type-matching. If the target is weak to psychic moves, then psychic will get the preference and be used.

Let's say the opponent is already confused. In that case AI layer 1 will heavily discourage confuse ray. AI layer 3 runs next and finds a resistance to psychic moves, so it discourages psychic and dream eater. Confuse ray is discouraged, hypnosis is neutral, psychic is discouraged, and dream eater is discouraged. The AI will try to keep hitting with hypnosis under these conditions. Once the enemy is asleep, hypnosis gets heavily discouraged and dream eater gets a slight bump in preference. Now the AI will keep trying to use dream eater as it is the best option available. If the opponent recovers from confusion, now confuse ray becomes the best option available and it gets used. If the opponent wakes up, now hypnosis becomes the best option again and it gets used. It's a deadly cycle.

So yeah, it's not really the AI itself. The AI mostly runs off the concept of "don't do that". The move sets are just highly geared towards having only one good choice for every situation.

BrianRolling September 16th, 2020 7:15 PM

Hi. I'm a fan of your rom hack because it actually fixes the game. I'm using it as sort of a building base for some additional modding I'm doing to the game. I'm writing to ask you a favor, or at least a question. How easy is it for you to alter a move's critical hit ratio and priority? The reason I'm asking is because I'm altering moves with a tool and it's unable to do any of these. I'm specifically looking to increase critical hit ratio on Cut and increase move priority on Swift like it does for Slash and Quick Attack respectfully. I understand it might be a hard coding situation, but I don't know how to code, so I can't figure this out myself. Since I'm using your hack as a base I figured this is a good place to start asking for help. If you can, or if you know anyone else who can figure this thing out for me instead, I'd love the assistance either way. Again, I like this mod a lot. Keep up the good work and I hope to see a reply soon.

jojobear13 September 17th, 2020 9:14 PM

Quote:

Originally Posted by BrianRolling (Post 10208741)
Hi. I'm a fan of your rom hack because it actually fixes the game. I'm using it as sort of a building base for some additional modding I'm doing to the game. I'm writing to ask you a favor, or at least a question. How easy is it for you to alter a move's critical hit ratio and priority? The reason I'm asking is because I'm altering moves with a tool and it's unable to do any of these. I'm specifically looking to increase critical hit ratio on Cut and increase move priority on Swift like it does for Slash and Quick Attack respectfully. I understand it might be a hard coding situation, but I don't know how to code, so I can't figure this out myself. Since I'm using your hack as a base I figured this is a good place to start asking for help. If you can, or if you know anyone else who can figure this thing out for me instead, I'd love the assistance either way. Again, I like this mod a lot. Keep up the good work and I hope to see a reply soon.

The code that handled these things use to be kinda messy. I ended up simplifying both these things a bit when fixing issues with critical hits and the move Counter. It is now very easy to do.

Your list of move constants is going to be in "/constants/move_constants.asm", so leave that file open in a side window and use it as a reference.

To set move priority, go to "custom_functions/func_battle.asm" and look at these functions:
Code:

LowPriorityMoves:
        cp COUNTER
;        ret z
;        cp BIND
;        ret z
;        cp WRAP
;        ret z
;        cp FIRE_SPIN
;        ret z
;        cp CLAMP
        ret


Code:

HighPriorityMoves:
        cp QUICK_ATTACK
;        ret z
;        cp DUMMY_MOVE1
;        ret z
;        cp DUMMY_MOVE2
;        ret z
;        cp DUMMY_MOVE3
;        ret z
;        cp DUMMY_MOVE4
        ret


You'll see there are lines I have removed (aka commented out) by using the ";" character (makes everything after it treated as a comment to be ignored by the compiler). Simply un-comment two lines at a time and replace the move constant with that of your choice. Making Swift a high priority move would look like this:
Code:

HighPriorityMoves:
        cp QUICK_ATTACK
        ret z
        cp SWIFT
;        ret z
;        cp DUMMY_MOVE2
;        ret z
;        cp DUMMY_MOVE3
;        ret z
;        cp DUMMY_MOVE4
        ret


As you might be able to guess, you can add as many moves as rom space will permit by copy-pasting lines.

Now for high-crit moves, you want to go to the "engine/battle/core.asm" file and go to this function:
Code:

HighCriticalMoves:
        db KARATE_CHOP
        db RAZOR_LEAF
        db CRABHAMMER
        db SLASH
        db $FF


As you can see, it's just a list of move constants with FF as an end-of-list signifier. Just add CUT to the list as such:

Code:

HighCriticalMoves:
        db KARATE_CHOP
        db RAZOR_LEAF
        db CRABHAMMER
        db SLASH
        db CUT
        db $FF


Rom space in the core battle file is really tight. You don't have a lot of extra bytes to add moves. You might want to find the "UnusedHighCriticalMoves:" list and comment that whole list out like so:
Code:

;UnusedHighCriticalMoves:
        ;db KARATE_CHOP
        ;db RAZOR_LEAF
        ;db CRABHAMMER
        ;db SLASH
        ;db $FF


That should give you a little more wiggle-room.

BrianRolling September 18th, 2020 2:03 AM

Oh, nice. I appreciate it. I can see the files in your github page, but how do I apply the changes to my copy of the rom? Sorry that I'm asking this. Like I said, I've been using utility tool executable to edit the game, so I've never actually tried to get into the code.

jojobear13 September 18th, 2020 12:19 PM

Quote:

Originally Posted by BrianRolling (Post 10209070)
Oh, nice. I appreciate it. I can see the files in your github page, but how do I apply the changes to my copy of the rom? Sorry that I'm asking this. Like I said, I've been using utility tool executable to edit the game, so I've never actually tried to get into the code.

Hacking utilities will not necessarily work on shinpokered. Those assume everything is arranged in rom addresses the same as the retail games. A lot of stuff has been shifted around, so certain values are not where they were originally located.

You need to download the repository, set up the compiler, edit the files, and compile the rom yourself. It's the same as setting up and compiling pokered.

BrianRolling September 18th, 2020 3:08 PM

Gotcha. Some utilities such as move and pokemon stat editor still work on your rom hack, which are what I'm using. The move editor just doesn't have an option for the effects I've mentioned before. I bet I can change which type deals physical or special moves easily with your layout as well. I will try that. Thanks a lot for your help.

jojobear13 September 21st, 2020 10:11 PM

1 Attachment(s)
I did some editing on the female trainer. I changed up her clothes a bit, gave her a nose job, made her waist slightly smaller, and overall tried to make her more feminine. Sprite editing at this resolution is harder than I thought. A mere 1 or 2 pixels have a major effect on appearance.

Lv.12 Slime September 25th, 2020 7:40 AM

Hi! I'm working on my own hack and I'm really inexperienced. so I have a suuuuper kinda important question: could you put the trainer rematching and female trainer as separate patches? I'd really appreciate it, good luck on your projects!

jojobear13 October 7th, 2020 5:18 PM

V1.16 has been uploaded. The big feature added to the master branch is an experimental New Game+. Both branches also had some tweaks and bugfixes.

Master branch changelog
#Hack-Induced Bugfixes & Adjustments since last version:
-----------
- The aides in Oak's lab that activate features now have a no/yes prompt
- More AI tweaking
--- AI scoring for switching puts a heavier penalty on potentially switching in a bad type matchup
--- AI scoring imposes a very heavy penalty for potentially switching in pokemon with less than 1/4 HP
--- AI layer 3 changes that affect most 0-power moves (with only a few exceptions like heal effects)
----- now has a hard stop on using 0-power moves on consecutive turns
----- heavily discourages 0-power moves if below 1/3 hp
- Fixed text overflow into window border on the celadon mart roof
- Fixed the Missingno battle not triggering
- Missingno sets a non-key item in bag slot 6 to 99 if beaten

#New features & adjustments since last version:
-----------
- A regular New Game will default the battle style to SET
- New Game Plus has been added (still experimental)
--- Activated under these conditions:
----- Must have an existing non-corrupt game save on-file
----- Must have beaten the elite 4 in the on-file save
----- Press and hold SELECT while choosing the New Game option
----- A jingle will play to indicate NG+ has activated and the SELECT button can now be released
--- Preserves ONLY the following information (your current party will be lost):
------ Boxed pokemon
------ Play clock
------ Pokedex seen/owned registry
------ Hall of Fame (experimental)
------ Option screen selections
--- A new trainer ID and hash is generated, so boxed pokemon are permanently treated as traded pokemon
- Type immunity prevents trapping moves from taking hold at all
- Yes/No prompt for flute use has been added to blocking snorlax
- Clefable and Wigglytuff get some moves back via level-up
- Encountering Missingno will not give 128 of the item in the sixth bag slot
- Re-worked the front and back pics for the female trainer
- Erika uses her pic from yellow version which alters her funerary clothes to a proper kimono
- Fossil guy in mt moon can be rematched
- Fixed text overlap with Oak giving you pokeballs
- Cannot bypass Brock's gym via the start menu
- Diglett & Dugtrio can learn cut like in yellow version
- In SET batle mode, X-stat items have double the effect


Lite branch changelog
- More AI tweaking
--- AI scoring for switching puts a heavier penalty on potentially switching in a bad type matchup
--- AI scoring imposes a very heavy penalty for potentially switching in pokemon with less than 1/4 HP
--- AI layer 3 changes that affect most 0-power moves (with only a few exceptions like heal effects)
----- now has a hard stop on using 0-power moves on consecutive turns
----- heavily discourages 0-power moves if below 1/3 hp
- Type immunity prevents trapping moves from taking hold at all
- Erika uses her pic from yellow version which alters her funerary clothes to a proper kimono
- Cannot bypass Brock via the start button

Illusioned October 9th, 2020 11:38 PM

I have a bug to report. When using GBC palette functionality, a transformed pokemon's palette changes to random colors when an opponent is knocked out.
https://i.imgur.com/6gUyeSU.png

jojobear13 October 10th, 2020 8:36 AM

Quote:

Originally Posted by Illusioned (Post 10216753)
I have a bug to report. When using GBC palette functionality, a transformed pokemon's palette changes to random colors when an opponent is knocked out.https://i.imgur.com/6gUyeSU.png

Thanks. I think I know the cause. I’ll look into it.

EDIT: I think I found the cause. The color change is not random. It's actually is trying to default to the Grey palette. This is because the function that updates pokemon palettes assumes that a transformed pokemon always has PAL_GREYMON assigned to it rather than actually searching out and defaulting to the palette assigned to Ditto.

jastolze007 October 14th, 2020 3:28 PM

I have a question about the randomized trainer with 6 LV 100 Pokemon. Does the roster call for random Pokemon in general and use the default moveset or are they teams that you created that are called randomly? I apologize if you already answered this, I couldn't find it asked yet.

jojobear13 October 16th, 2020 7:15 PM

Quote:

Originally Posted by jastolze007 (Post 10218275)
I have a question about the randomized trainer with 6 LV 100 Pokemon. Does the roster call for random Pokemon in general and use the default moveset or are they teams that you created that are called randomly? I apologize if you already answered this, I couldn't find it asked yet.

Each pokemon is selected randomly. Default movesets are used.

jastolze007 October 18th, 2020 8:00 AM

I absolutely love this hack. My favorite part is the replayability. I love being able to rematch any trainer/gym leader by talking to them again. It makes leveling up and earning money so much easier (So I can buy Ethers -> Max Elixers throughout the game)

Have you considered upping the bag space from 20 Items or expanding the PC item storage? That would probably break save compatibility, but just curious

I enjoy being able to check Stat experience and Effort values at ease. My absolute favorite part is the random trainer roster at Lv100. I haven't gotten that far yet, but I can't wait to beat him. This is also a 151 hack so that's also a huge plus.

One potential issue: Freezing doesn't seem to thaw out on its own. I had about 35 turns pass before I caught Zapdos upon freezing it with Ice Punch, and I believe it has a 20% chance to thaw each turn, yet it never did. Idk if that was overlooked, intentional or if I was just super lucky.

I am curious what would happen if I set level scaling on when I sent out a Pokemon LV 255. Would the level loop back to 0? Anyway, I'll probably never know because I don't like using Rare candies and grinding to that level is a LOT of work (Which I enjoy)

Just found one game breaking glitch: I enabled the marking on PKMN registered and Female/Male via the aide and after that, I went to view a PKMN's Effort values in storage by holding select (in this case, Hitmonchan) and the game crashed after going trying to load the second screen of its summary. I tried it three times and it did it all three times. I tried it without talking to the aide and it didn't occur.

jojobear13 October 20th, 2020 9:54 AM

Quote:

Originally Posted by jastolze007 (Post 10219451)
I absolutely love this hack. My favorite part is the replayability. I love being able to rematch any trainer/gym leader by talking to them again. It makes leveling up and earning money so much easier (So I can buy Ethers -> Max Elixers throughout the game)

Glad you're enjoying it.

Quote:

Have you considered upping the bag space from 20 Items or expanding the PC item storage? That would probably break save compatibility, but just curious
I did, and I decided to forgo the feature. It causes things to act wonky with features of pokemon stadium.

Quote:

One potential issue: Freezing doesn't seem to thaw out on its own.
That's how freezing worked in Gen 1.

Quote:

I had about 35 turns pass before I caught Zapdos upon freezing it with Ice Punch, and I believe it has a 20% chance to thaw each turn, yet it never did.
Starting with Gen 2, a frozen pokemon has a 10% chance to thaw per turn. This was increased to 20% in Gen 3 and onward.

Quote:

I am curious what would happen if I set level scaling on when I sent out a Pokemon LV 255. Would the level loop back to 0? Anyway, I'll probably never know because I don't like using Rare candies and grinding to that level is a LOT of work (Which I enjoy)
Yes, it would likely overflow. But this is unlikely to happen. This hack assumes a cap of level 100 and attempts to fix glitches that allow levels above that. It's not really possible to grind that high anyway because the EXP counter will overflow before you hit level 255.

Quote:

Just found one game breaking glitch: I enabled the marking on PKMN registered and Female/Male via the aide and after that, I went to view a PKMN's Effort values in storage by holding select (in this case, Hitmonchan) and the game crashed after going trying to load the second screen of its summary. I tried it three times and it did it all three times. I tried it without talking to the aide and it didn't occur.
I'll take a look at this over the weekend.

jojobear13 October 23rd, 2020 3:14 PM

Quote:

Originally Posted by jastolze007 (Post 10219451)
Just found one game breaking glitch: I enabled the marking on PKMN registered and Female/Male via the aide and after that, I went to view a PKMN's Effort values in storage by holding select (in this case, Hitmonchan) and the game crashed after going trying to load the second screen of its summary. I tried it three times and it did it all three times. I tried it without talking to the aide and it didn't occur.

Did a quick check with a hitmonchan in the box and the gender symbols toggled on. Viewing the stat screen of the hitmonchan while it's in the box and holding down select for statexp does not crash on on the second page. This is using a fresh compile of v1.16.

I can't seem to replicate your bug. If you attach your .sav file I might be able to see what is going wrong.

jastolze007 October 23rd, 2020 3:20 PM

Quote:

Originally Posted by jojobear13 (Post 10222170)
Did a quick check with a hitmonchan in the box and the gender symbols toggled on. Viewing the stat screen of the hitmonchan while it's in the box and holding down select for statexp does not crash on on the second page. This is using a fresh compile of v1.16.

I can't seem to replicate your bug. If you attach your .sav file I might be able to see what is going wrong.

I'm playing on Goomba via GBA flashcard, it's probably just me then if you couldn't replicate it. Unfortunately, the save file is a different structure for .gb/.gbc and can't be converted by normal means. I'll give you it if you want, but it won't work unless you're playing on a Revo K101.

Thanks for the help regardless. This emulator has been known to be buggy when playing mods so I wouldn't worry about it.

Chronosplit October 23rd, 2020 5:09 PM

Quote:

Originally Posted by jastolze007 (Post 10222172)
I'm playing on Goomba via GBA flashcard, it's probably just me then if you couldn't replicate it. Unfortunately, the save file is a different structure for .gb/.gbc and can't be converted by normal means. I'll give you it if you want, but it won't work unless you're playing on a Revo K101.

Thanks for the help regardless. This emulator has been known to be buggy when playing mods so I wouldn't worry about it.

This may not help, but I can vouch for Shin working perfectly on a GBC flashcard. That may cost you a good bit of dough if you're wishing to play gen 2 games too though.

jojobear13 October 23rd, 2020 7:04 PM

Quote:

Originally Posted by jastolze007 (Post 10222172)
I'm playing on Goomba via GBA flashcard

Yeah, that emulator still has some bugs to work out. Personally, I use the latest version of BGB for development due to its accuracy in replicating hardware and its built-in debugging tools. When I play for pleasure, I have a stack of cheap bootleg carts that I reflash then play using my SGB or GBC.

jastolze007 October 24th, 2020 4:50 AM

Quote:

Originally Posted by Chronosplit (Post 10222197)
This may not help, but I can vouch for Shin working perfectly on a GBC flashcard. That may cost you a good bit of dough if you're wishing to play gen 2 games too though.

I actually had an 80 dollar GBC flash card that worked well but gave it away. I might get another one soon. Thanks for the advice.

Quote:

Originally Posted by jojobear13 (Post 10222237)
Yeah, that emulator still has some bugs to work out. Personally, I use the latest version of BGB for development due to its accuracy in replicating hardware and its built-in debugging tools. When I play for pleasure, I have a stack of cheap bootleg carts that I reflash then play using my SGB or GBC.

Unfortunately, I love playing on portable only devices. I don't know of a portable BGB. I have heard of its fantastic debugger and wish they'd make a better GBC emulator for GBA. (Goomba has so many graphical issues when playing even Crystal)

Also, I am playing 1.15 currently. I made some basic changes and didn't want to update and have to redo them. I noticed one small issue was with the random trainer battle. After it plays Final battle music after it loads a battle with Blue, after I defeat him the winning theme continues to play (Like it does in the normal battle with Blue) but doesn't go away even with a restart or leaving most areas.

Now, certain town areas are playing the wrong music. (For instance, Pokemon center playing in the underground path) I don't think it will affect anything major, but I did see the changelog showing that you made a change to the music that plays when facing that trainer. How important is it that I update from 1.15?

dragon1200 October 24th, 2020 7:02 AM

Is it possible to make the exp bar blue color? xD

jojobear13 October 24th, 2020 11:59 AM

Quote:

Originally Posted by jastolze007 (Post 10222385)
Also, I am playing 1.15 currently. I made some basic changes and didn't want to update and have to redo them. I noticed one small issue was with the random trainer battle. After it plays Final battle music after it loads a battle with Blue, after I defeat him the winning theme continues to play (Like it does in the normal battle with Blue) but doesn't go away even with a restart or leaving most areas.

Now, certain town areas are playing the wrong music. (For instance, Pokemon center playing in the underground path) I don't think it will affect anything major, but I did see the changelog showing that you made a change to the music that plays when facing that trainer. How important is it that I update from 1.15?

Confirmed and diagnosed. I posted a quick write-up on the github about it. You can clear the issue by beating the E4 again.

1.16 had some very minor fixes and tweaks, improved the AI with switching and using stat-down moves, added a New Game+ feature, and fixed the missingno event not activating. If these are not important to you, then you're fine.

jojobear13 October 24th, 2020 12:15 PM

Quote:

Originally Posted by dragon1200 (Post 10222437)
Is it possible to make the exp bar blue color? xD

Not without changing the health bar colors. They both use the same palette packet.

jastolze007 October 26th, 2020 6:03 AM

Hey, I tried to update to 1.16 via the github source but after compiling, it erased my save upon booting the newly compiled game. Also, it appeared to be in color, so I assume a lot has happened since the last update. I'd really like to keep my save (luckily, I backed it up) but can't seem to continue using 1.16. I'd really like to get Missingno to work again lol.

jojobear13 October 26th, 2020 8:43 AM

Quote:

Originally Posted by jastolze007 (Post 10223262)
Hey, I tried to update to 1.16 via the github source but after compiling, it erased my save upon booting the newly compiled game. Also, it appeared to be in color, so I assume a lot has happened since the last update. I'd really like to keep my save (luckily, I backed it up) but can't seem to continue using 1.16. I'd really like to get Missingno to work again lol.

Likely Goomba-related. Save your game on the Pallet Town map. Then see if you can use a program called Goomba Save Manager to extract your save into the regular .sav format. Post it here and I'll see if it will load.

jastolze007 October 26th, 2020 9:22 AM

Quote:

Originally Posted by jojobear13 (Post 10223319)
Likely Goomba-related. Save your game on the Pallet Town map. Then see if you can use a program called Goomba Save Manager to extract your save into the regular .sav format. Post it here and I'll see if it will load.

That's actually where I saved at. And I didn't realize that Goomba had a save manager. Good to know. When I have a moment later, I'll post it here

SPF November 11th, 2020 12:06 PM

I've been trying to add a new move using your GitHub repository but I keep getting an error when I try to 'make' so maybe you could tell me if it's possible or where I'm making an error.
I've taken into account to edit the constants/move_constants.asm, text/move_names.asm, data/moves.asm, data/animations.asm and the order in which I place the new move (after Substitute).

This is the error I'm getting and I don't know what type of error it's referring to:
Quote:

ERROR: main.asm(901) -> data/moves.asm(178) -> data/moves.asm::move(6):
syntax error
error: Assembly aborted (1 errors)!
This is the line 178 in the report that gives the error:
Quote:

move AMBUSH_GRIP, NO_ADDITIONAL_EFFECT 50, BUG, 100, 10
Thank you for your time and your work.

jojobear13 November 11th, 2020 1:51 PM

Quote:

Originally Posted by SPF (Post 10229699)
This is the line 178 in the report that gives the error:
move AMBUSH_GRIP, NO_ADDITIONAL_EFFECT 50, BUG, 100, 10


Missing a comma after NO_ADDITIONAL_EFFECT

SPF November 11th, 2020 2:34 PM

Thank you.
I can't believe the ammount of times I've been trying the same thing without realizing that. u_u

SPF November 13th, 2020 6:40 AM

Hi, I get another error after editing the files to add a new move and trying to compile.

Quote:

ERROR: main.asm(2096) -> engine/overworld/elevator.asm(67):
Section 'bank1E' is too big (max size = 0x4000 bytes, reached 0x4001).
make: *** [Makefile:42: main_red.o] Error 1
I looked at the bank1E and the only file from there that I edit is the data/animations.asm so I wonder if there is a way to make it possible to add new moves, don't know if moving that file to another bank or whatever.

I hope I'm not bothering you with these questions haha 😅

jojobear13 November 13th, 2020 1:10 PM

Quote:

Originally Posted by SPF (Post 10230429)
Hi, I get another error after editing the files to add a new move and trying to compile.

I hope I'm not bothering you with these questions haha 😅

This error means you have run out of space in the rom bank. Each assembly command takes up a certain number of bytes; the syntax you type is just a visual stand-in for numerical command codes (like how my dad used to code when he was in college). Each rom bank has 16,384 bytes (4000 in hex).

Bank 1E is particularly packed ever since I backported the GBC support from Yellow version. Moving elevator.asm to somewhere else looks to be the easiest thing to do since its contents are only ever accessed from other banks.

Since these are general questions regarding pokered and assembly errors, I suggest that you will find better tech support on the pret team's discord. The folks there are nice as well as much more active and knowledgeable than I.

jojobear13 November 18th, 2020 11:47 AM

Version 1.17 has been uploaded. The changelog applies equally to both master and lite branches.

- Fixed a transformed pokemon having the wrong palette
- Fixed the cable club text borders having the wrong palette
- A revision control function has been added that will cancel unsupported cable links
- Choosing the cable club colosseum initiates a version control handshake
--- Will hang and cancel the link if the other game is incompatible with battles
--- Lite/Master branch only supports battles with other similar lite/master branch builds (cross-linking between lite and master is not compatible).
- Audio engine has been back-ported from Yellow version
--- Fixes some channel conflicts between cries and the low-health alarm
--- Fixes some audio hiccups with Yellow's color palettes on the GBC
--- Press SELECT on the option menu to change the audio mixing option

jojobear13 November 20th, 2020 3:29 PM

Minor update. The code base now compiles a Green Version. The Green Version ips patches have been uploaded and should be applied to a USA Blue rom.

mattcits November 22nd, 2020 1:35 PM

I just forked the lite branch today, and tried to compile before I made any changes. Got this error:

rgbasm -D _BLUE -h -o main_blue.o main.asm
ERROR: main.asm(16) -> home.asm(4376) -> home.asm::print_digit(4359):
syntax error
error: Assembly aborted (1 errors)!
make: *** [Makefile:48: main_blue.o] Error 1

This is my first time trying your version, I was hoping to use it as a base for a rom hack. Any idea what could be wrong??

Edit: Just tried the master branch, same error with the print_digit function (but a different line number of course)

jojobear13 November 22nd, 2020 7:19 PM

Quote:

Originally Posted by mattcits (Post 10233676)
I just forked the lite branch today, and tried to compile before I made any changes. Got this error:

rgbasm -D _BLUE -h -o main_blue.o main.asm
ERROR: main.asm(16) -> home.asm(4376) -> home.asm::print_digit(4359):
syntax error
error: Assembly aborted (1 errors)!
make: *** [Makefile:48: main_blue.o] Error 1

This is my first time trying your version, I was hoping to use it as a base for a rom hack. Any idea what could be wrong??

Edit: Just tried the master branch, same error with the print_digit function (but a different line number of course)

Seems like you are trying to compile with rgbds-0.4.2-pre version. This is a pre-release and is currently unstable. You should delete any .gbc, .sym. and .o files in your directory and compile using an earlier version. I personally use rgbds-0.4.0 version.

mattcits November 22nd, 2020 7:59 PM

That seemed to do the trick! Thanks for the quick response!!


All times are GMT -8. The time now is 8:52 AM.


Like our Facebook Page Follow us on Twitter © 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.