Skeetendo

’Cause all games were better on the GBC

You are not logged in.

#51 2011-05-06 16:36:59

Tauwasser
Member
Registered: 2010-10-16
Post 131/452

Re: Tileset Header Editing

Don't do that. That's a lousy way of doing it.

Use LunarMagic to decompress and recompress it properly. That way, you will most likely not have to deal with extending your ROM or anything.
If you want to use the cheap method, at least do that properly as well: Instead of 0x1F written every 0x20 bytes, do the following:

  • Determine the size of your gfx data

  • For every 0x400 bytes, write 0xE3FF in front of it.

  • If you end up with some gfx data parts less than 400 bytes long, subtract one from it and add 0xE000

  • Write a single 0xFF byte after the data ends

Example: My gfx data is 0x857 bytes long:

I write 0xE3FF. I write 0x400 bytes of the gfx data (data bytes 0x0000 to 0x03FF). Write 0xE3FF. Write 0x400 bytes of gfx data (data bytes 0x0400 to 0x07FF). Now there are 0x057 bytes left. 0x057 - 0x0001 + 0xE000 = 0xE056. Write that into the rom followed by the last 0x57 bytes. Then write 0xFF. Done.

cYa,

Tauwasser

Last edited by Tauwasser (2011-05-06 16:37:30)

Offline

#52 2011-05-06 17:26:45

Miksy91
Member
Registered: 2010-10-16
Post 351/2,339

Re: Tileset Header Editing

Thanks for the help, I'll try LunarMagic and it's nice to know where bytes E3 FF came from anyways.

Last edited by Miksy91 (2011-05-07 05:01:41)

Offline

#53 2011-05-06 20:47:45

Luigi-San
Member
Registered: 2010-10-16
Post 30/129

Re: Tileset Header Editing

I think he meant Lunar Compress.

Offline

#54 2011-05-07 01:06:18

191/703

Re: Tileset Header Editing

Tauwasser wrote:

Don't do that. That's a lousy way of doing it.

This is true. I certainly wasn’t advocating it.

#55 2011-08-12 05:28:14

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 894/3,578

Re: Tileset Header Editing

You will notice that the tiles do not look correct, they are not properly aligned. Pressing the + or - keys will shift the graphics a little at the time, and you do this until they look properly aligned, and then repeat so that the colours look correct, but there is one extra row of pixels at the top.

I did post one, but I'm guessing it it lost somehow. I'll try to re-upload it.

Offline

#56 2011-08-12 11:54:19

songoku031230
Member
From: India
Registered: 2011-07-19
Post 13/27

Re: Tileset Header Editing

Nice tutorial about tileset header editing.it will be easier to understand if u have screen shots or a video of it.But it's still nice tutorial.i'll really try it.

Last edited by songoku031230 (2011-08-12 11:55:19)

Offline

#57 2011-08-17 07:37:27

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 915/3,578

Re: Tileset Header Editing

Well you have the right idea, but you don't need to move it over like that. The blank tile before the corner of the houses is part of the tileset, it is tile 0. But yeah, it looks like you have the right idea other than that. I'll upload the pic tomorrow after class. Sorry I've been busy the last couple of days so I haven't gotten it up yet.

Offline

#58 2011-08-17 19:45:07

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 917/3,578

Re: Tileset Header Editing

This will not allow you to insert larger tilesets, only to replace compressed ones with decompressed ones. To be able to insert larger tilesets, you would need to install a patch that enabled support for that.

Offline

#59 2011-08-17 21:37:38

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 918/3,578

Re: Tileset Header Editing

Adding additional tilesets is something I've never done, but I think Koolboyman has before.

All tilesets are the same image size in GS, but Crystal added some of the larger ones. So to make tileset 1 larger to add the new tiles from crystal would require a big tileset hack

Offline

#60 2011-08-18 16:18:45

Tauwasser
Member
Registered: 2010-10-16
Post 163/452

Re: Tileset Header Editing

For tileset extension, you could use my tileset extension patch.

Adding tilesets is easy, just repoint the tileset table and add to it. Should only be referenced around two times if not just one time.

cYa,

Tauwasser

Offline

#61 2011-08-18 17:51:12

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 921/3,578

Re: Tileset Header Editing

As a warning though, I'm not sure if Goldmap/Johtomap read the tileset table from the pointer or from a fixed position though, so the new tilesets *might* not show properly in the map editor. I think I remember Koolboyman mentioning this when he added some to bronze.

Offline

#62 2011-08-19 00:49:32

Tauwasser
Member
Registered: 2010-10-16
Post 164/452

Re: Tileset Header Editing

I'm actually not sure about either programs, but I do remember telling Lin about the way Crystal handles its tilesets, so there might be a good chance this works.
On the other hand, I think no map editor author ever bothered to implement the switchable palette 6 option in Pokémon Gold (which my patch above removes), so usefulness is clearly always in the eye of the beholder.

cYa,

Tauwasser

Offline

#63 2011-11-10 00:55:34

Munchulax
Member
From: Somewhere in Johto
Registered: 2011-08-10
Post 51/410

Re: Tileset Header Editing

Tauwasser wrote:

I'm actually not sure about either programs, but I do remember telling Lin about the way Crystal handles its tilesets, so there might be a good chance this works.

JohtoMap does not support both extended blocks or tilesets. 
GoldMap does support extended blocks, but not tilesets. 
MegaMap/ZeroMap supports both extended blocks and tilesets.

Also,
Since the list for Animation Data has not been posted yet, I figure I would post it.  The information came from Melash's Tileset Editor.

1E40 - Flowers and Water
4A40 - Flowers, Water, and Whirlpool
8E42 - No Animations (Used Indoors)
D640 - Water only (Used for S.S. Aqua Tileset)
0641 - Lava, not sure if there are other animations (Used in Gym Tileset)
2642 - Tower Animation (Sprout, Tin Tower)
DA41 - Two different water animations (One looks like Japanese water tile from Pokemon R/B) Used in Tileset 26 (Ice Path, Hall of Fame)
8E41 - Water (different from Outside tileset) and Waterfall animations (Tilesets 21 and 27)

Last edited by Munchulax (2011-11-10 00:59:26)


“To live is the rarest thing in the world. Most people exist, that is all.” ― Oscar Wilde

Offline

#64 2011-11-10 01:11:00

Tauwasser
Member
Registered: 2010-10-16
Post 217/452

Re: Tileset Header Editing

@401E: City w/o whirlpool (Water animation1)
40 91 2E 43 - WaterAnimation 9140
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 F2 44 - WaterPalette shift
00 00 A5 42 - Do nothing
00 00 88 43 - FlowerAnimation
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A6 42 - Counter inc AND 7
00 00 A2 42 - Restart Animation

@404A: City w/ whirlpool (Water animation 1)
40 91 2E 43 - WaterAnimation 9140
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 F2 44 - WaterPalette shift
00 00 A5 42 - Do nothing
00 00 88 43 - FlowerAnimation
9D 48 93 44 - Load counter-dependent ani from 489D (Whirlpool tl)
A1 48 93 44 - Load counter-dependent ani from 48A1 (Whirlpool tr)
A5 48 93 44 - Load counter-dependent ani from 48A5 (Whirlpool bl)
A9 48 93 44 - Load counter-dependent ani from 48A9 (Whirlpool br)
00 00 A5 42 - Do nothing
00 00 A6 42 - Counter inc AND 7
00 00 A2 42 - Restart Animation

@407E* Flower and WaterBeta
30 90 BD 44 - Data from 9030 to CE35
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
30 90 B1 44 - Data from CE35 to 9030
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 88 43 - FlowerAnimation
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A2 42 - Restart Animation

@40AA* Only Water Animation 2 9140
40 91 BD 44 - Data from 9140 to CE35
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
40 91 B1 44 - Data from CE35 to 9140
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A2 42 - Restart Animation

@40D6: Only Water Animation 1
40 91 2E 43 - WatrAnimation to 9140
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 F2 44 - WaterPalette shift
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A6 42 - Counter inc AND 7
00 00 A2 42 - Restart Animation

@4106: Only Lava Animation
00 00 06 44 - LavaAnimation2 to 9380
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 E7 43 - LavaAnimation1 to 95B0
00 00 A5 42 - Do nothing
00 00 A6 42 - Counter inc AND 7
00 00 A2 42 - Restart Animation

@4126* Waterfall and WaterBeta
30 95 BD 44 - Data from 9530 to CE35
35 CE 11 43 - WaterFallShift Data CE35
35 CE 11 43 - WaterFallShift Data CE35
30 95 B1 44 - Data from CE35 to 9530
30 90 BD 44 - Data from 9030 to CE35
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
30 90 B1 44 - Data from CE35 to 9030
30 95 BD 44 - Data from 9530 to CE35
35 CE 11 43 - WaterFallShift Data CE35
35 CE 11 43 - WaterFallShift Data CE35
30 95 B1 44 - Data from CE35 to 9530
00 00 A2 42 - Restart Animation

@4156* Waterfall and WaterBeta (slower)
40 95 BD 44 - Data from 9540 to CE35
35 CE 11 43 - WaterFallShift Data CE35
35 CE 11 43 - WaterFallShift Data CE35
40 95 B1 44 - Data from CE35 to 9540
00 00 A5 42 - Do nothing
30 90 BD 44 - Data from 9530 to CE35
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
30 90 B1 44 - Data from CE35 to 9030
00 00 A5 42 - Do nothing
40 95 BD 44 - Data from 9540 to CE35
35 CE 11 43 - WaterFallShift Data CE35
35 CE 11 43 - WaterFallShift Data CE35
40 95 B1 44 - Data from CE35 to 9540
00 00 A2 42 - Restart Animation

@418E: Cave Water 9140 Waterfall 9400
40 91 BD 44 - Data from 9140 to CE35
00 00 2D 45 - CaveLightPalette shift
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
00 00 2D 45 - CaveLightPalette shift
40 91 B1 44 - Data from CE35 to 9140
00 00 2D 45 - CaveLightPalette shift
00 00 F2 44 - WaterPalette shift
00 00 2D 45 - CaveLightPalette shift
00 94 BD 44 - Data from 9400 to CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
00 94 B1 44 - Data from CE35 to 9400
00 00 2D 45 - CaveLightPalette shift
00 00 A2 42 - Restart Animation

@41DA: Cave Water 9350 Waterfall 9310
50 93 BD 44 - Data from 9350 to CE35
00 00 2D 45 - CaveLightPalette shift
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
00 00 2D 45 - CaveLightPalette shift
50 93 B1 44 - Data from CE35 to 9350
00 00 2D 45 - CaveLightPalette shift
00 00 F2 44 - WaterPalette shift
00 00 2D 45 - CaveLightPalette shift
10 93 BD 44 - Data from 9310 to CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
35 CE 11 43 - WaterFallShift Data CE35
00 00 2D 45 - CaveLightPalette shift
10 93 B1 44 - Data from CE35 to 9310
00 00 2D 45 - CaveLightPalette shift
00 00 A2 42 - Restart Animation

@4226: Sprout Tower
75 45 60 44 - Load counter-dependent Ani2 from 4575
79 45 60 44 - Lade counter-dependent Ani2 from 4579
6D 45 60 44 - Load counter-dependent Ani2 from 456D
71 45 60 44 - Load counter-dependent Ani2 from 4571
65 45 60 44 - Load counter-dependent Ani2 from 4565
69 45 60 44 - Load counter-dependent Ani2 from 4569
5D 45 60 44 - Load counter-dependent Ani2 from 455D
61 45 60 44 - Load counter-dependent Ani2 from 4561
55 45 60 44 - Load counter-dependent Ani2 from 4555
59 45 60 44 - Load counter-dependent Ani2 from 4559
00 00 8E 44 - Counter inc
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A2 42 - Restart Animation

@4266* Only Wateranimation2 94F0
F0 94 BD 44 - Data from 94F0 to CE35
35 CE B0 42 - Counter inc AND 7; WaterShift Data CE35
F0 94 B1 44 - Data from CE35 to 94F0
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A2 42 - Restart Animation

@428E: No Animation
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A5 42 - Do nothing
00 00 A2 42 - Restart Animation

This should be the complete list. Offsets are German, but I think all intl. versions use the same.

EDIT: In case you don't know, this is in RB 0x3F.

cYa,

Tauwasser

Last edited by Tauwasser (2012-07-10 22:30:34)

Offline

#65 2011-11-10 03:10:44

Munchulax
Member
From: Somewhere in Johto
Registered: 2011-08-10
Post 52/410

Re: Tileset Header Editing

Wow.


“To live is the rarest thing in the world. Most people exist, that is all.” ― Oscar Wilde

Offline

#66 2011-11-13 02:10:12

tysonrss
Member
From: US, Ohio
Registered: 2011-08-27
Post 123/649

Re: Tileset Header Editing

Couldn't you just use AgiXp to insert tiles instead of using this method now?


Pokemon Blue DX is reborn!

Offline

#67 2011-11-13 04:37:25

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 1,024/3,578

Re: Tileset Header Editing

Yes, you can use Agixp instead of the method listed here for graphics, but this covers more than graphics, and since AgiXp doesn't run for some people, I'm still keeping this method up.

Offline

#68 2011-11-13 05:02:53

tysonrss
Member
From: US, Ohio
Registered: 2011-08-27
Post 126/649

Re: Tileset Header Editing

Could it also be used to insert new tiles without overwriting any?


Pokemon Blue DX is reborn!

Offline

#69 2011-11-13 07:29:28

Mateo
Member
From: The Sims 4
Registered: 2009-11-25
Post 1,027/3,578

Re: Tileset Header Editing

As in to add completely new tilesets? I mean, yeah that's doable. What you would have to do is repoint the table of tileset headers and add your new headers to the end. Since this explains the format of the headers, you could just fill out the pointers to point to wherever you added the new data. The downside to this is that Goldmap 1.6 won't load the new tilesets, because it loads headers from a fixed location- i.e. if you repoint the table, the game will read the new table but Goldmap will still load the old one. I don't know if Megamap or Johtomap have this same problem or not.

However an easy way around this is to use an older version of Goldmap that was still INI file based, and simply add entries for your new tilesets and edit maps in that one.

Offline

#70 2011-11-13 07:36:42

tysonrss
Member
From: US, Ohio
Registered: 2011-08-27
Post 127/649

Re: Tileset Header Editing

I see. I use GoldMap to edit the maps anyway and compare it to PikaMap since both function in the same manner. For certain maps.

I only use JohtoMap for events and changing the width and or height.

But nonetheless, thanks. I think I'm ready to tackle my project on with full throttle! I've learned a lot this week thanks to you guys.


Pokemon Blue DX is reborn!

Offline

#71 2011-11-15 04:56:14

tysonrss
Member
From: US, Ohio
Registered: 2011-08-27
Post 146/649

Re: Tileset Header Editing

005_professor.png

Good news everyone.

Found an easier way to repoint block data and collision data. Might go for tiles to.

Open up TSE, and look at the left column where the tiles are. For example, tileset 14 starts at 304E0. Well go there in the hex editor and go one byte before it. Click that first byte and hold it down draging the cursor to the offset of the collision data. Than copy that data to a free space undisturbed. Than copy the offset of the new space into the border box in TSE and click save.

Voila, you just repointed blocks of a tileset without barely straining your mind.

Last edited by tysonrss (2011-11-15 05:13:54)


Pokemon Blue DX is reborn!

Offline

#72 2012-06-06 17:05:00

Munchulax
Member
From: Somewhere in Johto
Registered: 2011-08-10
Post 138/410

Re: Tileset Header Editing

I believe I answered your question in the "Taking Advantage of Tauwasser's Tileset Extension Patch" thread: http://hax.iimarck.us/post/11127/#p11127

Last edited by Munchulax (2012-06-06 17:05:52)


“To live is the rarest thing in the world. Most people exist, that is all.” ― Oscar Wilde

Offline

Board footer

Powered by FluxBB