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
I can't debug this. It only tells me "returning from subroutine call at 00000000", until I undo everything I've done since beta 14. I add something back and it breaks games again. The entire basis for beta 15 is broken.

Therefore, I'll mark beta 14 as newest on filetrip.
 

Bridgeman

Active Member
Newcomer
Joined
May 14, 2013
Messages
33
Trophies
0
Age
33
XP
141
Country
Netherlands
Okay, I got it to work, and I have to admit it does work a lot better then the stock Super card GBA emulator. However, on Super Mario Advance 4 (U) I still only get around 29-30 fps. Isn't it possible to get up to 60 fps?
 

Aeter

A walking contradiction
Member
Joined
Apr 1, 2009
Messages
942
Trophies
1
Age
36
Location
The lands of nether
XP
485
Country
Netherlands
Okay, I got it to work, and I have to admit it does work a lot better then the stock Super card GBA emulator. However, on Super Mario Advance 4 (U) I still only get around 29-30 fps. Isn't it possible to get up to 60 fps?
That depends on the value you set your frameskip at.
0 allows for emulation at 60 FPS, 1 at 30 FPS, 2 at 20 FPS and so on.
 

Bridgeman

Active Member
Newcomer
Joined
May 14, 2013
Messages
33
Trophies
0
Age
33
XP
141
Country
Netherlands
That depends on the value you set your frameskip at.
0 allows for emulation at 60 FPS, 1 at 30 FPS, 2 at 20 FPS and so on.

Thanks, works much better. One more question, how do you add cheats to games for this emulator? Does it work with .cht files you can edit with Notepad? If so, what format do these need to be in?
 

Aeter

A walking contradiction
Member
Joined
Apr 1, 2009
Messages
942
Trophies
1
Age
36
Location
The lands of nether
XP
485
Country
Netherlands

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
TempGBA version 1.40 is now available. It's based on beta 14, not beta 15, because beta 15 was unstable on simple games.

It contains the following improvements:

* An option to play games on the Lower Screen instead of the Upper Screen (GitHub issue #12).
* An option to start games from the GBA BIOS (logo) (GitHub issue #9).
* The FPS counter disappears if it has insufficient data: when switching games and when entering the menu.
* The game-specific button mapping interface now shows the global mappings with '(global)' next to their DS button. This better conveys the entire set of mappings that apply to a game (GitHub issue #19).
* The most recently played ROM now goes to the top instead of the bottom (GitHub issue #21).
* The text colors are now loaded in TEMPGBA/SYSTEM/GUI/uicolors.txt for theming (GitHub issue #7).

Aeter can now add non-purple colors to his LEDS2-Orange TempGBA skin! :D
 

2ndApex

Well-Known Member
Member
Joined
Jul 12, 2012
Messages
677
Trophies
0
XP
419
Country
United States
TempGBA version 1.40 is now available. It's based on beta 14, not beta 15, because beta 15 was unstable on simple games.

It contains the following improvements:

* An option to play games on the Lower Screen instead of the Upper Screen (GitHub issue #12).
* An option to start games from the GBA BIOS (logo) (GitHub issue #9).
* The FPS counter disappears if it has insufficient data: when switching games and when entering the menu.
* The game-specific button mapping interface now shows the global mappings with '(global)' next to their DS button. This better conveys the entire set of mappings that apply to a game (GitHub issue #19).
* The most recently played ROM now goes to the top instead of the bottom (GitHub issue #21).
* The text colors are now loaded in TEMPGBA/SYSTEM/GUI/uicolors.txt for theming (GitHub issue #7).

Aeter can now add non-purple colors to his LEDS2-Orange TempGBA skin! :D


Might've forgot to change the language files and gameconfig.txt. The one in the zip file is smaller than the gameconfig.txt I'm using and my menu went absolutely berserk after I installed this.
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Might've forgot to change the language files and gameconfig.txt. The one in the zip file is smaller than the gameconfig.txt I'm using and my menu went absolutely berserk after I installed this.
I did put the newest language file in, with the new definitions for the Game screen (upper/lower) and Boot into (cartridge/logo) options.

The game_config.txt is still the older one, because it's not meant to be a replacement for getting the newest version from the "game_config.txt improvement project", currently at version 1.4. (Coincidence? I think not.)
 

2ndApex

Well-Known Member
Member
Joined
Jul 12, 2012
Messages
677
Trophies
0
XP
419
Country
United States
I did put the newest language file in, with the new definitions for the Game screen (upper/lower) and Boot into (cartridge/logo) options.

The game_config.txt is still the older one, because it's not meant to be a replacement for getting the newest version from the "game_config.txt improvement project", currently at version 1.4. (Coincidence? I think not.)


Ok, just deleted the system directory and reinstalled it, life is good again.

Would it be possible to change to button configuration to DS->GBA buttons so we can get multiple DS keys mapped to the same GBA key and single DS keys mapped to multiple GBA keys?
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Ok, just deleted the system directory and reinstalled it, life is good again.

Would it be possible to change to button configuration to DS->GBA buttons so we can get multiple DS keys mapped to the same GBA key and single DS keys mapped to multiple GBA keys?
See the discussion in GitHub issue #19. Then see if you think that having:
  • two distinct interfaces, each global and game-specific, for configuring the same thing in two directions -- which would cause massive confusion as keys "don't fire" or "fire twice" when they're set in 2 or more interfaces, or none --;
  • two distinct data structures that must be looked up while running the game;
  • the possibility that no DS key is mapped to the essential GBA keys (A and B); and
  • conflicts arising when an explicit DS->GBA mapping exists and an explicit GBA->DS mapping exists, which would make them interact very oddly with themselves, each other, and hotkeys
.. is worth it. After considering both things, if you still want the reverse configuration, then put your voice on that issue.
 

Txustra

Well-Known Member
Member
Joined
May 18, 2013
Messages
458
Trophies
1
Age
32
XP
2,017
Country
Spain
Thanks for the new release, i'll wait until a better compatibility for Golden Sun 2 will be released again, cause if this is based on beta 14, the game ran so badly.

(Sorry for my english :P )
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Thanks for the new release, i'll wait until a better compatibility for Golden Sun 2 will be released again, cause if this is based on beta 14, the game ran so badly.

(Sorry for my english :P )
Yeah, but you can use beta 15 for the Golden Suns. Use 1.40 for the others, though, because beta 15 is efficient for the Golden Suns but crashes a lot of other games.
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Most of those who have contributed translations for CATSFC or TempGBA in the past will have received a private message just now. It will list the text strings that are missing from TempGBA 1.40 in their language.

I implemented the Lower Screen gaming option into CATSFC Next, so the text for the Game Screen option will be used in both emulators.
 

RupeeClock

Colors 3D Snivy!
Member
Joined
May 15, 2008
Messages
6,497
Trophies
1
Age
34
Website
Visit site
XP
2,969
Country
Congratulations on the 1.40 release.
It sounds like the beta 15 work can still be used for those specific games, can it just be implemented as an alternative backend/option, either automatic based on Game ID or toggled in options?
 

Deleted member 319809

MAH BOI/GURL
OP
Member
Joined
Dec 22, 2012
Messages
900
Trophies
0
XP
461
Country
Canada
Congratulations on the 1.40 release.
It sounds like the beta 15 work can still be used for those specific games, can it just be implemented as an alternative backend/option, either automatic based on Game ID or toggled in options?
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!
 
  • Like
Reactions: VatoLoco

Blazer

Well-Known Member
Member
Joined
Aug 10, 2008
Messages
281
Trophies
0
XP
470
Country
United States
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...)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    BigOnYa @ BigOnYa: Sounds good actually.