Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Super Mario World hacking: labmaster | 3 guests
Acmlm's Board - I2 Archive - Super Mario World hacking - Custom Block request. | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1306/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 02-13-05 02:19 PM Link | Quote
I would try to do this myself, but I have absolutely no idea of how to copy data to the VRAM or get the MAP16 tile number from a location.

I need a custom block that checks the MAP16 blocks at the co-ordinates (0,0) to (3,0) (Layer 1). Then, it loads a graphics file like this:

o The graphics file to be loaded is decided by the MAP16 block. (Block 3 loads GFX File 3, block 87 loads ExGFX file 87.)
o The block at (0,0) decides which file to load into FG1, the block at (1,0) decides whch file to load into FG2, etc.
o If the file number is invalid (32 - 7F)*, it won't do anything to that graphics slot.

*) Yes, I know that 7F is valid, but who the heck would ever use it?

After that, it would change itself into the next MAP16 block.

If anyone could spare some time to do this block OR tell me how to do it, I would really appreciate it.
blackhole89

LOLSEALS
Moderator of ROM hacking
EmuNET IRC network admin
Head GM of TwilightRO
Level: 47

Posts: 549/971
EXP: 739208
For next: 26995

Since: 03-15-04
From: Dresden/Germany

Since last post: 14 hours
Last activity: 12 hours
Posted on 02-13-05 03:17 PM Link | Quote
I suggest an easier version of the stuff you mentioned above.

- Somewhere in the unused space of the ROM you have a level number -> GFX indices table editable with a hex editor or something else.
- Somewhere else in the unused ROM space you keep non-compressed (!) GFX data to be loaded into the VRAM.
- The block routine, when called, reads out the corresponding GFX indices and copies the corresponding GFX data into the VRAM.

It would be much easier to code because I know as much as nothing about the compression algorithm SMW uses on the graphics (and, I believe, only few people besides FuSoYa do). Besides, you would spare yourself having to abuse your level's top left corner.

If you agree with the above, I might try to code such a block for you. Otherwise it would be beyond my possibilites.
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1307/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 02-13-05 04:37 PM Link | Quote
That would probably work too... I would be really happy if you did that.

However...
There's one thing that I accually didn't think about, but it's neccesary.
It has to be able to switch graphics at least three times per level. Therefore, could you make the "table format" contain three graphics addresses/level (and make the blocks so that only a few bytes will be needed to change in the code in order to choose which one of the addresses to use)?

Just one question: Would the table be used with the current sub-level number or the number of the main level? (Current sub-level preferred.)

Also, thanks again.
blackhole89

LOLSEALS
Moderator of ROM hacking
EmuNET IRC network admin
Head GM of TwilightRO
Level: 47

Posts: 550/971
EXP: 739208
For next: 26995

Since: 03-15-04
From: Dresden/Germany

Since last post: 14 hours
Last activity: 12 hours
Posted on 02-13-05 09:30 PM Link | Quote
As for the last question, it will be the sub-level number. The thing with three graphics sets per level is possible, too.
Well, I'll try to make such a block, mainly because it could be also of use for my own hack...
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3260/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 02-14-05 02:12 AM Link | Quote
I've got a slightly better idea, for those who don't intend to use 3 different sets of graphics for every level: Make 3 tables instead. One block would load graphics as specified in the first table, another from the second, and so on. You could basically have as many different 'graphic replacement' tables as you wanted this way.

Or, you could hard-code the address into the block, and just have people copy and hex edit the block, like those gravity-changing ones release a while back. That way you don't need all these unused table entries if you only plan to use it a few times.

[edit] You know, this sort of thing would be a lot easier if the level data format was tweaked ever so slightly to allow an extra 'parameter' byte for custom blocks (make Map16 insertions have one more byte which can be specified by the user and gets loaded to a register/address in custom block code.) I'm talking to you, Fu.


(edited by HyperHacker on 02-13-05 10:15 PM)
FuSoYa
Defender of Relm
Level: 26

Posts: 152/255
EXP: 99529
For next: 2746

Since: 03-15-04
From: Moon

Since last post: 7 days
Last activity: 7 hours
Posted on 02-14-05 09:39 AM Link | Quote
Originally posted by HyperHacker
I'm talking to you, Fu.


Bug fixes only now, remember? Besides, creating a large table in the ROM to hold an extra value or two for all the FG Map16 tiles isn't too difficult.
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1308/2273
EXP: 2647223
For next: 81577

Since: 03-15-04
From: Söderhamn, Sweden

Since last post: 10 hours
Last activity: 9 hours
Posted on 02-14-05 10:57 AM Link | Quote
Originally posted by HyperHacker
Or, you could hard-code the address into the block, and just have people copy and hex edit the block, like those gravity-changing ones release a while back. That way you don't need all these unused table entries if you only plan to use it a few times.


Accually, that sounds like a pretty good idea... No wasting space on tables and easier to program...
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3287/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 02-14-05 06:37 PM Link | Quote
Originally posted by FuSoYa
Originally posted by HyperHacker
I'm talking to you, Fu.


Bug fixes only now, remember? Besides, creating a large table in the ROM to hold an extra value or two for all the FG Map16 tiles isn't too difficult.


There's an idea. But there must be some bug you could fix at the same time. Is 'FG Start Position' in Main/Midway Entrance supposed to have 2 00s and no 90?
FuSoYa
Defender of Relm
Level: 26

Posts: 153/255
EXP: 99529
For next: 2746

Since: 03-15-04
From: Moon

Since last post: 7 days
Last activity: 7 hours
Posted on 02-14-05 11:12 PM Link | Quote
The list comes right from the ROM, so yes, it's supposed to be that way.
Juggling Joker

Boomerang Brother
SMW Hacking Moderator
Yeah, JAMH is still being worked on.
Level: 48

Posts: 493/1033
EXP: 811447
For next: 12096

Since: 03-15-04
From: Wyoming

Since last post: 2 days
Last activity: 3 hours
Posted on 02-14-05 11:26 PM Link | Quote
I have plenty of litte bugfixes to suggest, I'll get right on that when I'm not at work.
cpubasic13
17 years old now. Time to buy some M rated games by myself!
Level: 54

Posts: 832/1346
EXP: 1206934
For next: 26936

Since: 03-15-04
From: Blame my parents, Eddy

Since last post: 2 days
Last activity: 1 day
Posted on 02-15-05 08:16 AM Link | Quote
Some bugfixes are for the sprites that have special things to them (Hammer Bros. throw rate is either fast or slow, depending on the x-coordinate and the Pitchin' Chuck throws 2, 3, 4, or 6 balls depending on the x-coordinate) so if you need some bugs, Fu, there are some (well, technically they are not bugs, but just some touchups...).

Well, what I was thinking was that there was a block in Blocktool that changes the palette to a certain level's palette when touched. All you would probably have to do is alter it to where you change it to load both palette and graphic set from that level. Just a thought, though, and I highly doubt it is possible...
FuSoYa
Defender of Relm
Level: 26

Posts: 154/255
EXP: 99529
For next: 2746

Since: 03-15-04
From: Moon

Since last post: 7 days
Last activity: 7 hours
Posted on 02-16-05 03:24 AM Link | Quote
Thanks, but as you said, those aren't bugs. Although if some real bugs turn up someday and a release becomes necessary, I'll probably include those.
Juggling Joker

Boomerang Brother
SMW Hacking Moderator
Yeah, JAMH is still being worked on.
Level: 48

Posts: 494/1033
EXP: 811447
For next: 12096

Since: 03-15-04
From: Wyoming

Since last post: 2 days
Last activity: 3 hours
Posted on 02-16-05 03:34 AM Link | Quote
Oh, one thing I thought of (this isn't a bug either, but I would love you forever if you implement it) is the ability to take off those annoying FGx, BG prefixes on the dropdown lists for the Super GFX Bypass. Ya know, like you did for the Objects and Enemy lists.
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 3321/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 02-17-05 06:25 AM Link | Quote
Originally posted by FuSoYa
The list comes right from the ROM, so yes, it's supposed to be that way.


Where is that list? I wouldn't mind being able to modify or expand it. Especially if I could find the routine that reads it. (I don't suppose by any chance LM gets the number of list entries from the ROM as well? )
FuSoYa
Defender of Relm
Level: 26

Posts: 156/255
EXP: 99529
For next: 2746

Since: 03-15-04
From: Moon

Since last post: 7 days
Last activity: 7 hours
Posted on 02-18-05 12:59 AM Link | Quote
JJ: You could use Shift-F4 in LM's main window to switch to the alternate bypass dialog where you type the numbers in.

HH: I don't recall offhand, but a quick search for "00 60 C0 00" in the ROM will probably take you right to it. I doubt there's a "number of list entries" value for LM to read... the game probably uses a bit mask and some bit shifting on a byte to get the index to use. Meaning if you want to expand the # of entries, you'll likely have to expand the settings as well to use them.
Juggling Joker

Boomerang Brother
SMW Hacking Moderator
Yeah, JAMH is still being worked on.
Level: 48

Posts: 496/1033
EXP: 811447
For next: 12096

Since: 03-15-04
From: Wyoming

Since last post: 2 days
Last activity: 3 hours
Posted on 02-18-05 03:31 AM Link | Quote
Hey, thanks Fu. I didn't even know that existed until now. This oughta speed things up for me.
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Custom Block request. | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.011 seconds.