Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Juju

Pages: 1 2 3 [4] 5 6 ... 17
46
General Discussion / OmniPlayerIII - Calling for music artists
« on: December 01, 2013, 08:10:54 pm »
Yeah, yet another project in the works... Introducing something you waited for since a while...

OmniPlayerIII

Yup, a new rewriting of the famed web music player. Now on the features that distinguishes it from other players:

  • Interface entierely in Javascript! (Now with more AJAX/JSON!)
  • HTML5 audio!
  • Winamp/WMP-like visualizations! (Coming soon!)
  • Search by artist/album!
  • Download links!
  • Links to Facebook/Twitter/Bandcamp! (Coming soon!)
  • Over 4 artists!
  • Integration with Bandcamp! (Not sure if coming soon or not)
  • Clouds! (Coming soon!)

Of course, you must have a fairly recent browser so it works. Please complain only if your browser is up to date. If you want your entire discography to appear there, feel free to PM me and I'll gladly add it! And if you have any idea or issue, feel free to reply on this thread and I'll see if it's possible.

And without further ado, here's the link!

http://zik.juju2143.ca

47
Posting this preview I made a week ago here, just in case. Because everyone loves previews. It's the song I'm working on and off since a while featuring Luka as Scootaloo, Rin as Applebloom and Miku as Sweetie Belle! And yes it's in Japanese. Background music ripped from the show, but I did the vocals.

Listen to it here: http://juju2143.qc.to/post/67796814232/

48
Humour and Jokes / MOVED: LOSE IT!!!!
« on: November 19, 2013, 01:31:52 pm »
This topic has been moved to Spam.

http://ourl.ca/20154

49
TI Z80 / [Contest 2013][BASIC] My Last Minute Contest Entry - Wargames
« on: November 06, 2013, 01:19:46 am »
So this is my Last Minute Contest EntryTM. I'll tell you right now, you won't believe how this game is awesome. This game will destroy your childhood.

Lemme explain. This is based on an obscure game written about 20 years ago that was shipped with BSD, which is in turn based on the critically acclaimed 1983 movie Wargames. The goal is simply to try not to lose. I came up with the idea, made and submitted this about a day before the deadline (just to make sure I won't start it 30 minutes before and submit it at 11:58pm), hope you'll like. If you can handle it in the first place, that is.

Now some reviews (because they need to review every game in existence):

Quote from: PC Gamer
This game is very faithful to the movie, therefore it's the greatest thing to ever happen to mankind since Justin Bieber.
Quote from: GameSpot
Holy shiiiiiit that's a game
Quote from: Game Informer
Yep... a game.
Quote from: DJ Omnimaga
I lost

9 bachelors ès computer science out of 10 agree, this is a game!

You want a download or some pics? Nope, you must wait after the contest is finished! >:D I don't want you to get to the hospital before, you might be injuried from the sheer awesomeness of this game.

There's a bug though: this game won't start any global thermonuclear war. Use it with caution!

50
ASM / TI-84+ CSE support for KnightOS
« on: October 02, 2013, 04:53:34 pm »
This post has originally been posted by SirCmpwn here and requested it to be crossposted on Omnimaga.

Note: There is a reward of 1 BTC ($111 USD at the time of writing) to the first person to submit a working color KnightOS kernel to [email protected]. If you are unfamiliar with Bitcoin, read up here.

Hi there! I need some help getting support for the TI-84+ Color Silver Edition in KnightOS. I started working on it a few weeks ago, and here's the current status of the color project:

  • You can create KnightOS 8cu files and send them with BrandonW's UOSRECV tool
  • Nearly all existing KnightOS features work
  • The screen is not initialized correctly
Everything works great, except for the color LCD. I cannot get it to start up correctly. Here's what the color version of KnightOS looks like:



Note that the kernel works perfectly in KermM's jsTIfied emulator, which has poor emulation for the color LCD.

KnightOS Technical Background

For those of you unaware of how KnightOS is developed, here's some insight. The source code is hosted on and managed on GitHub, and is written mostly in z80 assembly. There are a number of git repositories:

  • kernel, which is the core of KnightOS and does nothing on its own
  • KnightOS is built on the kernel and provides the "KnightOS experience"
  • CreateUpgrade creates and signs 8xu (and 73u and 8cu) upgrade files
There are more, but these ones are the ones that are important to KnightOS color support.

The relevant code

Color support is being worked on in the `color` git branch. The important code is this, which is meant to initialize the LCD:

Code: [Select]
; Destroys C
; A: Register
; HL: Value
setLcdRegister:
    out (0x10), a \ out (0x10), a
    ld c, 0x11
    out (c), h
    out (c), l
    ret

colorLcdOn:
    ; TODO: Research this more, it's probably not all required and we might want some of it done different.
    ; Could also probably be optimized if we didn't use this lcdout macro, but I'll save that for when the
    ; LCD is more well understood and everything is working.
    lcdout(0x01, 0x0000) ; Reset Out.Ctrl.1: Ensure scan directions are not reversed
    lcdout(0x02, 0x0200) ; LCD Driving Control: Sets inversion mode=line inversion and disables it
    lcdout(0x03, 0x1038) ; Init. Entry Mode: Cursor moves up/down, down, left, disable
    lcdout(0x08, 0x0202) ; Set front & back porches: 2 blank lines top & bottom
    lcdout(0x09, 0x0000) ; Reset Disp.Ctrl.3: Resets scanning stuff and off-screen voltage
    lcdout(0x0A, 0x0000) ; Disp.Ctrl.4: No FMARK
    lcdout(0x0C, 0x0000) ; RGB Disp.: Off
    lcdout(0x0D, 0x0000) ; FMARK position: Off
    lcdout(0x60, 0x2700) ; Driver Output Ctrl. 2
    lcdout(0x61, 0x0001) ; Base Image Display Ctrl: Use color inversion, no vertical scroll, reset voltage in non-display level
    lcdout(0x6A, 0x0000) ; Reset Vertical Scroll Ctrl.
    call colorLcdWait
    lcdout(0x10, 0x1190) ; Init Pwr.Ctrl.1: Exit standby, fiddle with voltages, enable
    lcdout(0x11, 0x0227) ; Pwr.Ctrl.2: Configure voltages
    call colorLcdWait
    lcdout(0x12, 0x008C) ; Pwr.Ctrl.3: More voltages
    call colorLcdWait
    lcdout(0x13, 0x1800) ; Pwr.Ctrl.4: Take a wild guess
    lcdout(0x29, 0x0030) ; Pwr.Ctrl.7: I'm not an LCD engineer, don't ask me.
    lcdout(0x2B, 0x000B) ; Set frame rate to 70
    call colorLcdWait
    ; Don't touch the gamma control ones, no one knows what they mean
    lcdout(0x30, 0x0000) ; Gamma Control 1
    lcdout(0x31, 0x0305) ; Gamma Control 2
    lcdout(0x32, 0x0002) ; Gamma Control 3
    lcdout(0x35, 0x0301) ; Gamma Control 4
    lcdout(0x36, 0x0004) ; Gamma Control 5
    lcdout(0x37, 0x0507) ; Gamma Control 6
    lcdout(0x38, 0x0204) ; Gamma Control 7
    lcdout(0x39, 0x0707) ; Gamma Control 8
    lcdout(0x3C, 0x0103) ; Gamma Control 9
    lcdout(0x3D, 0x0004) ; Gamma Control 10

    lcdout(0x50, 0x0000) ; Horiz.Win.Start: 0
    lcdout(0x51, 0x00EF) ; Horiz.Win.End: 239 = 240-1
    lcdout(0x52, 0x0000) ; Vert.Win.Start: 0
    lcdout(0x53, 0x013F) ; Vert.Win.End: 319 = 320-1
    call colorLcdWait
    lcdout(0x07, 0x0133) ; Disp.Ctrl.1: LCD scan & light on, ready to enter standby
    ; Turn on backlight
    in a, (0x3A)
    set 5, a
    out (0x3A), a
    ; Values found in TIOS, but not wikiti:
    ;lcdout(0x07, 0x0000) ; Settings modes, clears it for some reason?
    ;call colorLcdWait
    ;lcdout(0x10, 0x07F0) ; More power control
    ;call colorLcdWait
    ;lcdout(0x10, 0x07F1) ; Ditto
    ;call colorLcdWait
    lcdout(0x03, 0b1000000010111000) ; Entry mode the way we want it
    ret

colorLcdOff:
    lcdout(0x07, 0x00)
    call colorLcdWait
    lcdout(0x10, 0x07F0)
    call colorLcdWait
    lcdout(0x10, 0x07F1)
    ; Turn off backlight
    in a, (0x3A)
    res 5, a
    out (0x3A), a
    ret

; 40 milliseconds-ish @ 6 MHz
colorLcdWait:
    ld b, 0x7F
    ld c, 0xFF
    ld hl, 0x8000
.loop:
    ld a, (hl)
    ld (hl), a
    dec bc
    ld a, c
    or b
    jp nz, .loop
    ret

This code is derived from a combination of reading wikiti, the LCD datasheet, and TIOS disassemblies. The code can be found in the display-color.asm file of the kernel repository.

How you can help

Want to help out? Here's how you can:

Download the latest version of the kernel with color support. If you're familiar with git and comfortable in a command line, use "git clone --recursive git://github.com/KnightSoft/KnightOS.git" and navigate to the kernel directory, then run "git checkout color".

Windows

Install cygwin and make sure you install GNU Make with it. Open up a cygwin terminal and navigate to where you have saved the kernel's source code. Run "make TI84pCSE" from that directory to create a kernel ROM. You can then create an 8cu upgrade file by running "CreateUpgrade.exe TI84pCSE bin/kernel-TI84pCSE.rom 0F.key kernel.8cu 00".

Linux/Mac

Make sure you have the latest version of tilp. Install mono (Arch: yaourt -S mono, Debian/Ubuntu: apt-get install mono-complete, Fedora: yum install mono). Run make TI84pCSE from the source code's root folder. Build an 8xu upgrade file with "mono CreateUpgrade.exe TI84pCSE bin/kernel-TI84pCSE.rom 0A.key kernel.8xu 00".

Testing

Download BrandonW's UOSRECV tool and send it to your calculator. Run "Asm(prgmUOSRECV" and wait for it to prompt for an OS. Send the upgrade with TI-Connect or tilp. Note that tilp support for the 84+ CSE is poor, and it may not work correctly. It is suggested that you press reset once more after receving the OS, instead of just jumping straight into it from the boot code's OS receiving code.

After some basic system initialization, the color kernel jumps into a test loop. The LCD backlight should blink 10 times, then the calculator will wait for you to press the ON key. The backlight will blink another 10 times and you'll enter the debug loop. You can press different keys to test out different things:

  • A: Backlight ON
  • B: Backlight OFF
  • C: Initialize the LCD (call colorLcdOn)
  • D: Turn off the device
Pressing C should ideally initialize the LCD and set it to a solid RED color.

The code for the debug loop can be found at the bottom of boot.asm. Feel free to modify any part of the kernel to help figure out what's going on.

To re-install TIOS, hold down DEL and press the reset button on the back. You should now be able to send TIOS.

So, want to make a quick bitcoin and help get third party operating systems onto the 84+ CSE? Any questions can be directed at [email protected], and I'll be keeping an eye on the threads in each forum I see this posted in.

EDIT(Eeems): updated download link
EDIT2(Eeems): updated CreateUpgrade.exe call

51
Computer Projects and Ideas / Supersonic Ball PC
« on: September 29, 2013, 08:14:12 pm »
Supersonic Ball is a PC port of the TI-84+ game of the same name by DJ Omnimaga with lots of new features like:

- Color!
- Realistic gravity!
- Powerups!
- Other interesting stuff!

Coming soon on your computer on October 4th! You can get updated on the progress on here and on my blog on http://blog.juju2143.ca.

52
Site Feedback and Questions / Database Error
« on: September 20, 2013, 12:50:07 am »
Quote
Database Error
Please try again. If you come back to this error screen, report the error to an administrator.

It's there at the bottom of every page and the right column is missing on the main page, what did thou do guys?

53
News / Announcing Ndless 3.2
« on: September 18, 2013, 07:29:30 pm »
Good news for those stuck with a TI-Nspire with OS 3.2.4, which blocked Ndless 3.1 and any downgrade to OSes supporting it, according to the Ndless blog, ExtendeD annonced having started development on Ndless 3.2 which would support OS 3.2.4. As you might remember, when OS 3.2.0 went out, TI allowed downgrading to OS 3.1 for some reason, which allowed the Ndless development team to focus on new features such as USB support, GDB debugging, nSDL and lots of other goodies. One thing to worry is the release of OS 3.6 which has been announced a while ago and could possibly block Ndless 3.2 soon after it will be released.

If you want to help and if you use OS 3.2.4, please send in bug reports about unexpected and reproducible reboots of the OS as you find them as they could be used for installing Ndless. No release date has been announced yet, but the more you help, the sooner it will be released.

Check the Ndless blog for more info

54
News / Omnimaga's 12th anniversary!
« on: September 01, 2013, 04:05:01 pm »
The tides of the St. Lawrence river are getting troubled by the annual infestation of blue lobsters, causing several side effects akin to the Poison Joke from the My Little Pony series: Juju's hair getting blue, blue_bear_94 speaking a previously unknown language and Sorunome having derpy eyes, among other things.

That is, it's been 12 years ago today DJ Omnimaga founded the Omnimaga team. To commemorate the event, join us on IRC (irc.efnet.org #omnimaga) or OmnomIRC (if you have access to it) for special animation throughout the day!

Happy 12th anniversary and long live Omnimaga!

EDIT: We had an Omnimaga Story, as in a bot on IRC spitting a line of story every 15 minutes. Here's the transcript, text by Juju and bot by Sorunome:
Spoiler For Spoiler:
It was a rainy day on the south shore of the national capital
Lost somewhere in a high school
Or maybe in the creative imagination of someone
Somewhere in fantasy
Twelve years ago the legend began
There was a bored student and his graphic calculator
He kept playing and playing on it
Exhaustion being nullified by the productivity
Gaming all day long
And programming the greatest calculator games there ever was
Monsters and protagonists everywhere, that's how they defined and
Established the legend that is Omnimaga. Happy 12th birthday Omnimaga!

Thanks for listening, I hope you all enjoyed the story! Omnimaga B-Day story was brought to you by Juju and Sorunome. For the full story go here: http://pastebin.com/eK2k2g6U

55
HP Calculators / HP Prime Skin Editor
« on: August 16, 2013, 07:43:39 pm »
I'm just gonna tease you guys with this... And yes it works on Linux.

56
HP Calculators / Juju's review of the HP Prime
« on: August 12, 2013, 12:13:27 pm »
Well, I just finally got around installing the emulator and noticed you can do lots of cool stuff.

So there's Unicode support in the variable names and there's a nice unicode charmap, which is pretty cool.



I'll post other findings when I'll stumble upon tem.

57
Music Showcase / Kagayaki Yuki - Mirai Start (feat. Hatsune Miku)
« on: July 30, 2013, 04:59:49 pm »
I was bored, so I decided to make a remix of Mirai Start (also known as the My Little Pony: Tomodachi wa Mahou first opening). Here's the vocal track with some random MIDI accompaniment I found until I put something more appealing to your ears.

https://soundcloud.com/juju2143/hatsune-miku-mirai-start-vocal

58
I decided to try implementing a binary puzzle as well, but in php and ncurses and, to my amazement, I managed to do it under 75 lines of code. Paste this in a php file, uncomment the ncurses and gmp extentions in php.ini and run this in command line. Supports color, multiple grid sizes, multiple puzzles and all the conditions to win! Also optionally takes a puzzle set filename and puzzle number as argument.

puzzle.php:
Code: [Select]
<?php // 75 lines Binary Puzzle by Juju v1.0 | http://juju2143.ca | Licensed under GPLv3
$puzzles explode("\n"trim(file_get_contents(isset($argv[1])?$argv[1]:"puzzles.dat"), "\n\r"));
function 
initpuzzle($no)
{
        global 
$puzzles,$puzzle,$field,$x,$y,$size;
        
$puzzle explode("#"trim($puzzles[$no-1], "\n\r"), 2);
        
$field $puzzle[0];
        
$size sqrt(strlen($puzzle[0]));
        if(
$size != round($size) || $size%2==1)
        {
                
ncurses_end();
                die(
"Error: Puzzle #".$no." is invalid\n");
        }
        
$size = (int)$size;
        
$x $y 0;
        
ncurses_color_set(0);
        
ncurses_erase();
        
ncurses_addstr("Puzzle #".$no.(isset($puzzle[1])?(" - ".$puzzle[1]):"")."\n");
        for(
$i=0;$i<$size*$size;$i+=$size)
                
ncurses_addstr(substr($puzzle[0],$i,$size)."\n");
        
ncurses_move(1,0);
        
ncurses_color_set(1);
}
function 
checkline($str)
{
        if(
strstr($str" ")!==false) return false;
        if(
strstr($str"000")!==false) return false;
        if(
strstr($str"111")!==false) return false;
        return 
gmp_popcount(gmp_init($str2)) == strlen($str)/2;
}
$continue true;
$puzzleno = (isset($argv[2])&&$argv[2]>=1&&$argv[2]<=count($puzzles))?$argv[2]:1;
ncurses_init();
ncurses_start_color();
ncurses_init_pair(1NCURSES_COLOR_REDNCURSES_COLOR_BLACK);
ncurses_noecho();
initpuzzle($puzzleno);
while(
$continue)
{
        
$char ncurses_getch();
        if(
$char == 32)
        {
                
$pos=$y*$size+$x;
                if(
$puzzle[0][$pos] == " ")
                {
                        switch(
$field[$pos])
                        {
                                case 
"0"$field[$pos] = "1"; break;
                                case 
"1"$field[$pos] = " "; break;
                                case 
" "$field[$pos] = "0"; break;
                        }
                        
ncurses_addstr($field[$pos]);
                        
$points 0;
                        
$valh $valv = Array();
                        for(
$i=0;$i<$size;$i++)
                        {
                                
$vline ""; for($j=0;$j<$size;$j++) $vline .= $field[$j*$size+$i];
                                
$points += checkline(substr($field,$size*$i,$size)) + checkline($vline);
                                
$valh[] = bindec(substr($field,$size*$i,$size));
                                
$valv[] = bindec($vline);
                        }
                        if(
$points==2*$size && count($valh)==count(array_unique($valh)) && count($valv)==count(array_unique($valv)))
                        {
                                
ncurses_move($size+1,0);
                                
ncurses_addstr("You won!");
                        }
                }
        }
        if(
$char == ord("p") && $puzzleno 1initpuzzle(--$puzzleno);
        if(
$char == ord("n") && $puzzleno count($puzzles)) initpuzzle(++$puzzleno);
        if(
$char == ord("r")) initpuzzle($puzzleno);
        if(
$char == ord("q")) $continue false;
        
ncurses_move(($y=$y+($char==258&&$y<$size-1)-($char==259&&$y>0))+1,$x=$x+($char==261&&$x<$size-1)-($char==260&&$x>0));
        
ncurses_refresh(null);
}
ncurses_end();

puzzles.dat:
Code: [Select]
1  0    00 1 00  1      00 1   1  00#6x6 Easy 1
  0  11 00   1        1   1  000 1  #6x6 Easy 2
    00       1    01 1  0   0   1   #6x6 Medium 1
 0    00       0        1 11  1  1  #6x6 Medium 2
       0 00  1   0   1 0  1     00 1  1     1   11   0 1 1     1#8x8 Easy 1
 1 1  0 0 0  1 10  1   1 0         0   11  0 0 1    1   1  0  1 #8x8 Easy 2
    0 0 0 0 0 0             1 1 0  0    0  00          1 1 1    #8x8 Medium 1
   11    1   10       0 0 11   0 11          10     1    0 0   1#8x8 Medium 2

Controls:
Arrow keys: Move
Space: Set value
p: Previous puzzle
n: Next puzzle
r: Restart
q: Quit

59
News / RFG Image Uploader closes down; Omnimaga Image Uploader opens
« on: July 02, 2013, 08:23:13 pm »
Back in May, we learned the RFG Image Uploader on img.removedfromgame.com, made by {AP}, closed down the upload form due to repetitive rule breaking and {AP} can't keep up with the moderation, to the dismay of several Omnimaga users. The already uploaded pictures will indefinitely stay online, though.

Fortunately, Deep Thought and the Omnimaga team prepared us a new image uploader hosted by Sorunome. It features image upload (obviously) and an easier way to moderate images that might be rule-breaking. An URL shortener is also in the works.

Visit it on http://img.omnimaga.org and share us your thoughts and ideas!

60
So here's some Daft Punk-rickroll.


Pages: 1 2 3 [4] 5 6 ... 17