View Single Post
  #1    
Old February 23rd, 2008, 10:00 AM
The dude's Avatar
The dude
Metal is good
 
Join Date: May 2004
Gender:
Send a message via Windows Live Messenger to The dude
Mean Mr Mustad's Big Tileset Hack!!! Big tileset Hack! The one I use in Diamond!

Hi! This hack gives you up to 256 tiles for a tileset. Enjoy!

How it works:
It moves the previous tileset to VRAM 1 and since it's empty in gold you have all the 256 free
slots for your own tilesets.

How do I use the extra tiles?:
The Unused bytes at the header become the pointer to the second part of the tileset! Use 2 Tilesets!
The normal tileset pointer loads a tileset from tile 90 to FF and the second tileset from 88-7F (Unused 00s in tile header)
In the block data 00-7F are the Bottom Tiles and 80-FF are the top tiles!!!
In Palletes the 80-FF tiles are set as soon as the 00-7F tiles end!


Tileset Drawing Routine: [Loads the Tileset into VRAM 1]

3E 01 ld a,01 ; Set VRAM bank 1
E0 4F ld (FF00+4F),a ;vram bank ;
21 C3 D0 ld hl,D0C3 ; Get Normal Tileset Pointer from Ram
7E ld a,(hl) ;
23 inc hl ;
46 ld b,(hl) ;
6F ld l,a ;
60 ld h,b ;
FA C2 D0 ld a,(D0C2) ; Get Tileset Bank
11 00 90 ld de,9000 ; Load Tileset at 00:9000
CD F0 0A call 0AF0 ; Decompress Tileset
FA CE D0 ld a,(D0CE) ; Check for a Big Tileset
FE 00 cp 00 ;
28 11 jr z,(pc+h11) ; If not the jump to return
21 CD D0 ld hl,D0CD ; Get 2nd Tileset Pointer from Ram
7E ld a,(hl) ;
23 inc hl ;
46 ld b,(hl) ;
6F ld l,a ;
60 ld h,b ;
FA C2 D0 ld a,(D0C2) ; Get Normal Tileset Bank
11 00 88 ld de,8800 ; Load 2nd Tileset at 01:8800
CD F0 0A call 0AF0 ; Decompress 2nd Tileset
3E 00 ld a,00 ; Set VRAM bank 0
E0 4F ld (FF00+4F),a ;vram bank ;
C9 ret ;

Map Pallete Routine: [Sets the Map Palletes to VRAM 1]

C6 08 add a,08 ; Changes pallete from VRAM 0 to VRAM 1 by Adding 8 to the read pallete byte.
12 ld (de),a ; Huh? - The gameboy Colour uses palletes 0-7 for VRAM0 and 8-F for VRAM1
13 inc de ; 0 and 8 , 7 and F are the same palletes.
0D dec c ;
C9 ret ;

Animations Copy Routine: [Copies the Rooftops to VRAM1]

F5 push af ;
3E 01 ld a,01 ; Set VRAM1
E0 4F ld (FF00+4F),a ;vram bank ;
CD 03 04 Call 4003 ; Copy Tiles
AF xor a ; Set VRAM0
E0 4F ld (FF00+4F),a ;vram bank ;
F5 push af
C9 ret ;

Rooftops Copy Routine: [Copies the Rooftops to VRAM1]

F5 push af ;
3E 01 ld a,01 ; Set VRAM1
E0 4F ld (FF00+4F),a ;vram bank ;
CD 1A 31 Call 311A ; Copy Tiles
AF xor a ; Set VRAM0
E0 4F ld (FF00+4F),a ;vram bank ;
F5 push af
C9 ret ;


You can put these codes anywhere in the rom,
Here's where you call them from.

00:2944 (&H2944)

21 xx xx ld hl,(Pointer to Tileset Drawing Routine)
3E zz ld a,(Bank)
CF rst 08
00 nop
00 nop
00 nop
00 nop
00 nop
00 nop
00 nop
00 nop
00 nop

02:4046 and 02:4091 (&H8046 and &H8091)

CD xxxx call (Pointer to Pallete Routine,keep it in bank 02 - maybe at 7ff0!)

00:1635 (&H1635)

CD xxxx call (Pointer to Rooftops Copy Routine - Keep it in bank 3F!! )

07:401D (&H1C01D)

CD xxxx call (Pointer to Animations Copy Routine - Keep it in bank 07!! )


Q&A: questions from msn.

Q: Will my sprites dissapear? I'm looking at your text and there doesn't seem to be a fix
like in Hyperhax0r's.

A: No, They dont! - Why would they???

Q: Does this make the colours go wierd when you open the Pokegear and exit?

A: No, Why would it? I honestly have no Idea how hyper haxor got those bugs... Im stomped...

Q: How many tiles can I use?

A: 256.

Q: I heard you have 500 pokemon in your hack? is this true? and How can i have 500 in my hack?

A: Erm... With a CP command to choose pointers for Names,Pics,Stats,Palletes,Moves,etc. and find a way to set
a bit to choose pokmn sets. 2 sets of FFs... My old FAKE 255 pokemon hack can be found in Pokecommunity!
although you can only catch 255 pkmn - You can have up to 255 extra ones with a special table!

Q: What happend to powmon?

A: hmm... yeah! I'm going to release it again!




2007 Meanmrmustad
__________________
_________________________________________________

Last edited by Spherical Ice; April 15th, 2010 at 08:03 AM.
Reply With Quote