Hacking TempGBA: NDSGBA revival

Do GBA games make your nono parts happy?


  • Total voters
    429

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Just wanted to say thanks for all your hard work and invested time. I'm sure it's appreciated by plenty more people than the ones just here.

Personally though, I wish there was more cheat supports (it'd be cool if you could easily add cheats on the spot, as opposed to having to have pre-made cheat files, for instance...)
You're welcome, and I'm glad you enjoy the emulator.

I have no interest in cheats on the GBA, having more interest in cheats on the SNES due to growing up with a Game Genie for SNES. As the project is open-source, I can leave it to someone else to look over the cheat support, then to document the cheat file format in a document on its own and in the README, so that the community can continue supporting the cheat file format.

As it currently stands, the cheat file format and the working Pro Action Replay code types are undocumented, so I just copy-pasted the NDSGBA code for supporting whatever the Supercard Team supported.
 

kukuasir

New Member
Newbie
Joined
Dec 23, 2012
Messages
3
Trophies
1
Age
41
XP
381
Country
Switzerland
This is my trans file (simplified Chinese):P .
when use the language with simplified Chinese the #MSG_PROGRESS_MAPPING_WAITING_FOR_KEY_OR_CLEAR has some display problem.
 

Attachments

  • language.zip
    3 KB · Views: 115

Boriar

Well-Known Member
Member
Joined
Sep 22, 2008
Messages
316
Trophies
1
Age
52
Location
Spain
XP
695
Country
Thanks! :)

The beta 15 'backend' is not really one per se, but I guess it could be one... I could describe it in few words as "tacking a large code cache that keeps track of code in GBA RAM even after it gets overwritten with new code".

It worked like this:
  1. gpSP allocates a Large Code Cache, 2 MiB, with a hashtable pointing into it.
  2. Game writes into Internal Work RAM or something, a 256-byte block.
  3. Game issues a branch into what it just wrote.
  4. gpSP makes MIPS code for as much of the target code as possible (slow), calculates a quick checksum for the GBA code, places a code reuse header into the Large Code Cache and makes a reference to it in the hashtable from [1].
  5. MIPS processor executes the code.
  6. Game returns into ROM to write different code into Internal Work RAM, then branches to it.
  7. gpSP consults the Large Code Cache after quickly calculating the checksum and finds that the newly-written code has not been seen yet. gpSP makes MIPS code for as much of the target as possible (slow) and updates the hashtable.
  8. Later, the game returns into ROM to write the same code as in [2].
  9. gpSP consults the Large Code Cache and, after quickly calculating the checksum, finds that the code written in [8] is the same as in [2], so it gives the MIPS processor the old code to execute, returning immediately.
And somehow step 9 is crashing.


My goal is not to add to game_config.txt (automatic by ID), it's to remove from it, if possible. Similarly, my goal is not to add backends into the .plg, it's to make the current one as small and efficient as possible while being correct. Having a recompiler that crashes without explanation is no option to me, even if it makes some games run blazing fast. So I want one recompiler that runs correctly above all (which is why I reverted to beta 14), but then optimise it in a way that doesn't make games crash. Perhaps the Golden Suns won't be as fast as in beta 15 in a stabler recompiler, but the difference would be negligible, you could enjoy the Golden Suns and the other games wouldn't crash.

I've asked the Supercard Team for something to help me debug the Guru Meditation screens in the beta 15, but in parallel I'll be doing the above.

In layman's terms, the foundations are crumbling, and before I build something huge on top of it, I need to make sure the foundations are made to stop crumbling, and to be as light but robust as possible. Asking the occupants of the house to walk carefully when they're in one corner of the house is no option!

May be a deep test of what games works and what don't work at all give you a track to follow and know whast's wrong in beta 15 improvements.
Post an advice to all game testers to check (for example all posible "heavy" games) to look what's happen
 

Boriar

Well-Known Member
Member
Joined
Sep 22, 2008
Messages
316
Trophies
1
Age
52
Location
Spain
XP
695
Country
I see then, you're going to avoid making this a hacky emulator like ZSNES is, that's good to know!
Get the core running properly, rather than adding unique instances for specific games that could be handled properly.
I think that's the right direction. A tricky emulator need continuesly updates and for players it's normaly a frustated situation: that game work well and that one not, why if the first is more difficult to emulate?...and so on.
 

Aeter

A walking contradiction
Member
Joined
Apr 1, 2009
Messages
942
Trophies
1
Age
36
Location
The lands of nether
XP
485
Country
Netherlands
I just tried the screenshot function in TempGBA 1.40 and got a Guru Med error.
What I did was make a screenshot while no game is loaded and then tried to view the slide show.
Next I tried pushing up, down, right and left. And when pushing left and only that, it gave me this guru med error:
2Y83a.png


In the latest CATSFC build it also crashes on this.
Also noticed that it said, "No save state here" in both emulators, when I tried to save a screenshot while there is no game loaded, which is weird too.
 

Boriar

Well-Known Member
Member
Joined
Sep 22, 2008
Messages
316
Trophies
1
Age
52
Location
Spain
XP
695
Country
I just tried the screenshot function in TempGBA 1.40 and got a Guru Med error.
What I did was make a screenshot while no game is loaded and then tried to view the slide show.
Next I tried pushing up, down, right and left. And when pushing left and only that, it gave me this guru med error:
2Y83a.png


In the latest CATSFC build it also crashes on this.
Also noticed that it said, "No save state here" in both emulators, when I tried to save a screenshot while there is no game loaded, which is weird too.

That's what i said some time ago: http://gbatemp.net/threads/tempgba-ndsgba-revival.343210/page-12#post-4591376

...
Also, I have found one problem, when i go to screenshots slideshow with no screenshots at all and push to left (previous image) the program frozen. I try same on CATSFC with identical results.
an that's was his answer: http://gbatemp.net/threads/tempgba-ndsgba-revival.343210/page-12#post-4591392
...
d) Meh, does anyone use that slideshow feature when they have no screenshots? :unsure:
 

Aeter

A walking contradiction
Member
Joined
Apr 1, 2009
Messages
942
Trophies
1
Age
36
Location
The lands of nether
XP
485
Country
Netherlands
Cool :D. Stupid question I know... but here it comes anyways: is this better then the original Supercars DSTwo GBA emulator?
Yes, it is. It has improved the frame rate of many games and has extra options NDSGBA didn't have. And as you can see the official release now is 1.40, succeeding NDSGBA 1.30, meaning it is an improvement compared to 1.30.
 

Darkrai

Well-Known Member
Newcomer
Joined
Apr 24, 2009
Messages
83
Trophies
0
Age
31
Location
Brazil
XP
300
Country
Brazil
Just a question, It is normal the flashcard warm while using emulators? Often happens with this GBA emulator and the SNES emulator... I'm a little worried about this, because the 3DS also just warming itself, which does not happen normally :huh:
 

Aeter

A walking contradiction
Member
Joined
Apr 1, 2009
Messages
942
Trophies
1
Age
36
Location
The lands of nether
XP
485
Country
Netherlands
Just a question, It is normal the flashcard warm while using emulators? Often happens with this GBA emulator and the SNES emulator... I'm a little worried about this, because the 3DS also just warming itself, which does not happen normally :huh:
I think it is rather normal since the emulator is making the processor work pretty hard. I've experienced it too and it doesn't hurt the DS or DSTWO.
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
This is my trans file (simplified Chinese):P .
when use the language with simplified Chinese the #MSG_PROGRESS_MAPPING_WAITING_FOR_KEY_OR_CLEAR has some display problem.
Some initial comments: I see that there are more difference lines than I expected. Were the original messages very bad? And did you compare the Mandarin ones with the English ones again yourself to figure out what meaning the Mandarin ones should have?

Lines like these, for instance:
#MSG_TOOLS_GAME_HOTKEY_GENERAL
-游戏专用覆盖性热键
+特定游戏热键

#MSG_PROGRESS_HOTKEY_WAITING_FOR_KEYS
-按下你想要设置为这个效果的按钮
+按下你想要设置的热键组合。

Edit: The display problem is due to there being too many characters without a space between two of them. I'll add a space to split the longer half of "you can press 2 keys to delete this mapping" into a line of its own.
 

kukuasir

New Member
Newbie
Joined
Dec 23, 2012
Messages
3
Trophies
1
Age
41
XP
381
Country
Switzerland
Some initial comments: I see that there are more difference lines than I expected. Were the original messages very bad? And did you compare the Mandarin ones with the English ones again yourself to figure out what meaning the Mandarin ones should have?

Lines like these, for instance:

Don't worry, I just not very clear for the original expression as a Chinese :glare: ,so I put this translation more plainly:) .
If u don't like it, u can use the original translation
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Don't worry, I just not very clear for the original expression as a Chinese :glare: ,so I put this translation more plainly:) .
If u don't like it, u can use the original translation
I'd rather use yours. The translator for some of these messages, a GBATemp user going by the name Syphurith, stated that his English wasn't very good, even if his Mandarin was good. As a result, he didn't understand what the messages should have meant, even if he wrote simplified Chinese well.

I was just wondering what some of the extra differences were.

I'll merge your work into TempGBA and CATSFC as appropriate. Thanks for your time and effort. :)

Edit: Done as TempGBA commit 657856a and CATSFC commit 5edf465.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Might be messy but the flavor is worth the goo lol