The dude
Metal is good
- 87
- Posts
- 21
- Years
- Seen May 11, 2016
******************************************************************************
Some things i found
******************************************************************************
******************************************************************************
1. Pre-Game Hacking docs and data
2. Actual Gameplay Hacking Data
3.*******
4.*******
5.*******
etc...
******************************************************************************
1. Pre-Game Hacking docs and data
******************************************************************************
a) (ASM) A Titlescreen from scratch
b) Intro Offsets
b) Titlescreen Offsets
a) Titlescreen ASM TUT:
Let's write a titlescreen for Pokemon Gold!
Find some free space and insert your AGIXP Picture.
You can have 255 Tiles on screen.
So open up paint and draw your titlescren then insert it anywhere you like.
Find some blank space in the rom and input this code!
Turn Screen off:
3E 63 ld a,63
E0 40 ld (FF00+40),a ;lcd ctrl
Get Pallete:
06 0C ld b,0c
CD 85 35 Call 3583
Load GFX:
21 xxxx ld hl,(2byte GFX pointer)
11 yyyy ld de,(Tile Space - either 0088 or 0090)
3E zz ld a,(gfx bank)
Load Tile Arrangement:
21 xxxx ld hl,(2byte to tile arrangement - must be in same bank as code)
11 A0C3 ld de,C3A0
0E FE ld c,FE
Play Music:
21 xxxx 2byte Music byte
CD 98 3D Call 3D98
Turn Screen on:
3E E3 ld a,E3
E0 40 ld (FF00+40),a ;lcd ctrl
Wait for Keypress:
CD 31 0A Call 0a31
C9 Ret
Now you need to point to it!
At 6250 type in the 2byte pointer to the code! or type in a pointer to this code:
21 xxxx 3e zz CF C9 x=2byte pointer to code zz=bank - This way you can have the titlescreen in another bank!
b) Intro Offsets:
6241 - Call intro
624e - Skip intro sequence
624f - Call titlescreen
6513 - Credits Arrange
New Game/Option Screen:
359 - Pointer to mAIN mENU (7b86)
5b0a - start of Options screen
00=Continue 01=New game 02=Option 03=Mystery Gift
0x5a98 Border Placing
0x5ad5 - (02) Number of Options : 2
0x5ad6 - (01) 1st Option - > New Game
0x5ad7 - (02) 2nd Option - > Option
0x5ad8 - (FF) End of menu
Continue/New Game/Option Screen:
0x5ad9 - (03) Number of Options : 3
0x5ada - (00) 1st Option - > Continue
0x5adb - (01) 2st Option - > New Game
0x5adc - (02) 3rd Option - > Option
0x5add - (FF) End of menu
Continue/New Game/Option Screen/Mystery Gift Screen:
0x5ade - (04) Number of Options : 4
0x5adf - (00) 1st Option - > Continue
0x5ae0 - (01) 2st Option - > New Game
0x5ae1 - (02) 3rd Option - > Option
0x5ae2 - (03) 3rd Option - > Mystery Gift
0x5ae3 - (FF) End of menu
The Introduction with Prof.Oak:
0x5fc2 - 1st Oak Picture byte (0c)
0x5fDe - Pokemon Picture (B7 Marill)
0x60167 - 2nd Oak Picture byte (0c)
0x6037 - Hiro Picture at name choosing screen (0A)
0x60c0 - Hiro Picture at end of intro (0A)
0x6061 - Marril's Cry (B7) 0x605f(033e00) for no cry
Name Screen:
0x60d3 - Pointer to Default Name
0x60dc - Border size and Position
0x60e2 No. Of Names
0x609a - Name written! probably to rAm here!
61f7 - Something to do woth the little ppl icon_!
b9d1 = Rival!!!!
name from 606c - 60d8
How many letters can a name have (Hiro)
0x11c42 - 07 - 7 letters
0x60a5 - Which Little Sprite to Show 01-Hiro 02-Rival 03-Mom - 04 Box 1
0x6049 - Call "What's your name" Text
0x6049 - Call The Name List, Change to 000000 to Disable names.
Game start:
0x15319 - Where the game starts [Map Bank][Map][X][Y]
0x5cea - How much money to start with : 3000 in hex = 0bb8 0x5cea = b8 0x5cef = 0b
c) Titlescreen Offsets
62bf - 00 = static title screen!
0x62cc - Pointer to Top of the Titlescreen GFX 2b*
0x62c1 - Pointer to Bottom of Titlescreen GFX 2b*
0x630c - Hoho X,Y (Inverted)
0x62d7 - Hoho Pointer to GFX 2b*
0x98616 - Titlescreen Arrangement
0x6381 - Top of Titlescreen Pallet map pointer 2b
0x6387 - Top of Titlescreen Pallet Colour - (01 - BGP01)
0x638c - Middle of Titlescreen (Gold Version text) Pallet map pointer 2b
0x6392 - Middle of Titlescreen (Gold Version text) Pallet Colour (03 - BGP03)
0x6397 - Bottom of Titlescreen Pallet map pointer 2b
0x639d - Bottom of Titlescreen Pallet Colour - (04 - BGP04)
******************************************************************************
2. Actual Gameplay Hacking Data
******************************************************************************
a)Big Tileset Hack:
b)Misc - Cant be bothered to organize it so here is loads of data...
c)Personal Information! - My notes!!! Might be of help!
a)Big Tileset Hack:
This gives you 127 tiles instead of 48!
Instructions... Just Copy the Hex to their adresses.
How to use bigger tilesets - Remember that the tileset header has two unused bytes? 0000?
Now they are the two byte pointer to the extra tiles! the extra tiles get loaded at 01:8800(VRAM1)
So you can use them by inputing 80-FF in the block data!
Palettes: After the regular tileset pallete declaration start to enter the rest of the tiles! from 60-FF.
Offsets:
00:2944 - Call $DrwVram1, Call 2953
02:4046 - Call $UseVRAM1
02:4091 - Call $UseVRAM1
$DrwVram1 ( I normally put this at 00:0080 )
ld a,01 ; Set VRAM1
ld (ff00+4f),a ;
ld hl,d0c3 ; Get tileset pointer
ld a,(hl) ; Load Pointer into HL
inc hl
ld h,(hl)
ld l,a
ld de,8000 ; Put Tiles at 8000
ld a,(d0c2); Get tileset Bank
call 0AF0 - Load GFX
ld a,(d0ce) ; Check for Extra Tileset!
cp 00 ; If its blank then
jr z,end ; return!
ld hl,d0cd - Get extra tileset pointer
ld a,(hl) ; Load Pointer into HL
inc hl
ld h,(hl)
ld l,a
ld de,9000 ; Put extra Tiles at 9000
ld a,(d0c2); Get tileset Bank
call 0AF0 - Load GFX
$end:
ld a,00 ;Set Vram to 0 again
ld (ff00+4f),a
ret
$UseVRAM1 ( I normaly put this at 00:0070 )
add a,08 - Adds 8 to the pallete declaration so it loads the that tile at VRAM0 0-7 VRAM 1 8-F
ld (de),a - code from the the game, moved so the above instruction could be inserted!
dec c
inc de
ret
HEX: at 0080
at 2944
CD8000CD5329
C601E04F21C3D07E23666FFAC2D0110090CDF00AFACDD0FE00281321CDD07E23666FFAC2D0110088FAC2D0CDF00A3E00E04FC9
at 0070
C60813120DC9
at 8046
CD7000
at 8091
CD7000
b) Misc
Items:
Master ball starts at 0x68a0 next item is +seven bytes (0x68a7) and thereafter.
1st byte: Price of item (2 bytes)
3rd byte: The Effect - eg PP,HP heal , Evolution etc.
4th byte: (How Much ?P Ether/Potion etc.)
5th byte: Type of menu 80:(Use,Sel) xInf 00:(Normal Menu) x01
6th byte: Which Pocket - 01=Item Pocket 02=Key Items 03=Ball Pocker 04=TM/HM
7th byte: (1st/2nd) - 1st-Use Outside? 2nd - Use in battle? eg. 1st=A 2nd=B (AB)
Music:
Music Header:[80][xx][01][yy][02][zz][03][47][4C] xx=2b to first Channel, yy,zz Pointers to 2nd 3rd and 4th channels.
Music Codes:
[DA][xx][yy] - Tempo xxyy, the lower the faster e.g. Moderate [01][00] Fast [00][50] Slow [01][50]
[E5][xx] - Volume? 77=Normal 44=Softer
[DB][xx] - Instrument?
[E6][00][01] - ???
[E1][xx][yy] - Set it Hight for an erie sound, normal setting would be [10][12]
[EF][xx] - Pan
[D8][08][a7] -???
[FD][xx]- Loop xx times... 00 = infinite loop.
Notes:
[yz] y=note z=length - 1=C 3=D 5=E 6=F 8=G A=A C=B 2=C# 4=D# 6=F# 9=G# B=A#
[Dx] x=octave - 7=1 6=2 5=3 4=4 3=5 2=6 1=7 0=8
The Music Pointers are at 0xe906e
c) Personal Information!
These are my notes.. written for me..but u can have a look!
Diamond!(my gold hack):
ONLY DIAMOND!!! - Always blue code... 17bb0!
D400 - Saved Ram!!!
List boxes!!!
ld bc,0505
push bc
ld hl,Options here ! 4F and 57 tables!
call 1bb3
pop bc
ld a,b
"EA BA CE"ld (ceba),a
add a,07
ld cebc,a
add a,c
add a,04
call 1c62
ceca yes no
11000110
Delay
c=delay time
call 033c
Put the Pallete at c280
ld a,01 into ffe7
and call 038a
1!! 0f60ba
Quick pallete!
ld c,PALLETE (1b)
call 3583... load Pallet!
Call 03b1 - Fade Screen
04:6d07 - Items in start menu Calls
04:6994 - Start Menu Code
10:4000 - Pokedex Code
14:404F - Pokemon List
04:4430 - Pack
24:4B5E - Pokegear
------------------------------------------------
Call 2c21 - Get Map Back!
Load your pallete into c280 and call 032e
use 311a code to load your pallete
Call 1c41 = yes no box
cee0 - 1=yes 2=no
eg:
ld hl,xxxx get
ld de,c280 put
ld bc,000a no. 0f bytes
call 311a
call 032e
eg:
Intro Stuff:
2e34: credit intro stuff?
5585 sets the Hiro Sprite
5c25:
Call 5bf7 - ccd 5fall intro
Call 5fa5
Call 5d979 - Little man before map load
6241 - Call intro
41501 - Pokedex ... Invert Text Tiles!
414CD - Pokedex invert botton 2 tiles!
414e6 - Pokedex graphics pointer
142b4 - Hiro sprite pointer pointer
147de - 05:47de - Hiro Sprite Pointer!
3e348 - Placement of da little arrow
3e331 - Placement of Attacks
3e319 - FIGHt - Attacks Border
3e533 - Where Border for Atack PP goes
3e58f - Where "TYPE/" Goes
3e5bf - Where type goes
3e50d - Where PP p1 goes
3e598 - Where "/" Goes
3e5aa - Where PP p2 goes
3ee89 - Level up stats border
5ed7 - Something to do with Saving? Research Later
5ea9 - Continue Border placement
5ae4 - Call Viarable Borders Text
75e0 - Load Signposts!
21 xx xx 110088 3e yy cdf00a 3e38 210240 cfc9
x120190 - 1st Signpost!
75f8 = 3rd sp
1c2700 and 33c000 - Signpost GFX
hmm... Palette Code???
ld hl,c3a0
ld b,03 - height
ld c,0a - width
ld a,04 - pallete colour
jp 0f35
ld a,(d19e)
and 01
ret
cd 31 0a wait for a or b!
75f0
(3bp)0F8678 - battle Border wh
(0f:78bb) 3f8bb - Put your Pokemon at c41a
1c41 - Yes/no box y/X
5b9c - ret no time set txt
5b6b - Dont ya be showin da date!
f80 - Defines text codes!
ld hl,ram adreess eg c490
ld bc, width+height!
Call 0eef = Make Border!!!
f60 - Where in map text is put!!!
call 0ecf ... fill with 7F
f45 - Where in map Border Goes!!
f48-f49 - Textbox Width and height!!!
1221 - try to fix code f7
No start Menu Descriptor: 00s from 12c75 to 12c7b and 12c7f to 12c92
470? 3byte pointer to ???
05:4032
08:4021 - Change to ret for no time reset
21 a0 c3 ld hl,c3a0
3e 7e ld a,7e
08:4031 (083140) 20031 = Call ???? ... ChaNGE to ret for no reset time!
08:4031
5e76 calls it 1st i think
5c00 Call Load Font for New Game Options etc...
09:4e87 (09874e) - Call Moves list in battle
5bfd- CaLL BG FILL 0Ecf AT 1ST MENU ... HACKING POSSIBLILITYIS HERE!
diamond:
7bb0 - Black BG Code
5a88 - Something to do with continue
13526 - 043675 04:7536 Go to Fill BG with 7f called by battle
5ae3 ... Put Text into Menu!
907b2 - tyime menu!!!!
5c17 - Point to options!
6246 - go straight to titlescreen!, Errors here...
5faa - nop = Skip Time! , Pointer To Time,(here one can write a new intro! Call the new ntro and then a ret command!
906ad - Initial Hour
time at 244146 - 0x90641
407e 4080
3d33 - no animations!
Title screen
62e4 --- Put Stars at ???? ld de,8f80 11 80 8f
632f - 00 or 22 = static TSCREEN!
6380 ld hl,9800 Where BGP1 Put at 9000 in MAP
6386 ld a,3 -- Load Palette 3 into A
638e ld hl,98c5 bgp 3 goes here
ld bc,010a ???
ld a,03 ... Palete 3
633a do titlesreen music!
ASM CODE
Load GFX
ld hl,xx yy - pointer to GFX
ld de,8800 (8800) ram the pics start
ld a,zz --- zz = bank
call 0af0
in hex....
11xxyy1100883ezzcdf00a
da0 - here is da font loader loader hah!
F8840 border 2bpp byte!
About You Box
around 2526b
6316 - 11 xx xx load something maybe start x,y!
Diploma ASM
0xE0002
d5e : Call Font Pointer
31:7CD9 (31D97C) [C7CD9] - Pokemon Nickname when given asm
Powmon:
intro
5fbe:
ld (D004),a
ld a,01
ld (D11D),a
call 61DF
Code to Call Other Bank
3E bk LD A,bank
20 2byte LD HL,2byte
CF RST 08
C9 RET
f:7949 - battle scroll
ram cb34 - Rival's Name!
1b03d2
Some ASM CODEs
ASM Scripts:
Make Pallete??
21 xx xx ld hl,c280
ld bc,0088 ???
ld a ff???
call 314c ?????
Print Tiles(Up to 9f!!!)
21 xx xx : ld hl,place in map ram eg c4b9
11 xx xx : ld de,text
cd 74 0f : call 0f74
Place Palette_
21 xx xx : ld hl,(map placement)
01 yy yy : ld bc,(height - Width)
3E zz : ld a,(palette)
CD A6 63 : Call 63A6
Text Box_
21 xx xx : load hl,(text pointer 2byte)
CD 5E 0F : Call 0F5E
Music Play_
11 xx xx : ld de,(2byte Music)
CD 98 3D : Call 3D98
Load Compressed Graphics_
21 xx xx : ld hl,(2-byte pointer to GFX)
01 yy yy : ld bc,(Tile Area)
3E zz : ld a,(GFX bank)
CD A6 63 : Call 0AF0
216699 010a01 3e03cd a6 63
Fill BG with tile_
21 A0 C3 : LD HL,C3A0
3E XX : LD A,TILE 51
21 68 01 : LD BC 0168???
CALL 314C
ld hl,4349
ld a,23
rst 08
ret
Apply Tile Arrangement_
21 xx xx : ld hl,(2-byte pointer to tile arrangement table)
01 yy yy : ld bc,(map placement)
3E zz : ld a,(tile table bank)
CD A6 63 : Call 3128
Jump To and Come Back_
3E xx : LD A,(bank)
21 yyyy : LD HL,Pointer to ASM
CF : RST 08
C9 : RET
Bank 3E: (Use Jump Code above)
Load Graphics_
11 xx xx : ld de,(2-byte pointer to GFX)
21 yy yy : ld hl,(Tile Area)
01 xx yy : ld bc,(GFX bank / number of tiles to load)
C3 72 0E : jp 0E72
Load Mochronome Graphics_
11 xx xx : ld de,(2-byte pointer to GFX)
21 yy yy : ld hl,(Tile Area)
01 xx yy : ld bc,(GFX bank / number of tiles to load)
C3 8D 0E : jp 0E8D
my working outs:
5ad5 db 02
ld bc,ff02
ld a,24
ld hl,4641
rst 08
4cb1
39
Titlescreen
636e call Palletes
ld hl,4616ld de,9880
ld a,26
call
5179D - change to FF to FF to make new pokemon
Rom Header:
0x143 - Gameboy Colour Features 00=None 80=GBC C0=GBC Only
0x146 - Super Gameboy Features 00=none 03=SGB
Credits:
0x6513 - Credits Arrange
Intro Sequence:
0x624e - (00)=Skip intro sequence
0x937320 - Pointer to BG gFX
Title Screen:
stop ho-ho,use A & B buttons for TSCREEN
63f4 - 37 cd 31 0a c9
01:63f4 Call stars animation
Some things i found
******************************************************************************
******************************************************************************
1. Pre-Game Hacking docs and data
2. Actual Gameplay Hacking Data
3.*******
4.*******
5.*******
etc...
******************************************************************************
1. Pre-Game Hacking docs and data
******************************************************************************
a) (ASM) A Titlescreen from scratch
b) Intro Offsets
b) Titlescreen Offsets
a) Titlescreen ASM TUT:
Let's write a titlescreen for Pokemon Gold!
Find some free space and insert your AGIXP Picture.
You can have 255 Tiles on screen.
So open up paint and draw your titlescren then insert it anywhere you like.
Find some blank space in the rom and input this code!
Turn Screen off:
3E 63 ld a,63
E0 40 ld (FF00+40),a ;lcd ctrl
Get Pallete:
06 0C ld b,0c
CD 85 35 Call 3583
Load GFX:
21 xxxx ld hl,(2byte GFX pointer)
11 yyyy ld de,(Tile Space - either 0088 or 0090)
3E zz ld a,(gfx bank)
Load Tile Arrangement:
21 xxxx ld hl,(2byte to tile arrangement - must be in same bank as code)
11 A0C3 ld de,C3A0
0E FE ld c,FE
Play Music:
21 xxxx 2byte Music byte
CD 98 3D Call 3D98
Turn Screen on:
3E E3 ld a,E3
E0 40 ld (FF00+40),a ;lcd ctrl
Wait for Keypress:
CD 31 0A Call 0a31
C9 Ret
Now you need to point to it!
At 6250 type in the 2byte pointer to the code! or type in a pointer to this code:
21 xxxx 3e zz CF C9 x=2byte pointer to code zz=bank - This way you can have the titlescreen in another bank!
b) Intro Offsets:
6241 - Call intro
624e - Skip intro sequence
624f - Call titlescreen
6513 - Credits Arrange
New Game/Option Screen:
359 - Pointer to mAIN mENU (7b86)
5b0a - start of Options screen
00=Continue 01=New game 02=Option 03=Mystery Gift
0x5a98 Border Placing
0x5ad5 - (02) Number of Options : 2
0x5ad6 - (01) 1st Option - > New Game
0x5ad7 - (02) 2nd Option - > Option
0x5ad8 - (FF) End of menu
Continue/New Game/Option Screen:
0x5ad9 - (03) Number of Options : 3
0x5ada - (00) 1st Option - > Continue
0x5adb - (01) 2st Option - > New Game
0x5adc - (02) 3rd Option - > Option
0x5add - (FF) End of menu
Continue/New Game/Option Screen/Mystery Gift Screen:
0x5ade - (04) Number of Options : 4
0x5adf - (00) 1st Option - > Continue
0x5ae0 - (01) 2st Option - > New Game
0x5ae1 - (02) 3rd Option - > Option
0x5ae2 - (03) 3rd Option - > Mystery Gift
0x5ae3 - (FF) End of menu
The Introduction with Prof.Oak:
0x5fc2 - 1st Oak Picture byte (0c)
0x5fDe - Pokemon Picture (B7 Marill)
0x60167 - 2nd Oak Picture byte (0c)
0x6037 - Hiro Picture at name choosing screen (0A)
0x60c0 - Hiro Picture at end of intro (0A)
0x6061 - Marril's Cry (B7) 0x605f(033e00) for no cry
Name Screen:
0x60d3 - Pointer to Default Name
0x60dc - Border size and Position
0x60e2 No. Of Names
0x609a - Name written! probably to rAm here!
61f7 - Something to do woth the little ppl icon_!
b9d1 = Rival!!!!
name from 606c - 60d8
How many letters can a name have (Hiro)
0x11c42 - 07 - 7 letters
0x60a5 - Which Little Sprite to Show 01-Hiro 02-Rival 03-Mom - 04 Box 1
0x6049 - Call "What's your name" Text
0x6049 - Call The Name List, Change to 000000 to Disable names.
Game start:
0x15319 - Where the game starts [Map Bank][Map][X][Y]
0x5cea - How much money to start with : 3000 in hex = 0bb8 0x5cea = b8 0x5cef = 0b
c) Titlescreen Offsets
62bf - 00 = static title screen!
0x62cc - Pointer to Top of the Titlescreen GFX 2b*
0x62c1 - Pointer to Bottom of Titlescreen GFX 2b*
0x630c - Hoho X,Y (Inverted)
0x62d7 - Hoho Pointer to GFX 2b*
0x98616 - Titlescreen Arrangement
0x6381 - Top of Titlescreen Pallet map pointer 2b
0x6387 - Top of Titlescreen Pallet Colour - (01 - BGP01)
0x638c - Middle of Titlescreen (Gold Version text) Pallet map pointer 2b
0x6392 - Middle of Titlescreen (Gold Version text) Pallet Colour (03 - BGP03)
0x6397 - Bottom of Titlescreen Pallet map pointer 2b
0x639d - Bottom of Titlescreen Pallet Colour - (04 - BGP04)
******************************************************************************
2. Actual Gameplay Hacking Data
******************************************************************************
a)Big Tileset Hack:
b)Misc - Cant be bothered to organize it so here is loads of data...
c)Personal Information! - My notes!!! Might be of help!
a)Big Tileset Hack:
This gives you 127 tiles instead of 48!
Instructions... Just Copy the Hex to their adresses.
How to use bigger tilesets - Remember that the tileset header has two unused bytes? 0000?
Now they are the two byte pointer to the extra tiles! the extra tiles get loaded at 01:8800(VRAM1)
So you can use them by inputing 80-FF in the block data!
Palettes: After the regular tileset pallete declaration start to enter the rest of the tiles! from 60-FF.
Offsets:
00:2944 - Call $DrwVram1, Call 2953
02:4046 - Call $UseVRAM1
02:4091 - Call $UseVRAM1
$DrwVram1 ( I normally put this at 00:0080 )
ld a,01 ; Set VRAM1
ld (ff00+4f),a ;
ld hl,d0c3 ; Get tileset pointer
ld a,(hl) ; Load Pointer into HL
inc hl
ld h,(hl)
ld l,a
ld de,8000 ; Put Tiles at 8000
ld a,(d0c2); Get tileset Bank
call 0AF0 - Load GFX
ld a,(d0ce) ; Check for Extra Tileset!
cp 00 ; If its blank then
jr z,end ; return!
ld hl,d0cd - Get extra tileset pointer
ld a,(hl) ; Load Pointer into HL
inc hl
ld h,(hl)
ld l,a
ld de,9000 ; Put extra Tiles at 9000
ld a,(d0c2); Get tileset Bank
call 0AF0 - Load GFX
$end:
ld a,00 ;Set Vram to 0 again
ld (ff00+4f),a
ret
$UseVRAM1 ( I normaly put this at 00:0070 )
add a,08 - Adds 8 to the pallete declaration so it loads the that tile at VRAM0 0-7 VRAM 1 8-F
ld (de),a - code from the the game, moved so the above instruction could be inserted!
dec c
inc de
ret
HEX: at 0080
at 2944
CD8000CD5329
C601E04F21C3D07E23666FFAC2D0110090CDF00AFACDD0FE00281321CDD07E23666FFAC2D0110088FAC2D0CDF00A3E00E04FC9
at 0070
C60813120DC9
at 8046
CD7000
at 8091
CD7000
b) Misc
Items:
Master ball starts at 0x68a0 next item is +seven bytes (0x68a7) and thereafter.
1st byte: Price of item (2 bytes)
3rd byte: The Effect - eg PP,HP heal , Evolution etc.
4th byte: (How Much ?P Ether/Potion etc.)
5th byte: Type of menu 80:(Use,Sel) xInf 00:(Normal Menu) x01
6th byte: Which Pocket - 01=Item Pocket 02=Key Items 03=Ball Pocker 04=TM/HM
7th byte: (1st/2nd) - 1st-Use Outside? 2nd - Use in battle? eg. 1st=A 2nd=B (AB)
Music:
Music Header:[80][xx][01][yy][02][zz][03][47][4C] xx=2b to first Channel, yy,zz Pointers to 2nd 3rd and 4th channels.
Music Codes:
[DA][xx][yy] - Tempo xxyy, the lower the faster e.g. Moderate [01][00] Fast [00][50] Slow [01][50]
[E5][xx] - Volume? 77=Normal 44=Softer
[DB][xx] - Instrument?
[E6][00][01] - ???
[E1][xx][yy] - Set it Hight for an erie sound, normal setting would be [10][12]
[EF][xx] - Pan
[D8][08][a7] -???
[FD][xx]- Loop xx times... 00 = infinite loop.
Notes:
[yz] y=note z=length - 1=C 3=D 5=E 6=F 8=G A=A C=B 2=C# 4=D# 6=F# 9=G# B=A#
[Dx] x=octave - 7=1 6=2 5=3 4=4 3=5 2=6 1=7 0=8
The Music Pointers are at 0xe906e
c) Personal Information!
These are my notes.. written for me..but u can have a look!
Diamond!(my gold hack):
ONLY DIAMOND!!! - Always blue code... 17bb0!
D400 - Saved Ram!!!
List boxes!!!
ld bc,0505
push bc
ld hl,Options here ! 4F and 57 tables!
call 1bb3
pop bc
ld a,b
"EA BA CE"ld (ceba),a
add a,07
ld cebc,a
add a,c
add a,04
call 1c62
ceca yes no
11000110
Delay
c=delay time
call 033c
Put the Pallete at c280
ld a,01 into ffe7
and call 038a
1!! 0f60ba
Quick pallete!
ld c,PALLETE (1b)
call 3583... load Pallet!
Call 03b1 - Fade Screen
04:6d07 - Items in start menu Calls
04:6994 - Start Menu Code
10:4000 - Pokedex Code
14:404F - Pokemon List
04:4430 - Pack
24:4B5E - Pokegear
------------------------------------------------
Call 2c21 - Get Map Back!
Load your pallete into c280 and call 032e
use 311a code to load your pallete
Call 1c41 = yes no box
cee0 - 1=yes 2=no
eg:
ld hl,xxxx get
ld de,c280 put
ld bc,000a no. 0f bytes
call 311a
call 032e
eg:
Intro Stuff:
2e34: credit intro stuff?
5585 sets the Hiro Sprite
5c25:
Call 5bf7 - ccd 5fall intro
Call 5fa5
Call 5d979 - Little man before map load
6241 - Call intro
41501 - Pokedex ... Invert Text Tiles!
414CD - Pokedex invert botton 2 tiles!
414e6 - Pokedex graphics pointer
142b4 - Hiro sprite pointer pointer
147de - 05:47de - Hiro Sprite Pointer!
3e348 - Placement of da little arrow
3e331 - Placement of Attacks
3e319 - FIGHt - Attacks Border
3e533 - Where Border for Atack PP goes
3e58f - Where "TYPE/" Goes
3e5bf - Where type goes
3e50d - Where PP p1 goes
3e598 - Where "/" Goes
3e5aa - Where PP p2 goes
3ee89 - Level up stats border
5ed7 - Something to do with Saving? Research Later
5ea9 - Continue Border placement
5ae4 - Call Viarable Borders Text
75e0 - Load Signposts!
21 xx xx 110088 3e yy cdf00a 3e38 210240 cfc9
x120190 - 1st Signpost!
75f8 = 3rd sp
1c2700 and 33c000 - Signpost GFX
hmm... Palette Code???
ld hl,c3a0
ld b,03 - height
ld c,0a - width
ld a,04 - pallete colour
jp 0f35
ld a,(d19e)
and 01
ret
cd 31 0a wait for a or b!
75f0
(3bp)0F8678 - battle Border wh
(0f:78bb) 3f8bb - Put your Pokemon at c41a
1c41 - Yes/no box y/X
5b9c - ret no time set txt
5b6b - Dont ya be showin da date!
f80 - Defines text codes!
ld hl,ram adreess eg c490
ld bc, width+height!
Call 0eef = Make Border!!!
f60 - Where in map text is put!!!
call 0ecf ... fill with 7F
f45 - Where in map Border Goes!!
f48-f49 - Textbox Width and height!!!
1221 - try to fix code f7
No start Menu Descriptor: 00s from 12c75 to 12c7b and 12c7f to 12c92
470? 3byte pointer to ???
05:4032
08:4021 - Change to ret for no time reset
21 a0 c3 ld hl,c3a0
3e 7e ld a,7e
08:4031 (083140) 20031 = Call ???? ... ChaNGE to ret for no reset time!
08:4031
5e76 calls it 1st i think
5c00 Call Load Font for New Game Options etc...
09:4e87 (09874e) - Call Moves list in battle
5bfd- CaLL BG FILL 0Ecf AT 1ST MENU ... HACKING POSSIBLILITYIS HERE!
diamond:
7bb0 - Black BG Code
5a88 - Something to do with continue
13526 - 043675 04:7536 Go to Fill BG with 7f called by battle
5ae3 ... Put Text into Menu!
907b2 - tyime menu!!!!
5c17 - Point to options!
6246 - go straight to titlescreen!, Errors here...
5faa - nop = Skip Time! , Pointer To Time,(here one can write a new intro! Call the new ntro and then a ret command!
906ad - Initial Hour
time at 244146 - 0x90641
407e 4080
3d33 - no animations!
Title screen
62e4 --- Put Stars at ???? ld de,8f80 11 80 8f
632f - 00 or 22 = static TSCREEN!
6380 ld hl,9800 Where BGP1 Put at 9000 in MAP
6386 ld a,3 -- Load Palette 3 into A
638e ld hl,98c5 bgp 3 goes here
ld bc,010a ???
ld a,03 ... Palete 3
633a do titlesreen music!
ASM CODE
Load GFX
ld hl,xx yy - pointer to GFX
ld de,8800 (8800) ram the pics start
ld a,zz --- zz = bank
call 0af0
in hex....
11xxyy1100883ezzcdf00a
da0 - here is da font loader loader hah!
F8840 border 2bpp byte!
About You Box
around 2526b
6316 - 11 xx xx load something maybe start x,y!
Diploma ASM
0xE0002
d5e : Call Font Pointer
31:7CD9 (31D97C) [C7CD9] - Pokemon Nickname when given asm
Powmon:
intro
5fbe:
ld (D004),a
ld a,01
ld (D11D),a
call 61DF
Code to Call Other Bank
3E bk LD A,bank
20 2byte LD HL,2byte
CF RST 08
C9 RET
f:7949 - battle scroll
ram cb34 - Rival's Name!
1b03d2
Some ASM CODEs
ASM Scripts:
Make Pallete??
21 xx xx ld hl,c280
ld bc,0088 ???
ld a ff???
call 314c ?????
Print Tiles(Up to 9f!!!)
21 xx xx : ld hl,place in map ram eg c4b9
11 xx xx : ld de,text
cd 74 0f : call 0f74
Place Palette_
21 xx xx : ld hl,(map placement)
01 yy yy : ld bc,(height - Width)
3E zz : ld a,(palette)
CD A6 63 : Call 63A6
Text Box_
21 xx xx : load hl,(text pointer 2byte)
CD 5E 0F : Call 0F5E
Music Play_
11 xx xx : ld de,(2byte Music)
CD 98 3D : Call 3D98
Load Compressed Graphics_
21 xx xx : ld hl,(2-byte pointer to GFX)
01 yy yy : ld bc,(Tile Area)
3E zz : ld a,(GFX bank)
CD A6 63 : Call 0AF0
216699 010a01 3e03cd a6 63
Fill BG with tile_
21 A0 C3 : LD HL,C3A0
3E XX : LD A,TILE 51
21 68 01 : LD BC 0168???
CALL 314C
ld hl,4349
ld a,23
rst 08
ret
Apply Tile Arrangement_
21 xx xx : ld hl,(2-byte pointer to tile arrangement table)
01 yy yy : ld bc,(map placement)
3E zz : ld a,(tile table bank)
CD A6 63 : Call 3128
Jump To and Come Back_
3E xx : LD A,(bank)
21 yyyy : LD HL,Pointer to ASM
CF : RST 08
C9 : RET
Bank 3E: (Use Jump Code above)
Load Graphics_
11 xx xx : ld de,(2-byte pointer to GFX)
21 yy yy : ld hl,(Tile Area)
01 xx yy : ld bc,(GFX bank / number of tiles to load)
C3 72 0E : jp 0E72
Load Mochronome Graphics_
11 xx xx : ld de,(2-byte pointer to GFX)
21 yy yy : ld hl,(Tile Area)
01 xx yy : ld bc,(GFX bank / number of tiles to load)
C3 8D 0E : jp 0E8D
my working outs:
5ad5 db 02
ld bc,ff02
ld a,24
ld hl,4641
rst 08
4cb1
39
Titlescreen
636e call Palletes
ld hl,4616ld de,9880
ld a,26
call
5179D - change to FF to FF to make new pokemon
Rom Header:
0x143 - Gameboy Colour Features 00=None 80=GBC C0=GBC Only
0x146 - Super Gameboy Features 00=none 03=SGB
Credits:
0x6513 - Credits Arrange
Intro Sequence:
0x624e - (00)=Skip intro sequence
0x937320 - Pointer to BG gFX
Title Screen:
stop ho-ho,use A & B buttons for TSCREEN
63f4 - 37 cd 31 0a c9
01:63f4 Call stars animation