News:

11 March 2016 - Forum Rules

Main Menu

The Minucce Yard

Started by minucce, September 29, 2021, 10:55:18 PM

Previous topic - Next topic

minucce

Yes, I definitely like it! Like your other work, very nice job.

Not sure what surprise project you'll spring on us next, but I'm glad I could give you some closure.
(and give me another something to look forward to with my 1st playthroughs, eventually)

ShadowOne333

Awesome, thanks for the feedback!
I'll work on implementing the FastROM hack tomorrow then :)

I'll also attempt to trim the ROM to 3MB instead of 4MB, since there's nothing in that last megabyte. As for the header data for the ROM size, according to what I've read, is it the byte located at 0x0081D7 (or 0x007FD7 without header) in the ROM?

minucce

I checked Final Fantasy 6 (3MB HiROM).
- $80:FFD7 = $0C  (4MB).

Super CV4 Uncensored = $0C ($80:FFD7 or $7FD7 raw).

So I guess you just chop the last 1MB and you're done!

---------------

The Kirby report about Kracko rolling the eye in GB Vanilla seems incorrect; couldn't ever get it to happen (always just rumbles).


Which means I should look at Bugs Bunny 2 GB and see what effects are missing.

ShadowOne333

Indeed, it seems like it already has the header modified for the size, so all that was needed was trimming the last 1MB and it's working properly as a 3MB game :D

I have also already implemented FastROM into it, and seems to be working just fine from the couple of levels I played.
The very last thing I tried to do, was to prepare an optional patch to restore the Chain Whip sound from the Japanese release, but seems like the audio data is compressed somehow.

From the SC4ED source code, I could only find this related to sounds/music:

// music
for (unsigned i = 0; i < 0x23; i++) {
DWORD addr;
addr = 0x81 << 16 | *LPWORD(rom + SNESCore::snes2pc(region == 0 ? 0x81B610 : 0x81B5DA) + (i * 2));
addrList.push_back({ addr, numLevels });
}


I tried looking around, as I remember someone already doing it, and I found this:
https://www.romhacking.net/forum/index.php?topic=21867.msg409190#msg409190

However, that IPS patch seems to only work on more modern expanded ROMs by SC4ED (the ones that do have data above 3MB). I'll see what else I can find.

minucce

#124
https://github.com/minucce/workbox/raw/c651b0ef8b84fe464fdef549e6d04e5fc3381879/box7/ChainWhipSound.ips
(credit to bogaabogaa)


Source
https://github.com/minucce/workbox/raw/c651b0ef8b84fe464fdef549e6d04e5fc3381879/box7/chain_whip.7z


Summary
1) Add decompressed SPC data to ROM
2) Patch waveform envelope bytes courtesy of bogaabogaa

------------

Bugs Bunny 2 DX

1) Restore warp fade effect


2) Fix black flicker

3) ??

December 03, 2021, 10:32:36 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Original Bugs Bunny 2 game tries to target 20 fps when inside rooms. Experimental patch to limit gbc mode to 20 fps everywhere.
https://github.com/minucce/workbox/raw/ed56371498896d8b59cb106a4dd0deacd537b9ca/box9/dx_plus.ips

(I might make this a "plus" patch later on, as some may want the boosted 30fps)

vs

marc_max

Quote from: minucce on December 03, 2021, 08:47:41 PMBugs Bunny 2 DX

1) Restore warp fade effect


You might have already posted it here but I can't find it. Could you share the fade subroutine?
I'm working on a 32kb GB/C game and I'm trying to use the most optimized subroutines. I've done mine but I'd like to take a look at others as well :-) I've found others on the net, but they aim for soft per-frame transitions and code is too long.

minucce

#126
Bugs Bunny 2 DX is here
https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/tree/9beb86aa4ba2bfac87d21ff8d36b7b00ec28d74e/gbc_compatible/fade_screen

https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/9beb86aa4ba2bfac87d21ff8d36b7b00ec28d74e/gbc_compatible/fade_screen/main.txt


Short story:
There were 6-7 static bgp palettes and ~4 static obj ones. I pre-computed the tables (33%, 66%).

0% and 100% are sent using hacker's upgraded engine (black or white) - basically hard-coded spin loops.


This one is sent during h-blank time; normally it'd make sense during vblank but the engine is setup this way so I went with the flow.

Eas(-ier) version.

---------------------------------------------

And one for Kirby's Dream Land DX.
https://github.com/minucce-yard/Kirbys_Dream_Land_GB/tree/d92c16b7c4ccd5621753199604d4a64efc10e21a/dual_support/recolor_objects/screen_fade

https://github.com/minucce-yard/Kirbys_Dream_Land_GB/raw/d92c16b7c4ccd5621753199604d4a64efc10e21a/dual_support/recolor_objects/screen_fade/tables.txt


Short story:
This one drove me nuts (1st one). You might remember that there's 1 static palette for the whole game, but there's separate patches for LCD pink. And it can fade to black or white.

I didn't want to expand the rom to include the full tables so this is dynamic generated like snes games. And original hacker hard-coded all the colors (in asm) so I read the colors from vram (adds 1-2 frames but most don't care).

Dynamic code is pretty long.


The actual upload is done during vram per old engine.
https://github.com/minucce-yard/Kirbys_Dream_Land_GB/raw/d92c16b7c4ccd5621753199604d4a64efc10e21a/dual_support/recolor_objects/screen_fade/%40__fade.txt

KDLDX has dual mono / color support so you'll notice the branching.


There's also soft-patching color done for various rooms (Lolo, Credits, ??); that's just replacing affected colors per fade frame on-demand.

----------------------------------------

I'm not sure how many ways to do fading but I haven't needed to do a very tight one (fortunately only 2 with some room to spare). You're likely to keep running into more gb faders with your future colorizers. :-]
(which hasn't stopped you from releasing full quality builds!)

December 04, 2021, 10:07:32 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

I suppose for a small rom, you could rle pack the graphics and compress the palette data + code. Use the gbc wram 1-7 to your benefit.

marc_max

Quote from: minucce on December 04, 2021, 08:49:54 AMDynamic code is pretty long.
This response works. I'll stick to hardcoded fades then, seems to be the smallest way.
In a GBC colorization hack is totally different since there are no space limitations as you can always double the ROM size and hardcode all palettes there, which it's what I've done with Mega Man World 5 DX. Indeed, I'm storing all fades (including all white or all black) in different banks but same pointers and offsets, so I just need to select a bank depending on DMG palette registers.

Quote from: minucce on December 04, 2021, 08:49:54 AM(which hasn't stopped you from releasing full quality builds!)
Thank you! Let me add, you've been lately doing great contributions to GBC colorization hacks with your recent fixes :-)


Quote from: minucce on December 04, 2021, 08:49:54 AMI suppose for a small rom, you could rle pack the graphics and compress the palette data + code. Use the gbc wram 1-7 to your benefit.
Yeah, almost everything has been compressed using Mobile Golf's compression algorithm, which seems to give impressive results. The game is just 11.5kb at the moment, so I've got enough room for music, new levels and enemies!


Anyway, sorry for the little offtopic, keep up the good work!

minucce

At the Yard, nothing is really off-topic here; there are a surprising number of quiet readers.

Anything here is fair - makes the place more interesting to visit. :)

--------------------------------------------------------

Quote
Yeah, almost everything has been compressed using Mobile Golf's compression algorithm, which seems to give impressive results. The game is just 11.5kb at the moment, so I've got enough room for music, new levels and enemies!

Holy! That is amazing statistic. I heard that Phantasy Star Gaiden (GG) has a pretty efficient graphics algorithm (I think it was documented by the PS1 (SMS) team).

----------------------------------------------

Quote
This response works. I'll stick to hardcoded fades then, seems to be the smallest way.

My Kirby generator is $6b30-$6a17 = $119 asm bytes. (8 tables generated = $800 bytes)

(maybe not that big after all but it will eat up cycles if done on-demand; I do at it at boot because it's just 1 palette. I really don't want to hear complaints about making things noticeably slower = loading times, game lag).


I imagine you're going to have a lot of tables for something big like Mega Man World 5 DX. Having everything uncompressed though does make it easier for other hackers though to privately addendum your post-project.

---------------------------------------------------------------

Quote
Indeed, I'm storing all fades (including all white or all black) in different banks but same pointers and offsets, so I just need to select a bank depending on DMG palette registers.

Bugs Bunny 2 DX hacker did the same thing.


DKLDX hacker used wram 1-7. For any bank switch, places new code right afterward.

So it was like this all over the place:
3:D800 = ldh ($70), a
4:D802 = (new code)

I think same with ROM switches too. Drove me crazy trying to debug it for Goomba.

---------------------------------------------------------------

Quote
Thank you! Let me add, you've been lately doing great contributions to GBC colorization hacks with your recent fixes :-)

To be fair, I do small work. Stuff that others ignore and I can stay a blip at the edge of radar.


It took KDLDX hacker 2 weeks to make colorizer, which seems awfully fast. That would take me several years at best, I imagine because investing that amount of effort would turn me off.


And you work on a variety of larger, massive, time-consuming, higher-profile games. But the great stuff takes time; people seem to expect translations and colorizers released at the speed of "instant oatmeal".

(it's why I stopped participating with many non-rh projects even as a consultant, plus other things here and there. Too many greedy expectations)

-------------------------------

Something I eventually want to do is give small reviews for the site. Even for my own stuff later as a post-mortem when they're fresh out of my system.


Right! Back to whatever makes one happy!

ShadowOne333

Quote from: minucce on December 03, 2021, 08:47:41 PM
https://github.com/minucce/workbox/raw/c651b0ef8b84fe464fdef549e6d04e5fc3381879/box7/ChainWhipSound.ips
(credit to bogaabogaa)


Source
https://github.com/minucce/workbox/raw/c651b0ef8b84fe464fdef549e6d04e5fc3381879/box7/chain_whip.7z


Summary
1) Add decompressed SPC data to ROM
2) Patch waveform envelope bytes courtesy of bogaabogaa

Oh you figured out the pointer!
That's where I left off yesterday, I was trying to find which pointer and where the SC4ED editor was decompressing the data, so that it could be manually imported into the 3MB uncensored ROM.

Neat stuff!
The patch you provided doesn't work tho, it's the plain Chain Whip IPS by Bogaa.
I downloaded the main.txt you uploaded, compiled the ROM with asar...
And it still had an awful SPC bug, where all the music was playing with some screeching instruments (almost ear piercing).

I did some digging and found out the issue:

org $df8000

.whip_sound_data:
dw $b803 ; end ptr
db $80 ; uncompressed flag


The end pointer was wrong, it's supposed to be this:


org $df8000

.whip_sound_data:
dw $3803 ; end ptr
db $80 ; uncompressed flag


With that, I have also made an optional patch that restores the original US SFX for the chain whip, for those that want it.
I sent the update already, it's awaiting approval, but all in all, thank you yet again for all the help with this! I have also added you to the credits for Uncensored :)

minucce

#130
Quote
The patch you provided doesn't work tho, it's the plain Chain Whip IPS by Bogaa.
..
And it still had an awful SPC bug, where all the music was playing with some screeching instruments (almost ear piercing).

Wow. My hearing must be off or I'm confusing all the ROMs. For some reason, I was thinking the music was passable. (Laugh!)


And people don't believe me when I claim how many bugs I end up creating.

Thanks for the correction!

December 04, 2021, 04:03:20 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

You might want to credit Vitor also for the FastRom.. :)

December 04, 2021, 09:04:49 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

My luck ran out for Ys 1 again.






This will definitely take some work. It requires maintaining 2 hud fonts (normal, indoor npc) and possibly 2 alphabet fonts also.

At this point, I may just force switch to MMC3 and fix the Sprite 0 hud tile pixel glitch. Plus expand the rom if needed.


I will update for Datchy compatibility plus other new fixes (minus the black burn). Guess now we know why they left the portraits that way.

December 04, 2021, 11:33:31 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

For those who don't track the RHDN queue.


Bugs Bunny 2 DX Repair - Release 2
https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/Service_Repair_DX/Bugs%20Bunny%20Crazy%20Castle%202%20DX%20-%20Fluffy%20Repair%20Service%202.zip


Ys Repair - Release 11
https://github.com/minucce-yard/Ys_NES/raw/Service_Repair/Ys%20NES%20-%20Fluffy%20Repair%20Service%20-%2011.zip


-----------------------------------------------

I did not realize that SomeOldGuy made a lot of title edits also, for those who requested the old Ys style.



Nice! Patch included with Release 11 and credit attached. :thumbsup:


Though I didn't notice this tiny pixel error in Datchy's version and original artwork.
(credit to Fray)




Which also didn't occur to me to include in the regular patches. Next time.

December 05, 2021, 05:23:31 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

There is 1 other possible Ys idea - manually flag the indoor portraits. Do a color swap at Sprite 0 hud line, which would be timing risky - there's already too much to swap at h-blank.

And this requires opening up more room in rom. What a fiend! I'll keep poking at it in the meantime.

SomeOldGuy

Quote
Though I didn't notice this tiny pixel error in Datchy's version and original artwork.
(caught by SomeOldGuy)
I think credit for this goes to Frey.  I'm pretty sure he was the first to fix the earlobe pixel.   ;D 
Good times create weak men, weak men create hard times.  Hard times create strong men, strong men create good times...

minucce

Quote from: Fray
Meanwhile, I done this for the title screen, I only drew new eyes and changed color on one pixel on her ear:

Page 2. :thumbsup:

ShadowOne333

Quote from: minucce on December 04, 2021, 03:57:27 PM
Wow. My hearing must be off or I'm confusing all the ROMs. For some reason, I was thinking the music was passable. (Laugh!)


And people don't believe me when I claim how many bugs I end up creating.

Thanks for the correction!

December 04, 2021, 04:03:20 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

You might want to credit Vitor also for the FastRom.. :)

No need to thank! It was a nice exercise for me to find out what was going on, and also to play around with Asar as well (which I should start using for certain projects :P)

Thanks for the reminder about adding Vitor to the credits as well, I added him, as well as RedGuy for SC4ED and also bogaa for the original Chain Whip SFX patch :D

minucce

Castlevania Adventure (GB/GBC) has 2 odd bugs

1) Random sprite / garbage flicker is caused by VBlank uploading OAM while sprites are still being written to buffer. So use dma or safety flag to avoid hazard copies.


2) The slowdown. Some poor coder sabotaged the engine.
- Original GB wastes lots of VBlank + 2 scanlines doing nothing. I suppose it's to ("solve") some vram loading corruption (if wait is removed). But not using the timing blocking, it actually moves a lot decent faster and is playable. Check around 0:0af0.

- GBC is also sluggish, which is more suspicious. Around 0:03bc, it waits until LY = $40. 64+ scanlines eaten just to artifically slowdown the GBC turbo mode. Remove that and it does run 60 fps largely. Likely too fast unless engine and animations are re-timed, which admittedly is an interesting idea.


Same can be said for Bugs Bunny 2 DX also, adjusting the internal motions to take advantage of 2x speed (less appearance of rigid frame stutter motion).


Just posting this as I may/not be the one to do any of this. Staying busy with other projects.


Actually I helped someone add unlimited sprite + cpu overclocking + fast bootroms to a well-known GBC emulator. Which got me wondering. I want to add some blue color to King Dedede, but the 10-limit sprite flickering from the overlays would be terribly awful.

But with unlimited sprites, I'm thinking of making a special emulator-only patch. Which would be tempting for a few other existing colorizers also. But it's a fantasy until someone actually cranks the work.

Adding a level select option to KDL config mode isn't a stretch though.

kalita-kan

Thank you @minucce! for helping me lots with Castlevania Adventure (GB). It's not finished but definitely more playable.


Bugs fixed:
+ + random scanline flicker

That 1st one is brief enemy flicker from wrong position initialization
That 2nd one is random sprite flicker from interrupts (mentioned by @minucce above post)
And a 3rd one not shown is some brief pixel corruption when scrolling


Speed improved:


Gameplay is partly sped up also as a side-effect. It still can slog down though.


Wip source code (minucce's framework):
https://github.com/kalita-kan-files/kalita-kan-files/raw/0da6c31432e802b06b66829bfb3eb2b8c479b26b/fixes.7z

And test file:
https://github.com/kalita-kan-files/kalita-kan-files/raw/0da6c31432e802b06b66829bfb3eb2b8c479b26b/fixes.ips
-- "Castlevania - The Adventure (USA).gb"
-- Using CVA Quick Fix will make player walk ultra-fast, so that's bad.


Todo (help):
? Find easy ways to improve framerate

? I played using overclock emulator but everything moves really fast. Clock, enemies, player. Twitchy sections become really hard. So I hope to make a special patch that adjusts for 60fps play.

? Maybe add soft reset feature. I suppose this just means checking joypad at right time and restarting.

? Add more jump time or something for those awful pixel-perfect platformer areas (too many!)


Hopefully we can work together again on this or something else! Thanks! :angel:
(and I hope you don't mind if I uhm .. use your thread sometimes :-*)

Pethronos

Hi again Minucce. Its possible your inbox is full. I pmed you to report an issue with the new Datchy YS patches. Plus versions doesn't modify scroll as intended. Please check it!  :beer:

ShadowOne333

A bit past the new year, but wanted to wish you a really good year, Minucce!
I'm really grateful for all the help you provided to the projects I had in store.
Here's hoping for a 2022 full of great projects and all the best wishes to you and your goals!
And to everyone's projects that you're helping with of course :P

(As the person above mentions, I also tried PM'ing you to wish you a great year, but I couldn't for some reason).

The Beaky Buccaneer

Quote from: minucce on December 15, 2021, 12:31:04 AM
Which got me wondering. I want to add some blue color to King Dedede, but the 10-limit sprite flickering from the overlays would be terribly awful.

But with unlimited sprites, I'm thinking of making a special emulator-only patch. Which would be tempting for a few other existing colorizers also. But it's a fantasy until someone actually cranks the work.
I'm a little bit late on this one, but funnily enough, I mentioned something about that in my review of the original Kirby's Dream Land DX patch. :) I'm not a hardware person though (I came here to contribute reviews of projects that I enjoy), so I have no idea if that's a pipe-dream or not.

Anyway, I'd just like to say thanks for your excellent work and for this always-interesting thread, and to chime in with the (slightly belated) New Year's good wishes, too - Happy New Year!

verme

Quote from: kalita-kan on December 16, 2021, 10:23:44 PM
Thank you @minucce! for helping me lots with Castlevania Adventure (GB). It's not finished but definitely more playable.


Bugs fixed:
+ + random scanline flicker

That 1st one is brief enemy flicker from wrong position initialization
That 2nd one is random sprite flicker from interrupts (mentioned by @minucce above post)
And a 3rd one not shown is some brief pixel corruption when scrolling


Speed improved:


Gameplay is partly sped up also as a side-effect. It still can slog down though.


Wip source code (minucce's framework):
https://github.com/kalita-kan-files/kalita-kan-files/raw/0da6c31432e802b06b66829bfb3eb2b8c479b26b/fixes.7z

And test file:
https://github.com/kalita-kan-files/kalita-kan-files/raw/0da6c31432e802b06b66829bfb3eb2b8c479b26b/fixes.ips
-- "Castlevania - The Adventure (USA).gb"
-- Using CVA Quick Fix will make player walk ultra-fast, so that's bad.


Todo (help):
? Find easy ways to improve framerate

? I played using overclock emulator but everything moves really fast. Clock, enemies, player. Twitchy sections become really hard. So I hope to make a special patch that adjusts for 60fps play.

? Maybe add soft reset feature. I suppose this just means checking joypad at right time and restarting.

? Add more jump time or something for those awful pixel-perfect platformer areas (too many!)


Hopefully we can work together again on this or something else! Thanks! :angel:
(and I hope you don't mind if I uhm .. use your thread sometimes :-*)

I tested it and noticed that although there were some slowdowns, it improved a lot, I also noticed that christopher speed seems more stable than "CVA Quick Fix". Not to mention the corrections. Great job!
Please I would like to ask permission to use this patch in a hack I'm working on.