177 Commits

Author SHA1 Message Date
sinamas
6d2c28629e - Lyc0irq on display enable.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@226 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2009-03-23 21:25:14 +00:00
sinamas
bb91dcd035 - Make sure to reset passed pointers when deleted. Fixes potential crash when loadin ROM during OAM busy.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@223 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2009-01-10 19:22:59 +00:00
sinamas
b6eab774a0 Fix mbc2 not getting a rambank
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@203 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-11-03 20:42:50 +00:00
sinamas
654aa0d2b8 Fix HqXx pitch.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@202 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-11-01 07:38:24 +00:00
sinamas
c25bd691ad Lower opacity OSD text.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@197 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 15:11:07 +00:00
sinamas
3512fe21e0 Actually add the hq3x code mentioned in previous commit.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@196 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 13:35:29 +00:00
sinamas
71e80ba152 Add adapted and optimized hq3x.
Revert to big f'ing switch hq2x code, as there's less duplication now. Also optimized interpolation functions further. No idea how I missed that initially.


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@195 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 13:34:13 +00:00
sinamas
5313ca3ac4 saner ly write behaviour
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@194 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 13:21:06 +00:00
sinamas
92b72f4849 Append "_dmg" to save base name when forcing DMG mode, to avoid corrupting CGB save files and vice versa.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@193 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 06:23:42 +00:00
sinamas
58a072318f Tile loading and tile rendering can seemingly get out of sync when modifying scx at a critical time. Another pessimation with little gain in the name of accuracy.
Use a look-up table to do tile byte merging.


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@192 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-26 05:44:56 +00:00
sinamas
fccce3843e no sprites or sprite mapping busy cycles on first line after display enable. slight cleanup. small oam accessibility correction.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@191 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-25 10:41:53 +00:00
sinamas
98b064d235 revert DMG window display while bg disabled change
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@190 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-24 08:43:19 +00:00
sinamas
22aec7c6c1 No rambanks for ROMs that don't request any.
Route invalid rombank addresses in non-power-of-2 number of rombanks cases to disabled area assuming ceiled power of 2 address bus.
DMG window display disregards bg enable bit.


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@189 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-24 08:19:15 +00:00
sinamas
498c85f467 Add "force DMG mode" option.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@188 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-24 05:09:37 +00:00
sinamas
2626fd78ad - Real-time, sophisticated resampling framework with several performance/quality profiles for dynamically generated windowed sinc and CIC chains based on analysis of
fourier transforms and optimal cost equations. Fast 2-tap linear as a low quality alternative.
- libgambatte: Use deltas and a running sum to decrease buffer writes in sound emulation sample generation.
- libgambatte: Rearrange sound emulation event loop to optimize for high-frequency event units.
- libgambatte: Initialize palette arrays to avoid valgrind noise.
- Don't do resampling in libgambatte. Update API to reflect this.
- Move non-emulation common code to a common directory to avoid duplication.
- Update front-ends to new libgambatte API.
- Utilize resampling framework in front-ends. Selectable resamplers.
- Improved adaptive sleep class that estimates oversleep.
- Gambatte SDL: Estimate actual output sample rate in terms of OS timers and derive frame rate from it.
- Gambatte SDL: Move AudioData and RingBuffer classes to separate files.
- Gambatte SDL: Make underruns slightly less painful, by resetting buffer positions.
- Gambatte Qt: Update AudioEngine to support sample rate estimation in terms of OS timers.
- Gambatte Qt: Implement sample rate estimation in ALSA and OSS audio engines.
- Gambatte Qt: AlsaEngine: Revert to using snd_pcm_avail_update for buffer status since snd_pcm_delay may consider external latencies.
- Gambatte Qt: AlsaEngine: Use snd_pcm_hw_params_set_buffer_time_near. Don't request a particular number of periods per buffer.
- Gambatte Qt: AlsaEngine: Use hw as default custom device string, rather than hw:0,0.
- Gambatte Qt: OssEngine: Don't trust GETOSPACE fragment info.
- Gambatte Qt: Estimate optimal frame rate based on sample rate estimations.
- Gambatte Qt: Extend BlitterWidget to support estimation of vsynced frame rate in terms of OS timers.
- Gambatte Qt: Implement vsync frame rate estimation in QGlBlitter, Direct3DBlitter and DirectDrawBlitter.
- Gambatte Qt: Use a combination of OS timer sample rate estimation and vsync frame rate estimation to derive resampling ratio for no-frame-duplication vsync.
- Gambatte Qt: Change API to reflect MediaSources not being responsible for resampling.
- Gambatte Qt: Make sure to parent PaletteDialog list model, so it gets deleted properly.
- Various refactoring, small changes and stuff I forgot.


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@165 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-13 21:08:08 +00:00
sinamas
90231398ea Fix LY display disable regression
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@164 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-10-01 10:26:05 +00:00
sinamas
2cceb36f23 Correct unhalttime when resetting counters. Fixes perodic infinite halt issue in Kirby's Star Stacker and probably other games.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@163 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-16 21:27:11 +00:00
sinamas
73feaf6c06 Fix GCC 4.3 warnings about people getting confused by operator precedence by adding parentheses.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@159 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-11 20:56:40 +00:00
sinamas
1adf627462 Fix potential problem with rgb32ToUyvy cache init values on 16-bit systems
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@158 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-09 01:38:26 +00:00
sinamas
8af5b77f0b Fix wrong pitch passed to filter if color conversion is needed.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@157 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-09 01:36:21 +00:00
sinamas
f77314270c fix gcc-4.3 compilation
avoid signed overflow in constant (which is both undefined and likely to cause problems on architectures where sizeof(long) != sizeof(int)) in rgb2yuv code.


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@156 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-07 16:27:47 +00:00
sinamas
0dcbbcb9eb std::ifstream construction missing binary flag
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@155 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-07-07 00:37:12 +00:00
sinamas
df1beb4cab missing includes
missing virtual destructor


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@146 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-05-20 11:21:03 +00:00
sinamas
43d47f32fd add save state actions to GUI menu
clean up GUI menu creation code
move GUI recent files to submenu
move state 0 OSD pos to rightmost to match kbd layout
state 1 default on ROM load
support external save state files
add number key slot selection shortcuts


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@145 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-05-20 07:59:18 +00:00
sinamas
c074b7d358 utilize templates for more flexible osd text printing
use grey osd text with black outline for save/load state messages


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@144 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-05-19 16:21:40 +00:00
sinamas
69635b6a5b add bitmap font rendering with font based on Bitstream Vera Sans
osd state n saved/loaded text
empty state osd thumbs marked with "Empty" text
adjust thumbnail interpolation weighing slightly


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@143 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-05-05 23:20:34 +00:00
sinamas
881138560f save state selection
save state osd preview snapshots
fix a few potential security holes when loading invalid state
get rid of some undefined behaviour in statesaver
always draw in rgb32, color convert afterwards, too bad for maemo/16-bit
depth users
get rid of silly c string stuff


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@142 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-05-05 01:07:25 +00:00
sinamas
957e6615c9 fix silly initstate ifreg regression
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@136 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-03-18 10:25:23 +00:00
sinamas
12aa59020f save savedata before loading state
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@129 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-03-04 06:07:32 +00:00
sinamas
6c6cf96f81 save state infrastructure,
clean up video timing code,
use save state for initialization and reset,
do color conversion outside filters, fast rgb32ToUyvy,
add overlooked oamdma event,
adjust subcycle irq timing (shouldn't affect anything),
various refactoring


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@126 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-03-03 11:59:46 +00:00
sinamas
bcae9f7213 Decouple Qt GUI from gambatte.
Lots of cleanups, flexibility added, setting of various properties, frame time,
aspect ratio, button events, video sources, sample rates, pauseOnDialogExec, custom menus etc.
Document some interfaces.
Support for setting approximate sound buffer latency.
Use rational math for 100% exact timers (even though the actual system timers are unlikely to be accurate).
Add fast-forward to input settings.
Scalebuffer dstpitch aware.
timeGetTime() fallback for win32
Store full screen mode values/text rather than less reliable indexes.
Repaint on xvblitter port changes to avoid color key not getting repainted.
stuff I forgot


git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@120 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-02-12 12:59:18 +00:00
sinamas
e3d69acf23 preoffset mem pointers. get rid of unused memory.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@119 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-01-31 11:36:04 +00:00
sinamas
a05aa50c68 various oamdma accuracy. oamdma bus conflicts with cpu, ppu, cgbdma. rewritten memory read/write methods. accurate timing of ppu sprite mapping reads. fix recent cgb sprite cycles sorting slip up.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@118 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-01-31 07:43:54 +00:00
sinamas
c287f73ec9 0xFEA0-0xFEFF not writable when OAM isn't. unusable ioram bits fixes. dmg ioram startup state fixes.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@115 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-01-10 04:47:59 +00:00
sinamas
42f490721f cgb dma from various areas results in 0xFF being written.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@114 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-01-09 01:08:46 +00:00
sinamas
6eb9761b10 wx affects sprite m3 cycles. cache m3 cycles, related refactoring. readjust cgb dma cycles to previously changed m3 timing. clean up goofy lyc calculation.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@113 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2008-01-08 05:02:29 +00:00
sinamas
630e0e6c3a int width deps. Gambatte namespace
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@112 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-12-25 19:32:18 +00:00
sinamas
1943a07254 more type width dependency fixes
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@111 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-28 16:57:26 +00:00
sinamas
d515059073 less int > 16-bits assumptions
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@110 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-27 05:01:13 +00:00
sinamas
c79b4b4875 fix broken volume on/off event notification
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@106 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-18 13:10:36 +00:00
sinamas
103520f934 do sprite sorting and cycle calculations pr line as needed instead of all at once
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@105 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-17 23:31:39 +00:00
sinamas
b2a10dc275 Skip potential high frequency events when they don't matter.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@104 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-16 22:15:46 +00:00
sinamas
2a3d61c539 slightly faster sprite mapping
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@102 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-10 05:22:12 +00:00
sinamas
a583fe1413 less fixed-width type dependencies. don't assume unsigned int > 16 bits
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@101 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-11-10 05:19:42 +00:00
sinamas
3fe3972702 avoid signed conversion warning
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@95 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-25 13:24:08 +00:00
sinamas
0c98dea2a3 Add support for DMG palette customization.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@93 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-25 08:04:24 +00:00
sinamas
e50ffeec2a Always shift full lfsr. Trigger increments lfsr counter by 8.
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@87 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-06 20:47:27 +00:00
sinamas
1ba159dc52 check for resampling ratio < 0
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@83 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-06 15:24:56 +00:00
sinamas
87164d66fe fix initial endtime value
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@82 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-06 15:22:53 +00:00
sinamas
67ca613bbd remove unnecessary include
git-svn-id: https://gambatte.svn.sourceforge.net/svnroot/gambatte@80 9dfb2916-2d38-0410-aef4-c5fe6c9ffc24
2007-10-05 14:50:12 +00:00