News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

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 - binarck

Pages: [1] 2
I think modern RPGs have different goals.
- They have to satisfy bigger audiences. Less room to make design mistakes or gamble on risks.
- Less project time since they have more things to do.
- Micro-optimizations and customizations seem to be a big thing now.
- Must have lots of variety.
- Larger pounds of script, dialogue, cutscenes. In-game bonus stuff.
- Presentation and style emphasis.
- Lower danger of making regrettable in-game mistakes.
- Player must feel like they are progressing.
- Prescence of a virtual assistant to manage the mundane stuff.
- Wouldn't call it hand-holding but clear, unconfusing guidance.
- Game must be winnable without overachieving difficulty.
  (Dark Souls is blistering hard, but there are some clear rules and patterns to discover. Battle education)
- Time efficiency. Gamers must feel like every hour was worthwhile.
- Lots of in-game information and UI assistance.
- Situational awareness. Strengths, weaknesses. Odd misc stuff.
- Socializing. Dialogue. Buddy atmosphere.

I think (S)NES RPGs were simpler enough that you had an idea what to do but still roughed you up with crunchy boss battles. Easier to manage but satisfying because there wasn't an overload of things to be aware of. Rings of Power (SMD) was one I remember more.

Older CRPGs were more about DIY, survival and little help offered. Victory was an achievement; the devs didn't want you to win.



As far as I can tell, the NES version of Ultima 3 only has a single manual, which doesn't mention town names or locations, or list every piece of equipment (e.g. that Iron Sword I mentioned) or compare every weapon to each other (e.g. how does a Mace compare to a Sword?)
Also the only direction given in the manual as to what to do is: "Their quest: to return peace to the kingdom. They must solve the riddle of Exodus." That's pretty vague. A hint guide was sold separately from the game (mentioned in the back of the manual as 'coming soon'), should that really be considered mandatory? Yes the PC version had lots of additional info that came with it but a) this is not that version, and it's unclear that the PC version's info is applicable, even to the vanilla NES game; and b) the hack's readme and release notes don't instruct me that I need to consult the PC version's manuals/map. I'm trying to avoid looking at walkthroughs etc. if possible.

Wow, that's bad.

Sure I could wander around, find more towns eventually, and hopefully find an NPC that explains what the Marks are for, but it's standard for an RPG to explain what something important is before you happen upon it, particularly when it seems to be story-critical. Given it's an open world it's difficult to ensure that happens, but the NPCs in the first town could be more helpful, as a suggestion.

Maybe put important information in the readme? I really need to re-read the (3) PC manuals. :|

The Marks are intentionally not described on purpose, as it is a game puzzle. You can go to the town of "Devil Guard" to gain a few more clues about them but nothing very explicit.

The 4 names are the clues to their use. Kings is an indirect clue to well ..
King British.
But you'll need enough EXP to gain its benefits.

If you need direction on the other 3, we can give vague hints.


Melee: Hand, Mace, Axe, Sword, 2-H Sword
Range: Dagger, Blowgun, Sling, Bow
Armor: Skin, Cloth, Leather, Chain, Plate

Iron Sword > Sword. Guessing it's the +2 Sword, with +4 being better.

Blowguns should be pretty weak.

"The Mystic Armor is somewhere"

It does highlight an important quest fetch item; rejoice when you find me and don't throw me away!. I can get gamers thinking now, meh - useless!

"A man in Grey knows about the Mystic Armor"

That is better without giving away much. Puzzles is part of the series.


Old game books today are probably considered for hardcore "geeks" written by "frail nerds". But they filled in so much imagination. They had the budget to do hard prints and they sure didn't waste their money; high-quality mini-novels to me. And they were often thick!

Ultima 7 stands out to me, since it's the bad guy.
Bard's Tale II for giving you a blueprint and why you shouldn't exactly follow it.
Quest for Glory II hooked me into the new environment well.
Space Quest V was lame-o but it had its Andromeda charm.

Even budget games like Wizard Wars gave you goodies like a cloth pouch with a really dense clear sphere, cube, and I think pyramid.

Then there was Lucasarts Loom audio drama. Half-hour of that and you'd be "replaying" those voices throughout the short story.

Experiences that can't be produced in time machines, vr simulations, museums, stored memory.

I was the "clueless gamer" then. Dive in first, get kicked badly and try to find a way back up. Then read the maps, bestiaries, provided "clue" books and diaries. Realize that blob of bad guy was that all along!


That was difficult because it requires moving code and rebuilding pointer tables, which if done manually is prone to breaking things, and also a major pain in the bum.

I've heard abcde is very good for this.

Old CRPGs can be downright punishing, unforgiving, and taxing. But the reward (er.. entertainment) was about getting past some incredibly annoying hurdles. Regardless of deaths, restarts, clueless exploration; some games would perma-wipe your saves on perfectly timed soul-crushing wipeouts.

But there usually was some way to win if you were that stubborn to keep going. It's really all mental and about the "challenge" of winning against some amazingly unfair odds. Which doesn't always rely on grinding.

@Glass_Cannon_Build has a realistic summary of what it's like playing Wizardry. The original #4 is certified demonic torture but admittedly creative and interesting in its own dark way.

It can be worth your time reading this person, but beware of heavy spoilers. The historian does a wonderful job with his adventuring diaries, with fun humour when needed.

Took him *10 hours* to finish this one.


This can be fixed only partially by changing in-game dialogues, but note that many hints are already present and I believe it would be just a matter of linking them together as organically as possible.

If you talk to every single person in every town, you do get enough hints to put together the correct sequence.

I'd have to replay this one sometime but I remember U3 being light on exposition. It could help to add some of the book lore to the script maybe.


You bring up many valid, interesting Quality-of-Life pointers! Can't help you much but I'll try helping a bit.

'find dawn' = Find the hidden City of Dawn, which is concealed by powerful magic.

'to moon' = The city of Moon. Those people can help dead characters.

finding flowers = I don't remember this one. Maybe it's NES specific?

You can head to Exodus right away. Which you'll find out why it's a bad idea and leave.

There are no fake marks. And each one "imprints" or brands its special power to your party, at cost of life. But I don't remember where they're specifically described what each does.

I get your confusion and frustration. Things could be explained better to help new people.
- Be sure to visit all towns.
- Search for easy to find gold plunder.
- Locate the shrines to boost stats.
- Find healing fountains in dungeons for grinding.

Help Wanted Ads / Re: Some technical help for SMB3 and Ms. Pac-Man
« on: July 24, 2020, 10:42:06 pm »
I had a decent challenge pulling out that data, so I am happy it saved you time! And sure, I'd be willing to give the W1 teaser a whirl when ready.

Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: July 24, 2020, 10:39:32 pm »
Here's a new version of the logo, somewhat between A and B:

Personally I think it's a good combination of the good points of A and B.  The designer took into account the feedback here.

It hits the highlights of previous work, and retains the clarity plus stands out in a bold, fasionable way.

Strong nod to the original Japan logo, with a good touch of balance. Passes my "living room" test.

Agreed. Nice approval to the designer. :)

Personal Projects / Re: Dr. Mario DX
« on: July 21, 2020, 03:58:33 pm »
Tried your hack some bit and it looks nice so far, want to play more later!

Source code was actually far more interesting to me; never seen how a colorizer is done from scratch and your notes lays out everything in a thoughtful approach. Want to read more carefully but great job! Now I kinda get how to use rgbds for once. :)

Personal Projects / Re: Tomato Adventure (GBA) translation/tools
« on: July 21, 2020, 12:25:47 pm »
A = It is good. Maybe a bit thick. Not sure if drop shadows is bit distracting.
B = Clean and visually easy to identify every letter and pixel.
C = Interesting but too crowded? Same size letters is a bit turning me off.

Guess I'll lean towards B but only when going through all 3 like a slideshow. A is my runner-up.

Maybe a font between size A/B would fit my senses. I'm still unsure about the shadow.

I am not willing to add it in the middle of a game, unless the original game has clear indication that this is what the authors wanted to do.

I don't think it would make sense while gameplay is active; only as added NPCs at best.

The "Game Over - Continue - Save - Password" screen was the only other spot I was thinking of. And perhaps when starting a "New Game" when it shows "Game Start - Player 3".

But that would be it.

Could also be done per location and daytime.

To expand, I meant if you "load game" or "game over" at Jova Woods, The Ruins, Town of Yomi, Bathory Mansion, Dracula's Room.. you'd get different unique lines. Which also change if it was morning vs evening.


Last idea about the Cemetary viewing platform. Physically expand the map and make it 4-blocks high and adjust the staircase on the right?


Will take a side on vwf. No risk-it, no biscuit!


Simon_CheckMapCollision_LeftAndRight is not safe to optimize that easily. 05AF (left) vs 0698 (right). Can create invisible platforms in odd places.



If anyone wants to try the floors fall fix, it's short.
Code: [Select]
03:86EA: 4C 20 B2  JMP $B220

>03:B220: 8D 90 03  STA $0390 = #$01
 03:B223: 4C BD DE  JMP $DEBD

When Simon is normally falling (not from jumping) and uses an item, it sets $0390 to $05. So I think it's safe to do.

Didn't realize I could put earlier collision code into $03:b220 to save bankswap, but whatever.

Looked into 3-pillar exploit. Has 2 big problems.
- Sprite oam is unreliable. ObjectScreenYCoord will probably be below. Assume that it's safe to discard alignment of +6-7 pixels, that y-speed (16-bit) will not reach. Could be unsafe to ignore.

- _func_C38A will detect $00 collision and CurrentXScrollingPositionPixels is bumped by 1. Causes 1-pixel foot to get stuck in cliff and exploit succeeds regardless of above check.

Other than nerfing y-subpixel velocity from using item, situation looks bad.

edit: New approach. Widen the water by 1 block? Forces the riddle to be solved.
edit: No side effects yet from both L/R collision optimizer and fall-floors patch.


Now that I understand it's a dramatic theatre play, introduce the off-screen narrator some more? Sometimes randomly show bits of Castlevania or Dracula literature?

- Game Over:
  "What a horrible night to have a curse!" (sympathetic insult to player if dark)

- Load Game:
  "And then, descended a horrible night." (reminder to audience of situation, after coming back from long intermission)

(I'd add more examples but my knowledge of book passages is very dry)

Could also be done per location and daytime. Make the text disappear after some seconds to make it clear someone is speaking. To heighten the mood and another creative easter egg.

Help Wanted Ads / Re: Some technical help for SMB3 and Ms. Pac-Man
« on: July 18, 2020, 04:04:05 pm »
In this old Ms. Pac-Man hack, I need the offsets for the speed to make Ms. Pac-Man faster

$6551 rom + $10 header = $6561. Logged a bunch of samples (16-bit speed).

Code: [Select]
01:E081: B9 51 E5  LDA $E551,Y @ $E551 = #$B0
01:E081: B9 51 E5  LDA $E551,Y @ $E561 = #$B0
01:E081: B9 51 E5  LDA $E551,Y @ $E571 = #$C0
01:E081: B9 51 E5  LDA $E551,Y @ $E591 = #$D0
01:E081: B9 51 E5  LDA $E551,Y @ $E5A1 = #$D0
01:E081: B9 51 E5  LDA $E551,Y @ $E5B1 = #$E0
01:E081: B9 51 E5  LDA $E551,Y @ $E5C1 = #$E0


and to have the fruit appear under the ghost house.

Code: [Select]
old code
 01:D81A: 18        CLC
 01:D81B: 65 05     ADC $05 = #$00

new code
 01:D81A: 20 90 FF  JSR $FF90

 01:FF90: 18        CLC
 01:FF91: 65 05     ADC $05 = #$01
 01:FF93: E0 08     CPX #$08
 01:FF95: D0 09     BNE $FFA0
 01:FF97: C0 02     CPY #$02
 01:FF99: D0 03     BNE $FF9E
 01:FF9B: A9 B0     LDA #$B0        ; ypos
 01:FF9D: 60        RTS -----------------------------------------
 01:FF9E: A9 58     LDA #$58        ; xpos
 01:FFA0: 60        RTS -----------------------------------------


1. In the Luigi Coin Quest demo when you have the Tanooki suit you can turn into a Twimp (which I already did switch the graphics) you can break the regular bricks.

Code: [Select]
old code
 $04:B716: B9 73 B6  LDA $B673,Y

new code
 04:B716: 20 A4 E2  JSR $E2A4

 0F:E2A4: C0 01     CPY #$01          ; check block type ?
 0F:E2A6: D0 08     BNE $E2B0

 0F:E2A8: AD 7A 05  LDA $057A = #$AC  ; check tanooki statue ?
 0F:E2AB: F0 07     BEQ $E2B4

>0F:E2AD: A9 06     LDA #$06          ; break block
 0F:E2AF: 60        RTS -----------------------------------------
 0F:E2B0: B9 73 B6  LDA $B673,Y @ $B674 = #$00   ; normal
 0F:E2B3: 60        RTS -----------------------------------------
 0F:E2B4: A9 00     LDA #$00          ; do nothing
 0F:E2B6: 60        RTS -----------------------------------------


2. In the Luigi vs. Mario demo, Boom Boom acts differently when you fight him.

1. Switch Boom Boom behavior state

Code: [Select]
old code
>01:AE68: B5 9A     LDA $9A,X @ $009E = #$02
 01:AE6A: F6 9A     INC $9A,X @ $009E = #$02

new code = change boom state  [2 (ground) -> 3 (jump) -> 2 (ground) -> 3 (fly) -> 4 (bounce)]
 01:AE68: 20 BF BF  JSR $BFBF
 01:AE6B: EA        NOP

>01:BFBF: B5 9A     LDA $9A,X @ $009E = #$03
 01:BFC1: C9 03     CMP #$03
 01:BFC3: D0 0F     BNE $BFD4
 01:BFC5: A9 4C     LDA #$4C
 01:BFC7: DD 71 06  CMP $0671,X @ $0675 = #$4C
 01:BFCA: F0 08     BEQ $BFD4
 01:BFCC: 9D 71 06  STA $0671,X @ $0675 = #$4C
 01:BFCF: A9 02     LDA #$02
 01:BFD1: 95 9A     STA $9A,X @ $009E = #$03
 01:BFD3: 60        RTS -----------------------------------------
 01:BFD4: B5 9A     LDA $9A,X @ $009E = #$03
 01:BFD6: F6 9A     INC $9A,X @ $009E = #$03
 01:BFD8: 60        RTS -----------------------------------------

2. New jump behavior (less delay, less height)

Code: [Select]
old code
 01:AC0A: A9 A0     LDA #$A0
 01:AC0C: 95 D0     STA $D0,X @ $00D4 = #$12

new code = boom 2  (jump height)
 01:AC0A: A9 D0     LDA #$D0
 01:AC0C: 95 D0     STA $D0,X @ $00D4 = #$12

Code: [Select]
old code
>01:AC47: A5 15     LDA $15 = #$32
 01:AC49: 29 3F     AND #$3F
 01:AC4B: F0 14     BEQ $AC61
 01:AC4D: A5 15     LDA $15 = #$32
 01:AC4F: 18        CLC
 01:AC50: 69 1F     ADC #$1F
 01:AC52: 0A        ASL
 01:AC53: D0 14     BNE $AC69
 01:AC55: A9 18     LDA #$18
 01:AC57: AC 27 07  LDY $0727 = #$00
 01:AC5A: D0 01     BNE $AC5D
 01:AC5C: 0A        ASL
 01:AC5D: 9D 21 04  STA $0421,X @ $0425 = #$00
 01:AC60: 60        RTS -----------------------------------------

new code = boom 2  (wait time)
 01:AC47: A5 15     LDA $15 = #$D1
 01:AC49: 29 01     AND #$01
 01:AC4B: D0 14     BNE $AC61
 01:AC4D: F0 0C     BEQ $AC5B
 01:AC4F: EA        NOP
 01:AC50: EA        NOP
 01:AC51: EA        NOP
 01:AC52: EA        NOP
 01:AC53: EA        NOP
 01:AC54: EA        NOP
 01:AC55: EA        NOP
 01:AC56: EA        NOP
 01:AC57: EA        NOP
 01:AC58: EA        NOP
 01:AC59: EA        NOP
 01:AC5A: EA        NOP
 01:AC5B: A9 01     LDA #$01
 01:AC5D: 9D 21 04  STA $0421,X @ $0425 = #$00
 01:AC60: 60        RTS -----------------------------------------

3. New wall bounce behavior

Code: [Select]
old code
 01:AA67: BC 20 05  LDY $0520,X @ $0524 = #$00

new code = boom boom #5  (super jump)
 01:AA67: 20 ED BF  JSR $BFED

>01:BFED: C9 04     CMP #$04                   ; boom 5
 01:BFEF: D0 08     BNE $BFF9
 01:BFF1: B5 D0     LDA $D0,X @ $00D4 = #$00
 01:BFF3: D0 04     BNE $BFF9
 01:BFF5: A9 90     LDA #$90                   ; new AI
 01:BFF7: 95 D0     STA $D0,X @ $00D4 = #$00
 01:BFF9: BC 20 05  LDY $0520,X @ $0524 = #$00
 01:BFFC: 60        RTS -----------------------------------------

The value gained is small, but I appreciate it for being more focused. Makes it clear that the code engineer is capable of making minor improvements, and looks different from vanilla in terms of presentation.


Did some research on optimizing 'Simon_CheckMapCollision_LeftAndRight' out of interest.

The old code takes 859 cycles.
The new code takes 601 cycles.

This subroutine is usually run 2x per frame.

note: flawed. Don't use.
Code: [Select]

    STY Temp94

    LDA #$B7
    LDA #$4F
    LDA #$01
    JMP SwitchBank_temporary  ($c187)

    LDY Temp94
    JMP Simon_CheckMapCollision  ($d3ac)


    LDA #$FA
    JSR Simon_CheckMapCollision  ($d3ac)
    STA $04

    ldy #$00

    lda NameTableAddressLo   ($5e)
    and #$03
    eor #$03

    LDA #$06
    ADC ObjectScreenXCoord   ($0348)
    ADC CurrentXScrollingPositionPixels  ($53)

    and #$04
    bne +

+   dex
    bpl +

    and #$03

+   lda #$ea
    lda #$03

    jmp $c185

I'd think that if was possible to cache the code into sram and skipping the bankswap, you'd net some more modest gains.

edit: 608 -> 601. Saved few bytes.
edit: Some cleanup from transcribing errors.

+1 for new style. A clever rearrangement and looks more informative than bottom two. Also takes advantage of the wide-look. That inside menu border divider line helps a lot.

First impression sticks better.

I get your point about the healing time being the pause. :)

I don't think adaptive boxes would look that great. Having 'perfect' looking boxes everytime can came off as too sterile and robotic also (which is kinda why I unlike the non-widebox look).

At most just an extra string header flag for [medium, large, extra] or something would cut down the right-side padding. And adding [line break] flag to laurel picture #2 would easily simulate #4 and satisfy me.

As for a vwf, I honestly don't know. You should do a mockup with(out) composite bleeding. Not sure the gain is worth all the fancy trouble.

edit: Possible to add a tiny pause x2 after the Priest's "Amen."? It flashed by so quickly and closed suddenly, felt abrupt.

I shortly compared all 3 versions: vanilla,, widebox.
-- Liked vanilla the least. It may be nostalgic but meh. The font and short text clips turn me off now.

-- Font is nice but the fixed-size box feels restricted. I'd wonder if you had to cut parts of the script to make things fit. And it takes me time to digest everything. It just feels strange to me but it works.

-- Widebox. I'll label this "natural", meaning I don't think about the formatting or anything as much. The text pauses and line breaks are more pleasing to me visually and mentally. Maybe some things can be rearranged like

"Would you like
 to buy a
 [white crystal?]"

And perhaps some boxes can be shrunk down some on the side?

"Find one of the
 13 hidden clues,
 and a riddle
 can be solved"

Or expanded some more?

"Go and buy a white

 That's the first thing
 you must do, the
 beginning of all things."

Perhaps I'm thinking more of the Romancing Saga type resizable dialog boxes.

Still not in the vending machine, because I need enough feedback on whether this dialog size thing is a good idea to have or not.

I suppose after a longer playthrough, my opinion may shift more. But I still think widebox is a better direction so far. Has more breathing room.

I'd think don't hurry putting into the vending machine. Give it some more tweaks and reflection.


Just saw the edit. For Aldra pic, I'd say margin #2. Greatly prefer the blank line added in the middle.

Cemetary = #2 also.

Don't know why but find #1 to be disgusting. Guess it's too close to the side.

Laurel = #4. Clear winner for me.

Short summary: I like padding in general. And not too much excessive blank space. I can be very picky without good reason.

That might change a lot when playing in real-time and turning off the analysis; just enjoyment mode.

#4 on average is good though. I'd go for a mix depending on text to get best results.

I realized that you can jump right and catch the edge of a platform with the far left side of the sprite. So that idea is toast. But a new thought.

Code: [Select]
$86ED  84 94:       sty Temp94

$86EF  A9 FA:       lda #$FA
$86F1  A4 94:       ldy Temp94
$86F3  20 AC D3:    jsr Simon_CheckMapCollision
$86F6  85 04:       sta $04

$86F8  A9 06:       lda #$06
$86FA  A4 94:       ldy Temp94
$86FC  4C AC D3:    jmp Simon_CheckMapCollision

We do the obstacle math for the left side. Because we know the right side is literally just 1.5 8x8 blocks away (12 pixels), we can shortcut all the math. Update ObstaclePointerLo, NameTableAddressLo manually. Then jmp straight to $E9FB and get the other side very quickly. Would save a ton of cycles.

$8655 is only triggered when Simon is falling and hits a (semi-)solid object, so it won't run on most frames.

That's when I'd do the y-pos test which from small testing, I don't think it would affect the fall through floors bug, but I am curious why that happens also.

I might try writing a proof-test to see how well it works later. You pulled off some incredible technical feats with this game; I never realized still how slow the engine is running. That's a bummer. :|


Explanation of floor bug:
- Walk off floor and use item. ObjectXSpeed = 1. ObjectCurrentActionType = 5.
  Note that ObjectXSpeed = 5 when normally falling straight down and using item.

- If the subpixel height gain from using item is large enough, we get a pixel shift.
  Which causes us to miss the floor detection on next frame.

- When item is done playing, $DC86 is called to reset pose.
  Because ObjectXSpeed = 1, game thinks we are walking sideways (not falling).
  Turns off Temp93.

- Simon is allowed to free-fall for at least 1 frame because _loc_C632 is not doing collision detection.

- Sometimes game turns back on Temp93 and Simon keeps falling to next platform below.
  Other times Temp93 is off and dies below.

Not sure if there's another way than to insert kludge at $DC86 to check for ObjectCurrentActionType(05) and turn back on Temp93. :|

But $DC86 runs only 1 frame of lag since it's putting the item away.

Or it can be done here?
Code: [Select]
$86E0  A9 01:       lda #$01
$86E2  20 C0 D3:    jsr CheckIfBoneHeld_SetSimonAutomaticSprite_To_Table_Atimes2plusBone
$86E5  20 7A 87:    jsr Clear_Unknown6Cand6D
$86E8  A9 05:       lda #$05
                            sta ObjectXSpeed
$86EA  4C BD DE:    jmp Object_SetCurrentActionType_For_Simon

It's a 1-time tiny hit for walking off ledges and works to solve the glitch. Although dealing with free space looks annoying.


I have a naive question about this snippet.

Code: [Select]
$86ED  84 94:       sty Temp94
$86EF  A9 FA:       lda #$FA
$86F1  A4 94:       ldy Temp94
$86F3  20 AC D3:    jsr Simon_CheckMapCollision
$86F6  85 04:       sta $04
$86F8  A9 06:       lda #$06
$86FA  A4 94:       ldy Temp94
$86FC  4C AC D3:    jmp Simon_CheckMapCollision

Based on the xspeed, couldn't you just check 1 side or the other? Seems like a waste to check both sides of the map if you're heading in one exclusive direction.


Small gain.

Code: [Select]
lda CurrentXScrollingPositionPixels
sta TempPtr08_lo
lda CurrentXScrollingPositionScreens
ora TempPtr08_lo
sta Unknown39_From_XscrollingPositionDividedBy16
lda CurrentYScrollingPositionPixels_Mod256
sta TempPtr08_lo
lda CurrentYScrollingPositionScreens_maybe
ora TempPtr08_lo
sta Unknown3B_From_8C8D_dividedBy16


I can imagine that if we reduce the range that Simon’s Y-coordinate is automatically aligned to the nearest surface

My safety net was to see the previous oam or physically drawn y-coord on-screen.

Normally when falling down, Simon's last visible frame should always above the platform. In the 3-pillar exploit, he's clearly seen below ground and on a descending velocity; last oam value useful to detect this.

News Submissions / Re: ROM Hacks: Kirby's Dream Land, in Color!
« on: July 15, 2020, 11:19:02 pm »
@knderia saved your bwass link:

Which is still alive!*/

And the permalink is

So if you have some previous stuff that can't be hosted on rhdn anymore, do it that way! Mind sharing any deleted work (in another thread)??


Amazing to play this oldie in living color! Fantastic job! Hope you find a way to deal with some of the "omitted" stuff mentioned in the reviews.

What's interesting is how much height Simon gains due to the jump glitch. 6-7 pixel gain.

Code: [Select]
$863E  A0 10:       ldy #$10
$8640  20 ED 86:    jsr Simon_CheckMapCollision_LeftAndRight
$8643  C9 01:       cmp #$01
$8645  F0 0E:       beq + ; $8655
$8647  C9 02:       cmp #$02
$8649  F0 0A:       beq + ; $8655

+ -- $8655  20 F3 84:    jsr _func_C4F3

All I can think so far is to add a check to see if Simon is above the landing platform before shoving him onto ground. C4F3 clips sprite to ground level, so compare that result to old oam sprite ypos (ram $240).

If originally below, reload old value and block the gain. $04 would be a nice temp variable from Simon_CheckMapCollision_LeftAndRight.

Maybe the FDS version has a smaller y-subpixel velocity boost, making it harder to get up that high?

Personal Projects / Re: Secret of Mana: Script Augmentation Project
« on: July 15, 2020, 11:35:15 am »
Is there a chance to ask the remake devs some of these lingering questions for more insight? Without tipping them off to what you're doing of course.

Pages: [1] 2