Version for x32, x64 and xp32
This is the build from the original source code
using vc2019 so may be need new lib from ms (look for vc2019 redist x32 and x64)

---------------------
r798
Add SDLnetworking + some basic tcp classes
---------------------
r797
cache variable, without it is unusably slow in debug mode
---------------------
r796
add missing file
---------------------
r795
update vs project files
---------------------
r794
fix output values
---------------------

r793
The translator map seems to work with paletted colour values too, and the result is not clamped. Colours are passed to the GPU as unsigned bytes to multiplying by 16 will overflow, so we do the logic in the shader. If we passed floats we could skip the shader logic.

---------------------

r792
When the translator map is enabled the colour values seem to use 4 bits, 0-16. Why not 0-31 I don't know. Anyway virtua on is overflowing these values for some of the smoke effects. For us the numbers were wrapping around. Clamping is enough to fix this. (Thanks model123)

---------------------
r791
Custom resolution bug fix
---------------------
r790
SDL1 to SDL2 internal changes 
---------------------
r789
remove files
---------------------
r788
---------------------
r787
Tweak value so the map indicator still works at the start of spikeout
---------------------
r786
Sutherland-Hodgeman clipping only works for planar primitives. Scud is rendering non planar quads and this breaks our algorithm a little when using the quad renderer. Stretching the near plane a few % is enough to fix it.
---------------------
r785
Only need to clip against 4 planes for poly culling
---------------------
r784
Fix the sky in harley in first person mode where pixels in the sky are culled when they shouldn't be with 
the quad renderer. Basically we were running out of precision in a rare corner case. Doing the maths with 
double precision and casting back to float was enough to fix the issue.
---------------------
r783
To calculate the mipmap value the opengl needs to calculate the difference in the texture coordinates between adjacent pixels. If there are no adjacent pixels the hw may need to spawn 
invisible fragments outside of the visible polygon. 
Our algorithm was culling these out so the mipamp calculation failed for edge pixels. 
Anyway this fixes quad rendering looking broken with the latest nvidia drivers.
---------------------

r782
Really should cull against 5 frustum planes.
---------------------
r781
Stretch the time the ping_pong bit flips a bit to bump writes into correct frame. Otherwise they end up getting written at like 99.8% of the frame and overlapping with... 
---------------------
r780
Optimise Games.xml (Krom)
---------------------
r779
Thanks to our anonymous contributor who managed to patch a model 3 game and run it on real h/w, 
we were able to obtain some timing values we had been long been missing for correct emulation. 
The h/w polls something called the ping_pong bit at start-up to sync the GPU with the CPU. 
Unfortunately we didn't have the correct values and just manually used some per game hacks to get games to run. 
This mostly worked, but some games were writing more or less frames than they should have been for a given time period. 
When the ping_pong bit flips at 66% of the frame time, games were writing data for a new frame, which meant writes were often straddling 2 separate frames. 
We aren't 100% sure if IRQ2 or the ping_pong bit is vblank. 
---------------------
r778
Ocean hunter in the middle of the game is passing a few matrices with FLT_MAX inside them, which blows apart our near/far calculation. 
The hardware must have some method to sanitize the near/far for instance if you render something extremely close to the origin you will also blow apart any near/far calc.
---------------------
r777
skip invalid culling nodes
---------------------
r776
A culling node must follow immediately after a viewport.
---------------------
r775
Fix possible negative pointer arithmetic which was causing the music to wrap around.
---------------------
r774
Update makefiles 
---------------------
r773
Previous mpeg audio code worked for me in debug mode, but the release build had some serious corruption issues when being built in visual studio. Replaced the old spaghetti code with a more modern implementation.
---------------------
r772
- Disabled Alt-O (dump timings) and Alt-U (dump input state) when   SUPERMODEL_DEBUGGER not defined - Option '-print-inputs' works again if no ROM set specified 
---------------------
r771
Restore Sega Rally music in some practice stages 
---------------------
r770
Fixed MPEG music looping glitch.
---------------------
r769
Refactor code from previous svn768 (Note : break old savestate compatibility)
---------------------
r768
Fix the audio in sega rally2. The game has packed separate tracks into the left and right audio channels. Selecting the correct track fixes the garbled mess. (Spindizzi)
---------------------
r767
Fix shader. Why this worked on my nvidia card .. I'm not sure.
---------------------
r766
Composite the alpha layers at the end of rendering. To do this we need to mask the alpha pixels with the opaque pixels from the next priority layer. Fixes some overlapping shadows in vf3tb that have different priority layers. I assume that ...
---------------------
r765
-Added support for specifying multiple sections simultaneously in INI   files, e.g., [ daytona2, dayto2pe ] -Forgetfulness in 763
---------------------
r764
Technically backface culling should cull polys when the dot product = 0, since when it equals 0 the polys is perpendicular to the camera and thus invisible. When you complete sega rally2 (if you can get that far lol) the champagne is invisi...
---------------------
r763
Inputs can now be configured on a per-game basis
---------------------
r762
- PCI bridge can be specified in Games.xml for games that use a different version than expected based on stepping. No more hard-coded exceptions. 
- Real3D PCI ID can be specified in Games.xml for exceptions that require it. 
- Real3D status ...
---------------------
r761
timing fix for srally2x (Spindizzi)
---------------------
r760
Updates games.xml for new prototype games (Spindizzi)
---------------------
r759
remove commands that do nothing
---------------------
r758
clear scissored out areas
---------------------
r757
Optimise depth calculation for quad shader.
---------------------
r756
Update Games.xml for games that were recently dumped
---------------------
r755

---------------------
r754
Fade out microtextures with higher textures LODs. Fixes incorrectly applied microtextures in LA machineguns.
---------------------
r753
debug code should be disabled
---------------------
r752
Smooth texture repeat makes no sense for alpha/contour textures with pixel dilate. HW seems to treat them as non smooth anyway. Also implement some line of sight stuff, used by Scud. Really need to check the threading/synchronisation of the...
---------------------
r751
return correct PCI ID
---------------------
r750
fix debugging code
---------------------
r749
fix copy paste error :]
---------------------
r748
Correctly emulate the real3d pro-1000 texture modes in our shader.
---------------------
r747
Revert some patches (Spindizzi)
---------------------
r746
Update makefile 
---------------------
r745
Both lemans24 and dirt devils are rendering some totally transparent objects as the first model in each viewport. The HW seems to skip these entirely, and including them breaks our near/far plane calculations leading to Z fighting. 
---------------------
r744
Tweak the ratio for the near plane. Fixes missing text on the map indicator at the start of spikeout. The vertices are 0.003 units apart so a tonne of precision is required at the near plane to not depth test out.
---------------------
r743
remove debug code
---------------------
r742
avoid double matrix load
---------------------
r741
updated command line help
---------------------
r740
Quad rendering engine. Set QuadRendering = 1 in the ini file to use, or -quad-rendering at the end of the command line to use.
---------------------
r739
Sega bass fishing is starting some off the meshes with a shared vertex. Without having a previous vertex to share with, the values were just uninitialised and junk. The hardware itself seems to hold the value from the previous mesh, and seg...
---------------------
r738
remove dead variable
---------------------
r737
Use correct PCI IDs (Harry Tuttle)
---------------------
r736
add crosshair effect (Harry Tuttle)
---------------------
r735
fix cast, and remove extra ; that had snuck into the shaders
---------------------
r734
Opaque polys definitely depth test with less than or equal. Virtua striker is drawing co-planar polys for the bar gfx
---------------------
r733
Draw transparent polys to separate layers and composite at the end. This solves a tonne of transparency errors we had been battling with for a long time. The model3 is strange in the fact it only supports a max of two translucent overlapped...
---------------------
r732
forgot parentheses
---------------------
r731

---------------------
r730
optimise hash function and parse out transparency layer select bit
---------------------
r729
select correct bit ..
---------------------
r728
Parse out TranslucencyPatternSelect
---------------------
r727
Fixed Makefiles for non-MSYS builds. Unfortunately had to revert a lot of the automated configuration that Harry had inserted. Users will again need to hand-edit Makefile.Win32 for their configuration. Verbose warnings (-Wall) have been res...
---------------------
r726
Parse siblings after children. It's the only way to get Daytona water fall to look correct without h/w poly sorting.
---------------------
r725
Added a stretch mode (-stretch) and modified new renderer's viewport code (hopefully correctly) to handle aspect ratio correction and widening the way the legacy one does.
---------------------
r724
Render the opaque part of texture transparency in the first pass. Fixes numerous transparency related issues in lemans24 and some in ocean hunter. I don't really know if this is the 'correct' way of solving this because the real3d pro-1000 ...
---------------------
r723
remove unnecessary copies 
---------------------
r722
Fix controller inputs (Spindizzi)
---------------------
r721
Inconsequential typo
---------------------
r720
Reverted version to 0.3a-WIP. Release version will be updated to 0.4a.
---------------------
r719
Added ability to load save state at startup using -load-state or InitStateFile (in config file)
---------------------
r718
work around for non working jtag code in star wars
---------------------
r717
Clamping must be applied before the spotlight is applied on step 1.0 h/w. 
---------------------
r716
Fix step 1.0 games with NET_BOARD defined (Spindizzi)
---------------------
r715
Update network code (Spindizzi)
---------------------
r714
white space
---------------------
r713
Support both types of lightgun in lost world. 2nd type fixes some missing fx. Thanks to Any for pointing this out. To use the old type change analog_gun1 to gun1 in the xml file.
---------------------
r712
fix a few compile warnings
---------------------
r711
Add the netboard stuff to the ini file. Stops crashes when they are missing.
---------------------
r710
A hack to get spikeout to work (uncomment to enable) (Spindizzi)
---------------------
r709
Disable the netboard if EmulateNet=0 (Spindizzi)
---------------------
r708
remove extra qualifier 
---------------------
r707
Update make files and fix build for the various options (Harry Tuttle)
---------------------
r706
fix header files
---------------------
r705
Remove using namespace std from the header files ..
---------------------
r704
Parse out line of sight position. Only known to be used by scud.
---------------------
r703
make the logic a bit clearer
---------------------
r702
fix Ian's bad maths :)
---------------------
r701
Update microtexture coordinate logic (Harry Tuttle)
---------------------
r700
fix illegal xml character sequence
---------------------
r699
simplify maths
---------------------
r698
comment out unneeded code
---------------------
r697
top/bottom were swapped for off axis projection
---------------------
r696
Rewrite projection maths based upon previously unknown viewport values. The previous values used roughly worked as the normals for frustum planes. Perhaps they were only used for culling and not actually rendering, as sometimes the values d...
---------------------
r695
fix build
---------------------
r694
add the rest of the network board code (Spindizzi)
---------------------
r693
use the correct c++ deleters 
---------------------
r692
use a few macros to make debugging less painful
---------------------
r691
Add network board emulation. Currently not linked with the rest of the project.
---------------------
r690
remove using namespace from headers ..
---------------------
r689
rename to avoid clash with a #define
---------------------
r688
add asynchronous sending functions 
---------------------
r687
remove dead variable 
---------------------
r686
Add basic networking files to supermodel. Currently these are win32 specific but can port to SDL or whatever later.
---------------------
r685
Fix the smallest texture lods  (Harry Tuttle)
---------------------
r684
fix array out of bounds 
---------------------
r683
remove debug code
---------------------
r682
mark as static
---------------------
r681
Implement sub 8x8 tile encoding. Fixes incomplete mipmap chains which previously only went down to 8x8 pixels before. It wasn't known these textures existed before. (Harry Tuttle)
---------------------
r680
Fix some bad/missing textures in fighting vipers. The game is referencing totally illegal texture sizes. The real h/w was just handling it somehow, whilst we were returning null for the textures. This might produce junk textures for the low...
---------------------
r679
Shift fog maths to fragment shader to fix bug in virtua on.
---------------------
r678
The vertex shader is run before clipping is done. If fogging values are calculated and clamped in the vertex shader it can interpolate bad values, since the range has been truncated. This happens if the polys overlap the near plane. The sol...
---------------------
r677
Fixed shading also works with untextured polys. Fixes some shading issues in La machineguns. (Harry Tuttle)
---------------------
r676
Update step 1.5 luminous logic with Harry's findings. Fixes various shading issues.
---------------------
r675
Finish the hash function (Harry Tuttle)
---------------------
r674
Remove fixed shading check from specular.
---------------------
r673
Makefile fixes: Moved Windows-specific source files out of Makefile.inc, using 'bin' and 'obj' when bits are not explicitly set, and changed output file to Supermodel rather than Supermodel.exe, which works on all platforms.
---------------------
r672
Star wars is the only game to pass unsigned fixed shaded values (per vertex brightness) to the renderer. Originally we thought that the specular flag would turn on unsigned values since it's the only game to set specular with these polys, b...
---------------------
r671
update visual studio project
---------------------
r670
update spotlight code (Harry Tuttle)
---------------------
r669
Harry's patch: add dirtdvlsj and change "Star Wars Trilogy" to "Star Wars Trilogy Arcade"
---------------------
r668
New, saner Makefiles. They still require some customization but share a core Makefile include with auto-generation of dependencies. Multi-threaded building (e.g., make -j6) is supported now.
---------------------
r667
add missing header
---------------------
r666
Get rid of unused variable warning
---------------------
r665
Fix the sky in one of the levels in virtua on. The problem was caused by the fact we didn't split the mesh by the fog % burn through, so all the polys had the same value. We could use a vertex attrib, but % burn through fog is so rarely use...
---------------------
r664
Fix tiny memory leak
---------------------
r663

---------------------
r662
update project files
---------------------
r661
work around for visual studio bug 
---------------------
r660
fix missing header
---------------------
r659
cannot specify explicit initializer for arrays - fix for visual studio
---------------------
r658
- New work-in-progress frame timing code (disabled by default, compile with NEW_FRAME_TIMING defined to activate it) - New JTAG emulation, moved into its own class, CJTAG - Removed game-specific sun clamp hacks from CNew3D (JTAG and Real3D ...
---------------------
r657
Added functions to safely read and write bools
---------------------
r656
Added functions to extract bits as integer values and updated comment about bit vector layout
---------------------
r655
Added SetOnes() and SetZeros()
---------------------
r654
Safe guard against shifting empty register.
---------------------
r653
Hex formatting support extended to 64 bits.
---------------------
r652
Added ShiftOutLeft() and ShiftOutRight()
---------------------
r651
Renamed shift in/out functions to add/remove to be less ambiguous about their functionality
---------------------
r650
Added ToHexString() and made ostream serialization use this
---------------------
r649
Fix for VS2015 and newer by MetalliC
---------------------
r648
Added BitRegister class (for use in upcoming JTAG refactor): an inefficient but flexible container for manipulating a dynamic bit stream.
---------------------
r647
Calculating the length of the vertex results in quite broken values for fogging when the vertices are traversing the view frustum. The hardware also wouldn't have been doing a square root per vertex for fogging. Simply using the z values is...
---------------------
r646
add interface for sun clamp
---------------------
r645
Optimise vertex data to cut down on unnecessary copying 
---------------------
r644
Modern hardware does backface culling in window space by calculating the face normal for the polygon, then doing a dot product against the view vector. The real3d pro-1000 on the other hand passes a pre-calculated face normal for each polyg...
---------------------
r643
DMA and register space access for Real3D have been unified and CReal3D::ReadRegister() returns little endian data now that the PowerPC handler byte-swaps back, to be consistent with how DMA registers work.
---------------------
r642
Changed fixed shaded logic for step 1.5 hw based upon Harry's findings
---------------------
r641
cosmetic
---------------------
r640
Harry made some important discoveries with regards to fixed shading on the model 3 (per vertex poly brightness values). Firstly values are allowed to be negative, and they are used as a drop in replacement in the standard lighting equation ...
---------------------
r639
Patched Sega Rally 2 DX to boot up. Enjoy Sega Rall 2 without MPEG music at 50% speed ;)
---------------------
r638
Fixed up memory region dumping code to use the new Util::FlipEndian functions
---------------------
r637
Fixed a bug in MCRFS instruction related to the VXSOFT, VXSQRT, and VXCVI bits. Thanks to Spindizzi.
---------------------
r636
Finish fixed shading for 2.0 hardware. I'm pretty sure it actually works identically to step 1.5 hardware. The oddball is LA machine guns where the viewport ambient doesn't seem to effect the brightness. But the ambient works differently in...
---------------------
r635
With fixed shading, when lighting is disabled, fixed shading appears to be a flat shaded version based upon the poly colour, instead of per vertex attributes.
---------------------
r634
Pad struct and align on 4 byte boundary.
---------------------
r633
simplify
---------------------
r632
fixed shading doesn't effect the alpha channel
---------------------
r631
Fixed shading (per vertex poly colours) on step 1.5 hardware have the viewport ambient value added to them. This fixes various shading on scud. To do this had to switch the maths to the vertex shader.
---------------------
r630
Fix attribute locations. glBindAttribLocation must be called linking
---------------------
r629
Added support for loading shaders from files for new engine and tile renderer. Changed help text to reflect new engine being default.
---------------------
r628
make the new3d engine default :] Legacy engine can still be selected using -legacy3d in the command line
---------------------
r627
use generic vertex attributes
---------------------
r626
Technically matrix casts are only allowed in glsl 1.2 and later
---------------------
r625
Remove debug code
---------------------
r624
Sometime ago I managed to work out that specular on the model3 is not real specular, and really is just an extension of diffuse lighting. But attempts were derailed by corner cases and the fact we were not handling the normals correctly. An...
---------------------
r623
cosmetic
---------------------
r622
Add the unclamped light model we know exists to the shaders.
---------------------
r621
Ski champ for some reason is passing denormalised numbers for the modelscale. This is causing a NaN in our shader killing the lighting for these models, so we simply skip these, since they are essentially zero anyway. Thanks to Harry for fi...
---------------------
r620
We were force normalising the result of matrix * normal, which looked correct in most cases. But this didn't preserve the scaling of the matrix, or the scaling of the model normals which resulted in many over bright areas. On it's own this ...
---------------------
r619
Implement unclamped light model based upon Harry's findings. Unknown how this is turned on/off.
---------------------
r618
Use c++11 raw string literals
---------------------
r617
Clamp the ambient light to a max of 0.75. LA Machine guns seems to use an ambient value of 1, which is full bright for everything. But for some reason the hardware seems to treat this as ~ 0.75. This fixes various missing shading in the gam...
---------------------
r616
remove WIP code
---------------------
r615
convert sun angle coordinate system outside of the shader
---------------------
r614
A second go at fixing the fixed lighting in star wars .. Fixed shading is per vertex poly colours. For some reason in star wars they are treated as unsigned values instead of signed, like in every other game. These polys are all marked with...
---------------------
r613
fix double offset
---------------------
r612
Revert previous fixed shading changes. Implement new logic for fixed shading on step 1.5 hardware based upon Harry's findings.
---------------------
r611
remove debug code
---------------------
r610
Fix the fix shading in star wars. Fixed shading still needs some work for mag truck and dirt devils to match the arcade.
---------------------
r609
cosmetic
---------------------
r608
Tweak scroll fog logic again .. should fix missing 2d fogging in Spikeout.
---------------------
r607
rewrite scroll fog logic
---------------------
r606
Remove debug code
---------------------
r605
minor culling node optimisations
---------------------
r604
don't need cast, conversion is implicit
---------------------
r603
better state handling
---------------------
r602
parse out some culling node values
---------------------
r601
There are 2 bits in the polyheader labelled discard. When both are set ie in sega rally, the polygons are totally discarded. Scud seems to set bit 1 which seems halve the opacity.
---------------------
r600
The real3d has a flag that allows the hw to skip polygons so that they aren't rendered. Sega rally2 uses this for the dust effects. Triangles or quads that have this flag are junk, and look like random corruption if you try to draw them. We...
---------------------
r599
Linux Makefile fixed by Sergio Benjamin
---------------------
r598
light parameters must be clamped (HarryTuttle)
---------------------
r597
Virtua fighter has a few massive polys that shouldn't be visible. It looks like these polys have a bad matrix, but the node distances are all zero. This means the bounding box that encapsulates them is of size zero. Skipping over these enti...
---------------------
r596
Updated Util::Config::Node unit tests with multiple leaf node test
---------------------
r595
remove unused variable
---------------------
r594
Extended -gfx-state to produce culling node analysis
---------------------
r593
Fixed behavior of Util::Config::Node when adding nested nodes (only leaf level can be duplicated; e.g., foo/bar and foo/bar will create one foo with two bar children, rather than two foo each with one bar).
---------------------
r592
Spindizzi's SCSP DSP fix for the VF3TB cave stage
---------------------
r591
Hooked up the command line help options (thanks, Spindizzi!) and updated copyright info
---------------------
r590
Removed unnecessary patches from lemans24
---------------------
r589
add missing include
---------------------
r588
Removed patches from source code and moved them into game XML file. Created ROMSet.cpp. Print a more descriptive error when game XML file fails to load.
---------------------
r587
Updated help text to include -game-xml-file option
---------------------
r586
Moved ROM patches into Games.xml and added patches to swtrilgy to make test emu work and to eca/ecau to pass the network check
---------------------
r585
add missing include
---------------------
r584
Harry Tuttle's fixes to fishing controls: invert fishing rod y and fishing stick y axis values so setting a negative axis is not necessary. Also changed reel to an analog input (similar to a pedal), whose neutral position is 0.
---------------------
r583
Harry Tuttle's change to Harley gear shift to use a single bit instead of two (no detectable difference in behavior, though)
---------------------
r582
Removed unused file: Game.cpp 
---------------------
r581
Fixed lamachin title -- thanks Jiterdomer!
---------------------
r580
cosmetic 
---------------------
r579
Daytona seems to use this completely undocumented feature of the real3d pro-1000, the ability to invert texture colours. This patch fixes the colours on the cars, and the signs which should flash by alternating their colours.
---------------------
r578
Removed last vestiges of CINIFile from input system and removed Games.cpp, INIFile.cpp, and ROMLoad.cpp
---------------------
r577
Using Game::INPUT_* instead of obsolete GAME_INPUT_*
---------------------
r576
Changes by Harry Tuttle: game list more accurately reflects MAME's, added a root level XML "games" node, print ROM version along with title
---------------------
r575
Fixed graphics state analyzer 
---------------------
r574
Added cstring
---------------------
r573
Added remaining games largely thanks to the efforts of the mysterious '??'
---------------------
r572
more whitespace ..
---------------------
r571
white space ..
---------------------
r570
Cache dereferenced values. Cuts loading time from 15 to 5 seconds in debug mode :)
---------------------
r569
Included cstring for memcpy
---------------------
r568
Rewrote large parts of ROM loading code to more gracefully handle merged sets where overwritten parent ROMs are not present. Better handling of multiple zip files. Optimized ROM loading when stride and chunk size are equal and got rid of sa...
---------------------
r567
Rewrite the spot light code, and implement the missing fog logic. (HarryTuttle)
---------------------
r566
Fixed missing file detection (set_difference requires inputs sorted by desired key) and improved error reporting
---------------------
r565
Made scuda a child set of scud
---------------------
r564
Removed TODO comment
---------------------
r563
Smarter game selection when a zip file contains multiple games (prefer child when parent is also present in zip)
---------------------
r562
Warn about parent ROM sets having parent defined (not allowed)
---------------------
r561
Print missing files from games
---------------------
r560
Support loading of parent ROM sets (e.g., scudp will load scud)
---------------------
r559
compile fixes
---------------------
r558
MSYS2 compile fix (HarryTuttle)
---------------------
r557
Replace glsl 3 function. Apparently this doesn't work on OS X.
---------------------
r556
fix compile warnings
---------------------
r555
Sort games found in zip file by descending order of matching files so that game with the *most* matching files is picked
---------------------
r554
Added: bass, daytona2, dirtdvls, harley, lemans24, scuda, skichamp, spikeofe, spikeout, von2, vs2, vs298, vs2v991 Fixed: dayto2pe title
---------------------
r553
Fixed scud mpeg roms 
---------------------
r552
don't ask
---------------------
r551
fix project files
---------------------
r550
fix multiple default constructors 
---------------------
r549
add missing include
---------------------
r548
Massive internal change: removed CConfig object and replaced it with a hierarchical config object system (Util::Config::Node). Games are now defined in an XML file. Hopefully I didn't break too many things :/
---------------------
r547
Cosmetic: renamed step to stepping
---------------------
r546
No need to enclose values in quotes when writing INI file. Print that file was saved to console and log.
---------------------
r545
Added a TODO list
---------------------
r544
Added srally2
---------------------
r543
Encapsulated zip file handling and added a "parent" member to the Game struct
---------------------
r542
Checking in GameLoader.cpp, GameLoader.h, and ROMSet.h (not currently used in build) because I need to make a substantial modification in my local tree
---------------------
r541
Fixed dayto2pe sample ROMs
---------------------
r540
The mipmap data in some games seems to being sent behind the base textures, and when the base textures are bound and created the mipmap chain is not yet valid in memory. To fix this, we invalidate the base textures, when the mipmap chain is...
---------------------
r539
Just use 1 hash map for the textures, instead of 1 for each format. Should greatly speed up texture invalidation. TODO invalidate texture mipmaps .. the h/w actually seems to stream the mipmap data separate from the base textures in some ca...
---------------------
r538
cosmetic 
---------------------
r537
calculate the correct number of mipmap textures
---------------------
r536
Originally to do mipmapping, I just used the base texture and then let the h/w automatically generate the mipmap chain. I wasn't sure the real3d api even exposed to the programmer the ability to directly set the mipmap data. Anyway, as poin...
---------------------
r535
Added fvipers2
---------------------
r534
use 32bit types
---------------------
r533
Added more games to Games.xml: dayto2pe, eca, lamachin, lostwsga, magtruck, oceanhun, vf3. Fixed swtrilgy (MPEG music).
---------------------
r532
Added 8- and 16-bit tilegen VRAM access handlers to fix missing columns in Star Wars Trilogy tilemaps. Thanks to Spindizzi for initial confirmation that this was the problem.
---------------------
r531
fix scissor code for native resolution (thanks HarryTuttle)
---------------------
r530
remove debug code
---------------------
r529
The model3 has this weird issue where the 2d and 3d planes are misaligned by 2 pixels. Originally I made a quick hack that shifted subviewports 2 pixels. But apparently that wasn't enough, as the issue effects everything. Thanks to HarryTut...
---------------------
r528
Texture coordinates seem to be scaled relative to the fixed texture size of 256. Thanks to HarryTurtle for figuring this crazy logic out. The road in scud matches the arcade now almost perfectly.
---------------------
r527
Change microtexture scaling values. Seem to much better match expected output. (thanks HarryTuttle)
---------------------
r526
More fixes to microtexture coordinates. They go vertically up and down the texture sheet, and not horizontally as I had guessed. (Thanks HarryTurtle)
---------------------
r525
Fix microtexture texture coordinates (thanks HarryTuttle)      
---------------------
r524
fix the bad projection matrix in dirt devils and lost world
---------------------
r523
The hardware actually seems to treat the quad primitive as a triangle strip. The winding order can actually change between the first and second 'triangle' inside the quad, leading our code to incorrectly backface cull the 2nd triangle. So w...
---------------------
r522
Support high priority polygons. They are treated as a separate overlay plane by the h/w. Fixes some missing fx in harley.
---------------------
r521
Add high priority poly function. Used by harley.
---------------------
r520
When the translator map?? bit is enabled the colour format seems to be 4-5bit. Max observed value is 16. Scaling these values up seems to produce the correct colours in harley and dirt devils.
---------------------
r519
Put a check in there, in case near values come out really close to zero. Fixes a slight corner case in lemans24. A check probably should have been there originally :)
---------------------
r518
Dynamically calculate near/far frustum planes for each viewport priority layer by clipping the overlapping meshes with the 4 frustum planes. A bit brute forcy, but the results are great.
---------------------
r517
mark the nodes without valid distances set
---------------------
r516
cosmetics 
---------------------
r515
only need to cull against 4 clipping planes
---------------------
r514
For scroll fog set the viewport to the entire area, allows fog to work in widescreen mode
---------------------
r513
properly cache un-normalised texture coordinates, fixes a texturing regression in Daytona 
---------------------
r512
fix microtexture colours
---------------------
r511
Only check scroll fog value from the first viewport from each priority layer. Seems to fix problems with background fogging.
---------------------
r510
delete unused files
---------------------
r509
Support microtexture relative scale. The exact scaling values are not known, but a 2x difference between each level seems highly likely. We know from visual inspection from scud that the first level is exactly 4. The SDK has a function that...
---------------------
r508
The model3 shares vertices between polygons. But it also seems to do this for polygons with different textures. This means the texture coordinate for potentially different sizes textures is shared. Currently this was broken leading to some ...
---------------------
r507
refactor
---------------------
r506
tweak scroll fog logic
---------------------
r505
clean up
---------------------
r504
minor optimisations 
---------------------
r503
Only check the geometry for culling with valid node distances. We will need this later.
---------------------
r502
Revert changes .. if we clip against the real3d clipping planes, our wide screen hack won't work anymore.
---------------------
r501
Get clipping planes directly from the viewport data. Also no need to clip against a far plane
---------------------
r500
Need to walk back in memory and check the previous texture tiles to see if they overlap with the current textures being invalidated. If they overlap they must be cleared too. Algorithm is a bit brute forcy and more expensive than I'd like b...
---------------------
r499
Skip processing the mipmap section of memory. The real3d doesn't create mipmaps down to 1x1 that is needed to do mipmapping properly on modern hardware anyway.
---------------------
r498
Clear queued texture uploads after processing them. Saves re-uploading the same textures whilst paused
---------------------
r497
More accurate 2D colours. White should map to 255 not 248
---------------------
r496
Fix the shading in scud. When lighting is disabled the fixed shading intensities appear to be offset values added to the colour value.
---------------------
r495
change throttle logic for smoother playback, we could get closer to 60fps if SDL timers weren't so lame
---------------------
r494
change scroll fog logic to parse the lower priority viewports first
---------------------
r493
implement scroll fog, fixes a tonne of missing fx
---------------------
r492
Parse out scrollfog value used for blending over the 2d background. 
---------------------
r491
Fix scenes with missing fog in ocean hunter. The game was passing negative fog densities. The sign seems to be ignored by the model 3.
---------------------
r490
same fix for legacy engine
---------------------
r489
our scratch mem must match correct max texture size
---------------------
r488
Fix the sky in advanced stage in Dirt Devils. It uses a massive (for 1998 :p) 1024x256 texture.
---------------------
r487
Support multiple microTextures, fixes crazy texturing in sega ski champ. I'm assuming microtextures are always located on the other memory bank to the base texture. This logic seems to work for all our games anyway.
---------------------
r486
Added RGBA4 format to BMP file writer
---------------------
r485
Made parsing of hex values more robust
---------------------
r484
Initial check in of Games.xml (only two games defined so far)
---------------------
r483
Fixed new 3D engine's fragment shader to work on some older GPUs by reducing the number of discard statements to one
---------------------
r482
Updated game loader to make use of latest changes to config tree: generic value types and eliminated pointers
---------------------
r481
Support for hex numbers in string to integer conversions (with '0x' prefix) and special keywords in string to bool conversions (true/false/on/off/yes/no)
---------------------
r480
Added Util::Stricmp() and small tweak to serialization of Util::Format
---------------------
r479
Added support for multiple value types in config nodes. Removed Ptr_t and ConstPtr_t from public interface, moved config tree builders into their own file, and made them pass by reference and value. Exceptions can be thrown now on lookup fa...
---------------------
r478
Added copy constructor and assignment operator using C++11 move semantics
---------------------
r477
Defined inputs
---------------------
r476
Support for deep copies via assignment operator. This will pave the way for elimination of Ptr_t and ConstPtr_t.
---------------------
r475
Added Write() method to write buffer to an ostream, and added an ostream operator overload
---------------------
r474
Changes to game loader interface, added 32-bit word swapping utility function
---------------------
r473
Added Logger.o to OSX and UNIX Makefiles. Should fix compilation on these platforms.
---------------------
r472
Removing MSVC Makefile 
---------------------
r471
Initial check-in of game loader (not operational yet)
---------------------
r470
Byte swapping utility function
---------------------
r469
Added ValueAsBool(), ValueAsBoolWithDefault(), and ValueAsUnsignedWithDefault()
---------------------
r468
update visual studio project
---------------------
r467
Added Util::Config::Node::ValueAsUnsigned() with support for base 10 and 16 ('0x' prefix)
---------------------
r466
Added Util::ToLower()
---------------------
r465
Config::Node::Add() now supports nested keys (e.g., Add("foo/bar/baz", "0") will create three nested config nodes)
---------------------
r464
Changed Config::Node::Create() to Add() and added a Set() method (for INI semantics). Turned Test_Config.cpp into a proper unit test reporting pass/fail for each test.
---------------------
r463
Adding tinyxml2 lib
---------------------
r462
XML parsing support for new config system
---------------------
r461
Moved logging functions into OSD/Logger.cpp (eventually logging system will be reworked entirely) and added new config tree structure (not yet used). 
---------------------
r460
Updated Win32 gcc, UNIX, and OSX Makefiles
---------------------
r459
Updated Fragment_NoSpotlight.glsl (fragment shader for legacy engine without spot light)
---------------------
r458
disable spot light if the extent is zero
---------------------
r457
Saving progress on scudp disassembly
---------------------
r456
parse some unimplemented spot light values from viewport
---------------------
r455
Added disassembly of Scud Race Plus
---------------------
r454
Marked offset of code in CROM for scudp
---------------------
r453
stencil translucent non textured polys
---------------------
r452
refactor
---------------------
r451
Cull geometry based on the culling distances in the nodes. Should give some sort of speedup on lower end pcs where the CPU is predominantly the bottle neck.
---------------------
r450
Fix compilation when SUPERMODEL_DEBUGGER enabled
---------------------
r449
cache bound texture
---------------------
r448
cleaning
---------------------
r447
Added drive board and lamp raw outputs (submitted by SailorSat)
---------------------
r446
support negative exponent 
---------------------
r445
Add code to convert the 16bit float format used by the hardware back into float 754 format. 16bit floats are used for the culling radiuses in the nodes.
---------------------
r444
Added -vsync and -no-vsync option descriptions to command line help
---------------------
r443
remove dead code
---------------------
r442
Added a Split() function to Util::Format.
---------------------
r441
XInput fix: search for all three possible XInput DLLs (xinput1_4.dll, xinput1_3.dll, and xinput9_1_0.dll). I have not tested 32-bit builds.
---------------------
r440
Check for overflow. Fixes some fade effects
---------------------
r439
Legacy engine: fixed texture offsets (VON2 was broken by last commit). Texture coordinates are wrapped within the bank first and then the bank can be swapped. This also allows the full range of texture coordinate bits to be used as specifie...
---------------------
r438
Y texture offsets are just 5 bits. Texture coordinate wrap around happens in the same texture sheet, not into the next one. Fixes various texturing bugs in sega rally.
---------------------
r437
Legacy engine: Culling node texture Y offset is only 5 bits (fixes Sega Rally 2 initials decal)
---------------------
r436
New engine: modf -> std::modf (fixes compilation on gcc)
---------------------
r435
Legacy engine: expanded color index to 12 bits from 11. Does this affect any games?
---------------------
r434
New engine: expanded color indices to 12 bits from 11. Added PolygonHeader::ColorIndex and SensorColorIndex methods.
---------------------
r433
Forgot to describe one polygon header field in Model.cpp
---------------------
r432
Updated polygon header descriptions
---------------------
r431
Legacy engine: Added stencil buffering for layered models and shadows. Not as accurate as new engine because stencil buffering is applied per-model rather than per-polygon, so the entire model must consist of stencil-tested polygons. In pra...
---------------------
r430
Optimise non smooth texture repeat to only effect texture boundaries, rather than poly boundaries. Fixes a few ugly artefacts
---------------------
r429
fix transparency values, values are from 0-32, not 0-16 where the top bit disables
---------------------
r428
Stencil layered polys, fixes shadow z fighting in some of the games. Other games maybe using stipple alpha (yuck), not sure yet.
---------------------
r427
remove bad rom patches
---------------------
r426
don't clamp after spot light code, looks much closer to h/w
---------------------
r425
Hooked up Sega Bass Fishing / Get Bass controls
---------------------
r424
basic spotlight code
---------------------
r423
Fixed fog in legacy 3D engine. Now computed same as new engine, with 4-bit light modifier and corrected fog mixing in shaders.
---------------------
r422
Updated legacy engine vertex shader to use specular shininess and coefficient along with old equation. Still not correct (too strong compared to the old method).
---------------------
r421
fix alpha testing for texture format 7
---------------------
r420
remove dead code
---------------------
r419
support 4 bit textures
---------------------
r418
correctly mask pointers
---------------------
r417
optimise hash table access for better performance
---------------------
r416
support colour table pointer
---------------------
r415
remove debug code
---------------------
r414
Fog start is apparently the fog value at the viewport (0,0,0) I guess like an ambient value. Default value is negative
---------------------
r413
Non luminous polygons seem to be effected by the lightModifier also. API seems to have no restriction in this regard, neither does the SDK. The ocean hunter requires this for some of the 2d stuff. Light modifier values only seem to exist be...
---------------------
r412
adjust (hopefully correct) fog equation
---------------------
r411
preliminary specular
---------------------
r410
- Removed a stale comment
---------------------
r409
Legacy renderer changes: - Updated shading model. Unfortunately, it is far from perfect but it seems to be the best I can do for now. Not really much of a difference from before except that the Scud Race castle is fixed at the expense of th...
---------------------
r408
Added palette bit to list of bits to dump for analysis
---------------------
r407
Disable light modifier on fog, seems not to work .. values don't make sense. Maybe the model3 doesn't use these.
---------------------
r406
remove dead code
---------------------
r405
double up polys for two sided polys, fixes some diffuse lighting problems
---------------------
r404
FLT_MAX -> std::numeric_limits<float>::max()
---------------------
r403
Added some IRQ-related code (commented out for now) from MAME findings. May incorporate in the future when investigating IRQs and timing again.
---------------------
r402
update header documentation
---------------------
r401
Fix bad texture seems
---------------------
r400
Reverted stencil mask change. This reintroduces the Scud Race 'ROLLING START' bug. Previous 'fix' did not work for Magical Truck Adventure anyway and also broke some games (Daytona 2 transmission and course select screen, ECA title screen)....
---------------------
r399
Added a register read handler for tilegen (although nothing seems to benefit from it)
---------------------
r398
Fixed logic for clearing bottom layer. Added new functions to 2D renderer interface. Avoid drawing top and bottom surfaces when no layers are present there. Added some comments to tile
---------------------
r397
Rewrote 2D renderer and fixed 2D layer priorities, stencil mask clipping (Scud Race 'ROLLING START'), and cleaned up code. Unfortunately, the new code is about 50% slower, mostly due to the need to perform stencil clipping after scrolling.
---------------------
r396
add texture helper functions
---------------------
r395
remove pointless loop
---------------------
r394
Split face colour from per vertex poly colour. Fixes colour bleeding between connected polys in harley.
---------------------
r393
Changed XInput DLL failure message
---------------------
r392
update poly header class
---------------------
r391
Fixed compilation on gcc (gotos cannot cross variable declarations)
---------------------
r390
Flat shaded polys can't share vertex normals with adjacent connected polys. Fixes some bad lighting in Harley on pavements
---------------------
r389
support flat shading
---------------------
r388
Make sure texture is bound to correct texture unit, stop flashing micro textures in daytona
---------------------
r387
set correct microtexture wrap mode
---------------------
r386
preliminary microtexture
---------------------
r385
skip viewports marked as disabled, might stop parsing some bad data
---------------------
r384
fix compilation
---------------------
r383
Added support for A1RGB5 to BMP file writer and added a (commented-out) example of how to use it to dump texture memory in ~CReal3D()
---------------------
r382
wrap invalid texture sizes, seems to fix bad textures in srally2 (skid marks)
---------------------
r381
Turn off lighting if fixed shading (or no normals) flag is present. Fixes some of the lighting weirdness in scud
---------------------
r380
Legacy engine: fixed per-vertex fixed shading to incorporate Ian's findings that the intensity value is signed and that fixed shading applies only when lighting is enabled
---------------------
r379
Daytona seems to use 3 bits for texture transparency, will figure it out later but for now this works
---------------------
r378
Fix fixed shading maths
---------------------
r377
Updated to-do comments
---------------------
r376
fixed shading code
---------------------
r375
Legacy engine: preliminary per-vertex fixed shading. Only limited testing with LA Machineguns (appears to work), Sega Rally 2 (appears okay), and Scud Race (fixes expert course bridge but not other mis-colored polygons).
---------------------
r374
read front buffer
---------------------
r373
Luminous bit is now also dumped in polygon header analysis because shading modes may depend on whether or not lighting is enabled
---------------------
r372
Legacy engine: extracting fixed shading component (but still can't use it because unsure of how to activate)
---------------------
r371
Fixed polygon header bit analysis code: was forgetting to swap GL buffer back to retrieve pixels from last rendered frame
---------------------
r370
color flag
---------------------
r369
update project
---------------------
r368
make compilable with visual studio
---------------------
r367
simplify
---------------------
r366
Forgot a newline
---------------------
r365
Polygon header bit analysis code (need to #define DEBUG and use -gfx-state option)
---------------------
r364
Added utility function to write BMP files
---------------------
r363
Updated polygon header description with double-sided bit (forgot it in last update!)
---------------------
r362
Added an updated description of the polygon header to the top of Legacy3D/Models.cpp
---------------------
r361
fix model normals, add code for fixed shading, as of yet flag to turn it on is unknown
---------------------
r360
Legacy engine: vertex normals are standalone and do not need to be added to polygon normal
---------------------
r359
Added a debug option to load and render a single frame of graphics state from a save state file. Only available if compiled with DEBUG defined. Invoked using: -gfx-state=<file> on command line.
---------------------
r358
Using IEmulator interface instead of CModel3 directly
---------------------
r357
Changed save state file version (r340 changed Real3D save format, breaking compatibility with older states, and states were probably already incompatible with 0.2a)
---------------------
r356
Fixed white space and warnings. Fixed second argument to -dis option in cases where other numerical parameters are specified on command line.
---------------------
r355
Flattened out nested if-statements in new engine's fragment shader to improve compatibility with older GPUs (e.g., NVS 300)
---------------------
r354
parse viewports in normal order
---------------------
r353
walk siblings before children, fixes some of the transparency drawing issues in ocean hunter
---------------------
r352
simplify
---------------------
r351
avoid cast warning
---------------------
r350
simplify list code
---------------------
r349
Updated Mac OS X Makefile
---------------------
r348
Fixed 8-bit texture decoding in legacy 3D engine. Contour mode/alpha still needs to be made consistent (as much as possible) with new engine.
---------------------
r347
Updated Supermodel.ini with default Magical Truck Adventure controls
---------------------
r346
Hooked up Magical Truck Adventure controls
---------------------
r345
you were right Bart :) (Fixes broken sound in last build)
---------------------
r344
Don't use variable sized variables across platforms, unless needed
---------------------
r343
Fix - cannot specify explicit initializer for arrays
---------------------
r342
Figured out Step 1.0 VROM texture uploads. Fixes missing textures in VF3 and VF3TB.
---------------------
r341
Debugger compilation fixed: CBus -> IBus
---------------------
r340
Fixed Magical Truck Adventure by emulating VROM texture ports as a FIFO. Now, VF3 crashes on Akira's stage (and probably the other stages with texture glitches). Other games may be affected, too (not thoroughly tested yet).
---------------------
r339
Fixed Magical Truck Adventure country check (accidentally removed a line in previous commit).
---------------------
r338
Magical Truck Adventure expects 0x03 to be returned from MIDI control port (thanks, Ville). Game now boots but crashes because VROM texture uploads clobber memory for some reason.
---------------------
r337
Created IEmulator interface, renamed CBus to IBus and CPCIDevice to IPCIDevice. Frames now rendered when emulator paused.
---------------------
r336
tweak frustum planes
---------------------
r335
Changed help text to explain that -sound-volume and -music-volume only take effect when DSB is present
---------------------
r334
Fixes for non-Windows builds: Makefile updated and fixed header files in Vec.cpp
---------------------
r333
revert viewport code
---------------------
r332
change tex format 4
---------------------
r331
Clamping diffuse+ambient light intensity to 1.0 (legacy engine)
---------------------
r330
Added a comment about viewports
---------------------
r329
Fixed texture enable bit (fixes Star Wars light sabers and Sega Rally 2 cones) and added a hack for (and more comments about) color modulation. Scud Race, Sega Rally 2, LA Machineguns, etc. look correct now, but Fighting Vipers 2 shadows ar...
---------------------
r328
Fixed Types.h include
---------------------
r327
Do not print extra hardware message when there is none
---------------------
r326
8-bit texture upload byte selection (thanks to Ville; but not tested yet); code cleanup
---------------------
r325
rgb values were swapped for paletted colours
---------------------
r324
Use the correct texture enable bit
---------------------
r323
Added a comment: observation of Star Wars and Scud Race color modulation issues.
---------------------
r322
Update vs project for encryption code
---------------------
r321
Possible work around for slightly incorrect viewport positions in ECA and harley
---------------------
r320
add missing include
---------------------
r319
Encryption device emulation (thanks to MAME), fixed warnings in Model3.cpp, added a string formatter helper, and updated Win32 GCC Makefile.
---------------------
r318
Added virtual destructor to CDSB
---------------------
r317
Added encryption keys, converted to cstdint types, fixed whitespace
---------------------
r316
Whitespace, cstdint types
---------------------
r315
add missing file
---------------------
r314
Use proper texture wrapping mode for 2d. Stops garbage down the top and left sides. Should really use NPOT texture.
---------------------
r313
add missing project files
---------------------
r312
Allow asymmetric projection matrices. Fixes a bunch of missing effects and bad camera angles in harley. 
---------------------
r311
update project
---------------------
r310
add LOD table data. Maybe we can get clipping planes out of these
---------------------
r309
properly mark dynamic meshes as such
---------------------
r308
allow 8 bit  mono textures to be contour textures, fixes a bunch of missing transparency in harley la riders 
---------------------
r307
clear the rom mesh buffer 
---------------------
r306
Cache rom models, for better performance. 
---------------------
r305

---------------------
r304
WIP
---------------------
r303
fix for bad matrix with NaN
---------------------
r302
Fixed detected axis printf() and compiler warnings (hopefully I did not parenthesize any conditionals incorrectly!)
---------------------
r301
finish front/back face culling code based on matrix determinant. Optimised opengl to avoid redundant state changes.
---------------------
r300
add missing project file
---------------------
r299
fix parenthesis error 
---------------------
r298
add maths functions
---------------------
r297
Update project to vs 2013. Clean compile warnings
---------------------
r296
Remove double copy of shaders
---------------------
r295
fix basic compile errors (with vs)
---------------------
r294
Tweaked Windows gcc Makefile
---------------------
r293
Fixed compiler warnings, whitespace, and moved local variable declarations to site of assignment
---------------------
r292
Include Version.h
---------------------
r291
Fixed typo that broke build
---------------------
r290
Fixed warnings and whitespace
---------------------
r289
Fixed warnings and whitespace
---------------------
r288
Fixed warnings and whitespace
---------------------
r287
Moved lastCycles static int out of header file (fixes compiler warnings)
---------------------
r286
Moved
---------------------
r285
Updated to support new IRender3D interface and added FrameTimings object.
---------------------
r284
CRender3D -> CLegacy3D
---------------------
r283
Update Supermodel.h with graphics path and moved version string to separate header file
---------------------
r282
Removing legacy 3D engine files that were already moved to Graphics/Legacy3D
---------------------
r281
Adding new 3D engine by Ian Curtis. Old engine moved to Graphics/Legacy3D/.
---------------------
r280
Fixed compilation errors involving min and max functions
---------------------
r279
Added registers to debugger: ctr, xer, srr0, srr1, sdr1, imiss, dmiss, hid0, hid1
---------------------
r278
Fixed compiler warnings
---------------------
r277
53c810: do not increment DSP when executing interrupt instruction. Fixes invalid polygons in Virtua Fighter 3. Thanks to Ian Curtis for discovering that the polygons were incorrectly-copied garbage.
---------------------
r276
Fixed display of PowerPC condition code bits in debugger (were backwards) and changed XER to print as hex.
---------------------
r275
Support for loading an arbitrary (non-game) CROM image.
---------------------
r274
Gracefully handle the case when a zip file contains no known Model 3 ROM set.
---------------------
r273
Converted line endings from DOS to UNIX format.
---------------------
r272
Contribution by Luciano Lopez:
---------------------
r271
Some updates to Supermodel made at beginning of the year but only now got around to checking in (better late than never...): - hooked up the remaining controls in Supermodel (except for Magical Truck Adventure which does not work at all yet...
---------------------
r270
Changed output "Pause" to "pause", as it is spelled in MAME, for MAMEHooker.
---------------------
r269
Small tweak to get to compile under GCC (Unix/MacOS)
---------------------
r268
Slight tweak to changes made to sound board synchronisation code in previous commit.  The previous change was necessary to ensure no deadlock when waiting for sound board thread to exit but it introduced unwanted buffer overruns (with the e...
---------------------
r267
- CModel3::StopThreads was rather gracelessly killing threads while they were waiting on their semaphores, which works okay Windows but not on Mac OS-X where it was preventing Supermodel from exiting properly.  Hence, have instead altered S...
---------------------
r266
- Fixed Win32 GCC Makefile. - Reverted Nik's polygon palette index change in Models.cpp. Subtracting 1 was breaking Scud Race. - Added an explicit typecast in Inputs.cpp, which GCC requires for some reason.
---------------------
r265
Committing various small updates that have been hanging around in my source tree for a while now: - Added 'crosshairs' command line and config option. - Added 'vsync' command line and config option (so far only tested on NVidia cards on Win...
---------------------
r264
Somehow John's Build.bat and Clean.bat did not get added in r262. Here they are.
---------------------
r263
- Committing Nik's timing changes: the PowerPC's DEC and TBR now count at the correct rate and time is accurately maintained between calls to the emulator. A VBlank bit was identified in the Real3D status register space and is now timed. Un...
---------------------
r262
Applied a series of patches by John Peterson:
---------------------
r261
Applied Nik's fix for cyclical scene graphs. Improves Harley Davidson, Ski Champ, Emergency Call Ambulance, and Ocean Hunter.
---------------------
r260
Brought in the near clipping plane for Step 1.5+. Objects close to camera are no longer cut-off (e.g., driver arms and steering wheels in cockpit views). Note: This change should probably be applied to Step 1.0 as well in the future. For no...
---------------------
r259
DirectInputSystem's initial state wasn't being initialized properly, which would sometimes result in invalid input values until keyboard or mouse was successfully acquired
---------------------
r258
Added a clear() method to VBORef and removed unsafe memset() clear.
---------------------
r257
This update fixes (hopefully) the last of the texture upload lags that were affecting some games, in particular Daytona 2 and Spikeout. To achieve this UploadTextures no longer clears the model cache when called.  Instead the cache is kept ...
---------------------
r256
Byte swapped sample ROMs. This should fix the audio distortion that many users noticed. The differences are particularly noticeable in Scud Race and Daytona 2.
---------------------
r255
Forgot to update to-do list in previous revision. Added a comment to mark CRender2D::WriteVRAM() as deprecated.
---------------------
r254
Previous "optimization" contained a mistake and made things worse. Removed unnecessary clear of the bottom layer buffer. Now, if there is no bottom layer, it will not be displayed at all and glClear(GL_COLOR_BUFFER_BIT) is used instead.
---------------------
r253
Further optimization/simplification of the 2D renderer's main loop.
---------------------
r252
- Finished cleaning up and optimizing the 2D renderer. - Fixed up color offset register support for new 2D rendering system. Now maintains 2 computed palettes for layers A/A' and B/B'. - Fixed a minor bug in InitPalette(); VRAM was not bein...
---------------------
r251
Contour processing (discarding of pixels when alpha==0) enabled for A4L4 texture formats. Improves smoke and fire in Daytona 2.
---------------------
r250
Default SCSP balance set to 0. Was erroneously set at +50%.
---------------------
r249
- NOTE: In this revision (possibly earlier), I've started to notice some intermittent geometry glitches in Spikeout and slowdown while playing certain characters. - Added multi-texture fragment shader to repo. - Added a multiTexture option ...
---------------------
r248
Updated fragment shaders' floating point comparisons and also some knock-on changes from SVN revision 246. 
---------------------
r247
Added OSD/Video.h to provide OSD-dependent video functionality.  The static functions in here get called by Model3.cpp from within the render thread so that any OSD related rendering can also be run in parallel for a further speed increase....
---------------------
r246
Added support for multiple texture sheets (with up to one per Model 3 texture format) as a rather brute-force way to handle overlapping texture formats in the current 3D engine.  This fixes some corrupt textures in Daytona 2 and Virtua Stri...
---------------------
r245
Added command line options to force windowed mode and to control GPU multi-threading.
---------------------
r244
Added a wide screen hack that can be enabled with the -'wide-screen' argument or WideScreen in the config file.
---------------------
r243
Tweaked help text slightly.
---------------------
r242
Fixed left/right stereo channels -- they were reversed by default.
---------------------
r241
Added front/rear speaker balance (actually the master/slave SCSP balance). Balance setting is stored in CSoundBoardConfig and can be set on the command line (-balance) or config file (Balance). Valid range is 100 (front speaker volume doubl...
---------------------
r240
Added preliminary specular lighting to shaders. The "no spotlight" shader has not yet been updated.
---------------------
r239
Updated some comments regarding the VF3 ROM patches. It seems many of them are no longer necessary. The single necessary patch affects timing (note how the warning screen stays up longer when it is removed). This needs to be investigated --...
---------------------
r238
Documented the tile generator.
---------------------
r237
- Added specular highlight support to the 3D engine. A shininess parameter is now be passed to the shaders. Does not work correctly and I will save the shaders themselves for a future commit. - Added support for layer priorities. Highly uno...
---------------------
r236
Removed unused dirty rectangle code.
---------------------
r235
Removed unused dirty rectangle code.
---------------------
r234
Removed unused dirty rectangle code.
---------------------
r233
Added missing library WbemUuid.lib to VS project linker options 
---------------------
r232
Small correction to lighting model in shaders. Light intensity is no longer clipped.
---------------------
r231
Removed unused (and non-functional) 'stack machine' scene graph traversal.
---------------------
r230
MinGW Makefile now uses cmd prompt commands, not UNIX/msys.
---------------------
r229
Added a MinGW Makefile for users of GCC on Windows.
---------------------
r228
Removed deprecated, unused Turbo68K stuff.
---------------------
r227
Now compiles with MinGW. Among other things, the use of __uuidof() was removed.
---------------------
r226
New multi-threaded rendering changes that parallelise graphics rendering and PPC execution in order to increase performance on multi-core machines. New gpuMultiThreaded config option to enable/disable multi-threaded rendering (enabled by de...
---------------------
r225
Removed unecessary SDL include 
---------------------
r224
Added missing shader source files into VS2008 project (not needed for build, just for reference) 
---------------------
r223
Added CThread::Sleep && CThread::GetTicks methods 
---------------------
r221
Fixed Unix Makefile to link okay on Ubuntu 11.10 (archive libraries needed to be referenced at end of linker options) 
---------------------
r220
Assigned new version number: 0.3a-WIP.
---------------------
r219
Fixed a bug w/ Read16() -- was not casting to a pointer properly, caused Scud Race to crash.
---------------------
r218
Preliminary backface culling fix. Matrices which effectively change the polygon winding without changing the Z component of the polygon normal are tested for when appending items to the display list. If necessary, the polygon winding is cha...
---------------------
r217
Fixed ROM banking -- appears to fix the sounds in Daytona 2 PE and VON2 but otherwise has not been extensively tested. The high 8MB of the 68K address is treated as a single window into the 16MB sample ROM, and can point either to the low o...
---------------------
r216
Fixed a MAGIC_NUMBER comment typo.
---------------------
r215
Small bug fix 
---------------------
r214
Small tweak to improve startup time 
---------------------
r213
Optimisations to improve performance when running with debugger.  Now runs at about 2/3 speed of full speed of emulator, rather than 1/3 like before. 
---------------------
r212
Added missing DirectX include and library paths to project
---------------------
r211
Added quotes around paths in post-build events to allow for spaces in directory names
---------------------
r210
Fixed incorrect ZLib paths 
---------------------
r209
Updated comment in DIR.txt (again!)
---------------------
r208
Updated comment in DIR.txt. 
---------------------
r207
Removed sub-directories of Libraries as are created when user unzips source archives, so might be confusing. 
---------------------
r206
Added DIR.txt to explain purpose of Libraries directories 
---------------------
r205
Added place holder directories for third-party libraries (eg ZLib and SDL) 
---------------------
r204
Changes to Supermodel VS2008 solution to ensure it will now build completely from scratch:  - added projects to build third-party libraries ZLib and SDL (expects source code to be present in Libraries directory)  - moved Musashi68K into its...
---------------------
r203
Added support for joystick sliders to input system. Added extra debugging output to calibration input detection routine (activated by pressing Shift). 
---------------------
r202
Fixed small bug which meant wasn't correctly clearing SCSP structures on initialisation. 
---------------------
r201
Added separate Musashi68K project that compiles and runs m68kmake to build required Musashi68K file. Updated solution so that with above change it will now build Supermodel completely from scratch. 
---------------------
r200
Added DirectInputConstForceLeftMax and DirectInputConstForceRightMax options to allow different force feedback strengths in each direction.  DirectInputConstForceMax still works as before but these new options will override it for the given...
---------------------
r199
Fixed a comment in default ini file.
---------------------
r198
Force feedback fixes in DirectInputSystem.cpp: - Fixed bug which meant right constant force was not being capped to DI_EFFECTS_MAX - Made sure all values are being clamped to sensible ranges 
---------------------
r196
Minor document update (for v0.2a -- the last one this time ;))
---------------------
r195
Documentation for v0.2a completed.
---------------------
r194
- Documentation updates. - Added fflush() to config dialog output where it was missing.
---------------------
r193
- Tweaked some error messages and comments. Hopefully, this is the last update for v0.2a's code. - Documentation updates.
---------------------
r192
Added Visual Studio 2008 Project/Solution files as an alternative way to build Supermodel on Windows. 
---------------------
r190
- Only player 1 crosshair is shown by default now. - Tweaked Makefiles a bit. - More documentation updates. - Changed version string to 0.2a in preparation for the final release :)
---------------------
r189
- Tweaked text in input configuration dialog. - Changed version string to 0.2a-RC3 because RC2 build was sent out to testers earlier.
---------------------
r188
- Getting/setting MPEG playback position also includes the end offset. Hopefully will fix save states from crashing when reloaded sometimes in DSB1 and DSB2 games.
---------------------
r187
- Changed spelling of some messages in drive board code. - Added an extra blank line after info display in CModel3. - Cleaned up comments in Main.cpp. - More document updates. Fixed '-no-music'->'-no-dsb', 'EmulateMusic'->'EmulateDSB'.
---------------------
r186
Commented out verbose/debug output in drive board code for release.
---------------------
r185
More to-do notes for README.txt. 
---------------------
r184
More updates to README.txt. Almost done.
---------------------
r183
Force feedback no longer available as an option on non-Windows builds.
---------------------
r182
- Updates to UNIX and OSX Makefiles.
---------------------
r181
- Changed save state error messages slightly. - Wrapped rows that exceed 80 columns in Supermodel.ini. - Added some member and function comments to a few header files.  - Changed version string to 0.2a-RC2 in anticipation of sending another...
---------------------
r180
Changes to get debugger classes to compile under Linux 
---------------------
r179
Changes to get debugger classes to compile under Linux 
---------------------
r178
Changes to get debugger classes to compile under Linux 
---------------------
r177
Fix to get InputSystem.cpp to compile under Linux again after updates today 
---------------------
r176
Added copyright headers to all debugger files and replaced C standard library headers with c++ versions 
---------------------
r175
Tweaked header comment! 
---------------------
r174
Added copyright header to file 
---------------------
r173
Removed DirectInputEffectsGain force feedback configuration parameter as it's not that useful as it's easier to adjust effects individually 
---------------------
r172
Changes to input system: - altered PrintSettings to output all settings for attached controls, even if no different to defaults - added option on calibration screen to detect an axis simply by moving the axis 
---------------------
r171
Changes to DirectInputSystem: - corrected axis identification code as was not enumerating axes properly in all cases - added fallback which just adds all axes if there is any hint of an irregularity whilst enumerating axes 
---------------------
r170
Un-broke Windows Makefile.
---------------------
r169
Updated UNIX Makefile, fixed some syntax errors.
---------------------
r168
Minor updates to README.txt.
---------------------
r167
More work on README.txt.
---------------------
r166
- Fixed newlines in logs. - Set default PowerPC frequency to 50 MHz. - Minor tweak to help text. - More README.txt updates.
---------------------
r165
Fixed mistake in previous commit! 
---------------------
r164
Added missing memory regions for DSB CPUs 
---------------------
r163
Updated Makefile with new debugger classes. 
---------------------
r162
CModel3::StopThreads() now makes sures threads are paused before deleting thread objects. 
---------------------
r161
Changes to allow debugging of Musashi 68K core: - added methods to attach/debug debugger. - added instruction hook & callback to m68kconf.h and added hooks into CMusashi68KDebug to allow debugger to control execution. - added methods to all...
---------------------
r160
Small cosmetic changes... 
---------------------
r159
Changes to allow debugging of Z80 core: - added methods to attach/detach debugger. - added hooks into CZ80Debug to allow debugger to control execution. - added methods to allow reading/writing of Z80 registers. 
---------------------
r158
Changes due to updates in debugger classes. 
---------------------
r157
Small bug fix in INIFile.cpp - was not parsing negative numbers. 
---------------------
r156
Added includes for new debugger header files Musashi68KDebug.h & Z80Debug.h 
---------------------
r155
Changes to debugger classes: - updated debugger classes to compile again with all recent changes. - improved debugger classes to allow them to work in multi-threaded emulator and be able to handle CPUs on different threads. - added debug cl...
---------------------
r154
Changes to input system: - Joystick axis saturation values can now range from 1-200 rather than just 1-100.  This lets the user make axis less sensitive, if required. - Added joystick axes calibration menus to -config-inputs. - Moved Direct...
---------------------
r153
- Tweaked formatting of help message
---------------------
r152
- Tweaked comments in Supermodel.ini - More work on README.txt - Tweaked some error/info messages. 
---------------------
r151
Small updates:  - added methods to CModel3 to access sound board and drive board  - added methods to CSoundBoard to access 68K and DSB (if attached)  - added methods to CDSB1 & CDSB2 to access Z80 & 68K respectively  - small code tweak in D...
---------------------
r150
- Updated README (far from finished). - Music volume cannot be changed if game has no DSB. - Extra hardware (DSB, drive board) is printed in information display when ROM is loaded.
---------------------
r149
Now always saves feedback effect configuration (this way, defaults do not have to be defined in multiple places).
---------------------
r148
Renamed drive board ROMs to MAME's naming convention.
---------------------
r147
-Updated copyright information in Makefiles. -Updated README.txt revision log.
---------------------
r146
Updated copyright information and added headers to all remaining files except debugger.
---------------------
r145
- Added mutex for MIDI FIFO access to SCSP.cpp.
---------------------
r144
- Changed EmulateSCSP -> EmulateSound and -no-scsp -> -no-sound. - Changed gear shifting behavior: neutral gear has its own button now. - Removed SUPERMODEL_SOUND. - DirectInput is the default input system for Windows now. - Multi-threading...
---------------------
r143
Improved way constant force and vibrate effects are combined to control left and right vibration motors under XInput 
---------------------
r142
Added comment 
---------------------
r141
Added stopping of all force feedback effects on reset (just in case some were playing at that point) 
---------------------
r140
Added a scissor box to clip viewable area. Prevents garbage in the "overscan" areas due to renderer creating viewports that exceed intended display area.
---------------------
r139
Constant force commands for XInput devices fixed so that they will stop when 0 force is applied.
---------------------
r138
Fixed a possible INI file problem: unterminated strings will end at a newline now.
---------------------
r137
Driveboard changes: - added notification message if drive board is disabled when loading incompatible save state - removed some superflous print statements, but have kept in printing out of force feedback commands for now (which have also b...
---------------------
r136
Changes to Audio.cpp: - audio buffer is now kept as full as possible with new audio buffering method rather than just half full like before (this is okay now that buffer overruns have been eliminated) - altered minimum size of audio buffer ...
---------------------
r135
Added note to command line options indicating that force feedback is experimental still 
---------------------
r134
Added configuring of DirectInput and XInput force feedback parameters via config file 
---------------------
r133
Changed drive board logic slightly for stopping vibrate effect as wasn't always cancelling the effect in Daytona 2 
---------------------
r132
Fixed 68K save state problem: pending interrupts were not being saved, sometimes causing the DSB2 to take an invalid interrupt (from the sound board 68K) after loading a save state. Save states are no longer compatible with previous revisio...
---------------------
r131
- Nik's new decoupled audio code with fixes to minimize overruns.  - VBlank timing: increased to 20% of a frame.
---------------------
r130
Fixed bug with loading/saving of state - it wasn't persisting the ram array properly 
---------------------
r129
Fixed bug which was crashing emulator when loading/saving state of games that do not use the drive board 
---------------------
r128
Fixed error reporting for -input-system option.
---------------------
r127
Fixed error message when multiple files detected on command line.
---------------------
r126
DriveBoard changes: - fixed bug in SendConstantForce which was sending incorrect values at times - removed friction effect for now, until can determine its exact command seq - added checking of compatibility of saved state and temporary dis...
---------------------
r125
- Fixed drive board. Now determines whether it is attached and enabled in Reset().
---------------------
r124
- Removed BOOL and replaced it with native C++ type, bool. - Removed TRUE and FALSE, changed to 'true' and 'false' keywords.
---------------------
r123
- Cleaned up game names (primary sets no longer have revision labels in title). - Added volume controls to UI. - Renamed "Sega Rally Controls" to "Sega Rally/Dirt Devils Controls" (even though Dirt Devils has no hand brake). - Hooked up gea...
---------------------
r122
Forgot to disable drive board if ROM not loaded.
---------------------
r121
- Added drive board ROM loading. - Changed EnableFFeedback -> ForceFeedback to be more consistent with the other options. - Updated help text.
---------------------
r120
- Updated help text. - Corrected a typo: EnableFeedback -> EnableFFeedback.
---------------------
r119
Added method to fetch current PC value 
---------------------
r118
Added -force-feedback command line option 
---------------------
r117
Added handling of drive board (if attached) 
---------------------
r116
Added drive board 
---------------------
r115
Added drive board header 
---------------------
r114
Added in drive board config 
---------------------
r113
Initial version of drive board (still work-in-progress) 
---------------------
r112
Changes to CDirectInputSystem: - Added parameters for DirectInput and XInput force feedback effects (although still need to add code to persist them in configuration file) - Added extra friction feedback effect and tidied up existing effect...
---------------------
r111
Added friction effect to feedback enumeration 
---------------------
r110
- Changes to let SCSP.cpp compile under Visual Studio 64-bit - Fixed unsigned int overflow bug in SCSP.cpp that was causing VF3 to crash on selection screen when running 64-bit 
---------------------
r109
Made save states 64-bit safe.
---------------------
r108
Multithreading was always enabled in the CModel3 constructor. Disabled this behavior.
---------------------
r107
First part of SCSP clean up: pointer arithmetic made more safe (I hope). To-do: convert data types to Supermodel standards.
---------------------
r106
Fixed bug which meant that a buffer over-run occuring under certain conditions would leave the write position dangling past the end of the buffer, causing no further sound to be written to the buffer and leaving playback looping indefinitel...
---------------------
r105
- getbass now uses MPC106. - Fixed some error messages in 53C810.cpp. - Fixed stereo (was swapped) and added a flip stereo option.
---------------------
r104
Removed setting of writeWrapped to false always on buffer under-run when underRunLoop is true as this is wrong.  Suspect this may have been causing looping bug. 
---------------------
r103
Inadvertently left SUPERMODEL_LOG_SOUND enabled. Now disabled.
---------------------
r102
- Added Spikeout Final Edition. - Minor change to DSB save state loading: only loopEnd is checked before using MPEG_SetLoop().
---------------------
r101
- Fixed format strings for messages involving __LINE__. - Fixed an MPEG related crash when loading save states. If usingLoopStart is 0, it is important not to call MPEG_SetLoop()! - -input-system is working again. - Changed the format of so...
---------------------
r100
- Added crosshairs for light gun games and disabled mouse cursor in full screen mode (no way to re-enable it now). - Fixed Real3D FIFO buffer overflow bug. - Input system cannot be changed for non-Windows builds (only SDL is available). - A...
---------------------
r99
- Added mappings for individual joysticks in Virtual On for dual-joystick gamepads. - Input settings are now only read from "global" to avoid confusion.
---------------------
r98
Detailed config is logged.
---------------------
r97
Detailed config is logged.
---------------------
r96
- Forgot to add OSDConfig.h. - Changed more C standard library headers to C++ versions.
---------------------
r95
- Program settings are now managed by the CConfig class. - Moved Logger.h to OSD/, cleaned up comments. - Command line and config file parsing have been rewritten. - Began replacing C standard library headers with C++ versions (eg. stdio.h ...
---------------------
r94
Fixed memory pool macros to (hopefully) work with gcc.
---------------------
r93
Musashi context is now cleared in M68KCtx constructor. The internal Musashi context is zeroed out initially but the dynamically allocated external contexts would sometimes be filled with garbage, which would trigger interrupts at the very f...
---------------------
r92
- Fixed DSB2 save states: M68K context wasn't being set. - INI file changes: added support for opening and creating files, for a default section alias, and for sections appearing multiple times in the section list (may prevent some bugs).
---------------------
r91
- DSB2 save state support. - krom made a minor optimization of the byte reverse routines in ppc.cpp.
---------------------
r90
R. Belmont's changes to compile under MacOS and Linux.
---------------------
r89
Save state support for 68K, Z80, sound board, DSB1, and MPEG playback.
---------------------
r88
Save state support for 68K, Z80, sound board, DSB1, and MPEG playback.
---------------------
r87
Added option to loop play position back to beginning of audio buffer when a buffer under-run occurs, rather than stalling output as before.  This option is now the default behaviour. 
---------------------
r86
Protection now works for ecax.
---------------------
r85
Fixed mistake in previous commit!  
---------------------
r84
Small bug fix to get MIDI music to play at correct speed (68K was running at wrong frequency) 
---------------------
r83
- Added a patch for vs215.
---------------------
r82
- krom's patches for vf3a, harleyb, and ecax.
---------------------
r81
- Fixed DSB2 music looping.
---------------------
r80
- Fixed a DSB2 bug: masking of bytes when constructing start/end addresses is now correct (previously was allowing uninitialized garbage into upper 8 bits, which ought to be 0).
---------------------
r79
- Fixed Daytona 2 Advertise song. DSB2 MPEG state machine can now begin playing songs from state ST_GOTA4. - krom: Minor fixes to Main.cpp to support wider ROM set names (up to 9 chars) and compilation under MinGW.
---------------------
r78
- krom added remaining ROM sets. Spikeout Final Edition disabled because it is a bad dump. - Added patches for scuda and scudj. - Added a TO-DO reminder in INIFile.cpp.
---------------------
r77
- skichamp now works, but controls are not hooked up and seems to overload the display lists like many non-working Step 2.x games do. To bypass the drive board error, enter the test menu and exit again. It will reboot and run. - Added some ...
---------------------
r76
- Changes submitted by krom: cleaned up spacing in Games.cpp, optimized byte swapping functions in Supermodel.h, minor changes to fix compiler errors in gcc.
---------------------
r75
- Fixed Ski Champ loading. Fails with a "NO DAUGHTERBOARD" error.
---------------------
r74
- Commented out debug log stuff. Now produces less noisy debug.log files.
---------------------
r73
- Added a C fallback for inline assembly code when the compiler is not MSVC.
---------------------
r72
- Alphabetized ROM sets (thanks to krom) and added DSB ROMs to Spikeout.
---------------------
r71
- Fixed compilation when DEBUG is defined.
---------------------
r70
- Removed an unneeded printf() statement.
---------------------
r69
- Improved 68K interface. Now supports context switching. - CSoundBoard is not derived from CBus. - Optimized sound board memory handlers (now using switch statements). - Added DSB emulation (based on R. Belmont's M1 source code). - Improve...
---------------------
r68
Added instruction cycle counting to new Z80 core 
---------------------
r67
- Textures are no longer decoded for un-textured polygons (not sure if this fixes anything yet).
---------------------
r66
- Textures are no longer decoded for un-textured polygons (not sure if this fixes anything yet).
---------------------
r65
- Sega Bass Fishing now uses an MPC106, allowing it to boot.
---------------------
r64
- Texture offsets: models are now decoded for each individual texture offset state and texture coordinates are adjusted while generating the vertex data. - Model LUT now capable of differentiating between texture offset states (linked list ...
---------------------
r63
- Removed disabling of sound for 64-bit build 
---------------------
r62
- Added check of reserved flag back into PPC stwcx. instruction 
---------------------
r61
- Updated debugger classes to get them to compile with latest changes - Moved CPU debugger for Turbo68K into separate class CTurbo68KDebug and made C68KDebug base class for later addition of Musashi core - Fixed typos in ConsoleDebugger 
---------------------
r60
- Added function-based interface Audio for OSD sound output, together with SDL implementation - Added object interface CThread for OSD threading and synchronization, together with SDL implementation - Added multi-threading to CModel3 so tha...
---------------------
r59
- Fixed for 64-bit build - Added OSD directories into include path -This line, and those below, will be ignored--
---------------------
r58
- Patched out a decrementer loop that was preventing Spikeout from starting up.
---------------------
r57
- CPU/Z80.h included from Supermodel.h
---------------------
r56
- Added Z80 emulator from YAZE-AG. - CBus now has IO bus functions to support the Z80.cpp - Bus.h moved to CPU/ directory.
---------------------
r55
- Added sound ROMs to Daytona 2 (BOTE and PE). - Implemented bank switching for sample ROMs. It is probably incorrect because there is still 2MB of unaccounted-for space. - Added a few important TO-DO notes.
---------------------
r54
- stwcx. now always writes to memory. - Added PPC/68K communication and automatically generated sound IRQs. Sound is now mostly working :) - Increased SCSP MIDI buffer length to 128 to simulate a large FIFO for PPC->68K commands. - Added so...
---------------------
r53

---------------------
r52
- Added the Musashi 68K emulator by Karl Stenerud. Obtained Karl's explicit permission to relicense the code under GPL. - Added a 68K interface, CPU/68K/M68K.*. - Moved Turbo68K source files to CPU/68K/Turbo68K. It is no longer used but is ...
---------------------
r51
Several ROM sets were added (contributed by krom@gbadev.org).
---------------------
r50
Added Spikeout protection data. Added code to detect and abort erroneous 0-length texture transfers (was causing Spikeout to hang the emulator).
---------------------
r49
Texture offsets.
---------------------
r48
Added texture offsets. Vertex shader has been updated in Shaders/Vertex.glsl.
---------------------
r47
Changes to debugger classes:  - Added CPrintBreakpoint Changes to console-based debugger:  - Added new scp command and tidied up some other commands  - Tidied up event logging  - Sorted commands into common groups  - Added ReadMe.txt help f...
---------------------
r46
Changes to debugger classes: - fixed step-out to work properly - added ability to enable/disable debugging of individual CPUs Changes to console-based debugger: - tidied up syntax and split some commands out to make easier to use - implemen...
---------------------
r45
Added version of ConfigInputs that doesn't take display dimensions 
---------------------
r44
New debugger classes - implementations for ppc and Turbo68K CPU cores 
---------------------
r43
Added ENABLE_DEBUGGER option to include built-in console-based debugger in emulator 
---------------------
r42
Changes for new built-in console-based debugger (only compiled in if SUPERMODEL_DEBUGGER defined):  - added code to create debugger object and attach it to system,  - added new command lines options -enter-debugger and -disable-debugger,  -...
---------------------
r41
Added headers for new debugger classes 
---------------------
r40
New CLogger class that handles logging from Supermodel.  Added so that log messages can be routed through debugger if required, rather than printed to console. 
---------------------
r39
Added hooks into debugger classes 
---------------------
r38
Added option to call user supplied debug function before every instruction 
---------------------
r37
Added check for error that occurs when calling CoInitialize from a managed context 
---------------------
r36
Added new UI input to break execution and enter debugger (default mapping Alt+B) 
---------------------
r35
Removed couple of debugger commands that not yet working 
---------------------
r34
New debugger classes 
---------------------
r33
Fixed small bug with formatting in DecodeSigned16 
---------------------
r32
Small change to allow Supermodel to compile under Linux 
---------------------
r31
Small code tidy up (moved some code out of header file into cpp file where it belongs) 
---------------------
r30
Modified Windows Makefile to fix conditional compiling and also to allow building of 64-bit version of emulator.
---------------------
r29
Changes relating to input system:  - Added ability to configure axis min, centre and max values in INI file.  This allows some types of steering wheel pedals that use an inverted value range to work properly with the emulator.  - Modified C...
---------------------
r28
Changes relating to input system: - Fixed bug with mapping of multiple assignments. - Added new ! operator for input mappings, which lets the user specify that an input must not be active. - Added option to print info about input system (su...
---------------------
r27
Importing Makefiles (which are currently somewhat broken).
---------------------
r26
Fixing import mistake: moving source code to trunk/Src.
---------------------
r25
Fixing import mistake: moving source code to trunk/Src.
---------------------
r24
Initial import of new Supermodel code.
---------------------
r23
Original Supermodel code moved to tags/Original.
---------------------
r22
Original Supermodel code moved to tags/Original.
---------------------
r21
Original Supermodel code moved to tags/Original.
---------------------
r20
Original Supermodel code moved to tags/Original.
---------------------
r19
Original Supermodel code moved to tags/Original.
---------------------
r18
Original Supermodel code moved to tags/Original.
---------------------
r17
Original Supermodel code moved to tags/Original.
---------------------
r16
Original Supermodel code moved to tags/Original.
---------------------
r15
Original Supermodel code moved to tags/Original.
---------------------
r13

---------------------
r12

---------------------
r11

---------------------
r10

---------------------
r9

---------------------
r8

---------------------
r7
Fixed VF3 and Scud Race
---------------------
r6

---------------------
r5

---------------------
r4

---------------------
r3

---------------------
r2

---------------------
r1

---------------------
