Homebrew GBARunner2

Enzo995

Member
Newcomer
Joined
Aug 28, 2018
Messages
9
Trophies
0
Age
28
XP
303
Country
Italy
Just to address some of the things that are still missing or problematic.
  • So, yeah, there are problems with the pcm audio synchronisation (and just a general delay) which are not easy to fix (except for the thing I did in the feature/mp2000-mainmem branch, but it's not ready to be merged yet).

I remember you mentioned the idea of patching each rom singularly to match the different sound channels, couldn't that be an easier solution at this point, considering there are few games with audio synchronizazion issues?
 
D

Deleted User

Guest
@Gericom, I plan to start testing again after the next update for the rom3M branch has been released.
I want to compare game performance between master and rom3M branch.
So we can finally merge them together should performance be acceptable!
 

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,377
Trophies
2
Age
25
XP
4,645
Country
Netherlands
@Gericom, I plan to start testing again after the next update for the rom3M branch has been released.
I want to compare game performance between master and rom3M branch.
So we can finally merge them together should performance be acceptable!
I'll do that later this week then.
----------------------------------------------
Today I've worked on cover art support. I'm not 100% satisfied with the loading speed, but it's not too bad (browsing is only a little slower).

Extract this zip in the _gba folder to have cover art in the latest version: https://mega.nz/#!Q8dnHALK!kA4UuEpqo7JQwScxLiorZ_qj4lWBsBr7B6Sb_BgAzsw

JPEG_20190916_204041.jpg
JPEG_20190916_204125.jpg
JPEG_20190916_204154.jpg
 

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,377
Trophies
2
Age
25
XP
4,645
Country
Netherlands
@Dodain47 I saw you marked some games as non booting in the compatibility list that worked in 17694d4 (2017/05/22). You may want to try those with center and mask disabled. They might work that way.
-------------------------------
I also forgot to mention it, but I added a donation button to the github readme, may there be interest in thanking or supporting me that way. Gbarunner2 will however always be free software!
 
Last edited by Gericom,

TheTrueDream42

Well-Known Member
Member
Joined
Jun 26, 2015
Messages
182
Trophies
0
Age
27
XP
994
Country
United States
Last batch I have before I get off today (there are still a couple of others I want to test still) using the older version:

White Screen:
E-Blazing Emerald (RTC included)
E-Crystaldust
E-Emerald Enhanced
E-Mega Emerald X and Y edition
E-Moon Emerald
E-Sigma Emerald

Trademark Screen:
E-Emerald Advanced
E-Theta Emerald (loads to half brightness, then fades as normal)
E-Theta Emerald EX (note: not based on Theta Emerald, but rather completely made from scratch)

Title Screen:
E-Blazing Emerald (no RTC patch) = Crashes choosing a new game
E-New Emerald*

Loads but breaks:
E-Expert Emerald = Freezes after choosing your starter.
F-Fire Red +Plus* = Freezes after choosing your starter.

Loads fine:
E-Molten Emerald Reborn*

*gbafix required

----------------------------
Also for my 2 cents while we are looking at the layout of the screen, currently it's a bit cramp with having only 4 games for the selection on the screen, it would be nice if things was made a bit smaller a bit to display say 6 games on screen at once. Having a lot on the screen was a nice thing about that alpha image up above.
 
  • Like
Reactions: Gericom

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,377
Trophies
2
Age
25
XP
4,645
Country
Netherlands
Last batch I have before I get off today (there are still a couple of others I want to test still) using the older version:

White Screen:
E-Blazing Emerald (RTC included)
E-Crystaldust
E-Emerald Enhanced
E-Mega Emerald X and Y edition
E-Moon Emerald
E-Sigma Emerald

Trademark Screen:
E-Emerald Advanced
E-Theta Emerald (loads to half brightness, then fades as normal)
E-Theta Emerald EX (note: not based on Theta Emerald, but rather completely made from scratch)

Title Screen:
E-Blazing Emerald (no RTC patch) = Crashes choosing a new game
E-New Emerald*

Loads but breaks:
E-Expert Emerald = Freezes after choosing your starter.
F-Fire Red +Plus* = Freezes after choosing your starter.

Loads fine:
E-Molten Emerald Reborn*

*gbafix required

----------------------------
Also for my 2 cents while we are looking at the layout of the screen, currently it's a bit cramp with having only 4 games for the selection on the screen, it would be nice if things was made a bit smaller a bit to display say 6 games on screen at once. Having a lot on the screen was a nice thing about that alpha image up above.
Yeah, I agree that that was the biggest advantage of the old menu :P I'm gonna look into it sometime.
 
D

Deleted User

Guest
I retested several broken games with center and mask disabled.
A complete list from games I tested is below.

I used commit 371815e (2019/09/11) from the rom3M branch and commit 05a69d8 (2019/09/15) from the master branch.
I tried several setting combinations from the gbarunner2 menu screen.

International Karate Advanced (E) and Worms World Party (E) are both playable with center and mask disabled.
Wakeboarding Unleashed featuring Shaun Murray (E) boots to the licensed by screen.
Other games either don´t boot or crash.

Colin McRae Rally 2.0 (E)
International Karate Advanced (E)
Jazz Jackrabbit (UE)
Sega Arcade Gallery (E)
Super Puzzle Fighter 2 Turbo (E)
Sword of Mana (E)
Tetris Worlds (E)
Wakeboarding Unleashed featuring Shaun Murray (E)
Worms World Party (E)
 
Last edited by ,
  • Like
Reactions: Tarmfot

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,178
Trophies
1
Age
42
XP
3,240
Country
United States
I looked over the wiki and didn't find much I could add, people have been on top of it.

One thing I did find is for say, Sword of Mana. The current DS version will not boot. It does however boot on DSi. There's no sound and it crashes the moment either you or a creature attack, but at least it will boot now. But how should that be added to the wiki, which so far hasn't had the option of DSi or 3DS memory or clocks?

Just to address some of the things that are still missing or problematic.
  • So, yeah, there are problems with the pcm audio synchronisation (and just a general delay) which are not easy to fix (except for the thing I did in the feature/mp2000-mainmem branch, but it's not ready to be merged yet).
  • Furthermore the second (B) direct audio channel is still not emulated atm. This is not really an issue in most games, but it means direct audio is not in stereo currently and some games actually use it for 2 different sounds (set both to left and right).
  • The noise channel is approximated by the ds noise, but is not 100% the same. The gb noise channel also has 2 modes 7 and 15 bit. The ds noise is mostly like the 15 bit variant, so this may be the cause of the metroid issue.
  • All linking code is still on that branch. Until it is possible to switch it on and off in-game, I don't want to merge it because it means wifi is always on (eating battery).
  • Games with timing problems that require turning off main memory cache are running too fast basically. That's why having main memory cache + twl speed makes it even worse.
  • There's also still an issue with timers when games combine 2 timers to one 32 bit timer and use it as a global timing reference. That can cause issues, such as in bibi and tina.

This explains a lot of stuff I've been noticing in terms of audio. I've noticed percussive effects turn to white noise in many other games, at least compared to agb_firm. Also the PCM intro music in Duke Nukem vanishing is probably the Stereo issue. Thanks for laying this all out.

--------------------- MERGED ---------------------------

I remember you mentioned the idea of patching each rom singularly to match the different sound channels, couldn't that be an easier solution at this point, considering there are few games with audio synchronizazion issues?

Every single game I've tried so far has PCM audio that is very delayed. Its only a "synchronization" issue when you have music or effects that are composed of both PCM and gameboy audio. Which might be at least a third of the library, devs were often keen to save on audio processing that way.
 
Last edited by Rahkeesh,

Acid_Snake

Developer
Developer
Joined
Aug 20, 2019
Messages
677
Trophies
0
Age
30
XP
1,921
Country
Spain
Although that would be possible, it would add extra cycles to the abort handler for loading addresses and values from variables in memory instead of hardcoding them in the instructions. It should be possible to like patch the right values into the code at runtime, but that's annoying to do in practice.
I am very ignorant of the DS/i hardware layout but maybe it would be possible to have all RAM pointer values be statically loaded using stubs that can be modified with a resolve table, similarly to how ELF file rellocation works. The launcher then simply uses the resolve table to correctly modify gbarunner to suit the desired RAM values.
Another approach that comes to mind is that CPU clock cycles shouldn't be much of a problem on actual DSi/3DS hardware (higher clock speeds), so maybe you can just pack two different binaries: one with hardcoded values for NDS and another with dynamic values for DSi/3DS.
I do believe it would be extremely nice if we could have only one build and then be able to enable/disable features (cache, rom3, extra ram, etc) on the settings menu. I can understand this won't be an easy task.

Whatever you do it will always be nice, keep up the great work!
 

Gericom

Well-Known Member
OP
Member
Joined
Jun 30, 2011
Messages
1,377
Trophies
2
Age
25
XP
4,645
Country
Netherlands
I am very ignorant of the DS/i hardware layout but maybe it would be possible to have all RAM pointer values be statically loaded using stubs that can be modified with a resolve table, similarly to how ELF file rellocation works. The launcher then simply uses the resolve table to correctly modify gbarunner to suit the desired RAM values.
Another approach that comes to mind is that CPU clock cycles shouldn't be much of a problem on actual DSi/3DS hardware (higher clock speeds), so maybe you can just pack two different binaries: one with hardcoded values for NDS and another with dynamic values for DSi/3DS.
I do believe it would be extremely nice if we could have only one build and then be able to enable/disable features (cache, rom3, extra ram, etc) on the settings menu. I can understand this won't be an easy task.

Whatever you do it will always be nice, keep up the great work!
The first solution is quite difficult to set up in practice. Furthermore I would say that every clock still counts in the abort handler as long as there are games that are not full speed.
 
  • Like
Reactions: Alexander1970

Zense

Well-Known Member
Member
Joined
Apr 20, 2008
Messages
1,977
Trophies
2
XP
4,271
Country
Italy
So to use the 3DS version you would have to run the file through twilightmenu or would that be the same as running it on a dsi?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Sicklyboy @ Sicklyboy: *teleports behind you* "Nothing personnel, kiddo" +1