gbc.sb2 Audio Improvements
by SpinningCube
Description
gbc.sb2 is a Game Boy / Game Boy Color emulator originally created by @DCPU-16: https://scratch.mit.edu/projects/53005142/ UPDATE November 08, 2023 - Changes: - Cartridge RAM saving and loading added! Permanent progress can now be saved as a hexadecimal string, and loaded back in later. The .sav files from other emulators like BGB and SameBoy are also acceptable if they are converted to hex. - External RAM no longer resets every time the emulator is started. It is now maintained until the next ROM is loaded in. - Menu animations now use delta time, making animation speeds independent of frame rate and turbo mode. - Minor change to the project thumbnail I've fixed the project so that it runs at full speed with higher quality audio emulation. Be sure to also check out rrgbc, a fast and accurate Game Boy Color emulator by @52525rr: https://scratch.mit.edu/projects/865567417 Thanks to @ego-lay_atman-bay for making their own project on fixing the audio. Their project inspired me to make this one. Credits: - @DCPU-16 for the original project. A great majority of the work in this project is by them. That project can be found here: https://scratch.mit.edu/projects/53005142/ - Wave table synthesizer by @Kouzeru, used for the wave channel: https://scratch.mit.edu/projects/470900402/ - This emulator boots from SameBoy's "SameBoot" custom DMG boot ROM, written by LIJI32 and licensed under the MIT License. - The preloaded game ROM is Dangan GB, a game by Snorpung and Nordloef. - Pixel art in the thumbnail is from a Game Boy demo also by Snorpung and Nordloef. In my first remix I fixed major issues present in the original version in order to ensure that the emulator could run at its proper speed in the TurboWarp player. In this remix, I made significant improvements to the audio emulation and fixed some bugs. Instead of note blocks, the audio channels now use play sound blocks combined with the pitch effect block. I've also fixed some broken audio features and added a few new ones, including stereo/panning. Turbo Mode and Remove Limits are used because they improve the audio quality. All put together, the audio quality has improved significantly. I also added a settings menu. Thanks to FFT, the sound of the Game Boy's wave channel is now emulated pretty well. There are still a few situations in which it won't work, specifically if the wave channel is updated very frequently, but in most cases it will sound flawless. Before this, it was approximated using triangle waves or pulse waves depending on the situation. Changelog: Update February 24, 2024 - Changes: - Stereo audio features now completely implemented, which fixes audio glitches in some games - Preloaded ROM used to be Gejmbaj, now replaced with Dangan GB Update November 08, 2023 - Changes: - Cartridge RAM saving and loading added! Permanent progress can now be saved as a hexadecimal string, and loaded back in later. .sav files from other emulators like BGB and SameBoy are also acceptable if they are converted to hex. - External RAM no longer resets every time the emulator is started. It is now maintained until the next ROM is loaded in. - Menu animations now use delta time, making animation speeds independent of frame rate and turbo mode. - Minor change to the project thumbnail Update April 16, 2023 - Changes: - Completed wave channel using @Kouzeru's wave table piano: https://scratch.mit.edu/projects/470900402/ - Resetting of the LFSR upon retriggering the noise channel is now emulated (by stopping and replaying the noise channel sound from the beginning) - Frequency sweeps no longer restart the audio clones constantly - Added enable flags and APU status reading via NR52 - Channel volumes can now be set to 0 without disabling the audio channel, fixes envelope effects that start at 0 Dec 03, 2022 - Original Release of Audio Improvements #Gameboy #GB #GBC #Game #Boy #Emulator #Emulation
Instructions
Run at full speed in the TurboWarp player, otherwise it is basically unplayable: https://turbowarp.org/751324131?fps=60&turbo&limitless Alternatively, try using Forkphorus: https://forkphorus.github.io/?webgl&fps=60&limits=1#751324131 Buttons: Z = (A), X = (B), Space = Start, C = Select, Arrows = Dpad Click the cartridge to import a custom ROM. Click on the gear icon to open the settings menu. Click "PLAY" to start! Piracy is discouraged, use legally obtained ROMs. Both Game Boy and Game Boy Color ROMs are supported (.gb and .gbc files). gbc.sb2 can't take these files directly, but accepts them in two text-based formats: as a newline-separated list of byte values, or as a hexadecimal string with 2-digit hex values per byte concatenated together. Tools for converting ROMs: https://rokcoder.com/convert/ by @RokCoder The outputted text file can be imported into the emulator (right click the ROM list > import) http://tomeko.net/online_tools/file_to_hex.php Uncheck both settings. The result can be copied and either can be directly pasted in using the "Import HEX" button on the right of the import screen or can be saved to a text file and imported to the list. Press 1 to change the Zoom. Press 2 to change the frameskip setting (0-slow&smooth, 8-fast&jittery). Press 3 to toggle the border. Settings Menu: Output Volume - Controls the loudness of sounds being played. Frameskip (0-10) - How many frames will be skipped between frames. Increasing this number can improve performance. Auto Adjust Emulation Speed - When enabled, ensures that the emulator runs at the same speed no matter what the maximum framerate is. If you disable this, be sure to also disable Turbo Mode and set the framerate to 60 FPS. Reset noise LFSR on trigger - The LFSR is the pseudorandom number generator used for the noise channel (this emulator doesn't actually emulate the LFSR, but plays a sound that was pre-generated from an identical LFSR). With this setting enabled, the emulator will mimic the resetting behavior found on an actual gameboy, where all bits in the LFSR get set to 1 whenever the noise channel is re-triggered (I just stop and replay the sound from the beginning). This affects the quality of the outputted noise. 1 is accurate to the real game boy. 0 may produce technically inaccurate but cleaner sounding noise. Skip BIOS - When enabled, the boot ROM showing the Nintendo logo at the beginning will be skipped. Note that this emulator does not include a GBC boot ROM so when running GBC games it is always skipped. Show FPS - Shows the frame rate of the emulated system (skipped frames are counted). Show Wave Table Visualizer - Displays the waveform being used by the wave channel. Channel 1-4 Volume - Individual volume controls for each audio channel. Wave Channel Quality - Controls the number of sine waves that are added together to produce the sound of the wave channel. Lower values yield smoother, muffled, less accurate waveforms. Higher values produce more accurate waveforms that capture the higher frequencies produced by the jagged edges between the steps of the wave table.
Project Details
- Visibility
- Visible
- Comments
- Enabled
- Remixed From
- Project #562335591
- Original Project
- Project #562335591
More Cool Projects
Super Mario Explore 8 Depths of Illusion
by TMD-Entertainment
ALL!
by bandrock238
Wolfenstein 3D
by tcottle
Fish Farm
by CorruptedMonkey
Numbers 1 to 1000000 with 20 kndonehundered m’s. (NEW)
by ms-lexi
Wonderland Band Part 25
by Real_11766
Map in Too Much Giddy Up! (Chance the Explorer)
by ChancesChannel
Bfb intro
by 1spaCe2dinOs
talking news Roblox HD 3 but i add voice remix remix
by veziravcisi
Fidget Spinner PRO
by curlypepper1
雪合戦deバトル 改 V13
by 02515617
Getting Over It v1.91 - Multiplayer
by XShrunk
Nova OS 6 Sierra #Nova #OS #All #Scratch #Best
by Richik_is_Great
Angry Birds Remake remix
by theo_gameboy
The mine song but it's made on Scratch remix
by TheReturnOfRyan
Solar System Planets and Dwarf Planets
by DAVE79CH8M0RT
beat up EOC Calculator (for fun)
by dirtotheobjectrises
Beat up 21137673 Two
by SO_EASY-
Lore [D-Sides]
by RumHam123
☁️ Among Us Jester Mod アモングアス 日本語版 オンライン ONLINE
by RRR-scratch
ABC Clever Scratch Version Image remix
by av32y104
Chinese Providences EAS Alarms remix
by JaydenGamerzTube
Barney OS (2024 Updated)
by Windows95566
Beat up mario
by littleblah14