Conversation
Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com> Made-with: Cursor
Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
|
Can someone fill me in on why #7453 couldn't be merged? Does this port solve those problems somehow? |
Replace kos-ports SDL with GPF SDL (SDL-dreamhal--GLDC) which provides PVR DMA framebuffer transfer and native 8bpp hardware palette support. This bypasses the manual 8bpp-to-16bpp conversion in dc_video.cpp, roughly doubling framerate from ~20-25 to ~40-50 FPS. Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
Preload frequently used effects and rate-limit on-demand loads so missing or slow files are skipped instead of stalling gameplay frames.
Limit save-slot probing on hero selection, skip unnecessary hero-item reads for list rendering, and throttle repeated progress-event error logs that slow loading. Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
yes I do provide both. |
Prevent out-of-bounds access if the sgSFX vector index exceeds the fixed-size SfxLoadRetryAfterMs array. Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
|
Thanks for testing it @SnackSBR 👍 So, are we good here? What else is missing or needs addressing? |
Are you going to try and implement modem/broadband support? |
|
Modem/Broadband in Dreamcast I have no clue. Never tried that apart form some basic fixes in a tool that helps me loading the games remotely via network. So, this is a long shot. |
|
support for dreampi would be really cool but I get it. If you try something it's probably better to focus on the modem side. The ethernet one is pretty rare and most people don't have it. |
|
Does anyone know what might be causing this error? The Diablo compilation occurs without errors, it generates the CDI, but this error occurs in the emulator. KallistiOS v2.2.2 [dreamcast/pristine] fs_iso9660: disc change detected |
KOS newlib does not support popen, system, or tmpfile. Without LUA_USE_C89, Lua's os library tries to register wrappers for these functions, which can leave the os table nil and crash with "attempt to index a nil value" during sandbox creation. Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
|
@jader-Fox thanks for trying to build it 👍 This is likely caused by the bundled Lua I just pushed a fix for this: 80437d8ae Can you try pulling the latest and rebuilding? PS: this reminds me we need a CI for that to avoid #worksonmymachine issues. |
With these updates, I was able to get it working, thank you very much! I'll now check the possibility of adding network support, especially for the w5500 model. |
Ensures the LUA_USE_C89 fix always applies regardless of whether kos-ports Lua happens to be installed, and removes Lua as a kos-ports prerequisite. Signed-off-by: Panagiotis Georgiadis <pgeorgia@redhat.com>
You can reference |
Forgot to report the first time but I think it's missing something because I can't compile without adding fmt::fmt to dreamcast CMakeLists.txt |
|
The Diablo version is the same for all platforms here. I was trying to connect the Dreamcast to a game on PC, that's why I'm asking =X |




The performance is not great because it uses 640x480, and the rendering is not using PVR but SDL 1.2 plus some 8bpp paletted to 16bpp RGB565 conversion. Apart from that, I have some audio glitches. The FPS is ~20-25 in most of the game. I tested with Flycast emulator: town, dungeon, combat, saves all working fine. I got assistance from Claude and Cursor, since I am no C++ savvy. I am using
#ifdef __DREAMCAST__to squeeze some performance. I also has some really long waiting times (loading...) due to MPQ assets in the very beginning or during any scene transitioning.PS: I have not tested the final version of it in real HW. I just did a home relocation and my DC is somewhere hidden in a box :/
UPDATE: After checking #7453 I also applied the same idea of using SDL with GPF SDL (SDL-dreamhal--GLDC). Now it gets 40-50 FPS :D
Build system:
Video:
Save system:
Memory optimizations:
Engine adaptations (guarded by
#ifdef __DREAMCAST__):For testing this PR you need to do:
cp /path/to/DIABDAT.MPQ Packaging/dreamcast/cd_root/KOS_BASE=/path/to/kos MKDCDISC=/path/to/mkdcdisc ./Packaging/dreamcast/build.shYoutube video of gameplay: https://youtu.be/oynvVJHfTxs