Skip to content

Meka 2019-12-13

Compare
Choose a tag to compare
@ocornut ocornut released this 13 Dec 12:34
· 74 commits to master since this release

We have never tagged builds on github since Meka went into it's long 0.80 journey.. let's do this now..
What has changed since Meka 0.72:

Emulation (Main)

  • Z80: Fixed emulation of R register (fixes 'Bubble Bobble', 'Hong Kil Dong' among others) [Calindro]
  • Z80: Fixed CPDR running fully and ignoring interrupts. [Calindro]
  • Z80: Fixed HALT timing. [Calindro]
  • VDP: Setting address via palette write preserve upper address bits. Fixes tests #4 and #15 of FluBBA's VDP Tester. [Omar]
  • VDP: Writing to palette sets the read buffer. Fixes test #10 of FluBBA's VDP Tester. [Omar]

Emulation (Audio)

  • PSG: Added support for Game Gear stereo emulation! [Maxim]
  • PSG: Emulate the PSG volumes "ideally" rather than matching some real systems' suboptimal output. [Maxim]
  • Emu2413: Fixed commands 0x26-0x28 from turning off the drums. [ValleyBell]
  • Rewrote sound engine and fixed audio issues that many users had. Still issues and PAL mode are broken... The sound is also now functional under Linux and MacOS. [Omar]

Emulation (Memory System, Mappers, Peripherals)

  • Added support for variant of MSX-based Korean 8KB mapper used by 'Nemesis'. [Omar]
  • Added support for '4 PAK All Action' mapper. [Omar]
  • Added support for 'Janggun-ui Adeul' mapper. [Omar]
  • Added support for Taiwanese DahJee/Jumbo SG-1000 II RAM extension adapter. [Omar]
  • Added support for Sega Graphic Tablet v2.0 prototype hardware. [Maxim,Omar]
  • Added support for Korean Hi-Com 3-in-1 and 8-in-1 mapper. [Omar]
  • Added support for SC-3000 Survivors Multicart mapper. [Omar,Honestbob]
  • Fixed 32K "No Mapper" mapper from forwarding 3-D Glasses writes. Fixes '3D Gunner'. [Omar]
  • SMS/GG ROM images smaller than 48KB default to using no mapper. [Omar]
  • Hardware reset leaves RAM cleared with $F0 patterns on Japanese SMS. This allow 'Ali Baba' and 'Block Hole' to run properly. Better clearing patterns could be implemented for other systems/countries after we've done more research. [Omar]
  • Added support for mirrored VDP ports in $80..$BF range, as required by some Korean games such as 'Pooyan', 'Sky Jaguar' or 'E.I.'. [Omar]
  • Light Phaser: Adding per-game hacky light phaser function to reduce drift between perceived cursor and what the game will end up using, particularly useful for 'Missile Defense 3-D' and '3D Gunner'. [Omar]

Misc

  • Changed default key mapping for Player 1 buttons to use Z/X. [Omar]
  • Setup panel allows to select display driver and resolution. [Omar]

Debugger

  • Added support for setting breakpoint from ROM addresses (perform reverse mapping to validate address). [Omar]
  • Referring to a symbol using with the : prefix (in the form ":xxxx") returns the ROM address instead of the CPU address. [Omar]
  • Added STEPOUT command ("Continue to next RET* instruction at same stack-frame level."). [Omar]
  • Added STACK command ("Dump stack", with dual 8/16 bits display and with symbol resolving). [Omar]
  • Added VARS command ("Variables") to display content pointed by symbols in RAM. [Omar]
  • Added TRACE command to trace past execution. [Omar]
  • Improved the range of disassembly before PC cursor when running loops. [Omar]
  • Fixed CLOCK command display for period longer than 10 minutes. [Maxim]
  • Added support for parsing the bank in NO&GMB/WLA symbol format. Symbols are turned into ROM addresses. [Omar]
  • Added support for parsing SJASM symbol format. [Omar]
  • Added support for parsing TASM symbol format. [Omar]
  • Added a "Reload Symbols" menu option (useful when manually crafting symbols while reverse engineering). [Omar]
  • Added shortcuts button in interface for "Stop/Continue", "Step", "StepOver", "StepOut", "Stack". [Omar]
  • Disassembler: uses recorded Z80 execution history to allow semi-freely scrolling up and down in disassembly. [Omar]
  • Disassembler: display symbols given their full ROM bank mapping (if bank information is provided by symbols file). [Omar]
  • Disassembler: display symbols in 'RST xx' instructions. [Omar]
  • Disassembler: opcodes shown in lower-case, increased spacing for readability. [Omar]
  • Disassembler: display symbols+offset on JP/JR/CALL/RET/DJNZ instructions. [Omar]
  • Disassembler: display symbols on IX/IY indexed instructions given the current value of IX/IY. [Omar]
  • Disassembler: fixed issues with prefixed instructions. [Omar]
  • Improved disassembler view centering, increased the track-back buffer, fixed issues with prefixed instructions. [Omar]
  • Better support for 24-bits constants (for PRINT, etc.). [Omar]
  • Debugger is always available at runtime. Obsoleted /DEBUG command-line parameter. [Omar]
  • Debugger window can be resized. [Omar]

Tools

  • CheatFinder: added a new cheat finder application. [Omar]
    • Can search for 1-bit, 8-bit, 16-bit, 24-bit values.
    • Can search in RAM,ROM,VRAM,VREG,PRAM,SRAM,Z80 spaces for maximum flexibility,
      although for actual cheat-finding purpose RAM is likely to be more searched for.
    • Reduce the match set by using ==,!=,<,>,<=,>= operators, compare with a constant
      or the old value stored in each match memory location.
    • Highlight matches in the memory editor for easier visibility.
    • Undo button.
  • TilemapViewer: support for legacy graphic mode 2 used by SG-1000 games. [Omar]
  • TilemapViewer: support for 256x256 tilemap used in PAL/SECAM wide screen mode. [Omar]
  • TileViewer: support for showing full 16 KB range of tiles in legacy graphic modes. [Omar]
  • MemoryEditor: fixed editing of 93c46 EEPROM memory. [Omar]
  • MemoryEditor: fixed display of address when number of columns is not 16. [Omar]
  • Wav Logging: recording in Stereo. [Maxim]

Translations

  • Added Polish translation. [thr]
  • Updated Dutch translation. [Mark van Tilburg]

Ports

  • MacOSX: Preliminary MacOSX port. MEKA NEEDS A MAC MAINTENER!

GUI

  • Now possible to resize the game window and some of the tools. [Omar]
  • Now possible to change the font of the tools in the .CFG file. [Omar]
  • Made "Ocean" the default theme and increased default GUI resolution. [Omar]
  • Made "SMS Power! theme more readable. [Omar]
  • TextInput: support for text selection, hold SHIFT+Left/Right keys to select text. [Omar]
  • TextInput: support for CTRL+Left/Right to jump to previous/next word. [Omar]
  • TextInput: support for clipboard (CTRL+X,CTRL+C,CTRL+V) shortcuts, tied to OS clipboard. [Omar]
  • Depth order of windows is preserved accross sessions. [Omar]
  • Increased mouse horizontal range when using scrollbars. [Omar]
  • Added 'game_window_scale' directive on configuration file to resize game window. [Omar]
  • Discontinued ALT+P (=F12) and CTRL+X (=F10) shortcuts. [Omar]
  • Added ALT+V shortcut to start/stop VGM logging. [Omar]
  • Menu entries display their shortcuts. Tidied up some menu entries. [Omar]
  • Pressing DEL key in a text input box delete the character ahead of cursor. [Omar]
  • FileBrowser: search for known extension when opening ZIP file (instead of picking first). [Maxim]
  • FileBrowser: holding CTRL key while using the mouse wheel fasten scrolling. [Omar]
  • FileBrowser: returning to parent directory position cursor on last child. [Omar]
  • FileBrowser: BackSpace key is shortcut to return to parent directory. [Omar]
  • FileBrowser: display JP flag when a game is JP/KR or JP/TW in the database. [Omar]
  • FileBrowser: alphabetical shortcuts ignore disk drivers under Windows. [Omar]
  • 3-D Glasses mode doesn't halve framerate of the interface anymore. [Omar]

Sources/Development

  • Now build with a C++ compiler, fixed all incompatible C constructs + lots of cleanup. Codebase can now freely take advantage of all C++ compiler features. [Omar]
  • Updated from Allegro 4 (software rendering based) to Allegro 5.2.40 (with OpenGL/DirectX backends). This required a lot of changes and rewrite in the codebase. It probably added new bugs, and performances seems to vary depending on computer settings and video drivers. [Omar, Maxim] Please do report if you have any issue/slowdown so we can fix them!
  • Added a batch script 'tools/dist_bin_win32.bat' to create binary Win32 package. [Omar]
  • Removed #ifdef-out code that was used by the MS-DOS version. [Omar]
  • Removed code for the old OPL3 based YM2413 emulator. [Omar]
  • Removed easter egg code for emulating the NES. [Omar]
  • Removed easter egg mini-games and various other obsolete features. [Omar]
  • Removed mekaw.txt and mekanix.txt documentation files (obsolete). [Omar]
  • (Win32) Updated project to using Visual Studio 2017. [Maxim]
  • (Win32) Grabbing dependencies via nuget. [Maxim]
  • (Win32) Using precompiled header for faster compilation (MSVC). [Omar]
  • Configuration file is created early on startup if missing. [Omar]

Database
Added and modified entries in the checksum and compatibility lists. [Omar]
Some particular renaming includes:

SMS - c4bb1676 - E-SWAT [A]                           --> E-SWAT [v0]
SMS - c10fce39 - E-SWAT [B]                           --> E-SWAT [v1]
SMS - d1a7b1aa - Olympic Gold (KR, BR)                --> Olympic Gold [v0]
SMS - 6a5a1e39 - Olympic Gold                         --> Olympic Gold [v1]
GG  - a6bf865e - Beavis and Butt-Head (MTV's) (EU)    --> Beavis and Butt-Head (MTV's) (US, EU)
GG  - 3858f14f - Beavis and Butt-Head (MTV's) (US)    --> Beavis and Butt-Head (MTV's) [Proto]
GG  - f3ca6676 - Columns (JP)                         --> Columns [v0]
GG  - 83fa26d9 - Columns                              --> Columns [v2]
GG  - a8ef36a7 - Junction                             --> Junction (JP)
GG  - 23f9150a - Kawasaki Superbike Challenge         --> Kawasaki Superbikes (EU) (now dumped US version)
GG  - a45fffb7 - Riddick Bowe Boxing                  --> Riddick Bowe Boxing (JP)
GG  - de25e2d8 - Sports Illustrated - Championship F..--> Sports Illustrated - Championship Football & Baseball [BAD] (was bad dump)
GG  - 5b5de94d - Sports Trivia - Championship Edition --> Sports Trivia - Championship Edition [Proto] (from old Image dump stash)
GG  - e678f264 - Yogi Bear in Yogi Bears Goldrush..   --> Yogi Bear in Yogi Bear's Goldrush [Proto]
GG  - f397f041 - Zoop (US)                            --> Zoop [Proto] (US)
SG1 - 26f947d1 - Champion Boxing [cart]               --> Champion Boxing [v0]
SG1 - f8b2ac1d - Champion Boxing [card]               --> Champion Boxing [v1]
SG1 - 868419b5 - Champion Golf [cart]                 --> Champion Golf [v0]
SG1 - 5a904122 - Champion Golf [card]                 --> Champion Golf [v1]
SG1 - 5eb48a20 - Congo Bongo [v1]                     --> Congo Bongo [v0] (made a mistake originally ordering the versions. see thread on SMS Power! forum)
SG1 - 5a24c7cf - Congo Bongo [v0]                     --> Congo Bongo [v1] 
SG1 - f7eb94c5 - Congo Bongo [v0] (TW)                --> Congo Bongo [v1] (TW)
OMV - 90160849 - 007 James Bond                       --> 007 James Bond [v2.7] (version v2.6 found)
OMV - 76d6c64d - 007 James Bond (TW)                  --> 007 James Bond [v2.7] (TW)
OMV - d5fdb4a3 - Space Armor [v0]                     --> Space Armor [v2.0] [v1] (earlier build found replacing [v0], v2.0 is found on title screen but doesn't differenciate both v20 builds)
OMV - ac4f0a5c - Space Armor [v1]                     --> Space Armor [v2.0] [v2]
SC3 - 22f4f92a - Nihonshi Nenpyou (JP)                --> Nihonshi Nenpyou [BAD] (JP) (was bad dump, correct dump confirmed multiple times)