Falling Time (Dreamcast port)

This forum is for discussion pertaining to homebrew software for the Dreamcast, such as homebrew games, emulators/interpreters, and other homebrew software/applications. Porting requests and developmental ideas are not to be made here; you can make those here. If you need any help burning discs for homebrew software, this is the place to ask as well.
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Falling Time (Dreamcast port)

Post by gameblabla » Tue Jul 14, 2015 8:52 pm

Image

I have ported this little game for the Sega Dreamcast called "Falling Time".
It was made by Cong Xu and Nebuleon and it was originally only available for GCW Zero.
It's basically a Falldown clone on crack, and you can also grab eggplants to increase your score.
I first ported it to the TI Nspire and now it is available for Sega Dreamcast.

Image

The game supports saving to a VMU. (First controller)
The game also has a multiplayer mode, up to 2 players.
Use the Dpad to move the penguins.

You can download it here.
Last edited by gameblabla on Sun Aug 02, 2015 5:14 pm, edited 2 times in total.
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5316
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Contact:

Re: [WIP] Falling Time

Post by BlueCrab » Wed Jul 15, 2015 10:27 pm

Well, this is certainly a fine place to post new homebrew games. :wink:

It's nice to see some new stuff coming along, especially from new faces. Welcome. :grin: Hopefully someone will give you some feedback soon (I wish I could, but alas I cannot at the current time).
User avatar
Rolly
DCEmu Newbie
DCEmu Newbie
Posts: 1
Joined: Thu Jul 23, 2015 5:40 pm
Location: Poland
Contact:

Re: [WIP] Falling Time

Post by Rolly » Thu Jul 23, 2015 5:50 pm

Awesome job!! :wink:
Any chance to port more games? Like Griffon Legend?
https://github.com/dmitrysmagin/griffon_legend
http://www.phatcode.net/downloads.php?id=430
Heaven for SEGA Fans.. SEGA-SKY Portal http://www.sega.c0.pl
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Thu Jul 23, 2015 6:43 pm

Rolly wrote:Awesome job!! :wink:
Thanks, i could be releasing a game that's not even working on real hardware but it's cool.
Any chance to port more games? Like Griffon Legend?
NOO ! IT BURNS !
I tried to port that game to 3 different platforms (TI Nspire, PSP and the Dreamcast) but that game is just highly unefficient .
It has a mapdb engine that's eating like 80 MB of RAM alone and the whole game requires 128 MB of RAM, if not more.
Sorry, Griffon Legend is not going to be possible.

For now, i'm working on Tail-Tale and i will port The Last Mission' as well.
Last edited by gameblabla on Fri Jul 24, 2015 12:51 pm, edited 1 time in total.
User avatar
Basil
Insane DCEmu
Insane DCEmu
Posts: 199
Joined: Wed Apr 09, 2008 9:04 am
Contact:

Re: [WIP] Falling Time

Post by Basil » Fri Jul 24, 2015 8:03 am

Hi gameblabla, i remember i played your other dc port Vigoroth the delivery man :wink: , can you compile this game into single binary file?
{Vodz@DC} @ Sylverant, VasiliyDC @ Quake3
Order Dux 1.0, Redux incl. Dux 1.5 and The Ghost Blade at http://hucast.com/index.php
Buy more independent Dreamcast games:
https://www.goatstore.com/Products/Sega ... elopments/
https://www.dragonbox.de/en/52-games#/system-dreamcast
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Fri Jul 24, 2015 12:49 pm

Basil wrote:Hi gameblabla, i remember i played your other dc port Vigoroth the delivery man :wink: , can you compile this game into single binary file?
Hello Basil,
i'm suprised you still remember this game ! :D

What do you mean though by "compile this game into single binary file" ?
This is a game for the BennuGD interpreter so i can't just put it into a single binary unlike C/C++ games.
Maybe you mean that i should re-release it ?
cube_b3
Ex-Newsposter
Ex-Newsposter
Posts: 3937
Joined: Tue May 28, 2002 6:51 am
Location: pakistan,karachi
Contact:

Re: [WIP] Falling Time

Post by cube_b3 » Fri Jul 24, 2015 5:24 pm

Welcome to the forums!
Thanks for uploading the game here.
dreamcast-news
DCEmu Freak
DCEmu Freak
Posts: 52
Joined: Tue Aug 30, 2011 3:29 am

Re: [WIP] Falling Time

Post by dreamcast-news » Tue Jul 28, 2015 6:27 am

gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Tue Jul 28, 2015 6:00 pm

dreamcast-news wrote:Newsed for french DC lovers : http://dreamcast-news.blogspot.com/2015 ... -time.html
Thanks dude, i'm french too.

Still don't know if Falling Time is working properly on real hardware,
i ordered a sega dreamcast and i'm still waiting for it so gotta wait i guess.

I know this is offtopic but any other suggestions for SDL ports ?
User avatar
Basil
Insane DCEmu
Insane DCEmu
Posts: 199
Joined: Wed Apr 09, 2008 9:04 am
Contact:

Re: [WIP] Falling Time

Post by Basil » Wed Jul 29, 2015 7:34 pm

I know this is offtopic but any other suggestions for SDL ports ?
Do you have a list we can choose from?
{Vodz@DC} @ Sylverant, VasiliyDC @ Quake3
Order Dux 1.0, Redux incl. Dux 1.5 and The Ghost Blade at http://hucast.com/index.php
Buy more independent Dreamcast games:
https://www.goatstore.com/Products/Sega ... elopments/
https://www.dragonbox.de/en/52-games#/system-dreamcast
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Thu Jul 30, 2015 8:50 pm

Basil wrote:
I know this is offtopic but any other suggestions for SDL ports ?
Do you have a list we can choose from?
Yes, I have a small list of what i would like to port :
https://gameblabla.olympe.in/files/dreamcast_list.txt
User avatar
Christuserloeser
Moderator
Moderator
Posts: 5936
Joined: Thu Aug 28, 2003 12:16 am
Location: DCEvolution.net
Contact:

Re: [WIP] Falling Time

Post by Christuserloeser » Fri Jul 31, 2015 5:25 pm

Welcome to the forums! :)

Genesis Plus GX would be more than awesome ! Huge MD fan here and that was the first thing that caught my eye.
Insane homebrew collector.
User avatar
Indiket
DC Developer
DC Developer
Posts: 99
Joined: Sun Sep 05, 2010 5:44 am

Re: [WIP] Falling Time

Post by Indiket » Sat Aug 01, 2015 6:40 am

Hi gameblabla!! :D

Thanks for posting here at dcemulation.org, and also sorry to answer this topic so late (I was quite busy these days! U_U).

Well, I've just test your port on REAL HARDWARE and hey, looks nice!! I like it, good job! :) Now, let me state some points to work on it ;)

* First of all, you use the serial port to read/write into the SD. That's nice, but unfortunately, this also makes emulators stop from getting your game working :( . Yep, they're still primitive in that aspect, go blame on them ^^.

* To load/save into VMU with KOS is quite easy, and you can even use ZLIB compression to do it!!
Let me put here some code and explain it:

Code: Select all

#include <kos.h>
#include <zlib/zlib.h> //vmu compression!
#include "dreamcast_icon.h"

int DC_LoadVMU(void) {

    unsigned long unzipsize;
    uint8* unzipdata;
    vmu_pkg_t pkg;

    // Name of the file to open
    file_t fd;
    if ((fd = fs_open("/vmu/a1/fallingtime", O_RDONLY)) == -1)
    {
        printf("error opening VMU A1, not found.\n");
        return -1;
    }
    
    // Remove VMU header
    vmu_pkg_parse(fs_mmap(fd), &pkg);

    // Allocate memory for the uncompressed data
    unzipdata = (uint8 *)malloc(524288); //512KB
    unzipsize = 524288;
    uncompress(unzipdata, &unzipsize, (uint8 *)pkg.data, pkg.data_len);

    // Save buffer into a RAM file
    fs_close(fd);

    file_t fd2;
    if ((fd2 = fs_open(/ram/yourfile.dat, O_WRONLY)) == -1)
    {
        printf("Can't create RAM file from VMU.\n");
        return -1;
    }
    fs_write(fd2, unzipdata, unzipsize);
    fs_close(fd2);

    // Free unused memory
    free(unzipdata);

    return 0;
}

int DC_SaveVMU(void) {
    vmu_pkg_t pkg;
    uint8 *pkg_out;
    int pkg_size;
    file_t ft;

    // Temporal for reading the file
    file_t file;
    int data_size;
    unsigned long zipsize = 0;
    uint8 *datasave;
    uint8 *zipdata;
	
    // Open file and copy to buffer
    file = fs_open(/ram/yourfile.dat, O_RDONLY);
    data_size = fs_total(file);
    datasave = (uint8 *)malloc(data_size+1);
    fs_read(file, datasave, data_size);
    fs_close(file);
    
    // Allocate some memory for compression
    zipsize = data_size * 2;
    zipdata = (uint8*)malloc(zipsize);

    // The compressed save
    compress(zipdata, &zipsize, datasave, data_size);

    // Make the package to the VMU.
    strcpy(pkg.desc_short, "fallingtime");
    strcpy(pkg.desc_long, "Falling Time");
    strcpy(pkg.app_id, "fallingtime");
    pkg.icon_cnt = 1;
    memcpy((void *)&pkg.icon_pal[0],(void *)&vmu_savestate_pal,32);
    pkg.icon_data = (const uint8*)&vmu_savestate_data;
    pkg.icon_anim_speed = 0;
    pkg.eyecatch_type = VMUPKG_EC_NONE;
    pkg.data_len = zipsize;
    pkg.data = zipdata;
    vmu_pkg_build(&pkg, &pkg_out, &pkg_size);

    // Write at A1 port
    fs_unlink("/vmu/a1/fallingtime");
    ft = fs_open("/vmu/a1/fallingtime", O_WRONLY);
    if (!ft) {
        return -1;
    }
    fs_write(ft, pkg_out, pkg_size);
    fs_close(ft);

    // Free unused memory
    free(pkg_out);
    free(datasave);
    free(zipdata);
	
    return 0;
}
- DC_LoadVMU(void) will try to read from the VMU (port A1), the file "fallingtime". If success, then it will uncompress into Dreamcast RAM (/ram/yourfile.dat) using zlib.

- DC_SaveVMU(void) does the other way: read from "/ram/yourfile.dat", compress with zlib, and generates the VMU file to store (/vmu/a1/fallingtime).

- Don't worry, this works perfectly with all the emus!! Remember, a full VMU has 200 blocks, or 128kb of storage. Oh, and you have to link with -lz

- vmu_savestate_pal and vmu_savestate_data are variables where they contain the info for the VMU icon in the Dreamcast menu. If you want to follow the quick way, I have a conversor from PNG to C. Limitations are that image must be of 32x32, PNG and 16 colors.
http://vmu.sega-dc.de/vmu/vmuimage.php
The image will add 1 extra block space into your save.

* Next, I saw that there is a WAV file that is not recognized as a RIFF file by KOS, so it sounds very badly on Dreamcast!!! Please, could you detect it and replace it?

* My max score is about 80.... is that a bit lame? :-P

Anyway, excellent work! When you change the SD option for VMU, and fix the WAV issue, then I'll publish on Dreamcast.es :)

I've done lots of homebrew ports into Dreamcast for a long time (ie. SQRXZ ones for Dreamcast), so I'll be glad to help you in any aspect you want! Contact me via MP for more assistance :)

PD: I have a Sopwith port ready but.... I want to add network features into it! That one can be erased from your TODO list xD
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Sat Aug 01, 2015 6:13 pm

Thank you guys !
I'll try to get a working version of Genesis Plus GX after i'm done with Falling Time,
it'll be based on the SDL version though...
It's predecessor, Genesis Plus, was also ported to the Sega Dreamcast and fully optimised for it
so i'm not sure if i should port Genesis Plus GX or not...

As for Falling Time :
I have released a premilinear version with support for VMU down below.
(couldn't get it to work because apparently lxdream does not properly detect VMUs...)
Last edited by gameblabla on Sun Aug 02, 2015 4:19 pm, edited 1 time in total.
User avatar
Basil
Insane DCEmu
Insane DCEmu
Posts: 199
Joined: Wed Apr 09, 2008 9:04 am
Contact:

Re: [WIP] Falling Time

Post by Basil » Sat Aug 01, 2015 9:32 pm

gameblabla wrote:
Basil wrote:
I know this is offtopic but any other suggestions for SDL ports ?
Do you have a list we can choose from?
Yes, I have a small list of what i would like to port :
https://gameblabla.olympe.in/files/dreamcast_list.txt
I vote for OpenTitus, it looks nice. Maybe Indiket will help you. :wink:
{Vodz@DC} @ Sylverant, VasiliyDC @ Quake3
Order Dux 1.0, Redux incl. Dux 1.5 and The Ghost Blade at http://hucast.com/index.php
Buy more independent Dreamcast games:
https://www.goatstore.com/Products/Sega ... elopments/
https://www.dragonbox.de/en/52-games#/system-dreamcast
User avatar
Indiket
DC Developer
DC Developer
Posts: 99
Joined: Sun Sep 05, 2010 5:44 am

Re: [WIP] Falling Time

Post by Indiket » Sun Aug 02, 2015 2:00 am

You're welcome gameblaba!!

Allright, to make lxdream work with VMU, first define a path where the emu will store the VMU file (in Preferences, VMU Path). Then, you have to enter into Dreamcast BIOS screen and format the VMU. After that, it will work.

Good news, your game now boots into emus perfectly, and it even writes the highscore into VMU (nice icon!). But still some important bugs / questions:

* The really annoying and nasty sound of a bad WAV file (I think is the one that you are rolling the ball).
* When you load the game with only one PAD connected, the second player is always rolling the ball into right (and creating a two-player game). I have to plug a second controller to make the second player freeze xD
* Maybe hiscores are wrong, the values are really too high?? (ie. 1126753279 (2005-09-02)). Seems a casting or not init value?
* Player 1 and Player 2 are equal? Is it possible to make player 2 of a different colour?

Keep up the good work! :)
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Sun Aug 02, 2015 4:18 pm

Thanks for your feedback, Indiket !
I have fixed most of the bugs reported by indiket, you download the new version right below.
https://gameblabla.olympe.in/files/fall ... amcast.zip
When you load the game with only one PAD connected, the second player is always rolling the ball into right (and creating a two-player game). I have to plug a second controller to make the second player freeze xD
I think i may have fixed this as well but i'm not sure...
Needs more testing.
* The really annoying and nasty sound of a bad WAV file (I think is the one that you are rolling the ball).
lxdream's sound support is really bad so i don't know if i fixed this...
On real hardware, can you hear the ogg music ?

Unless more bugs are reported, this should be the final version.
Enjoy
User avatar
Indiket
DC Developer
DC Developer
Posts: 99
Joined: Sun Sep 05, 2010 5:44 am

Re: [WIP] Falling Time

Post by Indiket » Sun Aug 02, 2015 4:38 pm

You're welcome!! Thanks to you for your port, gameblabla!!

I did a quick test on emus, reporting:
* WAV file sound is fixed, thanks!
* Hiscores are fixed, cool! (remember to delete old savegames guys!)
* Thanks for putting a different colour for P2 :D

* Seems that second player still moves at right, I'll check it again with real hard, but well, at least can be fixed with a second controller hehehe. How do you read the controller, using SDL functions or directly by Maple?

OGG plays fine in real hardware, as far I remember. I'll try again to check everything is allright, but this version gets an OK for me :)

Greetings!
gameblabla
DCEmu Junior
DCEmu Junior
Posts: 38
Joined: Tue Jul 14, 2015 8:32 pm

Re: [WIP] Falling Time

Post by gameblabla » Sun Aug 02, 2015 5:13 pm

Thanks again for your feedback.
Indiket wrote:* Seems that second player still moves at right, I'll check it again with real hard, but well, at least can be fixed with a second controller hehehe. How do you read the controller, using SDL functions or directly by Maple?
I have fixed this issue and reuploaded the game again. Same link as before, please redownload it again.

I think we can consider it as the final release so i'll drop the WIP mark.
User avatar
Indiket
DC Developer
DC Developer
Posts: 99
Joined: Sun Sep 05, 2010 5:44 am

Re: Falling Time (Dreamcast port)

Post by Indiket » Mon Aug 03, 2015 2:04 am

Perfect! Controls are fixed now!!
Congratulations with your first Dreamcast port :D :D

Btw, I saw that Falling Time is GPLv2, so will you publish your changes into the repo / your website? Thanks!

Edit: Newsed on Dreamcast.es ^^
Post Reply