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 - Three Bowser lightning questions | |
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 19/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 02-08-05 01:55 AM Link | Quote
Hey!

I was thinking about BMF's pallette to ASM control patch. Is it true that the bowser lightning ASM only change pallette number 0x0? if so, are there any other effects that i should watch out for?

Finally, what is the SNES or PC rgb value needed to call the lightning subroutine in a regular level?

Any answers would be greatly appreciated!



(edited by Darkflight on 02-07-05 09:56 PM)
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

Current list of BURNING FURY >8( recipients:
- Yiffy Kitten (x2)
- Xkeeper
Level: 53

Posts: 640/1261
EXP: 1094149
For next: 62970

Since: 03-15-04
From: Blobaria
Special Move: Rising Meatloaf Backhand Combo

Since last post: 21 hours
Last activity: 1 hour
Posted on 02-08-05 03:23 PM Link | Quote
Calling the Bowser lightning routine in a normal level won't work, unfortunately...I haven't examined its code, so I don't know what would need to be done in order to make it work. My lightning is all custom code, made from scratch (aside from a random number routine I picked up somewhere), but it's kinda hard-wired into my hack at the moment...no separate custom block/palette ASM yet.
mikeyk

Koopa
Level: 18

Posts: 32/110
EXP: 25086
For next: 4811

Since: 07-17-04

Since last post: 45 days
Last activity: 44 days
Posted on 02-09-05 02:02 AM Link | Quote
Calling the Bowser lightning routine ($03DFCC) does work in a normal level provided that you do not use pallette 0x0, because this pallette gets overwritten by the hard coded Bowser pallette. Besides that limitation, the lightning routine works perfectly.
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 33/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 02-09-05 04:01 AM Link | Quote
Hey!

THANKYOU!!!!!

I'm thinking of using that in one level which is covered by a storm.

Thank you again!
UnsurpassedDarkness

Melon Bug
Level: 39

Posts: 432/746
EXP: 391555
For next: 13216

Since: 10-29-04
From: Λtlantıs.
All your base are belong to us.

Since last post: 12 days
Last activity: 2 days
Posted on 02-09-05 09:10 AM Link | Quote
So
BMF98567
BLACK HAS BUILT A SILLY DICE-MAZE!
GO!

Current list of BURNING FURY >8( recipients:
- Yiffy Kitten (x2)
- Xkeeper
Level: 53

Posts: 644/1261
EXP: 1094149
For next: 62970

Since: 03-15-04
From: Blobaria
Special Move: Rising Meatloaf Backhand Combo

Since last post: 21 hours
Last activity: 1 hour
Posted on 02-09-05 01:52 PM Link | Quote
Originally posted by mikeyk
Calling the Bowser lightning routine ($03DFCC) does work in a normal level provided that you do not use pallette 0x0, because this pallette gets overwritten by the hard coded Bowser pallette. Besides that limitation, the lightning routine works perfectly.
Oh...well, that's awesome. I could've sworn somebody had tried it before and it didn't work.
Cruel Justice

XD
Level: 55

Posts: 604/1384
EXP: 1253266
For next: 60923

Since: 03-20-04
From: Darkwoods Penetentiary

Since last post: 11 hours
Last activity: 7 hours
Posted on 02-09-05 04:34 PM Link | Quote
Okay, one thing that always confused me, where the heck do you put the code!?
Smallhacker

Green Birdo

SMW Hacking Moderator
Level: 68

Posts: 1279/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-09-05 05:27 PM Link | Quote
Originally posted by The_Raven
Okay, one thing that always confused me, where the heck do you put the code!?

Into a custom block. Program it (in ASM and assemble it, or write the ASM directly as Hex), save as a file, make a new block in Block Tool containing this file and import it to SMW.
Xkeeper 2.0

Hammer Brother
Local ModeratorAdministratorLocal Moderator
Again... :P
Level: 49

Posts: 210/1091
EXP: 880818
For next: 3065

Since: 03-15-04

Since last post: 5 hours
Last activity: 3 hours
Posted on 02-09-05 05:34 PM Link | Quote
Originally posted by BMF54123
Originally posted by mikeyk
Calling the Bowser lightning routine ($03DFCC) does work in a normal level provided that you do not use pallette 0x0, because this pallette gets overwritten by the hard coded Bowser pallette. Besides that limitation, the lightning routine works perfectly.
Oh...well, that's awesome. I could've sworn somebody had tried it before and it didn't work.


That was me, BMF.

Actually, it worked to an extent but it put all sprites on layer 2, screwed up item reserve and left glitch tiles on the top of the screen. :\
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 38/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 02-10-05 03:33 AM Link | Quote
Oh...

I guess the lightning routine wouldn't work then. I've been thinking of learning ASM so i could do stuff like this, but I don't know where to get stuff. I'll look around the forums for that.

Thanks for telling me the routine doesn't work though.
blackhole89

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

Posts: 544/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-10-05 07:05 PM Link | Quote
The bowser lightning routine, afaik, seems to attempt inserting the bowser ledge (that castle top thingy you stand on in the last battle) into the OAM, but somehow fails at it. That's what produces the glitches.
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: 3183/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-11-05 05:07 AM Link | Quote
It probably does so without checking to see if OAM is accessible first; if SNES works anything like just about every other system, you can only access it during certain periods while the screen is being redrawn. Otherwise it'll just cause bugs, and of course even if it does succeed it'll muck up everything.

...Perhaps a custom block that triggered this could just back up the OAM somewhere and restore it after the call? I'm pretty sure there's a mirror of it in RAM so timing shouldn't be a major problem, and if it is, the game must have a 'wait for vblank' function somewhere.
d4s

Panser
Level: 29

Posts: 121/325
EXP: 142151
For next: 5734

Since: 03-23-04

Since last post: 13 days
Last activity: 1 day
Posted on 02-11-05 04:57 PM Link | Quote
Originally posted by HyperHacker
It probably does so without checking to see if OAM is accessible first; if SNES works anything like just about every other system, you can only access it during certain periods while the screen is being redrawn. Otherwise it'll just cause bugs, and of course even if it does succeed it'll muck up everything.



while it is true that the vram can only be accessed during vblank on a real snes, this is not the reason its not working.
why?
because all emulators allow writes to vram outside vblank.
this is due to timing issues.

besides, the lightning routine wouldnt dare to manually upload to oam-ram.
no sane person would do that during gameplay(exception: if vblank is forced while loading a level, for example).
theres a buffer for the oam-table in ram wich gets dma'd to oam-ram every frame.
add a pointer that points to the last sprite entry in that table and every routine that feels like doing some sprites can write there and update the pointer afterwards.

some games double-buffer the oam table and alternate between them each frame.
this is also useful if you want to fake more than 128 sprites onscreen.
the tradeoff is sprite flickering, of course.
modifying the oam-table midframe using normal irqs or hdma is more elegant, but not always possible.(very few cycles executable during hblank and sprites mustnt overlap the scanline where the table is modified)



(edited by d4s on 02-11-05 01:07 PM)
(edited by d4s on 02-11-05 01:08 PM)
(edited by d4s on 02-11-05 01:09 PM)
Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Super Mario World hacking - Three Bowser lightning questions | |


ABII


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



Page rendered in 0.016 seconds.