Pokemon Gold Beta/Alpha has been REVIVED in my NEW ROM hack!

Started by Chippy2000, December 27, 2013, 05:01:57 PM

Previous topic - Next topic

Chippy2000

This is a little project that has been floating around the ROM Hacking discussion for a little while. So I decided to take it here too.

Basically a ROM Hack reviving the older versions of Pokemon Gold.

You'll need the VBA to run this hack.

Heres a screenie from an older version.
http://imageshack.us/a/img201/5866/5cb.png

For versions and updates look on the fb page :D -

https://www.facebook.com/PokeMonBetaAlphaRevival

Current Version - 1.4 - The Japan Update

Looking for help on a couple things! Here are the things I need help with -
*Implementing some stuff.
*Adding events and flags for unused stuff.
*Beta Testing (about 12 more needed, most may be getting kicked off since about 4 never message me.)
*Re-Using Stuff

You can also find another help ad on the help ads section on this site. Check it out ;)

E-Mail me or message me on Facebook or my ROM Hacking.net accounts. To E-Mail go on the help ad but I NEVER go on there so it's not recommended. I suggest alerting me before e-mailing so I know to look on there XD

You can apply to help on this page and it's where I hang around (A LOT) so if you wanna help out that's the place to go. Also the updates get there A LOT faster.
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

cret

how much rombanks are in it?
it seems as if there were only 2. rabin2-output below:
your hack:

[Sections]
idx=00 addr=0x00000000 off=0x00000000 sz=16384 vsz=16384 perm=-r-x name=rombank00
idx=01 addr=0x00004000 off=0x00004000 sz=16384 vsz=16384 perm=-r-x name=rombank01

2 sections
file   POKEMON_GLDAAUE€
type   SuperGameboy-Rom
card   ROM+MBC5+RAM
pic   false
has_va   true
root   
class   
lang   unknown
arch   gb
bits   8
machine   Gameboy
os   any
subsys   
endian   little
strip   false
static   false
linenum   false
lsyms   false
relocs   false
rpath   

Pokemon Red:

[Sections]
idx=00 addr=0x00000000 off=0x00000000 sz=16384 vsz=16384 perm=-r-x name=rombank00
idx=01 addr=0x00004000 off=0x00004000 sz=16384 vsz=16384 perm=-r-x name=rombank01
idx=02 addr=0x00008000 off=0x00008000 sz=16384 vsz=16384 perm=-r-x name=rombank02
idx=03 addr=0x0000c000 off=0x0000c000 sz=16384 vsz=16384 perm=-r-x name=rombank03
idx=04 addr=0x00010000 off=0x00010000 sz=16384 vsz=16384 perm=-r-x name=rombank04
idx=05 addr=0x00014000 off=0x00014000 sz=16384 vsz=16384 perm=-r-x name=rombank05
idx=06 addr=0x00018000 off=0x00018000 sz=16384 vsz=16384 perm=-r-x name=rombank06
idx=07 addr=0x0001c000 off=0x0001c000 sz=16384 vsz=16384 perm=-r-x name=rombank07
idx=08 addr=0x00020000 off=0x00020000 sz=16384 vsz=16384 perm=-r-x name=rombank08
idx=09 addr=0x00024000 off=0x00024000 sz=16384 vsz=16384 perm=-r-x name=rombank09
idx=10 addr=0x00028000 off=0x00028000 sz=16384 vsz=16384 perm=-r-x name=rombank0a
idx=11 addr=0x0002c000 off=0x0002c000 sz=16384 vsz=16384 perm=-r-x name=rombank0b
idx=12 addr=0x00030000 off=0x00030000 sz=16384 vsz=16384 perm=-r-x name=rombank0c
idx=13 addr=0x00034000 off=0x00034000 sz=16384 vsz=16384 perm=-r-x name=rombank0d
idx=14 addr=0x00038000 off=0x00038000 sz=16384 vsz=16384 perm=-r-x name=rombank0e
idx=15 addr=0x0003c000 off=0x0003c000 sz=16384 vsz=16384 perm=-r-x name=rombank0f
idx=16 addr=0x00040000 off=0x00040000 sz=16384 vsz=16384 perm=-r-x name=rombank10
idx=17 addr=0x00044000 off=0x00044000 sz=16384 vsz=16384 perm=-r-x name=rombank11
idx=18 addr=0x00048000 off=0x00048000 sz=16384 vsz=16384 perm=-r-x name=rombank12
idx=19 addr=0x0004c000 off=0x0004c000 sz=16384 vsz=16384 perm=-r-x name=rombank13
idx=20 addr=0x00050000 off=0x00050000 sz=16384 vsz=16384 perm=-r-x name=rombank14
idx=21 addr=0x00054000 off=0x00054000 sz=16384 vsz=16384 perm=-r-x name=rombank15
idx=22 addr=0x00058000 off=0x00058000 sz=16384 vsz=16384 perm=-r-x name=rombank16
idx=23 addr=0x0005c000 off=0x0005c000 sz=16384 vsz=16384 perm=-r-x name=rombank17
idx=24 addr=0x00060000 off=0x00060000 sz=16384 vsz=16384 perm=-r-x name=rombank18
idx=25 addr=0x00064000 off=0x00064000 sz=16384 vsz=16384 perm=-r-x name=rombank19
idx=26 addr=0x00068000 off=0x00068000 sz=16384 vsz=16384 perm=-r-x name=rombank1a
idx=27 addr=0x0006c000 off=0x0006c000 sz=16384 vsz=16384 perm=-r-x name=rombank1b
idx=28 addr=0x00070000 off=0x00070000 sz=16384 vsz=16384 perm=-r-x name=rombank1c
idx=29 addr=0x00074000 off=0x00074000 sz=16384 vsz=16384 perm=-r-x name=rombank1d
idx=30 addr=0x00078000 off=0x00078000 sz=16384 vsz=16384 perm=-r-x name=rombank1e
idx=31 addr=0x0007c000 off=0x0007c000 sz=16384 vsz=16384 perm=-r-x name=rombank1f
idx=32 addr=0x00080000 off=0x00080000 sz=16384 vsz=16384 perm=-r-x name=rombank20
idx=33 addr=0x00084000 off=0x00084000 sz=16384 vsz=16384 perm=-r-x name=rombank21
idx=34 addr=0x00088000 off=0x00088000 sz=16384 vsz=16384 perm=-r-x name=rombank22
idx=35 addr=0x0008c000 off=0x0008c000 sz=16384 vsz=16384 perm=-r-x name=rombank23
idx=36 addr=0x00090000 off=0x00090000 sz=16384 vsz=16384 perm=-r-x name=rombank24
idx=37 addr=0x00094000 off=0x00094000 sz=16384 vsz=16384 perm=-r-x name=rombank25
idx=38 addr=0x00098000 off=0x00098000 sz=16384 vsz=16384 perm=-r-x name=rombank26
idx=39 addr=0x0009c000 off=0x0009c000 sz=16384 vsz=16384 perm=-r-x name=rombank27
idx=40 addr=0x000a0000 off=0x000a0000 sz=16384 vsz=16384 perm=-r-x name=rombank28
idx=41 addr=0x000a4000 off=0x000a4000 sz=16384 vsz=16384 perm=-r-x name=rombank29
idx=42 addr=0x000a8000 off=0x000a8000 sz=16384 vsz=16384 perm=-r-x name=rombank2a
idx=43 addr=0x000ac000 off=0x000ac000 sz=16384 vsz=16384 perm=-r-x name=rombank2b
idx=44 addr=0x000b0000 off=0x000b0000 sz=16384 vsz=16384 perm=-r-x name=rombank2c
idx=45 addr=0x000b4000 off=0x000b4000 sz=16384 vsz=16384 perm=-r-x name=rombank2d
idx=46 addr=0x000b8000 off=0x000b8000 sz=16384 vsz=16384 perm=-r-x name=rombank2e
idx=47 addr=0x000bc000 off=0x000bc000 sz=16384 vsz=16384 perm=-r-x name=rombank2f
idx=48 addr=0x000c0000 off=0x000c0000 sz=16384 vsz=16384 perm=-r-x name=rombank30
idx=49 addr=0x000c4000 off=0x000c4000 sz=16384 vsz=16384 perm=-r-x name=rombank31
idx=50 addr=0x000c8000 off=0x000c8000 sz=16384 vsz=16384 perm=-r-x name=rombank32
idx=51 addr=0x000cc000 off=0x000cc000 sz=16384 vsz=16384 perm=-r-x name=rombank33
idx=52 addr=0x000d0000 off=0x000d0000 sz=16384 vsz=16384 perm=-r-x name=rombank34
idx=53 addr=0x000d4000 off=0x000d4000 sz=16384 vsz=16384 perm=-r-x name=rombank35
idx=54 addr=0x000d8000 off=0x000d8000 sz=16384 vsz=16384 perm=-r-x name=rombank36
idx=55 addr=0x000dc000 off=0x000dc000 sz=16384 vsz=16384 perm=-r-x name=rombank37
idx=56 addr=0x000e0000 off=0x000e0000 sz=16384 vsz=16384 perm=-r-x name=rombank38
idx=57 addr=0x000e4000 off=0x000e4000 sz=16384 vsz=16384 perm=-r-x name=rombank39
idx=58 addr=0x000e8000 off=0x000e8000 sz=16384 vsz=16384 perm=-r-x name=rombank3a
idx=59 addr=0x000ec000 off=0x000ec000 sz=16384 vsz=16384 perm=-r-x name=rombank3b
idx=60 addr=0x000f0000 off=0x000f0000 sz=16384 vsz=16384 perm=-r-x name=rombank3c
idx=61 addr=0x000f4000 off=0x000f4000 sz=16384 vsz=16384 perm=-r-x name=rombank3d
idx=62 addr=0x000f8000 off=0x000f8000 sz=16384 vsz=16384 perm=-r-x name=rombank3e
idx=63 addr=0x000fc000 off=0x000fc000 sz=16384 vsz=16384 perm=-r-x name=rombank3f

64 sections
file   POKEMON RED
type   SuperGameboy-Rom
card   ROM+MBC3+RAM+BAT
pic   false
has_va   true
root   
class   
lang   unknown
arch   gb
bits   8
machine   Gameboy
os   any
subsys   
endian   little
strip   false
static   false
linenum   false
lsyms   false
relocs   false
rpath
go r2, use debug. .... White hand was fainted

Miksy91

Quote from: cret on December 30, 2013, 04:03:25 PM
how much rombanks are in it?
it seems as if there were only 2. rabin2-output below:
your hack:

[Sections]
idx=00 addr=0x00000000 off=0x00000000 sz=16384 vsz=16384 perm=-r-x name=rombank00
idx=01 addr=0x00004000 off=0x00004000 sz=16384 vsz=16384 perm=-r-x name=rombank01

2 sections
file   POKEMON_GLDAAUE€
type   SuperGameboy-Rom
card   ROM+MBC5+RAM
pic   false
has_va   true
root   
class   
lang   unknown
arch   gb
bits   8
machine   Gameboy
os   any
subsys   
endian   little
strip   false
static   false
linenum   false
lsyms   false
relocs   false
rpath
It may have something to do with the emulating system you're using, dunno.
When I tested it with VBA, it shows the the MBC being MBC5 and rom size as 4MB. And since no freezing occurs in the game, using all the other rom banks works just fine in the game.
I have no idea why he wanted to expand the size from 2MB since there was already way more than enough space to work with for a small project though.
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

cret

rabin2 is not an emulator, it's a tool for binary-analysis. i guess this happens because he didn't specify the rom-size inside the rom.
go r2, use debug. .... White hand was fainted

Chippy2000

OK Miksy, I expanded it for a future update since most games are full and just in case (You can never be too careful ;) ). I'm gonna have to re-implement some un-used and never implemented things. What are the things you ask, well here they are -

*The Skateboard (An item that could let you go UP ledges. It's in the coding as un-finished. So I'm looking for people to add it for me since I have NO idea how)
*Entei event that lets you battle Entei (Need someone to add an event and flag for it. I was thinking about putting Entei in the Burned Tower?)
*The unused Memory Game's flag and event (Like with the Entei Event, needs to be assigned to the Kanto and Johto game corners)

As for ROMBanks, I'm only a weak ROM Hacker and not good with Hexes. The only thing I can do is re-activate the Safari Zone in Fuschia City (Which I've done in this ROM hack, just need to add the godly update~) so I cannot do well with that stuff.

Oh and just to note you can transfer saves to new versions by re-naming the save to the new version's name and clicking load, then type the file name for your save. Try it and see if it works ;)

January 07, 2014, 12:27:11 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: cret on January 06, 2014, 08:11:46 PM
rabin2 is not an emulator, it's a tool for binary-analysis. i guess this happens because he didn't specify the rom-size inside the rom.

Oh, I didn't mention the ROM size? I can't put the data for the specification of it in the ROM, but next update I'll put that inside the readme if you really need me to put it.

And could you give me a full specification of the ROMBanks since I'm not a wizard at code? I'll make a separate readme with the ROMBanks and stuff like that. Like a Pros section XD I'm only intermediate.

I used GoldTweak for the ROM Expansion btw.
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

cret

http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf page 11 and 12

maybe it's all about, that gamefreak ignores nintendos specs for gameboy
go r2, use debug. .... White hand was fainted

Chippy2000

Hmm I looked up on the PDF and it seems like I found out about my ROM's data.
So my ROM type was 1A or 1B?
I looked up the ROMBanks. So 2MB is 128 ROMBanks. I doubled the memory so the  NO. of ROMBanks should be 256, right?

Thanks for the link, cret.
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

Miksy91

Well first of all, you can't even make any use of the additional 2 Megabytes (or 128 rom banks) unless you write some of your own code there.
I'm personally making a major hack of Pokemon Silver and should have more than enough space to work with, even with the original 2MB since I'd say that around ~30, or more, rom banks are unused.

As for what comes to the things you're needing help with, you could implement all of them easily once you understand:
1) How to use hex editors,
2) How to work with data structures, and
3) How to program simple events

Okay, I personally didn't remember GoldTweak had that feature - I haven't had that tool in my computer in ages... Anyway, you could look for all kinds of tutorials in Skeetendo Inc. And you should also search for my video tutorials in Youtube (I have the same nickname there as here). I have covered a plenty of stuff there such as "how maps work", how to script properly, and I have also given some tips on Gameboy asm.
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

cret

at the moment rabin2 shows this cardtype:
Quote
card   ROM+MBC5+RAM
sorry, this is a bug, i'll fix it soon.

but let's look at 0x148:


- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000148  0703 0133 004b 682d f5c5 d5e5 f0a0 e607  ...3.Kh-........
0x00000158  5f16 0021 7001 1919 2a66 6f11 6801 d5e9  _..!p...*fo.h...
0x00000168  cdfa 1ee1 d1c1 f1d9 8001 f401 b002 c402  ................
0x00000178  5502 7802 8001 8001 219d ff34 f004 47f0  U.x.....!..4..G.
0x00000188  e388 e0e3 f004 47f0 e498 e0e4 f09f ea55  ......G........U
0x00000198  d1f0 d1e0 43f0 d2e0 42f0 d4e0 4af0 d3e0  ....C...B...J...
0x000001a8  4bcd 5814 3814 cddf 0b38 0fcd bb14 cdd0  K.X.8....8......
0x000001b8  15cd 7915 cd2b 16cd 4216 f0da a720 03cd  ..y..+..B.... ..
0x000001c8  80ff afea eace fae8 cea7 2804 3dea e8ce  ..........(.=...
0x000001d8  fae9 cea7 2804 3dea e9ce cde6 083e 3ad7  ....(.=......>:.
0x000001e8  cd5c 40fa 55d1 d7f0 9ae0 e5c9 f09f ea55  .\@.U..........U
0x000001f8  d1f0 d1e0 43f0 d2e0 42cd 3e02 3809 cdbb  ....C...B.>.8...
0x00000208  14cd d015 cd80 fff0 c8b7 2805 4ffa 00c7  ..........(.O...
0x00000218  e2af eaea cef0 0f47 afe0 0f3e 02e0 ff78  .......G...>...x
0x00000228  e608 f602 e00f fb3e 3ad7 cd5c 40fa 55d1  .......>:..\@.U.
0x00000238  d73e 1fe0 ffc9 f0e8 a7c2 e30b fa43 cfe0  .>...........C..



0x07 ? this is strange, what does this mean, is there any document about this romsize-value?
go r2, use debug. .... White hand was fainted

Chippy2000

Miksy, if I can restore the Safari Zone COMPLETELY (Add wild Pokemon), I defiantly know how maps work XD

Oh and Cret, that may be a side effect form restoring the Safari Zone, or the ROM expansion. I think the ROM type is 1A or 1B?
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

cret

yep, that's right, it's 1b.
the mbc is specified at 0x147
the size is specified at 0x148 (0x07 is to large for the normal gameboy)


I plan to flash my own cardrigdes, not for profit, but for fun. It might be possible to use your rom-expansion, but for this i'll need a new kind of mbc. I think this can be done : http://gbdev.gg8.se/forums/viewtopic.php?id=88 <--this is awesom
go r2, use debug. .... White hand was fainted

Miksy91

Well, adding wild pokemon requires really nothing more than writing a new entry in the "kanto - wild pokemon" table - it has really nothing to do with the map specifics handled by the map's Primary and Secondary headers.

Anyway, making a new entry in the wild pokemon table is fairly simple once you know how to repoint and write new stuff with a hex editor.
Pokemon Dark Energy is a rom hack based on Pokemon Silver. Like most pokemon hacks, it retains the pokemon stylish gameplay but has plenty of elements from other RPGs as well. You'd better check it out!

cret

chippy, it seems like as if your not using this expansion:
i've opened your rom with radare2:

r2 Pokemon\ Gold\ Beta\ Alpha\ REVIVAL\ 1.3.GB -n

then I seeked to 0x1fffb0:

[0x00000000]> s 0x1fffb0

and looked at your rom via px:

[0x001fffb0]> px
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x001fffb0  d4ae fefe b13e 37e1 8582 fefe fefe fefe  .....>7.........
0x001fffc0  99fe fefe fefe fefe fefe fefe fefe fefe  ................
0x001fffd0  fefe fefe fefe fefe fefe fefe fefe fefe  ................
0x001fffe0  fefe fefe fefe fefe fefe fefe fefe fefe  ................
0x001ffff0  fefe fefe fefe fefe fefe fefe fefe 5525  ..............U%
0x00200000  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200010  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200020  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200030  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200040  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200050  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200060  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200070  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200080  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x00200090  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x002000a0  0000 0000 0000 0000 0000 0000 0000 0000  ................

0x200000 bytes are 2MB, so I've checked if there is something else instead of 0x00 after 0x200000:

[0x001fffb0]> s 0x200000
[0x00200000]> /!x 00
hits: 0


Do you really need a 2MB-NOP-SLED at the end of your rom?  :happy:  ;) ;)

Well, i resized the rom to 2MB instead of 4MB:

[0x00200000]> s 0
[0x00000000]> oo+
File Pokemon Gold Beta Alpha REVIVAL 1.3.GB reopened in read-write mode
[0x00000000]> r 0x200000
[0x00000000]> i
file Pokemon Gold Beta Alpha REVIVAL 1.3.GB
fd 12
size 0x200000
mode rw-
block 0x100
uri Pokemon Gold Beta Alpha REVIVAL 1.3.GB
[0x00000000]> s 0x148
[0x00000148]> px 1
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000148  07                                       .               
[0x00000148]> wx 06
[0x00000148]> px 1
- offset -   0 1  2 3  4 5  6 7  8 9  A B  C D  E F  0123456789ABCDEF
0x00000148  06                                       .               
[0x00000148]> wci
[0x00000148]> quit

(wci is not needed here but it doesn't hurt)

testing it with gnuboy or vbam works pretty well  :laugh: :laugh:
go r2, use debug. .... White hand was fainted

Chippy2000

Well, I am TERRIBLE with hex editing. It's a bit too technical. TUTORIAL TIME XD
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

cret

Quote from: Chippy2000 on January 11, 2014, 07:04:40 AM
Well, I am TERRIBLE with hex editing. It's a bit too technical. TUTORIAL TIME XD

if you give a short try on r2, and don't know how to work with it, you can use the ?-command for help. It shows you most of the available command:
[command]? prints a more specific description for the command
go r2, use debug. .... White hand was fainted

Chippy2000

COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

cret

ok, i'll show you some stuff:
open r2 with your rom as an argument IN THE CMD
type aa to analyze all (sorry bankswitches arent done, i'm working on it)
type pd to print disassembled opcode
go r2, use debug. .... White hand was fainted

Chippy2000

Umm...I don't get ANYTHING you just said. Argument? Op Code? I kinda know these but...I'm not a pc wizard!

I'm an intermediate ROM Hacker and Intermediate PC User! Not a pro who knows all this crazy stuff who can code stuff and do all these magic things XD
COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...

Chippy2000

COO of The Chippy Cooperation (TCC)

I'm...just here...floating in space and stuff...