Closed meleu closed 6 years ago
Typically, when you're looking at 16-bit addresses in memory inspector, it would display like this:
In this case, the only selectable addresses are 0x000040, 0x000042, 0x000044, 0x000046, 0x000048, 0x00004a, 0x00004c and 0x00004e.
However, just because those are the only selectable addresses, does not mean you can't use an address inbetween those as a 16-bit address for achievements (0x000047 for example).
This is one neat trick I never knew. Maybe I'll read the whole thing
On Nov 27, 2017 2:03 AM, "GameDragon2k" notifications@github.com wrote:
Typically, when you're looking at 16-bit addresses in memory inspector, it would display like this:
[image: image] https://user-images.githubusercontent.com/3225327/33258227-cf076914-d326-11e7-921e-879b1415e074.png
In this case, the only selectable addresses are 0x000040, 0x000042, 0x000044, 0x000046, 0x000048, 0x00004a, 0x00004c and 0x00004e.
However, just because those are the only selectable addresses, does not mean you can't use an address inbetween those as a 16-bit address for achievements (0x000047 for example).
[image: image] https://user-images.githubusercontent.com/3225327/33258508-d910be78-d327-11e7-94ef-63f633657939.png
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347118273, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHenUH9U25FIqiJ1bVlmIon6izoMRks5s6nrTgaJpZM4QrO2- .
Thanks for the explanation @GameDragon2k
Let's move to the next question:
In the Magus' Finish Level template we have:
Finish Level
------------------------------------------------------
0x_LEVEL = Value 0x000001 (1)
0x_LEVEL = Value 0x000002
0x_LEVEL > Delta 0x_LEVEL
Pause 0x_LEVEL > Value 0x000002 ; Different Level
Reset 0x_LEVEL <= Value 0x000000 ; Game Start
I completely understand the first three requirements:
I'm not sure about the last requirement, that resets the hit counter if the game restarts. Looks like a way to prevent password/stage-select-cheat abusing. Could you guys explain it?
And the Pause requirement... I can't see why it should be used.
Thanks in advance.
OK guys, there's no need to go so deep into those Magus templates. I was talking with him and he said something like
These templates I did for myself, not for public. So you shouldn't look so deeply into them.
Then I will change the approach here, I'll use his examples and create a simpler version of each one. A version where I am able to explain each line.
I'll be sure to add a note like "put into consideration that every game is different and some and many times the memory has a different behavior"
I'll be back here when I face new doubts.
Cheers!
True they were only intended to get the ball rolling. And they're pretty good resources. Every game is different
On Nov 27, 2017 3:10 PM, "meleu" notifications@github.com wrote:
OK guys, there's no need to go so deep into those Magus templates. I was talking with him and he said something like
These templates I did for myself, not for public. So you shouldn't look so deeply into them.
Then I will change the approach here, I'll use his examples and create a simpler version of each one. A version where I am able to explain each line.
I'll be sure to add a note like "put into consideration that every game is different and some and many times the memory has a different behavior"
I'll be back here when I face new doubts.
Cheers!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347345690, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHeFFJhh5n2MZU0Iv9s2m7_JDBGtzks5s6zNugaJpZM4QrO2- .
OK guys. I'm done with adapting the Magus templates for noobs.
Here is my renamed and trimmed version: https://github.com/RetroAchievements/docs/wiki/Achievement-Templates
And here is the previous version with Magus templates if you think I've cut to much stuff: https://github.com/RetroAchievements/docs/wiki/Example-Achievement-Types/f800672a18726c39d341595cfe92c010c9587a38
Feedback is welcome!
It was a pain but I think I finally have a good structure for devs documentation in mind:
Getting Started as an Achievement Developer: it's for the very first contact with cheevos development tools (Memory Inspector and other Achievements dialogs).
Achievement Logic Features: describes delta values, hit counts, ResetIf, PauseIf, N64 Special flags, alt groups...
Real Examples: getting real examples and breaking down the logic behind them. This page can be an awesome place where the devs can share their tricks to avoid cheating and stuff like that!
Tips and Tricks: general tips and tricks about memory digging and achievement creation.
Achievement Templates: the Magus templates. Maybe we can add more in the future.
I'll try to go through that page with Cirellio's thoughts and put the info I find there in some of the pages above.
In my humble opinion the documentation project is getting pretty good!
I had originally planned to have other information in https://github.com/RetroAchievements/docs/wiki/Achievement-Logic-Features, but since it's just achievement stuff now, I think it might be better merged with another page.
@GameDragon2k could you anticipate what kind of info it would be?
@kdecks changed a bit the requirements ordering of the example you've added to the templates page. I did it trying to make the explanation slightly clearer. Like:
Conditions 1 and 2 together mean "arrived the level without the item".
Are you OK with me editing this?
Yes I am. I went in and made a, few further edits
On Nov 28, 2017 8:23 PM, "meleu" notifications@github.com wrote:
@kdecks https://github.com/kdecks changed a bit the requirements ordering of the example you've added to the templates page. I did it trying to make the explanation slightly clearer. Like:
Conditions 1 and 2 together mean "arrived the level without the item".
Are you OK with me editing this?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-347741205, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHXsrVS5pRsjlRudFJuba-iVQUxxXks5s7M5DgaJpZM4QrO2- .
Par codes on the getting started page, that link is broken. Also this could be used for cheating undetected, thus I have some concerns with teaching new devs how to use it.
@kdecks I've removed it. I'll try to improve the final words of that guide with some instructions on "how to get developer status on RA site". Will report here when I have something.
I'm not 100% against it. I'm using Cheat Engine occasionally to do the same thing, GameDragon is planning to add a similar function sometime. Just something to consider on how we want to best approach it.
I'm 100% against it being in the Getting Started page. I didn't used it myself, but if you think it's useful, we can add in another page (such as Developer Resources).
yeah that's about how I feel about it
On Nov 30, 2017 7:13 PM, "meleu" notifications@github.com wrote:
I'm 100% against it being in the Getting Started page. I didn't used it myself, but if you think it's useful, we can add in another page (such as Developer Resources https://github.com/RetroAchievements/docs/wiki/Developer-Resources).
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/RetroAchievements/docs/issues/3#issuecomment-348381637, or mute the thread https://github.com/notifications/unsubscribe-auth/AfMPHdqy6ZqMC38ynOxWMTrDS-kj5BOiks5s72DWgaJpZM4QrO2- .
I've added this info in the Getting Started page:
Technically an achievement is a group of conditions that must be met in a particular frame of the video game.
When you launch a game on an emulator with the RetroAchievements feature, the emulator is always checking if those conditions are met in the current frame. When all conditions for a particular achievement are met, the achievement is awarded and the emulator stops checking this particular group of conditions.
Could you guys confirm if this information is accurate?
Hey! That conditional resets trick is great!
Hello fellows @kdecks and @GameDragon2k
I'm going to split the Real Examples into separate pages, one for each example. IMO it will be more organized and manageable.
@GameDragon2k @kdecks Is this Majora's Mask "concept" a real achievement? If yes, could you guys provide me the link?
I think this cheevo deserves to be on Real Examples section.
@kdecks Helped MoonLegend with Majora's Mask. Question better suited to him.
It's not a real achievment. It was an idea for a real achievement, he went for a simpler solution.
ToDo list:
EDIT: ToDo list is now on its own thread #6
I've standardized the term for "Discussion pages" to "talk page" (maybe "talk thread" is more appropriate) to mirror what you'd find on most standard wikis. Notably wikipedia and wikia. I also renamed this page and tagged it.
I've noticed as well that the to-do items are only displayed on the issues page if they are in the initial post. I'm thinking to create an initial post for "main stuff", like we do with the first post in our forum topics.
ie a place where any maintainer can add a link to the page, to-do items, and other important stuff.
@kdecks @gamedragon2k
In the Beginner Tips page there is a tip that confused me. Well, IMHO if it confuses me it can confuse others... 😅
Then I think it can be better written by a more experienced dev. The item is this one:
16-bit requirements do not have to be used on an even number of RAM, they can be used in-between properly, even if 16-bit view doesn't show it right. Ex: 0 1 2 3 4 5, in 16-bit it's usually viewed as 10 32 54, but if you start the address at the 1 here in your requirement, "21" will be read by the achievement, even if 16-bit view in the memory viewer isn't showing it. It also works if it's the last address in the line(starting at F, going to 0).
Also, many of tips there is very basic that deserves to be in the "Getting Started..." page. Things like
ResetIf
,PauseIf
,Delta
, etc.I compromise myself to overhaul the "Getting Started" page adding stuff I'm learning currently. It still lacks many info.