Homebrew Pokemon Virtual Console Patches (Debug Menu, Speed Up, Full Screen)

zaksabeast

Well-Known Member
OP
Member
Joined
May 24, 2016
Messages
346
Trophies
0
XP
1,214
Country
United States
Hey!

A few days ago, I was digging through a VC disassembly and found what looked like a debug menu. I'm not the first person to find these, but I had never seen it before and decided to make some patches for it.

The best use for this is being able to speed up or slow down virtual console games. You can download the patches below. :)

Patches:
- Full Width Screen
- Touch bottom screen for debug menu
- Touch bottom Screen for debug menu, and have `Emulator Speed` patched to have a max of 10 (regular is 4)

EDIT: If you want full width and the speed 10 debug menu in one patch, LooneyNoons has combined them into one patch that you can download here.

Usage:
To use these patches, you'll need the latest Luma CFW.
1. Download the zip file below
2. Pick out a patch you want to use and rename it to code.ips
3. Place your code.ips in '/luma/titles/<title id>/code.ips'
- Your title id will be different depending on the game you wish to use this patch for

Notes:
- Gen 1 and Gen 2 virtual console games have different patches - do not mix them up
- Gen 1 games are Red, Blue, and Yellow
- Gen 2 games are Gold, Silver, and Crystal
- I have not tested them for all regions, but they should work
- These should only work for Pokemon virtual console games

Have fun! :D
 

Attachments

  • pokemonVCPatches.zip
    2.3 KB · Views: 2,717
Last edited by zaksabeast,

AyanamiRei0

GBATemp's Resident Evangelion fanboy.
Member
Joined
Jan 4, 2016
Messages
1,497
Trophies
1
Age
30
Location
Brexit
XP
1,524
Country
United Kingdom
Well this is now possible the changerom feature works.

d990gWK.png
 
Last edited by AyanamiRei0,

dman1987

Member
Newcomer
Joined
Mar 1, 2018
Messages
14
Trophies
0
Age
43
XP
39
Country
United States
• Currently on Luma 9.0-2a840f2.
• Have the US version of Pokemon Yellow.
• Renamed g1VC_debugSpeed10_code.ips to code.ips
• Placed in luma/titles/0004000000171200/

When I run the Pokemon Yellow VC, all I get is the standard VC menu (Resume Game & Reset) when I touch the bottom screen. Is there anything I could have potentially missed? Very excited to try this; I played through Yellow using RetroArch at increased speed, but my game would only save half the time, and then last week my save randomly vanished. I know if I play through official VC I won't run into any save troubles, and will be able to transfer to Gen 7 without having to use PkHex. :)
 
Last edited by dman1987,

KunoichiZ

Well-Known Member
Member
Joined
Mar 16, 2012
Messages
8,830
Trophies
0
Age
26
XP
4,575
Country
United States
• Currently on Luma 9.0-2a840f2.
• Have the US version of Pokemon Yellow.
• Renamed g1VC_debugSpeed10_code.ips to code.ips
• Placed in luma/titles/0004000000171200/

When I run the Pokemon Yellow VC, all I get is the standard VC menu (Resume Game & Reset) when I touch the bottom screen. Is there anything I could have potentially missed? Very excited to try this; I played through Yellow using RetroArch at increased speed, but my game would only save half the time, and then last week my save randomly vanished. I know if I play through official VC I won't run into any save troubles, and will be able to transfer to Gen 7 without having to use PkHex. :)
Did you enable "Enable game patching" in your Luma settings?
 

Asia81

Yuri Lover ~
Member
Joined
Nov 15, 2014
Messages
6,329
Trophies
3
Age
28
XP
2,242
Country
France
That speed feature is really nice. It would be much nice if we had a way to apply it to the whole vc engine, and not have to patch every games.
GB games was fcking slow, 2 years to start a battle, thanks to the vba speed boost also.
 

Hiccup

Well-Known Member
Member
Joined
Nov 21, 2009
Messages
982
Trophies
0
XP
1,553
Country
That speed feature is really nice. It would be much nice if we had a way to apply it to the whole vc engine, and not have to patch every games.
GB games was fcking slow, 2 years to start a battle, thanks to the vba speed boost also.
There is no "whole vc engine". Each VC title contains its own copy of the emulator.
 
  • Like
Reactions: DarthDub

zaksabeast

Well-Known Member
OP
Member
Joined
May 24, 2016
Messages
346
Trophies
0
XP
1,214
Country
United States
• Currently on Luma 9.0-2a840f2.
• Have the US version of Pokemon Yellow.
• Renamed g1VC_debugSpeed10_code.ips to code.ips
• Placed in luma/titles/0004000000171200/

When I run the Pokemon Yellow VC, all I get is the standard VC menu (Resume Game & Reset) when I touch the bottom screen. Is there anything I could have potentially missed? Very excited to try this; I played through Yellow using RetroArch at increased speed, but my game would only save half the time, and then last week my save randomly vanished. I know if I play through official VC I won't run into any save troubles, and will be able to transfer to Gen 7 without having to use PkHex. :)

First, thank you for the in depth information to help troubleshooting - the more info, the better.

As Kunoichiz mentioned, please make sure to enable game patching in your Luma settings - I tested Pokemon Yellow, and it's working nicely. :)
 

Ryccardo

watching Thames TV from London
Member
Joined
Feb 13, 2015
Messages
7,406
Trophies
0
Age
26
Location
Imola
XP
6,346
Country
Italy
will this work on non official VC Injects?
Yes, if they use the same emulator version; if you used an injector instead of replacing the rom yourself, you'd need to figure it out yourself - but the older NES injector by Asdolo most likely uses the Gen 1 emulator (assuming you selected the version with network but no savestates as base)
 

Helix Fossil

DQ Fan Translator
Member
Joined
May 16, 2016
Messages
270
Trophies
0
Age
30
Location
New York
XP
1,104
Country
United States
Yes, if they use the same emulator version; if you used an injector instead of replacing the rom yourself, you'd need to figure it out yourself - but the older NES injector by Asdolo most likely uses the Gen 1 emulator (assuming you selected the version with network but no savestates as base)

I've gotten myself all turned around trying to research this, is there a guide I can take a look at for replacing the ROM in the RomFS instead of using the injector? I'm trying to manually replace the Crystal ROM in the official Crystal VC with a Crystal romhack instead, as there's a slight jitter before every battle if you use the injector. I know the current injectors don't use the Crystal VC as a base for GBC VC injection, hence the need to do it manually. I figured putting a Crystal hack in the Crystal VC might rectify the jittering.
 

Ryccardo

watching Thames TV from London
Member
Joined
Feb 13, 2015
Messages
7,406
Trophies
0
Age
26
Location
Imola
XP
6,346
Country
Italy
is there a guide I can take a look at for replacing the ROM in the RomFS instead of using the injector?
Once you know about extracting and repackaging a standard 3DS application, it's easy ~

The funny named file in the "rom" folder is (for GB/C games) just a renamed standard GBC rom;

then you may need to adjust the patches (found in the root of the romfs with the same name as the game's rom), if code/data modified by the patch file in the original game was moved around - which is quite hard to say if you didn't make the hack completely by yourself...

then the icon/banner (found in the exefs) ought to be edited (you can just rip them off the one you made with the injector)

then titleid (byteswapped) ought to be changed, it's found in both header and exheader (twice); while you're there, change the uniqueid (ctr-n-xxxx) found in the header to anything you want, you have 15 characters to express yourself, no need to stick to the original format and add confusion

...then just reassemble the whole package, install it, and laugh at whatever error everyone's going to make the first time they try :)
 
  • Like
Reactions: Helix Fossil

AyanamiRei0

GBATemp's Resident Evangelion fanboy.
Member
Joined
Jan 4, 2016
Messages
1,497
Trophies
1
Age
30
Location
Brexit
XP
1,524
Country
United Kingdom
Once you know about extracting and repackaging a standard 3DS application, it's easy ~

The funny named file in the "rom" folder is (for GB/C games) just a renamed standard GBC rom;

then you may need to adjust the patches (found in the root of the romfs with the same name as the game's rom), if code/data modified by the patch file in the original game was moved around - which is quite hard to say if you didn't make the hack completely by yourself...

then the icon/banner (found in the exefs) ought to be edited (you can just rip them off the one you made with the injector)

then titleid (byteswapped) ought to be changed, it's found in both header and exheader (twice); while you're there, change the uniqueid (ctr-n-xxxx) found in the header to anything you want, you have 15 characters to express yourself, no need to stick to the original format and add confusion

...then just reassemble the whole package, install it, and laugh at whatever error everyone's going to make the first time they try :)
In fact the VC can load the roms perfectly without changing the file extenstion

LMBgIJs.png
 
D

Deleted User

Guest
I'm hoping this will soon lead to a generic VC emulator, where we can choose from a list of ROMs off a single title.
 
  • Like
Reactions: ManuelKoegler
General chit-chat
Help Users
  • No one is chatting at the moment.
    Dark_Phoras @ Dark_Phoras: If I tell them in person, it goes well 99% of the time. I have a charm that doesn't translate to...