Coder Social home page Coder Social logo

gbahawk's People

Contributors

alyosha-tas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

retroedit

gbahawk's Issues

Lag frame count doesn't update

Using: GBAHawk 1.4

The emulator still accurately identifies which frames are lag frames, it just doesn't update the count displayed when you enable View > Display Lag Counter

Movies should internally contain GBAHawk version

This is something unfortunate I realized recently. While at least 9 different versions of GBAHawk have been released, all of them insert the same emuVersion Version 1.0.0 and OriginalEmuVersion Version 1.0.0 in the movie's Header.txt. It would be nice if future versions properly maintained the version number.

I also noticed that movies made in previous GBAHawk versions sometimes cause newer versions to abort movie loading because of incompatible sync settings. Maintaining compatibility here might be something to consider, but I do understand GBAHawk has been relatively fluid in its development, and having to support previous movie versions may add excessive maintenance burden for relatively little payoff.

DK: King of Swing: crash in Treacherous Twister

The game crashes in Treacherous Twister. This sounds like a bug mGBA also had a few years back: mgba-emu/mgba#457

I was using GBAHawk 2.0.0, so maybe this has been fixed now? But none of the recent commits look like they address this. I'll probably pull it down and build it for future resyncs.

I will note that DK: King of Swing is generally a very stable game timing-wise. I wouldn't be surprised if the original mGBA movie is able to sync on real console (possibly with one or two frame adjustments at the very beginning).

Repro

TreachorousTwister_Crash.zip
Save file + movie that reaches the save file.

[Request] Keep old versions up

It came to my attention that every version prior to 1.5 has been removed, which makes TASVideos' judgement and verification process much more difficult. If sync stability were to have changed in 1.5, then all three of the GBAHawk submissions would have essentially become unplayable in their current forms.

I'd like to request that, going forward, releases should not be removed, barring some sort of catastrophic error. Ideally, 1.3 and 1.4 would be put back up as well for archival purposes, but as long as your submissions all sync on 1.5 then it isn't strictly necessary.

No Ffmpeg Writer

A notable issue I am having with gbahawk atm is that there's no option for ffmpeg writer, like there is in bizhawk. The only other options for recording splits the recording into several different clips, and from what I can tell, it ends up skipping some parts of the recording. There isn't really much of another option to record.

TAStudio columns are odd with multi-GBA

When I press buttons in recording mode, the columns are mislabeled (the game processes the presses as expected). This seems likely to be a rendering bug caused by an extra ! column to the left.

Also, whenever I click on the columns for player 2, it just visually fills the whole column with the column's letter instead of properly setting the button.

Improve IRQ state machine

A more complete IRQ state machine is required to account for behaviour of IRQ disable. In particular IME should be tested before the other interrupt related regs.

Improve linking support

Game & Watch Gallery 4 (USA) reported as not working

EDIT: that game is working, user error, but other improvements remain

Shrek 2 game doesn't boot

Game info:

  • Name: Shrek 2 (USA, Europe)
  • SHA-256: 2ec32cb8c69ff8bbe01b7039ee001105f92ee686b251d26060f9bdb6751f3b80

I did a TAS of this game with BizHawk's mGBA core that is about ~17.9 seconds faster than the equivalent inputs would be on real console. I was curious how accurate GBAHawk's timing would be compared to real-console, but unfortunately, this game isn't supported yet.

world_map.gba has shaky scanline

This is due to audio FIFO DMA interfering with HBL IRQ code execution so rotation/scaling parameters are not being updated in time for the next scanline.

Needs some test ROMs to improve audio emulation timing.

Open Bus Emulation Details

Some details still need to be checked with regards to open bus emulation.

8 bit reads and writes, misaligned reads and writes for 16 bit and 32 bit accesses for both cpu and dma need to be checked.

Crash when attempting to boot Pokémon

OS: Windows 11 Home 22H2 (22621.1992)
Version: GBAHawk 1.5

So I have been trying to get the Gen 3 Pokemon games (Ruby/Sapphire/Emerald/FireRed/LeafGreen) to load... only for GBAHawk to crash on the BIOS screen when trying to load them. I was able to get an error message to appear once, but not again after this.


System.IndexOutOfRangeException: Index was outside the bounds of the array.
at BizHawk.Emulation.Cores.Nintendo.GBA.GBAHawk.GetSamplesSync(Int16[]& samples, Int32& nsamp)
at BizHawk.Client.Common.SoundOutputProvider.GetSamplesFromBase(Double& scaleFactor)
at BizHawk.Client.Common.SoundOutputProvider.GetSamples(Int32 idealSampleCount)
at BizHawk.Client.Common.SoundOutputProvider.GetSamples(Int32 idealSampleCount, Int16[]& samples, Int32& sampleCount)
at BizHawk.Client.GBAHawk.Sound.UpdateSound(Single atten, Boolean isSecondaryThrottlingDisabled)
at BizHawk.Client.GBAHawk.MainForm.StepRunLoop_Core(Boolean force)
at BizHawk.Client.GBAHawk.MainForm.ProgramRunLoop()
at BizHawk.Client.GBAHawk.Program.SubMain(String[] args)


Out of curiosity, I did try a few other games (Castlevania AoS, Castlevania HoD, Yu-Gi-Oh! Duel Monsters 6 Expert 2, and Sonic Advance). They all loaded without any problems. Is there any possible way to get Pokémon up and running?

Exact audio DMA timings

Follow up from issue #13. Need to test things such as:

precise DMA timing, is there a delay after timer overflow?
does writing to fifo control reset the fifo even if power is off?
does writing to fifo with power off add samples to the fifo?
what are the actual trigger conditions for DMA?

Pokemon R/S link error

image
This happened when I tried to trade between Ruby and Sapphire.

Pokemon - Ruby Version (USA)
SHA1:F28B6FFC97847E94A6C21A63CACF633EE5C8DF1E
MD5:53D1A2027AB49DF34A689FAA1FB14726

Pokemon - Sapphire Version (USA, Europe) (Rev 2)
SHA1:89B45FB172E6B55D51FC0E61989775187F6FE63C
MD5:9BC2B765CA6997175FAC51E6CDC29089

Movie file: PokeRS.zip

Core used is GBAHawk_Debug, regardless of choice?

Welcome to part 3 of my series: "minor header issues that may not be worth filing an issue for".

In 2.1.1, it seems like the core name is saved to a movie header as GBAHawk_Debug regardless of what core is selected.

As a further note, it seems like GBAHawk 2.1.1 uses GBAHawk_Debug regardless of what core is selected, so the issue is probably a bit more broad than movies.

Lag frame marking in multi-GBA is not ideal

Multi-GBA doesn't identify which GBA(s) the lag frame occurred; it will only mark if both lag. This is inconvenient for certain use-cases.

I don't think this is easily fixable because lag marking is sort of deeply embedded into TAStudio and the movie architecture in general.

Nonetheless, there are a few minor enhancement ideas I still have:

  • visually separate each GBA's lag in TAStudio.
  • [lesser priority] make View > Display Lag Frame Count a comma-separate list instead of a single value. Or maybe constrain it to a particular chosen GBA.

New visual bug in 2.1.x

This is how Shrek 2 is supposed to be when transitioning between the book screen and chapter screen (1/6 speed video from BizHawk 2.9.1, but I checked other emulators and real console, and this is more similar to how it's supposed to appear):

Shrek_2_menu_mGBA

This is how it looks in GBAHawk 2.1.1:

Shrek_2_menu_GBAHawk

This appears to be a regression between GBAHawk 2.0.0 and GBAHawk 2.1.0

Solar Sensor support

It seems GBAHawk currently doesn't support the Solar Sensor used in the Boktai games. Are there any plans to support it?
I've tried TASing Boktai on BizHawk before but the implementation there has been pretty unstable / prone to desyncs.
We'd be happy to provide feedback and testing for it.

Pokemon Sapphire intro rendering

One of the 5 water ripples is partially cut off.

There isn't enough time to render 5 x 64 width affine and double sized sprites (that would take at minimum 128 * 2 * 5 = 1280 cycles and only 1232 exist in a scanline.) And this not even counting OAM fetch times.

I've double checked my rendering code and it matches up with current knowledge, nothing seems amiss.

Somehow it works on console though, so maybe some pixels out of range in the x direction don't get fetched? Time has to be saved somewhere.

'Power' button doesn't work in multi-GBA situations

With multiple GBAs open, I tried both of the power buttons in virtual pad and nothing happened. I also tried binding it to the controller and creating a TAStudio movie.

I'm used the multi-disk bundler to load up Game & Watch Gallery 4 along with the BIOS (since it's a game with Single-PAK multiplayer game).

[Request] 2 Players GBA Mode.

Does this emulator support Tool Assisted with 2 players on GBA? If yes, let me know. If not, please put this mode.

Loading multi-disk bundler XML files doesn't work

Probably just something not implemented yet, but I can provide more details if necessary. Whenever you create a configuration with the multi-disk bundler, it will save an XML file, but these don't seem to load properly when clicking on the entry in File > Recent ROM list.

One exception raised was the following:

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at BizHawk.Emulation.Cores.Nintendo.GBALink.GBAHawkLink.StoreSaveRam(Byte[] data)
   at BizHawk.Client.GBAHawk.MainForm.LoadSaveRam()
   at BizHawk.Client.GBAHawk.MainForm.LoadRomInternal(String path, LoadRomArgs args, Boolean& failureIsFromAskSave)
   at BizHawk.Client.GBAHawk.MainForm.LoadRom(String path, LoadRomArgs args, Boolean& failureIsFromAskSave)
   at BizHawk.Client.GBAHawk.MainForm.LoadRom(String path, LoadRomArgs args)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.