don't click here

Utility clownmdemu - The Greatest Mega Drive Emulator Ever (Someday)

Discussion in 'Technical Discussion' started by Clownacy, Jun 23, 2022.

  1. Brainulator

    Brainulator

    Regular garden-variety member Member
    If you want me to give you a serious answer, how about SRAM support? It would be neat to save my progress in various games.
     
  2. nineko

    nineko

    I am the Holy Cat Tech Member
    6,351
    510
    93
    italy
    Italian translation.
     
  3. OrionNavattan

    OrionNavattan

    Tech Member
    174
    171
    43
    Oregon
    While probably not the most important, optional emulation of the TMSS would be a nice little touch. Could probably even write a custom bootrom for you.
     
  4. Kilo

    Kilo

    Deathly afraid of the YM2612 Tech Member
    864
    860
    93
    Canada
    Sonic 1 Source Code Recreation + Source Code Wiki Page
    Decided to start using this emulator since there was some weird bug with Windows not allowing me to associate .gen files with Blastem. So far it's very nice. I like that hovering over a tile in the VRAM viewer tells you the ID, that's saved me a ton of time. Would be nice too if along with the tile ID it showed the base address of the tile. It'd also be nice if the debugger windows were external windows, since I don't usually want to be using fullscreen mode.
    upload_2024-5-1_7-55-26.png
    There is an inconsistency with how sound fading takes priority in Sonic 1 works between hardware (and Blastem) and clownmdemu. However my code is extremely janky since I wrote these menus from scratch and by the time I finish my project it won't be an issue, I hope.
     
  5. Hey there, been a while since I've been here, but I got the recent version of the emulator compiled on my Linux computer! I automatically went to try the Sega CD support an it's pretty cool, although some games don't seem to work unfortunately, which is a bit unfortunate but expected since it is a fairly recent feature and certainly not an easy one to add I'd assume. If you're curious, the games that I wanted to try that didn't work are the following: Wheel of Fortune, Trivial Pursuit, and Midnight Raiders. But nonetheless, an awesome update and I'm excited to see more Sega CD support in the future! Great work clownacy and friends!

    Btw, here's some screenshots of the latest build running on my computer! Screenshot_20240505_195408.jpg Screenshot_20240505_195432.jpg Screenshot_20240505_195546.jpg
     

    Attached Files:

  6. Devon

    Devon

    DROWN, DROWN, DROWN MYSELF! Tech Member
    1,398
    1,693
    93
    your mom
    I sent in a pull request to get this fixed. The DMA delay for Word RAM was only applied in 1M/1M mode, but forgot to apply it in 2M mode.

    EDIT: It's been accepted.
     
    Last edited: May 6, 2024
  7. OrionNavattan

    OrionNavattan

    Tech Member
    174
    171
    43
    Oregon
    The DMA delay issue affects 1M mode as well? I had been under the impression that it didn't, given that Sonic CD's FMV handlers DMA directly from wordram 1M without any workarounds (though that could have been an oversight).
     
    • Informative Informative x 1
    • List
  8. Devon

    Devon

    DROWN, DROWN, DROWN MYSELF! Tech Member
    1,398
    1,693
    93
    your mom
    1M/1M or 2M mode, it's still the same set of memory. 2M mode is basically just the 2 1M banks interlaced into each other. The BIOS function (0x2D4) Sonic CD uses is specifically made for transferring from Word RAM, too, which takes into account the delay.

    Note that I did have those BIOS functions documented at the time I was making the disassembly, and as such, the name I did give it was a tad misleading. It did indeed perform a DMA transfer, but it was specifically meant for Word RAM.
     
  9. sics

    sics

    Member
    Hi, I just tested the Windows version, and I was very excited, so I apologize if I say something inappropriate. I just love it, the list of great things about it is endless, but for practical reasons I will focus on what I feel can be improved.
    [​IMG]

    Firstly, on my computer, it does not create configuration files, it does not store saved states after closing the program, I was not able to remap the controls.

    On the other hand, I feel that it would be much more practical to be able to recycle the same window to navigate the various graphics layers of the game, and it would also be a great contribution to romhacking to add support for being able to export these layers to common images.

    Finally, if you ever consider adding support for compressed files, keep in mind to use the internal header to recognize the file. In this way, custom extensions could be created to differentiate system ROMs from other files, please ;)
    [​IMG]

    (Annex: I've given a lot of thought to say this, because honestly even though it's something I've been dreaming about for years, I know it's a silly idea and in practice somewhat useless, but I've always felt that the interfaces for loading compressed roms are pretty bland.

    And there being no legal way to create compilations, I think it would be great to have "Fictitious ROMs", I mean, compressed packs, that store the games together with a configuration file and indexed images that make up a selection menu.)

    Greetings, and thank you for your time! :oldbie:
     
    Last edited: May 31, 2024
  10. Chimes

    Chimes

    The One SSG-EG Maniac Member
    870
    603
    93
    This is the first time I've seen that .7md format... what are those?
     
  11. Clownacy

    Clownacy

    Tech Member
    1,094
    668
    93
    I'm glad you liked it!

    I'm uncertain about the issues you've mentioned:
    • The configuration files may not appear to have been created because they are not saved in the same folder as the EXE file; they're actually saved in the '%APPDATA%' folder, so are you sure that they weren't actually created?
    • Save states are stored if you use the 'save state to file' option. The 'quick save state' option only saves to RAM and not to disk, because I cannot think of a good way to automatically name the file. I should rename the option to 'temporary save state' to make that more clear.
    • When you say that you cannot remap controls, did you mean for the keyboard or for controllers? It's true that you cannot remap controls for controllers, but the keyboard should be fully remappable.
    Making all plane layer viewers use the same window is a good idea. I would still like to be able to split them to individual windows, however it should be possible to achieve both by using tabs which can be pulled out into their own windows, just like in a web browser. Hopefully Dear ImGui (the window framework that I'm using) supports something like that.

    I don't understand the need to dump the layers to standalone images: practically every operating system has a 'print screen' feature that can record perfect-quality images of the layer viewers. The viewers all display the layers at their native resolution, so there should be no stretching, blurring, or other distortion. I relied on this exact feature to rip Puyo Puyo's background for some homebrew a week or two ago.
     
  12. sics

    sics

    Member
    With the first 2 points, you are correct, so I suppose it could be the same with the remaining case. Let me explain my perspective on control reassignment:

    I don't see any interaction, so I'm unsure if something is in focus. I hesitate to click the crosses because that icon usually represents deletion or forgetting, and without an option to save changes in view, I wouldn't know if this happens automatically after each action, hence my confusion.
    [​IMG]

    The issue with relying on screen captures for ripping graphics doesn't seem optimal for several reasons, but I'll list the ones that seem most relevant to me:
    • File management: For example, if I need to capture more than one resource at a time within a sequence, integration with the application could efficiently manage image names.
    • The windows: If I need to zoom, something might be outside my field of vision, and I wouldn't perceive it. Alternatively, nested windows within the main interface make it more practical not to extend each viewer to 100%, creating a legitimate need.
    • Object coordinates: Debugging tools have specific purposes. If you want to analyze mechanics, recreate or adapt a resource, manually cropping the interface or capturing the entire desktop to achieve your goal can hinder the task or introduce human errors.
    I won't lie; it's not essential, but I found it curious that such a comprehensive tool lacks this practical feature. Lastly, to illustrate with a more realistic example (although it's a bit of a trap, because it is a pallet upgrade trick), the following sequence has 10 different states, which practically result in approximately 33 unique frames (obviously, the adaptation started from Megadrive)
     
  13. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    19,409
    1,051
    93
    Long-term happiness
    I haven't either, but at a guess: renamed 7z files with .bin MD ROMs in it. Think CBZ/ZIP and CBR/RAR.
     
  14. nineko

    nineko

    I am the Holy Cat Tech Member
    6,351
    510
    93
    italy
    Maybe it's just me, but I think that the printscreen method should be strongly discouraged whenever we have the chance, because sure, your emulator might have pixel perfect output, but most other ones don't, and there are way too many people who just don't know how to take proper screenshots, I already went on record 15 years ago in what appears to be my personal battle against windmills (ironically, some of my suggestions from that topic are outdated by now, but I couldn't foresee Imageshack's demise). People who don't care about a proper screenshot feature aren't going to use it even if you implement it, but it would be nice to have it available for those who like to do things right. Let idiots keep their beloved 1920×1080 distorted printscreens and save them as JPGs or 32-bit rgba PNGs, but also let sane people get sanely sized nice 8-bit PNGs.
     
  15. Lyrica

    Lyrica

    (Formerly: Donnyku) Oldbie
    1,382
    42
    28
    Ontario Canada
    Streaming
    I've noticed this and other odd "new" formats going around, all saying they're designed for RetroArch (and boy do I hate RetroArch) the other format I am seeing often is .chd.
    Had to find a new dump of Popful Mail because my disc suffered from rot
     
  16. sics

    sics

    Member
    I apologize for the confusion, as Overlord mentioned, it's just a .7z compression, with a custom extension, to be able to associate the ROMs to the corresponding emulator, I confess I always liked to design icons to customize my programs to the maximum.
    [​IMG]
    (By the way, some of these icons have been officially adopted ^_^)

    Edit:
    It is from MS Photo Editor, an image editor that was distributed with MS Office, around the year 2000. While it is very useful, the need to install an older suite or know how to perform an advanced registry addition has made it disappear.
     
    Last edited: Jun 1, 2024
  17. rata

    rata

    Member
    699
    79
    28
    Argentina
    Trying to be useful somehow.
    Man there has been a while since I saw the last row of icons. What was that program called?

    Edit: I loved making icons too, but I hate how modern Windows made it so difficult to manually pick all of that for each file. In old Windows it was so damn easy to do it, man...
     
  18. Pinkerton

    Pinkerton

    サメジマ・マミミ Oldbie
    Picasa. RIP.

    Never-mind, I am wrong, but pour one out for Picasa anyway.
     
  19. Bellie

    Bellie

    Member
    28
    16
    3
    I think this is a really cool emulator, I might just use it instead of Blastem!

    I remember trying to associate .gen files with an emulator I don't remember; it ended with me having to hard-reset the PC, because somehow Windows also decided to apply that file association to .exe files as well, meaning I could only open the emulator and UWP apps. =P
     
  20. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    I understand why Windows parses file extensions and handles files based on them, but the way they handle them is a real pain. I hate when I'm trying to change the file extension from .n64 (big endian) to .z64 (2-byte little endian), and I get a file named "The Missing Link.n64.z64".

    I wonder how long Windows has been automatically doing "apply this behavior to all files with the same extension", and whether it's still a predictable piece of code compiled into the OS or if AI is now making "best guesses" for everything in Windows.