News: 11 March 2016 - Forum Rules

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - minucce

Pages: [1] 2 3 4 5
1
Personal Projects / Re: The Minucce Yard
« 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.

2
Personal Projects / Re: The Minucce Yard
« 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!

3
Personal Projects / Re: The Minucce Yard
« 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)

4
Personal Projects / Re: The Minucce Yard
« 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.

5
Personal Projects / Re: The Minucce Yard
« 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.

6
Personal Projects / Re: The Minucce Yard
« on: November 23, 2021, 02:23:37 pm »
SGB(C) is running.

+

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:

7
Personal Projects / Re: The Minucce Yard
« 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.

8
Personal Projects / Re: The Minucce Yard
« 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.

9
Personal Projects / Re: The Minucce Yard
« 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


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.

10
Personal Projects / Re: The Minucce Yard
« 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

11
Personal Projects / Re: The Minucce Yard
« on: November 20, 2021, 12:09:22 am »

12
Personal Projects / Re: The Minucce Yard
« 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

==>

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.

+ +

+ + +


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.


That shield looks wrong? Lower-right corner? No idea how to redraw or replace that tile.

13
Personal Projects / Re: The Minucce Yard
« 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)

14
Personal Projects / Re: The Minucce Yard
« 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/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:

15
Personal Projects / Re: The Minucce Yard
« 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.
==>
(seems like everyone has this bug)

==>
(original has it too)


Then there's the missing games:

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


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

16
Personal Projects / Re: The Minucce Yard
« 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.

17
Personal Projects / Re: The Minucce Yard
« 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

18
Personal Projects / Re: The Minucce Yard
« 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

----



- 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

19
Gaming Discussion / Re: Castlevania II Belmont's revenge GBC
« on: November 06, 2021, 09:16:59 pm »
For normal dma, all games should go through cycle stealing process (to simulate correct vblank times).

For hdma, we're supposed to steal cycles also but I wouldn't know how much (probably not important).


Shantae updates sprites during hblank, which is smart way to use hdma. Double speed hdma transfers 32 bytes; single mode copies 16 bytes.

-- This is where Shantae likely broke down. It's 2x speed game.


EDIT: I will be moving Goomba discussion to
https://github.com/EvilJagaGenius/jagoombacolor

Sorry about that!

20
Personal Projects / Re: The Minucce Yard
« 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.

Pages: [1] 2 3 4 5