Romhacking.net

Romhacking => Personal Projects => Topic started by: minucce on September 29, 2021, 10:55:18 pm

Title: The Minucce Yard
Post by: minucce on September 29, 2021, 10:55:18 pm
An open place to discuss whatever random thing I've released earlier or working on lately; usually "Service Repair" or "fix-it" sub-category. Or previews of upcoming things.


https://github.com/orgs/minucce-yard/repositories


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

You can try requesting something (small) but that will greatly depend on my mood and scheduling. Or if you want to (re-)grab my attention about something in another thread / PM that I just plain forgot about. Or want me to publicly state how much I'm not caring about working on patch xya.
(technical stuff isn't glorious and funny to poke around with)


Not everything here will be posted on-site but most likely could wind up there someday.

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

Haven't decided how much I want to work further on Kirby's Adventure (meaning I haven't played the game much like mostly everything else I've touched). But the (flashing) hud line bothered me enough to give it a peek.

(https://github.com/minucce/workbox/raw/60f50155f597b3982537dfbb852f16b2693022b9/box1/diff.gif)

https://github.com/minucce/workbox/raw/random/box4/---%20%20Kirby's%20Adventure%20%20---.7z
(Kirby's Adventure (USA) (Rev 1) + Japan)


src:
https://github.com/minucce/workbox/raw/60f50155f597b3982537dfbb852f16b2693022b9/box1/main.txt
(do the chr switching during blanking)

-- Not perfect! Can be better (double irq for timing glitches, faster h-blank writes)
Title: Re: The Minucce Yard
Post by: Fray on September 30, 2021, 06:19:05 am
Hello minucce,
if you insist I have a small request for you, if you want to take a look, there is the same problem in the HUD of the game Y's for famicom ...;)

(https://i.ibb.co/QJZnWcp/Ys-Tr-0.png)
Title: Re: The Minucce Yard
Post by: minucce on September 30, 2021, 01:48:46 pm
Tricky because I have to insert more code (rewrite parts) but I think it's positively responding to basic tests so far. Will require some time but I'll try to patch it up. ;)
Title: Re: The Minucce Yard
Post by: SomeOldGuy on September 30, 2021, 04:08:59 pm
Hey minucce,

Since you seem to be working on HUDs at the moment, I could use some help implementing the split HUD in RoboCop.  ;D

(https://images2.imgbox.com/4f/96/1NnsfP90_o.png)

Title: Re: The Minucce Yard
Post by: Fray on October 01, 2021, 12:58:58 pm
Tricky because I have to insert more code (rewrite parts) but I think it's positively responding to basic tests so far. Will require some time but I'll try to patch it up. ;)

Thanks minucce, no need to hurry ::) :thumbsup:! I asked because when I saw the master system version of this game, I was a "little bit jealous" because everything is fluid and clean, when the nes version is good but not so clean.
Title: Re: The Minucce Yard
Post by: minucce on October 03, 2021, 12:13:50 am
Made progress
https://github.com/minucce/workbox/raw/49799779d897e5588d59815a38b475bb25b87f9f/box2/ys_alpha1.ips


(https://github.com/minucce/workbox/raw/49799779d897e5588d59815a38b475bb25b87f9f/box2/diff.gif) -- (https://github.com/minucce/workbox/raw/9efe1a77a786005f5698ed6c32fe54cd082b1ef2/box2/diff.gif) -- (https://github.com/minucce/workbox/raw/b1ba36dd31e111ab04b4bbe52d9217666edc861b/box2/diff.gif) -- (https://github.com/minucce/workbox/raw/25ea59ff37b1edc44281bdfac52812de88fea94e/box2/diff.gif)


There's a few more bugs I'm thinking of putting out but the heavy stuff is past.


Ys 2 I'm not sure because Falcom upgraded to MMC3, but I'm surely curious why those same dumb glitches are present. RoboCop is also MMC3 so llmmm.. undecided where to go on that.
Title: Re: The Minucce Yard
Post by: Fray on October 03, 2021, 04:00:45 am
Wow :o, I didn't think the HUD was corrupt (I mean the image isn't complete) or the title screen, but apparently it is. Thanks minucce for the wonderful job you are doing :thumbsup:. Mine was just a request made because I thought it was enough just to use the same code used for Kirby to fix the problem, so a short job. Now I feel a little guilty about this request  :-\, but thank you again ;D.
Title: Re: The Minucce Yard
Post by: sebastianangel on October 05, 2021, 12:00:24 pm
Oh hi Minucce it would be great if you could give an improvement to this Toki hub as I find it really bland .. I tried to improve things but my knowledge is little.try to learn a paddle swap for when our protagonist takes the helmet to make it change color! but I did not know how to do it Thank you in advance for these improvements made in other games as well! :thumbsup:
(https://1.bp.blogspot.com/-VNm40h7rQAg/YUvg9Qs0L3I/AAAAAAAACFs/Z9nFVkBsqT4gWfPWQenYvu6svE2_WvUXQCLcBGAsYHQ/s256/Toki_U_NES%2BArcade%2Bfinalsin%2Bcasco.png)(https://1.bp.blogspot.com/-4ItjTGWc8Rg/YUvhB0E49tI/AAAAAAAACFw/QnfBrMvmQ-opswa_vzuwoxElITKTjVUUQCLcBGAsYHQ/s256/Toki_U_NES%2BArcade%2Bfinalcon%2Bcasco.png)
Cheers!!! :woot!:
Title: Re: The Minucce Yard
Post by: minucce on October 05, 2021, 07:43:06 pm
Not a waterfall of tears but fixing Ys was a pain!
(meaning first town and 1 world screen) :laugh:
https://github.com/minucce-yard/Ys_NES/tree/Service_Repair

(https://github.com/minucce-yard/Ys_NES/raw/Service_Repair/start_hud/diff.gif) -- (https://github.com/minucce-yard/Ys_NES/raw/Service_Repair/screen_switch/diff.gif)

More corruption stuff. And game no longer randomly crashes on Mesen (2002 VBlank death loops :().
(if there was an emulator hack to disable NMI race condition and other bothersome accuracy hardware flaws, that would be terrific)

With that, I put my signature and move onward (submitted to site; I'm satisfied with the repair work).  :happy:

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

Toki = I wouldn't know yet how to improve that hud. Unless you mean some random mild coloring??

Unless naturally of course you have some (workable) mock-up design in mind??

Sometime down the line I'll take a peek if we're allowed to do something about the helmet color, but NES gives less freedom about enough things sprite related.. but GBC gave me that same treatment also.

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

RoboCop. If I have something to chime in with, I'll put it in the official thread (have to do some reading up)
https://www.romhacking.net/forum/index.php?topic=29543.0

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

(...)

Thanks everyone!
Title: Re: The Minucce Yard
Post by: FlashPV on October 06, 2021, 10:54:57 am
This translation needs a fix:
http://www.romhacking.net/translations/3365/
It adds a really annoying bug, your save could lost some items, including the key ones which make the game unbeatable.
Title: Re: The Minucce Yard
Post by: goldenband on October 06, 2021, 03:59:13 pm
This translation needs a fix:
http://www.romhacking.net/translations/3365/
It adds a really annoying bug, your save could lost some items, including the key ones which make the game unbeatable.
That's exactly the kind of thing that should be in a review, if you have the time to write one. I'd hate to invest hours into a game only to run into a game-breaking glitch that makes it unwinnable. :(
Title: Re: The Minucce Yard
Post by: SomeOldGuy on October 06, 2021, 05:21:25 pm
Hey minucce,
I appreciate you taking the time to look into RoboCop.   :beer:  Not sure if it will be of use to you, but I posted a patch with the simplified HUD in my thread.
Title: Re: The Minucce Yard
Post by: Fray on October 08, 2021, 01:36:41 pm
Not a waterfall of tears but fixing Ys was a pain!
(meaning first town and 1 world screen) :laugh:
https://github.com/minucce-yard/Ys_NES/tree/Service_Repair

(https://github.com/minucce-yard/Ys_NES/raw/Service_Repair/start_hud/diff.gif) -- (https://github.com/minucce-yard/Ys_NES/raw/Service_Repair/screen_switch/diff.gif)

More corruption stuff. And game no longer randomly crashes on Mesen (2002 VBlank death loops :().
(if there was an emulator hack to disable NMI race condition and other bothersome accuracy hardware flaws, that would be terrific)

With that, I put my signature and move onward (submitted to site; I'm satisfied with the repair work).  :happy:

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

Toki = I wouldn't know yet how to improve that hud. Unless you mean some random mild coloring??

Unless naturally of course you have some (workable) mock-up design in mind??

Sometime down the line I'll take a peek if we're allowed to do something about the helmet color, but NES gives less freedom about enough things sprite related.. but GBC gave me that same treatment also.

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

RoboCop. If I have something to chime in with, I'll put it in the official thread (have to do some reading up)
https://www.romhacking.net/forum/index.php?topic=29543.0

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

(...)

Thanks everyone!

Thank you minucce for the precious time you dedicated to this project. Now Y's for nes is really a better port! :thumbsup: :woot!:
Title: Re: The Minucce Yard
Post by: minucce on October 08, 2021, 01:43:26 pm
Received a request to shrink Y's deadzone scrolling but just plenty busy with repairing RoboCop Texas Edition. :lol:


Also received a notice about someone using English title screen hacks for Ys 1-2 NES? (haven't seen any publicly) Not sure about compatibility. And a private Ys 3 NES hack which I haven't had time to check either.


I do want to fix Heracles GB but scheduling. If there's a bgb savestate of the issue, that would get it some higher priority. ;)


And had no time to check Toki yet. I'll keep reminding myself; eventually something has to make do.


Thanks again everyone!
Title: Re: The Minucce Yard
Post by: SomeOldGuy on October 09, 2021, 11:28:37 am
 :o WOW :o  Just tried the Wip 1 patch and it's amazing!  Thank you!!!
Title: Re: The Minucce Yard
Post by: minucce on October 09, 2021, 01:00:02 pm
Subject: RoboCop Texas Edition thread
http://www.romhacking.net/forum/index.php?topic=29543.msg420061#msg420061

Original bugs fixed
1) Wall breaking flicker (https://github.com/minucce/workbox/raw/c923b7d4b2ea51ded17b8bde9ed2e81b76e147d7/box3/diff.gif) 2) Cutscene mouth closed (https://raw.githubusercontent.com/minucce/workbox/ed3766bf35cbdc4a3431963fe71a10f5abeba73c/box3/diff.gif) 3) Room loading (https://raw.githubusercontent.com/minucce/workbox/c543eae06684765ca4a10f53f93d560e6cb9aa79/box3/diff.gif)
4) Elevator door opening (https://raw.githubusercontent.com/minucce/workbox/0d952077748e6f6f7d547e2dfbf415ca9f15a6e2/box3/diff.gif) 5) Palette loading error (https://raw.githubusercontent.com/minucce/workbox/3c9c52153d5eb770120780fc6f107854e55b4dc9/box3/diff.gif) 6) Warehouse lift (https://raw.githubusercontent.com/minucce/workbox/af6698f3fff8620ac17b8e85003505f7baaf0ed9/box3/diff.gif)
7) Walking pose reset  (no picture yet)


Texas edition
1) Split hud (https://raw.githubusercontent.com/minucce/workbox/680ac072733f14fa8ff8128cd07123444637cb00/box3/old.gif) ==> (https://raw.githubusercontent.com/minucce/workbox/680ac072733f14fa8ff8128cd07123444637cb00/box3/new.gif)
(notice how we gain 8 game screen pixels on top)


Released wip2. Mostly fixes everything I want; source code will be later as it still fluctuates a whole bunchload!
https://github.com/minucce/workbox/commit/c923b7d4b2ea51ded17b8bde9ed2e81b76e147d7


Taking a break to clean up the yard queue. :police:

October 09, 2021, 08:02:43 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Toki is next. Important for others to know that the shading and detail was added
USA NES (https://github.com/minucce/workbox/raw/0541b6b4cbe3d74d77e205161a3818bebffa270b/box4/toki_usa.gif) ==> by sebastianangel (https://github.com/minucce/workbox/raw/8c61e1f671b58bad553283cc7fe2ccf364077cc6/box4/Toki_U_NES%20Arcade%20finalsin%20casco.gif) + (https://github.com/minucce/workbox/raw/8c61e1f671b58bad553283cc7fe2ccf364077cc6/box4/Toki_U_NES%20Arcade%20finalcon%20casco.gif)


The hud I still have no idea how to freshen it up. Looks like there are free tiles though ..
(https://github.com/minucce/workbox/raw/9715cd3070ac5a486b7bea443f199c13960d700e/box4/hud.gif)


As for a helmet palette swap, *bites lip*
(https://github.com/minucce/workbox/raw/0541b6b4cbe3d74d77e205161a3818bebffa270b/box4/toki_pal.gif) + (https://github.com/minucce/workbox/raw/cbb078050ef7d2588293153cd42c7cac1582b8cc/box4/sprite.gif)

Sadly Sprite Palette 0 is widely shared so those colors can't be touched. Why is Sprite Palette 3 Greyscale? I would have to do a quick playthrough of some type and monitor how / if game uses those colors. Hopefully we'll have a silver lining beauty to pull off.

October 09, 2021, 08:14:26 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Toki helmet palette swap looks bad.  :-
(https://github.com/minucce/workbox/raw/9c3e4cb88381647dff9ccb1740f0c5cc4721de41/box4/sprite2.gif)

No open palettes. You'd have to recolor with 1, 2 or 3 which might look awful.

October 09, 2021, 11:23:11 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Ys 7.1 released
https://github.com/minucce-yard/Ys_NES/raw/29eaf378c373c877706f93694e78ecfda163d2c5/patch.zip


Adds optional deadzone scrolling and fixes critical crash (thanks lastduel!)
(https://github.com/minucce-yard/Ys_NES/raw/29eaf378c373c877706f93694e78ecfda163d2c5/deadzone_scroll/old.gif) ==> (https://github.com/minucce-yard/Ys_NES/raw/29eaf378c373c877706f93694e78ecfda163d2c5/deadzone_scroll/new.gif)


Learned that pacnsacdave made title screen hacks for Ys 1-3. Which I won't link to. It's good but I notice a number of changed details.
(https://github.com/minucce/workbox/raw/random/box2/title.gif)
(mouth, ball, side pattern, belly)

I'm doubting there's an original clean artwork??



October 10, 2021, 12:14:21 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Glory of Heracles GB (Stardust). After I copy save 1->2 and load game, using item menu opens up glitched hell or crashes and wiped all my saves!

But this sounds separate from FlashPV's problem. :|


I have mapped out some of the ram though, using cheats
- c331-c33c = tools  (both)
- c36d-c378 = items  (japan)(not Stardust)

So that might be a problem ... items array got moved.

October 10, 2021, 12:33:08 am - (Auto Merged - Double Posts are not allowed before 7 days.)
I seem to be a busy beaver today. :-[ Anyway.


Heracles GB does save routine at 1:766d
- Copies c323 ($80 bytes) to ca00 or ca80
- Then copies ca00 ($100 bytes) to $a000


For mystery unknown reason, Stardust put tools c36d --> caf0 (save #2). So instant death when copy save 1->2. Lots of crusty garbage data.

October 10, 2021, 08:51:26 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Notified Pennywise of Stardust about the Heracles findings.

October 10, 2021, 02:12:58 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Pennywise has informed me that the issue will be properly debugged when someone produces a save state / file with a key item that triggers the glitch.


Meaning I posted the sticky notes on Heracles GB problem, so I'll leave it at that then. Not my responsibility. :)

Sorry folks!

______________________________________________________


RoboCop hud src
https://github.com/minucce/workbox/raw/cbf6f3833ef87f4b245fcff023b73124dfc6f24f/box3/hud_src.zip


Messy but I don't want to forget about this.

______________________________________________________


(..hmm..)
Title: Re: The Minucce Yard
Post by: haruhi on October 10, 2021, 02:19:03 pm
Ys 1 issue: Adol can walk on top of right-side bar (no clipping)


Thanks for cleaning up all these old games!
Title: Re: The Minucce Yard
Post by: minucce on October 11, 2021, 10:36:38 pm
Thanks for pointing that out! Fixed. :thumbsup:


Ys Release 7.3
https://github.com/minucce-yard/Ys_NES/raw/324e0802365b9ec72bdf3a0a198bd1b3cc5ba1c5/readme.txt
https://github.com/minucce-yard/Ys_NES/raw/324e0802365b9ec72bdf3a0a198bd1b3cc5ba1c5/patch.zip


English title cleanup
(https://github.com/minucce-yard/Ys_NES/raw/324e0802365b9ec72bdf3a0a198bd1b3cc5ba1c5/title_screen/english/diff.gif)
(now artwork closely resembles original Japan)



pacnsacdave's title screen hack can be gotten here (includes English translation)
http://pacnsacdave.weebly.com/ys.html


Or just title screen add-on alone
http://www.bwass.org/bucket/pacnsacdave_ys1_title.ips


I have thought about adding a black outline to the Ys logo, but that'll take a crummy amount of time. So maybe later. :)

Someone also noticed an 8-pixel high column that appears 1/8 frames on lower-right above hud -- nes hardware limitation. Unless I switch to MMC3 to beat up that bug. Again, a swamp of clock management. Maybe, maybe .... just maybe later later (I can live with it).


On to Ys II!
(.. after I submit update to site ..)
Title: Re: The Minucce Yard
Post by: SomeOldGuy on October 16, 2021, 09:00:47 pm

Hey minucce's

Hope you don't mind me posting this in your thread.   ;D

Redrew the Ys and added a black border.  Still not 100% happy with it, will probably tweak it more later.  This uses the version 7.3 "plus.ips" patch.

https://www.mediafire.com/file/5uw3xxrai3lm03t/Y's+-+Title+Screen.ips/file (https://www.mediafire.com/file/5uw3xxrai3lm03t/Y's+-+Title+Screen.ips/file)

(https://images2.imgbox.com/aa/78/v8ZIh5uX_o.png)

 

Title: Re: The Minucce Yard
Post by: minucce on October 17, 2021, 11:55:03 am
That looks great! Keep posting freely.

----

Ys2
https://github.com/minucce/workbox/raw/random/box6/ys2_wip3.ips

(https://github.com/minucce/workbox/raw/random/box6/diff.gif)


Short story:
Lot of work. Taking break from Ys 2. Back to RoboCop.

Not uploading Ys2 to site until I've fully played it through; Ys1 is buggy and shameful that I released it early.
Title: Re: The Minucce Yard
Post by: VeganDoritos on October 17, 2021, 09:07:40 pm
Thank you for your work fixing Ys.
Title: Re: The Minucce Yard
Post by: minucce on October 18, 2021, 12:13:03 am
So that was an incredibly bad time fixing Ys again. But it's better and not going to crash for detecting active draw incorrectly.

My experience with Falcom suggests I'm in for another unpleasant whomping; fix something and their kludges will come biting back. I'll deal with it then. I suppose. ::)


Ys 7.4
https://github.com/minucce-yard/Ys_NES/tree/32717e2ba0bf7c67a0fb36932e1becce1979a6a1

October 18, 2021, 08:06:53 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
lastdual and darthvaderx sure know how to find Ys errors.
(...I somehow didn't include deadzone in the English plus patches...)


7.4a - re-includes deadzone
https://github.com/minucce-yard/Ys_NES/raw/4525b79776488476697a3ffd26535821fff97992/patch.zip


Sorry about that folks! Turning out to be a dirty, messy month for me. :angel:
Title: Re: The Minucce Yard
Post by: Fray on October 20, 2021, 11:25:21 am
So that was an incredibly bad time fixing Ys again. But it's better and not going to crash for detecting active draw incorrectly.

My experience with Falcom suggests I'm in for another unpleasant whomping; fix something and their kludges will come biting back. I'll deal with it then. I suppose. ::)


Ys 7.4
https://github.com/minucce-yard/Ys_NES/tree/32717e2ba0bf7c67a0fb36932e1becce1979a6a1

October 18, 2021, 08:06:53 pm - (Auto Merged - Double Posts are not allowed before 7 days.)


lastdual and darthvaderx sure know how to find Ys errors.
(...I somehow didn't include deadzone in the English plus patches...)


7.4a - re-includes deadzone
https://github.com/minucce-yard/Ys_NES/raw/4525b79776488476697a3ffd26535821fff97992/patch.zip


Sorry about that folks! Turning out to be a dirty, messy month for me. :angel:


Ok, I don't want to bother too much anyone, but this last patch is less emulators compatible, because it works only with Mesen. I utilise the nes mini and the screen went black after the title screen or is buggy with fceux.
Meanwhile, I done this for the title screen, I only drew new eyes and changed color on one pixel on her ear:
(https://i.ibb.co/Tg5b2dz/Ys-inglese-con-titolo-patchato-0.png) (https://imgbb.com/)
Title: Re: The Minucce Yard
Post by: minucce on October 20, 2021, 12:52:07 pm
I'm in a calm mood so I'll give Ys more thought


I'm using this version and haven't had problems (config --> ppu --> new ppu)
https://github.com/TASEmulators/fceux


The mini .. I guess they don't support the Micro Machines OAM reading trick. :|

_________________________________________________


Touch-up actually looks nice. They did repaint the eyes on Ys III but I thought it looked terrible when backporting to Ys I.


Considering the variety of complaints and markups for the title screen, I'm leaning towards a bunch of add-on patches instead with that one

(some want vanilla, pacnsacdave untouched, black outline I personally like, new eyes are good, others want basic fix level without hair modification on the left-side chin, etc.)

--- the 2-thick black pixels of hair just seem to strike me as unnatural for whatever odd reason; but to each their own choice of title ---
Title: Re: The Minucce Yard
Post by: Cyneprepou4uk on October 20, 2021, 02:21:06 pm
Quote
the Micro Machines OAM reading trick

What's that?
Title: Re: The Minucce Yard
Post by: minucce on October 20, 2021, 05:54:49 pm
I can't explain the silver fine details like the pros; they cover the genius-level deconstruction well.
http://archive.nes.science/nesdev-forums/f2/t4052.xhtml

EDIT: Poll $2004 until value changes, which implies non-vblank.


I was using it to time pre-render scanline then skip another line to hit active draw. Then I'm allowed to muddy up the 2006 - 2005 scroll registers since they won't get latched until the next 2005 - 2006 h-blank writes.

But! The Mini isn't that friendly (.. who honestly abuses oam reads anyway .. it was worth a try), so I'm thinking of inspecting game state and running a burn loop when nmi isr exits way too early because it has nothing to do.

October 20, 2021, 10:14:19 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Ys 7.4b is here
https://github.com/minucce-yard/Ys_NES/raw/c48e7d68a82e569e6a756937eace03536fb65c34/Ys%20NES%20-%20Service%20Repair%20-%207.4b.zip


Should provide restore emulator compatibility
Title: Re: The Minucce Yard
Post by: Pethronos on October 21, 2021, 02:47:01 am
Hey!! Very good work Minucce. Thanks for the 7.4b update yo YS.

Speaking of Emu compatibility, I've just tried the wip3 patch for YSII; when you enter a door and go back outside, you can't talk to the NPCs anymore. (VirtuaNes and Nestopia)
Title: Re: The Minucce Yard
Post by: minucce on October 21, 2021, 09:13:35 pm
Ys 2 problem started when I tweaked deadzone. :huh:
(digesting problem)

____________________________________


Finished request for Bugs Bunny Crazy Castle 2 DX (light, fluffy) repair work
https://www.romhacking.net/hacks/944/

==> https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/6b56c4e7c54e68e3500e05bfb7644af1201e6ab9/Bugs%20Bunny%20Crazy%20Castle%202%20DX%20-%20GBC%20Compatible%201.zip


Did not work on many emulators (and hardware) because of lack of vram timing. Missing ending scene was restored also (likely not originally tested - it was black screen). :laugh:


(https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/6b56c4e7c54e68e3500e05bfb7644af1201e6ab9/gbc_compatible/old1.gif) ==> (https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/6b56c4e7c54e68e3500e05bfb7644af1201e6ab9/gbc_compatible/new1.gif)


(https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/6b56c4e7c54e68e3500e05bfb7644af1201e6ab9/gbc_compatible/old2.gif) ==> (https://github.com/minucce-yard/Bugs_Bunny_Crazy_Castle_2_GB/raw/6b56c4e7c54e68e3500e05bfb7644af1201e6ab9/gbc_compatible/new2.gif)


I know there's a few more problems
- black screen only works on bad emulators; flickers on better ones
  (original seems to be white screen)

- end boss should flash during attacks

Not much priority on those two.

October 21, 2021, 11:20:36 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Thankfully people post bug reports within a reasonable time; my interest (+ asm memory) is still fresh.


Ys2 wip4
https://github.com/minucce/workbox/raw/5c13efdb77be9b336fd5e6f23689e5b98ce2b955/box6/ys2_wip4.ips


Deadzone must be aligned to 8-pixels but Falcom added a few sticky nails to avoid, so I think it's covered. :)


So I think that's that! Ys 3 on the flight deck.

October 21, 2021, 11:50:59 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Didn't know about this post. A bug report about KDL DX
http://www.romhacking.net/forum/index.php?topic=33599.0


Running bgb in sgb mode actually gets too far and crashes later; I should stop it as DX is GBC-only. ... Eventually I'll do it ... no one will notice. :evil:


EDIT:
And it star-struck me that the readme doesn't mention how to -use- the SGB border (GBC emulators only). Told I'm going to get a review about that oversight! Eh. :cookie: for me anyway.  :happy:
Title: Re: The Minucce Yard
Post by: SomeOldGuy on October 22, 2021, 08:29:53 pm
Just a little more work on the title screen. Still workin on the wings/border but if you want to check it out, use the following:

Ys(Japan).nes

SHA-1: 0F940EF923B43C1821F9ABB4DCA642527FA04A8F

https://www.mediafire.com/file/12llov2w3fsz3s1/Y%2527s_%2528Japan%2529_-_Title_Screen.ips/file (https://www.mediafire.com/file/12llov2w3fsz3s1/Y%2527s_%2528Japan%2529_-_Title_Screen.ips/file)

*** No other patches were applied so it's still in Japanese and has HUD issues.***

(https://images2.imgbox.com/c6/fd/DPTTOyC6_o.png)


Title: Re: The Minucce Yard
Post by: minucce on October 25, 2021, 03:25:20 pm
Ys III should be stable
https://github.com/minucce/workbox/raw/7b87465a6d3733369bbcf7d321832278c4c90b3e/box8/ys3_wip1.ips


Usual hud fix
(https://github.com/minucce/workbox/raw/7b87465a6d3733369bbcf7d321832278c4c90b3e/box8/diff.gif)


Galbalan fix
(https://github.com/minucce/workbox/raw/random/box8/old.gif) ==> (https://github.com/minucce/workbox/raw/7b87465a6d3733369bbcf7d321832278c4c90b3e/box8/old.gif) ==> (https://github.com/minucce/workbox/raw/7b87465a6d3733369bbcf7d321832278c4c90b3e/box8/new.gif)
(ball doesn't always split 2-ways; ground level also moved up)


Didn't include darthvaderx's non-italic font adjustments yet but that's for later.

October 25, 2021, 10:14:28 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
No promises. But Kirby Dream Land DX now runs on GB, SGB and GBC.

(https://github.com/minucce/workbox/raw/0b14111f17bc834d87d791e5fb6b5393835d75bb/box9/Kirby's%20Dream%20Land%20(USA%2C%20Europe)-211025-220027.png)


The bad side is to complete the hack, I have to re-add the original bitmaps (if gbc not detected). Now that is going to be an awful doozy! Plus there's still more glitches to clean house.

Maybe I'll do it though; who else would ..
Title: Re: The Minucce Yard
Post by: ShadowOne333 on October 29, 2021, 05:20:30 pm
Hey minucce!
Glad to see to many good games getting a repair treatment, it's wonderful to shed some new light into those games.
Robocop is one of the games I owned as a child, so I'm really looking forward to that one :D

I was wondering, once you're finished with the current repairs you're working on, and if you're interested and have the time, would you please consider helping out with the remaining thing for Zelda 1 & Zelda 2 Redux?
That being the Copy/Erase save file feature for both games, like in ALttP, where you can select to Copy a save file into another slot, and if you select an empty slot it automatically brings you to the Enter Name screen.

That's the only remaining thing for those two hacks to be considered complete in my eyes. I think both have partially working code for those features, but to different extends.
Still though, that'd be when you are finished with your current stuff, I don't want to intrude into any of the current work or anything.

I'll continue looking forward to your projects and work! :D
Title: Re: The Minucce Yard
Post by: minucce on October 29, 2021, 10:06:16 pm
I'm constantly juggling several+ projects at once, so I will slot Zelda 1+2 into the higher-colored sticky pile; ironically I thought someone would've blasted those away by now but there's likely something ("cursed") about writing menu code.

I need to look at ALttP to see how the menu works. Probably why I haven't thought much about the NES ones yet. :|

----

https://github.com/minucce-yard/Kirbys_Dream_Land_GB/raw/4a57398ce7a353ebf60cfd0bac76d63929622d81/Kirby%20Dream%20Land%20DX%20GB%20-%20Fluffy%20Repair%20Service%20-%2010.3.zip

(https://github.com/minucce-yard/Kirbys_Dream_Land_GB/raw/4a57398ce7a353ebf60cfd0bac76d63929622d81/dual_support/recolor_objects/extra_tiles/riding_star/old.gif) ==> (https://github.com/minucce-yard/Kirbys_Dream_Land_GB/raw/4a57398ce7a353ebf60cfd0bac76d63929622d81/dual_support/recolor_objects/extra_tiles/riding_star/new.gif)

Adds missing star color. Also fixes warp star cutscenes (small star to match Kirby's riding orientation). And GB mono support; SGB works too but nothing fancy other than the border! Super GBC is still the preferred way for emulators.

----

(*) RoboCop Texas Edition (https://www.romhacking.net/forum/index.php?topic=29543). Very good NES makeover.

----

I am aware of Bugs Bunny 2 DX and it's problems (missing effects and flickering). Someday. Which is why it's GBC Compatible and not Service Repair. ;)
Title: Re: The Minucce Yard
Post by: ifightdragons on October 30, 2021, 06:32:03 am
Great work, Minucce!

Heads up, the latest Kirby's Dream Land DX hack doesn't work with SGB/SGB2. I've tried on real hardware as well as FPGA cores on Analogue Nt mini and FXPAK Pro/SD2SNES.

It would be awesome if the hacks aimed to work on actual real hardware, and not only emulators.
Title: Re: The Minucce Yard
Post by: datchy on October 30, 2021, 08:08:31 am
Hi, minuce
Your works are wonderful and I like your hacks!
And I changed the title screen of Ys (J) to my liking.
(https://i.imgur.com/kjcZjTM.png)==>(https://i.imgur.com/Pa0rKe1.png)
Title: Re: The Minucce Yard
Post by: minucce on October 30, 2021, 10:30:24 am
Well, that bites! Right now fumbling around the dark looking for the light switch ...


Does any music play? Visual dirt on-screen? Zero border changes? White screen of death?
(was told that 9.1 plays music but nothing more useful)


I seem to have some attraction for real hardware bugs that aren't emulated. :laugh:
Title: Re: The Minucce Yard
Post by: ifightdragons on October 30, 2021, 11:04:58 am
Seems to be only music atm   8)

No rush though, just wanted to help "testing", as you and ShadowOne are always working on the coolest stuff!
Title: Re: The Minucce Yard
Post by: VeganDoritos on October 30, 2021, 02:41:56 pm
Hi, minuce
Your works are wonderful and I like your hacks!
And I changed the title screen of Ys (J) to my liking.
(https://i.imgur.com/kjcZjTM.png)==>(https://i.imgur.com/Pa0rKe1.png)

Great work, especially with the Capcom-esque font for "Press Start".
Title: Re: The Minucce Yard
Post by: minucce on October 30, 2021, 04:31:11 pm
datchy's Ys rendition is quite respectable! Especially when you layer the 2 images and notice how many edits were made (the dithering was the first thing I studied). Quite an improvement.

Thanks for sharing the image! Like everyone else's title hacks, it's your call whether to share with RHDN library or not.


Comparisons:
https://tcrf.net/Ys:_Ancient_Ys_Vanished_Omen_(PC-88)
https://tcrf.net/Ys:_Ancient_Ys_Vanished_Omen_(Sega_Master_System)
https://tcrf.net/Ys_I_%26_II_Chronicles%2B
https://tcrf.net/Ys:_The_Vanished_Omens_(NES)

----

Have another Kirby hardware tester who reports music + border but black game window. Must do some research; likely I took a shortcut and getting caught.
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on October 30, 2021, 07:36:11 pm
how do you make the super gameboy border appear for kirby's dreamland dx or revised cause I don't know how?
Title: Re: The Minucce Yard
Post by: minucce on October 30, 2021, 08:03:54 pm
sgb hardware = broken  (have some ideas why)

bgb = options ==> system ==> "sgb + gbc" or "super gameboy"

sameboy = might need toggle option to "always display border"

mgba = untested, use "sgbc" mode
- https://www.romhacking.net/hacks/6091/
Title: Re: The Minucce Yard
Post by: ShadowOne333 on October 30, 2021, 08:39:27 pm
I'm constantly juggling several+ projects at once, so I will slot Zelda 1+2 into the higher-colored sticky pile; ironically I thought someone would've blasted those away by now but there's likely something ("cursed") about writing menu code.

I need to look at ALttP to see how the menu works. Probably why I haven't thought much about the NES ones yet. :|

I appreciate you move it into the sticky pile ;D
As for the SRAM stuff, for Zelda 1 I think most of it is located around $6000-$6FFF in RAM.
The whole three save slots' data is stored around there from what I recall in some tests and bugfixes from Redux:
http://datacrystal.romhacking.net/wiki/The_Legend_of_Zelda:RAM_map#SRAM
http://www.bwass.org/romhack/zelda1/zelda1rammap.txt

For Zelda 2 I am not sure, I never really delved into SRAM stuff for it, but from what I've seen it could be around $7400~ in RAM:
http://datacrystal.romhacking.net/wiki/Zelda_II:_The_Adventure_of_Link:RAM_map
http://www.bwass.org/romhack/zelda2/zelda2rammap.txt

Zelda 1 Redux has a partially working code so you can select empty saves slots manually, and doing so redirects you to the "Register Your Name" screen (file_tweaks.asm in the source code), and Zelda 2 Redux has code so you can use the DPad Up or Down to go Up/Down in the File Select menu, like in more recent Zeldas. Combining the two for each NES Zelda would be a hell of a good starting point. From there it'd be a matter of redirecting the "REGISTER YOUR NAME" option  (note the "redirect" here, as that screen will still be used when starting new games)  in the File Select screens to instead work as a Copy File menu.

Still though, focus first on all the pending stuff you have going on atm, as I don't want to intrude nor cutoff any current progress, as I know the importance of focus on each project.
I wanted to post that info for posterity's sake and reference.

When you feel ready for this, let me know and contact me to get into the details. ;D
Thanks again!
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on October 31, 2021, 05:52:29 am
does the basic or plus version use the sgb border so I know which one to patch?
Title: Re: The Minucce Yard
Post by: minucce on October 31, 2021, 10:03:22 am
All Kirby patches have sgb border.

----

New sgb hardware test patch  (revised)
https://github.com/minucce/workbox/raw/d0db0e193a8251e367625f11c14eea7afb5f52bc/box11/basic.ips
https://github.com/minucce/workbox/raw/d0db0e193a8251e367625f11c14eea7afb5f52bc/box11/plus.ips


wip source:
https://github.com/minucce/workbox/tree/43aef7841ce5a9b60904417de283f40d0e660c79


Follow SNES hardware rules

1) Don't race clock
- 1 VBL per I/O
- 5 VBL to freeze screen
- 6 VBL to transfer vram tiles

2) Standard mask_en (1 or 2)

3) Upload snes init program

October 31, 2021, 10:41:00 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Someone noticed that Kracko rolls the eye when hit in mono but shakes in color mode (DX bug). Later later.

October 31, 2021, 11:28:18 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Starting fresh on Zelda 1 Redux using my own code rewrite. Not much to say; not ready to post in Redux thread.
- Up / Down + Select moves cursor on main menu
- Selecting blank save opens Register menu


TODO:
- Add cursor moving code for Erase File
- Erase File to Main Menu  (file_tweaks has wrong cursor color bug)
- Register menu uses correct chosen slot  (file_tweaks uses 1st open file)
- Add copy function (*)


(*) I can understand why it's not done; game engine does not let you use a direct approach. All 3 modes (register, copy, erase) will flow through the same code paths and it's a pretty large routine to add detours.


The Zelda 2 erase demo by DarkSamus993 is pretty wild! Creative GUI adjustments but must've been some heavy work.
Title: Re: The Minucce Yard
Post by: Pethronos on November 01, 2021, 08:42:56 am
Hi, minuce
Your works are wonderful and I like your hacks!
And I changed the title screen of Ys (J) to my liking.
(https://i.imgur.com/kjcZjTM.png)==>(https://i.imgur.com/Pa0rKe1.png)

Nice work Datchy!

For some reason it should be applied after the Service Repair hack, otherwise it messes up the girl face. So weird  :laugh:

Anyway it's curious that, applied over the repair, there is a tiny difference in the lip from applying over a clean rom. Really weird again ;D

Also, for some reason, translations must be applied after this patch. (So the appropriate order is Service Repair => Title Screen => Translation)

Last, there is a blue pixel in the left (right) ear that should be corrected.

Thanks all of you for your contributions!!

Title: Re: The Minucce Yard
Post by: minucce on November 01, 2021, 09:12:39 am
Not weird. I wasn't expecting someone to clean up some of the original tiny graphics errors (near lip, left / right chin).


So I will have to rebuild and rebase the patch orders. Thanks for mentioning this!
Title: Re: The Minucce Yard
Post by: Pethronos on November 01, 2021, 09:33:36 am
Oops! I had forgot your hack did some minor touches. Anyway it's curious that your hack and Datchy's remove the gloss in the lip (white pixel), however, when patching Repair+Title screen, that white pixel returns from the beyond, and it's the only difference from an "title screen only" patched rom.

There's no need to do anything else in my opinion, or so I think.
Title: Re: The Minucce Yard
Post by: minucce on November 01, 2021, 10:52:27 am
Notice the extra changes Datchy made:

(https://github.com/minucce/workbox/raw/2e6e7336a71e4799e310e649a1d8783ec8b4e206/box12/diff.gif)


Our two hacks are now compatible (apply any order):
https://github.com/minucce/workbox/raw/2e6e7336a71e4799e310e649a1d8783ec8b4e206/box12/plus.datchy.ips
https://github.com/minucce/workbox/raw/2e6e7336a71e4799e310e649a1d8783ec8b4e206/box12/basic.datchy.ips


English must be applied last still! And now I have to figure out how to manage all the complaints between the 'purists' and 'revisionists'. And be super clear in the readme. :laugh:
Title: Re: The Minucce Yard
Post by: Pethronos on November 01, 2021, 12:35:46 pm
All you need to do is preserve all the previous versions ;D

By the way, I noticed that Japan and English versions of your patch are in fact the same patches. Maybe you could name them simply 'Vanilla' (or something like that).

That way, there would be 3 versions:

- Vanilla rom
- Pacnsacdave's Occidental Title
- Datchy New Title Screen

EDIT:

Ok, just figured out your move. Since the Datchy compatible is the pure repair patch without cosmetic changes, another option is:

-Service repair only (vanilla and Datchy's new title screen compatible)
-Service repair + litle cosmetic change (not compatible with Datchy's)
-Pacnsacdave occidental title version
Title: Re: The Minucce Yard
Post by: minucce on November 01, 2021, 02:46:49 pm
I appreciate your suggestions! Just that I've had some terribly annoying experiences with users over the year; many are genuinely confused though and not out to be troublemakers. 8)

(I had one who saw the readme for maybe a minute? Applied any order because I specifically did not forbid the patching sequence (did not follow the #s).. Somehow got a bad rom anyway (tested to be compatible). Claimed to be a Magna Cum Laude (:P) and accused me of being a cranky 17yo schoolgirl who takes sharpened #2 pencils and shoves them up opponents' butts)  ::) ::)


To keep things simpler, I'm creating a bunch of folders with separate pictures and patching instructions. Because lots of people do not like my readmes. :)

If there's enough people who don't want a combo, then I'll split them into add-ons. Users have to compromise with me also or learn how to edit the source code! :police:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 01, 2021, 03:45:58 pm
Starting fresh on Zelda 1 Redux using my own code rewrite. Not much to say; not ready to post in Redux thread.
- Up / Down + Select moves cursor on main menu
- Selecting blank save opens Register menu


TODO:
- Add cursor moving code for Erase File
- Erase File to Main Menu  (file_tweaks has wrong cursor color bug)
- Register menu uses correct chosen slot  (file_tweaks uses 1st open file)
- Add copy function (*)


(*) I can understand why it's not done; game engine does not let you use a direct approach. All 3 modes (register, copy, erase) will flow through the same code paths and it's a pretty large routine to add detours.


The Zelda 2 erase demo by DarkSamus993 is pretty wild! Creative GUI adjustments but must've been some heavy work.

Oh so you've already done some work on Z1's menu, that's nice!
Indeed, in both Z1 and Z2 the Copy feature would be the most intriguing one to accomplish.
At the moment, the only game I can recall which had a Copy system in place for save slots is Mother 1 (or EarthBound Beginnings). Maybe looking at how that one does it could help?

Indeed, the Zelda 2 demo DarkSamus posted is quite an accomplishment, sadly that one never saw any beta release to work upon :/
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on November 02, 2021, 06:57:33 am
is it possible to play kirby's dream land in color with the super game boy boarder or do I have to choose?
Title: Re: The Minucce Yard
Post by: minucce on November 02, 2021, 09:21:36 am
I've been using Kirby (GBC + SGB border) all the time (emulators). I've heard that MiSTer FPGA hardware also shows GBC + SGB border.

SameBoy Retroarch (default works)
(https://github.com/minucce/workbox/raw/6dee82bd91bb4136ea04d228e57aba53cbaa4ff2/box11/sameboy1.gif)


(https://github.com/minucce/workbox/raw/6dee82bd91bb4136ea04d228e57aba53cbaa4ff2/box11/bgb1.gif) + (https://github.com/minucce/workbox/raw/6dee82bd91bb4136ea04d228e57aba53cbaa4ff2/box11/bgb2.gif)

----

Questions about ALttP and Zelda menus:
- SNES ("disables") choosing erase or copy when no slots active. Follow behavior?
- Erase Player only works once then returns to main menu. Old or new behavior?
- Confirm choices?
- B to select menu choices?
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 02, 2021, 10:54:21 am
The Kirby updates look great! I might update to the latest hardware WIPs and give them a go :D

Questions about ALttP and Zelda menus:
- SNES ("disables") choosing erase or copy when no slots active. Follow behavior?
- Erase Player only works once then returns to main menu. Old or new behavior?
- Confirm choices?
- B to select menu choices?

1) I think other Zeldas do that as well, sounds good to disable both of those options when there are no saves available.

2) Not sure what you mean with this one. You mean if you have multiple slots and erase one, you cannot delete another until you reset? Or that if you delete one it goes back to the main menu? If it's the latter, then it's fine, later Zeldas do that too (go back to File menu after deleting one save file).

3) If it's possible, yes. Probably something like what DarkSamus did in his demo. If it's too much trouble, leaving it as-is should be okay.

4) You mean pressing B for all menus in the File menus? Or just for the Erase menu?
I think keeping it on Start is fine, then the confirmation appears and you press Start on it to confirm the erase. Changing buttons for selections between menus might confuse some people, I think.
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on November 02, 2021, 11:32:02 am
what is the setup for sameboy retroatch mine is the psclassic?
Title: Re: The Minucce Yard
Post by: minucce on November 02, 2021, 03:24:45 pm
Code: [Select]
Retroarch SameBoy 0.14.7

Emulated Model = Auto-Detect DMG/SGB/CGB
Auto-detected SGB Model = Super Game Boy 2
Video - GBC Color Correction = Off (Revised without pink lcd patch)
Video - Display Border = Always
Title: Re: The Minucce Yard
Post by: Fray on November 03, 2021, 12:44:58 pm
Hi minucce, I know you might not want to hear about Ys anymore, but I realized that when you walk into Olman's bar, the image is corrupted. So I thought I'd fix it with what little skill I've learned. I haven't created a patch because it's just a matter of swapping three tiles and so I'm attaching an image from the hex editor to show you what needs to be changed. I hope you will want to include this change in your patch.

(https://i.ibb.co/4N5ybzh/Bar.png) (https://imgbb.com/) (https://i.ibb.co/XXQHd79/BAR1.png) (https://imgbb.com/)
(https://i.ibb.co/BgB5jpB/YS-BAR.png) (https://ibb.co/NLKdpvK)

There is another thing I noticed in this image, and that is that the image is "burned". In fact if the main color is black why did they make a palette with two blacks? And so changing that color has this result:
(https://i.ibb.co/XXQHd79/BAR1.png) (https://imgbb.com/) (https://i.ibb.co/gDKJmQ1/Ys-Van-0.png) (https://imgbb.com/)

In this case, the area outside the window should be corrected using the main black, so the image inside that window would gain an extra color.
The following look like all the images that are "burned":
Spoiler:
(https://i.ibb.co/bd4PCzm/colors.png) (https://imgbb.com/)
I noticed another thing, when you arrive in the village of Zepic, the roofs of the houses have tiles that are animated. I think it depends on the fact that they are the same tiles that represent water:
(https://i.ibb.co/thT2gn4/Zepic-village-or-region.png) (https://imgbb.com/)

Obviously, without any commitment on your part, I thank you once again!

Title: Re: The Minucce Yard
Post by: minucce on November 03, 2021, 02:08:50 pm
Thanks for contributing! I will add your patch + credit to the collection when I make another go-around. :thumbsup:
(have to also add Datchy + Spanish cross-compatibility which held me up and put Ys into the cooler)


I always thought something looked wrong about that portrait but you figured it out! Nice when others' are helping out!


Quote
In this case, the area outside the window should be corrected using the main black, so the image inside that window would gain an extra color.

Currently the backdrop is using tile $FF; it should be switched to a transparent tile. ($D5?)

____________________________________________


Going to upload the next Kirby build (without the kracko fix), which was tested by Jdoesstuff to work on sgb hardware, minus a fix I added for console reset.

____________________________________________


Zelda 1 menu is marching along. Messy stuff but I'm a lot more familiar with Z1 engine than Z2 (0%).

November 03, 2021, 02:10:48 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Quote
I noticed another thing, when you arrive in the village of Zepic, the roofs of the houses have tiles that are animated. I think it depends on the fact that they are the same tiles that represent water:

I saw the same thing and you are correct. I ... am confused if that was the intention (textured roof) or really a goof-up.

November 03, 2021, 02:13:58 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Interesting finding about the other "burned" images. Didn't realize there could be extra details hiding. 8)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 03, 2021, 03:00:44 pm
Going to upload the next Kirby build (without the kracko fix), which was tested by Jdoesstuff to work on sgb hardware, minus a fix I added for console reset.
____________________________________________

Zelda 1 menu is marching along. Messy stuff but I'm a lot more familiar with Z1 engine than Z2 (0%).

Looking forward to the Kirby update :D

As for the Zelda stuff, perhaps this could help:
https://www.bwass.org/romhack/zelda1/
https://www.bwass.org/romhack/zelda2/
(Namely the zeldaXbankX.txt files)

They're the disassemblies made by Trax for both Zelda 1 and Zelda 2.
They're not 100% complete, but it should give a good idea of where things are and what they do.
For Zelda 2, I think most of the File Menu stuff is located inside Bank 5, adround $1722D according to Trax's documentation.

There's an ASM file that already moves the cursor up and down with the DPad for Zelda 2 here:
https://github.com/ShadowOne333/Zelda2-Redux/blob/master/code/menus/file_select.asm

Maybe that can help out a bit more towards achieving the same thing from Zelda 1's changes into Zelda 2.
Title: Re: The Minucce Yard
Post by: Jorpho on November 03, 2021, 07:37:36 pm
You can try requesting something (small) but that will greatly depend on my mood and scheduling.
Say, this recent talk about GBC/GBC compatibility reminds me: do you think you might please spare a minute to see if you could remedy the compatibility problem preventing the Konami GB Collection from running on Goomba Color? Obviously it would be better to fix Goomba Color, but such a fix does not seem to be forthcoming.

As discussed in https://www.romhacking.net/forum/index.php?topic=31632.msg402769#msg402769 , Lameboy (for the DS) apparently had a similar problem related to the use of the STOP opcode, which might be used in this case to switch the GBC CPU mode. Maybe it will work properly if the STOP opcode is removed?
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 03, 2021, 08:10:03 pm
Say, this recent talk about GBC/GBC compatibility reminds me: do you think you might please spare a minute to see if you could remedy the compatibility problem preventing the Konami GB Collection from running on Goomba Color? Obviously it would be better to fix Goomba Color, but such a fix does not seem to be forthcoming.

As discussed in https://www.romhacking.net/forum/index.php?topic=31632.msg402769#msg402769 , Lameboy (for the DS) apparently had a similar problem related to the use of the STOP opcode, which might be used in this case to switch the GBC CPU mode. Maybe it will work properly if the STOP opcode is removed?

I might add, that issue with the Konami Collections and Pokemon Crystal having graphical bugs are the worst offenders when it comes to Goomba Color.
Title: Re: The Minucce Yard
Post by: minucce on November 03, 2021, 09:10:22 pm
Cross-talk:
https://www.romhacking.net/forum/index.php?topic=31632.msg421187#msg421187


good emulator:
- 10 xx = STOP, skipped byte


bad emulator:
- 10 00 = STOP, NOP
- 10 FF = STOP, RST $38


If Goomba can't be patched, try hacking rom. ;)
Title: Re: The Minucce Yard
Post by: Jorpho on November 04, 2021, 01:12:47 am
Neat! Much thanks, sir.  :thumbsup:
Title: Re: The Minucce Yard
Post by: minucce on November 04, 2021, 11:30:15 pm
Checked ALttP, Minish Cap, Ages and LA. Still am confused what interface to use. A draft.
(https://github.com/minucce/workbox/raw/2d8cfd829d80d64e16da41638ab2e1202714093c/box13/wip1.gif)

-- I would like to know what's wrong. Not a Zelda series veteran or expert.
-- D-Pad in all menus
-- I can slow down gif animation or upload wip1 if requested for testing
   (copy doesn't work)


For copy save, I think of using 2 hearts next to each other. Although now I notice 2 (c) symbols in ppu table, last row. Can 1 be swapped out to make another colored heart tile?
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 04, 2021, 11:48:11 pm
Checked ALttP, Minish Cap, Ages and LA. Still am confused what interface to use. A draft.
(https://github.com/minucce/workbox/raw/2d8cfd829d80d64e16da41638ab2e1202714093c/box13/wip1.gif)

-- I would like to know what's wrong. Not a Zelda series veteran or expert.
-- D-Pad in all menus
-- I can slow down gif animation or upload wip1 if requested for testing
   (copy doesn't work)

For copy save, I think of using 2 hearts next to each other. Although now I notice 2 (c) symbols in ppu table, last row. Can 1 be swapped out to make another colored heart tile?

Oh wow!
That demo looks neat and really fancy, I like it!
I think using ALttP for reference is good enough, but the way you're handling it so farlooks great and even better than what I'd have expected! For not being a veteran, you sure know how to make things neat :D

The only thing I don't fully understand is what you mean by the 2 hearts thing.
You mean to create a new tile? You want the used heart to change color or reuse the existing one? Still though, I don't fully understand how it'd be used in the Copy menu.
If you want to, for sure you can use one of the two (c) tiles, I don't recall those being used at all for the File selection menus.
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on November 05, 2021, 08:32:42 am
I tried your setup for sameboy does retroarch playstation classic or mini does not have that setup
Title: Re: The Minucce Yard
Post by: minucce on November 05, 2021, 11:14:26 pm
Try updating your SameBoy core
https://classicmodscloud.com/classic_libretro/nightly/PlayStation_Classic/2021-11-06/so/
Title: Re: The Minucce Yard
Post by: blgmadresh0000 on November 06, 2021, 09:05:07 am
I don't think that will work I am using autobleem 0.9.0 not project eris?
Title: Re: The Minucce Yard
Post by: minucce on November 06, 2021, 10:10:08 am
Oh~!

v.2K21-09-23-2021
https://github.com/KMFDManic/NESC-SNESC-Modifications/releases

----

I think RA SameBoy was updated very recently

Oct 31, 2021
https://github.com/libretro/SameBoy/pull/69

----

Tried latest RA mgba and Gambatte but no SGBC borders.

Guess you'll have to wait until the next KMFDManic SameBoy release, which should have the SGB border option.
Title: Re: The Minucce Yard
Post by: gamingcat02261991 on November 06, 2021, 06:50:48 pm
Here's my service repair request: Fixing the notorious problems with Focus Energy and Rage in Pokemon Red/Blue/Yellow.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 06, 2021, 09:57:19 pm
Here's my service repair request: Fixing the notorious problems with Focus Energy and Rage in Pokemon Red/Blue/Yellow.

I'm sure one of the many forks or hacks based on pokered, pokeblue or pokeyellow already fixed that, alongside many of the glitches and bugs that plague Gen 1, it's just a matter of reading the documentation of the repos or finding forks that have done that.
Title: Re: The Minucce Yard
Post by: minucce on November 07, 2021, 12:13:38 am
I would think the same thing about Pokemon but we should check in case.


EDIT:
https://bulbapedia.bulbagarden.net/wiki/List_of_glitches_(Generation_I) :o

----

(https://github.com/minucce/workbox/raw/df6550ce346c55e070c794be735ea6d2fc10dda9/box13/wip2.gif)

- Automap data not copying yet
- No D-Pad for in-game save menu (continue, save, retry)
- Sprite palette #3 is used for sword so I reworked the heart color idea a bit
- Minor menu touch-ups thinking about

November 07, 2021, 12:28:49 am - (Auto Merged - Double Posts are not allowed before 7 days.)
The Poke community would be years ahead of me.


Shin Pokemon Red/Blue/Green (Bugfix, AI, and QoL patch) - Version 1.22 updated 11-7-2021
https://www.pokecommunity.com/showthread.php?t=427398

https://github.com/jojobear13/shinpokered
https://github.com/jojobear13/shinpokered/tree/lite
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 07, 2021, 01:13:26 pm
I would think the same thing about Pokemon but we should check in case.

EDIT:
https://bulbapedia.bulbagarden.net/wiki/List_of_glitches_(Generation_I) :o

EDIT #2:
The Poke community would be years ahead of me.

Shin Pokemon Red/Blue/Green (Bugfix, AI, and QoL patch) - Version 1.22 updated 11-7-2021
https://www.pokecommunity.com/showthread.php?t=427398

https://github.com/jojobear13/shinpokered
https://github.com/jojobear13/shinpokered/tree/lite

Indeed :D
Anything Pokemon is pretty much already handled wonderfully by the PokeCommunity and their decompilations of the games. They have years and years of research, and a lot of great documentation and Wikis in their repos to easily achieve a bugfixed Gen 1 project.

(https://github.com/minucce/workbox/raw/df6550ce346c55e070c794be735ea6d2fc10dda9/box13/wip2.gif)

- Automap data not copying yet
- No D-Pad for in-game save menu (continue, save, retry)
- Sprite palette #3 is used for sword so I reworked the heart color idea a bit
- Minor menu touch-ups thinking about

Oh wow, dude! You're knocking it out of the park! It's looking great!
Can't wait to see what those touch ups you're thinking off end up being :P

About the Automap, each version of Zelda 1 (MMC1/MMC5) uses a slightly modified Automap code specifically tailored for the mapping.
I think both the MMC1 and MMC5 version use different RAM addresses for certain things, but I am not sure if this might result in changes in the SRAM for the Automap between versions or not.

The variables used for tile flags and some map X/Y coordinates, to be extact:
MMC1: https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/master/MMC1/code/gameplay/automap.asm#L56
MMC5: https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/master/MMC5/code/gameplay/automap.asm#L33

Probably that could have something to do with the SRAM and Automap being saved, but I'm not 100% sure if that's the case, just wanted to mention it as I think it could be related.
Title: Re: The Minucce Yard
Post by: minucce on November 07, 2021, 09:24:38 pm
Enough previews. Get your Zelda Redux ROM dirty!

https://github.com/minucce/workbox/raw/random/box13/menu_wip3.ips
(latest svn build - mmc1 or mmc5)


TODO:
- Game Over menu d-pad
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 08, 2021, 11:02:58 am
Enough previews. Get your Zelda Redux ROM dirty!

https://github.com/minucce/workbox/raw/random/box13/menu_wip3.ips
(latest svn build - mmc1 or mmc5)


TODO:
- Game Over menu d-pad

Just tested this out, it's so cool!
I just gave it a quick test screwing around with the File selection, and loading some copied files to test items, arrow/rupee/bombs amounts and Automap being saved and copied properly.
So far I could only find one very tiny issue, and that's (what I assume) an additional attribute table for the last tile as it does not cover the very last two letters of a character's name when it changes to gray:
(https://i.imgur.com/lhhUw5v.png)

So far that's all I could catch on a quick test.
I have yet to test Dungeon items, keys, doors and maps being copied and saved properly, so that's next.

But the erase and copy system works wonderfully!
It exceeded my expectations for sure! :D
Title: Re: The Minucce Yard
Post by: minucce on November 10, 2021, 12:19:50 am
Release build for Zelda 1 menu:

https://github.com/minucce/workbox/raw/2e4bd2ae87c108e737e3cfb426e12def996dacff/box13/menu_tweaks.txt
https://github.com/minucce/workbox/raw/2e4bd2ae87c108e737e3cfb426e12def996dacff/box13/menu_tweaks.ips
(make further tweaks as appropriate!)


No pictures because functionally same as previews.


Bonus:
- D-Pad for game over menu
- Another copy menu color effect
- Extra menu sound effects based on context

-----

For Goomba Color (emulator) users, check out fork by EvilJagaGenius
https://github.com/EvilJagaGenius/jagoombacolor


Expected to have more bug fixes arriving soon! More game problems? Go write tickets over there.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 10, 2021, 02:15:55 pm
Release build for Zelda 1 menu:

https://github.com/minucce/workbox/raw/2e4bd2ae87c108e737e3cfb426e12def996dacff/box13/menu_tweaks.txt
https://github.com/minucce/workbox/raw/2e4bd2ae87c108e737e3cfb426e12def996dacff/box13/menu_tweaks.ips
(make further tweaks as appropriate!)


No pictures because functionally same as previews.


Bonus:
- D-Pad for game over menu
- Another copy menu color effect
- Extra menu sound effects based on context

Oh wow!
You even went the extra mile and added sound effects for the Copy and Erase features!
DAMN! Hahaha :D
I usually play with sound disabled because it tends to get laggy for me on the laptop I use for hacking, but I enabled it just to hear the SFX. They sound neat and everything seems really tied up together!

I only stumbled into a little incompatibility issue with the Menu Tweaks hack (with the Game Over input code) and Automap, as Automap uses address $17BF20, so I simply moved the Game Over input routine into $153F0 (which has just around $20 bytes free) and now it works properly :D
Here's the converted ASM file for xkas:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/master/MMC1/code/menus/menu_tweaks.asm#L1523

I will be making a post in the Zelda 1 Redux thread as well so people know about the update.
I'll try to see if I can tackle the Save amount of hearts to SRAM feature myself in the meanwhile :D

Would it possible for the Copy/Erase system you made to be ported into Zelda 2 in any way?
I know some of the RAM stuff might change, but possibly the file selection is similar enough?

Thanks again for this amazing feature, you really surprised me with how well and polished the end result ended up being :D


For Goomba Color (emulator) users, check out fork by EvilJagaGenius
https://github.com/EvilJagaGenius/jagoombacolor


Expected to have more bug fixes arriving soon! More game problems? Go write tickets over there.

Oh I also use Goomba Color for my EZ-Flash cart, so I'll probably updated it and test out all of the problematic GBC games with the bugfixed version.
Title: Re: The Minucce Yard
Post by: minucce on November 11, 2021, 11:59:30 pm
Zelda 2 I'd have to really study; if possible, I'll try to transfer the mechanics over.

----

Next out of the grabbag. So you possibly know about the Konami GB Collection (Color), many by Rushiomatsu of Kirby border fame.

https://www.romhacking.net/hacks/6111/
https://www.romhacking.net/hacks/6112/
https://www.romhacking.net/hacks/6113/


Soft reset issues and minor reset flicker bugs are patched out.

ex.
(https://github.com/minucce/workbox/raw/random/box15/gb1%20-%20old.gif) ==> (https://github.com/minucce/workbox/raw/random/box15/gb1%20-%20new.gif)
(seems like everyone has this bug)

(https://github.com/minucce/workbox/raw/4edf77e3fca46c392ffd34770a04fdf44a31fb71/box15/gb2%20-%20old.gif) ==> (https://github.com/minucce/workbox/raw/4edf77e3fca46c392ffd34770a04fdf44a31fb71/box15/gb2%20-%20new.gif)
(original has it too)


Then there's the missing games:

(https://github.com/minucce/workbox/raw/4edf77e3fca46c392ffd34770a04fdf44a31fb71/box15/gradius.gif) + (https://github.com/minucce/workbox/raw/4edf77e3fca46c392ffd34770a04fdf44a31fb71/box15/twinbee.gif)
(other GB3 not shown)


And pressing select at each game title will not return you to Konami main menu either. But it will act like a d-pad option, behaving like original GB games also.


That's out of my kitchen sink. Patches shipped out for testing.
(although now I notice Gradius does not have orange loading flicker in original gbc. wonder where that came from)

Twinbee loading flicker is like that in original gbc too. Not sure what they had in mind with the blue palette switching.

-----

Ys 1 I really want to get back and add Fray's portrait fixes. Plus Datchy compatibility.

November 12, 2021, 08:57:24 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Falcom never makes anything easy. ::)

Based on Fray's helpful information, black burn reduced to this:
(https://github.com/minucce/workbox/raw/4c573e7b9582a1f28e91aa64a0613c0dc53dd29c/box16/hidden.gif)

which reveals some new hidden lighting.


Though now it literally requires un-burning all the font tiles and window trim. Which I have zero idea if it will affect anything else in the entire game. Haven't done it yet as it's going to create a massive cross-compatibility headache with everyone's works (Japan font, Japan Datchy font, Spanish font, English font, Datchy + Spanish + cross-fixed font, Datchy + English + cross-over). Given the new findings, I'd be willing to do it but not that soon.


If it's safe, still requires someone to add new color to each affected portrait. I think everyone uses a unique palette which adds some sanity.
(suggestions on recolor? Fray?)


You can use this on top of your patched rom to apply Fray's Olman's + (partial) un-black fix.

https://github.com/minucce/workbox/raw/4c573e7b9582a1f28e91aa64a0613c0dc53dd29c/box16/hidden.ips
Title: Re: The Minucce Yard
Post by: Fray on November 15, 2021, 11:01:43 am

If it's safe, still requires someone to add new color to each affected portrait. I think everyone uses a unique palette which adds some sanity.
(suggestions on recolor? Fray?)


You can use this on top of your patched rom to apply Fray's Olman's + (partial) un-black fix.

https://github.com/minucce/workbox/raw/4c573e7b9582a1f28e91aa64a0613c0dc53dd29c/box16/hidden.ips

Well, actually, I had already thought of a common color for all portraits. In fact, for the portraits I tested, the four colors to have the double black problem are: 0F 30 27 0F (see image below), so the common color must be halfway between # 27 and # 0F and not even a color who is too dark because otherwise it would go unnoticed. So, taking the nes palette as a reference, we have the colors # 17 and # 16. I would choose # 17 because it is a darker shade than # 27 and also because, if we have to choose a common color, Rossetti has blonde hair and mustache, so taking him as a reference, the "dark blonde" (# 17) for the mustache suits him better, in my opinion.

(https://i.ibb.co/b3YvjMH/rosetti.png) (https://ibb.co/sPc1pd5)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 16, 2021, 04:37:07 pm
Zelda 2 I'd have to really study; if possible, I'll try to transfer the mechanics over.

Ah that's okay :D
There's no hurry or anything, so I'll wait patiently for whenever you get the time for it.
The amount of work and care you put into the Zelda 1 Copy system was just amazing, I can't thank you enough for it haha.

Also, nice thing about the Autoboot hacks now booting the other games too!
It's a delight to have all the games properly boot into some sort of standalone versions from the Collection.

Will keep an eye out for whatever you have next in your projects, as always :D
Title: Re: The Minucce Yard
Post by: minucce on November 18, 2021, 11:18:16 pm
Given how Zelda 2 allows more colors, I made some compromises and design changes.

(https://github.com/minucce/workbox/raw/9c18924c360df4df273c41c5956f5f373bf00532/box17/demo1.gif)

https://github.com/minucce/workbox/blob/9c18924c360df4df273c41c5956f5f373bf00532/box17/menu_tweaks.ips

Nearly over but I could not draw a '?'; always looked terrible. Otherwise I think it's about release grade quality.

----

Autoboots will be delayed because considering restoring SGB border and maybe palettes from Japan collection.

----

Ys 1. Mostly done inserting Fray's work into the patcher engine. Noticed some odd white pixels above Pim's head so fixed it also. Checking a few more portraits before streamlining the post-Datchy font edits.

----

(...) When time allows. Zelda 2 ate a lot of time. :angel:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 19, 2021, 10:49:15 am
Given how Zelda 2 allows more colors, I made some compromises and design changes.

(https://github.com/minucce/workbox/raw/9c18924c360df4df273c41c5956f5f373bf00532/box17/demo1.gif)

https://github.com/minucce/workbox/blob/9c18924c360df4df273c41c5956f5f373bf00532/box17/menu_tweaks.ips

Nearly over but I could not draw a '?'; always looked terrible. Otherwise I think it's about release grade quality.

----

(...) When time allows. Zelda 2 ate a lot of time. :angel:

Oh man, I didn't know you were working on the Zelda 2 stuff already! :O
I gave it a test, and it looks great so far!

For the "?" thing, that one should be easy to address.
I took your IPS, patched it over and then further hacked it to implement a proper question mark into the PPU.
Here:
https://ufile.io/c3gg62cg

You can try it out with Copy and Erase, the question mark should appear now in each sentence and for all combinations possible :D

The way I did was as follows:
Zelda 2 separates its graphics into CHR banks depending on what will be loaded on screen.
The Title Screen and File Select screens use a specific CHR bank, which is exclusive to those screens only.
So, for this instance, I removed the "Small Key" graphic from the title screen CHR graphics, since the Small Key sprite isn't needed for the title screen nor the File Select at all, only when you get in-game it's needed, and replaced it with the custom "?" question mark I made way long ago that's being used for Town graphics/CHR.

The new "?" uses Tile ID $39 for background graphics, so I used $B9 instead of $BA that you were using for the dash, and that was it.
So if you want, simply replace the dash with Hex value $B9, and I'll handle the whole CHR stuff on my end, so you don't have to bother with the graphics editing.

I might also include both the comma and the new question mark into the Character box later on, but that's something for me to work on later, right now you've gone above and beyond with this project and Zelda 1, to the point where everything I wanted for both projects would now be complete.

Give the new changes a try, and if you feel comfortable with it, or any other change is required before going forward, let me know and I'll gladly lend a hand however possible.

Thanks again, minucce, can't thank you enough for all this work!

Title: Re: The Minucce Yard
Post by: minucce on November 19, 2021, 01:17:17 pm
The "?" was the final piece holding it back. I'm greatly satisfied with how Zelda 2 looks. :)
https://github.com/minucce/workbox/raw/81c68a9df74ac64d48df0faf063bdb94c326c769/box17/menu_tweaks.txt

(replaced the - to $b9; no graphics edits since you can snugly fit everything together)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 19, 2021, 07:57:54 pm
Awesome! Thank you SO much, minucce, seriously!
This was the last feature for Zelda 2 Redux, with it I can now consider it a complete project :D

Here's the transcribed code into xkas format:
https://github.com/ShadowOne333/Zelda2-Redux/blob/master/code/menus/menu_tweaks.asm

I made sure to make a proper byte by byte comparison, so everything should be working fine.
I didn't test the Continue/Save screen, but I'll try it out during the weekend properly.

Thanks again! :D
Title: Re: The Minucce Yard
Post by: minucce on November 19, 2021, 08:12:20 pm
You're actually very welcome to the Redux menus! Personally it was worth my time and effort (and a burden lifted for everyone that worked on it). Thankfully the Zelda engines were flexible enough to handle the minor enhancements.

----

Ys 1 wip demos
https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/datchy%20-%20japan.ips  (Ys 1 + Datchy)
https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/datchy%20-%20english.ips  (Ys 1 + Datchy + English MakoKnight)


Apply Datchy first. Optional English. Then plus demo. It's unclear if the black burn fix affects other parts of the game or not.. so not full releasing yet.


1) Zepic Village roof fix

(https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/old.gif) ==> (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/new.gif)

Credit to Fray for this one; honestly it never occurred to me that the raw ppu tile is a static roof 8x8 pixel image. But because it shares the water code ($00), this incorrectly triggers the animation also.

Graphic artist likely didn't realize this either.


2) Portrait fixes

Full credit to Fray. Restores lots of missing details by assigning correct black color 0.

(https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/olman.gif) + (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/pim.gif) + (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/hideout.gif)

(https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/rosetti.gif) + (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/sara.gif) + (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/jeva.gif) + (https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/kraze.gif)


As a bonus, Olman's tile corruption fixed by Fray. Sara and Pim's border frames had some color fixes.


Dios has an odd corruption I'm asking about.
(https://github.com/minucce/workbox/raw/3af2157ed0a25b5ec990a00eb211edba7600e13b/box18/dios-question.gif)

That shield looks wrong? Lower-right corner? No idea how to redraw or replace that tile.
Title: Re: The Minucce Yard
Post by: SomeOldGuy on November 19, 2021, 11:31:05 pm
Yes Sir, that tile was jacked up.  Does this look better?

(https://images2.imgbox.com/3c/e6/gh4IDrPa_o.png)

Patch only fixes the one tile:

https://www.mediafire.com/file/8q9zymicrr8ts9e/Ys_-_Fixed_Shield_Tile.ips/file (https://www.mediafire.com/file/8q9zymicrr8ts9e/Ys_-_Fixed_Shield_Tile.ips/file)

 ;D
Title: Re: The Minucce Yard
Post by: minucce on November 20, 2021, 12:09:22 am
Puyfect! Appreciate your help. :)

SomeOldGuy's Dios Shield fix added to pack
https://github.com/minucce/workbox/raw/6801743395bbc86950aa8330c59eed5a0d2c2e48/box18/datchy%20-%20japan.ips
https://github.com/minucce/workbox/raw/6801743395bbc86950aa8330c59eed5a0d2c2e48/box18/datchy%20-%20english.ips

I'll make sure to update credits and everything when time comes.
Title: Re: The Minucce Yard
Post by: Pethronos on November 20, 2021, 04:05:26 am
Hi Minucce! Wow! Impressive both Zeldas works!!

As for that last English patch, which is the right patching order?

Thanks in advance!  :beer: :beer: :beer:

EDIT: Ok, I had forgotten that Datchy font changes are "too agressive" over the translation  :laugh:

Right patching order: Datchy->English->Repair  :thumbsup:

EDIT 2: I don't get the new changes to the girl's face. Datchy's version's black pixels give a different amount of her face's shadow on the neck. It's fine to me as it is (humble opinion)
Title: Re: The Minucce Yard
Post by: minucce on November 20, 2021, 08:27:30 am
Datchy -> English / Spanish -> Repair


Quote
EDIT 2: I don't get the new changes to the girl's face. Datchy's version's black pixels give a different amount of her face's shadow on the neck. It's fine to me as it is (humble opinion)

I didn't edit Datchy's title screen, so my patching engine is foo'd (and I obviously overlooked it). Let me fix it hopefully today. :(

Thanks for bringing this up quickly! I'll release a Datchy-Spanish-Repair tester also as a bonus.

November 20, 2021, 08:55:28 am - (Auto Merged - Double Posts are not allowed before 7 days.)
https://github.com/minucce/workbox/raw/764c1523dc2ef21699105c31f8c910c2c14915d4/box18/datchy%20-%20japan.ips
https://github.com/minucce/workbox/raw/764c1523dc2ef21699105c31f8c910c2c14915d4/box18/datchy%20-%20english.ips
https://github.com/minucce/workbox/raw/764c1523dc2ef21699105c31f8c910c2c14915d4/box18/datchy%20-%20spanish.ips
Title: Re: The Minucce Yard
Post by: Pethronos on November 20, 2021, 09:41:11 am
The Minucce Yard, Efficiency at your Service (Repair)  :beer: :thumbsup: :laugh:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 20, 2021, 02:22:54 pm
Hey Minucce!
I've been playing Z2R, and everything seems good so far!
I did notice that the Continue screen still responds only to the Select button, so I wanted to attempt making the change myself.

The pointer for the routine is at $1C336 (85CA, with the routine itself being at $1CA85).
It seems to be using a comparison towards AND #$30 (possibly Start & Select?), but for some reason changing it to anything else makes the cursor not respond anymore.
This routine seems to load addresses $F7 and $0744 for inputs on Controller #1 (which I wasn't even aware the game used for button input too).

Since the Continue screen only has two options (Continue and Save), I think having both Up and Down behave as Select would do the same, since no matter if you press Up or Down, any of the two would actually end up moving you to the next option lol. So that's why I thought $0C instead of $30 would be the desired value, since Up is $08 and Down is $04, thus the $0C.

I gave it a bit of a debug, and since Bank 0 seems to load up when this screen appears, I decided to change the pointer from 85CA to 00AE ($2E00), and copied the entirety of the code from $1CA85 up to $1CB17. (I made this change because Bank 7 is already bloated as hell with no free space to work with).
I changed both ANDs at $1CA87 and $1CA90 to a AND #$0C, and I made 4 ASLs instead of the 2 in that routine, since I think the result in accumulator should be $80 in order for the cursor to actually move.
I tried doing just that, changing the pointer to 00 AE and moving the entirety of the code to $2E00, with the changed ANDs and the added ASLs in there, and sure enough, pressing Up does move the cursor now, however Start now no longer responds, and pressing Down behaves as Start haha.

I was wondering if you might have any suggestions in this regard. I do admit my ASM skills are not the most knowledgeable of all, but I try my best to understand the little bit I do know to attempt things on my own.

Here's the modified routine I had at $2E00 btw:
Spoiler:
0000   A5 F7                LDA $F7
0002   29 0C                AND #$0C
0004   0A                   ASL A
0005   0A                   ASL A
0006   0A                   ASL A
0007   0A                   ASL A
0008   85 00                STA $00
000A   AD 44 07             LDA $0744
000D   29 0C                AND #$0C
000F   0A                   ASL A
0010   0A                   ASL A
0011   0A                   ASL A
0012   0A                   ASL A
0013   C5 00                CMP $00
0015   F0 5E                BEQ L0075
0017   24 00                BIT $00
0019   50 5B                BVC L0076
001B   20 A0 D3             JSR $D3A0
001E   C9 FF                CMP #$FF
0020   F0 03                BEQ L0025
0022   EE 9F 07             INC $079F
0025   A2 0F      L0025     LDX #$0F
0027   A9 00                LDA #$00
0029   95 E0      L0029     STA $E0,X
002B   CA                   DEX
002C   10 FB                BPL L0029
002E   A0 C0                LDY #$C0
0030   99 00 07   L0030     STA $0700,Y
0033   C8                   INY
0034   D0 FA                BNE L0030
0036   AD 88 04             LDA $0488
0039   F0 08                BEQ L0043
003B   A9 40                LDA #$40
003D   8D B0 07             STA $07B0
0040   4C 05 CF             JMP $CF05
0043   8D 75 07   L0043     STA $0775
0046   8D 76 07             STA $0776
0049   8D 56 07             STA $0756
004C   8D 55 07             STA $0755
004F   20 10 AB             JSR $AB10
0052   C9 03                CMP #$03
0054   B0 07                BCS L005D
0056   A9 00                LDA #$00
0058   A0 01                LDY #$01
005A   4C F0 CA             JMP $CAF0
005D   20 14 AB   L005D     JSR $AB14
0060   A9 00                LDA #$00
0062   EA                   NOP
0063   EA                   NOP
0064   EA                   NOP
0065   8D 01 07             STA $0701
0068   8D 5C 07             STA $075C
006B   A9 01                LDA #$01
006D   A0 02                LDY #$02
006F   8D 6C 07             STA $076C
0072   8C 5F 07             STY $075F
0075   60         L0075     RTS
0076   10 FD      L0076     BPL L0075
0078   A9 10                LDA #$10
007A   85 EF                STA $EF
007C   A0 06                LDY #$06
007E   B9 74 69   L007E     LDA $6974,Y
0081   99 02 03             STA $0302,Y
0084   88                   DEY
0085   10 F7                BPL L007E
0087   AD 88 04             LDA $0488
008A   49 01                EOR #$01
008C   8D 88 04             STA $0488
008F   0A                   ASL A
0090   A8                   TAY
0091   A9 9C                LDA #$9C
0093   99 05 03             STA $0305,Y
0096   60                   RTS
Title: Re: The Minucce Yard
Post by: minucce on November 20, 2021, 02:53:43 pm
Honestly forgot about Game Over routine.

Code: [Select]
07:ca85

lda $f7 ; current input
cmp $744 ; previous input
beq $caf6 ; wait for unique press

and #$10 ; start = confirm
bne $ca9c

lda $f7 ; down, up, select = move cursor
and #($04|$08|$20)
beq $caf6
bne $caf9

nop #4

warnpc $ca9c


They move cursor on button release (adds delay); I changed it to button press. Old method of bit testing (znv flags) are overly complicated; do directly.

November 20, 2021, 03:38:26 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
I'd better explain old code some more.


and #$30 = select (20), start (10)
asl = select(40), start(20)
asl = select(80), start(40)
-- note: this only sets the (z)ero, (n)egative, (c)arry


If you "bit $f7", then it sets (o)verflow and (n)egative
- (o)verflow = $40 (implies start)
- (n)egative = $80 (implies select)


This won't work for d-pad (08, 04, 02, 01) ==> (20, 10, 08, 04).


EDIT:
You're right. Another two "asl" would shift up, down into 80,40 range. So it would be like .

asl
asl

asl (select = carry, start = 80, up = 40, down = 20)
bcs ==> cursor routine (select)
bmi ==> button routine (start)
bvs ==> cursor routine (up)

asl (start = carry, up = 80, down = 40)
bcs ==> button routine (start)
bmi ==> cursor routine (up)
bvs ==> cursor routine (down)

Complicated but workable.

November 21, 2021, 10:01:21 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
RoboCop - ED-209
(https://github.com/minucce/workbox/raw/random/box1/wip1.gif)

It can walk backwards now. Hopefully SomeOldGuy can submit the other 4 walking chr + tilemaps to complete the loop.

There's still some stray bugs to wrinkle out and post-battle retreating animation uses old chr banks.

It also walks closer to left edge. And garbage tiles when restarting the walk is gone.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 22, 2021, 01:31:34 pm
Honestly forgot about Game Over routine.

Code: [Select]
07:ca85

lda $f7 ; current input
cmp $744 ; previous input
beq $caf6 ; wait for unique press

and #$10 ; start = confirm
bne $ca9c

lda $f7 ; down, up, select = move cursor
and #($04|$08|$20)
beq $caf6
bne $caf9

nop #4

warnpc $ca9c


They move cursor on button release (adds delay); I changed it to button press. Old method of bit testing (znv flags) are overly complicated; do directly.

Sorry I took a brief break during the weekend.
I tested this out, and it works nicely!
I'll push the changes to the repository and if nothing arises, I'll send the update to the RH.net page for Zelda 2 Redux.

I'd better explain old code some more.


and #$30 = select (20), start (10)
asl = select(40), start(20)
asl = select(80), start(40)
-- note: this only sets the (z)ero, (n)egative, (c)arry


If you "bit $f7", then it sets (o)verflow and (n)egative
- (o)verflow = $40 (implies start)
- (n)egative = $80 (implies select)


This won't work for d-pad (08, 04, 02, 01) ==> (20, 10, 08, 04).


EDIT:
You're right. Another two "asl" would shift up, down into 80,40 range. So it would be like .

asl
asl

asl (select = carry, start = 80, up = 40, down = 20)
bcs ==> cursor routine (select)
bmi ==> button routine (start)
bvs ==> cursor routine (up)

asl (start = carry, up = 80, down = 40)
bcs ==> button routine (start)
bmi ==> cursor routine (up)
bvs ==> cursor routine (down)

Complicated but workable.

Oh so part of what I did actually worked?
Now that you explain it, I do get why Down was being registered as Start now.
It's because 04 is one bit to the right of 08 (Up), that's why it was being registered as being Start, and Start no longer working. It partially worked, but not fully, and now I see why.

Thanks again for the extra work, and for the explanation! It certainly helped me understand better what that part of the code was doing, and it's good to know my attempt wasn't entirely a misstep.

As a side (and possible more personal) question, I was wondering, how many assembly languages do you know?
And how did you end up learning them throughout the years?
I am really curious as to how you managed to get that much experience with all this.
Of course, it's just a curious question, it's okay if you don't want to respond to it :P
Title: Re: The Minucce Yard
Post by: minucce on November 22, 2021, 04:23:46 pm
Nothing professional, just a self-taught hobby. Tried everything (graphics, sound, japanese, programming) - was terrible at all of them. Got tired of asking others and being shamed (vanity projects), so I forced myself to slowly learn code (6502, z80, 68000, 65c816, x86, *mips, *arm, *risc, *??) as it seemed like something I could level up. Depended on what system at the time (there's lots).


Over time, tried lots of different things. Cheats, trainers, basic protection, bugfix, unlockers, anti-hacking, improvements, briefly translations, emulators. Whatever I wanted at the immediate time. But I've learned not to work with others as I greatly disliked the disruptive conflicts that came up (there's many burned in my mind, one about catching a cheating partner and expecting *me!!?* to do something about it).


That aside, I still make lots of asm mistakes. Plenty. Over time you start to get a "muscle memory" of what not to do anymore for awhile. And I tend to forget a lot about the other systems I'm not working on. :laugh:

I don't have any tricks on how to get better at coding, other than failure and reading others' work, then experimenting plus understanding what goofy logic they used. Reading an opcode or technical manual does nothing for me unless I have a visual thinking what's going on.


EDIT:
And people greatly overestimate my skill level. There's lots I'm not capable of.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 22, 2021, 05:58:49 pm
Nothing professional, just a self-taught hobby. Tried everything (graphics, sound, japanese, programming) - was terrible at all of them. Got tired of asking others and being shamed (vanity projects), so I forced myself to slowly learn code (6502, z80, 68000, 65c816, x86, *mips, *arm, *risc, *??) as it seemed like something I could level up. Depended on what system at the time (there's lots).


Over time, tried lots of different things. Cheats, trainers, basic protection, bugfix, unlockers, anti-hacking, improvements, briefly translations, emulators. Whatever I wanted at the immediate time. But I've learned not to work with others as I greatly disliked the disruptive conflicts that came up (there's many burned in my mind, one about catching a cheating partner and expecting *me!!?* to do something about it).


That aside, I still make lots of asm mistakes. Plenty. Over time you start to get a "muscle memory" of what not to do anymore for awhile. And I tend to forget a lot about the other systems I'm not working on. :laugh:

I don't have any tricks on how to get better at coding, other than failure and reading others' work, then experimenting plus understanding what goofy logic they used. Reading an opcode or technical manual does nothing for me unless I have a visual thinking what's going on.


EDIT:
And people greatly overestimate my skill level. There's lots I'm not capable of.

Oh wow, so you've basically learned assembly through self-taught process?
That's quite the achievement, and more so the number of assembly languages you have tackled, it's impressive.
I barely know my way through basic 6502, 65816 I kinda understand but pretty basic, and MIPS is something I can only dream of for my OoT/MM projects lol. I have tried learning more, but the most I can understand is 6502 to an extend.

I can relate to your experiences working with other people, I've had my few shares of unpleasant moments as well, and in this regard it is better to work at your own leisure and time frame.

It's always interesting to hear how someone delved into this kind of scene, and what gave the push to continue learning and working on it. Thanks for the response!

PS: Don't worry, people overestimate what I can do too, a lot :laugh:
But your work certainly impresses time and time again, more so since not many in this community are willing to do some sort of public or community work, much less for free, so that's really appreciated.
Title: Re: The Minucce Yard
Post by: minucce on November 22, 2021, 07:54:58 pm
I do get lots of private requests, which enough don't publicly end up in the Yard. Nothing to show off yet for the Konami SGB borders (which I'm actively working on and have mapped out).


It's good that you can see the error you made with Z2 menu, and was able to redesign afterward. That's promising because that's how I learn to get asm better, from fixing my own mess of mistakes.

But I am interested in the Z1 hearts routine, as in trying to guide you through this one for a (slow) learning exercise. Let's start with what (you) already know (not like I know everything either).


0) Started a new game, lost some life, and manual save. Clicked "save" and save state before it ends.


1) We know hearts are at $66f and $670. Put read breakpoint and you should end at 05:8B6D.

Code: [Select]
>05:8B6D: AD 6F 06  LDA $066F = #$22
 05:8B70: 29 F0     AND #$F0
 05:8B72: 09 02     ORA #$02
 05:8B74: 8D 6F 06  STA $066F = #$22


 05:8B77: A9 FF     LDA #$FF
 05:8B79: 8D 70 06  STA $0670 = #$7F

Looks important!


2) Another read takes us here

Code: [Select]
>02:A6C6: B9 57 06  LDA $0657,Y @ $0670 = #$7F
 02:A6C9: 91 C0     STA ($C0),Y @ $68D9 = #$00
 02:A6CB: 88        DEY
 02:A6CC: 10 F8     BPL $A6C6

You've possibly seen this before.


3) Then we end up here.

Code: [Select]
>02:A6F3: AD 6F 06  LDA $066F = #$22
 02:A6F6: 29 F0     AND #$F0
 02:A6F8: 48        PHA
 02:A6F9: 4A        LSR
 02:A6FA: 4A        LSR
 02:A6FB: 4A        LSR
 02:A6FC: 4A        LSR
 02:A6FD: 85 0A     STA $0A = #$19

 02:A6FF: 68        PLA
 02:A700: 05 0A     ORA $0A = #$19
 02:A702: 8D 6F 06  STA $066F = #$22

 02:A705: A9 FF     LDA #$FF
 02:A707: 8D 70 06  STA $0670 = #$7F

 02:A70A: 20 19 A8  JSR $A819

Code: [Select]
>02:A819: A4 16     LDY $16 = #$01
 02:A81B: B9 A1 A6  LDA $A6A1,Y @ $A7A0 = #$48
 02:A81E: 85 0C     STA $0C = #$40
 02:A820: B9 A4 A6  LDA $A6A4,Y @ $A7A3 = #$48
 02:A823: 85 0D     STA $0D = #$06


 02:A825: A0 01     LDY #$01
>02:A827: B9 6F 06  LDA $066F,Y @ $0670 = #$7F
 02:A82A: 91 0C     STA ($0C),Y @ $0653 = #$FF ====
 02:A82C: 88        DEY
 02:A82D: 10 F8     BPL $A827
 02:A82F: 60        RTS -----------------------------------------

Okay. That's more interesting.

I marked A82A as I thought it was interesting.


4) I chose to stop refilling $670 and got a crash. So I looked at 0653.

Code: [Select]
02:A509: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A50C: 85 0E     STA $0E = #$22
 02:A50E: C8        INY
>02:A50F: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A512: 85 0F     STA $0F = #$00


Code: [Select]
>  :6EC4: A5 0F     LDA $0F = #$7F
   :6EC6: F0 0D     BEQ $6ED5
   :6EC8: C9 C0     CMP #$C0
   :6ECA: B0 F4     BCS $6EC0
   :6ECC: A9 00     LDA #$00
   :6ECE: 8D 29 05  STA $0529 = #$00
   :6ED1: 4C BC BE  JMP $BEBC


 02:BEBC: FF        UNDEFINED
 02:BEBD: FF        UNDEFINED
 02:BEBE: FF        UNDEFINED
 02:BEBF: FF        UNDEFINED
 02:BEC0: FF        UNDEFINED
 02:BEC1: FF        UNDEFINED


I'll stop here. If you have questions about any code or answers to give, ask away.


EDIT:
Something I thought about. How do I actually do these things.
1) Recon and map out first what I think are useful areas.
2) Build an abstract blueprint of the what and how to do.
3) Try mucking around with debugger -- zapping code, changing registers, testing branches.
4) Conjure up some test code.
5) Learn to squash and optimize the result, if space is a problem. Sometimes the ROM is Superman-packed and better to expand than go for the neat-and-quaint "it's tiny!" thinking.

Similar to working on car / lawn repairs. Rush in too fast and you're looking at lots more painful hours of undoing that mistake. Some pictures, matching up parts, checking they fit, videotaping the disasm + reasm, and hoping something else broken doesn't flub up your plan.

Not as methodical as iFixit but they're helpful with electronic repairs. Too many tiny pieces.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 23, 2021, 12:01:16 pm
0) Started a new game, lost some life, and manual save. Clicked "save" and save state before it ends.


1) We know hearts are at $66f and $670. Put read breakpoint and you should end at 05:8B6D.

Code: [Select]
>05:8B6D: AD 6F 06  LDA $066F = #$22
 05:8B70: 29 F0     AND #$F0
 05:8B72: 09 02     ORA #$02
 05:8B74: 8D 6F 06  STA $066F = #$22


 05:8B77: A9 FF     LDA #$FF
 05:8B79: 8D 70 06  STA $0670 = #$7F

Looks important!


2) Another read takes us here

Code: [Select]
>02:A6C6: B9 57 06  LDA $0657,Y @ $0670 = #$7F
 02:A6C9: 91 C0     STA ($C0),Y @ $68D9 = #$00
 02:A6CB: 88        DEY
 02:A6CC: 10 F8     BPL $A6C6

You've possibly seen this before.


3) Then we end up here.

Code: [Select]
>02:A6F3: AD 6F 06  LDA $066F = #$22
 02:A6F6: 29 F0     AND #$F0
 02:A6F8: 48        PHA
 02:A6F9: 4A        LSR
 02:A6FA: 4A        LSR
 02:A6FB: 4A        LSR
 02:A6FC: 4A        LSR
 02:A6FD: 85 0A     STA $0A = #$19

 02:A6FF: 68        PLA
 02:A700: 05 0A     ORA $0A = #$19
 02:A702: 8D 6F 06  STA $066F = #$22

 02:A705: A9 FF     LDA #$FF
 02:A707: 8D 70 06  STA $0670 = #$7F

 02:A70A: 20 19 A8  JSR $A819

Code: [Select]
>02:A819: A4 16     LDY $16 = #$01
 02:A81B: B9 A1 A6  LDA $A6A1,Y @ $A7A0 = #$48
 02:A81E: 85 0C     STA $0C = #$40
 02:A820: B9 A4 A6  LDA $A6A4,Y @ $A7A3 = #$48
 02:A823: 85 0D     STA $0D = #$06


 02:A825: A0 01     LDY #$01
>02:A827: B9 6F 06  LDA $066F,Y @ $0670 = #$7F
 02:A82A: 91 0C     STA ($0C),Y @ $0653 = #$FF ====
 02:A82C: 88        DEY
 02:A82D: 10 F8     BPL $A827
 02:A82F: 60        RTS -----------------------------------------

Okay. That's more interesting.

I marked A82A as I thought it was interesting.


4) I chose to stop refilling $670 and got a crash. So I looked at 0653.

Code: [Select]
02:A509: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A50C: 85 0E     STA $0E = #$22
 02:A50E: C8        INY
>02:A50F: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A512: 85 0F     STA $0F = #$00


Code: [Select]
>  :6EC4: A5 0F     LDA $0F = #$7F
   :6EC6: F0 0D     BEQ $6ED5
   :6EC8: C9 C0     CMP #$C0
   :6ECA: B0 F4     BCS $6EC0
   :6ECC: A9 00     LDA #$00
   :6ECE: 8D 29 05  STA $0529 = #$00
   :6ED1: 4C BC BE  JMP $BEBC


 02:BEBC: FF        UNDEFINED
 02:BEBD: FF        UNDEFINED
 02:BEBE: FF        UNDEFINED
 02:BEBF: FF        UNDEFINED
 02:BEC0: FF        UNDEFINED
 02:BEC1: FF        UNDEFINED


I'll stop here. If you have questions about any code or answers to give, ask away.

I think I had most of the routines you have listed there in here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/master/MMC1/code/gameplay/hearts.asm
(I have further modified the file to accommodate your points and the routines)

I only had that for archival purposes, since all that does is overwrite the original routines with the same code, but I had it in place just for when I got around to it.

Almost all code you mentioned is included to some extend in there.
I think the only one which I didn't have included was the one here:
Code: [Select]
02:A509: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A50C: 85 0E     STA $0E = #$22
 02:A50E: C8        INY
>02:A50F: B9 50 06  LDA $0650,Y @ $0653 = #$7F
 02:A512: 85 0F     STA $0F = #$00

As for the one at $6EC4 up to $6ED1...
That one I remember modifying way earlier in the project, when I was doing changes to the original Automap code by Snarfblam.

I remember making changes there specifically for Automap.
The CMP at $6EC8 is the one that determines at what health value the heart sprite will change. In the original it was $80, since it only had sprites for full heart, half heart or empty, but I modified Automap to add 1/4 heart decrements, hence the $C0, so it changes the sprite to 3/4 hearts at $C0.
There's also the JMP there at $6ED1, which is also part of Automap (Partial Heart Routine).
I think that whole part of the code is related to in-game handling of the health/hearts.
Here you can see the specific changes in there from Automap:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/master/MMC1/code/gameplay/automap.asm#L818-L828

Outside of that, from the little I can gather, it seems like the routine at bank 5, $8B6D seems to be the one that's modifying the max value of the hearts at $066F. It's right after the STA $066F at $8B74 that the value changes from whatever the current amount is, to the default of $X2, with the 2 being the value for the default 3 hearts.

By the time the loads from accumulator of bank 2 read the value at $066F, that value has already changed to $X2, so I am inclined to say the one at bank 5 might be key, but I could still be wrong of course.

As for the others, I am not sure how the change/read of $FFs in the $650~ range (and $0670) are modified to #$7F.
For $C0 in RAM, that one seems to be a table of sorts, but I am still not sure what that table is for precisely.
However, one thing I did notice, is that the values at $0650 up to $0655 is a table for the values of the Max Amount of Hearts based on the Save Slot, with $0651, $0653 and $0655 possibly being a terminator, since it's $FF for all 3 instances.
$0650=Max hearts for Save 1
$0652=Max hearts for Save 2
$0653=Max hearts for Save 3

If I modify the amount of hearts manually of a given save slot, and then save, the value at the determined address changes from the default $22 (3 hearts) to whatever the new amount is ($33, $44, etc.).

One other routine I found that seems to write the value at $066F upon save load is the one at $A606, which sets whatever value is at that address to $X2 on load, and this seems to be loading it from the SRAM addresses related to the save file, at $6032:

Code: [Select]
02:A606: B1 00     LDA ($00),Y @ $6032 = #$92
>02:A608: 99 57 06  STA $0657,Y @ $066F = #$99
 02:A60B: 88        DEY
 02:A60C: 10 F8     BPL $A606

So far this is what I have found.
I do get bits and glimpses, but I am not 100% sure if my assumption that the code at bank 5 is the sole one that might need a rework, and/or if the others at bank 2 might be directly related to saving the value to SRAM.

Please do let me know if I am on the right track, and if I missed any pivotal information that could point towards the right direction.
Title: Re: The Minucce Yard
Post by: minucce on November 23, 2021, 02:23:37 pm
SGB(C) is running.

(https://github.com/minucce/workbox/raw/1b50013a3e22a1cc07ed17c69cbb9240c9eeff11/box2/sgb.jpg) + (https://github.com/minucce/workbox/raw/1b50013a3e22a1cc07ed17c69cbb9240c9eeff11/box2/sgbc.jpg)

So they'll all get triple compatible treatment (gb, sgb, gbc). I'll post the source code when they pass client testing, just so others can understand the procedure I followed which is similar to Kirby DX but extended.

But 15 more borders and colors to dig out.

---

Back to Z1. I'll be more long-winded about my descriptions for conversation.

1) Is saving partial hearts important, or just full hearts?

2)
Code: [Select]
05:8B6D

lda.w $066F
and.b #$F0
ora.b #$02
sta.w $066F

There could be others but it's the 1st gatekeeper we encountered, so requires a patch.

I set a breakpoint there.
- Note that I was using Save #2


- Mine says $21. Ran code and wrote $22 back in. Checked menu. 3/3 hearts on load.


- Reload. Changed it to $87. $80 | $02 = $82. Menu has 9 hearts. Game loads with 3/9 full hearts.


- Documented earlier that $68D8-$68D9 is receiving the health values. Repeat last $87 experiment.
  At menu, $68d8 hex edit to $76. Load game. 3 filled hearts.


- Chasing $68d8 around for awhile, you'll see some checksums. A $605a table. Then $68d8 gets discarded later.


- At menu, edit $605a from $22 to $75. Load save 2. 6/8 full hearts.
  A breakpoint at $605a reveals:

Code: [Select]
>02:A606: B1 00     LDA ($00),Y @ $605A = #$75
 02:A608: 99 57 06  STA $0657,Y @ $066F = #$77
 02:A60B: 88        DEY
 02:A60C: 10 F8     BPL $A606


- So we know changing 05:8B6D affects # hearts in menu. But not on load.
  And changing $605a at menu gives us # hearts on load.

  Where do we look next? See who writes to $605a then.


- Repeat save breakpoint. $21 ==> $76. And we catch

Code: [Select]
02:A782: B1 C0     LDA ($C0),Y @ $68D8 = #$72
>02:A784: 91 00     STA ($00),Y @ $605A = #$22
 02:A786: 88        DEY
 02:A787: 10 F9     BPL $A782

which I didn't document earlier. So the traveler went from $66f ==> $68d8 ==> $605a.


- Time to asm experiment.

Code: [Select]
05:8B6D

lda.w $066F
and.b #$F0  ==>  #$FF
ora.b #$02  ==>  #$02
sta.w $066F

Start the tracking. $66f ($22, edit to $76) ==> $68d8 ($76) ==> $605a ($76).

Looks good. Load game. $605a ($76) ==> $66f ($76). Menu shows 7/8 hearts.


- Lose another heart in-game. Re-save and re-load. 6/8 hearts.


- So in short. I just verified what you already discovered and suspected.
  You just needed to take a leap of faith and see where you land.

  When in error like I was above, I backtracked and learned more about other doors to try.

  Maybe make a written diary of the path you took. It's not all useless, just not precisely the exact path to winning.

  And you could've just patched the code and skipped the rest of the detective work. :laugh:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 23, 2021, 03:52:47 pm
Back to Z1. I'll be more long-winded about my descriptions for conversation.

1) Is saving partial hearts important, or just full hearts?

2)
Code: [Select]
05:8B6D

lda.w $066F
and.b #$F0
ora.b #$02
sta.w $066F

There could be others but it's the 1st gatekeeper we encountered, so requires a patch.

I set a breakpoint there.
- Note that I was using Save #2


- Mine says $21. Ran code and wrote $22 back in. Checked menu. 3/3 hearts on load.


- Reload. Changed it to $87. $80 | $02 = $82. Menu has 9 hearts. Game loads with 3/9 full hearts.


- Documented earlier that $68D8-$68D9 is receiving the health values. Repeat last $87 experiment.
  At menu, $68d8 hex edit to $76. Load game. 3 filled hearts.


- Chasing $68d8 around for awhile, you'll see some checksums. A $605a table. Then $68d8 gets discarded later.


- At menu, edit $605a from $22 to $75. Load save 2. 6/8 full hearts.
  A breakpoint at $605a reveals:

Code: [Select]
>02:A606: B1 00     LDA ($00),Y @ $605A = #$75
 02:A608: 99 57 06  STA $0657,Y @ $066F = #$77
 02:A60B: 88        DEY
 02:A60C: 10 F8     BPL $A606


- So we know changing 05:8B6D affects # hearts in menu. But not on load.
  And changing $605a at menu gives us # hearts on load.

  Where do we look next? See who writes to $605a then.


- Repeat save breakpoint. $21 ==> $76. And we catch

Code: [Select]
02:A782: B1 C0     LDA ($C0),Y @ $68D8 = #$72
>02:A784: 91 00     STA ($00),Y @ $605A = #$22
 02:A786: 88        DEY
 02:A787: 10 F9     BPL $A782

which I didn't document earlier. So the traveler went from $66f ==> $68d8 ==> $605a.


- Time to asm experiment.

Code: [Select]
05:8B6D

lda.w $066F
and.b #$F0  ==>  #$FF
ora.b #$02  ==>  #$02
sta.w $066F

Start the tracking. $66f ($22, edit to $76) ==> $68d8 ($76) ==> $605a ($76).

Looks good. Load game. $605a ($76) ==> $66f ($76). Menu shows 7/8 hearts.


- Lose another heart in-game. Re-save and re-load. 6/8 hearts.


- So in short. I just verified what you already discovered and suspected.
  You just needed to take a leap of faith and see where you land.

  When in error like I was above, I backtracked and learned more about other doors to try.

  Maybe make a written diary of the path you took. It's not all useless, just not precisely the exact path to winning.

  And you could've just patched the code and skipped the rest of the detective work. :laugh:

Oh interesting.
So I wasn't far off with the assumption I had.

I do have a couple questions regarding this:

1) Where did you get the $68D8 address from? That's the only RAM address I didn't bump into from what I recall. (Or maybe I'm forgetting some documentation posted earlier).
2) Changing the AND #$F0 to #$FF does seem to make it load the proper value last saved upon loading (who would have guessed it was a one byte change?).
There's a side-effect to this, however, is that if you save near the maximum amount of hearts, when you load the amount gets added +2 to $066F (the ORA #$02). I tested this with $99 at $066F.
I tried giving this a try with a little subroutine, but I'm not sure exactly how to make the comparison here work so that it makes ORA #$02 only when below #$X2 in health, and make it ORA #$00 when it's anything equal or above it.

This is what I have so far:

Code: [Select]
bank 5;
// Routine in charge of saving hearts on manual save or game over
org $8B66 // 0x14B76
ldy.b $13 // Routine index
lda.w $8AE9,y
sta.b $12 // Game mode
jsr save_hearts
nop #07

// Untouched
lda.b #$FF // Load value #$FF
sta.w $0670 // Store $FF in "Partial hearts"
// Jump to $EBA3 (close routine?)

org $85D0 // 0x145E0
save_hearts:
lda.w $066F // Load Hearts address
and.b #$FF // Bitwise AND with #$FF (Org. AND #$F0)
cmp.b #$22 // Compare against #$22 (3 hearts)
bcs not_three
ora.b #$02 // Bitwise OR to #$02 (Org. ORA #$02)
sta.w $066F // Store in address $066F (Hearts)
rts
not_three:
ora.b #$00
sta.w $066F
rts

Right now what it does is simply save up the amount of hearts you had when you saved, but it doesn't default to 3 hearts if the health is 3, 2 or 1 heart. It saves the amount no matter what.
I know BCS is similar to using "Greater than or equal" in 6502 (with BCC being less than), but the problem I might be having is how to use the CMP correctly in this instance.
Title: Re: The Minucce Yard
Post by: minucce on November 23, 2021, 05:02:48 pm
Quote
There's a side-effect to this, however, is that if you save near the maximum amount of hearts, when you load the amount gets added +2 to $066F (the ORA #$02).

Yup! Was quietly hoping you'd notice and write up a real fix; I just wanted to do a hot and dirty test to make sure it was the right code to attack. It is your exercise which you've already mostly completed without my help.

----

Code: [Select]
>02:A6C6: B9 57 06  LDA $0657,Y @ $066F = #$72
 02:A6C9: 91 C0     STA ($C0),Y @ $68B0 = #$00
 02:A6CB: 88        DEY
 02:A6CC: 10 F8     BPL $A6C6

68B0 = save1
68D8 = save2

----

Code: [Select]
save_hearts:
lda.w $066F // Load Hearts address
and.b #$FF // Bitwise AND with #$FF (Org. AND #$F0)
cmp.b #$22 // Compare against #$22 (3 hearts)
bcs not_three

ora.b #$02 // Bitwise OR to #$02 (Org. ORA #$02)
sta.w $066F // Store in address $066F (Hearts)
rts

not_three:
ora.b #$00
sta.w $066F
rts

You are close! So I will just give some commentary and hints.

1) Post-cleanup: When you're done, you can save some space (6+ bytes).


2) Let's write out what's going on.

Code: [Select]
LDA #$22
CMP #$22

$22 >= $22. The debugger (!) flags tells us: Z,C. So bcs = jumps not_three


Code: [Select]
LDA #$21
CMP #$22

$21 < $22. Debugger tells us: N. ($21 - $22 = $FF). No bcs. ora #$02.


Code: [Select]
LDA #$31
CMP #$22    SEC, SBC #$22

$31 > $22. Debugger tells us: C. ($31 - $22 >= $00). bcs not_three. Error.



3) Reminder that $66f is stored as 2 parts ($f0 and $0f).
- Left is max health
- Right is current health


The left value is concrete fixed, won't change. No reason to modify it.
The right value is our problem. It might be easier to isolate it (and #$0f).


If you post a working solution, we can examine whether it can be reduced further. This is where clever people continue to surprise me.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 23, 2021, 05:58:58 pm
I think I now have a working code that behaves like I wanted it to.
It's somewhat rough, and for sure it could be polished up, but from the tests I made, it works properly.

Here's the code:
Code: [Select]
org $85D0 // 0x145E0
save_hearts:
lda.w $066F // Load Hearts address
and.b #$0F // Mask higher nibble (only consider current health, not max amount of hearts)
cmp.b #$02 // Compare result to #$02 (3 hearts)
bcs not_three // Branch if equal or greater than 3 hearts

lda.w $066F // Load Hearts address
and.b #$F0 // Mask lower nibble (to avoid the case of heart value $01 loading as $03)
ora.b #$02 // Bitwise OR to #$02 (Org. ORA #$02)
sta.w $066F // Store in address $066F (Hearts)
rts

not_three:
lda.w $066F // Load Hearts address
and.b #$FF // Bitwise AND with #$FF (Org. AND #$F0)
ora.b #$00 // Bitwise OR to #$00
sta.w $066F // Store in address $066F (Hearts)
rts

I tried several combinations, and they all result in the proper amount of hearts being loaded, and if 3 or lower, it defaults to 3 hearts in all instances (3, 2 and 1 heart, then re-load the game).

Let me know if you have any suggestions or insights on this code!
This has been a really nice experience for sure.
Title: Re: The Minucce Yard
Post by: minucce on November 23, 2021, 06:51:55 pm
I think it looks correct! :)


I'll explain the revised code:

Code: [Select]
save_hearts:
lda.w $066F // Load Hearts address
and.b #$0F // Mask higher nibble (only consider current health, not max amount of hearts)
cmp.b #$02 // Compare result to #$02 (3 hearts)
bcs not_three // Branch if equal or greater than 3 hearts

lda.w $066F // Load Hearts address
and.b #$F0 // Mask lower nibble (to avoid the case of heart value $01 loading as $03) (keep maximum life)
ora.b #$02 // Bitwise OR to #$02 (Org. ORA #$02) (minimum 3 life)
sta.w $066F // Store in address $066F (Hearts)

not_three:
rts


1) dead code removal
(I think you see this so I'll explicitly explain it anyways)

Code: [Select]
lda.w $66f
and.b #$ff
ora.b #$00
sta.w $66f

ex.
- A = $80  ($66f)  (Z,N flags can change in Processor!)
- $80 & $FF = $80  (value of A does not change but it will change the (P)rocessor flags!)
- $80 | $00 = $80  (value of A does not change but it also changes P flags!)
- $66f = $80  (no memory change, no flags change either)

In short, (poof!) it. Which leaves rts.


2) Your comments are excellent, easy for any novice to read and follow. Or for yourself in the future. ;)


3) Here's an (unnecessary) flag trick. Saves no space in this example but for learning.

Code: [Select]
lda $66f
and #$0f
cmp #$02

lda $66f
bcs .exit

and #$f0
ora #$02
sta $66f

.exit:
rts

- cmp.b #$02 sets (c)arry flag
- lda.w does not affect cf (value remains same)
- allows opcode re-ordering


4) (Optional) Bit trick

Code: [Select]
lda $66f
and #$0f
lsr
bne .exit

lda $66f
and #$f0
ora #$02
sta $66f

.exit:
rts

I'll let you decipher this one. Maybe it's buggy but I want to know if you can solve the intent of (lsr).

If you don't see it, write down some examples and trace the values.
(and #$0f limits us to 16 possible starting incoming)


5) ?? Unknown optimization trick I don't see ??


EDIT:
If space was really desperate, you could do this:

Code: [Select]
ldx $66f
txa

and #$0f
lsr
bne .exit

txa
and #$f0
ora #$02
sta $66f

.exit:
rts

but it hugely depends on x or y not being used atm.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 24, 2021, 11:46:42 am
Oh interesting!
I did think that maybe one of the repeated routines could be saved up, but it didn't occur me that simply not storing back the value into $066F wasn't really needed. That helped a lot!

Also, neat thing about using the LSR there! If I'm not wrong, having a branch check directly after an LDA or anything like that, checks directly against $01 (BEQ directly checks against $01, while BNE branches if the result is NOT $01, right?).

From what I understand out of it, the LSR moves the bits of the lower nibble to the right, and with the BNE there, it checks if you have any value $01 or above after the shift right in order to branch to the RTS instead, so this effectively takes care of anything above $02. For the BNE to not branch, the result should be $00 after the LSR.
$01 should only occur if you have $03 or $02 as values, but in the case of $01 and $00, you get $00 in the check, so it doesn't branch and continues to the ORA #$02. Is this correct?


If so, then that's a nice trick to save some extra space, in the dire need of a couple of bytes. Having the knowledge of the Branches always checking against $01 as well by default without doing a CMP can also save a lot of bytes when optimizing code.

On a side note, I stumbled upon something rather odd.
If you start your save file and then move one screen above or in any direction, and save in that other screen, the cursor in the File Select defaults to the 3rd save instead. It seems like after saving, RAM address $16 is incremented.

Funny thing is it only seems to occur when you move from the starting screen, if you save at the starting screen itself, it defaults to the 1st save slot when returning to the File Select screen.
It's a weird little thing, I took the liberty of debugging it and it seems like this is the code that's doing that:

Code: [Select]
02:A2F9: 20 5D A3  JSR $A35D
>02:A2FC: E6 16     INC $16 = #$00
 02:A2FE: A5 16     LDA $16 = #$00

Not sure what this might be doing precisely, but it's such a weird thing to stumble upon haha.

Thanks for all the help to create the Save Hearts code, Minucce. It certainly opened up the view of some opcodes I didn't fully understand before, and this would help to debug better in the future, and to understand better some routines and opcodes I could use as well!
Title: Re: The Minucce Yard
Post by: minucce on November 24, 2021, 02:17:30 pm
Long explanation of LDA + BNE - BEQ

EDIT: Keeps eating my code.

Quote
Code: [Select]
LDA #$00 ==> sets Z flag (zero)
BNE no_this_wont_jump
BEQ yes_jump_right_now


Code: [Select]
LDA #$01-FF ==> clears Z flag  (not zero)
BEQ no_this_wont_jump
BNE yes_jump_right_now


Code: [Select]
LDA #80-FF ==> sets N flag  (negative)
BPL no_this_wont_jump
BMI yes_jump_right_now


Code: [Select]
LDA #00-7F ==> clears N flag  (not negative, positive)
BMI no_this_wont_jump
BPL yes_jump_right_now


Code: [Select]
SEC ==> sets C flag  (carry)
LDA #$00-FF ==> no C flag change
BCC no_this_wont_jump_ever__impossible__dead_c0de
BCS yes_jump_right_now


Code: [Select]
CLC ==> clears C flag  (no carry)
LDA #$00-FF ==> no C flag change
BCS no_this_wont_jump_ever__impossible__dead_c0de
BCC yes_jump_right_now


Since others are reading, re-verification of your LSR analysis.

Bit long so bracket tagged.

Quote
Code: [Select]
LDA #$00
LSR  ==> $00 / 2 = $00
BNE not_happening
BEQ yes_we_are_zero


Code: [Select]
LDA #$01
LSR  ==> $01 / 2 = $00
BNE not_happening
BEQ yes_we_are_zero


Code: [Select]
LDA #$02
LSR  ==> $02 / 2 = $01
BEQ not_happening
BNE yes_we_are_non_zero


Code: [Select]
LDA #$03
LSR  ==> $03 / 2 = $01
BEQ not_happening
BNE yes_we_are_non_zero


Code: [Select]
LDA #$04
LSR  ==> $04 / 2 = $02
BEQ not_happening
BNE yes_we_are_non_zero



Right! Only for 00-01 we fall-through to the ORA #$02.

Nothing more to add. :)

----

Quote
If you start your save file and then move one screen above or in any direction, and save in that other screen, the cursor in the File Select defaults to the 3rd save instead. It seems like after saving, RAM address $16 is incremented.

Funny thing is it only seems to occur when you move from the starting screen, if you save at the starting screen itself, it defaults to the 1st save slot when returning to the File Select screen.
It's a weird little thing, I took the liberty of debugging it and it seems like this is the code that's doing that:

Mmm. Have to check my notes. $16 could be a "submode selecter" -- aka what menu phase we're in. It can only get so much done in 1 VBlank so it split itself into mulitple parts.

----

Quote
Thanks for all the help to create the Save Hearts code, Minucce. It certainly opened up the view of some opcodes I didn't fully understand before, and this would help to debug better in the future, and to understand better some routines and opcodes I could use as well!

Curiously other hackers have learned a lot from reading this exercise also. Bonus!

November 24, 2021, 02:58:29 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Keep tapping $16 writes. Final one says:

Code: [Select]
02:A573: A5 54     LDA $54 = #$02
 02:A575: C9 03     CMP #$03
 02:A577: 90 02     BCC $A57B
 02:A579: A9 00     LDA #$00

 02:A57B: 85 16     STA $16 = #$02
>02:A57D: A9 00     LDA #$00


which turns out to be my code (.. uh-oh!)


Code: [Select]
%org($a573, $02)

main_menu_init_done:
lda $54
cmp #$03
bcc .write

lda #$00 ; default save slot 0


.write:
sta $16


$16 is used as our menu cursor (save 1-3, copy, erase).
(watch hex editor as cursor moves around)


Put a breakpoint on a573.
- Enter copy menu. Quit. $54 = $03 ==> $16 = $00.
- Enter erase menu. Quit. $54 = $04 ==> $16 = $00.
- Copy from 2 to 1. $54 = $00 ==> $16 = $00.
- Copy from 2 to 3. $54 = $02 ==> $16 = $02.

So $54 appears to be a temp var I found and was using. It remembers the last person we selected.

This seems to break on game over.


You have a few quick options:
- Always default to save 1 (makes sense)
- Fix game over to reset to save 1 (or current player). More asm work.
- ..?
- Debug $54 as turns out it's the guilty one (I first thought $16 too)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 24, 2021, 04:02:23 pm
Oh whoops :laugh:
I didn't check if that STA $16 was part of your Menu tweaks code haha

From what I'm seeing, making it default to the first save slot is what would make the most sense, right?
In that case, then perhaps simply forcing it to store #$00 at $16 on menu init should be good enough.

Code: [Select]
org $A573 // 0x0A583
main_menu_init_done:
lda.b #$00 // Default save slot 0
sta.b $16

Having that should do it, right?
Although I'm not sure if the LDA $54 and the CMP #$03 is needed there for anything else.
If it's not, then I think leaving it like this should be good enough.

Let me know what do you think.
Title: Re: The Minucce Yard
Post by: minucce on November 24, 2021, 07:01:15 pm
Quote
I didn't check if that STA $16 was part of your Menu tweaks code haha

I was wondering where it came from and dug around. Surprised me too.


You're fix looks good to me! Discarding $54 is safe because code flow shows us:

Code: [Select]
LDA $54 = #$02
CMP #$03
BCC path_2

path_1:
LDA #$00

path_2:
STA $16 = #$02

path_2a:
LDA #$00
sta $13

lda #$ff
sta $526

inc $11
rts

We always hit path_2. And path_2a says to clobber A = #$00, which removes any evidence we loaded $54 (00-FF).

A smart person can object that the (C)arry flag is still in play. Rest of code shows it is not used (follow code after rts).

You're done!
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 24, 2021, 08:13:39 pm
Neat! Then it's ready to ship :D
Thanks!

A smart person can object that the (C)arry flag is still in play. Rest of code shows it is not used (follow code after rts).

In that case, would you recommend adding a CLC to clear the carry flag?
And if so, where would it be ideal to put it?
Title: Re: The Minucce Yard
Post by: minucce on November 24, 2021, 09:06:04 pm
Quote
In that case, would you recommend adding a CLC to clear the carry flag?

I personally checked it. The Carry flag (c=0 or c=1) gets erased later on so does no damage to us. Original main menu routine itself does not rely on (c)arry flag (0 or 1) so that's a double + to ignore it.


And I had no use for (not)carry beyond that simple cmp. No need to worry this time.
(people like me can preserve it for awhile or use it as (rts exit value) so it is something to be mindful of, but not this case)


EDIT:
If it was important, you'd either have to know the correct value (clc, sec) and set it towards the end (latest possible moment). You don't want some other opcode mucking it up too early (Z80 is very good at doing this to you; xor - or - and are not friendly to carry, unlike the 6502).

Or php / plp.
Or regenerate it from whatever (original old code).


Side-note:
A "ld" on Z80 does not affects Z,C flags. Which requires a harmless "or a" to check if it's zero.
(a | a = a)


Honestly I forgot if it's (not) true for the other chips, but that's why you use a debugger to write up quick opcode tests to see what happens.

Give me a week and likely I'll forget these opcode quirks.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on November 25, 2021, 11:26:18 am
Ah I see.
Then indeed the carry flag is only kept but isn't used at all during its routine, and it effectively gets erased without being used.

It's nice to know!

Thanks for all the detailed explanations, and also thanks yet again for all the wonderful help that you've given to some of the projects I had in preparation for years.
Thanks to all that, all of the points I wanted to cover for both Zelda 1 and Zelda 2 are now a reality, and I can happily say both projects are complete and finished!
If nothing arises, I will push the updates to the Romhacking pages in the upcoming days.

The most sincere and honest thanks for your help!
Title: Re: The Minucce Yard
Post by: minucce on November 30, 2021, 11:28:25 am
Asar code
https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/main.txt


This goes on top of "Super Castlevania IV Uncensored"
https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/blood_drop.ips


Which makes this
(https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/demo.gif)


The rest of the special effect I'm allowing ShadowOne333 to take care of - sprite repaint, reposition, puddle, misc.

November 30, 2021, 01:25:33 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Took a small peek recon work of Wrecking Crew 98. It already crashed when pressing button on this cutscene. :huh:

(https://github.com/minucce/workbox/raw/7ae03dad675c73a44a34b7701e232c2c232111d6/box8/crash.gif)


Code: [Select]
$D4/2263 A4 3C       LDY $3C    [$00:0F3C]   A:1945 X:1942 Y:0000 D:0F00 DB:00 S:1FFB P:envmxdIZc HC:0607 VC:232 FC:03 I:00
$D4/2265 B7 0E       LDA [$0E],y[$D4:7E57]   A:1945 X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0653 VC:232 FC:03 I:00
$D4/2267 85 38       STA $38    [$00:0F38]   A:429C X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0695 VC:232 FC:03 I:00
$D4/2269 C8          INY                     A:429C X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0710 VC:232 FC:03 I:00
$D4/226A 84 3C       STY $3C    [$00:0F3C]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0718 VC:232 FC:03 I:00
$D4/226C 64 3A       STZ $3A    [$00:0F3A]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0733 VC:232 FC:03 I:00
$D4/226E 4C C5 21    JMP $21C5  [$D4:21C5]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0748 VC:232 FC:03 I:00
$D4/21C5 A5 38       LDA $38    [$00:0F38]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0756 VC:232 FC:03 I:00
$D4/21C7 29 FF 00    AND #$00FF              A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0785 VC:232 FC:03 I:00
$D4/21CA AA          TAX                     A:009C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0793 VC:232 FC:03 I:00
$D4/21CB 7C CE 21    JMP ($21CE,x)[$D4:3C84] A:009C X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0801 VC:232 FC:03 I:00
$D4/3C84 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:009C X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0832 VC:232 FC:03 I:00
$D4/3C88 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:00E3 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0873 VC:232 FC:03 I:00
$D4/3C8C FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:012A X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0914 VC:232 FC:03 I:00
$D4/3C90 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:0171 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0955 VC:232 FC:03 I:00
$D4/3C94 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:01B8 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0996 VC:232 FC:03 I:00

Does this look familiar? Otherwise I'll dig deeper.

November 30, 2021, 06:42:18 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Fix:
https://github.com/minucce/workbox/raw/ee6aa1b2ff1eb04dadf3eed5f7762e20a5986579/box8/main.txt
https://github.com/minucce/workbox/raw/ee6aa1b2ff1eb04dadf3eed5f7762e20a5986579/box8/wrecking_fix.ips



Explain:
I wouldn't call this easy. It required comparing 2 very long trace logs for unusual differences.

Code: [Select]
$D4/249A AD A9 18    LDA $18A9  [$00:18A9]   A:0001 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1317 VC:240 FC:25 I:00
$D4/249D D0 0D       BNE $0D    [$24AC]      A:7F01 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1341 VC:240 FC:25 I:00
$D4/24AC 3A          DEC A                   A:7F01 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1355 VC:240 FC:25 I:00
$D4/24AD 0A          ASL A                   A:7F00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1363 VC:240 FC:25 I:00
$D4/24AE 18          CLC                     A:FE00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:eNvmxdIzc HC:0007 VC:241 FC:25 I:00
$D4/24AF 65 3C       ADC $3C    [$00:0F3C]   A:FE00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:eNvmxdIzc HC:0015 VC:241 FC:25 I:00
$D4/24B1 A8          TAY                     A:57B4 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzC HC:0044 VC:241 FC:25 I:00
$D4/24B2 20 B6 FF    JSR $FFB6  [$D4:FFB6]   A:57B4 X:001C Y:57B4 D:0F00 DB:00 S:1FFB P:envmxdIzC HC:0052 VC:241 FC:25 I:00

See value of $18a9. Where did $7f01 come from?

Code: [Select]
$D4/5D23 A2 01       LDX #$01                A:5C06 X:0000 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIZC HC:0085 VC:239 FC:13 I:00

$D4/5D25 8E A9 18    STX $18A9  [$00:18A9]   A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIzC HC:0098 VC:239 FC:13 I:00

$D4/5D28 28          PLP                     A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIzC HC:0107 VC:239 FC:13 I:00
$D4/5D29 6B          RTL                     A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF8 P:envmxdIzc HC:0116 VC:239 FC:13 I:00

For those unfamiliar with snes, X can be 8-bit (-X) or 16-bit (-x) (see Processor flags in trace).
- Sound engine uses 8-bit value. Only writes to $18a9.
- Script engine uses 16-bit value. Reads from both $18a9 and $18aa.

Then where did $18aa gets it value?

Code: [Select]
$D4/FFE8 8D A9 18    STA $18A9  [$00:18A9]   A:7FFE X:20F7 Y:7FFE D:0F00 DB:00 S:1FF7 P:envmxdIzC HC:0721 VC:233 FC:04 I:00

Some line break or pause scripting code. So fix sound engine code to write full 16-bit value.

No more crashes on skipping intro. (Spike cutscene untested)

November 30, 2021, 07:23:25 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
On a side-note, there's a free GBC game called "Tobu Tobu Girl DX"
http://tangramgames.dk/tobutobugirldx


which turns out has a SGB + GBC bug in mGBA, but not BGB.
https://github.com/mgba-emu/mgba/issues/2367

(https://github.com/minucce/workbox/raw/27e0b4607fc7d2d3eb01bcf7254b5b459fbdcc52/box6/tobudx-bad.png) vs (https://github.com/minucce/workbox/raw/27e0b4607fc7d2d3eb01bcf7254b5b459fbdcc52/box6/tobudx-good.png)

which also turns out, that same bug is affecting the Konami GB Collection - Autoboot + SGB compatibility patches.


I consider my work in them complete atm, but you gamers may have to wait awhile until mGBA 0.10.0+.

Because I've been asked a few times privately already, no I'm not releasing them other than to the hacker who originally requested the fixes + improvements. Sorry. You'll just have to wait like (mostly) the rest of us.


When the situation changes, I'll probably let everyone know.

(and no, fixing the games for emulator compatibility would take lots more time than to fix the emulator itself). Please be patient.

November 30, 2021, 07:53:54 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Tested Wrecking Crew 98 - Spike. Okay. No crash.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 01, 2021, 04:38:51 pm
Wow WHAT?!
That came totally out of the blue!
I wasn't expecting both the Blood Drop and the Wrecking Crew fix as well!

Amazing!
As soon as I saw this, I started work, this is what I have:



Asar code
https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/main.txt


This goes on top of "Super Castlevania IV Uncensored"
https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/blood_drop.ips


Which makes this
(https://github.com/minucce/workbox/raw/a5da30090130878d0952fbcd2f290d0572b31ccb/box7/demo.gif)


The rest of the special effect I'm allowing ShadowOne333 to take care of - sprite repaint, reposition, puddle, misc.

I spent the whole day editing the sprites, graphics and everything needed to get this properly working.
I only modified the title screen a little bit to accommodate the blood drop, and I had to also change the blood drop graphics so they appear in the correct Y position on the screen.

Here's the latest patch:
https://www.dropbox.com/s/6xwbcmtk1x9eklt/Super%20Castlevania%20IV%20Uncensored%20%28Headerless%29.ips?dl=0

(I'd post a GIF, but I can't find a way to record the screen nor make a gif in Gentoo with what I have atm :/)

There's just one small drawback to this...
The blood puddle in the stone is mirrored, so you can now see two blood puddles, one where the blood drop falls, and another on the left (what a bloody mess!).

I have the suspicion that this might be due to the tile mapping being shared with the left side of the screen (and some small pixels of blood on the bottom too).
I didn't have time today to attempt to find the tile mapping to hide the left puddle and the bottom tiles, but I'll continue on this tomorrow morning.



Took a small peek recon work of Wrecking Crew 98. It already crashed when pressing button on this cutscene. :huh:

(https://github.com/minucce/workbox/raw/7ae03dad675c73a44a34b7701e232c2c232111d6/box8/crash.gif)


Code: [Select]
$D4/2263 A4 3C       LDY $3C    [$00:0F3C]   A:1945 X:1942 Y:0000 D:0F00 DB:00 S:1FFB P:envmxdIZc HC:0607 VC:232 FC:03 I:00
$D4/2265 B7 0E       LDA [$0E],y[$D4:7E57]   A:1945 X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0653 VC:232 FC:03 I:00
$D4/2267 85 38       STA $38    [$00:0F38]   A:429C X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0695 VC:232 FC:03 I:00
$D4/2269 C8          INY                     A:429C X:1942 Y:7E57 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0710 VC:232 FC:03 I:00
$D4/226A 84 3C       STY $3C    [$00:0F3C]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0718 VC:232 FC:03 I:00
$D4/226C 64 3A       STZ $3A    [$00:0F3A]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0733 VC:232 FC:03 I:00
$D4/226E 4C C5 21    JMP $21C5  [$D4:21C5]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0748 VC:232 FC:03 I:00
$D4/21C5 A5 38       LDA $38    [$00:0F38]   A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0756 VC:232 FC:03 I:00
$D4/21C7 29 FF 00    AND #$00FF              A:429C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0785 VC:232 FC:03 I:00
$D4/21CA AA          TAX                     A:009C X:1942 Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0793 VC:232 FC:03 I:00
$D4/21CB 7C CE 21    JMP ($21CE,x)[$D4:3C84] A:009C X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0801 VC:232 FC:03 I:00
$D4/3C84 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:009C X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0832 VC:232 FC:03 I:00
$D4/3C88 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:00E3 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0873 VC:232 FC:03 I:00
$D4/3C8C FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:012A X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0914 VC:232 FC:03 I:00
$D4/3C90 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:0171 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0955 VC:232 FC:03 I:00
$D4/3C94 FF FF FF FF SBC $FFFFFF,x[$FF:009B] A:01B8 X:009C Y:7E58 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:0996 VC:232 FC:03 I:00

Does this look familiar? Otherwise I'll dig deeper.

November 30, 2021, 06:42:18 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Fix:
https://github.com/minucce/workbox/raw/ee6aa1b2ff1eb04dadf3eed5f7762e20a5986579/box8/main.txt
https://github.com/minucce/workbox/raw/ee6aa1b2ff1eb04dadf3eed5f7762e20a5986579/box8/wrecking_fix.ips



Explain:
I wouldn't call this easy. It required comparing 2 very long trace logs for unusual differences.

Code: [Select]
$D4/249A AD A9 18    LDA $18A9  [$00:18A9]   A:0001 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1317 VC:240 FC:25 I:00
$D4/249D D0 0D       BNE $0D    [$24AC]      A:7F01 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1341 VC:240 FC:25 I:00
$D4/24AC 3A          DEC A                   A:7F01 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1355 VC:240 FC:25 I:00
$D4/24AD 0A          ASL A                   A:7F00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzc HC:1363 VC:240 FC:25 I:00
$D4/24AE 18          CLC                     A:FE00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:eNvmxdIzc HC:0007 VC:241 FC:25 I:00
$D4/24AF 65 3C       ADC $3C    [$00:0F3C]   A:FE00 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:eNvmxdIzc HC:0015 VC:241 FC:25 I:00
$D4/24B1 A8          TAY                     A:57B4 X:001C Y:59B4 D:0F00 DB:00 S:1FFB P:envmxdIzC HC:0044 VC:241 FC:25 I:00
$D4/24B2 20 B6 FF    JSR $FFB6  [$D4:FFB6]   A:57B4 X:001C Y:57B4 D:0F00 DB:00 S:1FFB P:envmxdIzC HC:0052 VC:241 FC:25 I:00

See value of $18a9. Where did $7f01 come from?

Code: [Select]
$D4/5D23 A2 01       LDX #$01                A:5C06 X:0000 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIZC HC:0085 VC:239 FC:13 I:00

$D4/5D25 8E A9 18    STX $18A9  [$00:18A9]   A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIzC HC:0098 VC:239 FC:13 I:00

$D4/5D28 28          PLP                     A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF7 P:envMXdIzC HC:0107 VC:239 FC:13 I:00
$D4/5D29 6B          RTL                     A:5C06 X:0001 Y:00CC D:0F00 DB:00 S:1FF8 P:envmxdIzc HC:0116 VC:239 FC:13 I:00

For those unfamiliar with snes, X can be 8-bit (-X) or 16-bit (-x) (see Processor flags in trace).
- Sound engine uses 8-bit value. Only writes to $18a9.
- Script engine uses 16-bit value. Reads from both $18a9 and $18aa.

Then where did $18aa gets it value?

Code: [Select]
$D4/FFE8 8D A9 18    STA $18A9  [$00:18A9]   A:7FFE X:20F7 Y:7FFE D:0F00 DB:00 S:1FF7 P:envmxdIzC HC:0721 VC:233 FC:04 I:00

Some line break or pause scripting code. So fix sound engine code to write full 16-bit value.

No more crashes on skipping intro. (Spike cutscene untested)

November 30, 2021, 07:53:54 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Tested Wrecking Crew 98 - Spike. Okay. No crash.

The whole day I went bollocks with the SC4 stuff, that I didn't even get time to test this out as well.
I'll make sure to give this one a test.
So in the end, the issue was that there was one opcode that was receiving an 8bit value instead of a 16bit one?

I'll test this as well tomorrow and let you know if I find anything!
Thank you, thank you, thank you for everything!

EDIT:
I tested out the Wrecking Crew 98 fix rather quickly (since I won't have access to the PC I do this stuff on until tomorrow), and indeed, both the crash you mention and the Spike crashes seem to now be fixed! :D
Title: Re: The Minucce Yard
Post by: Pethronos on December 01, 2021, 06:06:35 pm
Hi guys! I know that I always come here to ask things but, here I go...  :P

Shadowone333, your new patch is not compatible with FastRom (asm) anymore. Could you do somthing about it?  :thumbsup:

BTW thanks for all yor hacks and fixes mates, you are awesome!  :beer:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 01, 2021, 06:08:25 pm
Hi guys! I know that I always come here to ask things but, here I go...  :P

Shadowone333, your new patch is not compatible with FastRom (asm) anymore. Could you do somthing about it?  :thumbsup:

BTW thanks for all yor hacks and fixes mates, you are awesome!  :beer:

Which patch are you talking about?
Title: Re: The Minucce Yard
Post by: Pethronos on December 01, 2021, 06:13:52 pm
I don't believe you don't know Vitela's SA-1 and FastRom patches.

https://github.com/VitorVilela7/

https://github.com/VitorVilela7/fastrom/tree/master/super-castlevania-iv

December 01, 2021, 06:27:31 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Oops, it seems that it is compatible if applied after FastRom  ;D

I have to check why I thought that the only way was applying the asm after the Uncensored. I'll check it this weekend in my main laptop.
Title: Re: The Minucce Yard
Post by: minucce on December 01, 2021, 11:13:18 pm
I didn't want to suggest anything about CV4 or W98 until I was sure I could handle them. ;)


Of which, while you were fixing up CV4 (thank you!), I took care of inserting the W98 credits. They might need re-centering, re-naming or ypos adjusting.
(https://github.com/minucce/workbox/raw/b98e4ff265859acb0930ca4488c1cdb648b84ebd/box8/credits1.gif)

https://github.com/minucce/workbox/raw/b98e4ff265859acb0930ca4488c1cdb648b84ebd/box8/wrecking_credits.ips
(thanks to DarkSamus993 for leaving behind lots of useful documentation)


And the source
https://github.com/minucce/workbox/raw/b98e4ff265859acb0930ca4488c1cdb648b84ebd/box8/credits.7z
(I wrote my own packer as I couldn't locate the original graphics tools)


I did see untranslated tiles. Maybe they're unused?
(https://github.com/minucce/workbox/raw/b98e4ff265859acb0930ca4488c1cdb648b84ebd/box8/credits_13_misc.bin1.jpg)

_____________________________________________


I didn't know a FastROM patch existed either (and almost wasted some time). The website says

Quote
You can play the FastROM version with the Uncensored hack.

Apply the .asm file directly into the Uncensored ROM via Asar.

It's a very destructive process and should always be applied first, before anyone else's work (via ips patch or asm modification).

________________________________________________


Current blood preview

(https://github.com/minucce/workbox/raw/cab88a18b1ec21aeca4665bb6c2dd31dc22225cf/box7/wip2.gif)

Very nice touchups! I haven't looked at giving some advice yet on the last problems, but you're a capable hacker.

_____________________________________________________


Wrecking Crew 98 is an original engine bug. Exactly as you described, 8-bit opcode being used when it should be 16-bits.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 02, 2021, 12:32:22 pm
Oh man, you should have just asked me :P
https://www.dropbox.com/s/echwwnkzdzy7gvj/WC98%20Tools.zip?dl=0

I had that one saved up for ages, hopefully it helps you out on something.
I believe it has everything up to the point where I left the last update at.
It should have everything both DarkSamus993 and rainponcho did as well, all of the scripts and other stuff required for extracting the assets and compressing/compiling them back into the game.

All that's needed is a file called "Wrecking Crew '98 (Japan).sfc" inside the /game/ folder and it should work just fine.

I also tested the Credits you made, and they seem to work wonderfully!
All of the characters are now fully translated!
Thanks again, minucce!

If you don't mind, I'll prep up the patches to update the Wrecking Crew '98 translation and call it complete now :)

As for these untranslated tiles:

I did see untranslated tiles. Maybe they're unused?
(https://github.com/minucce/workbox/raw/b98e4ff265859acb0930ca4488c1cdb648b84ebd/box8/credits_13_misc.bin1.jpg)

From what I remember, and I briefly do, I think they're unused assets.
This is 安全第一, which stands for "Safety First".
This specific phrase appears when you defeat an enemy by making a 9-block combo of Pink Walls, serves as some sort of insta-kill. When you achieve that combo, a sign of Bowser with a helmet, and that phrase, appears on the opponent's side.

You can easily test it out in-game with the following cheat code:

Quote
Instant Win (Press A)
C21F2780
C21F280D
C21F3CC9
C21F3D00

That's the one I use to easily win and test stuff out quickly.
Quickly enter a match and press A, you will win almost instantly and you will see that sign appearing, with the proper words translated.
I'm unsure if those untranslated graphics are used or not during the Credits sequence, I haven't checked with a VRAM viewer, but that's the only place where those graphics might show up.
Although, if those graphics DO end up showing up there, since the credits sequence only shows Bowser's graphics in the framing, they might be effectively unused.



As for Super Castlevania 4, I did some more digging with bsnes-plus and its Tile debugging features, and I think I have found the tilemapping for the title screen.

The title screen tiles seem to be around $292300 (in the SC4 Uncensored ROM), each tilemap address seems to be two bytes, corresponding to the tiles themselves.
They all seem to follow a pattern like $1X XX. I have yet to determine which tiles will overwrite the ones for the left puddle and the ones at the bottom, but at least I know where to screw around in the ROM now. :P

I'll continue updating the WC98 translation, and then I'll continue with the SC4 stuff as well today ;)

PS: Btw, I noticed the Uncensored ROM is 4MB, but when actually viewing it in a Hex or graphics editor, it stops having data after the 3MB range, would it possible to trim it down to 3MB instead of 4MB?



I don't believe you don't know Vitela's SA-1 and FastRom patches.

https://github.com/VitorVilela7/

https://github.com/VitorVilela7/fastrom/tree/master/super-castlevania-iv

December 01, 2021, 06:27:31 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Oops, it seems that it is compatible if applied after FastRom  ;D

I have to check why I thought that the only way was applying the asm after the Uncensored. I'll check it this weekend in my main laptop.

Oh I was asking because you only said "your new patch is not compatible with FastROM", but SC4 is not the only SNES game I have worked on, that's why I had to ask which project you were referring to, since you didn't mention the name of the game or project :P

It's nice to know Vitor has a FastROM hack for SC4, and more so that it is compatible with SC4 Uncensored!
I might add the FastROM feature into it, just to it also removes the annoyances of slowdowns, thanks for bringing it up!
Title: Re: The Minucce Yard
Post by: minucce on December 02, 2021, 01:54:08 pm
Quote
PS: Btw, I noticed the Uncensored ROM is 4MB, but when actually viewing it in a Hex or graphics editor, it stops having data after the 3MB range, would it possible to trim it down to 3MB instead of 4MB?

I really doubt there's bank mirroring so should be safe to edit the SNES header flag and manually trim the rest.

December 02, 2021, 02:35:54 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
Got a blood hit at d2:a2af ($2922af). 6 tiles wide.
(https://github.com/minucce/workbox/raw/fc0b51a6ebe4f46273e050afd62f45d0638809ce/box7/hit1.gif)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 02, 2021, 03:38:09 pm
I've been taking way too long because I wanted it to look as close to the original Japanese version as possible, but I think I'll have to settle with look-a-like tiles from the current tileset for the ground :P

I managed to replace the blood splashes on the bottom of the screen:
(https://i.imgur.com/TOQ3qsa.png)

Now, unto the blood puddle, and that should be it :D

PS: For documentation purposes, these are the exact tilemap bytes for the blood puddle on the left:

Code: [Select]
DB 5D DA 5D D9 5D D8 5D

E3 1D E4 1D E5 1D E6 1D E7 1D E8 1D E9 1D

F3 1D F4 1D F5 1D F6 1D F7 1D F8 1D F9 1D FA 1D FB 1D FC

05 1E 06 1E 07 1E 08 1E 09 1E



DONE!

(https://i.imgur.com/4XO7fD0.png)

I really had a hard time trying to make it look good with the available tileset, but I think it looks really good now!
I will retouch the title screen a little bit, to add some blood below the "CASTLEVANIA" title, and then I'll call it a day :D
Title: Re: The Minucce Yard
Post by: minucce on December 02, 2021, 05:25:50 pm
(https://github.com/minucce/workbox/raw/5ed8d9056140543dfc6a40886f7adce22ded496d/box7/diff.gif)

Japan tileset (vram 6600-8e00) looks identical to USA tileset (vram 6000-8800). You could copy over the remaining tiles but it would require redoing the tilemap.

I'd say keep working until you're happy; it's only once you get a 1st impression. Although a good 2nd one can change that. :)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 02, 2021, 06:19:36 pm
From what I've seen, it seems like the US one is missing a small number of tiles. Well, not really missing, but repurposed. I finalized what I was doing with the tilemapping, and I think I'm happy with the result.

Not only that, but I have also finished the reworked title screen, so it combines aspects from both the Japanese release and the US release, for a more proper complete title screen that goes well alongside the blood dropping ;)

(https://i.imgur.com/oD2C2sr.png) (https://i.imgur.com/4XO7fD0.png)

And here's the patch for it:
https://www.dropbox.com/s/6xwbcmtk1x9eklt/Super%20Castlevania%20IV%20Uncensored%20%28Headerless%29.ips?dl=0

If everyone's happy, next would be to simply apply the FastROM patch by Vitor from here:
https://github.com/VitorVilela7/fastrom/tree/master/super-castlevania-iv

After that, it should be ready for update :D
Title: Re: The Minucce Yard
Post by: Pethronos on December 02, 2021, 06:34:09 pm
You can call it a day indeed!!  :beer:
Title: Re: The Minucce Yard
Post by: minucce on December 02, 2021, 06:40:05 pm
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)
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 02, 2021, 07:46:56 pm
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?
Title: Re: The Minucce Yard
Post by: minucce on December 02, 2021, 07:58:22 pm
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.
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 03, 2021, 01:42:04 pm
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:
Code: [Select]
// 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.
Title: Re: The Minucce Yard
Post by: 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

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

Bugs Bunny 2 DX

1) Restore warp fade effect
(https://github.com/minucce/workbox/raw/9b8f2371daff3663ea22b72db5735d0b5c7ad28c/box9/demo.gif)

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)

(https://github.com/minucce/workbox/raw/f733cb7e61ab6838615fbbcae8f2ae35853fb60b/box9/fps_30.gif) vs (https://github.com/minucce/workbox/raw/f733cb7e61ab6838615fbbcae8f2ae35853fb60b/box9/fps_20.gif)
Title: Re: The Minucce Yard
Post by: marc_max on December 04, 2021, 02:46:16 am
Bugs Bunny 2 DX

1) Restore warp fade effect
(https://github.com/minucce/workbox/raw/9b8f2371daff3663ea22b72db5735d0b5c7ad28c/box9/demo.gif)

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.
Title: Re: The Minucce Yard
Post by: minucce on December 04, 2021, 08:49:54 am
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.
Title: Re: The Minucce Yard
Post by: marc_max on December 04, 2021, 12:32:18 pm
Dynamic 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.

(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 :-)


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.
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!
Title: Re: The Minucce Yard
Post by: minucce on December 04, 2021, 01:41:24 pm
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!
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 04, 2021, 03:22:22 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:
Code: [Select]
org $df8000

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


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

Code: [Select]
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 :)
Title: Re: The Minucce Yard
Post by: minucce on December 04, 2021, 03:57:27 pm
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.

(https://github.com/minucce/workbox/raw/e04532f0209de50bd52ee09fb2d187bca5c4c4a5/box10/temple.gif)

(https://github.com/minucce/workbox/raw/e04532f0209de50bd52ee09fb2d187bca5c4c4a5/box10/temple.png)


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.

(https://github.com/minucce/workbox/raw/a52047b1d440aa7ca1674667c21b6903749a061e/box10/title.1.gif)

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)

(https://github.com/minucce/workbox/raw/287af4f47c58c9db89688e9e26a9f00dbdc0951c/box10/datchy_bug.PNG)


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.
Title: Re: The Minucce Yard
Post by: SomeOldGuy on December 05, 2021, 06:36:23 pm
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 
Title: Re: The Minucce Yard
Post by: minucce on December 05, 2021, 06:54:13 pm
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:
Title: Re: The Minucce Yard
Post by: ShadowOne333 on December 05, 2021, 07:08:01 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