Harvest Moon 64 Farm Statistics Math Equation Help

Discussion in 'Nintendo Game Development' started by BigIVIO, Dec 29, 2015.

  1. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    I have been working endlessly for the last 6ish months trying to uncover all the secrets of Harvest Moon 64 and put them in a guide that once and for all will unravel all of the mysteries this game holds. However I have come to a point where I am stumped and need to ask for help.

    There is a Farm Statistics screen in Harvest Moon 64 that is present in the JP version by default and exists in the English version by way of a Gameshark code. I have attempted to use Cheat code engine to calculate everything that goes into this 100% game completion but I get varying results with each attempt and I have never been able to reach 100%, even in a game I played through legitimately and received every possible in game item and maxed out all character affections prior to Summer year 3 (I received 99% overall).

    I believe there is an equation that someone who is more skilled with hex and pointer scans using Cheat Code Engine could decipher. I have attempted to do so, but have not succeeded so far. The number is calculated using floats (which I found very odd for a 64 game) and can reach 999% though I doubt that is actually obtainable.. The data I have amassed so far for this farm statistics screen can be found here (http://www.gamefaqs.com/boards/197528-harvest-moon-64/72743343).

    If anyone could help me find the equation that is being used to calculate these percentage totals I, as well as the rest of the Harvest Moon community, would greatly appreciate it.
     
  2. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    So I accidentally quoted and replied to myself while trying to update my original post so just ignore this second post
     
    DeChief likes this.
  3. DeChief

    DeChief Rustled.

    Joined:
    Jan 25, 2014
    Messages:
    1,704
    Likes Received:
    713
    I saw that and chuckled :D
     
  4. supersega

    supersega I have 7 and a half PS1s in my room alone.

    Joined:
    Jul 25, 2014
    Messages:
    491
    Likes Received:
    145
    Sounds broken. Even the GameFAQ site goes up to 98%. Also, he talks about it just randomly stopping.
     
  5. SubDrag

    SubDrag Rapidly Rising Member

    Joined:
    Mar 13, 2011
    Messages:
    92
    Likes Received:
    15
    Yeah, since you can't find anything using normal means, you'll need to do disassemble the routine for calculating the %, and see how it calculates, and perhaps find the missing stats (if exist). I'm afraid I've never played this game before.
     
  6. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Right this is what I need. I've attempted to do it myself but have been unsuccessful. It is easy to locate the memory address that the calculation is being placed in (if you use my gameFAQs guide I posted above), but my inexperience with assembly code leaves me confused as to which calculations are happening and where. I'm sure someone with a better knowledge of assembly could easily break down the equation using cheat engine (or something like it).
     
  7. SubDrag

    SubDrag Rapidly Rising Member

    Joined:
    Mar 13, 2011
    Messages:
    92
    Likes Received:
    15
    If you provide the ram address and how to get to percentage menu I will take a brief look. But having never played the game, it's probably best for you to learn assembly hacking and do it, unless you can find someone who's played it.
     
  8. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Hey Sorry for the delayed response, the cheat to access the menu is
    D1170404 0020
    801D62BD 0002

    If you are using project 64, on the main menu screen press Q (L on an N64 controller) and the push the right arrow key. Your cursor will now be over an invisible button. Push X ( A on a controller ) and you will now be in the menu.

    If you are using cheat engine, you must first make a new harvest moon 64 game and then save it by reading your diary and going to bed. Then reset and go to the hidden statistics screen and then search for a float with the value 0.6571428776, make sure the rounded radial button is checked not the truncated radial box. It should only return one result. This is the address to monitor.
     
    Last edited: Jan 4, 2016
  9. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    I don't have the full definition yet, mostly since I don't have a reference for the stats as stored in the save file. Documenting them while going along. I'll figure out the detailed routine later.

    The function at 800EAA9C generates the percentage and stores it with save data, but only when you aren't default.
    There's at least one fault in the routine! One happiness value (at 801FB851[entry]) is read twice while the one following it (801FB858[entry]) isn't read.
    A "complete" file should come to 70 pts. All the saved values are multiplied by percentages, added together, and the result truncated to nearest int before being divided by 70.0. If you're at all familiar with float math that creates some inaccuracy, but that said there's definitely a flaw if the Japanese and USA games don't add to the same values.

    Also, localization for that screen is eek!
    Change 800E24B4 (0xBD8B4) to ADDIU V0,R0,0002 to enable menu access. Changing in ROM requires a checksum recalc.
     
    BigIVIO likes this.
  10. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Wow, thank you so much. I can't wait to see the full routine. I believe you were also the one that dumped this games dialogue a year ago. May I ask you, what tools do you use to do this work as well as what resources you used to teach yourself mips assembly? I code Java and C for a living, but I struggle when it comes to reading and accessing the data in these games. I realize this is asking quite a bit but if you ever have a moment could you possibly make a video/tutorial on how you accessed this data? I would be extraordinarily grateful.
     
  11. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    Nemu has a decent debugger built in. I can't run MAME (the only other N64 emu with a debugger currently) but that's an option as well.
    Basically set a write watch on the float to find the routine, and you were kind enough to provide the initial value for a new save file so finding that was a simple search ;*) Then got caught up figuring out what the other values that were saved are, mostly through substitution after determining the bitlengths looking at how they're loaded and stored. They couldn't just have a screen that displays everyone/thing's affection now could they?

    Pretty much taught myself just reading through the CPU manual. Here's one right here!
    http://n64dev.org/p/U10504EJ7V0UMJ1.pdf
    Most opcodes are self-explanatory (except ADDIU throws everyone). Honestly, you can probably just browse through the disassembly window in Nemu and figure it out without the manual.

    The data dumps were made and formatted via some python scripts, and those were mutilated and/or copied from previous projects. Honestly I can't remember how complete they are though.
     
  12. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Thank you so much, that document is great. I had been reading another one previously but it was not as in depth as this one. It was an ultra 64 manual. Are you able to alter the code and do checksum recalcs in Nemu like you can in LemAsm or does Nemu simply offer the debugging ability? I looked through the debugger briefly at work today and couldn't find any editing capabilities so I wanted to check and make sure I wasn't missing something.
     
  13. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    Just at runtime. It doesn't copy back to the ROM. Ditto for MAME.
    You can use the memory editor window to hexedit during play. If you're changing ASM set a BP on the instruction you're changing, change it in the memory editor, press step, then you can remove the BP. (This updates the dynamic recompiler so the change is effective)

    So, here's the raw for the routine.
    Note it adds all the results of the multipliers together and divides by 70.0. The mutlipliers you figured out are basically max value for something / 70.0. At max the dog's affection can be 255, and divided by 70.0 is 1.4285714185714285714285714285714. That's really, really close to what you have.

    Code:
    800EAA9C	compute and set percentage complete for save file entry A0
    	accepts: A0=save file entry
    	801FB978[entry][0:4] = 0
    	v = 801FB812[entry] * 0.39215686	# 25/64	MFHI(0x80808081 * value * 100) >> 7
    	d = (double) v
    	if v < 0:
    		d += @801236D8	# these are all 4294967296.0, a correction for negative values
    	v = 801FB819[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @801236E0
    	v = 801FB820[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @801236E8
    	v = 801FB827[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @801236F0
    	v = 801FB82E[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @801236F8
    	v = 801FB835[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123700
    	v = 801FB83C[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123708
    	v = 801FB843[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123710
    	v = 801FB84A[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123718
    	v = 801FB851[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123720
    	v = 801FB851[entry] * 0.39215686	# This one is read twice while 801FB858[entry] isn't read at all!
    	d += (double) v
    	if v < 0:
    		d += @80123728
    	v = 801FB85F[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123730
    	v = 801FB866[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123738
    	v = 801FB86D[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123740
    	v = 801FB874[entry] * 0.39215686	# This is an array of 8 happiness values for your cows.
    	d += (double) v
    	if v < 0:
    		d += @80123748
    	v = 801FB875[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123750
    	v = 801FB876[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123758
    	v = 801FB877[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123760
    	v = 801FB878[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123768
    	v = 801FB879[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123770
    	v = 801FB87A[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123778
    	v = 801FB87B[entry] * 0.39215686	# 25/64
    	d += (double) v
    	if v < 0:
    		d += @80123780
    	v = 801FB8AC[entry] * 16.6666666	# 50/3	MFHI(0xAAAAAAAB * value * 100) >> 2
    	d += (double) v
    	if v < 0:
    		d += @80123788
    	v = 801FB8B4[entry][0:4] * 0.0100001	# 1/100	MFHI(0xA7C61A3B * value * 1000) >> 16
    	d += (double) v
    	if v < 0:
    		d += @80123790
    	v = 801FB8D0[entry][0:4] * 0.050005	# 1/20	MFHI(0x68DE3AF * value * 500) >> 8
    	d += (double) v
    	if v < 0:
    		d += @80123798
    	v = 801FB8EC[entry][0:4] * 0.050005	# 1/20
    	d += (double) v
    	if v < 0:
    		d += @801237A0
    	# 800EB3D4
    	v = 801FB908[entry][0:4] * 0.5126709	# 64/125
    	d += (double) v
    	if v < 0:
    		d += @801237A8
    	v = 801FB924[entry][0:4] * 0.064	# 8/125	MFHI(0x431BE2E9 * value * 1000) >> 18
    	d += (double) v
    	if v < 0:
    		d += @801237B0
    	v = 801FB94E[entry] * 0.4	# 2/5 MFHI(0x10624DD3 * value * 100) >> 4
    	d += (double) v
    	if v < 0:
    		d += @801237B8
    	v = 801FB955[entry] * 100
    	d += (double) v
    	if v < 0:
    		d += @801237C0
    	# 800EB548
    	v = 801FB95C[entry] * 2.85714286
    	d += (double) v
    	if v < 0:
    		d += @801237C8
    	v = 801FB963[entry] * 16.66666666	# 50/3
    	d += (double) v
    	if v < 0:
    		d += @801237D0
    	# 800EB604
    	v = 801FB940[entry][0:2] * 0.83333333	# 5/6	MFHI(0x88888889 * value * 400) >> 8
    	d += (double) v
    	if v < 0:
    		d += @801237D8
    	v = 801FB96A[entry][0:2] * 1.56862745
    	d += (double) v
    	if v < 0:
    		d += @801237E0
    	# 800EB6C4
    	d = (single) d
    	if 2.147484E9 < d:
    		8016FDFC = int(2.147484E9 - d)
    	else:
    		8016FDFC = int(d)
    	801FB978[entry][0:4] = d / 70.0
    800EB74C
    There's a total of seven save file slots, though some might just be transitory for copying or comparison, etc. They copy the save files into a struct, and filling in what things are still
     
    BigIVIO likes this.
  14. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    Didn't fit in the above post. Working list of what things are.
    Code:
    801FB708	file 1: farm name
    801FB70E	file 2: farm name
    801FB714	file 3: farm name
    801FB71A	file 4: farm name
    801FB720	file 5: farm name
    801FB726	file 6: farm name
    801FB72C	file 7: farm name
    801FB732	file 1: player's name
    801FB738	file 2: player's name
    801FB73E	file 3: player's name
    801FB744	file 4: player's name
    801FB74A	file 5: player's name
    801FB750	file 6: player's name
    801FB756	file 7: player's name
    801FB75C	file 1: name
    801FB762	file 2: name
    801FB768	file 3: name
    801FB76E	file 4: name
    801FB774	file 5: name
    801FB77A	file 6: name
    801FB780	file 7: name
    801FB786	file 1: name
    801FB78C	file 2: name
    801FB792	file 3: name
    801FB798	file 4: name
    801FB79E	file 5: name
    801FB7A4	file 6: name
    801FB7AA	file 7: name
    801FB7B0	file 1: dog's name
    801FB7B6	file 2: dog's name
    801FB7BC	file 3: dog's name
    801FB7C2	file 4: dog's name
    801FB7C8	file 5: dog's name
    801FB7CE	file 6: dog's name
    801FB7D4	file 7: dog's name
    801FB7DA	file 1: name
    801FB7E0	file 2: name
    801FB7E6	file 3: name
    801FB7EC	file 4: name
    801FB7F2	file 5: name
    801FB7F8	file 6: name
    801FB7FE	file 7: name
    801FB804	file 1: 
    801FB805	file 2: 
    801FB806	file 3: 
    801FB807	file 4: 
    801FB808	file 5: 
    801FB809	file 6: 
    801FB80A	file 7: 
    801FB80B	file 1: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB80C	file 2: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB80D	file 3: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB80E	file 4: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB80F	file 5: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB810	file 6: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB811	file 7: season {1:spring, 2:summer, 3:fall, 4:winter}
    801FB812	file 1: 
    801FB813	file 2: 
    801FB814	file 3: 
    801FB815	file 4: 
    801FB816	file 5: 
    801FB817	file 6: 
    801FB818	file 7: 
    801FB819	file 1: 
    801FB81A	file 2: 
    801FB81B	file 3: 
    801FB81C	file 4: 
    801FB81D	file 5: 
    801FB81E	file 6: 
    801FB81F	file 7: 
    801FB820	file 1: 
    801FB821	file 2: 
    801FB822	file 3: 
    801FB823	file 4: 
    801FB824	file 5: 
    801FB825	file 6: 
    801FB826	file 7: 
    801FB827	file 1: 
    801FB828	file 2: 
    801FB829	file 3: 
    801FB82A	file 4: 
    801FB82B	file 5: 
    801FB82C	file 6: 
    801FB82D	file 7: 
    801FB82E	file 1: 
    801FB82F	file 2: 
    801FB830	file 3: 
    801FB831	file 4: 
    801FB832	file 5: 
    801FB833	file 6: 
    801FB834	file 7: 
    801FB835	file 1: 
    801FB836	file 2: 
    801FB837	file 3: 
    801FB838	file 4: 
    801FB839	file 5: 
    801FB83A	file 6: 
    801FB83B	file 7: 
    801FB83C	file 1: 
    801FB83D	file 2: 
    801FB83E	file 3: 
    801FB83F	file 4: 
    801FB840	file 5: 
    801FB841	file 6: 
    801FB842	file 7: 
    801FB843	file 1: 
    801FB844	file 2: 
    801FB845	file 3: 
    801FB846	file 4: 
    801FB847	file 5: 
    801FB848	file 6: 
    801FB849	file 7: 
    801FB84A	file 1: 
    801FB84B	file 2: 
    801FB84C	file 3: 
    801FB84D	file 4: 
    801FB84E	file 5: 
    801FB84F	file 6: 
    801FB850	file 7: 
    801FB851	file 1: 
    801FB852	file 2: 
    801FB853	file 3: 
    801FB854	file 4: 
    801FB855	file 5: 
    801FB856	file 6: 
    801FB857	file 7: 
    801FB858	file 1: 
    801FB859	file 2: 
    801FB85A	file 3: 
    801FB85B	file 4: 
    801FB85C	file 5: 
    801FB85D	file 6: 
    801FB85E	file 7: 
    801FB85F	file 1: 
    801FB860	file 2: 
    801FB861	file 3: 
    801FB862	file 4: 
    801FB863	file 5: 
    801FB864	file 6: 
    801FB865	file 7: 
    801FB866	file 1: dog's affection
    801FB867	file 2: dog's affection
    801FB868	file 3: dog's affection
    801FB869	file 4: dog's affection
    801FB86A	file 5: dog's affection
    801FB86B	file 6: dog's affection
    801FB86C	file 7: dog's affection
    801FB86D	file 1: 
    801FB86E	file 2: 
    801FB86F	file 3: 
    801FB870	file 4: 
    801FB871	file 5: 
    801FB872	file 6: 
    801FB873	file 7: 
    801FB874	file 1: affection (8)
    801FB87C	file 2: affection (8)
    801FB884	file 3: affection (8)
    801FB88C	file 4: affection (8)
    801FB894	file 5: affection (8)
    801FB89C	file 6: affection (8)
    801FB8A4	file 7: affection (8)
    801FB8AC	file 1: 
    801FB8AD	file 2: 
    801FB8AE	file 3: 
    801FB8AF	file 4: 
    801FB8B0	file 5: 
    801FB8B1	file 6: 
    801FB8B2	file 7: 
    801FB8B3
    801FB8B4	file 1: crops shipped
    801FB8B8	file 2: crops shipped
    801FB8BC	file 3: crops shipped
    801FB8C0	file 4: crops shipped
    801FB8C4	file 5: crops shipped
    801FB8C8	file 6: crops shipped
    801FB8CC	file 7: crops shipped
    801FB8D0	file 1: eggs shipped
    801FB8D4	file 2: eggs shipped
    801FB8D8	file 3: eggs shipped
    801FB8DC	file 4: eggs shipped
    801FB8E0	file 5: eggs shipped
    801FB8E4	file 6: eggs shipped
    801FB8E8	file 7: eggs shipped
    801FB8EC	file 1: milk shipped
    801FB8F0	file 2: milk shipped
    801FB8F4	file 3: milk shipped
    801FB8F8	file 4: milk shipped
    801FB8FC	file 5: milk shipped
    801FB900	file 6: milk shipped
    801FB904	file 7: milk shipped
    801FB908	file 1: fish caught
    801FB90C	file 2: fish caught
    801FB910	file 3: fish caught
    801FB914	file 4: fish caught
    801FB918	file 5: fish caught
    801FB91C	file 6: fish caught
    801FB920	file 7: fish caught
    801FB924	file 1: money
    801FB928	file 2: money
    801FB92C	file 3: money
    801FB930	file 4: money
    801FB934	file 5: money
    801FB938	file 6: money
    801FB93C	file 7: money
    801FB940	file 1: pasture land
    801FB942	file 2: pasture land
    801FB944	file 3: pasture land
    801FB946	file 4: pasture land
    801FB948	file 5: pasture land
    801FB94A	file 6: pasture land
    801FB94C	file 7: pasture land
    801FB94E	file 1:
    801FB94F	file 2: 
    801FB950	file 3: 
    801FB951	file 4: 
    801FB952	file 5: 
    801FB953	file 6: 
    801FB954	file 7: 
    801FB955	file 1: album pages
    801FB956	file 2: album pages
    801FB957	file 3: album pages
    801FB958	file 4: album pages
    801FB959	file 5: album pages
    801FB95A	file 6: album pages
    801FB95B	file 7: album pages
    801FB95C	file 1: recipies
    801FB95D	file 2: recipies
    801FB95E	file 3: recipies
    801FB95F	file 4: recipies
    801FB960	file 5: recipies
    801FB961	file 6: recipies
    801FB962	file 7: recipies
    801FB963	file 1: number of house additions
    801FB964	file 2: number of house additions
    801FB965	file 3: number of house additions
    801FB966	file 4: number of house additions
    801FB967	file 5: number of house additions
    801FB968	file 6: number of house additions
    801FB969	file 7: number of house additions
    801FB96A	file 1: 
    801FB96B	file 2: 
    801FB96C	file 3: 
    801FB96D	file 4: 
    801FB96E	file 5: 
    801FB96F	file 6: 
    801FB970	file 7: 
    801FB971	file 1: 
    801FB972	file 2: 
    801FB973	file 3: 
    801FB974	file 4: 
    801FB975	file 5: 
    801FB976	file 6: 
    801FB977	file 7: 
    801FB978	file 1: percentage complete
    801FB97C	file 2: percentage complete
    801FB980	file 3: percentage complete
    801FB984	file 4: percentage complete
    801FB988	file 5: percentage complete
    801FB98C	file 6: percentage complete
    801FB990	file 7: percentage complete
    801FB994	file 1: valid if nonzero
    801FB995	file 2: valid if nonzero
    801FB996	file 3: valid if nonzero
    801FB997	file 4: valid if nonzero
    801FB998	file 5: valid if nonzero
    801FB999	file 6: valid if nonzero
    801FB99A	file 7: valid if nonzero
    
     
    BigIVIO likes this.
  15. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    That is very interesting, no wonder the values would randomly vary when I attempted to break them down, adding every single value together as a double, truncating it and dividing by 70 (a very odd number choice in my opinion) would definitely do that. I really wonder why they didn't just stick with integers all the way...
     
  16. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Just out of curiosity, I noticed in your dump of Harvest Moon 64 you released a year ago now that an image of a button with the words "ranking" on it existed in the folder sprites -> select save -> 15.png. This was the button this farm ranking menu was accessed with in the Japanese version of this game. Would it be possible to locate this button in the code and unhide it? I assume the texture is there but just turned off. I don't know how difficult something like this would be, but I figured you would be the one to ask. I can not thank you enough for the work you have done thus far.
     
    Last edited: Jan 7, 2016
  17. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    Probably not terribly difficult. Probably ;*)

    Also, just checked the three Japanese versions and they all use the same ranking algo, complete with the duplicated test.
    (That's 0xC5908, 0xC5B88, and 0xC5B88 for each J version respectively)
    There's definitely an issue then if the USA version can't add up to the same value. Wasn't there some stuff that was dropped from J to E?
     
  18. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    Yes there was, but in my opinion nothing of great significance outside of this ranking menu. They also had a controller pack menu to save games to a controller pack (this is present in the english version too it just has to be turned on via a gameshark code), a screen if you press start twice in game that displays a map of the town, the library books were actually readable in the J version, the 4th TV channel was available in the J version (also just turned off in the American version and un-translated), and the recipes in the kitchen if you pressed A on them would actually have instructions on how to cook said recipe in real life. However outside of this in my several playthroughs of the J version of the game I do not personally notice any difference (though its entirely possible I missed something though). Also I should state that in my non-emulated version of the game that I used no cheats for I was able to reach 99%, but I achieved everything known to me to achieve and it would not push itself to 100% regardless of my actions.
     
  19. Zoinkity

    Zoinkity Site Supporter 2015

    Joined:
    Feb 18, 2012
    Messages:
    504
    Likes Received:
    111
    Pushing the max value and doing the division, then truncating like they do the max should be 99%. If rounding was applied differently it would be 100%. Fluke of floating point.
    It doesn't appear they left room for three digits, but then the stuff on screen isn't exactly layed out in the best way either.

    It would be quite a bit of work, but seriously wonder if relocalizing might be a good idea. I like the game but it's filled with engrish, has dropped features, and layout problems.
     
  20. BigIVIO

    BigIVIO Active Member

    Joined:
    Dec 30, 2013
    Messages:
    25
    Likes Received:
    4
    It would be pretty great, the theory was that the english translation took up too much space on the cartridge and so those features were dropped, but I'm not convinced of that personally since the majority of the features are just hidden. I have actually begun the process of remaking this game in Unity. I have remodeled several characters and plan to build out the rest of the game over the next year or two. I however have always wanted to release a rom of this game with the ranking menu naturally available and possibly the fourth channel. Thanks to your work above I was able to re-write the rom to make a version that has that menu available at all times, I would love to see if un-hiding that ranking button is possible as well. I was looking through the code last night but came up empty as to where it is located.
     

Share This Page